Re: [hatari-devel] MEMWATCH freezes Hatari

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


Hi,

> ---> It correctly jumps to "buserr", then. No issues there.
> 0001EC9C  MOVEM.L D0/A6,-(A7)
> 0001ECA0  LEA.L (A7, $0008) == $000056fc,A6
> 0001ECA4  CMP.W #$1008,(A6, $0006) == $00005702 [b008]
> 0001ECAA  BNE.B #$04 == $0001ecb0 (T)
> 0001ECB0  MOVE.B (A6, $000b) == $00005707 [11],D0
> 0001ECB4  MOVEC D0,DFC
> 0001ECB8  MMUOP030 (A6, A1.L*4, $01) == $0005cefd,#$0161
> 0001ECC0  SUBA.L #$02,A7
> 0001ECC2  MMUOP030 (A7),#$6200
> 0001ECC6  BTST.B #$0003,(A7)+ [0a]
> 0001ECCA  BNE.B #$0e == $0001ecda (T)
> 0001ECDA  MOVE.L (A6, $0010) == $0000570c [0100d58a],D0
> 0001ECDE  MOVEA.L (D0.W*1+1266)+40 == $00e00028 [0000771e],A6
> 0001ECE6  MOVEA.L (A6) [0100b920],A6
> 0001ECE8  SUB.L (A6, $0008) == $0100b928 [0100ba20],D0
> 0001ECEC  BCS.B #$1e == $0001ed0c (F)
> 0001ECEE  CMP.L (A6, $000c) == $0100b92c [00001438],D0
> 0001ECF2  BCC.B #$18 == $0001ed0c (T)
> 0001ED0C  MOVEM.L (A7)+,,D0/A6
> ---> It asks the CPU to retry the instruction that caused the bus error
> in the first place in supervisor mode.
> 0001ED10  BSET.B #$0002,(A7, $000b) == $00005707 [11]
> 
> ---> Questions is: Where does this RTE want to go and why does retrying
> the instruction still fail?
> 0001ED16  RTE

And the other question: Why does it appear to work for Nicolas? The RTE
should just terminate the bus error exception handling, and the CPU should
then repeat the failed cycle under supervisor mode conditions. In supervisor
mode write access is permitted.

Best regards

Uwe



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