summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/amiga.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/amiga.cpp')
-rw-r--r--src/mame/drivers/amiga.cpp368
1 files changed, 174 insertions, 194 deletions
diff --git a/src/mame/drivers/amiga.cpp b/src/mame/drivers/amiga.cpp
index f5e4b23132a..c963688ee98 100644
--- a/src/mame/drivers/amiga.cpp
+++ b/src/mame/drivers/amiga.cpp
@@ -1565,7 +1565,8 @@ static void amiga_floppies(device_slot_interface &device)
}
// basic elements common to all amigas
-MACHINE_CONFIG_START(amiga_state::amiga_base)
+void amiga_state::amiga_base(machine_config &config)
+{
// video
pal_video(config);
@@ -1591,13 +1592,13 @@ MACHINE_CONFIG_START(amiga_state::amiga_base)
// audio
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- paula_8364_device &paula(PAULA_8364(config, "amiga", amiga_state::CLK_C1_PAL));
- paula.add_route(0, "lspeaker", 0.50);
- paula.add_route(1, "rspeaker", 0.50);
- paula.add_route(2, "rspeaker", 0.50);
- paula.add_route(3, "lspeaker", 0.50);
- paula.mem_read_cb().set(FUNC(amiga_state::chip_ram_r));
- paula.int_cb().set(FUNC(amiga_state::paula_int_w));
+ PAULA_8364(config, m_paula, amiga_state::CLK_C1_PAL);
+ m_paula->add_route(0, "lspeaker", 0.50);
+ m_paula->add_route(1, "rspeaker", 0.50);
+ m_paula->add_route(2, "rspeaker", 0.50);
+ m_paula->add_route(3, "lspeaker", 0.50);
+ m_paula->mem_read_cb().set(FUNC(amiga_state::chip_ram_r));
+ m_paula->int_cb().set(FUNC(amiga_state::paula_int_w));
// floppy drives
AMIGA_FDC(config, m_fdc, amiga_state::CLK_7M_PAL);
@@ -1634,9 +1635,10 @@ MACHINE_CONFIG_START(amiga_state::amiga_base)
SOFTWARE_LIST(config, "apps_list").set_original("amiga_apps");
SOFTWARE_LIST(config, "flop_list").set_original("amiga_flop");
SOFTWARE_LIST(config, "ocs_list").set_original("amigaocs_flop");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(a1000_state::a1000)
+void a1000_state::a1000(machine_config &config)
+{
amiga_base(config);
// keyboard
@@ -1649,31 +1651,30 @@ MACHINE_CONFIG_START(a1000_state::a1000)
.kbrst_cb().set(FUNC(a1000_state::kbreset_w));
// main cpu
- MCFG_DEVICE_ADD("maincpu", M68000, amiga_state::CLK_7M_PAL)
- MCFG_DEVICE_PROGRAM_MAP(a1000_mem)
+ M68000(config, m_maincpu, amiga_state::CLK_7M_PAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &a1000_state::a1000_mem);
ADDRESS_MAP_BANK(config, "overlay").set_map(&a1000_state::a1000_overlay_map).set_options(ENDIANNESS_BIG, 16, 22, 0x200000);
ADDRESS_MAP_BANK(config, "bootrom").set_map(&a1000_state::a1000_bootrom_map).set_options(ENDIANNESS_BIG, 16, 19, 0x40000);
SOFTWARE_LIST(config, "a1000_list").set_original("amiga_a1000");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(a1000_state::a1000n)
+void a1000_state::a1000n(machine_config &config)
+{
a1000(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC)
+ m_maincpu->set_clock(amiga_state::CLK_7M_NTSC);
config.device_remove("screen");
ntsc_video(config);
- MCFG_DEVICE_MODIFY("amiga")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_C1_NTSC)
+ m_paula->set_clock(amiga_state::CLK_C1_NTSC);
m_cia_0->set_clock(amiga_state::CLK_E_NTSC);
m_cia_1->set_clock(amiga_state::CLK_E_NTSC);
- MCFG_DEVICE_MODIFY("fdc")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC)
-MACHINE_CONFIG_END
+ m_fdc->set_clock(amiga_state::CLK_7M_NTSC);
+}
-MACHINE_CONFIG_START(a2000_state::a2000)
+void a2000_state::a2000(machine_config &config)
+{
amiga_base(config);
// keyboard
@@ -1686,8 +1687,8 @@ MACHINE_CONFIG_START(a2000_state::a2000)
.kbrst_cb().set(FUNC(a2000_state::kbreset_w));
// main cpu
- MCFG_DEVICE_ADD("maincpu", M68000, amiga_state::CLK_7M_PAL)
- MCFG_DEVICE_PROGRAM_MAP(a2000_mem)
+ M68000(config, m_maincpu, amiga_state::CLK_7M_PAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &a2000_state::a2000_mem);
ADDRESS_MAP_BANK(config, "overlay").set_map(&amiga_state::overlay_512kb_map).set_options(ENDIANNESS_BIG, 16, 22, 0x200000);
@@ -1708,24 +1709,23 @@ MACHINE_CONFIG_START(a2000_state::a2000)
ZORRO_SLOT(config, "zorro3", m_zorro, zorro2_cards, nullptr);
ZORRO_SLOT(config, "zorro4", m_zorro, zorro2_cards, nullptr);
ZORRO_SLOT(config, "zorro5", m_zorro, zorro2_cards, nullptr);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(a2000_state::a2000n)
+void a2000_state::a2000n(machine_config &config)
+{
a2000(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC)
+ m_maincpu->set_clock(amiga_state::CLK_7M_NTSC);
config.device_remove("screen");
ntsc_video(config);
- MCFG_DEVICE_MODIFY("amiga")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_C1_NTSC)
+ m_paula->set_clock(amiga_state::CLK_C1_NTSC);
m_cia_0->set_clock(amiga_state::CLK_E_NTSC);
m_cia_1->set_clock(amiga_state::CLK_E_NTSC);
- MCFG_DEVICE_MODIFY("fdc")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC)
-MACHINE_CONFIG_END
+ m_fdc->set_clock(amiga_state::CLK_7M_NTSC);
+}
-MACHINE_CONFIG_START(a500_state::a500)
+void a500_state::a500(machine_config &config)
+{
amiga_base(config);
// keyboard
@@ -1735,8 +1735,8 @@ MACHINE_CONFIG_START(a500_state::a500)
kbd.krst_handler().set(FUNC(amiga_state::kbreset_w));
// main cpu
- MCFG_DEVICE_ADD("maincpu", M68000, amiga_state::CLK_7M_PAL)
- MCFG_DEVICE_PROGRAM_MAP(a500_mem)
+ M68000(config, m_maincpu, amiga_state::CLK_7M_PAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &a500_state::a500_mem);
ADDRESS_MAP_BANK(config, "overlay").set_map(&amiga_state::overlay_1mb_map).set_options(ENDIANNESS_BIG, 16, 22, 0x200000);
@@ -1745,23 +1745,22 @@ MACHINE_CONFIG_START(a500_state::a500)
m_side->int2_handler().set(FUNC(a500_state::side_int2_w));
m_side->int6_handler().set(FUNC(a500_state::side_int6_w));
ZORRO_SLOT(config, "slot", m_side, a500_expansion_cards, nullptr);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(a500_state::a500n)
+void a500_state::a500n(machine_config &config)
+{
a500(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC)
+ m_maincpu->set_clock(amiga_state::CLK_7M_NTSC);
config.device_remove("screen");
ntsc_video(config);
- MCFG_DEVICE_MODIFY("amiga")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_C1_NTSC)
+ m_paula->set_clock(amiga_state::CLK_C1_NTSC);
m_cia_0->set_clock(amiga_state::CLK_E_NTSC);
m_cia_1->set_clock(amiga_state::CLK_E_NTSC);
- MCFG_DEVICE_MODIFY("fdc")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC)
-MACHINE_CONFIG_END
+ m_fdc->set_clock(amiga_state::CLK_7M_NTSC);
+}
-MACHINE_CONFIG_START(cdtv_state::cdtv)
+void cdtv_state::cdtv(machine_config &config)
+{
amiga_base(config);
// keyboard
@@ -1774,18 +1773,18 @@ MACHINE_CONFIG_START(cdtv_state::cdtv)
.kbrst_cb().set(FUNC(a1000_state::kbreset_w));
// main cpu
- MCFG_DEVICE_ADD("maincpu", M68000, amiga_state::CLK_7M_PAL)
- MCFG_DEVICE_PROGRAM_MAP(cdtv_mem)
+ M68000(config, m_maincpu, amiga_state::CLK_7M_PAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &cdtv_state::cdtv_mem);
// remote control input converter
- MCFG_DEVICE_ADD("u75", M6502, XTAL(3'000'000))
- MCFG_DEVICE_PROGRAM_MAP(cdtv_rc_mem)
- MCFG_DEVICE_DISABLE()
+ m6502_device &u75(M6502(config, "u75", XTAL(3'000'000)));
+ u75.set_addrmap(AS_PROGRAM, &cdtv_state::cdtv_rc_mem);
+ u75.set_disable();
// lcd controller
#if 0
- MCFG_DEVICE_ADD("u62", LC6554, XTAL(4'000'000))
- MCFG_DEVICE_PROGRAM_MAP(lcd_mem)
+ lc6554_device &u62(LC6554(config, "u62", XTAL(4'000'000))); // device isn't emulated yet
+ u62.set_addrmap(AS_PROGRAM, &cdtv_state::lcd_mem);
#endif
ADDRESS_MAP_BANK(config, "overlay").set_map(&amiga_state::overlay_1mb_map).set_options(ENDIANNESS_BIG, 16, 22, 0x200000);
@@ -1807,40 +1806,38 @@ MACHINE_CONFIG_START(cdtv_state::cdtv)
m_dmac->io_write_handler().set(FUNC(cdtv_state::dmac_io_write));
m_dmac->int_handler().set(FUNC(cdtv_state::dmac_int_w));
- tpi6525_device &tpi(TPI6525(config, "u32", 0));
- tpi.out_irq_cb().set(FUNC(cdtv_state::tpi_int_w));
- tpi.out_pb_cb().set(FUNC(cdtv_state::tpi_port_b_write));
+ TPI6525(config, m_tpi, 0);
+ m_tpi->out_irq_cb().set(FUNC(cdtv_state::tpi_int_w));
+ m_tpi->out_pb_cb().set(FUNC(cdtv_state::tpi_port_b_write));
// cd-rom
CR511B(config, m_cdrom, 0);
- m_cdrom->scor_handler().set("u32", FUNC(tpi6525_device::i1_w)).invert();
- m_cdrom->stch_handler().set("u32", FUNC(tpi6525_device::i2_w)).invert();
- m_cdrom->sten_handler().set("u32", FUNC(tpi6525_device::i3_w));
- m_cdrom->xaen_handler().set("u32", FUNC(tpi6525_device::pb2_w));
- m_cdrom->drq_handler().set("u36", FUNC(amiga_dmac_device::xdreq_w));
- m_cdrom->dten_handler().set("u36", FUNC(amiga_dmac_device::xdreq_w));
+ m_cdrom->scor_handler().set(m_tpi, FUNC(tpi6525_device::i1_w)).invert();
+ m_cdrom->stch_handler().set(m_tpi, FUNC(tpi6525_device::i2_w)).invert();
+ m_cdrom->sten_handler().set(m_tpi, FUNC(tpi6525_device::i3_w));
+ m_cdrom->xaen_handler().set(m_tpi, FUNC(tpi6525_device::pb2_w));
+ m_cdrom->drq_handler().set(m_dmac, FUNC(amiga_dmac_device::xdreq_w));
+ m_cdrom->dten_handler().set(m_dmac, FUNC(amiga_dmac_device::xdreq_w));
// software
SOFTWARE_LIST(config, "cd_list").set_original("cdtv");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(cdtv_state::cdtvn)
+void cdtv_state::cdtvn(machine_config &config)
+{
cdtv(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC)
+ m_maincpu->set_clock(amiga_state::CLK_7M_NTSC);
config.device_remove("screen");
ntsc_video(config);
- MCFG_DEVICE_MODIFY("amiga")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_C1_NTSC)
+ m_paula->set_clock(amiga_state::CLK_C1_NTSC);
m_cia_0->set_clock(amiga_state::CLK_E_NTSC);
m_cia_1->set_clock(amiga_state::CLK_E_NTSC);
- MCFG_DEVICE_MODIFY("u36")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC)
- MCFG_DEVICE_MODIFY("fdc")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC)
-MACHINE_CONFIG_END
+ m_dmac->set_clock(amiga_state::CLK_7M_NTSC);
+ m_fdc->set_clock(amiga_state::CLK_7M_NTSC);
+}
-MACHINE_CONFIG_START(a3000_state::a3000)
+void a3000_state::a3000(machine_config &config)
+{
amiga_base(config);
// keyboard
@@ -1849,8 +1846,8 @@ MACHINE_CONFIG_START(a3000_state::a3000)
kbd.kdat_handler().set("cia_0", FUNC(mos8520_device::sp_w));
// main cpu
- MCFG_DEVICE_ADD("maincpu", M68030, XTAL(32'000'000) / 2)
- MCFG_DEVICE_PROGRAM_MAP(a3000_mem)
+ M68030(config, m_maincpu, XTAL(32'000'000) / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &a3000_state::a3000_mem);
ADDRESS_MAP_BANK(config, "overlay").set_map(&amiga_state::overlay_1mb_map32).set_options(ENDIANNESS_BIG, 32, 22, 0x200000);
@@ -1862,19 +1859,20 @@ MACHINE_CONFIG_START(a3000_state::a3000)
// software
SOFTWARE_LIST(config, "a3000_list").set_original("amiga_a3000");
SOFTWARE_LIST(config, "ecs_list").set_original("amigaecs_flop");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(a3000_state::a3000n)
+void a3000_state::a3000n(machine_config &config)
+{
a3000(config);
config.device_remove("screen");
ntsc_video(config);
m_cia_0->set_clock(amiga_state::CLK_E_NTSC);
m_cia_1->set_clock(amiga_state::CLK_E_NTSC);
- MCFG_DEVICE_MODIFY("fdc")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC)
-MACHINE_CONFIG_END
+ m_fdc->set_clock(amiga_state::CLK_7M_NTSC);
+}
-MACHINE_CONFIG_START(a500p_state::a500p)
+void a500p_state::a500p(machine_config &config)
+{
amiga_base(config);
// keyboard
@@ -1884,8 +1882,8 @@ MACHINE_CONFIG_START(a500p_state::a500p)
kbd.krst_handler().set(FUNC(amiga_state::kbreset_w));
// main cpu
- MCFG_DEVICE_ADD("maincpu", M68000, amiga_state::CLK_7M_PAL)
- MCFG_DEVICE_PROGRAM_MAP(a500p_mem)
+ M68000(config, m_maincpu, amiga_state::CLK_7M_PAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &a500p_state::a500p_mem);
ADDRESS_MAP_BANK(config, "overlay").set_map(&amiga_state::overlay_1mb_map).set_options(ENDIANNESS_BIG, 16, 22, 0x200000);
@@ -1898,23 +1896,22 @@ MACHINE_CONFIG_START(a500p_state::a500p)
// software
SOFTWARE_LIST(config, "ecs_list").set_original("amigaecs_flop");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(a500p_state::a500pn)
+void a500p_state::a500pn(machine_config &config)
+{
a500p(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC)
+ m_maincpu->set_clock(amiga_state::CLK_7M_NTSC);
config.device_remove("screen");
ntsc_video(config);
- MCFG_DEVICE_MODIFY("amiga")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_C1_NTSC)
+ m_paula->set_clock(amiga_state::CLK_C1_NTSC);
m_cia_0->set_clock(amiga_state::CLK_E_NTSC);
m_cia_1->set_clock(amiga_state::CLK_E_NTSC);
- MCFG_DEVICE_MODIFY("fdc")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC)
-MACHINE_CONFIG_END
+ m_fdc->set_clock(amiga_state::CLK_7M_NTSC);
+}
-MACHINE_CONFIG_START(a600_state::a600)
+void a600_state::a600(machine_config &config)
+{
amiga_base(config);
// keyboard
@@ -1924,8 +1921,8 @@ MACHINE_CONFIG_START(a600_state::a600)
kbd.krst_handler().set(FUNC(amiga_state::kbreset_w));
// main cpu
- MCFG_DEVICE_ADD("maincpu", M68000, amiga_state::CLK_7M_PAL)
- MCFG_DEVICE_PROGRAM_MAP(a600_mem)
+ M68000(config, m_maincpu, amiga_state::CLK_7M_PAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &a600_state::a600_mem);
ADDRESS_MAP_BANK(config, "overlay").set_map(&amiga_state::overlay_2mb_map16).set_options(ENDIANNESS_BIG, 16, 22, 0x200000);
@@ -1944,25 +1941,23 @@ MACHINE_CONFIG_START(a600_state::a600)
// software
SOFTWARE_LIST(config, "ecs_list").set_original("amigaecs_flop");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(a600_state::a600n)
+void a600_state::a600n(machine_config &config)
+{
a600(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC)
- MCFG_DEVICE_MODIFY("gayle")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_28M_NTSC / 2)
+ m_maincpu->set_clock(amiga_state::CLK_7M_NTSC);
+ subdevice<gayle_device>("gayle")->set_clock(amiga_state::CLK_28M_NTSC / 2);
config.device_remove("screen");
ntsc_video(config);
- MCFG_DEVICE_MODIFY("amiga")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_C1_NTSC)
+ m_paula->set_clock(amiga_state::CLK_C1_NTSC);
m_cia_0->set_clock(amiga_state::CLK_E_NTSC);
m_cia_1->set_clock(amiga_state::CLK_E_NTSC);
- MCFG_DEVICE_MODIFY("fdc")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC)
-MACHINE_CONFIG_END
+ m_fdc->set_clock(amiga_state::CLK_7M_NTSC);
+}
-MACHINE_CONFIG_START(a1200_state::a1200)
+void a1200_state::a1200(machine_config &config)
+{
amiga_base(config);
// keyboard
@@ -1972,14 +1967,13 @@ MACHINE_CONFIG_START(a1200_state::a1200)
kbd.krst_handler().set(FUNC(amiga_state::kbreset_w));
// main cpu
- MCFG_DEVICE_ADD("maincpu", M68EC020, amiga_state::CLK_28M_PAL / 2)
- MCFG_DEVICE_PROGRAM_MAP(a1200_mem)
+ M68EC020(config, m_maincpu, amiga_state::CLK_28M_PAL / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &a1200_state::a1200_mem);
ADDRESS_MAP_BANK(config, "overlay").set_map(&amiga_state::overlay_2mb_map32).set_options(ENDIANNESS_BIG, 32, 22, 0x200000);
- MCFG_DEVICE_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga_aga)
- MCFG_SCREEN_NO_PALETTE
+ m_screen->set_screen_update(FUNC(amiga_state::screen_update_amiga_aga));
+ m_screen->set_palette(finder_base::DUMMY_TAG);
config.device_remove("palette");
@@ -1998,8 +1992,7 @@ MACHINE_CONFIG_START(a1200_state::a1200)
// keyboard
#if 0
- MCFG_DEVICE_MODIFY("kbd")
- MCFG_SLOT_DEFAULT_OPTION("a1200_us")
+ subdevice<amiga_keyboard_bus_device>("kbd").set_default_option("a1200_us");
#endif
// todo: pcmcia
@@ -2007,28 +2000,25 @@ MACHINE_CONFIG_START(a1200_state::a1200)
// software
SOFTWARE_LIST(config, "aga_list").set_original("amigaaga_flop");
SOFTWARE_LIST(config, "ecs_list").set_original("amigaecs_flop");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(a1200_state::a1200n)
+void a1200_state::a1200n(machine_config &config)
+{
a1200(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_28M_NTSC / 2)
- MCFG_DEVICE_MODIFY("gayle")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_28M_NTSC / 2)
+ m_maincpu->set_clock(amiga_state::CLK_28M_NTSC / 2);
+ subdevice<gayle_device>("gayle")->set_clock(amiga_state::CLK_28M_NTSC / 2);
config.device_remove("screen");
ntsc_video(config);
- MCFG_DEVICE_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga_aga)
- MCFG_SCREEN_NO_PALETTE
- MCFG_DEVICE_MODIFY("amiga")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_C1_NTSC)
+ m_screen->set_screen_update(FUNC(amiga_state::screen_update_amiga_aga));
+ m_screen->set_palette(finder_base::DUMMY_TAG);
+ m_paula->set_clock(amiga_state::CLK_C1_NTSC);
m_cia_0->set_clock(amiga_state::CLK_E_NTSC);
m_cia_1->set_clock(amiga_state::CLK_E_NTSC);
- MCFG_DEVICE_MODIFY("fdc")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC)
-MACHINE_CONFIG_END
+ m_fdc->set_clock(amiga_state::CLK_7M_NTSC);
+}
-MACHINE_CONFIG_START(a4000_state::a4000)
+void a4000_state::a4000(machine_config &config)
+{
amiga_base(config);
// keyboard
@@ -2037,14 +2027,13 @@ MACHINE_CONFIG_START(a4000_state::a4000)
kbd.kdat_handler().set("cia_0", FUNC(mos8520_device::sp_w));
// main cpu
- MCFG_DEVICE_ADD("maincpu", M68040, XTAL(50'000'000) / 2)
- MCFG_DEVICE_PROGRAM_MAP(a4000_mem)
+ M68040(config, m_maincpu, XTAL(50'000'000) / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &a4000_state::a4000_mem);
ADDRESS_MAP_BANK(config, "overlay").set_map(&amiga_state::overlay_2mb_map32).set_options(ENDIANNESS_BIG, 32, 22, 0x200000);
- MCFG_DEVICE_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga_aga)
- MCFG_SCREEN_NO_PALETTE
+ m_screen->set_screen_update(FUNC(amiga_state::screen_update_amiga_aga));
+ m_screen->set_palette(finder_base::DUMMY_TAG);
config.device_remove("palette");
@@ -2062,55 +2051,52 @@ MACHINE_CONFIG_START(a4000_state::a4000)
// software
SOFTWARE_LIST(config, "aga_list").set_original("amigaaga_flop");
SOFTWARE_LIST(config, "ecs_list").set_original("amigaecs_flop");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(a4000_state::a4000n)
+void a4000_state::a4000n(machine_config &config)
+{
a4000(config);
config.device_remove("screen");
ntsc_video(config);
- MCFG_DEVICE_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga_aga)
- MCFG_SCREEN_NO_PALETTE
- MCFG_DEVICE_MODIFY("amiga")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_C1_NTSC)
+ m_screen->set_screen_update(FUNC(amiga_state::screen_update_amiga_aga));
+ m_screen->set_palette(finder_base::DUMMY_TAG);
+ m_paula->set_clock(amiga_state::CLK_C1_NTSC);
m_cia_0->set_clock(amiga_state::CLK_E_NTSC);
m_cia_1->set_clock(amiga_state::CLK_E_NTSC);
- MCFG_DEVICE_MODIFY("fdc")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC)
-MACHINE_CONFIG_END
+ m_fdc->set_clock(amiga_state::CLK_7M_NTSC);
+}
-MACHINE_CONFIG_START(a4000_state::a400030)
+void a4000_state::a400030(machine_config &config)
+{
a4000(config);
// main cpu
- config.device_remove("maincpu");
- MCFG_DEVICE_ADD("maincpu", M68EC030, XTAL(50'000'000) / 2)
- MCFG_DEVICE_PROGRAM_MAP(a400030_mem)
+ M68EC030(config.replace(), m_maincpu, XTAL(50'000'000) / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &a4000_state::a400030_mem);
// todo: ide
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(a4000_state::a400030n)
+void a4000_state::a400030n(machine_config &config)
+{
a400030(config);
config.device_remove("screen");
ntsc_video(config);
- MCFG_DEVICE_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga_aga)
- MCFG_SCREEN_NO_PALETTE
- MCFG_DEVICE_MODIFY("amiga")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_C1_NTSC)
+ m_screen->set_screen_update(FUNC(amiga_state::screen_update_amiga_aga));
+ m_screen->set_palette(finder_base::DUMMY_TAG);
+ m_paula->set_clock(amiga_state::CLK_C1_NTSC);
m_cia_0->set_clock(amiga_state::CLK_E_NTSC);
m_cia_1->set_clock(amiga_state::CLK_E_NTSC);
- MCFG_DEVICE_MODIFY("fdc")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC)
-MACHINE_CONFIG_END
+ m_fdc->set_clock(amiga_state::CLK_7M_NTSC);
+}
-MACHINE_CONFIG_START(cd32_state::cd32)
+void cd32_state::cd32(machine_config &config)
+{
amiga_base(config);
// main cpu
- MCFG_DEVICE_ADD("maincpu", M68EC020, amiga_state::CLK_28M_PAL / 2)
- MCFG_DEVICE_PROGRAM_MAP(cd32_mem)
+ M68EC020(config, m_maincpu, amiga_state::CLK_28M_PAL / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &cd32_state::cd32_mem);
ADDRESS_MAP_BANK(config, "overlay").set_map(&amiga_state::overlay_2mb_map32).set_options(ENDIANNESS_BIG, 32, 22, 0x200000);
@@ -2124,68 +2110,62 @@ MACHINE_CONFIG_START(cd32_state::cd32)
akiko.sda_r_callback().set("i2cmem", FUNC(i2cmem_device::read_sda));
akiko.sda_w_callback().set("i2cmem", FUNC(i2cmem_device::write_sda));
- MCFG_DEVICE_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga_aga)
- MCFG_SCREEN_NO_PALETTE
+ m_screen->set_screen_update(FUNC(amiga_state::screen_update_amiga_aga));
+ m_screen->set_palette(finder_base::DUMMY_TAG);
config.device_remove("palette");
MCFG_VIDEO_START_OVERRIDE(amiga_state, amiga_aga)
- MCFG_DEVICE_ADD("cdda", CDDA)
- MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
- MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
+ CDDA(config, m_cdda);
+ m_cdda->add_route(0, "lspeaker", 0.50);
+ m_cdda->add_route(1, "rspeaker", 0.50);
m_cia_0->pa_wr_callback().set(FUNC(cd32_state::akiko_cia_0_port_a_write));
m_cia_0->sp_wr_callback().set_nop();
CDROM(config, "cdrom").set_interface("cd32_cdrom");
SOFTWARE_LIST(config, "cd_list").set_original("cd32");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(cd32_state::cd32n)
+void cd32_state::cd32n(machine_config &config)
+{
cd32(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_28M_NTSC / 2)
+ m_maincpu->set_clock(amiga_state::CLK_28M_NTSC / 2);
config.device_remove("screen");
ntsc_video(config);
- MCFG_DEVICE_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga_aga)
- MCFG_SCREEN_NO_PALETTE
- MCFG_DEVICE_MODIFY("amiga")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_C1_NTSC)
+ m_screen->set_screen_update(FUNC(amiga_state::screen_update_amiga_aga));
+ m_screen->set_palette(finder_base::DUMMY_TAG);
+ m_paula->set_clock(amiga_state::CLK_C1_NTSC);
m_cia_0->set_clock(amiga_state::CLK_E_NTSC);
m_cia_1->set_clock(amiga_state::CLK_E_NTSC);
- MCFG_DEVICE_MODIFY("fdc")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC)
-MACHINE_CONFIG_END
+ m_fdc->set_clock(amiga_state::CLK_7M_NTSC);
+}
-MACHINE_CONFIG_START(a4000_state::a4000t)
+void a4000_state::a4000t(machine_config &config)
+{
a4000(config);
// main cpu
- config.device_remove("maincpu");
- MCFG_DEVICE_ADD("maincpu", M68040, XTAL(50'000'000) / 2)
- MCFG_DEVICE_PROGRAM_MAP(a4000t_mem)
+ M68040(config.replace(), m_maincpu, XTAL(50'000'000) / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &a4000_state::a4000t_mem);
// todo: ide, zorro3, scsi, super dmac
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(a4000_state::a4000tn)
+void a4000_state::a4000tn(machine_config &config)
+{
a4000(config);
config.device_remove("screen");
ntsc_video(config);
- MCFG_DEVICE_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga_aga)
- MCFG_SCREEN_NO_PALETTE
- MCFG_DEVICE_MODIFY("amiga")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_C1_NTSC)
+ m_screen->set_screen_update(FUNC(amiga_state::screen_update_amiga_aga));
+ m_screen->set_palette(finder_base::DUMMY_TAG);
+ m_paula->set_clock(amiga_state::CLK_C1_NTSC);
m_cia_0->set_clock(amiga_state::CLK_E_NTSC);
m_cia_1->set_clock(amiga_state::CLK_E_NTSC);
- MCFG_DEVICE_MODIFY("fdc")
- MCFG_DEVICE_CLOCK(amiga_state::CLK_7M_NTSC)
-MACHINE_CONFIG_END
+ m_fdc->set_clock(amiga_state::CLK_7M_NTSC);
+}
//**************************************************************************