mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
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.
This commit is contained in:
parent
a5e466717f
commit
422b28c378
@ -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));
|
||||
|
Loading…
Reference in New Issue
Block a user