summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/genpc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/genpc.cpp')
-rw-r--r--src/devices/machine/genpc.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/devices/machine/genpc.cpp b/src/devices/machine/genpc.cpp
index b02090ffb52..e76a51bd62c 100644
--- a/src/devices/machine/genpc.cpp
+++ b/src/devices/machine/genpc.cpp
@@ -395,8 +395,16 @@ WRITE8_MEMBER( ibm5160_mb_device::pc_ppi_portb_w )
WRITE8_MEMBER( ibm5160_mb_device::nmi_enable_w )
{
m_nmi_enabled = BIT(data,7);
- m_isabus->set_nmi_state(m_nmi_enabled);
+ if (!m_nmi_enabled)
+ m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
}
+
+WRITE_LINE_MEMBER( ibm5160_mb_device::iochck_w )
+{
+ if (m_nmi_enabled && !state)
+ m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
+}
+
//**************************************************************************
// GLOBAL VARIABLES
//**************************************************************************
@@ -413,7 +421,7 @@ DEFINE_DEVICE_TYPE(IBM5160_MOTHERBOARD, ibm5160_mb_device, "ibm5160_mb", "IBM 51
//-------------------------------------------------
MACHINE_CONFIG_START(ibm5160_mb_device::device_add_mconfig)
- PIT8253(config, m_pit8253, 0);
+ PIT8253(config, m_pit8253);
m_pit8253->set_clk<0>(XTAL(14'318'181)/12.0); // heartbeat IRQ
m_pit8253->out_handler<0>().set(m_pic8259, FUNC(pic8259_device::ir0_w));
m_pit8253->set_clk<1>(XTAL(14'318'181)/12.0); // DRAM refresh
@@ -438,7 +446,7 @@ MACHINE_CONFIG_START(ibm5160_mb_device::device_add_mconfig)
m_dma8237->out_dack_callback<2>().set(FUNC(ibm5160_mb_device::pc_dack2_w));
m_dma8237->out_dack_callback<3>().set(FUNC(ibm5160_mb_device::pc_dack3_w));
- PIC8259(config, m_pic8259, 0);
+ PIC8259(config, m_pic8259);
m_pic8259->out_int_callback().set(FUNC(ibm5160_mb_device::pic_int_w));
I8255A(config, m_ppi8255, 0);
@@ -447,7 +455,8 @@ MACHINE_CONFIG_START(ibm5160_mb_device::device_add_mconfig)
m_ppi8255->in_pc_callback().set(FUNC(ibm5160_mb_device::pc_ppi_portc_r));
ISA8(config, m_isabus, 0);
- m_isabus->set_cputag(":maincpu");
+ m_isabus->set_memspace(":maincpu", AS_PROGRAM);
+ m_isabus->set_iospace(":maincpu", AS_IO);
m_isabus->irq2_callback().set(m_pic8259, FUNC(pic8259_device::ir2_w));
m_isabus->irq3_callback().set(m_pic8259, FUNC(pic8259_device::ir3_w));
m_isabus->irq4_callback().set(m_pic8259, FUNC(pic8259_device::ir4_w));
@@ -457,6 +466,7 @@ MACHINE_CONFIG_START(ibm5160_mb_device::device_add_mconfig)
m_isabus->drq1_callback().set(m_dma8237, FUNC(am9517a_device::dreq1_w));
m_isabus->drq2_callback().set(m_dma8237, FUNC(am9517a_device::dreq2_w));
m_isabus->drq3_callback().set(m_dma8237, FUNC(am9517a_device::dreq3_w));
+ m_isabus->iochck_callback().set(FUNC(ibm5160_mb_device::iochck_w));
MCFG_DEVICE_ADD("pc_kbdc", PC_KBDC, 0)
MCFG_PC_KBDC_OUT_CLOCK_CB(WRITELINE(*this, ibm5160_mb_device, keyboard_clock_w))