Re: [hatari-devel] Bcc target address in debugger

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


Le 01/09/2021 à 23:13, Christian Zietz a écrit :
Eero Tamminen schrieb:
Hi,

On 29.8.2021 23.39, Miro Kropáček wrote:
I've been playing with Hatari's debugger for the past few days and I don't get one thing. Why does it always show $0000000 as the target address? Like
this:

CPU=$1889a, VBL=972, FrameCycles=565296, HBL=276, LineCycles=48, DSP=N/A
0001889A 66fa                     BNE.B #$fa == $00000000 (T)

There wasn't a single case where I'd see something else. The T/F indicator
works, the jump itself works, I just don't understand that that zero is
supposed to mean. Latest Hatari, nothing strange, just stepping the code.

I think either Toni or Nicolas need to answer this...

Well.... It seems that the UAE disassembler uses 0xFFFFFFFF as a special
value to indicate whether a source or destination address is valid:
https://github.com/tonioni/WinUAE/blob/1e81c84ed109b945dce6bdbba10eda9da3e35d64/disasm.cpp#L1743
Hatari, however, for reasons unknown to me, initializes these variables
to 0 instead:
https://git.tuxfamily.org/hatari/hatari.git/tree/src/cpu/disasm.c#n1754
Unfortunately, when printing the target address, it checks for the
special value to decide which address to use and ends up using deaddr2
instead of seaddr2:
https://git.tuxfamily.org/hatari/hatari.git/tree/src/cpu/disasm.c#n2190


Hi

good catch, thanks for pointing it.

it seems that at one point I did not fully merge some WinUAE's change into Hatari and this results in these difference (in that case, Hatari should use the same code as WinUAE)

I will do a diff between the 2 source trees to see if there're more point to fix.

Nicolas



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