diff options
Diffstat (limited to 'src/mess/drivers')
-rw-r--r-- | src/mess/drivers/apc.c | 8 | ||||
-rw-r--r-- | src/mess/drivers/fm7.c | 12 | ||||
-rw-r--r-- | src/mess/drivers/fmtowns.c | 7 | ||||
-rw-r--r-- | src/mess/drivers/iq151.c | 9 | ||||
-rw-r--r-- | src/mess/drivers/pc88va.c | 7 | ||||
-rw-r--r-- | src/mess/drivers/pc9801.c | 7 | ||||
-rw-r--r-- | src/mess/drivers/pk8000.c | 5 | ||||
-rw-r--r-- | src/mess/drivers/prestige.c | 14 | ||||
-rw-r--r-- | src/mess/drivers/qx10.c | 7 | ||||
-rw-r--r-- | src/mess/drivers/sm1800.c | 5 | ||||
-rw-r--r-- | src/mess/drivers/tsispch.c | 6 |
11 files changed, 46 insertions, 41 deletions
diff --git a/src/mess/drivers/apc.c b/src/mess/drivers/apc.c index 37541cecda8..963fc5e9b9a 100644 --- a/src/mess/drivers/apc.c +++ b/src/mess/drivers/apc.c @@ -148,6 +148,8 @@ public: int m_dack; UINT8 m_dma_offset[4]; + + IRQ_CALLBACK_MEMBER(irq_callback); protected: // driver_device overrides @@ -741,14 +743,14 @@ void apc_state::fdc_irq(bool state) pic8259_ir4_w(machine().device("pic8259_slave"), state); } -static IRQ_CALLBACK(irq_callback) +IRQ_CALLBACK_MEMBER(apc_state::irq_callback) { - return pic8259_acknowledge( device->machine().device( "pic8259_master" )); + return pic8259_acknowledge( machine().device( "pic8259_master" )); } void apc_state::machine_start() { - machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback); + machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(apc_state::irq_callback),this)); m_fdc->set_rate(500000); m_fdc->setup_intrq_cb(upd765a_device::line_cb(FUNC(apc_state::fdc_irq), this)); diff --git a/src/mess/drivers/fm7.c b/src/mess/drivers/fm7.c index 462ed23dc65..f83f85265da 100644 --- a/src/mess/drivers/fm7.c +++ b/src/mess/drivers/fm7.c @@ -1336,16 +1336,16 @@ TIMER_CALLBACK_MEMBER(fm7_state::fm7_keyboard_poll) } } -static IRQ_CALLBACK(fm7_irq_ack) +IRQ_CALLBACK_MEMBER(fm7_state::fm7_irq_ack) { if(irqline == M6809_FIRQ_LINE) - device->machine().device("maincpu")->execute().set_input_line(irqline,CLEAR_LINE); + machine().device("maincpu")->execute().set_input_line(irqline,CLEAR_LINE); return -1; } -static IRQ_CALLBACK(fm7_sub_irq_ack) +IRQ_CALLBACK_MEMBER(fm7_state::fm7_sub_irq_ack) { - device->machine().device("sub")->execute().set_input_line(irqline,CLEAR_LINE); + machine().device("sub")->execute().set_input_line(irqline,CLEAR_LINE); return -1; } @@ -1832,8 +1832,8 @@ DRIVER_INIT_MEMBER(fm7_state,fm7) m_subtimer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(fm7_state::fm7_subtimer_irq),this)); m_keyboard_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(fm7_state::fm7_keyboard_poll),this)); m_fm77av_vsync_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(fm7_state::fm77av_vsync),this)); - machine().device("maincpu")->execute().set_irq_acknowledge_callback(fm7_irq_ack); - machine().device("sub")->execute().set_irq_acknowledge_callback(fm7_sub_irq_ack); + machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(fm7_state::fm7_irq_ack),this)); + machine().device("sub")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(fm7_state::fm7_sub_irq_ack),this)); } MACHINE_START_MEMBER(fm7_state,fm7) diff --git a/src/mess/drivers/fmtowns.c b/src/mess/drivers/fmtowns.c index 79eb458a47c..1e100bb8395 100644 --- a/src/mess/drivers/fmtowns.c +++ b/src/mess/drivers/fmtowns.c @@ -2016,10 +2016,9 @@ READ8_MEMBER(towns_state::towns_41ff_r) return 0x01; } -static IRQ_CALLBACK( towns_irq_callback ) +IRQ_CALLBACK_MEMBER(towns_state::towns_irq_callback) { - towns_state* state = device->machine().driver_data<towns_state>(); - return pic8259_acknowledge(state->m_pic_master); + return pic8259_acknowledge(m_pic_master); } // YM3438 interrupt (IRQ 13) @@ -2511,7 +2510,7 @@ void towns_state::driver_start() // CD-ROM init m_towns_cd.read_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(towns_state::towns_cdrom_read_byte),this), (void*)machine().device("dma_1")); - machine().device("maincpu")->execute().set_irq_acknowledge_callback(towns_irq_callback); + machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(towns_state::towns_irq_callback),this)); machine().device("maincpu")->memory().space(AS_PROGRAM).install_ram(0x100000,machine().device<ram_device>(RAM_TAG)->size()-1,0xffffffff,0,NULL); } diff --git a/src/mess/drivers/iq151.c b/src/mess/drivers/iq151.c index 5ad6cf4efae..7e462a45f2d 100644 --- a/src/mess/drivers/iq151.c +++ b/src/mess/drivers/iq151.c @@ -98,6 +98,7 @@ public: INTERRUPT_GEN_MEMBER(iq151_vblank_interrupt); DECLARE_INPUT_CHANGED_MEMBER(iq151_break); TIMER_DEVICE_CALLBACK_MEMBER(cassette_timer); + IRQ_CALLBACK_MEMBER(iq151_irq_callback); }; READ8_MEMBER(iq151_state::keyboard_row_r) @@ -327,11 +328,9 @@ INTERRUPT_GEN_MEMBER(iq151_state::iq151_vblank_interrupt) m_vblank_irq_state ^= 1; } -static IRQ_CALLBACK(iq151_irq_callback) +IRQ_CALLBACK_MEMBER(iq151_state::iq151_irq_callback) { - iq151_state *state = device->machine().driver_data<iq151_state>(); - - return pic8259_acknowledge(state->m_pic); + return pic8259_acknowledge(m_pic); } TIMER_DEVICE_CALLBACK_MEMBER(iq151_state::cassette_timer) @@ -347,7 +346,7 @@ DRIVER_INIT_MEMBER(iq151_state,iq151) membank("boot")->configure_entry(0, RAM + 0xf800); membank("boot")->configure_entry(1, RAM + 0x0000); - m_maincpu->set_irq_acknowledge_callback(iq151_irq_callback); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(iq151_state::iq151_irq_callback),this)); // keep machine pointers to slots m_carts[0] = machine().device<iq151cart_slot_device>("slot1"); diff --git a/src/mess/drivers/pc88va.c b/src/mess/drivers/pc88va.c index 2c24cbd4486..718bdae5ba4 100644 --- a/src/mess/drivers/pc88va.c +++ b/src/mess/drivers/pc88va.c @@ -151,6 +151,7 @@ public: void fdc_drq(bool state); DECLARE_FLOPPY_FORMATS( floppy_formats ); void pc88va_fdc_update_ready(floppy_image_device *, int); + IRQ_CALLBACK_MEMBER(pc88va_irq_callback); }; @@ -1612,9 +1613,9 @@ static I8255_INTERFACE( r232c_ctrl_intf ) DEVCB_DRIVER_MEMBER(pc88va_state,r232_ctrl_portc_w) /* Port C write */ }; -static IRQ_CALLBACK(pc88va_irq_callback) +IRQ_CALLBACK_MEMBER(pc88va_state::pc88va_irq_callback) { - return pic8259_acknowledge( device->machine().device( "pic8259_master" ) ); + return pic8259_acknowledge( machine().device( "pic8259_master" ) ); } WRITE_LINE_MEMBER(pc88va_state::pc88va_pic_irq) @@ -1647,7 +1648,7 @@ static const struct pic8259_interface pc88va_pic8259_slave_config = void pc88va_state::machine_start() { - machine().device("maincpu")->execute().set_irq_acknowledge_callback(pc88va_irq_callback); + machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pc88va_state::pc88va_irq_callback),this)); m_t3_mouse_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(pc88va_state::t3_mouse_callback),this)); m_t3_mouse_timer->adjust(attotime::never); diff --git a/src/mess/drivers/pc9801.c b/src/mess/drivers/pc9801.c index 0490faee60a..bf3c9d1e8a0 100644 --- a/src/mess/drivers/pc9801.c +++ b/src/mess/drivers/pc9801.c @@ -654,6 +654,7 @@ public: inline UINT32 m_calc_grcg_addr(int i,UINT32 offset); DECLARE_DRIVER_INIT(pc9801_kanji); + IRQ_CALLBACK_MEMBER(irq_callback); }; @@ -3330,14 +3331,14 @@ PALETTE_INIT_MEMBER(pc9801_state,pc9801) palette_set_color_rgb(machine(), i, pal1bit(0), pal1bit(0), pal1bit(0)); } -static IRQ_CALLBACK(irq_callback) +IRQ_CALLBACK_MEMBER(pc9801_state::irq_callback) { - return pic8259_acknowledge( device->machine().device( "pic8259_master" )); + return pic8259_acknowledge( machine().device( "pic8259_master" )); } MACHINE_START_MEMBER(pc9801_state,pc9801_common) { - machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback); + machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pc9801_state::irq_callback),this)); m_rtc->cs_w(1); m_rtc->oe_w(0); // TODO: unknown connection, MS-DOS 6.2x wants this low somehow with the test mode diff --git a/src/mess/drivers/pk8000.c b/src/mess/drivers/pk8000.c index 2d0ffc4593a..af20a0ccdba 100644 --- a/src/mess/drivers/pk8000.c +++ b/src/mess/drivers/pk8000.c @@ -37,6 +37,7 @@ public: DECLARE_READ8_MEMBER(pk8000_84_porta_r); DECLARE_WRITE8_MEMBER(pk8000_84_porta_w); DECLARE_WRITE8_MEMBER(pk8000_84_portc_w); + IRQ_CALLBACK_MEMBER(pk8000_irq_callback); }; @@ -318,7 +319,7 @@ INTERRUPT_GEN_MEMBER(pk8000_state::pk8000_interrupt) device.execute().set_input_line(0, HOLD_LINE); } -static IRQ_CALLBACK(pk8000_irq_callback) +IRQ_CALLBACK_MEMBER(pk8000_state::pk8000_irq_callback) { return 0xff; } @@ -327,7 +328,7 @@ static IRQ_CALLBACK(pk8000_irq_callback) void pk8000_state::machine_reset() { pk8000_set_bank(machine(),0); - machine().device("maincpu")->execute().set_irq_acknowledge_callback(pk8000_irq_callback); + machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pk8000_state::pk8000_irq_callback),this)); } void pk8000_state::video_start() diff --git a/src/mess/drivers/prestige.c b/src/mess/drivers/prestige.c index f989c0a68a9..9d9bd22ecb9 100644 --- a/src/mess/drivers/prestige.c +++ b/src/mess/drivers/prestige.c @@ -112,6 +112,7 @@ public: DECLARE_WRITE8_MEMBER( mouse_w ); virtual void palette_init(); TIMER_DEVICE_CALLBACK_MEMBER(irq_timer); + IRQ_CALLBACK_MEMBER(prestige_int_ack); }; @@ -393,21 +394,20 @@ INPUT_PORTS_START( prestige ) INPUT_PORTS_END -static IRQ_CALLBACK( prestige_int_ack ) +IRQ_CALLBACK_MEMBER(prestige_state::prestige_int_ack) { UINT32 vector; - prestige_state *state = device->machine().driver_data<prestige_state>(); - state->m_maincpu->set_input_line(0, CLEAR_LINE); + m_maincpu->set_input_line(0, CLEAR_LINE); - if (state->m_irq_counter == 0x02) + if (m_irq_counter == 0x02) { - state->m_irq_counter = 0; + m_irq_counter = 0; vector = 0x0020; } else { - state->m_irq_counter++; + m_irq_counter++; vector = 0x0030; } @@ -419,7 +419,7 @@ void prestige_state::machine_start() UINT8 *ram = m_ram->pointer(); memset(ram, 0x00, m_ram->size()); - m_maincpu->set_irq_acknowledge_callback(prestige_int_ack); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(prestige_state::prestige_int_ack),this)); membank("bank1")->configure_entries(0, 64, memregion("maincpu")->base(), 0x4000); membank("bank2")->configure_entries(0, 64, memregion("maincpu")->base(), 0x4000); diff --git a/src/mess/drivers/qx10.c b/src/mess/drivers/qx10.c index 969e7378cd2..371e273bb88 100644 --- a/src/mess/drivers/qx10.c +++ b/src/mess/drivers/qx10.c @@ -146,6 +146,7 @@ public: virtual void palette_init(); DECLARE_INPUT_CHANGED_MEMBER(key_stroke); DECLARE_WRITE_LINE_MEMBER(dma_hrq_changed); + IRQ_CALLBACK_MEMBER(irq_callback); }; static UPD7220_DISPLAY_PIXELS( hgdc_display_pixels ) @@ -576,9 +577,9 @@ static const struct pic8259_interface qx10_pic8259_slave_config = DEVCB_NULL }; -static IRQ_CALLBACK( irq_callback ) +IRQ_CALLBACK_MEMBER(qx10_state::irq_callback) { - return pic8259_acknowledge(device->machine().driver_data<qx10_state>()->m_pic_m ); + return pic8259_acknowledge(m_pic_m); } READ8_MEMBER( qx10_state::upd7201_r ) @@ -908,7 +909,7 @@ INPUT_PORTS_END void qx10_state::machine_start() { - machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback); + machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(qx10_state::irq_callback),this)); m_fdc->setup_intrq_cb(upd765a_device::line_cb(FUNC(qx10_state::qx10_upd765_interrupt), this)); m_fdc->setup_drq_cb(upd765a_device::line_cb(FUNC(qx10_state::drq_w), this)); } diff --git a/src/mess/drivers/sm1800.c b/src/mess/drivers/sm1800.c index 6f8f5531f51..6ac59e19046 100644 --- a/src/mess/drivers/sm1800.c +++ b/src/mess/drivers/sm1800.c @@ -43,6 +43,7 @@ public: virtual void machine_reset(); virtual void palette_init(); INTERRUPT_GEN_MEMBER(sm1800_vblank_interrupt); + IRQ_CALLBACK_MEMBER(sm1800_irq_callback); }; static ADDRESS_MAP_START(sm1800_mem, AS_PROGRAM, 8, sm1800_state) @@ -66,14 +67,14 @@ ADDRESS_MAP_END static INPUT_PORTS_START( sm1800 ) INPUT_PORTS_END -static IRQ_CALLBACK(sm1800_irq_callback) +IRQ_CALLBACK_MEMBER(sm1800_state::sm1800_irq_callback) { return 0xff; } void sm1800_state::machine_reset() { - m_maincpu->set_irq_acknowledge_callback(sm1800_irq_callback); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(sm1800_state::sm1800_irq_callback),this)); } INTERRUPT_GEN_MEMBER(sm1800_state::sm1800_vblank_interrupt) diff --git a/src/mess/drivers/tsispch.c b/src/mess/drivers/tsispch.c index 7691c7ec13f..abad5d27b89 100644 --- a/src/mess/drivers/tsispch.c +++ b/src/mess/drivers/tsispch.c @@ -180,9 +180,9 @@ static const struct pic8259_interface pic8259_config = DEVCB_NULL }; -static IRQ_CALLBACK(irq_callback) +IRQ_CALLBACK_MEMBER(tsispch_state::irq_callback) { - return pic8259_acknowledge(device->machine().device("pic8259")); + return pic8259_acknowledge(machine().device("pic8259")); } /***************************************************************************** @@ -272,7 +272,7 @@ void tsispch_state::machine_reset() int i; for (i=0; i<32; i++) m_infifo[i] = 0; m_infifo_tail_ptr = m_infifo_head_ptr = 0; - machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback); + machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(tsispch_state::irq_callback),this)); fprintf(stderr,"machine reset\n"); } |