summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/mame/drivers/actfancr.c7
-rw-r--r--src/mame/drivers/alg.c4
-rw-r--r--src/mame/drivers/alpha68k.c7
-rw-r--r--src/mame/drivers/arcadia.c4
-rw-r--r--src/mame/drivers/backfire.c5
-rw-r--r--src/mame/drivers/bbusters.c8
-rw-r--r--src/mame/drivers/bishi.c8
-rw-r--r--src/mame/drivers/cave.c9
-rw-r--r--src/mame/drivers/cd32.c4
-rw-r--r--src/mame/drivers/chanbara.c8
-rw-r--r--src/mame/drivers/compgolf.c6
-rw-r--r--src/mame/drivers/coolridr.c14
-rw-r--r--src/mame/drivers/ddenlovr.c58
-rw-r--r--src/mame/drivers/deco156.c5
-rw-r--r--src/mame/drivers/dooyong.c18
-rw-r--r--src/mame/drivers/firebeat.c5
-rw-r--r--src/mame/drivers/gstriker.c10
-rw-r--r--src/mame/drivers/gunpey.c6
-rw-r--r--src/mame/drivers/itech8.c10
-rw-r--r--src/mame/drivers/lockon.c7
-rw-r--r--src/mame/drivers/mcatadv.c7
-rw-r--r--src/mame/drivers/metro.c7
-rw-r--r--src/mame/drivers/model2.c13
-rw-r--r--src/mame/drivers/model3.c13
-rw-r--r--src/mame/drivers/mquake.c4
-rw-r--r--src/mame/drivers/naomi.c6
-rw-r--r--src/mame/drivers/nemesis.c4
-rw-r--r--src/mame/drivers/neogeo.c7
-rw-r--r--src/mame/drivers/neoprint.c7
-rw-r--r--src/mame/drivers/psikyo.c9
-rw-r--r--src/mame/drivers/segac2.c6
-rw-r--r--src/mame/drivers/segas32.c8
-rw-r--r--src/mame/drivers/seta.c6
-rw-r--r--src/mame/drivers/shootout.c12
-rw-r--r--src/mame/drivers/snk.c9
-rw-r--r--src/mame/drivers/tecmosys.c6
-rw-r--r--src/mame/drivers/upscope.c4
-rw-r--r--src/mame/includes/actfancr.h1
-rw-r--r--src/mame/includes/alpha68k.h1
-rw-r--r--src/mame/includes/amiga.h5
-rw-r--r--src/mame/includes/bbusters.h1
-rw-r--r--src/mame/includes/bishi.h1
-rw-r--r--src/mame/includes/cave.h1
-rw-r--r--src/mame/includes/compgolf.h1
-rw-r--r--src/mame/includes/dc.h1
-rw-r--r--src/mame/includes/dooyong.h2
-rw-r--r--src/mame/includes/dynax.h7
-rw-r--r--src/mame/includes/gstriker.h1
-rw-r--r--src/mame/includes/itech8.h1
-rw-r--r--src/mame/includes/lockon.h1
-rw-r--r--src/mame/includes/mcatadv.h1
-rw-r--r--src/mame/includes/megadriv.h1
-rw-r--r--src/mame/includes/metro.h1
-rw-r--r--src/mame/includes/model2.h1
-rw-r--r--src/mame/includes/model3.h1
-rw-r--r--src/mame/includes/nemesis.h1
-rw-r--r--src/mame/includes/neogeo.h1
-rw-r--r--src/mame/includes/psikyo.h1
-rw-r--r--src/mame/includes/segas32.h1
-rw-r--r--src/mame/includes/seta.h1
-rw-r--r--src/mame/includes/shootout.h2
-rw-r--r--src/mame/includes/snk.h1
-rw-r--r--src/mame/includes/tecmosys.h1
-rw-r--r--src/mame/machine/amiga.c12
-rw-r--r--src/mess/drivers/amiga.c14
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,