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 diff -r a392eb8f9806 -r d3bb6a6a04b7 src/memory.c 1.2 --- a/src/memory.c Sat Nov 17 19:18:29 2012 +0000 1.3 +++ b/src/memory.c Sat Nov 17 21:28:48 2012 +0000 1.4 @@ -210,7 +210,10 @@ 1.5 state.bsr1 = address & 0xffff; \ 1.6 LOG("Bus Error while reading, addr %08X, statcode %d", address, st); \ 1.7 if (state.ee) m68k_pulse_bus_error(); \ 1.8 - return 0xFFFFFFFF; \ 1.9 + if (bits == 32) \ 1.10 + return 0xFFFFFFFF; \ 1.11 + else \ 1.12 + return (1 << bits)-1; \ 1.13 } \ 1.14 } while (0) 1.15 /*}}}*/