Hi again,
Works fine and I could find a nasty bug in some game I was debugging thanks to it.
Now, I'm investigating a problem with Black Tiger WHDLoad slave. For some reason, A6 becomes corrupt and takes value $4A790000. I tried H and I was very surprised not to find why
Code:
Breakpoint at 00000004
D0 0000000C D1 0000006A D2 0000006A D3 FFFF0026
D4 0000FFFF D5 0000FFFF D6 00000008 D7 00000000
A0 00071C24 A1 0002941B A2 00022D9C A3 00071C24
A4 0002679C A5 0000BB00 A6 4A790000 A7 57FD2FF0
USP 0000CE3C ISP 57FD2FF0 SFC 00000005 DFC 00000005
CACR 80008000 TC 00008000 ITT0 00000000 ITT1 00000000
DTT0 00000000 DTT1 00000000 VBR 57FD5000 MSP 0007F800
MMUS 00000000 URP 57F78000 SRP 57F78000
T=00 S=1 M=0 X=0 N=0 Z=1 V=0 C=0 IMASK=0 STP=0
00000004 57fc TRAPEQ == $00000000 (T)
Next PC: 00000006
>H
-1 0000BA64 4a47 TST.W D7
-1 0000BA66 6700 0096 BEQ.W #$0096 == $0000bafe (T)
-1 0000BAFE 010c 2c7c MVPMR.W (A4, $2c7c) == $00029418,D0
-1 0000BB02 0000 bb0c OR.B #$0c,D0
-1 0000BB06 4ef9 57fd d6ca JMP $57fdd6ca
-1 57FDD6CA 2c76 7000 MOVEA.L (A6, D7.W*1, $00) == $0000b6e8,A6
-1 57FDD6CE bdfc 4a79 0000 CMPA.L #$4a790000,A6
-1 57FDD6D4 660c BNE.B #$0000000c == $57fdd6e2 (F)
-1 57FDD6D6 4ef8 0004 JMP $00000004
-1 00000004 57fc TRAPEQ == $00000000 (T)
at 57FDD6CA we see that A6 is properly set. Yet, at 57FDD6CE A6 is corrupt
(also happened on a real Amiga BTW)
Do you have any explanation?
I have a workaround that works: if A6 is $4Asomething, I just reset it to the proper static value and retry: fixed the problem but that's dirty.