Sat, 17 Nov 2012 21:28:48 +0000
ACCESS_CHECK_RD should return the right number of bits!
If the ACCESS_CHECK_RD() macro detects a page fault, it always returns a
32-bit error response ("all bus pins high"). Musashi really doesn't like it
when we pass in a 32-bit value when it expects a 16-bit one!
src/memory.c | file | annotate | diff | revisions |
1.1 --- a/src/memory.c Sat Nov 17 19:18:29 2012 +0000 1.2 +++ b/src/memory.c Sat Nov 17 21:28:48 2012 +0000 1.3 @@ -210,7 +210,10 @@ 1.4 state.bsr1 = address & 0xffff; \ 1.5 LOG("Bus Error while reading, addr %08X, statcode %d", address, st); \ 1.6 if (state.ee) m68k_pulse_bus_error(); \ 1.7 - return 0xFFFFFFFF; \ 1.8 + if (bits == 32) \ 1.9 + return 0xFFFFFFFF; \ 1.10 + else \ 1.11 + return (1 << bits)-1; \ 1.12 } \ 1.13 } while (0) 1.14 /*}}}*/