diff options
Diffstat (limited to 'src/mess/drivers')
-rw-r--r-- | src/mess/drivers/abc1600.c | 13 | ||||
-rw-r--r-- | src/mess/drivers/apricot.c | 8 | ||||
-rw-r--r-- | src/mess/drivers/apricotp.c | 8 | ||||
-rw-r--r-- | src/mess/drivers/atarist.c | 14 | ||||
-rw-r--r-- | src/mess/drivers/cbm2.c | 10 | ||||
-rw-r--r-- | src/mess/drivers/m20.c | 7 | ||||
-rw-r--r-- | src/mess/drivers/multi16.c | 7 | ||||
-rw-r--r-- | src/mess/drivers/paso1600.c | 7 | ||||
-rw-r--r-- | src/mess/drivers/pc1512.c | 10 | ||||
-rw-r--r-- | src/mess/drivers/pc8801.c | 29 | ||||
-rw-r--r-- | src/mess/drivers/portfoli.c | 18 | ||||
-rw-r--r-- | src/mess/drivers/trs80m2.c | 8 | ||||
-rw-r--r-- | src/mess/drivers/v1050.c | 10 | ||||
-rw-r--r-- | src/mess/drivers/victor9k.c | 8 | ||||
-rw-r--r-- | src/mess/drivers/vidbrain.c | 18 | ||||
-rw-r--r-- | src/mess/drivers/vixen.c | 6 | ||||
-rw-r--r-- | src/mess/drivers/wangpc.c | 8 | ||||
-rw-r--r-- | src/mess/drivers/x1.c | 27 | ||||
-rw-r--r-- | src/mess/drivers/z100.c | 7 |
19 files changed, 102 insertions, 121 deletions
diff --git a/src/mess/drivers/abc1600.c b/src/mess/drivers/abc1600.c index a1ec80f253c..59ee49a3157 100644 --- a/src/mess/drivers/abc1600.c +++ b/src/mess/drivers/abc1600.c @@ -1798,26 +1798,25 @@ static ABC1600BUS_INTERFACE( bus2_intf ) //************************************************************************** //------------------------------------------------- -// IRQ_CALLBACK( abc1600_int_ack ) +// IRQ_CALLBACK_MEMBER( abc1600_int_ack ) //------------------------------------------------- -static IRQ_CALLBACK( abc1600_int_ack ) +IRQ_CALLBACK_MEMBER( abc1600_state::abc1600_int_ack ) { - abc1600_state *state = device->machine().driver_data<abc1600_state>(); int data = 0; switch (irqline) { case M68K_IRQ_2: - data = state->m_cio->intack_r(); + data = m_cio->intack_r(); break; case M68K_IRQ_5: - data = state->m_dart->m1_r(); + data = m_dart->m1_r(); break; case M68K_IRQ_7: - state->m_maincpu->set_input_line(M68K_IRQ_7, CLEAR_LINE); + m_maincpu->set_input_line(M68K_IRQ_7, CLEAR_LINE); data = M68K_INT_ACK_AUTOVECTOR; break; @@ -1834,7 +1833,7 @@ static IRQ_CALLBACK( abc1600_int_ack ) void abc1600_state::machine_start() { // interrupt callback - m_maincpu->set_irq_acknowledge_callback(abc1600_int_ack); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(abc1600_state::abc1600_int_ack),this)); // floppy callbacks m_fdc->setup_intrq_cb(wd_fdc_t::line_cb(FUNC(abc1600_state::fdc_intrq_w), this)); diff --git a/src/mess/drivers/apricot.c b/src/mess/drivers/apricot.c index 2fde5240d0c..4fad7195f14 100644 --- a/src/mess/drivers/apricot.c +++ b/src/mess/drivers/apricot.c @@ -66,6 +66,7 @@ public: virtual void palette_init(); UINT32 screen_update_apricot(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); DECLARE_WRITE_LINE_MEMBER(apricot_sio_irq_w); + IRQ_CALLBACK_MEMBER(apricot_irq_ack); }; @@ -142,10 +143,9 @@ static const z80sio_interface apricot_z80sio_intf = INTERRUPTS ***************************************************************************/ -static IRQ_CALLBACK( apricot_irq_ack ) +IRQ_CALLBACK_MEMBER(apricot_state::apricot_irq_ack) { - apricot_state *state = device->machine().driver_data<apricot_state>(); - return pic8259_acknowledge(state->m_pic); + return pic8259_acknowledge(m_pic); } static const struct pic8259_interface apricot_pic8259_intf = @@ -266,7 +266,7 @@ DRIVER_INIT_MEMBER(apricot_state,apricot) prg.unmap_readwrite(0x40000, 0xeffff); prg.install_ram(0x00000, ram_size - 1, ram); - m_maincpu->set_irq_acknowledge_callback(apricot_irq_ack); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(apricot_state::apricot_irq_ack),this)); m_video_mode = 0; m_display_on = 1; diff --git a/src/mess/drivers/apricotp.c b/src/mess/drivers/apricotp.c index 67ac254119f..b0e34bd263b 100644 --- a/src/mess/drivers/apricotp.c +++ b/src/mess/drivers/apricotp.c @@ -416,11 +416,9 @@ static APRICOT_KEYBOARD_INTERFACE( kb_intf ) // pic8259_interface pic_intf //------------------------------------------------- -static IRQ_CALLBACK( fp_irq_callback ) + IRQ_CALLBACK_MEMBER(fp_state::fp_irq_callback) { - fp_state *state = device->machine().driver_data<fp_state>(); - - return pic8259_acknowledge(state->m_pic); + return pic8259_acknowledge(m_pic); } /* @@ -588,7 +586,7 @@ void fp_state::machine_start() m_fdc->setup_drq_cb(wd_fdc_t::line_cb(FUNC(fp_state::fdc_drq_w), this)); // register CPU IRQ callback - m_maincpu->set_irq_acknowledge_callback(fp_irq_callback); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(fp_state::fp_irq_callback),this)); // allocate memory m_work_ram.allocate(m_ram->size() / 2); diff --git a/src/mess/drivers/atarist.c b/src/mess/drivers/atarist.c index 2a3428ca3e0..beaae222510 100644 --- a/src/mess/drivers/atarist.c +++ b/src/mess/drivers/atarist.c @@ -2114,16 +2114,14 @@ static const centronics_interface centronics_intf = //************************************************************************** //------------------------------------------------- -// IRQ_CALLBACK( atarist_int_ack ) +// IRQ_CALLBACK_MEMBER( atarist_int_ack ) //------------------------------------------------- -static IRQ_CALLBACK( atarist_int_ack ) +IRQ_CALLBACK_MEMBER(st_state::atarist_int_ack) { - st_state *state = device->machine().driver_data<st_state>(); - if (irqline == M68K_IRQ_6) { - return state->m_mfp->get_vector(); + return m_mfp->get_vector(); } return M68K_INT_ACK_AUTOVECTOR; @@ -2199,7 +2197,7 @@ void st_state::machine_start() configure_memory(); // set CPU interrupt callback - m_maincpu->set_irq_acknowledge_callback(atarist_int_ack); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(st_state::atarist_int_ack),this)); // allocate timers m_mouse_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(st_state::st_mouse_tick),this)); @@ -2256,7 +2254,7 @@ void ste_state::machine_start() configure_memory(); /* set CPU interrupt callback */ - m_maincpu->set_irq_acknowledge_callback(atarist_int_ack); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(st_state::atarist_int_ack),this)); /* allocate timers */ m_dmasound_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(ste_state::atariste_dmasound_tick),this)); @@ -2296,7 +2294,7 @@ void stbook_state::machine_start() } /* set CPU interrupt callback */ - m_maincpu->set_irq_acknowledge_callback(atarist_int_ack); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(st_state::atarist_int_ack),this)); /* register for state saving */ ste_state::state_save(); diff --git a/src/mess/drivers/cbm2.c b/src/mess/drivers/cbm2.c index e9a19c04e3b..76dc65b93b1 100644 --- a/src/mess/drivers/cbm2.c +++ b/src/mess/drivers/cbm2.c @@ -1725,11 +1725,9 @@ static IEEE488_INTERFACE( ieee488_intf ) // pic8259_interface ext_pic_intf //------------------------------------------------- -static IRQ_CALLBACK( pic_irq_callback ) +IRQ_CALLBACK_MEMBER(cbm2_state::pic_irq_callback) { - cbm2_state *state = device->machine().driver_data<cbm2_state>(); - - return pic8259_acknowledge(state->m_ext_pic); + return pic8259_acknowledge(m_ext_pic); } static pic8259_interface ext_pic_intf = @@ -2002,7 +2000,7 @@ MACHINE_START_MEMBER( cbm2_state, cbm2_pal ) MACHINE_START_MEMBER( cbm2_state, cbm2x_ntsc ) { // register CPU IRQ callback - m_ext_cpu->set_irq_acknowledge_callback(pic_irq_callback); + m_ext_cpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(cbm2_state::pic_irq_callback),this)); // allocate memory m_extbuf_ram.allocate(0x800); @@ -2018,7 +2016,7 @@ MACHINE_START_MEMBER( cbm2_state, cbm2x_ntsc ) MACHINE_START_MEMBER( cbm2_state, cbm2x_pal ) { // register CPU IRQ callback - m_ext_cpu->set_irq_acknowledge_callback(pic_irq_callback); + m_ext_cpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(cbm2_state::pic_irq_callback),this)); // allocate memory m_extbuf_ram.allocate(0x800); diff --git a/src/mess/drivers/m20.c b/src/mess/drivers/m20.c index 993c0feb310..78b4ac2a31b 100644 --- a/src/mess/drivers/m20.c +++ b/src/mess/drivers/m20.c @@ -108,6 +108,7 @@ public: DECLARE_FLOPPY_FORMATS( floppy_formats ); void fdc_intrq_w(bool state); + IRQ_CALLBACK_MEMBER(m20_irq_callback); }; @@ -798,12 +799,12 @@ DRIVER_INIT_MEMBER(m20_state,m20) { } -static IRQ_CALLBACK( m20_irq_callback ) +IRQ_CALLBACK_MEMBER(m20_state::m20_irq_callback) { if (! irqline) return 0xff; // NVI, value ignored else - return pic8259_acknowledge(device->machine().device("i8259")); + return pic8259_acknowledge(machine().device("i8259")); } void m20_state::machine_start() @@ -823,7 +824,7 @@ void m20_state::machine_reset() else m_port21 = 0xff; - m_maincpu->set_irq_acknowledge_callback(m20_irq_callback); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(m20_state::m20_irq_callback),this)); m_fd1797->reset(); diff --git a/src/mess/drivers/multi16.c b/src/mess/drivers/multi16.c index 69b0d35cda4..b885ea526c5 100644 --- a/src/mess/drivers/multi16.c +++ b/src/mess/drivers/multi16.c @@ -33,6 +33,7 @@ public: virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_multi16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + IRQ_CALLBACK_MEMBER(multi16_irq_callback); }; @@ -116,9 +117,9 @@ ADDRESS_MAP_END static INPUT_PORTS_START( multi16 ) INPUT_PORTS_END -static IRQ_CALLBACK(multi16_irq_callback) +IRQ_CALLBACK_MEMBER(multi16_state::multi16_irq_callback) { - return pic8259_acknowledge( device->machine().device("pic8259") ); + return pic8259_acknowledge( machine().device("pic8259") ); } WRITE_LINE_MEMBER( multi16_state::multi16_set_int_line ) @@ -136,7 +137,7 @@ static const struct pic8259_interface multi16_pic8259_config = void multi16_state::machine_start() { - machine().device("maincpu")->execute().set_irq_acknowledge_callback(multi16_irq_callback); + machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(multi16_state::multi16_irq_callback),this)); } diff --git a/src/mess/drivers/paso1600.c b/src/mess/drivers/paso1600.c index edc61558ae2..3d152ab4926 100644 --- a/src/mess/drivers/paso1600.c +++ b/src/mess/drivers/paso1600.c @@ -56,6 +56,7 @@ public: virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_paso1600(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + IRQ_CALLBACK_MEMBER(paso1600_irq_callback); }; #define mc6845_h_char_total (m_crtc_vreg[0]) @@ -274,9 +275,9 @@ static MC6845_INTERFACE( mc6845_intf ) NULL /* update address callback */ }; -static IRQ_CALLBACK(paso1600_irq_callback) +IRQ_CALLBACK_MEMBER(paso1600_state::paso1600_irq_callback) { - return pic8259_acknowledge( device->machine().device( "pic8259" ) ); + return pic8259_acknowledge( machine().device( "pic8259" ) ); } WRITE_LINE_MEMBER( paso1600_state::paso1600_set_int_line ) @@ -294,7 +295,7 @@ static const struct pic8259_interface paso1600_pic8259_config = void paso1600_state::machine_start() { - m_maincpu->set_irq_acknowledge_callback(paso1600_irq_callback); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(paso1600_state::paso1600_irq_callback),this)); } diff --git a/src/mess/drivers/pc1512.c b/src/mess/drivers/pc1512.c index 42e4e6c789a..9e8d97e9e15 100644 --- a/src/mess/drivers/pc1512.c +++ b/src/mess/drivers/pc1512.c @@ -911,11 +911,9 @@ static I8237_INTERFACE( dmac_intf ) // pic8259_interface pic_intf //------------------------------------------------- -static IRQ_CALLBACK( pc1512_irq_callback ) +IRQ_CALLBACK_MEMBER(pc1512_state::pc1512_irq_callback) { - pc1512_state *state = device->machine().driver_data<pc1512_state>(); - - return pic8259_acknowledge(state->m_pic); + return pic8259_acknowledge(m_pic); } static const struct pic8259_interface pic_intf = @@ -1099,7 +1097,7 @@ SLOT_INTERFACE_END void pc1512_state::machine_start() { // register CPU IRQ callback - m_maincpu->set_irq_acknowledge_callback(pc1512_irq_callback); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pc1512_state::pc1512_irq_callback),this)); // set RAM size size_t ram_size = m_ram->size(); @@ -1179,7 +1177,7 @@ void pc1512_state::machine_reset() void pc1640_state::machine_start() { // register CPU IRQ callback - m_maincpu->set_irq_acknowledge_callback(pc1512_irq_callback); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pc1512_state::pc1512_irq_callback),this)); // state saving save_item(NAME(m_pit1)); diff --git a/src/mess/drivers/pc8801.c b/src/mess/drivers/pc8801.c index 6a3293a647d..f01a21e7cca 100644 --- a/src/mess/drivers/pc8801.c +++ b/src/mess/drivers/pc8801.c @@ -483,6 +483,7 @@ public: DECLARE_WRITE_LINE_MEMBER(pic_enlg_w); DECLARE_READ8_MEMBER(opn_porta_r); DECLARE_READ8_MEMBER(opn_portb_r); + IRQ_CALLBACK_MEMBER(pc8801_irq_callback); }; @@ -2308,12 +2309,11 @@ static I8214_INTERFACE( pic_intf ) DEVCB_DRIVER_LINE_MEMBER(pc8801_state,pic_enlg_w) }; -static IRQ_CALLBACK( pc8801_irq_callback ) +IRQ_CALLBACK_MEMBER(pc8801_state::pc8801_irq_callback) { - pc8801_state *state = device->machine().driver_data<pc8801_state>(); - UINT8 vector = (7 - state->m_pic->a_r()); + UINT8 vector = (7 - m_pic->a_r()); - state->m_int_state &= ~(1<<vector); + m_int_state &= ~(1<<vector); m_maincpu->set_input_line(0,CLEAR_LINE); return vector << 1; @@ -2344,27 +2344,26 @@ INTERRUPT_GEN_MEMBER(pc8801_state::pc8801_vrtc_irq) #include "debugger.h" -static IRQ_CALLBACK( pc8801_irq_callback ) +IRQ_CALLBACK_MEMBER(pc8801_state::pc8801_irq_callback) { - pc8801_state *state = device->machine().driver_data<pc8801_state>(); - if(state->m_sound_irq_latch) + if(m_sound_irq_latch) { - state->m_sound_irq_latch = 0; + m_sound_irq_latch = 0; return 4*2; } - else if(state->m_vrtc_irq_latch) + else if(m_vrtc_irq_latch) { - state->m_vrtc_irq_latch = 0; + m_vrtc_irq_latch = 0; return 1*2; } - else if(state->m_timer_irq_latch) + else if(m_timer_irq_latch) { - state->m_timer_irq_latch = 0; + m_timer_irq_latch = 0; return 2*2; } - printf("IRQ triggered but no vector on the bus! %02x %02x %02x %02x\n",state->m_i8214_irq_level,state->m_sound_irq_latch,state->m_vrtc_irq_latch,state->m_timer_irq_latch); - debugger_break(device->machine()); + printf("IRQ triggered but no vector on the bus! %02x %02x %02x %02x\n",m_i8214_irq_level,m_sound_irq_latch,m_vrtc_irq_latch,m_timer_irq_latch); + debugger_break(machine()); return 4*2; //TODO: mustn't happen } @@ -2412,7 +2411,7 @@ INTERRUPT_GEN_MEMBER(pc8801_state::pc8801_vrtc_irq) void pc8801_state::machine_start() { - m_maincpu->set_irq_acknowledge_callback(pc8801_irq_callback); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(pc8801_state::pc8801_irq_callback),this)); machine().device<upd765a_device>("upd765")->setup_intrq_cb(upd765a_device::line_cb(FUNC(pc8801_state::fdc_irq_w), this)); machine().device<floppy_connector>("upd765:0")->get_device()->set_rpm(300); diff --git a/src/mess/drivers/portfoli.c b/src/mess/drivers/portfoli.c index 9bd5785c70d..dcd54286874 100644 --- a/src/mess/drivers/portfoli.c +++ b/src/mess/drivers/portfoli.c @@ -161,24 +161,22 @@ WRITE8_MEMBER( portfolio_state::sivr_w ) } //------------------------------------------------- -// IRQ_CALLBACK( portfolio_int_ack ) +// IRQ_CALLBACK_MEMBER( portfolio_int_ack ) //------------------------------------------------- -static IRQ_CALLBACK( portfolio_int_ack ) +IRQ_CALLBACK_MEMBER(portfolio_state::portfolio_int_ack) { - portfolio_state *state = device->machine().driver_data<portfolio_state>(); - - UINT8 vector = state->m_sivr; + UINT8 vector = m_sivr; for (int i = 0; i < 4; i++) { - if (BIT(state->m_ip, i)) + if (BIT(m_ip, i)) { // clear interrupt pending bit - state->m_ip &= ~(1 << i); + m_ip &= ~(1 << i); if (i == 3) - vector = state->m_sivr; + vector = m_sivr; else vector = INTERRUPT_VECTOR[i]; @@ -186,7 +184,7 @@ static IRQ_CALLBACK( portfolio_int_ack ) } } - state->check_interrupt(); + check_interrupt(); return vector; } @@ -761,7 +759,7 @@ void portfolio_state::machine_start() address_space &program = m_maincpu->space(AS_PROGRAM); /* set CPU interrupt vector callback */ - m_maincpu->set_irq_acknowledge_callback(portfolio_int_ack); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(portfolio_state::portfolio_int_ack),this)); /* memory expansions */ switch (machine().device<ram_device>(RAM_TAG)->size()) diff --git a/src/mess/drivers/trs80m2.c b/src/mess/drivers/trs80m2.c index 1f19d96be87..8d32366ebe9 100644 --- a/src/mess/drivers/trs80m2.c +++ b/src/mess/drivers/trs80m2.c @@ -723,11 +723,9 @@ static const z80_daisy_config trs80m2_daisy_chain[] = // pic8259_interface pic_intf //------------------------------------------------- -static IRQ_CALLBACK( trs80m16_irq_callback ) +IRQ_CALLBACK_MEMBER(trs80m16_state::trs80m16_irq_callback) { - trs80m16_state *state = device->machine().driver_data<trs80m16_state>(); - - return pic8259_acknowledge(state->m_pic); + return pic8259_acknowledge(m_pic); } static const struct pic8259_interface pic_intf = @@ -775,7 +773,7 @@ void trs80m16_state::machine_start() trs80m2_state::machine_start(); // register CPU IRQ callback - m_maincpu->set_irq_acknowledge_callback(trs80m16_irq_callback); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(trs80m16_state::trs80m16_irq_callback),this)); // register for state saving save_item(NAME(m_ual)); diff --git a/src/mess/drivers/v1050.c b/src/mess/drivers/v1050.c index bb9456c7848..3775fd65d32 100644 --- a/src/mess/drivers/v1050.c +++ b/src/mess/drivers/v1050.c @@ -982,15 +982,13 @@ LEGACY_FLOPPY_OPTIONS_END // Machine Initialization -static IRQ_CALLBACK( v1050_int_ack ) +IRQ_CALLBACK_MEMBER(v1050_state::v1050_int_ack) { - v1050_state *state = device->machine().driver_data<v1050_state>(); - - UINT8 vector = 0xf0 | (state->m_pic->a_r() << 1); + UINT8 vector = 0xf0 | (m_pic->a_r() << 1); //logerror("Interrupt Acknowledge Vector: %02x\n", vector); - state->m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE); + m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE); return vector; } @@ -1011,7 +1009,7 @@ void v1050_state::machine_start() m_rtc->cs1_w(1); // set CPU interrupt callback - m_maincpu->set_irq_acknowledge_callback(v1050_int_ack); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(v1050_state::v1050_int_ack),this)); // setup memory banking UINT8 *ram = machine().device<ram_device>(RAM_TAG)->pointer(); diff --git a/src/mess/drivers/victor9k.c b/src/mess/drivers/victor9k.c index 9dc949a58d2..9d004652d5e 100644 --- a/src/mess/drivers/victor9k.c +++ b/src/mess/drivers/victor9k.c @@ -915,17 +915,15 @@ static IEEE488_INTERFACE( ieee488_intf ) // Machine Initialization -static IRQ_CALLBACK( victor9k_irq_callback ) +IRQ_CALLBACK_MEMBER(victor9k_state::victor9k_irq_callback) { - victor9k_state *state = device->machine().driver_data<victor9k_state>(); - - return pic8259_acknowledge(state->m_pic); + return pic8259_acknowledge(m_pic); } void victor9k_state::machine_start() { // set interrupt callback - m_maincpu->set_irq_acknowledge_callback(victor9k_irq_callback); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(victor9k_state::victor9k_irq_callback),this)); // memory banking address_space &program = m_maincpu->space(AS_PROGRAM); diff --git a/src/mess/drivers/vidbrain.c b/src/mess/drivers/vidbrain.c index 56667836b91..e5ca3a171d1 100644 --- a/src/mess/drivers/vidbrain.c +++ b/src/mess/drivers/vidbrain.c @@ -482,29 +482,27 @@ static VIDEOBRAIN_EXPANSION_INTERFACE( expansion_intf ) //************************************************************************** //------------------------------------------------- -// IRQ_CALLBACK( vidbrain_int_ack ) +// IRQ_CALLBACK_MEMBER(vidbrain_int_ack) //------------------------------------------------- -static IRQ_CALLBACK( vidbrain_int_ack ) +IRQ_CALLBACK_MEMBER(vidbrain_state::vidbrain_int_ack) { - vidbrain_state *state = device->machine().driver_data<vidbrain_state>(); - - UINT16 vector = state->m_vector; + UINT16 vector = m_vector; - switch (state->m_int_enable) + switch (m_int_enable) { case 1: vector |= 0x80; - state->m_ext_int_latch = 0; + m_ext_int_latch = 0; break; case 3: vector &= ~0x80; - state->m_timer_int_latch = 0; + m_timer_int_latch = 0; break; } - state->interrupt_check(); + interrupt_check(); return vector; } @@ -530,7 +528,7 @@ void vidbrain_state::device_timer(emu_timer &timer, device_timer_id id, int para void vidbrain_state::machine_start() { // register IRQ callback - m_maincpu->set_irq_acknowledge_callback(vidbrain_int_ack); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(vidbrain_state::vidbrain_int_ack),this)); // allocate timers m_timer_ne555 = timer_alloc(TIMER_JOYSTICK); diff --git a/src/mess/drivers/vixen.c b/src/mess/drivers/vixen.c index 70a181910ac..c40d6a991ac 100644 --- a/src/mess/drivers/vixen.c +++ b/src/mess/drivers/vixen.c @@ -727,10 +727,10 @@ void vixen_state::fdc_intrq_w(bool state) //************************************************************************** //------------------------------------------------- -// IRQ_CALLBACK( vixen ) +// IRQ_CALLBACK_MEMBER( vixen_int_ack ) //------------------------------------------------- -static IRQ_CALLBACK( vixen_int_ack ) +IRQ_CALLBACK_MEMBER(vixen_state::vixen_int_ack) { // D0 is pulled low return 0xfe; @@ -744,7 +744,7 @@ static IRQ_CALLBACK( vixen_int_ack ) void vixen_state::machine_start() { // interrupt callback - m_maincpu->set_irq_acknowledge_callback(vixen_int_ack); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(vixen_state::vixen_int_ack),this)); // configure memory banking UINT8 *ram = m_ram->pointer(); diff --git a/src/mess/drivers/wangpc.c b/src/mess/drivers/wangpc.c index 23cf111ef37..c549046192b 100644 --- a/src/mess/drivers/wangpc.c +++ b/src/mess/drivers/wangpc.c @@ -743,11 +743,9 @@ void wangpc_state::check_level2_interrupts() pic8259_ir2_w(m_pic, state); } -static IRQ_CALLBACK( wangpc_irq_callback ) +IRQ_CALLBACK_MEMBER(wangpc_state::wangpc_irq_callback) { - wangpc_state *state = device->machine().driver_data<wangpc_state>(); - - return pic8259_acknowledge(state->m_pic); + return pic8259_acknowledge(m_pic); } static const struct pic8259_interface pic_intf = @@ -1099,7 +1097,7 @@ SLOT_INTERFACE_END void wangpc_state::machine_start() { // register CPU IRQ callback - m_maincpu->set_irq_acknowledge_callback(wangpc_irq_callback); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(wangpc_state::wangpc_irq_callback),this)); // connect serial keyboard m_uart->connect(m_kb); diff --git a/src/mess/drivers/x1.c b/src/mess/drivers/x1.c index c83b02a9fb6..71769713a1a 100644 --- a/src/mess/drivers/x1.c +++ b/src/mess/drivers/x1.c @@ -2347,24 +2347,23 @@ static const cassette_interface x1_cassette_interface = *************************************/ #ifdef UNUSED_FUNCTION -static IRQ_CALLBACK(x1_irq_callback) +IRQ_CALLBACK_MEMBER(x1_state::x1_irq_callback) { - x1_state *state = device->machine().driver_data<x1_state>(); - if(state->m_ctc_irq_flag != 0) + if(m_ctc_irq_flag != 0) { - state->m_ctc_irq_flag = 0; - if(state->m_key_irq_flag == 0) // if no other devices are pulling the IRQ line high - device->execute().set_input_line(0, CLEAR_LINE); - return state->m_irq_vector; + m_ctc_irq_flag = 0; + if(m_key_irq_flag == 0) // if no other devices are pulling the IRQ line high + device.execute().set_input_line(0, CLEAR_LINE); + return m_irq_vector; } - if(state->m_key_irq_flag != 0) + if(m_key_irq_flag != 0) { - state->m_key_irq_flag = 0; - if(state->m_ctc_irq_flag == 0) // if no other devices are pulling the IRQ line high - device->execute().set_input_line(0, CLEAR_LINE); - return state->m_key_irq_vector; + m_key_irq_flag = 0; + if(m_ctc_irq_flag == 0) // if no other devices are pulling the IRQ line high + device.execute().set_input_line(0, CLEAR_LINE); + return m_key_irq_vector; } - return state->m_irq_vector; + return m_irq_vector; } #endif @@ -2442,7 +2441,7 @@ MACHINE_RESET_MEMBER(x1_state,x1) m_io_bank_mode = 0; - //machine().device("x1_cpu")->execute().set_irq_acknowledge_callback(x1_irq_callback); + //machine().device("x1_cpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(x1_state::x1_irq_callback),this)); m_cmt_current_cmd = 0; m_cmt_test = 0; diff --git a/src/mess/drivers/z100.c b/src/mess/drivers/z100.c index ebdce4713cf..5319c1a9510 100644 --- a/src/mess/drivers/z100.c +++ b/src/mess/drivers/z100.c @@ -206,6 +206,7 @@ public: virtual void palette_init(); UINT32 screen_update_z100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_INPUT_CHANGED_MEMBER(key_stroke); + IRQ_CALLBACK_MEMBER(z100_irq_callback); }; #define mc6845_h_char_total (m_crtc_vreg[0]) @@ -594,9 +595,9 @@ INPUT_PORTS_START( z100 ) PORT_CONFSETTING( 0x01, "Color" ) INPUT_PORTS_END -static IRQ_CALLBACK(z100_irq_callback) +IRQ_CALLBACK_MEMBER(z100_state::z100_irq_callback) { - return pic8259_acknowledge( device->machine().device( "pic8259_master" ) ); + return pic8259_acknowledge( machine().device( "pic8259_master" ) ); } WRITE_LINE_MEMBER( z100_state::z100_pic_irq ) @@ -751,7 +752,7 @@ void z100_state::palette_init() void z100_state::machine_start() { - machine().device("maincpu")->execute().set_irq_acknowledge_callback(z100_irq_callback); + machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(z100_state::z100_irq_callback),this)); m_mc6845 = machine().device<mc6845_device>("crtc"); } |