diff options
author | hap <happppp@users.noreply.github.com> | 2021-04-27 00:04:06 +0200 |
---|---|---|
committer | hap <happppp@users.noreply.github.com> | 2021-04-27 00:04:06 +0200 |
commit | e65c6f8697c81b24f5dffa7cebc56cf1512201bc (patch) | |
tree | 1a66094dc18d9c85eb756123cec9e4a4304a66cc | |
parent | 6cc67f91c897c743ec0e3a49136eb69ab2590bf2 (diff) |
lc80e: fix lockup problem
-rw-r--r-- | src/mame/drivers/lc80.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/mame/drivers/lc80.cpp b/src/mame/drivers/lc80.cpp index 55078ad3591..805e05a02bb 100644 --- a/src/mame/drivers/lc80.cpp +++ b/src/mame/drivers/lc80.cpp @@ -149,8 +149,9 @@ void lc80_state::lc80_2_mem(address_map &map) void lc80_state::lc80e_mem(address_map &map) { + map.global_mask(0x7fff); map(0x0000, 0x1fff).rom(); - map(0xc000, 0xcfff).rom(); + map(0x4000, 0x4fff).rom(); } void lc80_state::lc80_io(address_map &map) @@ -337,7 +338,7 @@ uint8_t lc80_state::pio2_pb_r() return data; } -#if 0 + /* Z80 Daisy Chain */ static const z80_daisy_config lc80_daisy_chain[] = @@ -347,7 +348,6 @@ static const z80_daisy_config lc80_daisy_chain[] = { "pio0" }, { nullptr } }; -#endif /* Machine Initialization */ @@ -357,7 +357,8 @@ void lc80_state::machine_start() m_halt_led.resolve(); address_space &program = m_maincpu->space(AS_PROGRAM); - program.install_ram(0x2000, 0x2000 + m_ram->size() - 1, 0x1000, m_ram->pointer()); + offs_t mirror = program.map()->m_globalmask & 0x5000; + program.install_ram(0x2000, 0x2000 + m_ram->size() - 1, mirror, m_ram->pointer()); /* register for state saving */ save_item(NAME(m_digit)); @@ -374,6 +375,7 @@ void lc80_state::lc80(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &lc80_state::lc80_mem); m_maincpu->set_addrmap(AS_IO, &lc80_state::lc80_io); m_maincpu->halt_cb().set(FUNC(lc80_state::halt_w)); + m_maincpu->set_daisy_config(lc80_daisy_chain); /* video hardware */ PWM_DISPLAY(config, m_display).set_size(1+6, 8); @@ -404,8 +406,9 @@ void lc80_state::lc80(machine_config &config) CASSETTE(config, m_cassette); m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED); - RAM(config, m_ram).set_default_size("1K"); - m_ram->set_extra_options("1K,2K,3K,4K"); + RAM(config, m_ram).set_extra_options("1K,2K,3K,4K"); + m_ram->set_default_size("1K"); + m_ram->set_default_value(0xff); } void lc80_state::lc80a(machine_config &config) @@ -460,7 +463,7 @@ ROM_START( lc80e ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "lc80e-0000-schach.rom", 0x0000, 0x1000, CRC(e3cca61d) SHA1(f2be3f2a9d3780d59657e49b3abeffb0fc13db89) ) ROM_LOAD( "lc80e-1000-schach.rom", 0x1000, 0x1000, CRC(b0323160) SHA1(0ea019b0944736ae5b842bf9aa3537300f259b98) ) - ROM_LOAD( "lc80e-c000-schach.rom", 0xc000, 0x1000, CRC(9c858d9c) SHA1(2f7b3fd046c965185606253f6cd9372da289ca6f) ) + ROM_LOAD( "lc80e-c000-schach.rom", 0x4000, 0x1000, CRC(9c858d9c) SHA1(2f7b3fd046c965185606253f6cd9372da289ca6f) ) ROM_END } // anonymous namespace |