summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2021-09-05 19:33:53 -0400
committer AJR <ajrhacker@users.noreply.github.com>2021-09-05 19:34:07 -0400
commit422b28c37841f43b38656ee5da4f2318f7f078e8 (patch)
treecc06f23d755adc830b5c5090c4054a526aadbedf
parenta5e466717fe63e7b10ef4928c55c9451793fc6e4 (diff)
amiga.cpp: Change machine configuration sequence so that the 68K CPU always comes first. This works around an issue with the debugger trying to focus first on a keyboard MCU being held in reset.
-rw-r--r--src/mame/drivers/amiga.cpp102
1 files changed, 51 insertions, 51 deletions
diff --git a/src/mame/drivers/amiga.cpp b/src/mame/drivers/amiga.cpp
index 709f5c93e96..200e47f7baf 100644
--- a/src/mame/drivers/amiga.cpp
+++ b/src/mame/drivers/amiga.cpp
@@ -1644,6 +1644,11 @@ void amiga_state::amiga_base(machine_config &config)
void a1000_state::a1000(machine_config &config)
{
+ // main cpu
+ M68000(config, m_maincpu, amiga_state::CLK_7M_PAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &a1000_state::a1000_mem);
+ m_maincpu->set_cpu_space(AS_PROGRAM);
+
amiga_base(config);
// keyboard
@@ -1655,11 +1660,6 @@ void a1000_state::a1000(machine_config &config)
.set_delays(attotime::from_msec(152), attotime::from_usec(176), attotime::from_msec(704))
.kbrst_cb().set(FUNC(a1000_state::kbreset_w));
- // main cpu
- M68000(config, m_maincpu, amiga_state::CLK_7M_PAL);
- m_maincpu->set_addrmap(AS_PROGRAM, &a1000_state::a1000_mem);
- m_maincpu->set_cpu_space(AS_PROGRAM);
-
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);
@@ -1681,6 +1681,11 @@ void a1000_state::a1000n(machine_config &config)
void a2000_state::a2000(machine_config &config)
{
+ // main cpu
+ M68000(config, m_maincpu, amiga_state::CLK_7M_PAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &a2000_state::a2000_mem);
+ m_maincpu->set_cpu_space(AS_PROGRAM);
+
amiga_base(config);
// keyboard
@@ -1692,11 +1697,6 @@ void a2000_state::a2000(machine_config &config)
.set_delays(attotime::from_msec(112), attotime::from_msec(74), attotime::from_msec(1294))
.kbrst_cb().set(FUNC(a2000_state::kbreset_w));
- // main cpu
- M68000(config, m_maincpu, amiga_state::CLK_7M_PAL);
- m_maincpu->set_addrmap(AS_PROGRAM, &a2000_state::a2000_mem);
- m_maincpu->set_cpu_space(AS_PROGRAM);
-
ADDRESS_MAP_BANK(config, "overlay").set_map(&amiga_state::overlay_512kb_map).set_options(ENDIANNESS_BIG, 16, 22, 0x200000);
// real-time clock
@@ -1733,6 +1733,11 @@ void a2000_state::a2000n(machine_config &config)
void a500_state::a500(machine_config &config)
{
+ // main cpu
+ M68000(config, m_maincpu, amiga_state::CLK_7M_PAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &a500_state::a500_mem);
+ m_maincpu->set_cpu_space(AS_PROGRAM);
+
amiga_base(config);
// keyboard
@@ -1741,11 +1746,6 @@ void a500_state::a500(machine_config &config)
kbd.kdat_handler().set("cia_0", FUNC(mos8520_device::sp_w));
kbd.krst_handler().set(FUNC(amiga_state::kbreset_w));
- // main cpu
- M68000(config, m_maincpu, amiga_state::CLK_7M_PAL);
- m_maincpu->set_addrmap(AS_PROGRAM, &a500_state::a500_mem);
- m_maincpu->set_cpu_space(AS_PROGRAM);
-
ADDRESS_MAP_BANK(config, "overlay").set_map(&amiga_state::overlay_1mb_map).set_options(ENDIANNESS_BIG, 16, 22, 0x200000);
// cpu slot
@@ -1769,6 +1769,11 @@ void a500_state::a500n(machine_config &config)
void cdtv_state::cdtv(machine_config &config)
{
+ // main cpu
+ M68000(config, m_maincpu, amiga_state::CLK_7M_PAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &cdtv_state::cdtv_mem);
+ m_maincpu->set_cpu_space(AS_PROGRAM);
+
amiga_base(config);
// keyboard
@@ -1780,11 +1785,6 @@ void cdtv_state::cdtv(machine_config &config)
.set_delays(attotime::from_usec(11238), attotime::from_usec(7432), attotime::from_usec(27539))
.kbrst_cb().set(FUNC(a1000_state::kbreset_w));
- // main cpu
- M68000(config, m_maincpu, amiga_state::CLK_7M_PAL);
- m_maincpu->set_addrmap(AS_PROGRAM, &cdtv_state::cdtv_mem);
- m_maincpu->set_cpu_space(AS_PROGRAM);
-
// remote control input converter
m6502_device &u75(M6502(config, "u75", XTAL(3'000'000)));
u75.set_addrmap(AS_PROGRAM, &cdtv_state::cdtv_rc_mem);
@@ -1847,6 +1847,11 @@ void cdtv_state::cdtvn(machine_config &config)
void a3000_state::a3000(machine_config &config)
{
+ // main cpu
+ M68030(config, m_maincpu, XTAL(32'000'000) / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &a3000_state::a3000_mem);
+ m_maincpu->set_cpu_space(AS_PROGRAM);
+
amiga_base(config);
// keyboard
@@ -1854,11 +1859,6 @@ void a3000_state::a3000(machine_config &config)
kbd.kclk_handler().set("cia_0", FUNC(mos8520_device::cnt_w));
kbd.kdat_handler().set("cia_0", FUNC(mos8520_device::sp_w));
- // main cpu
- M68030(config, m_maincpu, XTAL(32'000'000) / 2);
- m_maincpu->set_addrmap(AS_PROGRAM, &a3000_state::a3000_mem);
- m_maincpu->set_cpu_space(AS_PROGRAM);
-
ADDRESS_MAP_BANK(config, "overlay").set_map(&amiga_state::overlay_1mb_map32).set_options(ENDIANNESS_BIG, 32, 22, 0x200000);
// real-time clock
@@ -1883,6 +1883,11 @@ void a3000_state::a3000n(machine_config &config)
void a500p_state::a500p(machine_config &config)
{
+ // main cpu
+ M68000(config, m_maincpu, amiga_state::CLK_7M_PAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &a500p_state::a500p_mem);
+ m_maincpu->set_cpu_space(AS_PROGRAM);
+
amiga_base(config);
// keyboard
@@ -1891,11 +1896,6 @@ void a500p_state::a500p(machine_config &config)
kbd.kdat_handler().set("cia_0", FUNC(mos8520_device::sp_w));
kbd.krst_handler().set(FUNC(amiga_state::kbreset_w));
- // main cpu
- M68000(config, m_maincpu, amiga_state::CLK_7M_PAL);
- m_maincpu->set_addrmap(AS_PROGRAM, &a500p_state::a500p_mem);
- m_maincpu->set_cpu_space(AS_PROGRAM);
-
ADDRESS_MAP_BANK(config, "overlay").set_map(&amiga_state::overlay_1mb_map).set_options(ENDIANNESS_BIG, 16, 22, 0x200000);
// real-time clock
@@ -1923,6 +1923,11 @@ void a500p_state::a500pn(machine_config &config)
void a600_state::a600(machine_config &config)
{
+ // main cpu
+ M68000(config, m_maincpu, amiga_state::CLK_7M_PAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &a600_state::a600_mem);
+ m_maincpu->set_cpu_space(AS_PROGRAM);
+
amiga_base(config);
// keyboard
@@ -1931,11 +1936,6 @@ void a600_state::a600(machine_config &config)
kbd.kdat_handler().set("cia_0", FUNC(mos8520_device::sp_w));
kbd.krst_handler().set(FUNC(amiga_state::kbreset_w));
- // main cpu
- M68000(config, m_maincpu, amiga_state::CLK_7M_PAL);
- m_maincpu->set_addrmap(AS_PROGRAM, &a600_state::a600_mem);
- m_maincpu->set_cpu_space(AS_PROGRAM);
-
ADDRESS_MAP_BANK(config, "overlay").set_map(&amiga_state::overlay_2mb_map16).set_options(ENDIANNESS_BIG, 16, 22, 0x200000);
gayle_device &gayle(GAYLE(config, "gayle", amiga_state::CLK_28M_PAL / 2));
@@ -1971,6 +1971,13 @@ void a600_state::a600n(machine_config &config)
void a1200_state::a1200(machine_config &config)
{
+ // main cpu
+ M68EC020(config, m_maincpu, amiga_state::CLK_28M_PAL / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &a1200_state::a1200_mem);
+ m_maincpu->set_cpu_space(AS_PROGRAM);
+
+ ADDRESS_MAP_BANK(config, "overlay").set_map(&amiga_state::overlay_2mb_map32).set_options(ENDIANNESS_BIG, 32, 22, 0x200000);
+
amiga_base(config);
// keyboard
@@ -1979,13 +1986,6 @@ void a1200_state::a1200(machine_config &config)
kbd.kdat_handler().set("cia_0", FUNC(mos8520_device::sp_w));
kbd.krst_handler().set(FUNC(amiga_state::kbreset_w));
- // main cpu
- M68EC020(config, m_maincpu, amiga_state::CLK_28M_PAL / 2);
- m_maincpu->set_addrmap(AS_PROGRAM, &a1200_state::a1200_mem);
- m_maincpu->set_cpu_space(AS_PROGRAM);
-
- ADDRESS_MAP_BANK(config, "overlay").set_map(&amiga_state::overlay_2mb_map32).set_options(ENDIANNESS_BIG, 32, 22, 0x200000);
-
m_screen->set_screen_update(FUNC(amiga_state::screen_update_amiga_aga));
config.device_remove("palette");
@@ -2032,13 +2032,6 @@ void a1200_state::a1200n(machine_config &config)
void a4000_state::a4000(machine_config &config)
{
- amiga_base(config);
-
- // keyboard
- auto &kbd(AMIGA_KEYBOARD_INTERFACE(config, "kbd", amiga_keyboard_devices, "a2000_us"));
- kbd.kclk_handler().set("cia_0", FUNC(mos8520_device::cnt_w));
- kbd.kdat_handler().set("cia_0", FUNC(mos8520_device::sp_w));
-
// main cpu
M68040(config, m_maincpu, XTAL(50'000'000) / 2);
m_maincpu->set_addrmap(AS_PROGRAM, &a4000_state::a4000_mem);
@@ -2046,6 +2039,13 @@ void a4000_state::a4000(machine_config &config)
ADDRESS_MAP_BANK(config, "overlay").set_map(&amiga_state::overlay_2mb_map32).set_options(ENDIANNESS_BIG, 32, 22, 0x200000);
+ amiga_base(config);
+
+ // keyboard
+ auto &kbd(AMIGA_KEYBOARD_INTERFACE(config, "kbd", amiga_keyboard_devices, "a2000_us"));
+ kbd.kclk_handler().set("cia_0", FUNC(mos8520_device::cnt_w));
+ kbd.kdat_handler().set("cia_0", FUNC(mos8520_device::sp_w));
+
m_screen->set_screen_update(FUNC(amiga_state::screen_update_amiga_aga));
config.device_remove("palette");
@@ -2105,8 +2105,6 @@ void a4000_state::a400030n(machine_config &config)
void cd32_state::cd32(machine_config &config)
{
- amiga_base(config);
-
// main cpu
M68EC020(config, m_maincpu, amiga_state::CLK_28M_PAL / 2);
m_maincpu->set_addrmap(AS_PROGRAM, &cd32_state::cd32_mem);
@@ -2114,6 +2112,8 @@ void cd32_state::cd32(machine_config &config)
ADDRESS_MAP_BANK(config, "overlay").set_map(&amiga_state::overlay_2mb_map32).set_options(ENDIANNESS_BIG, 32, 22, 0x200000);
+ amiga_base(config);
+
I2C_24C08(config, "i2cmem", 0); // AT24C08N
akiko_device &akiko(AKIKO(config, "akiko", 0));