]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Return zero when executing code in ROM and CPU accesses non-existing address space.
authorToni Wilen <twilen@winuae.net>
Sat, 22 May 2021 12:20:27 +0000 (15:20 +0300)
committerToni Wilen <twilen@winuae.net>
Sat, 22 May 2021 12:20:27 +0000 (15:20 +0300)
memory.cpp

index 3a4c26ac93aa633a1d0657c77d99de46f76dff37..4948f1831946ca400df2d16a16fc4a0c4c305980 100644 (file)
@@ -334,6 +334,12 @@ uae_u32 dummy_get_safe(uaecptr addr, int size, bool inst, uae_u32 defvalue)
        if (currprefs.cs_unmapped_space == 2)
                return 0xffffffff & mask;
        if ((currprefs.cpu_model <= 68010) || (currprefs.cpu_model == 68020 && (currprefs.chipset_mask & CSMASK_AGA) && currprefs.address_space_24)) {
+               // if executed from ROM: always return zero
+               uaecptr pc = m68k_getpc();
+               addrbank *ab = &get_mem_bank(pc);
+               if (ab->flags & ABFLAG_ROM) {
+                       return 0;
+               }
                if (size == sz_long) {
                        v = regs.irc & 0xffff;
                        if (addr & 1)