diff --git a/src/mame/includes/dc.h b/src/mame/includes/dc.h index 1dade3c1212..e7f85f620f3 100644 --- a/src/mame/includes/dc.h +++ b/src/mame/includes/dc.h @@ -53,7 +53,7 @@ class dc_state : public driver_device uint8_t indirect; uint8_t start; uint8_t sel; - }m_g2_dma[4]; + } m_g2_dma[4]; virtual void machine_start() override; virtual void machine_reset() override; @@ -84,6 +84,7 @@ class dc_state : public driver_device DECLARE_WRITE16_MEMBER( soundram_w ); DECLARE_WRITE_LINE_MEMBER(aica_irq); DECLARE_WRITE_LINE_MEMBER(sh4_aica_irq); + DECLARE_WRITE_LINE_MEMBER(external_irq); required_device m_maincpu; diff --git a/src/mame/machine/dc.cpp b/src/mame/machine/dc.cpp index 3fb65d363b4..c81382b5661 100644 --- a/src/mame/machine/dc.cpp +++ b/src/mame/machine/dc.cpp @@ -748,6 +748,16 @@ WRITE_LINE_MEMBER(dc_state::sh4_aica_irq) dc_update_interrupt_status(); } +WRITE_LINE_MEMBER(dc_state::external_irq) +{ + if (state) + dc_sysctrl_regs[SB_ISTEXT] |= IST_EXT_EXTERNAL; + else + dc_sysctrl_regs[SB_ISTEXT] &= ~IST_EXT_EXTERNAL; + + dc_update_interrupt_status(); +} + MACHINE_RESET_MEMBER(dc_state,dc_console) { dc_state::machine_reset();