diff options
author | Miodrag Milanovic <mmicko@gmail.com> | 2013-04-02 09:53:25 +0000 |
---|---|---|
committer | Miodrag Milanovic <mmicko@gmail.com> | 2013-04-02 09:53:25 +0000 |
commit | 1c813f4e2ad477f435ea43aefcea5343dc329250 (patch) | |
tree | ede5f82f0824fe3382b1c83e3fd62e9cf8328c48 /src | |
parent | c6533ad9194cad9a96a808f609815689cfe1a107 (diff) |
device callback handler cleanup (nw)
Diffstat (limited to 'src')
65 files changed, 200 insertions, 195 deletions
diff --git a/src/mame/drivers/actfancr.c b/src/mame/drivers/actfancr.c index 71ae8cdc83a..269a0fce827 100644 --- a/src/mame/drivers/actfancr.c +++ b/src/mame/drivers/actfancr.c @@ -275,15 +275,14 @@ GFXDECODE_END /******************************************************************************/ -static void sound_irq(device_t *device, int linestate) +WRITE_LINE_MEMBER(actfancr_state::sound_irq) { - actfancr_state *state = device->machine().driver_data<actfancr_state>(); - state->m_audiocpu->set_input_line(0, linestate); /* IRQ */ + m_audiocpu->set_input_line(0, state); /* IRQ */ } static const ym3812_interface ym3812_config = { - DEVCB_LINE(sound_irq) + DEVCB_DRIVER_LINE_MEMBER(actfancr_state,sound_irq) }; /******************************************************************************/ diff --git a/src/mame/drivers/alg.c b/src/mame/drivers/alg.c index 804c4ce8487..5a02fcc637f 100644 --- a/src/mame/drivers/alg.c +++ b/src/mame/drivers/alg.c @@ -411,7 +411,7 @@ INPUT_PORTS_END static const legacy_mos6526_interface cia_0_intf = { - DEVCB_LINE(amiga_cia_0_irq), /* irq_func */ + DEVCB_DRIVER_LINE_MEMBER(amiga_state,amiga_cia_0_irq), /* irq_func */ DEVCB_NULL, /* pc_func */ DEVCB_NULL, DEVCB_NULL, @@ -423,7 +423,7 @@ static const legacy_mos6526_interface cia_0_intf = static const legacy_mos6526_interface cia_1_intf = { - DEVCB_LINE(amiga_cia_1_irq), /* irq_func */ + DEVCB_DRIVER_LINE_MEMBER(amiga_state,amiga_cia_1_irq), /* irq_func */ DEVCB_NULL, /* pc_func */ DEVCB_NULL, DEVCB_NULL, diff --git a/src/mame/drivers/alpha68k.c b/src/mame/drivers/alpha68k.c index ea374a7bdab..8097e1a1eb6 100644 --- a/src/mame/drivers/alpha68k.c +++ b/src/mame/drivers/alpha68k.c @@ -1846,15 +1846,14 @@ static const ym2203_interface ym2203_config = DEVCB_NULL }; -static void YM3812_irq( device_t *device, int param ) +WRITE_LINE_MEMBER(alpha68k_state::ym3812_irq) { - alpha68k_state *state = device->machine().driver_data<alpha68k_state>(); - state->m_audiocpu->set_input_line(0, (param) ? HOLD_LINE : CLEAR_LINE); + m_audiocpu->set_input_line(0, (state) ? HOLD_LINE : CLEAR_LINE); } static const ym3812_interface ym3812_config = { - DEVCB_LINE(YM3812_irq) + DEVCB_DRIVER_LINE_MEMBER(alpha68k_state,ym3812_irq) }; diff --git a/src/mame/drivers/arcadia.c b/src/mame/drivers/arcadia.c index 7b9a07be748..46bc16f30bd 100644 --- a/src/mame/drivers/arcadia.c +++ b/src/mame/drivers/arcadia.c @@ -287,7 +287,7 @@ INPUT_PORTS_END static const legacy_mos6526_interface cia_0_intf = { - DEVCB_LINE(amiga_cia_0_irq), /* irq_func */ + DEVCB_DRIVER_LINE_MEMBER(amiga_state,amiga_cia_0_irq), /* irq_func */ DEVCB_NULL, /* pc_func */ DEVCB_NULL, DEVCB_NULL, @@ -299,7 +299,7 @@ static const legacy_mos6526_interface cia_0_intf = static const legacy_mos6526_interface cia_1_intf = { - DEVCB_LINE(amiga_cia_1_irq), /* irq_func */ + DEVCB_DRIVER_LINE_MEMBER(amiga_state,amiga_cia_1_irq), /* irq_func */ DEVCB_NULL, /* pc_func */ DEVCB_NULL, DEVCB_NULL, diff --git a/src/mame/drivers/backfire.c b/src/mame/drivers/backfire.c index 466e093a817..89400b9afa2 100644 --- a/src/mame/drivers/backfire.c +++ b/src/mame/drivers/backfire.c @@ -104,6 +104,7 @@ public: required_ioport m_io_in1; required_ioport m_io_in2; required_ioport m_io_in3; + DECLARE_WRITE_LINE_MEMBER(sound_irq_gen); }; //UINT32 *backfire_180010, *backfire_188010; @@ -436,14 +437,14 @@ static GFXDECODE_START( backfire ) GFXDECODE_END -static void sound_irq_gen(device_t *device, int state) +WRITE_LINE_MEMBER(backfire_state::sound_irq_gen) { logerror("sound irq\n"); } static const ymz280b_interface ymz280b_intf = { - DEVCB_LINE(sound_irq_gen) + DEVCB_DRIVER_LINE_MEMBER(backfire_state,sound_irq_gen) }; INTERRUPT_GEN_MEMBER(backfire_state::deco32_vbl_interrupt) diff --git a/src/mame/drivers/bbusters.c b/src/mame/drivers/bbusters.c index fb2996618e6..ef52d433378 100644 --- a/src/mame/drivers/bbusters.c +++ b/src/mame/drivers/bbusters.c @@ -633,9 +633,9 @@ GFXDECODE_END /******************************************************************************/ -static void sound_irq( device_t *device, int irq ) +WRITE_LINE_MEMBER(bbusters_state::sound_irq) { - device->machine().device("audiocpu")->execute().set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE); + machine().device("audiocpu")->execute().set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } static const ym2608_interface ym2608_config = @@ -645,12 +645,12 @@ static const ym2608_interface ym2608_config = AY8910_DEFAULT_LOADS, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL }, - DEVCB_LINE(sound_irq) + DEVCB_DRIVER_LINE_MEMBER(bbusters_state,sound_irq) }; static const ym2610_interface ym2610_config = { - DEVCB_LINE(sound_irq) + DEVCB_DRIVER_LINE_MEMBER(bbusters_state,sound_irq) }; /******************************************************************************/ diff --git a/src/mame/drivers/bishi.c b/src/mame/drivers/bishi.c index 45a5e9fbfdd..f02e97167db 100644 --- a/src/mame/drivers/bishi.c +++ b/src/mame/drivers/bishi.c @@ -358,16 +358,14 @@ static INPUT_PORTS_START( bishi2p ) INPUT_PORTS_END -static void sound_irq_gen(device_t *device, int state) +WRITE_LINE_MEMBER(bishi_state::sound_irq_gen) { - bishi_state *bishi = device->machine().driver_data<bishi_state>(); - - bishi->m_maincpu->set_input_line(M68K_IRQ_1, (state) ? ASSERT_LINE : CLEAR_LINE); + m_maincpu->set_input_line(M68K_IRQ_1, (state) ? ASSERT_LINE : CLEAR_LINE); } static const ymz280b_interface ymz280b_intf = { - DEVCB_LINE(sound_irq_gen) + DEVCB_DRIVER_LINE_MEMBER(bishi_state,sound_irq_gen) }; diff --git a/src/mame/drivers/cave.c b/src/mame/drivers/cave.c index 4e1e165b039..8b81268b1a4 100644 --- a/src/mame/drivers/cave.c +++ b/src/mame/drivers/cave.c @@ -139,11 +139,10 @@ INTERRUPT_GEN_MEMBER(cave_state::cave_interrupt) } /* Called by the YMZ280B to set the IRQ state */ -static void sound_irq_gen( device_t *device, int state ) +WRITE_LINE_MEMBER(cave_state::sound_irq_gen) { - cave_state *cave = device->machine().driver_data<cave_state>(); - cave->m_sound_irq = (state != 0); - update_irq_state(device->machine()); + m_sound_irq = (state != 0); + update_irq_state(machine()); } @@ -1817,7 +1816,7 @@ MACHINE_RESET_MEMBER(cave_state,cave) static const ymz280b_interface ymz280b_intf = { - DEVCB_LINE(sound_irq_gen) + DEVCB_DRIVER_LINE_MEMBER(cave_state,sound_irq_gen) }; WRITE_LINE_MEMBER(cave_state::irqhandler) diff --git a/src/mame/drivers/cd32.c b/src/mame/drivers/cd32.c index 2a4cb684832..9d3cb2d5dec 100644 --- a/src/mame/drivers/cd32.c +++ b/src/mame/drivers/cd32.c @@ -739,7 +739,7 @@ INPUT_PORTS_END static const legacy_mos6526_interface cia_0_intf = { - DEVCB_LINE(amiga_cia_0_irq), /* irq_func */ + DEVCB_DRIVER_LINE_MEMBER(amiga_state,amiga_cia_0_irq), /* irq_func */ DEVCB_NULL, /* pc_func */ DEVCB_NULL, DEVCB_NULL, @@ -751,7 +751,7 @@ static const legacy_mos6526_interface cia_0_intf = static const legacy_mos6526_interface cia_1_intf = { - DEVCB_LINE(amiga_cia_1_irq), /* irq_func */ + DEVCB_DRIVER_LINE_MEMBER(amiga_state,amiga_cia_1_irq), /* irq_func */ DEVCB_NULL, /* pc_func */ DEVCB_NULL, DEVCB_NULL, diff --git a/src/mame/drivers/chanbara.c b/src/mame/drivers/chanbara.c index eccc5e397a6..5adfaa14a17 100644 --- a/src/mame/drivers/chanbara.c +++ b/src/mame/drivers/chanbara.c @@ -94,6 +94,7 @@ public: virtual void palette_init(); UINT32 screen_update_chanbara(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); + DECLARE_WRITE_LINE_MEMBER(sound_irq); }; @@ -361,10 +362,9 @@ WRITE8_MEMBER(chanbara_state::chanbara_ay_out_1_w) //if (data & 0xf8) printf("chanbara_ay_out_1_w unused bits set %02x\n", data & 0xf8); } -static void sound_irq( device_t *device, int linestate ) +WRITE_LINE_MEMBER(chanbara_state::sound_irq) { - chanbara_state *state = device->machine().driver_data<chanbara_state>(); - state->m_maincpu->set_input_line(0, linestate); + m_maincpu->set_input_line(0, state); } @@ -378,7 +378,7 @@ static const ym2203_interface ym2203_config = DEVCB_DRIVER_MEMBER(chanbara_state,chanbara_ay_out_0_w), DEVCB_DRIVER_MEMBER(chanbara_state,chanbara_ay_out_1_w), }, - DEVCB_LINE(sound_irq) + DEVCB_DRIVER_LINE_MEMBER(chanbara_state,sound_irq) }; diff --git a/src/mame/drivers/compgolf.c b/src/mame/drivers/compgolf.c index a64e0948465..1cc3264d9df 100644 --- a/src/mame/drivers/compgolf.c +++ b/src/mame/drivers/compgolf.c @@ -197,9 +197,9 @@ GFXDECODE_END * *************************************/ -static void sound_irq(device_t *device, int linestate) +WRITE_LINE_MEMBER(compgolf_state::sound_irq) { - device->machine().device("maincpu")->execute().set_input_line(0, linestate); + machine().device("maincpu")->execute().set_input_line(0, state); } static const ym2203_interface ym2203_config = @@ -212,7 +212,7 @@ static const ym2203_interface ym2203_config = DEVCB_DRIVER_MEMBER(compgolf_state,compgolf_scrollx_lo_w), DEVCB_DRIVER_MEMBER(compgolf_state,compgolf_scrolly_lo_w), }, - DEVCB_LINE(sound_irq) + DEVCB_DRIVER_LINE_MEMBER(compgolf_state,sound_irq) }; diff --git a/src/mame/drivers/coolridr.c b/src/mame/drivers/coolridr.c index f9ae637637e..3226e85b63c 100644 --- a/src/mame/drivers/coolridr.c +++ b/src/mame/drivers/coolridr.c @@ -430,6 +430,7 @@ public: INTERRUPT_GEN_MEMBER(system_h1); TIMER_DEVICE_CALLBACK_MEMBER(system_h1_main); TIMER_DEVICE_CALLBACK_MEMBER(system_h1_sub); + DECLARE_WRITE_LINE_MEMBER(scsp_irq); void sysh1_dma_transfer( address_space &space, UINT16 dma_index ); @@ -3536,16 +3537,15 @@ void coolridr_state::machine_reset() m_usethreads = m_io_config->read()&1; } -static void scsp_irq(device_t *device, int irq) +WRITE_LINE_MEMBER(coolridr_state::scsp_irq) { - coolridr_state *state = device->machine().driver_data<coolridr_state>(); - if (irq > 0) + if (state > 0) { - state->m_scsp_last_line = irq; - state->m_soundcpu->set_input_line(irq, ASSERT_LINE); + m_scsp_last_line = state; + m_soundcpu->set_input_line(state, ASSERT_LINE); } else - state->m_soundcpu->set_input_line(-irq, CLEAR_LINE); + m_soundcpu->set_input_line(-state, CLEAR_LINE); } WRITE_LINE_MEMBER(coolridr_state::scsp1_to_sh1_irq) @@ -3569,7 +3569,7 @@ WRITE_LINE_MEMBER(coolridr_state::scsp2_to_sh1_irq) static const scsp_interface scsp_config = { 0, - DEVCB_LINE(scsp_irq), + DEVCB_DRIVER_LINE_MEMBER(coolridr_state,scsp_irq), DEVCB_DRIVER_LINE_MEMBER(coolridr_state, scsp1_to_sh1_irq) }; diff --git a/src/mame/drivers/ddenlovr.c b/src/mame/drivers/ddenlovr.c index 1ff8ac5b78d..518a3d782b8 100644 --- a/src/mame/drivers/ddenlovr.c +++ b/src/mame/drivers/ddenlovr.c @@ -8982,16 +8982,14 @@ INTERRUPT_GEN_MEMBER(dynax_state::quizchq_irq) m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xee); } -static WRITE_LINE_DEVICE_HANDLER( quizchq_rtc_irq ) +WRITE_LINE_MEMBER(dynax_state::quizchq_rtc_irq ) { - dynax_state *drvstate = device->machine().driver_data<dynax_state>(); - - drvstate->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xfc); + m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xfc); } static MSM6242_INTERFACE( quizchq_rtc_intf ) { - DEVCB_LINE(quizchq_rtc_irq) + DEVCB_DRIVER_LINE_MEMBER(dynax_state,quizchq_rtc_irq) }; static MACHINE_CONFIG_START( quizchq, dynax_state ) @@ -9066,16 +9064,14 @@ INTERRUPT_GEN_MEMBER(dynax_state::mmpanic_irq) } -static WRITE_LINE_DEVICE_HANDLER( mmpanic_rtc_irq ) +WRITE_LINE_MEMBER(dynax_state::mmpanic_rtc_irq ) { - dynax_state *drvstate = device->machine().driver_data<dynax_state>(); - - drvstate->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xdf); // RST 18, clock + m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xdf); // RST 18, clock } static MSM6242_INTERFACE( mmpanic_rtc_intf ) { - DEVCB_LINE(mmpanic_rtc_irq) + DEVCB_DRIVER_LINE_MEMBER(dynax_state,mmpanic_rtc_irq) }; static MACHINE_CONFIG_START( mmpanic, dynax_state ) @@ -9147,22 +9143,20 @@ INTERRUPT_GEN_MEMBER(dynax_state::hanakanz_irq) m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xe0); } -static WRITE_LINE_DEVICE_HANDLER(hanakanz_rtc_irq) +WRITE_LINE_MEMBER(dynax_state::hanakanz_rtc_irq) { - dynax_state *drvstate = device->machine().driver_data<dynax_state>(); - /* I haven't found a irq ack register, so I need this kludge to make sure I don't lose any interrupt generated by the blitter, otherwise quizchq would lock up. */ //if (downcast<cpu_device *>(drvstate->m_maincpu)->input_state(0)) // return; - drvstate->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xe2); + m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xe2); } static MSM6242_INTERFACE( hanakanz_rtc_intf ) { - DEVCB_LINE(hanakanz_rtc_irq) + DEVCB_DRIVER_LINE_MEMBER(dynax_state,hanakanz_rtc_irq) }; static MACHINE_CONFIG_START( hanakanz, dynax_state ) @@ -9282,22 +9276,20 @@ INTERRUPT_GEN_MEMBER(dynax_state::mjchuuka_irq) m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xf8); } -static WRITE_LINE_DEVICE_HANDLER(mjchuuka_rtc_irq) +WRITE_LINE_MEMBER(dynax_state::mjchuuka_rtc_irq) { - dynax_state *drvstate = device->machine().driver_data<dynax_state>(); - /* I haven't found a irq ack register, so I need this kludge to make sure I don't lose any interrupt generated by the blitter, otherwise quizchq would lock up. */ //if (downcast<cpu_device *>(drvstate->m_maincpu)->input_state(0)) // return; - drvstate->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xfa); + m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xfa); } static MSM6242_INTERFACE( mjchuuka_rtc_intf ) { - DEVCB_LINE(mjchuuka_rtc_irq) + DEVCB_DRIVER_LINE_MEMBER(dynax_state,mjchuuka_rtc_irq) }; static MACHINE_CONFIG_DERIVED( mjchuuka, hanakanz ) @@ -9376,22 +9368,20 @@ static const ay8910_interface mjmyster_ay8910_interface = DEVCB_NULL, DEVCB_HANDLER(ddenlovr_select_w) // W }; -static WRITE_LINE_DEVICE_HANDLER(mjmyster_rtc_irq) +WRITE_LINE_MEMBER(dynax_state::mjmyster_rtc_irq) { - dynax_state *drvstate = device->machine().driver_data<dynax_state>(); - /* I haven't found a irq ack register, so I need this kludge to make sure I don't lose any interrupt generated by the blitter, otherwise quizchq would lock up. */ //if (downcast<cpu_device *>(drvstate->m_maincpu)->input_state(0)) // return; - drvstate->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); + m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); } static MSM6242_INTERFACE( mjmyster_rtc_intf ) { - DEVCB_LINE(mjmyster_rtc_irq) + DEVCB_DRIVER_LINE_MEMBER(dynax_state,mjmyster_rtc_irq) }; @@ -9447,22 +9437,20 @@ static const ay8910_interface hginga_ay8910_interface = DEVCB_NULL, DEVCB_HANDLER(ddenlovr_select_w) // W }; -static WRITE_LINE_DEVICE_HANDLER(hginga_rtc_irq) +WRITE_LINE_MEMBER(dynax_state::hginga_rtc_irq) { - dynax_state *drvstate = device->machine().driver_data<dynax_state>(); - /* I haven't found a irq ack register, so I need this kludge to make sure I don't lose any interrupt generated by the blitter, otherwise quizchq would lock up. */ //if (downcast<cpu_device *>(drvstate->m_maincpu)->input_state(0)) // return; - drvstate->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xee); + m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xee); } static MSM6242_INTERFACE( hginga_rtc_intf ) { - DEVCB_LINE(hginga_rtc_irq) + DEVCB_DRIVER_LINE_MEMBER(dynax_state,hginga_rtc_irq) }; static MACHINE_CONFIG_DERIVED( hginga, quizchq ) @@ -9564,17 +9552,15 @@ INTERRUPT_GEN_MEMBER(dynax_state::mjflove_irq) m_maincpu->set_input_line(0, HOLD_LINE); } -static WRITE_LINE_DEVICE_HANDLER(mjflove_rtc_irq) +WRITE_LINE_MEMBER(dynax_state::mjflove_rtc_irq) { - dynax_state *drvstate = device->machine().driver_data<dynax_state>(); - - drvstate->m_mjflove_irq_cause = 2; - drvstate->m_maincpu->set_input_line(0, HOLD_LINE); + m_mjflove_irq_cause = 2; + m_maincpu->set_input_line(0, HOLD_LINE); } static MSM6242_INTERFACE( mjflove_rtc_intf ) { - DEVCB_LINE(mjflove_rtc_irq) + DEVCB_DRIVER_LINE_MEMBER(dynax_state,mjflove_rtc_irq) }; static MACHINE_CONFIG_DERIVED( mjflove, quizchq ) diff --git a/src/mame/drivers/deco156.c b/src/mame/drivers/deco156.c index d0e45640bd8..20611f07e90 100644 --- a/src/mame/drivers/deco156.c +++ b/src/mame/drivers/deco156.c @@ -60,6 +60,7 @@ public: UINT32 screen_update_wcvol95(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(deco32_vbl_interrupt); void descramble_sound( const char *tag ); + DECLARE_WRITE_LINE_MEMBER(sound_irq_gen); }; @@ -308,14 +309,14 @@ GFXDECODE_END /**********************************************************************************/ -static void sound_irq_gen(device_t *device, int state) +WRITE_LINE_MEMBER(deco156_state::sound_irq_gen) { logerror("sound irq\n"); } static const ymz280b_interface ymz280b_intf = { - DEVCB_LINE(sound_irq_gen) + DEVCB_DRIVER_LINE_MEMBER(deco156_state,sound_irq_gen) }; INTERRUPT_GEN_MEMBER(deco156_state::deco32_vbl_interrupt) diff --git a/src/mame/drivers/dooyong.c b/src/mame/drivers/dooyong.c index d6e5f8f7b16..aebc74786d6 100644 --- a/src/mame/drivers/dooyong.c +++ b/src/mame/drivers/dooyong.c @@ -772,18 +772,16 @@ READ8_MEMBER(dooyong_state::unk_r) return 0; } -static void irqhandler_2203_1(device_t *device, int irq) +WRITE_LINE_MEMBER(dooyong_state::irqhandler_2203_1) { - dooyong_state *state = device->machine().driver_data<dooyong_state>(); - state->m_interrupt_line_1=irq; - device->machine().device("audiocpu")->execute().set_input_line(0, (state->m_interrupt_line_1 | state->m_interrupt_line_2) ? ASSERT_LINE : CLEAR_LINE); + m_interrupt_line_1=state; + machine().device("audiocpu")->execute().set_input_line(0, (m_interrupt_line_1 | m_interrupt_line_2) ? ASSERT_LINE : CLEAR_LINE); } -static void irqhandler_2203_2(device_t *device, int irq) +WRITE_LINE_MEMBER(dooyong_state::irqhandler_2203_2) { - dooyong_state *state = device->machine().driver_data<dooyong_state>(); - state->m_interrupt_line_2=irq; - device->machine().device("audiocpu")->execute().set_input_line(0, (state->m_interrupt_line_1 | state->m_interrupt_line_2) ? ASSERT_LINE : CLEAR_LINE); + m_interrupt_line_2=state; + machine().device("audiocpu")->execute().set_input_line(0, (m_interrupt_line_1 | m_interrupt_line_2) ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_interface_1 = @@ -793,7 +791,7 @@ static const ym2203_interface ym2203_interface_1 = AY8910_DEFAULT_LOADS, DEVCB_DRIVER_MEMBER(dooyong_state,unk_r), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL }, - DEVCB_LINE(irqhandler_2203_1) + DEVCB_DRIVER_LINE_MEMBER(dooyong_state,irqhandler_2203_1) }; static const ym2203_interface ym2203_interface_2 = @@ -803,7 +801,7 @@ static const ym2203_interface ym2203_interface_2 = AY8910_DEFAULT_LOADS, DEVCB_DRIVER_MEMBER(dooyong_state,unk_r), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL }, - DEVCB_LINE(irqhandler_2203_2) + DEVCB_DRIVER_LINE_MEMBER(dooyong_state,irqhandler_2203_2) }; /*************************************************************************** diff --git a/src/mame/drivers/firebeat.c b/src/mame/drivers/firebeat.c index 28423117884..24892f82508 100644 --- a/src/mame/drivers/firebeat.c +++ b/src/mame/drivers/firebeat.c @@ -259,6 +259,7 @@ public: void init_lights(write32_delegate out1, write32_delegate out2, write32_delegate out3); void init_firebeat(); void init_keyboard(); + DECLARE_WRITE_LINE_MEMBER(sound_irq_callback); }; @@ -1890,13 +1891,13 @@ READ8_MEMBER(firebeat_state::soundram_r) return 0; } -static void sound_irq_callback(device_t *device, int state) +WRITE_LINE_MEMBER(firebeat_state::sound_irq_callback) { } static const ymz280b_interface ymz280b_intf = { - DEVCB_LINE(sound_irq_callback), // irq + DEVCB_DRIVER_LINE_MEMBER(firebeat_state,sound_irq_callback), // irq DEVCB_DRIVER_MEMBER(firebeat_state,soundram_r) }; diff --git a/src/mame/drivers/gstriker.c b/src/mame/drivers/gstriker.c index 1880dd9ef56..ff48c7112c9 100644 --- a/src/mame/drivers/gstriker.c +++ b/src/mame/drivers/gstriker.c @@ -259,17 +259,17 @@ GFXDECODE_END /*** MORE SOUND RELATED ******************************************************/ -static void gs_ym2610_irq(device_t *device, int irq) +WRITE_LINE_MEMBER(gstriker_state::gs_ym2610_irq) { - if (irq) - device->machine().device("audiocpu")->execute().set_input_line(0, ASSERT_LINE); + if (state) + machine().device("audiocpu")->execute().set_input_line(0, ASSERT_LINE); else - device->machine().device("audiocpu")->execute().set_input_line(0, CLEAR_LINE); + machine().device("audiocpu")->execute().set_input_line(0, CLEAR_LINE); } static const ym2610_interface ym2610_config = { - DEVCB_LINE(gs_ym2610_irq) + DEVCB_DRIVER_LINE_MEMBER(gstriker_state,gs_ym2610_irq) }; /*** MEMORY LAYOUTS **********************************************************/ diff --git a/src/mame/drivers/gunpey.c b/src/mame/drivers/gunpey.c index 98695c9953e..fe963fd21af 100644 --- a/src/mame/drivers/gunpey.c +++ b/src/mame/drivers/gunpey.c @@ -257,6 +257,8 @@ public: int write_dest_byte(UINT8 usedata); //UINT16 main_m_vram[0x800][0x800]; + + DECLARE_WRITE_LINE_MEMBER(sound_irq_gen); }; @@ -1309,14 +1311,14 @@ ADDRESS_MAP_END /***************************************************************************************/ -static void sound_irq_gen(device_t *device, int state) +WRITE_LINE_MEMBER(gunpey_state::sound_irq_gen) { logerror("sound irq\n"); } static const ymz280b_interface ymz280b_intf = { - DEVCB_LINE(sound_irq_gen) + DEVCB_DRIVER_LINE_MEMBER(gunpey_state,sound_irq_gen) }; diff --git a/src/mame/drivers/itech8.c b/src/mame/drivers/itech8.c index e7271f07b40..84b5ce343e2 100644 --- a/src/mame/drivers/itech8.c +++ b/src/mame/drivers/itech8.c @@ -626,9 +626,9 @@ WRITE8_MEMBER(itech8_state::itech8_nmi_ack_w) } -static void generate_sound_irq(device_t *device, int state) +WRITE_LINE_MEMBER(itech8_state::generate_sound_irq) { - device->machine().device("soundcpu")->execute().set_input_line(M6809_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE); + machine().device("soundcpu")->execute().set_input_line(M6809_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE); } @@ -1645,7 +1645,7 @@ static const ym2203_interface ym2203_config = DEVCB_NULL, DEVCB_DRIVER_MEMBER(itech8_state,ym2203_portb_out) }, - DEVCB_LINE(generate_sound_irq) + DEVCB_DRIVER_LINE_MEMBER(itech8_state,generate_sound_irq) }; @@ -1659,13 +1659,13 @@ static const ym2608_interface ym2608b_config = DEVCB_NULL, DEVCB_DRIVER_MEMBER(itech8_state,ym2203_portb_out), }, - DEVCB_LINE(generate_sound_irq) + DEVCB_DRIVER_LINE_MEMBER(itech8_state,generate_sound_irq) }; static const ym3812_interface ym3812_config = { - DEVCB_LINE(generate_sound_irq) + DEVCB_DRIVER_LINE_MEMBER(itech8_state,generate_sound_irq) }; diff --git a/src/mame/drivers/lockon.c b/src/mame/drivers/lockon.c index ed9a71f815a..682a93b200c 100644 --- a/src/mame/drivers/lockon.c +++ b/src/mame/drivers/lockon.c @@ -414,10 +414,9 @@ WRITE8_MEMBER(lockon_state::sound_vol) m_f2203_3r->flt_volume_set_volume(rgain); } -static void ym2203_irq(device_t *device, int irq) +WRITE_LINE_MEMBER(lockon_state::ym2203_irq) { - lockon_state *state = device->machine().driver_data<lockon_state>(); - state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE ); + m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE ); } WRITE8_MEMBER(lockon_state::ym2203_out_b) @@ -440,7 +439,7 @@ static const ym2203_interface ym2203_config = DEVCB_NULL, DEVCB_DRIVER_MEMBER(lockon_state,ym2203_out_b), }, - DEVCB_LINE(ym2203_irq) + DEVCB_DRIVER_LINE_MEMBER(lockon_state,ym2203_irq) }; diff --git a/src/mame/drivers/mcatadv.c b/src/mame/drivers/mcatadv.c index 90003ba570c..d6890576b00 100644 --- a/src/mame/drivers/mcatadv.c +++ b/src/mame/drivers/mcatadv.c @@ -412,15 +412,14 @@ GFXDECODE_END /* Stolen from Psikyo.c */ -static void sound_irq( device_t *device, int irq ) +WRITE_LINE_MEMBER(mcatadv_state::sound_irq) { - mcatadv_state *state = device->machine().driver_data<mcatadv_state>(); - state->m_soundcpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE); + m_soundcpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface mcatadv_ym2610_interface = { - DEVCB_LINE(sound_irq) /* irq */ + DEVCB_DRIVER_LINE_MEMBER(mcatadv_state,sound_irq) /* irq */ }; diff --git a/src/mame/drivers/metro.c b/src/mame/drivers/metro.c index 15155d3cb3b..79869984a94 100644 --- a/src/mame/drivers/metro.c +++ b/src/mame/drivers/metro.c @@ -244,10 +244,9 @@ INTERRUPT_GEN_MEMBER(metro_state::puzzlet_interrupt) m_maincpu->set_input_line(H8_METRO_TIMER_HACK, HOLD_LINE); } -static void ymf278b_interrupt( device_t *device, int active ) +WRITE_LINE_MEMBER(metro_state::ymf278b_interrupt) { - metro_state *state = device->machine().driver_data<metro_state>(); - state->m_maincpu->set_input_line(2, active); + m_maincpu->set_input_line(2, state); } @@ -440,7 +439,7 @@ WRITE8_MEMBER(metro_state::daitorid_portb_w) static const ymf278b_interface ymf278b_config = { - DEVCB_LINE(ymf278b_interrupt) + DEVCB_DRIVER_LINE_MEMBER(metro_state,ymf278b_interrupt) }; diff --git a/src/mame/drivers/model2.c b/src/mame/drivers/model2.c index c376a93a4ea..3c9069a3f7f 100644 --- a/src/mame/drivers/model2.c +++ b/src/mame/drivers/model2.c @@ -1872,22 +1872,21 @@ static ADDRESS_MAP_START( model2_snd, AS_PROGRAM, 16, model2_state ) ADDRESS_MAP_END -static void scsp_irq(device_t *device, int irq) +WRITE_LINE_MEMBER(model2_state::scsp_irq) { - model2_state *state = device->machine().driver_data<model2_state>(); - if (irq > 0) + if (state > 0) { - state->m_scsp_last_line = irq; - device->machine().device("audiocpu")->execute().set_input_line(irq, ASSERT_LINE); + m_scsp_last_line = state; + machine().device("audiocpu")->execute().set_input_line(state, ASSERT_LINE); } else - device->machine().device("audiocpu")->execute().set_input_line(-irq, CLEAR_LINE); + machine().device("audiocpu")->execute().set_input_line(-state, CLEAR_LINE); } static const scsp_interface scsp_config = { 0, - DEVCB_LINE(scsp_irq), + DEVCB_DRIVER_LINE_MEMBER(model2_state,scsp_irq), DEVCB_NULL }; diff --git a/src/mame/drivers/model3.c b/src/mame/drivers/model3.c index 4cb81c9aa1c..c849dd71599 100644 --- a/src/mame/drivers/model3.c +++ b/src/mame/drivers/model3.c @@ -5286,22 +5286,21 @@ static ADDRESS_MAP_START( model3_snd, AS_PROGRAM, 16, model3_state ) ADDRESS_MAP_END -static void scsp_irq(device_t *device, int irq) +WRITE_LINE_MEMBER(model3_state::scsp_irq) { - model3_state *state = device->machine().driver_data<model3_state>(); - if (irq > 0) + if (state > 0) { - state->m_scsp_last_line = irq; - device->machine().device("audiocpu")->execute().set_input_line(irq, ASSERT_LINE); + m_scsp_last_line = state; + machine().device("audiocpu")->execute().set_input_line(state, ASSERT_LINE); } else - device->machine().device("audiocpu")->execute().set_input_line(-irq, CLEAR_LINE); + machine().device("audiocpu")->execute().set_input_line(-state, CLEAR_LINE); } static const scsp_interface scsp_config = { 0, - DEVCB_LINE(scsp_irq), + DEVCB_DRIVER_LINE_MEMBER(model3_state,scsp_irq), DEVCB_NULL }; diff --git a/src/mame/drivers/mquake.c b/src/mame/drivers/mquake.c index 6f62876cd8f..fe148ba8e8d 100644 --- a/src/mame/drivers/mquake.c +++ b/src/mame/drivers/mquake.c @@ -330,7 +330,7 @@ MACHINE_RESET_MEMBER(mquake_state,mquake) static const legacy_mos6526_interface cia_0_intf = { - DEVCB_LINE(amiga_cia_0_irq), /* irq_func */ + DEVCB_DRIVER_LINE_MEMBER(amiga_state,amiga_cia_0_irq), /* irq_func */ DEVCB_NULL, /* pc_func */ DEVCB_NULL, DEVCB_NULL, @@ -342,7 +342,7 @@ static const legacy_mos6526_interface cia_0_intf = static const legacy_mos6526_interface cia_1_intf = { - DEVCB_LINE(amiga_cia_1_irq), /* irq_func */ + DEVCB_DRIVER_LINE_MEMBER(amiga_state,amiga_cia_1_irq), /* irq_func */ DEVCB_NULL, /* pc_func */ DEVCB_NULL, DEVCB_NULL, diff --git a/src/mame/drivers/naomi.c b/src/mame/drivers/naomi.c index 44dda8b97d8..cc739068138 100644 --- a/src/mame/drivers/naomi.c +++ b/src/mame/drivers/naomi.c @@ -1823,9 +1823,9 @@ ADDRESS_MAP_END /* * Aica */ -static void aica_irq(device_t *device, int irq) +WRITE_LINE_MEMBER(dc_state::aica_irq) { - device->machine().device("soundcpu")->execute().set_input_line(ARM7_FIRQ_LINE, irq ? ASSERT_LINE : CLEAR_LINE); + machine().device("soundcpu")->execute().set_input_line(ARM7_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE); } @@ -1833,7 +1833,7 @@ static const aica_interface aica_config = { TRUE, 0, - DEVCB_LINE(aica_irq) + DEVCB_DRIVER_LINE_MEMBER(dc_state,aica_irq) }; diff --git a/src/mame/drivers/nemesis.c b/src/mame/drivers/nemesis.c index 4e4a1fe153c..beafc3671ef 100644 --- a/src/mame/drivers/nemesis.c +++ b/src/mame/drivers/nemesis.c @@ -1480,7 +1480,7 @@ static const ay8910_interface ay8910_interface_2 = DEVCB_DEVICE_MEMBER("k007232", k005289_device, k005289_control_B_w) }; -static void sound_irq(device_t *device, int state) +WRITE_LINE_MEMBER(nemesis_state::sound_irq) { /* Interrupts _are_ generated, I wonder where they go.. */ // nemesis_state *driver_state = device->machine().driver_data<nemesis_state>(); @@ -1489,7 +1489,7 @@ static void sound_irq(device_t *device, int state) static const ym3812_interface ym3812_config = { - DEVCB_LINE(sound_irq) + DEVCB_DRIVER_LINE_MEMBER(nemesis_state,sound_irq) }; static WRITE8_DEVICE_HANDLER(volume_callback) diff --git a/src/mame/drivers/neogeo.c b/src/mame/drivers/neogeo.c index f30f61bd696..7518927e274 100644 --- a/src/mame/drivers/neogeo.c +++ b/src/mame/drivers/neogeo.c @@ -317,10 +317,9 @@ void neogeo_state::start_interrupt_timers() * *************************************/ -static void audio_cpu_irq(device_t *device, int assert) +WRITE_LINE_MEMBER(neogeo_state::audio_cpu_irq) { - neogeo_state *state = device->machine().driver_data<neogeo_state>(); - state->m_audiocpu->set_input_line(0, assert ? ASSERT_LINE : CLEAR_LINE); + m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } @@ -1148,7 +1147,7 @@ ADDRESS_MAP_END static const ym2610_interface ym2610_config = { - DEVCB_LINE(audio_cpu_irq) + DEVCB_DRIVER_LINE_MEMBER(neogeo_state,audio_cpu_irq) }; diff --git a/src/mame/drivers/neoprint.c b/src/mame/drivers/neoprint.c index 455a4002281..2bc42fce598 100644 --- a/src/mame/drivers/neoprint.c +++ b/src/mame/drivers/neoprint.c @@ -59,6 +59,7 @@ public: UINT32 screen_update_nprsp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void draw_layer(bitmap_ind16 &bitmap,const rectangle &cliprect,int layer,int data_shift); void audio_cpu_assert_nmi(); + DECLARE_WRITE_LINE_MEMBER(audio_cpu_irq); }; @@ -448,14 +449,14 @@ static GFXDECODE_START( neoprint ) GFXDECODE_ENTRY( "gfx1", 0, neoprint_layout, 0x0, 0x1000 ) GFXDECODE_END -static void audio_cpu_irq(device_t *device, int assert) +WRITE_LINE_MEMBER(neoprint_state::audio_cpu_irq) { - device->machine().device("audiocpu")->execute().set_input_line(0, assert ? ASSERT_LINE : CLEAR_LINE); + machine().device("audiocpu")->execute().set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface ym2610_config = { - DEVCB_LINE(audio_cpu_irq) + DEVCB_DRIVER_LINE_MEMBER(neoprint_state,audio_cpu_irq) }; diff --git a/src/mame/drivers/psikyo.c b/src/mame/drivers/psikyo.c index 2dd8ac9f81e..07dc9dacfac 100644 --- a/src/mame/drivers/psikyo.c +++ b/src/mame/drivers/psikyo.c @@ -376,10 +376,9 @@ ADDRESS_MAP_END ***************************************************************************/ -static void sound_irq( device_t *device, int irq ) +WRITE_LINE_MEMBER(psikyo_state::sound_irq) { - psikyo_state *state = device->machine().driver_data<psikyo_state>(); - state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE); + m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } READ8_MEMBER(psikyo_state::psikyo_soundlatch_r) @@ -1036,7 +1035,7 @@ void psikyo_state::machine_reset() static const ym2610_interface sngkace_ym2610_interface = { - DEVCB_LINE(sound_irq) + DEVCB_DRIVER_LINE_MEMBER(psikyo_state,sound_irq) }; static MACHINE_CONFIG_START( sngkace, psikyo_state ) @@ -1085,7 +1084,7 @@ MACHINE_CONFIG_END static const ym2610_interface gunbird_ym2610_interface = { - DEVCB_LINE(sound_irq) /* irq */ + DEVCB_DRIVER_LINE_MEMBER(psikyo_state,sound_irq) /* irq */ }; static MACHINE_CONFIG_START( gunbird, psikyo_state ) diff --git a/src/mame/drivers/segac2.c b/src/mame/drivers/segac2.c index 7745163acec..7fb46f9f122 100644 --- a/src/mame/drivers/segac2.c +++ b/src/mame/drivers/segac2.c @@ -1223,14 +1223,14 @@ INPUT_PORTS_END Sound interfaces ******************************************************************************/ -static void segac2_irq2_interrupt(device_t *device, int state) +WRITE_LINE_MEMBER(segac2_state::segac2_irq2_interrupt) { //printf("sound irq %d\n", state); - device->machine().device("maincpu")->execute().set_input_line(2, state ? ASSERT_LINE : CLEAR_LINE); + machine().device("maincpu")->execute().set_input_line(2, state ? ASSERT_LINE : CLEAR_LINE); } static const ym3438_interface ym3438_intf = { - DEVCB_LINE(segac2_irq2_interrupt) /* IRQ handler */ + DEVCB_DRIVER_LINE_MEMBER(segac2_state,segac2_irq2_interrupt) /* IRQ handler */ }; diff --git a/src/mame/drivers/segas32.c b/src/mame/drivers/segas32.c index 8a5e9923e6c..4eb96c72cae 100644 --- a/src/mame/drivers/segas32.c +++ b/src/mame/drivers/segas32.c @@ -1103,12 +1103,12 @@ WRITE8_MEMBER(segas32_state::sound_int_control_hi_w) } -static void ym3438_irq_handler(device_t *device, int state) +WRITE_LINE_MEMBER(segas32_state::ym3438_irq_handler) { if (state) - signal_sound_irq(device->machine(), SOUND_IRQ_YM3438); + signal_sound_irq(machine(), SOUND_IRQ_YM3438); else - clear_sound_irq(device->machine(), SOUND_IRQ_YM3438); + clear_sound_irq(machine(), SOUND_IRQ_YM3438); } @@ -2138,7 +2138,7 @@ GFXDECODE_END static const ym3438_interface ym3438_config = { - DEVCB_LINE(ym3438_irq_handler) + DEVCB_DRIVER_LINE_MEMBER(segas32_state,ym3438_irq_handler) }; diff --git a/src/mame/drivers/seta.c b/src/mame/drivers/seta.c index cfc4aae0fd1..e0d0c81814a 100644 --- a/src/mame/drivers/seta.c +++ b/src/mame/drivers/seta.c @@ -1487,14 +1487,14 @@ static const x1_010_interface seta_sound_intf2 = 0x1000, /* address */ }; -static void utoukond_ym3438_interrupt(device_t *device, int linestate) +WRITE_LINE_MEMBER(seta_state::utoukond_ym3438_interrupt) { - device->machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_NMI, linestate); + machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_NMI, state); } static const ym3438_interface utoukond_ym3438_intf = { - DEVCB_LINE(utoukond_ym3438_interrupt) // IRQ handler + DEVCB_DRIVER_LINE_MEMBER(seta_state,utoukond_ym3438_interrupt) // IRQ handler }; /*************************************************************************** diff --git a/src/mame/drivers/shootout.c b/src/mame/drivers/shootout.c index bc3eb1dc931..3a7d7b65b6c 100644 --- a/src/mame/drivers/shootout.c +++ b/src/mame/drivers/shootout.c @@ -229,14 +229,14 @@ static GFXDECODE_START( shootout ) GFXDECODE_ENTRY( "gfx3", 0, tile_layout, 0, 16 ) /* tiles */ GFXDECODE_END -static void shootout_snd_irq(device_t *device, int linestate) +WRITE_LINE_MEMBER(shootout_state::shootout_snd_irq) { - device->machine().device("audiocpu")->execute().set_input_line(0, linestate); + machine().device("audiocpu")->execute().set_input_line(0, state); } -static void shootout_snd2_irq(device_t *device, int linestate) +WRITE_LINE_MEMBER(shootout_state::shootout_snd2_irq) { - device->machine().device("maincpu")->execute().set_input_line(0, linestate); + machine().device("maincpu")->execute().set_input_line(0, state); } static const ym2203_interface ym2203_config = @@ -246,7 +246,7 @@ static const ym2203_interface ym2203_config = AY8910_DEFAULT_LOADS, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL }, - DEVCB_LINE(shootout_snd_irq) + DEVCB_DRIVER_LINE_MEMBER(shootout_state,shootout_snd_irq) }; static const ym2203_interface ym2203_interface2 = @@ -259,7 +259,7 @@ static const ym2203_interface ym2203_interface2 = DEVCB_DRIVER_MEMBER(shootout_state, shootout_bankswitch_w), DEVCB_DRIVER_MEMBER(shootout_state, shootout_flipscreen_w) }, - DEVCB_LINE(shootout_snd2_irq) + DEVCB_DRIVER_LINE_MEMBER(shootout_state,shootout_snd2_irq) }; static MACHINE_CONFIG_START( shootout, shootout_state ) diff --git a/src/mame/drivers/snk.c b/src/mame/drivers/snk.c index 7e75fa7918d..eb6a887fce0 100644 --- a/src/mame/drivers/snk.c +++ b/src/mame/drivers/snk.c @@ -447,11 +447,10 @@ TIMER_CALLBACK_MEMBER(snk_state::sndirq_update_callback) -static WRITE_LINE_DEVICE_HANDLER( ymirq_callback_1 ) +WRITE_LINE_MEMBER(snk_state::ymirq_callback_1 ) { - snk_state *drvstate = device->machine().driver_data<snk_state>(); if (state) - device->machine().scheduler().synchronize(timer_expired_delegate(FUNC(snk_state::sndirq_update_callback),drvstate), YM1IRQ_ASSERT); + machine().scheduler().synchronize(timer_expired_delegate(FUNC(snk_state::sndirq_update_callback),this), YM1IRQ_ASSERT); } WRITE_LINE_MEMBER(snk_state::ymirq_callback_2) @@ -463,7 +462,7 @@ WRITE_LINE_MEMBER(snk_state::ymirq_callback_2) static const ym3526_interface ym3526_config_1 = { - DEVCB_LINE(ymirq_callback_1) + DEVCB_DRIVER_LINE_MEMBER(snk_state,ymirq_callback_1) }; static const ym3526_interface ym3526_config_2 = @@ -473,7 +472,7 @@ static const ym3526_interface ym3526_config_2 = static const ym3812_interface ym3812_config_1 = { - DEVCB_LINE(ymirq_callback_1) + DEVCB_DRIVER_LINE_MEMBER(snk_state,ymirq_callback_1) }; static const y8950_interface y8950_config_2 = diff --git a/src/mame/drivers/tecmosys.c b/src/mame/drivers/tecmosys.c index 76eebea3cf3..d091b48727a 100644 --- a/src/mame/drivers/tecmosys.c +++ b/src/mame/drivers/tecmosys.c @@ -436,15 +436,15 @@ GFXDECODE_END -static void sound_irq(device_t *device, int irq) +WRITE_LINE_MEMBER(tecmosys_state::sound_irq) { /* IRQ */ - device->machine().device("audiocpu")->execute().set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE); + machine().device("audiocpu")->execute().set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } static const ymf262_interface tecmosys_ymf262_interface = { - DEVCB_LINE(sound_irq) /* irq */ + DEVCB_DRIVER_LINE_MEMBER(tecmosys_state,sound_irq) /* irq */ }; void tecmosys_state::machine_start() diff --git a/src/mame/drivers/upscope.c b/src/mame/drivers/upscope.c index cd1bd32fa41..fa737008499 100644 --- a/src/mame/drivers/upscope.c +++ b/src/mame/drivers/upscope.c @@ -285,7 +285,7 @@ INPUT_PORTS_END static const legacy_mos6526_interface cia_0_intf = { - DEVCB_LINE(amiga_cia_0_irq), /* irq_func */ + DEVCB_DRIVER_LINE_MEMBER(amiga_state,amiga_cia_0_irq), /* irq_func */ DEVCB_NULL, /* pc_func */ DEVCB_NULL, DEVCB_NULL, @@ -297,7 +297,7 @@ static const legacy_mos6526_interface cia_0_intf = static const legacy_mos6526_interface cia_1_intf = { - DEVCB_LINE(amiga_cia_1_irq), /* irq_func */ + DEVCB_DRIVER_LINE_MEMBER(amiga_state,amiga_cia_1_irq), /* irq_func */ DEVCB_NULL, /* pc_func */ DEVCB_NULL, DEVCB_NULL, diff --git a/src/mame/includes/actfancr.h b/src/mame/includes/actfancr.h index d65f2e0fe94..3ac900958fe 100644 --- a/src/mame/includes/actfancr.h +++ b/src/mame/includes/actfancr.h @@ -35,4 +35,5 @@ public: DECLARE_MACHINE_RESET(triothep); UINT32 screen_update_actfancr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void register_savestate( ); + DECLARE_WRITE_LINE_MEMBER(sound_irq); }; diff --git a/src/mame/includes/alpha68k.h b/src/mame/includes/alpha68k.h index 48a9041c336..0ae6f7401b3 100644 --- a/src/mame/includes/alpha68k.h +++ b/src/mame/includes/alpha68k.h @@ -114,6 +114,7 @@ public: void jongbou_video_banking(int *bank, int data); void kyros_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int c, int d ); void sstingry_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int c, int d ); + DECLARE_WRITE_LINE_MEMBER(ym3812_irq); }; /* game_id - used to deal with a few game specific situations */ diff --git a/src/mame/includes/amiga.h b/src/mame/includes/amiga.h index c6261dbaba7..ce87511529d 100644 --- a/src/mame/includes/amiga.h +++ b/src/mame/includes/amiga.h @@ -472,6 +472,8 @@ public: TIMER_CALLBACK_MEMBER(amiga_irq_proc); TIMER_CALLBACK_MEMBER(amiga_blitter_proc); TIMER_CALLBACK_MEMBER(finish_serial_write); + DECLARE_WRITE_LINE_MEMBER(amiga_cia_0_irq); + DECLARE_WRITE_LINE_MEMBER(amiga_cia_1_irq); }; @@ -498,9 +500,6 @@ void amiga_add_autoconfig(running_machine &machine, const amiga_autoconfig_devic DECLARE_READ16_HANDLER( amiga_autoconfig_r ); DECLARE_WRITE16_HANDLER( amiga_autoconfig_w ); -void amiga_cia_0_irq(device_t *device, int state); -void amiga_cia_1_irq(device_t *device, int state); - const amiga_machine_interface *amiga_get_interface(running_machine &machine); diff --git a/src/mame/includes/bbusters.h b/src/mame/includes/bbusters.h index 19f07c49cad..ad49b1a31fa 100644 --- a/src/mame/includes/bbusters.h +++ b/src/mame/includes/bbusters.h @@ -60,4 +60,5 @@ public: inline const UINT8 *get_source_ptr(gfx_element *gfx, UINT32 sprite, int dx, int dy, int block); void bbusters_draw_block(bitmap_ind16 &dest,int x,int y,int size,int flipx,int flipy,UINT32 sprite,int color,int bank,int block); void draw_sprites(bitmap_ind16 &bitmap, const UINT16 *source, int bank, int colval, int colmask); + DECLARE_WRITE_LINE_MEMBER(sound_irq); }; diff --git a/src/mame/includes/bishi.h b/src/mame/includes/bishi.h index 7c3cfafe016..1f076274fab 100644 --- a/src/mame/includes/bishi.h +++ b/src/mame/includes/bishi.h @@ -41,6 +41,7 @@ public: virtual void video_start(); UINT32 screen_update_bishi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(bishi_scanline); + DECLARE_WRITE_LINE_MEMBER(sound_irq_gen); }; /*----------- defined in video/bishi.c -----------*/ diff --git a/src/mame/includes/cave.h b/src/mame/includes/cave.h index ac6de560334..e2ba5416c16 100644 --- a/src/mame/includes/cave.h +++ b/src/mame/includes/cave.h @@ -207,5 +207,6 @@ public: void cave_get_sprite_info(); void sailormn_tilebank_w(int bank); DECLARE_WRITE_LINE_MEMBER(irqhandler); + DECLARE_WRITE_LINE_MEMBER(sound_irq_gen); }; diff --git a/src/mame/includes/compgolf.h b/src/mame/includes/compgolf.h index dca933612c5..fd0bd36f1dc 100644 --- a/src/mame/includes/compgolf.h +++ b/src/mame/includes/compgolf.h @@ -44,4 +44,5 @@ public: UINT32 screen_update_compgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); void compgolf_expand_bg(); + DECLARE_WRITE_LINE_MEMBER(sound_irq); }; diff --git a/src/mame/includes/dc.h b/src/mame/includes/dc.h index 268bb155426..ac8b8d0b41f 100644 --- a/src/mame/includes/dc.h +++ b/src/mame/includes/dc.h @@ -114,6 +114,7 @@ class dc_state : public driver_device DECLARE_WRITE64_MEMBER(dc_aica_reg_w); DECLARE_READ32_MEMBER(dc_arm_aica_r); DECLARE_WRITE32_MEMBER(dc_arm_aica_w); + DECLARE_WRITE_LINE_MEMBER(aica_irq); }; /*----------- defined in machine/dc.c -----------*/ diff --git a/src/mame/includes/dooyong.h b/src/mame/includes/dooyong.h index 6e29cbaf141..73a07f9f063 100644 --- a/src/mame/includes/dooyong.h +++ b/src/mame/includes/dooyong.h @@ -91,4 +91,6 @@ public: inline void dooyong_scroll8_w(offs_t offset, UINT8 data, UINT8 *scroll, tilemap_t *map); void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int pollux_extensions); void rshark_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); + DECLARE_WRITE_LINE_MEMBER(irqhandler_2203_1); + DECLARE_WRITE_LINE_MEMBER(irqhandler_2203_2); }; diff --git a/src/mame/includes/dynax.h b/src/mame/includes/dynax.h index 9ea0a2bead5..b6b0c05f6b7 100644 --- a/src/mame/includes/dynax.h +++ b/src/mame/includes/dynax.h @@ -496,6 +496,13 @@ public: DECLARE_WRITE_LINE_MEMBER(jantouki_sound_callback); DECLARE_WRITE_LINE_MEMBER(adpcm_int); DECLARE_WRITE_LINE_MEMBER(adpcm_int_cpu1); + DECLARE_WRITE_LINE_MEMBER(quizchq_rtc_irq); + DECLARE_WRITE_LINE_MEMBER(mmpanic_rtc_irq); + DECLARE_WRITE_LINE_MEMBER(hanakanz_rtc_irq); + DECLARE_WRITE_LINE_MEMBER(mjchuuka_rtc_irq); + DECLARE_WRITE_LINE_MEMBER(hginga_rtc_irq); + DECLARE_WRITE_LINE_MEMBER(mjflove_rtc_irq); + DECLARE_WRITE_LINE_MEMBER(mjmyster_rtc_irq); }; //----------- defined in drivers/dynax.c ----------- diff --git a/src/mame/includes/gstriker.h b/src/mame/includes/gstriker.h index 341ec38acb4..c30e0f30419 100644 --- a/src/mame/includes/gstriker.h +++ b/src/mame/includes/gstriker.h @@ -110,6 +110,7 @@ public: void MB60553_draw(int numchip, bitmap_ind16& screen, const rectangle &cliprect, int priority); tilemap_t* MB60553_get_tilemap(int numchip); void mcu_init( ); + DECLARE_WRITE_LINE_MEMBER(gs_ym2610_irq); }; #endif diff --git a/src/mame/includes/itech8.h b/src/mame/includes/itech8.h index ea5dc4eaab4..86f1e1bfb9b 100644 --- a/src/mame/includes/itech8.h +++ b/src/mame/includes/itech8.h @@ -110,6 +110,7 @@ public: inline void consume_rle(int count); void perform_blit(address_space &space); void itech8_update_interrupts(int periodic, int tms34061, int blitter); + DECLARE_WRITE_LINE_MEMBER(generate_sound_irq); /*----------- defined in machine/slikshot.c -----------*/ diff --git a/src/mame/includes/lockon.h b/src/mame/includes/lockon.h index 10cabc65aab..b95203de3e5 100644 --- a/src/mame/includes/lockon.h +++ b/src/mame/includes/lockon.h @@ -114,4 +114,5 @@ public: void objects_draw( ); void rotate_draw( bitmap_ind16 &bitmap, const rectangle &cliprect ); void hud_draw( bitmap_ind16 &bitmap, const rectangle &cliprect ); + DECLARE_WRITE_LINE_MEMBER(ym2203_irq); }; diff --git a/src/mame/includes/mcatadv.h b/src/mame/includes/mcatadv.h index 7199670b87b..6ae77c7ab0d 100644 --- a/src/mame/includes/mcatadv.h +++ b/src/mame/includes/mcatadv.h @@ -45,4 +45,5 @@ public: void screen_eof_mcatadv(screen_device &screen, bool state); void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); void mcatadv_draw_tilemap_part( UINT16* current_scroll, UINT16* current_videoram1, int i, tilemap_t* current_tilemap, bitmap_ind16 &bitmap, const rectangle &cliprect ); + DECLARE_WRITE_LINE_MEMBER(sound_irq); }; diff --git a/src/mame/includes/megadriv.h b/src/mame/includes/megadriv.h index 95940baf9d6..2b714500f89 100644 --- a/src/mame/includes/megadriv.h +++ b/src/mame/includes/megadriv.h @@ -267,6 +267,7 @@ public: DECLARE_READ16_MEMBER( printer_r ); DECLARE_WRITE16_MEMBER( print_club_camera_w ); DECLARE_READ16_MEMBER(ichirjbl_prot_r); + DECLARE_WRITE_LINE_MEMBER(segac2_irq2_interrupt); }; class mplay_state : public md_base_state diff --git a/src/mame/includes/metro.h b/src/mame/includes/metro.h index 6d7333ea22d..1d3df441248 100644 --- a/src/mame/includes/metro.h +++ b/src/mame/includes/metro.h @@ -187,6 +187,7 @@ public: void draw_tilemap( bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32 flags, UINT32 pcode, int sx, int sy, int wx, int wy, int big, UINT16 *tilemapram, int layer ); DECLARE_WRITE_LINE_MEMBER(blzntrnd_irqhandler); + DECLARE_WRITE_LINE_MEMBER(ymf278b_interrupt); }; diff --git a/src/mame/includes/model2.h b/src/mame/includes/model2.h index 3b1da39f8d3..88529114f90 100644 --- a/src/mame/includes/model2.h +++ b/src/mame/includes/model2.h @@ -169,6 +169,7 @@ public: TIMER_DEVICE_CALLBACK_MEMBER(model2_interrupt); TIMER_DEVICE_CALLBACK_MEMBER(model2c_interrupt); void model2_exit(); + DECLARE_WRITE_LINE_MEMBER(scsp_irq); }; /*----------- defined in video/model2.c -----------*/ diff --git a/src/mame/includes/model3.h b/src/mame/includes/model3.h index ca1a8d5dfba..be326251423 100644 --- a/src/mame/includes/model3.h +++ b/src/mame/includes/model3.h @@ -204,6 +204,7 @@ public: TIMER_CALLBACK_MEMBER(model3_sound_timer_tick); TIMER_DEVICE_CALLBACK_MEMBER(model3_interrupt); void model3_exit(); + DECLARE_WRITE_LINE_MEMBER(scsp_irq); }; diff --git a/src/mame/includes/nemesis.h b/src/mame/includes/nemesis.h index c4894091f25..139dd70bf60 100644 --- a/src/mame/includes/nemesis.h +++ b/src/mame/includes/nemesis.h @@ -91,4 +91,5 @@ public: TIMER_DEVICE_CALLBACK_MEMBER(gx400_interrupt); void nemesis_postload(); void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); + DECLARE_WRITE_LINE_MEMBER(sound_irq); }; diff --git a/src/mame/includes/neogeo.h b/src/mame/includes/neogeo.h index 4a8cf753638..8b909094707 100644 --- a/src/mame/includes/neogeo.h +++ b/src/mame/includes/neogeo.h @@ -250,6 +250,7 @@ public: DECLARE_DEVICE_IMAGE_LOAD_MEMBER(neo_cartridge); void neogeo_postload(); void regenerate_pens(); + DECLARE_WRITE_LINE_MEMBER(audio_cpu_irq); bool m_has_audio_banking; // does the system use Audio Banking (the NeoCD doesn't?) bool m_is_mvs; // is the system an MVS (watchdog, SRAM etc.) diff --git a/src/mame/includes/psikyo.h b/src/mame/includes/psikyo.h index bd2a6c7cb4c..80ed299368f 100644 --- a/src/mame/includes/psikyo.h +++ b/src/mame/includes/psikyo.h @@ -99,6 +99,7 @@ public: int tilemap_width( int size ); void s1945_mcu_init( ); DECLARE_WRITE_LINE_MEMBER(irqhandler); + DECLARE_WRITE_LINE_MEMBER(sound_irq); }; /*----------- defined in video/psikyo.c -----------*/ diff --git a/src/mame/includes/segas32.h b/src/mame/includes/segas32.h index 286b0dc80f5..d3d2231da22 100644 --- a/src/mame/includes/segas32.h +++ b/src/mame/includes/segas32.h @@ -248,6 +248,7 @@ public: void update_tilemap_text(screen_device &screen, struct layer_info *layer, const rectangle &cliprect); void update_bitmap(screen_device &screen, struct layer_info *layer, const rectangle &cliprect); void update_background(struct layer_info *layer, const rectangle &cliprect); + DECLARE_WRITE_LINE_MEMBER(ym3438_irq_handler); }; /*----------- defined in machine/segas32.c -----------*/ diff --git a/src/mame/includes/seta.h b/src/mame/includes/seta.h index 2984567c89e..5fdbd2b901e 100644 --- a/src/mame/includes/seta.h +++ b/src/mame/includes/seta.h @@ -217,4 +217,5 @@ public: void draw_tilemap_palette_effect(bitmap_ind16 &bitmap, const rectangle &cliprect, tilemap_t *tilemap, int scrollx, int scrolly, int gfxnum, int flipscreen); void seta_layers_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int sprite_bank_size, int sprite_setac ); void uPD71054_timer_init( ); + DECLARE_WRITE_LINE_MEMBER(utoukond_ym3438_interrupt); }; diff --git a/src/mame/includes/shootout.h b/src/mame/includes/shootout.h index 0232e3811be..5b0b4b83def 100644 --- a/src/mame/includes/shootout.h +++ b/src/mame/includes/shootout.h @@ -28,4 +28,6 @@ public: UINT32 screen_update_shootout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_shootouj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_bits ); + DECLARE_WRITE_LINE_MEMBER(shootout_snd_irq); + DECLARE_WRITE_LINE_MEMBER(shootout_snd2_irq); }; diff --git a/src/mame/includes/snk.h b/src/mame/includes/snk.h index 9a49e449e90..847bb326dc2 100644 --- a/src/mame/includes/snk.h +++ b/src/mame/includes/snk.h @@ -177,4 +177,5 @@ public: int hardflags_check8(int num); int turbofront_check(int small, int num); int turbofront_check8(int small, int num); + DECLARE_WRITE_LINE_MEMBER(ymirq_callback_1); }; diff --git a/src/mame/includes/tecmosys.h b/src/mame/includes/tecmosys.h index e3384e4c847..a71b0dca5cd 100644 --- a/src/mame/includes/tecmosys.h +++ b/src/mame/includes/tecmosys.h @@ -87,4 +87,5 @@ public: void tecmosys_tilemap_copy_to_compose(UINT16 pri); void tecmosys_do_final_mix(bitmap_rgb32 &bitmap); void tecmosys_descramble(); + DECLARE_WRITE_LINE_MEMBER(sound_irq); }; diff --git a/src/mame/machine/amiga.c b/src/mame/machine/amiga.c index 45fcf71df66..e0df50522c4 100644 --- a/src/mame/machine/amiga.c +++ b/src/mame/machine/amiga.c @@ -1091,19 +1091,15 @@ WRITE16_HANDLER( amiga_cia_w ) * *************************************/ -void amiga_cia_0_irq(device_t *device, int state) +WRITE_LINE_MEMBER(amiga_state::amiga_cia_0_irq) { - amiga_state *sta = device->machine().driver_data<amiga_state>(); - - amiga_custom_w(sta->m_maincpu->space(AS_PROGRAM), REG_INTREQ, (state ? 0x8000 : 0x0000) | INTENA_PORTS, 0xffff); + amiga_custom_w(m_maincpu->space(AS_PROGRAM), REG_INTREQ, (state ? 0x8000 : 0x0000) | INTENA_PORTS, 0xffff); } -void amiga_cia_1_irq(device_t *device, int state) +WRITE_LINE_MEMBER(amiga_state::amiga_cia_1_irq) { - amiga_state *sta = device->machine().driver_data<amiga_state>(); - - amiga_custom_w(sta->m_maincpu->space(AS_PROGRAM), REG_INTREQ, (state ? 0x8000 : 0x0000) | INTENA_EXTER, 0xffff); + amiga_custom_w(m_maincpu->space(AS_PROGRAM), REG_INTREQ, (state ? 0x8000 : 0x0000) | INTENA_EXTER, 0xffff); } diff --git a/src/mess/drivers/amiga.c b/src/mess/drivers/amiga.c index 1ccd59a46cf..2fae6128de1 100644 --- a/src/mess/drivers/amiga.c +++ b/src/mess/drivers/amiga.c @@ -508,7 +508,7 @@ MACHINE_RESET_MEMBER(cdtv_state,cdtv) static const legacy_mos6526_interface cia_0_ntsc_intf = { - DEVCB_DEVICE_LINE("cia_0", amiga_cia_0_irq), /* irq_func */ + DEVCB_DRIVER_LINE_MEMBER(amiga_state, amiga_cia_0_irq), /* irq_func */ DEVCB_DEVICE_LINE_MEMBER("centronics", centronics_device, strobe_w), /* pc_func */ DEVCB_NULL, DEVCB_NULL, @@ -520,7 +520,7 @@ static const legacy_mos6526_interface cia_0_ntsc_intf = static const legacy_mos6526_interface cia_0_pal_intf = { - DEVCB_DEVICE_LINE("cia_0", amiga_cia_0_irq), /* irq_func */ + DEVCB_DRIVER_LINE_MEMBER(amiga_state, amiga_cia_0_irq), /* irq_func */ DEVCB_DEVICE_LINE_MEMBER("centronics", centronics_device, strobe_w), /* pc_func */ DEVCB_NULL, DEVCB_NULL, @@ -532,7 +532,7 @@ static const legacy_mos6526_interface cia_0_pal_intf = static const legacy_mos6526_interface cia_1_intf = { - DEVCB_DEVICE_LINE("cia_1", amiga_cia_1_irq), /* irq_func */ + DEVCB_DRIVER_LINE_MEMBER(amiga_state, amiga_cia_1_irq), /* irq_func */ DEVCB_NULL, /* pc_func */ DEVCB_NULL, DEVCB_NULL, @@ -544,7 +544,7 @@ static const legacy_mos6526_interface cia_1_intf = static const legacy_mos6526_interface cia_0_cdtv_intf = { - DEVCB_DEVICE_LINE("cia_0", amiga_cia_0_irq), /* irq_func */ + DEVCB_DRIVER_LINE_MEMBER(amiga_state, amiga_cia_0_irq), /* irq_func */ DEVCB_DEVICE_LINE_MEMBER("centronics", centronics_device, strobe_w), /* pc_func */ DEVCB_NULL, DEVCB_NULL, @@ -556,7 +556,7 @@ static const legacy_mos6526_interface cia_0_cdtv_intf = static const legacy_mos6526_interface cia_1_cdtv_intf = { - DEVCB_DEVICE_LINE("cia_1", amiga_cia_1_irq), /* irq_func */ + DEVCB_DRIVER_LINE_MEMBER(amiga_state, amiga_cia_1_irq), /* irq_func */ DEVCB_NULL, /* pc_func */ DEVCB_NULL, DEVCB_NULL, @@ -589,7 +589,7 @@ READ8_MEMBER(a1200_state::a1200_cia_0_portA_r) static const legacy_mos6526_interface a1200_cia_0_intf = { - DEVCB_DEVICE_LINE("cia_0", amiga_cia_0_irq), /* irq_func */ + DEVCB_DRIVER_LINE_MEMBER(amiga_state, amiga_cia_0_irq), /* irq_func */ DEVCB_NULL, /* pc_func */ DEVCB_NULL, DEVCB_NULL, @@ -601,7 +601,7 @@ static const legacy_mos6526_interface a1200_cia_0_intf = static const legacy_mos6526_interface a1200_cia_1_intf = { - DEVCB_DEVICE_LINE("cia_1", amiga_cia_1_irq), /* irq_func */ + DEVCB_DRIVER_LINE_MEMBER(amiga_state, amiga_cia_1_irq), /* irq_func */ DEVCB_NULL, /* pc_func */ DEVCB_NULL, DEVCB_NULL, |