summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/dcheese.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/dcheese.c')
-rw-r--r--src/mame/drivers/dcheese.c26
1 files changed, 10 insertions, 16 deletions
diff --git a/src/mame/drivers/dcheese.c b/src/mame/drivers/dcheese.c
index ff6cba335c5..76d48e46057 100644
--- a/src/mame/drivers/dcheese.c
+++ b/src/mame/drivers/dcheese.c
@@ -47,42 +47,36 @@
*
*************************************/
-static void update_irq_state( device_t *cpu )
+void dcheese_state::update_irq_state()
{
- dcheese_state *state = cpu->machine().driver_data<dcheese_state>();
-
int i;
for (i = 1; i < 5; i++)
- cpu->execute().set_input_line(i, state->m_irq_state[i] ? ASSERT_LINE : CLEAR_LINE);
+ m_maincpu->set_input_line(i, m_irq_state[i] ? ASSERT_LINE : CLEAR_LINE);
}
-static IRQ_CALLBACK( irq_callback )
+IRQ_CALLBACK_MEMBER(dcheese_state::irq_callback)
{
- dcheese_state *state = device->machine().driver_data<dcheese_state>();
-
/* auto-ack the IRQ */
- state->m_irq_state[irqline] = 0;
- update_irq_state(device);
+ m_irq_state[irqline] = 0;
+ update_irq_state();
/* vector is 0x40 + index */
return 0x40 + irqline;
}
-void dcheese_signal_irq( running_machine &machine, int which )
+void dcheese_state::dcheese_signal_irq(int which )
{
- dcheese_state *state = machine.driver_data<dcheese_state>();
-
- state->m_irq_state[which] = 1;
- update_irq_state(state->m_maincpu);
+ m_irq_state[which] = 1;
+ update_irq_state();
}
INTERRUPT_GEN_MEMBER(dcheese_state::dcheese_vblank)
{
logerror("---- VBLANK ----\n");
- dcheese_signal_irq(machine(), 4);
+ dcheese_signal_irq(4);
}
@@ -99,7 +93,7 @@ void dcheese_state::machine_start()
m_audiocpu = machine().device<cpu_device>("audiocpu");
m_bsmt = machine().device("bsmt");
- m_maincpu->set_irq_acknowledge_callback(irq_callback);
+ m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(dcheese_state::irq_callback),this));
save_item(NAME(m_irq_state));
save_item(NAME(m_soundlatch_full));