diff options
Diffstat (limited to 'src/mame/drivers/aa310.cpp')
-rw-r--r-- | src/mame/drivers/aa310.cpp | 103 |
1 files changed, 50 insertions, 53 deletions
diff --git a/src/mame/drivers/aa310.cpp b/src/mame/drivers/aa310.cpp index 408e258ed4d..8e4fbd03109 100644 --- a/src/mame/drivers/aa310.cpp +++ b/src/mame/drivers/aa310.cpp @@ -405,11 +405,12 @@ WRITE_LINE_MEMBER( archimedes_state::a310_kart_rx_w ) archimedes_clear_irq_b(ARCHIMEDES_IRQB_KBD_XMIT_EMPTY); } -MACHINE_CONFIG_START(aa310_state::aa310) +void aa310_state::aa310(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", ARM, 24_MHz_XTAL / 3) /* ARM2 8 MHz */ - MCFG_DEVICE_PROGRAM_MAP(aa310_mem) - MCFG_ARM_COPRO(VL86C020) + ARM(config, m_maincpu, 24_MHz_XTAL / 3); /* ARM2 8 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &aa310_state::aa310_mem); + m_maincpu->set_copro_type(arm_cpu_device::copro_type::VL86C020); AAKART(config, m_kart, 8000000/256); m_kart->out_tx_callback().set(FUNC(archimedes_state::a310_kart_tx_w)); @@ -418,11 +419,11 @@ MACHINE_CONFIG_START(aa310_state::aa310) I2CMEM(config, "i2cmem", 0).set_data_size(0x100); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(16_MHz_XTAL, 1024, 0, 735, 624/2, 0, 292) // RiscOS 3 default screen settings - MCFG_SCREEN_UPDATE_DRIVER(archimedes_state, screen_update) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(16_MHz_XTAL, 1024, 0, 735, 624/2, 0, 292); // RiscOS 3 default screen settings + m_screen->set_screen_update(FUNC(archimedes_state::screen_update)); - MCFG_PALETTE_ADD("palette", 32768) + PALETTE(config, m_palette, 32768); RAM(config, m_ram).set_default_size("1M"); @@ -430,34 +431,31 @@ MACHINE_CONFIG_START(aa310_state::aa310) fdc.set_disable_motor_control(true); fdc.intrq_wr_callback().set(FUNC(aa310_state::aa310_wd177x_intrq_w)); fdc.drq_wr_callback().set(FUNC(aa310_state::aa310_wd177x_drq_w)); - MCFG_FLOPPY_DRIVE_ADD("fdc:0", aa310_floppies, "35dd", aa310_state::floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("fdc:1", aa310_floppies, nullptr, aa310_state::floppy_formats) // rarely had 2nd FDD installed, space was used for HDD - MCFG_FLOPPY_DRIVE_SOUND(true) + FLOPPY_CONNECTOR(config, "fdc:0", aa310_floppies, "35dd", aa310_state::floppy_formats).enable_sound(true); + + // rarely had 2nd FDD installed, space was used for HDD + FLOPPY_CONNECTOR(config, "fdc:1", aa310_floppies, nullptr, aa310_state::floppy_formats).enable_sound(true); - MCFG_SOFTWARE_LIST_ADD("flop_list", "archimedes") + SOFTWARE_LIST(config, "flop_list").set_original("archimedes"); SPEAKER(config, "speaker").front_center(); - MCFG_DEVICE_ADD("dac0", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC - MCFG_DEVICE_ADD("dac1", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC - MCFG_DEVICE_ADD("dac2", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC - MCFG_DEVICE_ADD("dac3", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC - MCFG_DEVICE_ADD("dac4", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC - MCFG_DEVICE_ADD("dac5", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC - MCFG_DEVICE_ADD("dac6", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC - MCFG_DEVICE_ADD("dac7", DAC_16BIT_R2R_TWOS_COMPLEMENT, 0) MCFG_SOUND_ROUTE(0, "speaker", 0.1) // unknown DAC - MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) - MCFG_SOUND_ROUTE(0, "dac0", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac0", -1.0, DAC_VREF_NEG_INPUT) - MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT) - MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", -1.0, DAC_VREF_NEG_INPUT) - MCFG_SOUND_ROUTE(0, "dac3", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac3", -1.0, DAC_VREF_NEG_INPUT) - MCFG_SOUND_ROUTE(0, "dac4", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac4", -1.0, DAC_VREF_NEG_INPUT) - MCFG_SOUND_ROUTE(0, "dac5", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac5", -1.0, DAC_VREF_NEG_INPUT) - MCFG_SOUND_ROUTE(0, "dac6", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac6", -1.0, DAC_VREF_NEG_INPUT) - MCFG_SOUND_ROUTE(0, "dac7", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac7", -1.0, DAC_VREF_NEG_INPUT) + for (int i = 0; i < 8; i++) + { + DAC_16BIT_R2R_TWOS_COMPLEMENT(config, m_dac[i], 0).add_route(0, "speaker", 0.1); // unknown DAC + } + voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0)); + vref.set_output(5.0); + vref.add_route(0, "dac0", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac0", -1.0, DAC_VREF_NEG_INPUT); + vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT); + vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT); + vref.add_route(0, "dac3", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac3", -1.0, DAC_VREF_NEG_INPUT); + vref.add_route(0, "dac4", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac4", -1.0, DAC_VREF_NEG_INPUT); + vref.add_route(0, "dac5", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac5", -1.0, DAC_VREF_NEG_INPUT); + vref.add_route(0, "dac6", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac6", -1.0, DAC_VREF_NEG_INPUT); + vref.add_route(0, "dac7", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac7", -1.0, DAC_VREF_NEG_INPUT); /* Expansion slots - 2-card backplane */ -MACHINE_CONFIG_END +} void aa310_state::aa305(machine_config &config) { @@ -509,57 +507,56 @@ void aa310_state::aa4401(machine_config &config) /* Expansion slots - 4-card backplane */ } -MACHINE_CONFIG_START(aa310_state::aa540) +void aa310_state::aa540(machine_config &config) +{ aa310(config); - MCFG_DEVICE_MODIFY("maincpu") // ARM3 - MCFG_DEVICE_CLOCK(52_MHz_XTAL / 2) + m_maincpu->set_clock(52_MHz_XTAL / 2); // ARM3 m_ram->set_default_size("4M").set_extra_options("8M,12M,16M"); /* 100MB HDD */ /* Expansion slots - 4-card backplane */ -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(aa310_state::aa5000) +void aa310_state::aa5000(machine_config &config) +{ aa310(config); - MCFG_DEVICE_MODIFY("maincpu") // ARM3 - MCFG_DEVICE_CLOCK(50_MHz_XTAL / 2) + m_maincpu->set_clock(50_MHz_XTAL / 2); // ARM3 m_ram->set_default_size("2M").set_extra_options("4M"); /* 80MB HDD */ /* Expansion slots - 4-card backplane */ -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(aa310_state::aa4) +void aa310_state::aa4(machine_config &config) +{ aa5000(config); - MCFG_DEVICE_MODIFY("maincpu") // ARM3 - MCFG_DEVICE_CLOCK(24_MHz_XTAL) + m_maincpu->set_clock(24_MHz_XTAL); // ARM3 /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_TYPE(LCD) + m_screen->set_type(SCREEN_TYPE_LCD); /* 765 FDC */ /* 60MB HDD */ -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(aa310_state::aa5000a) +void aa310_state::aa5000a(machine_config &config) +{ aa5000(config); - MCFG_DEVICE_MODIFY("maincpu") // ARM3 - MCFG_DEVICE_CLOCK(33000000) -MACHINE_CONFIG_END + m_maincpu->set_clock(33000000); // ARM3 +} -MACHINE_CONFIG_START(aa310_state::aa3010) +void aa310_state::aa3010(machine_config &config) +{ aa310(config); - MCFG_DEVICE_MODIFY("maincpu") // ARM250 - MCFG_DEVICE_CLOCK(72_MHz_XTAL / 6) + m_maincpu->set_clock(72_MHz_XTAL / 6); // ARM250 m_ram->set_default_size("1M").set_extra_options("2M"); -MACHINE_CONFIG_END +} void aa310_state::aa3020(machine_config &config) { |