summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/taito_l.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/taito_l.cpp')
-rw-r--r--src/mame/drivers/taito_l.cpp206
1 files changed, 101 insertions, 105 deletions
diff --git a/src/mame/drivers/taito_l.cpp b/src/mame/drivers/taito_l.cpp
index 23ba4ff3c05..a6d3cfc5505 100644
--- a/src/mame/drivers/taito_l.cpp
+++ b/src/mame/drivers/taito_l.cpp
@@ -1518,13 +1518,13 @@ MACHINE_CONFIG_START(fhawk_state::fhawk)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("ymsnd", YM2203, 12_MHz_XTAL/4) /* verified on pcb */
- MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
- MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(*this, fhawk_state, portA_w))
- MCFG_SOUND_ROUTE(0, "mono", 0.20)
- MCFG_SOUND_ROUTE(1, "mono", 0.20)
- MCFG_SOUND_ROUTE(2, "mono", 0.20)
- MCFG_SOUND_ROUTE(3, "mono", 0.80)
+ ym2203_device &ymsnd(YM2203(config, "ymsnd", 12_MHz_XTAL/4)); /* verified on pcb */
+ ymsnd.irq_handler().set_inputline("audiocpu", 0);
+ ymsnd.port_a_write_callback().set(FUNC(fhawk_state::portA_w));
+ ymsnd.add_route(0, "mono", 0.20);
+ ymsnd.add_route(1, "mono", 0.20);
+ ymsnd.add_route(2, "mono", 0.20);
+ ymsnd.add_route(3, "mono", 0.80);
MCFG_DEVICE_ADD("ciu", PC060HA, 0)
MCFG_PC060HA_MASTER_CPU("slave")
@@ -1593,11 +1593,11 @@ MACHINE_CONFIG_START(taitol_2cpu_state::raimais)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("ymsnd", YM2610, 8_MHz_XTAL) /* verified on pcb (8Mhz OSC is also for the 2nd z80) */
- MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
- MCFG_SOUND_ROUTE(0, "mono", 0.25)
- MCFG_SOUND_ROUTE(1, "mono", 1.0)
- MCFG_SOUND_ROUTE(2, "mono", 1.0)
+ ym2610_device &ymsnd(YM2610(config, "ymsnd", 8_MHz_XTAL)); /* verified on pcb (8Mhz OSC is also for the 2nd z80) */
+ ymsnd.irq_handler().set_inputline("audiocpu", 0);
+ ymsnd.add_route(0, "mono", 0.25);
+ ymsnd.add_route(1, "mono", 1.0);
+ ymsnd.add_route(2, "mono", 1.0);
MCFG_DEVICE_ADD("tc0140syt", TC0140SYT, 0)
MCFG_TC0140SYT_MASTER_CPU("slave")
@@ -1605,18 +1605,18 @@ MACHINE_CONFIG_START(taitol_2cpu_state::raimais)
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(taitol_2cpu_state::kurikint)
-
+void taitol_2cpu_state::kurikint(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(13'330'560)/2) /* verified freq on pin122 of TC0090LVC cpu */
- MCFG_DEVICE_PROGRAM_MAP(kurikint_map)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(taitol_state, irq_callback)
+ Z80(config, m_main_cpu, XTAL(13'330'560)/2); /* verified freq on pin122 of TC0090LVC cpu */
+ m_main_cpu->set_addrmap(AS_PROGRAM, &taitol_2cpu_state::kurikint_map);
+ m_main_cpu->set_irq_acknowledge_callback(FUNC(taitol_state::irq_callback));
- MCFG_DEVICE_ADD("audiocpu", Z80, 12_MHz_XTAL/3) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(kurikint_2_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitol_state, irq0_line_hold)
+ Z80(config, m_audio_cpu, 12_MHz_XTAL/3); /* verified on pcb */
+ m_audio_cpu->set_addrmap(AS_PROGRAM, &taitol_2cpu_state::kurikint_2_map);
+ m_audio_cpu->set_vblank_int("screen", FUNC(taitol_state::irq0_line_hold));
- MCFG_QUANTUM_TIME(attotime::from_hz(6000))
+ config.m_minimum_quantum = attotime::from_hz(6000);
tc0040ioc_device &tc0040ioc(TC0040IOC(config, "tc0040ioc", 0));
tc0040ioc.read_0_callback().set_ioport("DSWA");
@@ -1637,20 +1637,30 @@ MACHINE_CONFIG_START(taitol_2cpu_state::kurikint)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("ymsnd", YM2203, 12_MHz_XTAL/4) /* verified on pcb */
- MCFG_SOUND_ROUTE(0, "mono", 0.20)
- MCFG_SOUND_ROUTE(1, "mono", 0.20)
- MCFG_SOUND_ROUTE(2, "mono", 0.20)
- MCFG_SOUND_ROUTE(3, "mono", 0.80)
-MACHINE_CONFIG_END
+ ym2203_device &ymsnd(YM2203(config, "ymsnd", 12_MHz_XTAL/4)); /* verified on pcb */
+ ymsnd.add_route(0, "mono", 0.20);
+ ymsnd.add_route(1, "mono", 0.20);
+ ymsnd.add_route(2, "mono", 0.20);
+ ymsnd.add_route(3, "mono", 0.80);
+}
+void taitol_1cpu_state::add_muxes(machine_config &config)
+{
+ LS157_X2(config, m_mux[0], 0);
+ m_mux[0]->a_in_callback().set_ioport("DSWA");
+ m_mux[0]->b_in_callback().set_ioport("DSWB");
-MACHINE_CONFIG_START(taitol_1cpu_state::plotting)
+ LS157_X2(config, m_mux[1], 0);
+ m_mux[1]->a_in_callback().set_ioport("IN0");
+ m_mux[1]->b_in_callback().set_ioport("IN1");
+}
+void taitol_1cpu_state::base(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(13'330'560)/2) /* verified freq on pin122 of TC0090LVC cpu */
- MCFG_DEVICE_PROGRAM_MAP(plotting_map)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(taitol_state, irq_callback)
+ Z80(config, m_main_cpu, XTAL(13'330'560)/2); /* verified freq on pin122 of TC0090LVC cpu */
+ m_main_cpu->set_addrmap(AS_PROGRAM, &taitol_1cpu_state::plotting_map);
+ m_main_cpu->set_irq_acknowledge_callback(FUNC(taitol_state::irq_callback));
MCFG_MACHINE_START_OVERRIDE(taitol_state, taito_l)
MCFG_MACHINE_RESET_OVERRIDE(taitol_state, taito_l)
@@ -1661,96 +1671,82 @@ MACHINE_CONFIG_START(taitol_1cpu_state::plotting)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("ymsnd", YM2203, XTAL(13'330'560)/4) /* verified on pcb */
- MCFG_AY8910_PORT_A_READ_CB(READ8("dswmux", ls157_x2_device, output_r))
- MCFG_AY8910_PORT_B_READ_CB(READ8("inmux", ls157_x2_device, output_r))
- MCFG_SOUND_ROUTE(0, "mono", 0.20)
- MCFG_SOUND_ROUTE(1, "mono", 0.20)
- MCFG_SOUND_ROUTE(2, "mono", 0.20)
- MCFG_SOUND_ROUTE(3, "mono", 0.80)
-
- MCFG_DEVICE_ADD("dswmux", LS157_X2, 0)
- MCFG_74157_A_IN_CB(IOPORT("DSWA"))
- MCFG_74157_B_IN_CB(IOPORT("DSWB"))
-
- MCFG_DEVICE_ADD("inmux", LS157_X2, 0)
- MCFG_74157_A_IN_CB(IOPORT("IN0"))
- MCFG_74157_B_IN_CB(IOPORT("IN1"))
-MACHINE_CONFIG_END
-
-
-MACHINE_CONFIG_START(taitol_1cpu_state::puzznic)
- plotting(config);
-
- /* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(puzznic_map)
+ YM2203(config, m_ymsnd, XTAL(13'330'560)/4); /* verified on pcb */
+ m_ymsnd->port_a_read_callback().set("dswmux", FUNC(ls157_x2_device::output_r));
+ m_ymsnd->port_b_read_callback().set("inmux", FUNC(ls157_x2_device::output_r));
+ m_ymsnd->add_route(0, "mono", 0.20);
+ m_ymsnd->add_route(1, "mono", 0.20);
+ m_ymsnd->add_route(2, "mono", 0.20);
+ m_ymsnd->add_route(3, "mono", 0.80);
+}
- MCFG_DEVICE_ADD("mcu", ARKANOID_68705P3, 3_MHz_XTAL)
-MACHINE_CONFIG_END
+void taitol_1cpu_state::plotting(machine_config &config)
+{
+ base(config);
+ add_muxes(config);
+}
-MACHINE_CONFIG_START(taitol_1cpu_state::puzznici)
- plotting(config);
+void taitol_1cpu_state::puzznic(machine_config &config)
+{
+ base(config);
+ add_muxes(config);
+ m_main_cpu->set_addrmap(AS_PROGRAM, &taitol_1cpu_state::puzznic_map);
- /* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(puzznici_map)
-MACHINE_CONFIG_END
+ ARKANOID_68705P3(config, "mcu", 3_MHz_XTAL);
+}
+void taitol_1cpu_state::puzznici(machine_config &config)
+{
+ base(config);
+ add_muxes(config);
+ m_main_cpu->set_addrmap(AS_PROGRAM, &taitol_1cpu_state::puzznici_map);
+}
-MACHINE_CONFIG_START(horshoes_state::horshoes)
- plotting(config);
+void horshoes_state::horshoes(machine_config &config)
+{
+ base(config);
+ add_muxes(config);
- /* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(horshoes_map)
+ m_main_cpu->set_addrmap(AS_PROGRAM, &horshoes_state::horshoes_map);
- MCFG_DEVICE_ADD("upd4701", UPD4701A, 0)
- MCFG_UPD4701_PORTX("AN0")
- MCFG_UPD4701_PORTY("AN1")
-MACHINE_CONFIG_END
+ UPD4701A(config, m_upd4701, 0);
+ m_upd4701->set_portx_tag("AN0");
+ m_upd4701->set_portx_tag("AN1");
+}
-MACHINE_CONFIG_START(taitol_1cpu_state::palamed)
+void taitol_1cpu_state::palamed(machine_config &config)
+{
plotting(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(palamed_map)
-
- MCFG_DEVICE_ADD("ppi", I8255, 0) // Toshiba TMP8255AP-5
- MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
- MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
- MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
+ m_main_cpu->set_addrmap(AS_PROGRAM, &taitol_1cpu_state::palamed_map);
- MCFG_DEVICE_MODIFY("ymsnd")
- MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSWA"))
- MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSWB"))
+ i8255_device &ppi(I8255(config, "ppi", 0)); // Toshiba TMP8255AP-5
+ ppi.in_pa_callback().set_ioport("IN0");
+ ppi.in_pb_callback().set_ioport("IN1");
+ ppi.in_pc_callback().set_ioport("IN2");
- MCFG_DEVICE_REMOVE("dswmux")
- MCFG_DEVICE_REMOVE("inmux")
-MACHINE_CONFIG_END
+ m_ymsnd->port_a_read_callback().set_ioport("DSWA");
+ m_ymsnd->port_b_read_callback().set_ioport("DSWB");
+}
-MACHINE_CONFIG_START(taitol_1cpu_state::cachat)
+void taitol_1cpu_state::cachat(machine_config &config)
+{
plotting(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(cachat_map)
-
- MCFG_DEVICE_ADD("ppi", I8255, 0) // NEC D70155C
- MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
- MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
- MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
+ m_main_cpu->set_addrmap(AS_PROGRAM, &taitol_1cpu_state::cachat_map);
- MCFG_DEVICE_MODIFY("ymsnd")
- MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSWA"))
- MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSWB"))
+ i8255_device &ppi(I8255(config, "ppi", 0)); // NEC D70155C
+ ppi.in_pa_callback().set_ioport("IN0");
+ ppi.in_pb_callback().set_ioport("IN1");
+ ppi.in_pc_callback().set_ioport("IN2");
- MCFG_DEVICE_REMOVE("dswmux")
- MCFG_DEVICE_REMOVE("inmux")
-MACHINE_CONFIG_END
+ m_ymsnd->port_a_read_callback().set_ioport("DSWA");
+ m_ymsnd->port_b_read_callback().set_ioport("DSWB");
+}
MACHINE_CONFIG_START(taitol_2cpu_state::evilston)
@@ -1785,11 +1781,11 @@ MACHINE_CONFIG_START(taitol_2cpu_state::evilston)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("ymsnd", YM2203, 12_MHz_XTAL/4) /* not verified */
- MCFG_SOUND_ROUTE(0, "mono", 0.25)
- MCFG_SOUND_ROUTE(1, "mono", 0.25)
- MCFG_SOUND_ROUTE(2, "mono", 0.25)
- MCFG_SOUND_ROUTE(3, "mono", 0.80)
+ ym2203_device &ymsnd(YM2203(config, "ymsnd", 12_MHz_XTAL/4)); /* not verified */
+ ymsnd.add_route(0, "mono", 0.25);
+ ymsnd.add_route(1, "mono", 0.25);
+ ymsnd.add_route(2, "mono", 0.25);
+ ymsnd.add_route(3, "mono", 0.80);
MACHINE_CONFIG_END