diff options
Diffstat (limited to 'src/mame/drivers/bnstars.c')
-rw-r--r-- | src/mame/drivers/bnstars.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/mame/drivers/bnstars.c b/src/mame/drivers/bnstars.c index 8ca40e3888e..f32d197b45a 100644 --- a/src/mame/drivers/bnstars.c +++ b/src/mame/drivers/bnstars.c @@ -163,6 +163,7 @@ public: void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32 *sprram_top, size_t sprram_size, int region); void irq_init(); void irq_raise(int level); + IRQ_CALLBACK_MEMBER(irq_callback); }; @@ -1325,14 +1326,13 @@ ADDRESS_MAP_END #endif -static IRQ_CALLBACK(irq_callback) +IRQ_CALLBACK_MEMBER(bnstars_state::irq_callback) { - bnstars_state *state = device->machine().driver_data<bnstars_state>(); int i; - for(i=15; i>=0 && !(state->m_irqreq & (1<<i)); i--); - state->m_irqreq &= ~(1<<i); - if(!state->m_irqreq) - device->execute().set_input_line(0, CLEAR_LINE); + for(i=15; i>=0 && !(m_irqreq & (1<<i)); i--); + m_irqreq &= ~(1<<i); + if(!m_irqreq) + device.execute().set_input_line(0, CLEAR_LINE); return i; } @@ -1340,7 +1340,7 @@ void bnstars_state::irq_init() { m_irqreq = 0; machine().device("maincpu")->execute().set_input_line(0, CLEAR_LINE); - machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback); + machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(bnstars_state::irq_callback),this)); } void bnstars_state::irq_raise(int level) |