On 23 Nov 2020 at 10:39, Nicolas Pomarède wrote:
Le 22/11/2020 à 23:47, Roger Burrows a écrit :
When the "STe Bus Emulation" bit (0x20) in the Falcon Bus Control Register
at
$ff8007 is zero, "STe Bus Emulation" mode is set. This affects bus error
handling. Hatari already models this as far as the I/O memory area is
concerned (I haven't attempted to check how accurately yet). But it also
affects bus errors when accessing RAM, which Hatari does NOT model.
Basically,
on a real Falcon with "STe Bus Emulation" enabled, there are NO bus errors
generated for the whole $0 to $dfffff region, even in user state. Even if
RAM
isn't present at an address, no bus error occurs.
This should be easy for any of the developers to verify, but I can post a
copy
of the test program I used if you would like.
Hi
did you test also for RAM < 0x800 ? Because even on STF/STE accessing
these addresses requires supervisor mode, else you get a bus error.
Yes, with "STe Bus Emulation" enabled, you can read and write locations under
$800 in user state without getting a bus error.
also on TT/Falcon, the default MMU tables are stored at addresses <
0x800 to avoid that some user programs could write garbage in these
tables and crash the computer.
So, it would be strange that < 0x800 can be accessed without supervisor
mode in STE mode.
Yes, it's strange. Obviously that isn't meant to be a normal operating mode,
but if Hatari is trying to emulate real hardware ...