mirror of
https://github.com/holub/mame
synced 2025-04-26 02:07:14 +03:00
mac: Fix interactions between mirror and range [O. Galibert]
This commit is contained in:
parent
c8993e81b3
commit
b01de991f1
@ -155,16 +155,16 @@ void mac_state::mac_install_memory(offs_t memory_begin, offs_t memory_end,
|
|||||||
offs_t memory_mirror;
|
offs_t memory_mirror;
|
||||||
|
|
||||||
memory_size = MIN(memory_size, (memory_end + 1 - memory_begin));
|
memory_size = MIN(memory_size, (memory_end + 1 - memory_begin));
|
||||||
memory_mirror = (memory_end - memory_begin) ^ (memory_size - 1);
|
memory_mirror = (memory_end - memory_begin) & ~(memory_size - 1);
|
||||||
|
|
||||||
if (!is_rom)
|
if (!is_rom)
|
||||||
{
|
{
|
||||||
space.install_readwrite_bank(memory_begin, memory_end, memory_mirror, bank);
|
space.install_readwrite_bank(memory_begin, memory_end & ~memory_mirror, memory_mirror, bank);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
space.unmap_write(memory_begin, memory_end);
|
space.unmap_write(memory_begin, memory_end);
|
||||||
space.install_read_bank(memory_begin, memory_end, memory_mirror, bank);
|
space.install_read_bank(memory_begin, memory_end & ~memory_mirror, memory_mirror, bank);
|
||||||
}
|
}
|
||||||
|
|
||||||
membank(bank)->set_base(memory_data);
|
membank(bank)->set_base(memory_data);
|
||||||
@ -471,7 +471,7 @@ void mac_state::set_memory_overlay(int overlay)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
size_t rom_mirror = 0xfffffff ^ (memregion("bootrom")->bytes() - 1);
|
size_t rom_mirror = 0xfffffff ^ (memregion("bootrom")->bytes() - 1);
|
||||||
m_maincpu->space(AS_PROGRAM).install_read_bank(0x40000000, 0x4fffffff, rom_mirror, "bankR");
|
m_maincpu->space(AS_PROGRAM).install_read_bank(0x40000000, 0x4fffffff & ~rom_mirror, rom_mirror, "bankR");
|
||||||
membank("bankR")->set_base((void *)memregion("bootrom")->base());
|
membank("bankR")->set_base((void *)memregion("bootrom")->base());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user