diff options
Diffstat (limited to 'src/mame/drivers/apollo.cpp')
-rw-r--r-- | src/mame/drivers/apollo.cpp | 96 |
1 files changed, 56 insertions, 40 deletions
diff --git a/src/mame/drivers/apollo.cpp b/src/mame/drivers/apollo.cpp index 6398cfbb1f3..1102f3cde86 100644 --- a/src/mame/drivers/apollo.cpp +++ b/src/mame/drivers/apollo.cpp @@ -29,12 +29,14 @@ #include "includes/apollo.h" #include "cpu/m68000/m68000.h" +#include "sound/beep.h" // we use set_verbose #include "bus/isa/omti8621.h" #include "bus/isa/3c505.h" #include "debugger.h" +#include "speaker.h" #include "apollo_dsp.lh" @@ -1042,41 +1044,49 @@ READ_LINE_MEMBER( apollo_state::apollo_kbd_is_german ) MACHINE DRIVERS ***************************************************************************/ -void apollo_state::dn3500(machine_config &config) -{ +MACHINE_CONFIG_START(apollo_state::dn3500) /* basic machine hardware */ - M68030(config, m_maincpu, 25000000); /* 25 MHz 68030 */ - m_maincpu->set_addrmap(AS_PROGRAM, &apollo_state::dn3500_map); - m_maincpu->set_irq_acknowledge_callback(FUNC(apollo_state::apollo_irq_acknowledge)); + MCFG_DEVICE_ADD(MAINCPU, M68030, 25000000) /* 25 MHz 68030 */ + MCFG_DEVICE_PROGRAM_MAP(dn3500_map) + MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(apollo_state,apollo_irq_acknowledge) - config.m_minimum_quantum = attotime::from_hz(60); + MCFG_QUANTUM_TIME(attotime::from_hz(60)) apollo(config); + /* keyboard beeper */ + SPEAKER(config, "mono").front_center(); + MCFG_DEVICE_ADD("beep", BEEP, 1000) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) + /* internal ram */ RAM(config, m_ram).set_default_size("8M").set_extra_options("4M,8M,16M,32M"); #ifdef APOLLO_XXL apollo_stdio_device &stdio(APOLLO_STDIO(config, APOLLO_STDIO_TAG, 0)); - stdio.tx_cb().set(m_sio, FUNC(apollo_sio::rx_b_w)); + stdio.tx_callback().set(m_sio, FUNC(apollo_sio::rx_b_w)); #endif -} +MACHINE_CONFIG_END -void apollo_state::dsp3500(machine_config &config) -{ - M68030(config, m_maincpu, 25000000); /* 25 MHz 68030 */ - m_maincpu->set_addrmap(AS_PROGRAM, &apollo_state::dsp3500_map); - m_maincpu->set_irq_acknowledge_callback(FUNC(apollo_state::apollo_irq_acknowledge)); - config.m_minimum_quantum = attotime::from_hz(60); +MACHINE_CONFIG_START(apollo_state::dsp3500) + MCFG_DEVICE_ADD(MAINCPU, M68030, 25000000) /* 25 MHz 68030 */ + MCFG_DEVICE_PROGRAM_MAP(dsp3500_map) + MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(apollo_state,apollo_irq_acknowledge) + MCFG_QUANTUM_TIME(attotime::from_hz(60)) apollo_terminal(config); + /* keyboard beeper */ + SPEAKER(config, "mono").front_center(); + MCFG_DEVICE_ADD("beep", BEEP, 1000) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) + /* internal ram */ RAM(config, RAM_TAG).set_default_size("8M").set_extra_options("4M,8M,16M,32M"); /* terminal hardware */ config.set_default_layout(layout_apollo_dsp); -} +MACHINE_CONFIG_END void apollo_state::dn3500_19i(machine_config &config) { @@ -1098,28 +1108,31 @@ void apollo_state::dn3500_15i(machine_config &config) m_keyboard->german_cb().set(FUNC(apollo_state::apollo_kbd_is_german)); } -void apollo_state::dn3000(machine_config &config) -{ +MACHINE_CONFIG_START(apollo_state::dn3000) dn3500(config); - M68020PMMU(config.replace(), m_maincpu, 12000000); /* 12 MHz */ - m_maincpu->set_irq_acknowledge_callback(FUNC(apollo_state::apollo_irq_acknowledge)); - m_maincpu->set_addrmap(AS_PROGRAM, &apollo_state::dn3000_map); + MCFG_DEVICE_REPLACE(MAINCPU, M68020PMMU, 12000000) /* 12 MHz */ + MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(apollo_state,apollo_irq_acknowledge) + MCFG_DEVICE_PROGRAM_MAP(dn3000_map) config.device_remove( APOLLO_SIO2_TAG ); m_ram->set_default_size("8M").set_extra_options("4M"); // FIXME: is this interrupt really only connected on DN3000? m_rtc->irq().set(FUNC(apollo_state::apollo_rtc_irq_function)); -} +MACHINE_CONFIG_END -void apollo_state::dsp3000(machine_config &config) -{ - M68020PMMU(config, m_maincpu, 12000000); /* 12 MHz */ - m_maincpu->set_irq_acknowledge_callback(FUNC(apollo_state::apollo_irq_acknowledge)); - m_maincpu->set_addrmap(AS_PROGRAM, &apollo_state::dsp3000_map); - config.m_minimum_quantum = attotime::from_hz(60); +MACHINE_CONFIG_START(apollo_state::dsp3000) + MCFG_DEVICE_ADD(MAINCPU, M68020PMMU, 12000000) /* 12 MHz */ + MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(apollo_state,apollo_irq_acknowledge) + MCFG_DEVICE_PROGRAM_MAP(dsp3000_map) + MCFG_QUANTUM_TIME(attotime::from_hz(60)) apollo_terminal(config); + /* keyboard beeper */ + SPEAKER(config, "mono").front_center(); + MCFG_DEVICE_ADD("beep", BEEP, 1000) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) + /* internal ram */ RAM(config, m_ram).set_default_size("8M").set_extra_options("4M"); @@ -1127,7 +1140,7 @@ void apollo_state::dsp3000(machine_config &config) /* terminal hardware */ config.set_default_layout(layout_apollo_dsp); -} +MACHINE_CONFIG_END void apollo_state::dn3000_19i(machine_config &config) { @@ -1149,29 +1162,32 @@ void apollo_state::dn3000_15i(machine_config &config) m_keyboard->german_cb().set(FUNC(apollo_state::apollo_kbd_is_german)); } -void apollo_state::dn5500(machine_config &config) -{ +MACHINE_CONFIG_START(apollo_state::dn5500) dn3500(config); - M68040(config.replace(), m_maincpu, 25000000); /* 25 MHz */ - m_maincpu->set_addrmap(AS_PROGRAM, &apollo_state::dn5500_map); -} + MCFG_DEVICE_REPLACE(MAINCPU, M68040, 25000000) /* 25 MHz */ + MCFG_DEVICE_PROGRAM_MAP(dn5500_map) +MACHINE_CONFIG_END -void apollo_state::dsp5500(machine_config &config) -{ - M68040(config, m_maincpu, 25000000); /* 25 MHz */ - m_maincpu->set_addrmap(AS_PROGRAM, &apollo_state::dsp5500_map); - m_maincpu->set_irq_acknowledge_callback(FUNC(apollo_state::apollo_irq_acknowledge)); - config.m_minimum_quantum = attotime::from_hz(60); +MACHINE_CONFIG_START(apollo_state::dsp5500) + MCFG_DEVICE_ADD(MAINCPU, M68040, 25000000) /* 25 MHz */ + MCFG_DEVICE_PROGRAM_MAP(dsp5500_map) + MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(apollo_state,apollo_irq_acknowledge) + MCFG_QUANTUM_TIME(attotime::from_hz(60)) apollo_terminal(config); + /* keyboard beeper */ + SPEAKER(config, "mono").front_center(); + MCFG_DEVICE_ADD("beep", BEEP, 1000) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) + /* internal ram */ // FIXME: guess, to fix validation RAM(config, RAM_TAG).set_default_size("8M").set_extra_options("4M,8M,16M,32M"); /* terminal hardware */ config.set_default_layout(layout_apollo_dsp); -} +MACHINE_CONFIG_END void apollo_state::dn5500_19i(machine_config &config) { |