Re: [hatari-devel] Hatari freezing when running FIX24.PRG |
[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]
Le 09/10/2018 à 13:57, Nicolas Pomarède a écrit :
Le 09/10/2018 à 12:54, Uwe Seimet a écrit :Hi,thanks for this program, but unfortunately I can't reproduce any crash. I copied fix24.prg to my gemdos drive then ran : hatari -c ../my_tests/hatari_uwe.cfg -d /others/ST/D --machine tt --tos ~/Emul/ST/tos306fr.img -s 14 --ttram 16 --mmu on --addr24 off --cpu-exact on --compatible on from the desktop I launched fix24.prg which exited cleanly and tos still work, no crash.How did you ensure that TT-RAM was completely unallocated when starting FIX24? Please see the notes in my previous posting: FIX24 usually has to be run (as first program) from the AUTO folder. Otherwise some TT-RAM may already have been allocated, and then it's too late to disable 32 bit addressing, because running programs are already using it. Please also check the startup message of FIX24, which reports if TT-RAM is already in use.Ok, I can get the same problem when starting from auto. I will try to debug this as soon as I get a little more spare time.
looking more closely at the tables that fix24.prg generates to ignore the upper 8 bits of 32 bit logical addresses, I see something strange when I run hatari with 16 MB of TT-RAM : it overrides the entry for ROM's region at E00000 and translate it to 01000000.
So obvioulsy, as soon as fix24.prg exits and PC goes back to TOS, program will misbehaves as the cpu will try to fetch TOS content from physical address 01000000 instead of E00000.
This is the table I see at $700 just before fix24.prg enables MMU in TC (no_cook label in FIX24.S) :
00000700: 00 00 00 01 00 10 00 01 00 20 00 01 00 30 00 01 00000710: 00 40 00 01 00 50 00 01 00 60 00 01 00 70 00 01 00000720: 00 80 00 01 00 90 00 01 00 a0 00 01 00 b0 00 01 00000730: 00 c0 00 01 00 d0 00 01 01 00 00 01 00 f0 00 41 00000740: 00 00 07 ca 01 00 00 01 02 00 00 01 03 00 00 01 00000750: 04 00 00 01 05 00 00 01 06 00 00 01 07 00 00 01 00000760: 08 00 00 01 09 00 00 01 0a 00 00 01 0b 00 00 01 00000770: 0c 00 00 01 0d 00 00 01 0e 00 00 01 0f 00 00 01 00000780: 00 00 00 41 01 00 00 41 02 00 00 41 03 00 00 41 00000790: 04 00 00 41 05 00 00 41 06 00 00 41 07 00 00 41 As can be seen, $738 contains 01 00 00 01 instead of 00 e0 00 01.Am I missing something (my memories about mmu debugging are not completely fresh yet :) ) or does fix24.prg requires at least 32 or 64 MB of TT-RAM for example to not override $738 ?
Nicolas
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |