diff --git a/src/mame/drivers/wardner.cpp b/src/mame/drivers/wardner.cpp index 7319a0610e4..c565901ed69 100644 --- a/src/mame/drivers/wardner.cpp +++ b/src/mame/drivers/wardner.cpp @@ -162,6 +162,9 @@ private: void wardner_bank_w(uint8_t data); + DECLARE_WRITE_LINE_MEMBER(wardner_vblank_irq); + DECLARE_WRITE_LINE_MEMBER(int_enable_w); + void dsp_io_map(address_map &map); void dsp_program_map(address_map &map); void main_bank_map(address_map &map); @@ -172,6 +175,20 @@ private: }; +WRITE_LINE_MEMBER(wardner_state::wardner_vblank_irq) +{ + if (state && m_intenable) + m_maincpu->set_input_line(0, ASSERT_LINE); +} + +WRITE_LINE_MEMBER(wardner_state::int_enable_w) +{ + m_intenable = state; + if (!state) + m_maincpu->set_input_line(0, CLEAR_LINE); +} + + /***************************** Z80 Main Memory Map **************************/ void wardner_state::wardner_bank_w(uint8_t data) diff --git a/src/mame/includes/twincobr.h b/src/mame/includes/twincobr.h index 208281b9408..8ec4e59bd28 100644 --- a/src/mame/includes/twincobr.h +++ b/src/mame/includes/twincobr.h @@ -127,7 +127,6 @@ protected: TILE_GET_INFO_MEMBER(get_tx_tile_info); u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); DECLARE_WRITE_LINE_MEMBER(twincobr_vblank_irq); - DECLARE_WRITE_LINE_MEMBER(wardner_vblank_irq); void twincobr_create_tilemaps(); DECLARE_WRITE_LINE_MEMBER(display_on_w); DECLARE_WRITE_LINE_MEMBER(flipscreen_w); diff --git a/src/mame/machine/twincobr.cpp b/src/mame/machine/twincobr.cpp index 3cf7e369451..9fc69b343d8 100644 --- a/src/mame/machine/twincobr.cpp +++ b/src/mame/machine/twincobr.cpp @@ -18,19 +18,7 @@ WRITE_LINE_MEMBER(twincobr_state::twincobr_vblank_irq) { if (state && m_intenable) - { - m_intenable = 0; - m_maincpu->set_input_line(M68K_IRQ_4, HOLD_LINE); - } -} - -WRITE_LINE_MEMBER(twincobr_state::wardner_vblank_irq) -{ - if (state && m_intenable) - { - m_intenable = 0; - m_maincpu->set_input_line(0, HOLD_LINE); - } + m_maincpu->set_input_line(M68K_IRQ_4, ASSERT_LINE); } @@ -189,6 +177,8 @@ READ_LINE_MEMBER(twincobr_state::twincobr_bio_r) WRITE_LINE_MEMBER(twincobr_state::int_enable_w) { m_intenable = state; + if (!state) + m_maincpu->set_input_line(M68K_IRQ_4, CLEAR_LINE); } WRITE_LINE_MEMBER(twincobr_state::dsp_int_w)