diff --git a/src/mess/drivers/compis.c b/src/mess/drivers/compis.c index 009233a41e8..52231c7218a 100644 --- a/src/mess/drivers/compis.c +++ b/src/mess/drivers/compis.c @@ -168,6 +168,7 @@ static ADDRESS_MAP_START( compis_io, AS_IO, 16, compis_state ) AM_RANGE( 0x0330, 0x0333) AM_DEVREADWRITE8("upd7220", upd7220_device, read, write, 0x00ff) /* GDC 82720 PCS6:6 */ AM_RANGE( 0x0340, 0x0343) AM_DEVICE8("i8272a", i8272a_device, map, 0x00ff) /* iSBX0 (J8) FDC 8272 */ AM_RANGE( 0x0350, 0x0351) AM_DEVREADWRITE8("i8272a", i8272a_device, mdma_r, mdma_w, 0x00ff) /* iSBX0 (J8) DMA ACK */ + AM_RANGE( 0x034e, 0x034f) AM_READWRITE8(fdc_mon_r, fdc_mon_w, 0x00ff) //{ 0x0100, 0x017e, compis_null_r }, /* RTC */ //{ 0x0180, 0x01ff, compis_null_r }, /* PCS3? */ //{ 0x0200, 0x027f, compis_null_r }, /* Reserved */ @@ -349,7 +350,7 @@ static MACHINE_CONFIG_START( compis, compis_state ) MCFG_CPU_PROGRAM_MAP(compis_mem) MCFG_CPU_IO_MAP(compis_io) MCFG_CPU_VBLANK_INT_DRIVER("screen", compis_state, compis_vblank_int) - MCFG_80186_IRQ_SLAVE_ACK(DEVREAD8(DEVICE_SELF_OWNER, compis_state, compis_irq_callback)) + MCFG_80186_IRQ_SLAVE_ACK(DEVREAD8(DEVICE_SELF, compis_state, compis_irq_callback)) //MCFG_CPU_CONFIG(i86_address_mask) //MCFG_QUANTUM_TIME(attotime::from_hz(60)) @@ -394,7 +395,7 @@ static MACHINE_CONFIG_START( compis2, compis_state ) MCFG_CPU_PROGRAM_MAP(compis_mem) MCFG_CPU_IO_MAP(compis_io) MCFG_CPU_VBLANK_INT_DRIVER("screen", compis_state, compis_vblank_int) - MCFG_80186_IRQ_SLAVE_ACK(DEVREAD8(DEVICE_SELF_OWNER, compis_state, compis_irq_callback)) + MCFG_80186_IRQ_SLAVE_ACK(DEVREAD8(DEVICE_SELF, compis_state, compis_irq_callback)) //MCFG_CPU_CONFIG(i86_address_mask) //MCFG_QUANTUM_TIME(attotime::from_hz(60)) diff --git a/src/mess/drivers/rmnimbus.c b/src/mess/drivers/rmnimbus.c index b33834b3a9d..c9baf805f2f 100644 --- a/src/mess/drivers/rmnimbus.c +++ b/src/mess/drivers/rmnimbus.c @@ -286,7 +286,7 @@ static MACHINE_CONFIG_START( nimbus, rmnimbus_state ) MCFG_CPU_ADD(MAINCPU_TAG, I80186, 10000000) MCFG_CPU_PROGRAM_MAP(nimbus_mem) MCFG_CPU_IO_MAP(nimbus_io) - MCFG_80186_IRQ_SLAVE_ACK(DEVREAD8(DEVICE_SELF_OWNER, rmnimbus_state, cascade_callback)) + MCFG_80186_IRQ_SLAVE_ACK(DEVREAD8(DEVICE_SELF, rmnimbus_state, cascade_callback)) MCFG_CPU_ADD(IOCPU_TAG, I8031, 11059200) MCFG_CPU_PROGRAM_MAP(nimbus_iocpu_mem) diff --git a/src/mess/includes/compis.h b/src/mess/includes/compis.h index ffaed5d4557..78a6ee1eff3 100644 --- a/src/mess/includes/compis.h +++ b/src/mess/includes/compis.h @@ -174,6 +174,9 @@ public: // void internal_timer_sync(int which); // void handle_eoi(int data); void compis_fdc_tc(int state); + DECLARE_READ8_MEMBER(fdc_mon_r); + DECLARE_WRITE8_MEMBER(fdc_mon_w); + bool m_mon; void fdc_irq(bool state); void fdc_drq(bool state); diff --git a/src/mess/machine/compis.c b/src/mess/machine/compis.c index 583081394f2..8b6949ba956 100644 --- a/src/mess/machine/compis.c +++ b/src/mess/machine/compis.c @@ -192,7 +192,18 @@ void compis_state::fdc_drq(bool state) } } +WRITE8_MEMBER(compis_state::fdc_mon_w) +{ + m_mon = data & 1; + m_fdc->subdevice("0")->get_device()->mon_w(m_mon); + m_fdc->subdevice("1")->get_device()->mon_w(m_mon); +} + +READ8_MEMBER(compis_state::fdc_mon_r) +{ + return m_mon; +} /*-------------------------------------------------------------------------*/ /* Bit 0: J5-4 */ /* Bit 1: J5-5 */ @@ -1293,6 +1304,7 @@ void compis_state::machine_start() /* CPU */ compis_cpu_init(); m_fdc->setup_intrq_cb(i8272a_device::line_cb(FUNC(compis_state::fdc_irq), this)); + m_mon = false; } /*-------------------------------------------------------------------------*/ /* Name: compis */