summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/tp84.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/tp84.cpp')
-rw-r--r--src/mame/drivers/tp84.cpp19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/mame/drivers/tp84.cpp b/src/mame/drivers/tp84.cpp
index 3df862b27dd..861221daf9e 100644
--- a/src/mame/drivers/tp84.cpp
+++ b/src/mame/drivers/tp84.cpp
@@ -87,10 +87,12 @@ void tp84_state::machine_start()
}
-INTERRUPT_GEN_MEMBER(tp84_state::main_vblank_irq)
+WRITE_LINE_MEMBER(tp84_state::vblank_irq)
{
- if (m_irq_enable)
- device.execute().set_input_line(0, ASSERT_LINE);
+ if (state && m_irq_enable)
+ m_maincpu->set_input_line(0, ASSERT_LINE);
+ if (state && m_sub_irq_mask)
+ m_subcpu->set_input_line(0, ASSERT_LINE);
}
@@ -216,6 +218,8 @@ void tp84_state::tp84b_cpu1_map(address_map &map)
WRITE8_MEMBER(tp84_state::sub_irq_mask_w)
{
m_sub_irq_mask = data & 1;
+ if (!m_sub_irq_mask)
+ m_subcpu->set_input_line(0, CLEAR_LINE);
}
@@ -325,23 +329,15 @@ static GFXDECODE_START( tp84 )
GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 64*4*8, 16*8 )
GFXDECODE_END
-INTERRUPT_GEN_MEMBER(tp84_state::sub_vblank_irq)
-{
- if(m_sub_irq_mask)
- device.execute().set_input_line(0, HOLD_LINE);
-}
-
MACHINE_CONFIG_START(tp84_state::tp84)
/* basic machine hardware */
MCFG_CPU_ADD("cpu1", MC6809E, XTAL(18'432'000)/12) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(tp84_cpu1_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", tp84_state, main_vblank_irq)
MCFG_CPU_ADD("sub", MC6809E, XTAL(18'432'000)/12) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(cpu2_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", tp84_state, sub_vblank_irq)
MCFG_CPU_ADD("audiocpu", Z80,XTAL(14'318'181)/4) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(audio_map)
@@ -366,6 +362,7 @@ MACHINE_CONFIG_START(tp84_state::tp84)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(tp84_state, screen_update_tp84)
MCFG_SCREEN_PALETTE("palette")
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(tp84_state, vblank_irq))
MCFG_GFXDECODE_ADD("gfxdecode", "palette", tp84)
MCFG_PALETTE_ADD("palette", 4096)