diff --git a/src/mame/drivers/apple2gs.cpp b/src/mame/drivers/apple2gs.cpp index 8f8cb6509eb..78a9622c1c0 100644 --- a/src/mame/drivers/apple2gs.cpp +++ b/src/mame/drivers/apple2gs.cpp @@ -544,6 +544,8 @@ private: int m_inh_bank; + bool m_slot_irq; + double m_x_calibration, m_y_calibration; device_a2bus_card_interface *m_slotdevice[8]; @@ -641,6 +643,7 @@ WRITE_LINE_MEMBER(apple2gs_state::a2bus_irq_w) if (state == ASSERT_LINE) { raise_irq(IRQS_SLOT); + m_slot_irq = true; } else { @@ -1350,6 +1353,8 @@ void apple2gs_state::machine_reset() m_mouse_dx = 0x00; m_mouse_dy = 0x00; + m_slot_irq = false; + #if !RUN_ADB_MICRO m_adb_state = ADBSTATE_IDLE; m_adb_kmstatus = 0x00; @@ -2206,9 +2211,15 @@ READ8_MEMBER(apple2gs_state::c000_r) return adb_read_datareg(); case 0x27: // KMSTATUS - // hack to let one-second IRQs get through in Nucleus + // hack to let one-second IRQs get through in Nucleus if (m_vgcint & VGCINT_SECOND) return 0; + // secondary hack for slot IRQs + if (m_slot_irq) + { + m_slot_irq = false; + return 0; + } return adb_read_kmstatus(); #endif