twincobr.cpp, wardner.cpp: Properly acknowledge IRQs (fixes soft reset issue in Wardner)

This commit is contained in:
AJR 2022-02-04 21:21:57 -05:00
parent 55fbae8ff9
commit da9bf2ddb0
3 changed files with 20 additions and 14 deletions

View File

@ -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)

View File

@ -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);

View File

@ -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)