summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/gaplus.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/gaplus.cpp')
-rw-r--r--src/mame/drivers/gaplus.cpp39
1 files changed, 22 insertions, 17 deletions
diff --git a/src/mame/drivers/gaplus.cpp b/src/mame/drivers/gaplus.cpp
index 6dbcc5feea2..f263fa7bec0 100644
--- a/src/mame/drivers/gaplus.cpp
+++ b/src/mame/drivers/gaplus.cpp
@@ -235,9 +235,12 @@ TIMER_CALLBACK_MEMBER(gaplus_state::namcoio1_run)
m_namco56xx->customio_run();
}
-INTERRUPT_GEN_MEMBER(gaplus_state::vblank_main_irq)
+WRITE_LINE_MEMBER(gaplus_state::vblank_irq)
{
- if(m_main_irq_mask)
+ if (!state)
+ return;
+
+ if (m_main_irq_mask)
m_maincpu->set_input_line(0, ASSERT_LINE);
if (!m_namco58xx->read_reset_line()) /* give the cpu a tiny bit of time to write the command before processing it */
@@ -245,11 +248,20 @@ INTERRUPT_GEN_MEMBER(gaplus_state::vblank_main_irq)
if (!m_namco56xx->read_reset_line()) /* give the cpu a tiny bit of time to write the command before processing it */
m_namcoio1_run_timer->adjust(attotime::from_usec(50));
+
+ if (m_sub_irq_mask)
+ m_subcpu->set_input_line(0, ASSERT_LINE);
+
+ if (m_sub2_irq_mask)
+ m_subcpu2->set_input_line(0, ASSERT_LINE);
}
-INTERRUPT_GEN_MEMBER(gaplus_state::gapluso_vblank_main_irq)
+WRITE_LINE_MEMBER(gaplus_state::gapluso_vblank_irq)
{
- if(m_main_irq_mask)
+ if (!state)
+ return;
+
+ if (m_main_irq_mask)
m_maincpu->set_input_line(0, ASSERT_LINE);
if (!m_namco58xx->read_reset_line()) /* give the cpu a tiny bit of time to write the command before processing it */
@@ -257,17 +269,11 @@ INTERRUPT_GEN_MEMBER(gaplus_state::gapluso_vblank_main_irq)
if (!m_namco56xx->read_reset_line()) /* give the cpu a tiny bit of time to write the command before processing it */
m_namcoio0_run_timer->adjust(attotime::from_usec(50));
-}
-INTERRUPT_GEN_MEMBER(gaplus_state::vblank_sub_irq)
-{
- if(m_sub_irq_mask)
+ if (m_sub_irq_mask)
m_subcpu->set_input_line(0, ASSERT_LINE);
-}
-INTERRUPT_GEN_MEMBER(gaplus_state::vblank_sub2_irq)
-{
- if(m_sub2_irq_mask)
+ if (m_sub2_irq_mask)
m_subcpu2->set_input_line(0, ASSERT_LINE);
}
@@ -520,15 +526,12 @@ MACHINE_CONFIG_START(gaplus_state::gaplus)
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", MC6809E, XTAL(24'576'000)/16) /* 1.536 MHz */
MCFG_CPU_PROGRAM_MAP(cpu1_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", gaplus_state, vblank_main_irq)
MCFG_CPU_ADD("sub", MC6809E, XTAL(24'576'000)/16) /* 1.536 MHz */
MCFG_CPU_PROGRAM_MAP(cpu2_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", gaplus_state, vblank_sub_irq)
MCFG_CPU_ADD("sub2", MC6809E, XTAL(24'576'000)/16) /* 1.536 MHz */
MCFG_CPU_PROGRAM_MAP(cpu3_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", gaplus_state, vblank_sub2_irq)
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* a high value to ensure proper synchronization of the CPUs */
@@ -564,6 +567,7 @@ MACHINE_CONFIG_START(gaplus_state::gaplus)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
MCFG_SCREEN_UPDATE_DRIVER(gaplus_state, screen_update)
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(gaplus_state, screen_vblank))
+ MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE(gaplus_state, vblank_irq))
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", gaplus)
@@ -604,8 +608,9 @@ MACHINE_CONFIG_START(gaplus_state::gapluso)
gaplusd(config);
/* basic machine hardware */
- MCFG_CPU_MODIFY("maincpu")
- MCFG_CPU_VBLANK_INT_DRIVER("screen", gaplus_state, gapluso_vblank_main_irq)
+ MCFG_DEVICE_MODIFY("screen")
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(gaplus_state, screen_vblank))
+ MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE(gaplus_state, gapluso_vblank_irq))
MCFG_DEVICE_REPLACE("namcoio_1", NAMCO_56XX, 0)
MCFG_NAMCO56XX_IN_0_CB(IOPORT("COINS"))