[hatari-devel] MMU support

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


I have been noticing a strange problem (and difference) with Hatari vs a real Falcon, in the MMU department.

My program stores the CRP/SRP, changes them for the duration and restores them again on exit. Well actually, it only does this with the CRP. The initial SRP state is invalid on the Falcon and while it's possible to read it, it's not possible to put the value back! 030 throws an exception (and for good reason).

However save/restore on CRP works fine and I can run the program repeatedly without problems.

In Hatari, I get a 'MMU configuration exception' when restoring the CRP. 'Root Pointer is invalid'.

I don't know that this is a Hatari problem yet - it could be a problem with my code or the initial CRP state. However it's interesting that Hatari throws the exception on CRP as the Falcon did (correctly) on SRP. Yet the Falcon doesn't throw an exception on CRP... while Hatari does...

When I get the opportunity I'll take a closer look at the state of CRP to see what Hatari thinks it is, and compare with the value saved/restored on the real machine. It could just be the 030 is more tolerant of some invalid combinations. 

D


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/