diff options
Diffstat (limited to 'src/mame/drivers/taito_l.cpp')
-rw-r--r-- | src/mame/drivers/taito_l.cpp | 206 |
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 |