| Re: [hatari-devel] EmuTOS boot freeze with Hatari git on 040/060 + MMU | 
[ Thread Index | 
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
] 
Le 13/03/2024 à 21:31, Christian Zietz a écrit :
Christian Zietz schrieb:
- According to my "git bisect" the breaking commit within Hatari is:
commit eb4467638e926af2c3d9b4e23da9917fbbf1d2d6
Author: Nicolas Pomarède <npomarede@xxxxxxxxxxxx>
Date:   Tue Sep 19 22:36:28 2023 +0200
I suppose the problem lies somewhere here: 
https://github.com/hatari/hatari/commit/eb4467638e926af2c3d9b4e23da9917fbbf1d2d6#diff-b285c31d41bc9b04586496a1ee1f4ae69b738da8f018aa512f844c7faf41a3d4R3291.
The vector number (in this case for the Timer C IRQ) is put into "nr", 
but later on, the original value saved in "vector_nr" is used to lookup 
the exception vector, essentially incorrectly making this interrupt an 
autovector interrupt.
Note that the code uses "nr" and "vector_nr" in multiple places. I did 
not check if there are other places where one of the variables is used 
incorrectly.
Hi
thanks a lot for bisecting this.
I'm the one who sent Toni a patch for WinUAE in the case where MMU is 
used, because it was not handled correctly before.
in the case of the Amiga it uses vectored interrupt, except the vectored 
interrupt doesn't change, ie nr = vector_nr, so swapping nr with 
vector_nr was not noticeable in normal Amiga use, but in the case of 
Atari it was when MFP provides its own vector
But as you notice there're several places where nr and vector_nr are 
used and it's quite possible I forgot to replace one with the other for 
correct vectored result.
I will have a look at the whole MMU part to check this.
Nicolas