diff options
Diffstat (limited to 'src/mame/drivers')
-rw-r--r-- | src/mame/drivers/bnstars.c | 14 | ||||
-rw-r--r-- | src/mame/drivers/calchase.c | 8 | ||||
-rw-r--r-- | src/mame/drivers/chihiro.c | 10 | ||||
-rw-r--r-- | src/mame/drivers/crystal.c | 12 | ||||
-rw-r--r-- | src/mame/drivers/funkball.c | 8 | ||||
-rw-r--r-- | src/mame/drivers/galgame.c | 7 | ||||
-rw-r--r-- | src/mame/drivers/gamecstl.c | 8 | ||||
-rw-r--r-- | src/mame/drivers/gammagic.c | 8 | ||||
-rw-r--r-- | src/mame/drivers/jaguar.c | 4 | ||||
-rw-r--r-- | src/mame/drivers/mediagx.c | 8 | ||||
-rw-r--r-- | src/mame/drivers/midqslvr.c | 8 | ||||
-rw-r--r-- | src/mame/drivers/model1.c | 26 | ||||
-rw-r--r-- | src/mame/drivers/photon.c | 5 | ||||
-rw-r--r-- | src/mame/drivers/photoply.c | 8 | ||||
-rw-r--r-- | src/mame/drivers/queen.c | 8 | ||||
-rw-r--r-- | src/mame/drivers/rastersp.c | 22 | ||||
-rw-r--r-- | src/mame/drivers/savquest.c | 8 | ||||
-rw-r--r-- | src/mame/drivers/su2000.c | 8 | ||||
-rw-r--r-- | src/mame/drivers/taito_l.c | 7 | ||||
-rw-r--r-- | src/mame/drivers/taitowlf.c | 8 | ||||
-rw-r--r-- | src/mame/drivers/voyager.c | 8 | ||||
-rw-r--r-- | src/mame/drivers/xtom3d.c | 8 |
22 files changed, 103 insertions, 108 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) diff --git a/src/mame/drivers/calchase.c b/src/mame/drivers/calchase.c index 22d0b1c6d6a..dd8918f6dc1 100644 --- a/src/mame/drivers/calchase.c +++ b/src/mame/drivers/calchase.c @@ -181,6 +181,7 @@ public: DECLARE_DRIVER_INIT(calchase); virtual void machine_start(); virtual void machine_reset(); + IRQ_CALLBACK_MEMBER(irq_callback); }; @@ -803,10 +804,9 @@ static INPUT_PORTS_START( calchase ) INPUT_PORTS_END #endif -static IRQ_CALLBACK(irq_callback) +IRQ_CALLBACK_MEMBER(calchase_state::irq_callback) { - calchase_state *state = device->machine().driver_data<calchase_state>(); - return pic8259_acknowledge( state->m_pic8259_1); + return pic8259_acknowledge(m_pic8259_1); } void calchase_state::machine_start() @@ -814,7 +814,7 @@ void calchase_state::machine_start() m_bios_ram = auto_alloc_array(machine(), UINT32, 0x10000/4); m_bios_ext_ram = auto_alloc_array(machine(), UINT32, 0x10000/4); - machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback); + machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(calchase_state::irq_callback),this)); m_pit8254 = machine().device( "pit8254" ); m_pic8259_1 = machine().device( "pic8259_1" ); diff --git a/src/mame/drivers/chihiro.c b/src/mame/drivers/chihiro.c index ddf1d264b51..56a5aff573b 100644 --- a/src/mame/drivers/chihiro.c +++ b/src/mame/drivers/chihiro.c @@ -418,6 +418,7 @@ public: DECLARE_READ8_MEMBER(get_slave_ack); DECLARE_WRITE_LINE_MEMBER(chihiro_pit8254_out0_changed); DECLARE_WRITE_LINE_MEMBER(chihiro_pit8254_out2_changed); + IRQ_CALLBACK_MEMBER(irq_callback); }; /* @@ -1575,14 +1576,13 @@ static const struct pic8259_interface chihiro_pic8259_2_config = DEVCB_NULL }; -static IRQ_CALLBACK(irq_callback) +IRQ_CALLBACK_MEMBER(chihiro_state::irq_callback) { - chihiro_state *chst=device->machine().driver_data<chihiro_state>(); int r = 0; - r = pic8259_acknowledge(chst->chihiro_devs.pic8259_2); + r = pic8259_acknowledge(chihiro_devs.pic8259_2); if (r==0) { - r = pic8259_acknowledge(chst->chihiro_devs.pic8259_1); + r = pic8259_acknowledge(chihiro_devs.pic8259_1); } return r; } @@ -1805,7 +1805,7 @@ void chihiro_state::machine_start() smbus_register_device(0x10,smbus_callback_pic16lc); smbus_register_device(0x45,smbus_callback_cx25871); smbus_register_device(0x54,smbus_callback_eeprom); - machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback); + machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(chihiro_state::irq_callback),this)); chihiro_devs.pic8259_1 = machine().device( "pic8259_1" ); chihiro_devs.pic8259_2 = machine().device( "pic8259_2" ); chihiro_devs.ide = machine().device( "ide" ); diff --git a/src/mame/drivers/crystal.c b/src/mame/drivers/crystal.c index 7c6e9576c83..75a1bbdd859 100644 --- a/src/mame/drivers/crystal.c +++ b/src/mame/drivers/crystal.c @@ -194,6 +194,7 @@ public: void screen_eof_crystal(screen_device &screen, bool state); INTERRUPT_GEN_MEMBER(crystal_interrupt); TIMER_CALLBACK_MEMBER(Timercb); + IRQ_CALLBACK_MEMBER(icallback); }; static void IntReq( running_machine &machine, int num ) @@ -271,10 +272,9 @@ WRITE32_MEMBER(crystal_state::IntAck_w) m_IntHigh = (data >> 8) & 7; } -static IRQ_CALLBACK( icallback ) +IRQ_CALLBACK_MEMBER(crystal_state::icallback) { - crystal_state *state = device->machine().driver_data<crystal_state>(); - address_space &space = device->memory().space(AS_PROGRAM); + address_space &space = device.memory().space(AS_PROGRAM); UINT32 IntPend = space.read_dword(0x01800c0c); int i; @@ -282,7 +282,7 @@ static IRQ_CALLBACK( icallback ) { if (BIT(IntPend, i)) { - return (state->m_IntHigh << 5) | i; + return (m_IntHigh << 5) | i; } } return 0; //This should never happen @@ -582,7 +582,7 @@ void crystal_state::machine_start() m_ds1302 = machine().device<ds1302_device>("rtc"); m_vr0video = machine().device("vr0"); - machine().device("maincpu")->execute().set_irq_acknowledge_callback(icallback); + machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(crystal_state::icallback),this)); for (i = 0; i < 4; i++) m_Timer[i] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(crystal_state::Timercb),this), (void*)(FPTR)i); @@ -611,7 +611,7 @@ void crystal_state::machine_reset() memset(m_vidregs, 0, 0x10000); m_FlipCount = 0; m_IntHigh = 0; - machine().device("maincpu")->execute().set_irq_acknowledge_callback(icallback); + machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(crystal_state::icallback),this)); m_Bank = 0; membank("bank1")->set_base(memregion("user1")->base() + 0); m_FlashCmd = 0xff; diff --git a/src/mame/drivers/funkball.c b/src/mame/drivers/funkball.c index ee92a587178..39795324945 100644 --- a/src/mame/drivers/funkball.c +++ b/src/mame/drivers/funkball.c @@ -165,6 +165,7 @@ public: virtual void machine_start(); virtual void machine_reset(); UINT32 screen_update_funkball(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + IRQ_CALLBACK_MEMBER(irq_callback); }; void funkball_state::video_start() @@ -1090,10 +1091,9 @@ static void funkball_set_keyb_int(running_machine &machine, int state) pic8259_ir1_w(drvstate->m_pic8259_1, state); } -static IRQ_CALLBACK(irq_callback) +IRQ_CALLBACK_MEMBER(funkball_state::irq_callback) { - funkball_state *state = device->machine().driver_data<funkball_state>(); - return pic8259_acknowledge( state->m_pic8259_1); + return pic8259_acknowledge(m_pic8259_1); } void funkball_state::machine_start() @@ -1102,7 +1102,7 @@ void funkball_state::machine_start() init_pc_common(machine(), PCCOMMON_KEYBOARD_AT, funkball_set_keyb_int); - m_maincpu->set_irq_acknowledge_callback(irq_callback); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(funkball_state::irq_callback),this)); kbdc8042_init(machine(), &at8042); diff --git a/src/mame/drivers/galgame.c b/src/mame/drivers/galgame.c index 91b595d2adb..f09bf15d209 100644 --- a/src/mame/drivers/galgame.c +++ b/src/mame/drivers/galgame.c @@ -49,6 +49,7 @@ public: virtual void palette_init(); UINT32 screen_update_galaxygame(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(galaxygame_irq); + IRQ_CALLBACK_MEMBER(galaxygame_irq_callback); }; /************************************* @@ -294,9 +295,9 @@ void galaxygame_state::palette_init() palette_set_color(machine(),1,RGB_WHITE); /* white */ } -static IRQ_CALLBACK(galaxygame_irq_callback) +IRQ_CALLBACK_MEMBER(galaxygame_state::galaxygame_irq_callback) { - device->execute().set_input_line(0, CLEAR_LINE); + device.execute().set_input_line(0, CLEAR_LINE); return 0x40; } @@ -316,7 +317,7 @@ void galaxygame_state::machine_reset() m_point_display_list_index = 0; m_interrupt = 0; - machine().device("maincpu")->execute().set_irq_acknowledge_callback(galaxygame_irq_callback); + machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(galaxygame_state::galaxygame_irq_callback),this)); } static const struct t11_setup t11_data = diff --git a/src/mame/drivers/gamecstl.c b/src/mame/drivers/gamecstl.c index 2d95ac83f6a..7c4386808bf 100644 --- a/src/mame/drivers/gamecstl.c +++ b/src/mame/drivers/gamecstl.c @@ -120,6 +120,7 @@ public: virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_gamecstl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + IRQ_CALLBACK_MEMBER(irq_callback); }; @@ -602,10 +603,9 @@ static INPUT_PORTS_START(gamecstl) PORT_START("pc_keyboard_7") INPUT_PORTS_END -static IRQ_CALLBACK(irq_callback) +IRQ_CALLBACK_MEMBER(gamecstl_state::irq_callback) { - gamecstl_state *state = device->machine().driver_data<gamecstl_state>(); - return pic8259_acknowledge(state->m_pic8259_1); + return pic8259_acknowledge(m_pic8259_1); } void gamecstl_state::machine_start() @@ -621,7 +621,7 @@ void gamecstl_state::machine_reset() { machine().root_device().membank("bank1")->set_base(machine().root_device().memregion("bios")->base() + 0x30000); - machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback); + machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(gamecstl_state::irq_callback),this)); } diff --git a/src/mame/drivers/gammagic.c b/src/mame/drivers/gammagic.c index 6ffee0c690f..9bd26c6c47f 100644 --- a/src/mame/drivers/gammagic.c +++ b/src/mame/drivers/gammagic.c @@ -103,6 +103,7 @@ public: UINT8 m_atapi_data[ATAPI_DATA_SIZE]; DECLARE_DRIVER_INIT(gammagic); + IRQ_CALLBACK_MEMBER(irq_callback); }; //static void atapi_irq(running_machine &machine, int state); @@ -622,16 +623,15 @@ static INPUT_PORTS_START( gammagic ) INPUT_PORTS_END #endif -static IRQ_CALLBACK(irq_callback) +IRQ_CALLBACK_MEMBER(gammagic_state::irq_callback) { - gammagic_state *state = device->machine().driver_data<gammagic_state>(); - return pic8259_acknowledge( state->m_pic8259_1); + return pic8259_acknowledge(m_pic8259_1); } static MACHINE_START(gammagic) { gammagic_state *state = machine.driver_data<gammagic_state>(); - machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback); + machine.device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(gammagic_state::irq_callback),state)); state->m_pit8254 = machine.device( "pit8254" ); state->m_pic8259_1 = machine.device( "pic8259_1" ); diff --git a/src/mame/drivers/jaguar.c b/src/mame/drivers/jaguar.c index c4b46cb61b7..2130c3e52ab 100644 --- a/src/mame/drivers/jaguar.c +++ b/src/mame/drivers/jaguar.c @@ -359,7 +359,7 @@ static DEVICE_IMAGE_LOAD( jaguar ); * *************************************/ -static IRQ_CALLBACK(jaguar_irq_callback) +IRQ_CALLBACK_MEMBER(jaguar_state::jaguar_irq_callback) { return (irqline == 6) ? 0x40 : -1; } @@ -375,7 +375,7 @@ static IRQ_CALLBACK(jaguar_irq_callback) void jaguar_state::machine_reset() { if (!m_is_cojag) - m_main_cpu->set_irq_acknowledge_callback(jaguar_irq_callback); + m_main_cpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(jaguar_state::jaguar_irq_callback),this)); m_protection_check = 0; diff --git a/src/mame/drivers/mediagx.c b/src/mame/drivers/mediagx.c index c095ba528de..cca10f4a754 100644 --- a/src/mame/drivers/mediagx.c +++ b/src/mame/drivers/mediagx.c @@ -199,6 +199,7 @@ public: DECLARE_READ32_MEMBER(speedup10_r); DECLARE_READ32_MEMBER(speedup11_r); TIMER_DEVICE_CALLBACK_MEMBER(sound_timer_callback); + IRQ_CALLBACK_MEMBER(irq_callback); }; // Display controller registers @@ -1047,10 +1048,9 @@ static INPUT_PORTS_START(mediagx) PORT_BIT( 0xf00, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3) INPUT_PORTS_END -static IRQ_CALLBACK(irq_callback) +IRQ_CALLBACK_MEMBER(mediagx_state::irq_callback) { - mediagx_state *state = device->machine().driver_data<mediagx_state>(); - return pic8259_acknowledge( state->m_pic8259_1); + return pic8259_acknowledge(m_pic8259_1); } void mediagx_state::machine_start() @@ -1069,7 +1069,7 @@ void mediagx_state::machine_reset() { UINT8 *rom = memregion("bios")->base(); - machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback); + machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(mediagx_state::irq_callback),this)); memcpy(m_bios_ram, rom, 0x40000); machine().device("maincpu")->reset(); diff --git a/src/mame/drivers/midqslvr.c b/src/mame/drivers/midqslvr.c index 7522a8b1a22..a74b5a8a084 100644 --- a/src/mame/drivers/midqslvr.c +++ b/src/mame/drivers/midqslvr.c @@ -98,6 +98,7 @@ public: DECLARE_WRITE_LINE_MEMBER(midqslvr_pic8259_1_set_int_line); virtual void machine_start(); virtual void machine_reset(); + IRQ_CALLBACK_MEMBER(irq_callback); }; @@ -643,10 +644,9 @@ static void midqslvr_set_keyb_int(running_machine &machine, int state) pic8259_ir1_w(drvstate->m_pic8259_1, state); } -static IRQ_CALLBACK(irq_callback) +IRQ_CALLBACK_MEMBER(midqslvr_state::irq_callback) { - midqslvr_state *state = device->machine().driver_data<midqslvr_state>(); - return pic8259_acknowledge( state->m_pic8259_1); + return pic8259_acknowledge(m_pic8259_1); } void midqslvr_state::machine_start() @@ -661,7 +661,7 @@ void midqslvr_state::machine_start() init_pc_common(machine(), PCCOMMON_KEYBOARD_AT, midqslvr_set_keyb_int); - m_maincpu->set_irq_acknowledge_callback(irq_callback); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(midqslvr_state::irq_callback),this)); intel82439tx_init(machine()); kbdc8042_init(machine(), &at8042); diff --git a/src/mame/drivers/model1.c b/src/mame/drivers/model1.c index 7e6f615b9d0..ebe511ac9fe 100644 --- a/src/mame/drivers/model1.c +++ b/src/mame/drivers/model1.c @@ -699,19 +699,17 @@ WRITE16_MEMBER(model1_state::bank_w) -static void irq_raise(running_machine &machine, int level) +void model1_state::irq_raise(int level) { - model1_state *state = machine.driver_data<model1_state>(); // logerror("irq: raising %d\n", level); // irq_status |= (1 << level); - state->m_last_irq = level; - machine.device("maincpu")->execute().set_input_line(0, HOLD_LINE); + m_last_irq = level; + machine().device("maincpu")->execute().set_input_line(0, HOLD_LINE); } -static IRQ_CALLBACK(irq_callback) +IRQ_CALLBACK_MEMBER(model1_state::irq_callback) { - model1_state *state = device->machine().driver_data<model1_state>(); - return state->m_last_irq; + return m_last_irq; } // vf // 1 = fe3ed4 @@ -727,10 +725,10 @@ static IRQ_CALLBACK(irq_callback) // 3 = ff54c // other = ff568/ff574 -static void irq_init(running_machine &machine) +void model1_state::irq_init() { - 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_input_line(0, CLEAR_LINE); + machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(model1_state::irq_callback),this)); } TIMER_DEVICE_CALLBACK_MEMBER(model1_state::model1_interrupt) @@ -739,11 +737,11 @@ TIMER_DEVICE_CALLBACK_MEMBER(model1_state::model1_interrupt) if (scanline == 384) { - irq_raise(machine(), 1); + irq_raise(1); } else if(scanline == 384/2) { - irq_raise(machine(), m_sound_irq); + irq_raise(m_sound_irq); // if the FIFO has something in it, signal the 68k too if (m_fifo_rptr != m_fifo_wptr) @@ -756,7 +754,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(model1_state::model1_interrupt) MACHINE_RESET_MEMBER(model1_state,model1) { membank("bank1")->set_base(memregion("maincpu")->base() + 0x1000000); - irq_init(machine()); + irq_init(); model1_tgp_reset(machine(), !strcmp(machine().system().name, "swa") || !strcmp(machine().system().name, "wingwar") || !strcmp(machine().system().name, "wingwaru") || !strcmp(machine().system().name, "wingwarj")); if (!strcmp(machine().system().name, "swa")) { @@ -775,7 +773,7 @@ MACHINE_RESET_MEMBER(model1_state,model1) MACHINE_RESET_MEMBER(model1_state,model1_vr) { membank("bank1")->set_base(memregion("maincpu")->base() + 0x1000000); - irq_init(machine()); + irq_init(); model1_vr_tgp_reset(machine()); m_sound_irq = 3; diff --git a/src/mame/drivers/photon.c b/src/mame/drivers/photon.c index 127c459bf55..7a1e6e021cf 100644 --- a/src/mame/drivers/photon.c +++ b/src/mame/drivers/photon.c @@ -38,6 +38,7 @@ public: virtual void video_start(); UINT32 screen_update_photon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(pk8000_interrupt); + IRQ_CALLBACK_MEMBER(pk8000_irq_callback); }; @@ -191,7 +192,7 @@ INTERRUPT_GEN_MEMBER(photon_state::pk8000_interrupt) device.execute().set_input_line(0, HOLD_LINE); } -static IRQ_CALLBACK(pk8000_irq_callback) +IRQ_CALLBACK_MEMBER(photon_state::pk8000_irq_callback) { return 0xff; } @@ -200,7 +201,7 @@ static IRQ_CALLBACK(pk8000_irq_callback) void photon_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(photon_state::pk8000_irq_callback),this)); } void photon_state::video_start() diff --git a/src/mame/drivers/photoply.c b/src/mame/drivers/photoply.c index 3d362bf820b..10b67e04a3e 100644 --- a/src/mame/drivers/photoply.c +++ b/src/mame/drivers/photoply.c @@ -57,6 +57,7 @@ public: DECLARE_WRITE_LINE_MEMBER(at_pit8254_out2_changed); DECLARE_DRIVER_INIT(photoply); virtual void machine_start(); + IRQ_CALLBACK_MEMBER(irq_callback); }; @@ -226,10 +227,9 @@ static const struct pic8259_interface pic8259_2_config = DEVCB_NULL }; -static IRQ_CALLBACK(irq_callback) +IRQ_CALLBACK_MEMBER(photoply_state::irq_callback) { - photoply_state *state = device->machine().driver_data<photoply_state>(); - return pic8259_acknowledge(state->m_pic8259_1); + return pic8259_acknowledge(m_pic8259_1); } WRITE_LINE_MEMBER(photoply_state::at_pit8254_out0_changed) @@ -342,7 +342,7 @@ static void photoply_set_keyb_int(running_machine &machine, int state) void photoply_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(photoply_state::irq_callback),this)); m_pit8253 = machine().device( "pit8254" ); m_pic8259_1 = machine().device( "pic8259_1" ); m_pic8259_2 = machine().device( "pic8259_2" ); diff --git a/src/mame/drivers/queen.c b/src/mame/drivers/queen.c index 9b6325136ba..80cc3e75f0d 100644 --- a/src/mame/drivers/queen.c +++ b/src/mame/drivers/queen.c @@ -90,6 +90,7 @@ public: DECLARE_WRITE_LINE_MEMBER(queen_pic8259_1_set_int_line); virtual void machine_start(); virtual void machine_reset(); + IRQ_CALLBACK_MEMBER(irq_callback); }; @@ -507,10 +508,9 @@ static void queen_set_keyb_int(running_machine &machine, int state) pic8259_ir1_w(drvstate->m_pic8259_1, state); } -static IRQ_CALLBACK(irq_callback) +IRQ_CALLBACK_MEMBER(queen_state::irq_callback) { - queen_state *state = device->machine().driver_data<queen_state>(); - return pic8259_acknowledge( state->m_pic8259_1); + return pic8259_acknowledge(m_pic8259_1); } void queen_state::machine_start() @@ -520,7 +520,7 @@ void queen_state::machine_start() init_pc_common(machine(), PCCOMMON_KEYBOARD_AT, queen_set_keyb_int); - m_maincpu->set_irq_acknowledge_callback(irq_callback); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(queen_state::irq_callback),this)); intel82439tx_init(machine()); kbdc8042_init(machine(), &at8042); diff --git a/src/mame/drivers/rastersp.c b/src/mame/drivers/rastersp.c index 21efdd1317a..7b86a52ab32 100644 --- a/src/mame/drivers/rastersp.c +++ b/src/mame/drivers/rastersp.c @@ -41,8 +41,6 @@ * *************************************/ -static IRQ_CALLBACK( irq_callback ); - class rastersp_state : public driver_device { public: @@ -133,7 +131,7 @@ public: UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void update_irq(UINT32 which, UINT32 state); void upload_palette(UINT32 word1, UINT32 word2); - + IRQ_CALLBACK_MEMBER(irq_callback); protected: // driver_device overrides virtual void machine_reset(); @@ -151,7 +149,7 @@ protected: void rastersp_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(rastersp_state::irq_callback),this)); m_nvram8 = auto_alloc_array(machine(), UINT8, NVRAM_SIZE); @@ -358,29 +356,27 @@ UINT32 rastersp_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap * *************************************/ -static IRQ_CALLBACK( irq_callback ) +IRQ_CALLBACK_MEMBER(rastersp_state::irq_callback) { - rastersp_state *state = device->machine().driver_data<rastersp_state>(); - UINT8 vector = 0; - if (state->m_irq_status & (1 << rastersp_state::IRQ_SCSI)) + if (m_irq_status & (1 << IRQ_SCSI)) { vector = 11; } - else if (state->m_irq_status & (1 << rastersp_state::IRQ_DSP)) + else if (m_irq_status & (1 << IRQ_DSP)) { - state->update_irq(rastersp_state::IRQ_DSP, CLEAR_LINE); + update_irq(IRQ_DSP, CLEAR_LINE); vector = 12; } - else if (state->m_irq_status & (1 << rastersp_state::IRQ_VBLANK)) + else if (m_irq_status & (1 << IRQ_VBLANK)) { - state->update_irq(rastersp_state::IRQ_VBLANK, CLEAR_LINE); + update_irq(IRQ_VBLANK, CLEAR_LINE); vector = 13; } else { - fatalerror("Unknown x86 IRQ (m_irq_status = %x)", state->m_irq_status); + fatalerror("Unknown x86 IRQ (m_irq_status = %x)", m_irq_status); } return vector; diff --git a/src/mame/drivers/savquest.c b/src/mame/drivers/savquest.c index d9428cbdf8d..f83935edbf4 100644 --- a/src/mame/drivers/savquest.c +++ b/src/mame/drivers/savquest.c @@ -102,6 +102,7 @@ public: DECLARE_WRITE_LINE_MEMBER(savquest_pic8259_1_set_int_line); virtual void machine_start(); virtual void machine_reset(); + IRQ_CALLBACK_MEMBER(irq_callback); }; // Intel 82439TX System Controller (MXTC) @@ -606,10 +607,9 @@ static void savquest_set_keyb_int(running_machine &machine, int state) pic8259_ir1_w(drvstate->m_pic8259_1, state); } -static IRQ_CALLBACK(irq_callback) +IRQ_CALLBACK_MEMBER(savquest_state::irq_callback) { - savquest_state *state = device->machine().driver_data<savquest_state>(); - return pic8259_acknowledge( state->m_pic8259_1); + return pic8259_acknowledge(m_pic8259_1); } void savquest_state::machine_start() @@ -622,7 +622,7 @@ void savquest_state::machine_start() init_pc_common(machine(), PCCOMMON_KEYBOARD_AT, savquest_set_keyb_int); - m_maincpu->set_irq_acknowledge_callback(irq_callback); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(savquest_state::irq_callback),this)); intel82439tx_init(machine()); kbdc8042_init(machine(), &at8042); diff --git a/src/mame/drivers/su2000.c b/src/mame/drivers/su2000.c index 6b40f05861e..abb8c3f7a73 100644 --- a/src/mame/drivers/su2000.c +++ b/src/mame/drivers/su2000.c @@ -81,6 +81,7 @@ public: DECLARE_READ8_MEMBER(get_slave_ack); virtual void machine_start(); virtual void machine_reset(); + IRQ_CALLBACK_MEMBER(irq_callback); }; @@ -236,10 +237,9 @@ static const struct pit8253_config su2000_pit8254_config = * *************************************/ -static IRQ_CALLBACK( pc_irq_callback ) +IRQ_CALLBACK_MEMBER(su2000_state::irq_callback) { - su2000_state *state = device->machine().driver_data<su2000_state>(); - return pic8259_acknowledge(state->m_pic8259_1); + return pic8259_acknowledge(m_pic8259_1); } @@ -271,7 +271,7 @@ void su2000_state::machine_start() space.install_write_bank(0x100000, ram_limit - 1, "hma_bank"); membank("hma_bank")->set_base(m_pc_ram + 0xa0000); - machine().device("maincpu")->execute().set_irq_acknowledge_callback(pc_irq_callback); + machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(su2000_state::irq_callback),this)); init_pc_common(machine(), PCCOMMON_KEYBOARD_AT, su2000_set_keyb_int); diff --git a/src/mame/drivers/taito_l.c b/src/mame/drivers/taito_l.c index a1923ca2b6d..0155962145f 100644 --- a/src/mame/drivers/taito_l.c +++ b/src/mame/drivers/taito_l.c @@ -290,16 +290,15 @@ MACHINE_RESET_MEMBER(taitol_state,horshoes) } -static IRQ_CALLBACK( irq_callback ) +IRQ_CALLBACK_MEMBER(taitol_state::irq_callback) { - taitol_state *state = device->machine().driver_data<taitol_state>(); - return state->m_irq_adr_table[state->m_last_irq_level]; + return m_irq_adr_table[m_last_irq_level]; } TIMER_DEVICE_CALLBACK_MEMBER(taitol_state::vbl_interrupt) { int scanline = param; - m_maincpu->set_irq_acknowledge_callback(irq_callback); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(taitol_state::irq_callback),this)); /* kludge to make plgirls boot */ if (m_maincpu->state_int(Z80_IM) != 2) diff --git a/src/mame/drivers/taitowlf.c b/src/mame/drivers/taitowlf.c index 8dce31fa729..f4880c31ae8 100644 --- a/src/mame/drivers/taitowlf.c +++ b/src/mame/drivers/taitowlf.c @@ -83,6 +83,7 @@ public: virtual void machine_reset(); virtual void palette_init(); UINT32 screen_update_taitowlf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + IRQ_CALLBACK_MEMBER(irq_callback); }; #if !ENABLE_VGA @@ -532,15 +533,14 @@ static INPUT_PORTS_START(taitowlf) INPUT_PORTS_END #endif -static IRQ_CALLBACK(irq_callback) +IRQ_CALLBACK_MEMBER(taitowlf_state::irq_callback) { - taitowlf_state *state = device->machine().driver_data<taitowlf_state>(); - return pic8259_acknowledge( state->m_pic8259_1); + return pic8259_acknowledge(m_pic8259_1); } void taitowlf_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(taitowlf_state::irq_callback),this)); m_pit8254 = machine().device( "pit8254" ); m_pic8259_1 = machine().device( "pic8259_1" ); diff --git a/src/mame/drivers/voyager.c b/src/mame/drivers/voyager.c index d324c3eedcd..0847a8ba8ea 100644 --- a/src/mame/drivers/voyager.c +++ b/src/mame/drivers/voyager.c @@ -69,6 +69,7 @@ public: DECLARE_DRIVER_INIT(voyager); virtual void machine_start(); virtual void machine_reset(); + IRQ_CALLBACK_MEMBER(irq_callback); }; @@ -644,15 +645,14 @@ static INPUT_PORTS_START( voyager ) INPUT_PORTS_END #endif -static IRQ_CALLBACK(irq_callback) +IRQ_CALLBACK_MEMBER(voyager_state::irq_callback) { - voyager_state *state = device->machine().driver_data<voyager_state>(); - return pic8259_acknowledge( state->m_pic8259_1); + return pic8259_acknowledge(m_pic8259_1); } void voyager_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(voyager_state::irq_callback),this)); m_pit8254 = machine().device( "pit8254" ); m_pic8259_1 = machine().device( "pic8259_1" ); diff --git a/src/mame/drivers/xtom3d.c b/src/mame/drivers/xtom3d.c index 7c5c122882f..8522d0e06ad 100644 --- a/src/mame/drivers/xtom3d.c +++ b/src/mame/drivers/xtom3d.c @@ -115,6 +115,7 @@ public: DECLARE_WRITE_LINE_MEMBER(xtom3d_pic8259_1_set_int_line); virtual void machine_start(); virtual void machine_reset(); + IRQ_CALLBACK_MEMBER(irq_callback); }; // Intel 82439TX System Controller (MXTC) @@ -635,10 +636,9 @@ static void xtom3d_set_keyb_int(running_machine &machine, int state) pic8259_ir1_w(drvstate->m_pic8259_1, state); } -static IRQ_CALLBACK(irq_callback) +IRQ_CALLBACK_MEMBER(xtom3d_state::irq_callback) { - xtom3d_state *state = device->machine().driver_data<xtom3d_state>(); - return pic8259_acknowledge( state->m_pic8259_1); + return pic8259_acknowledge(m_pic8259_1); } void xtom3d_state::machine_start() @@ -653,7 +653,7 @@ void xtom3d_state::machine_start() init_pc_common(machine(), PCCOMMON_KEYBOARD_AT, xtom3d_set_keyb_int); - m_maincpu->set_irq_acknowledge_callback(irq_callback); + m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(xtom3d_state::irq_callback),this)); intel82439tx_init(machine()); kbdc8042_init(machine(), &at8042); |