Arakula/f9dasm

Incorrect LABEL/EQU in Used Labels

linuxha opened this issue · 2 comments

Working with:
f9dasm: M6800/1/2/3/8/9 / H6309 Binary/OS9/FLEX9 Disassembler V1.82

Command line:
f9dasm -info liebert.info | tee liebert.asm

Options part of the info file (-out doesn't work):

FILE MC6803-P8nP9.bin C000
OPTION begin C000
OPTION noflex
OPTION 6801
OPTION asc
OPTION out liebert.dis

Info file(s) are huge, some 2199 lines.

I have this line for P1ADDR (... indicate skipped lines):

...
LABEL 0000 P1DDR  *; Port 1 Data Direction Register
...
LABEL 00OC OCPLOB *; Output Compare Register (LSB)
LABEL 00OD ICPHIB *; Input Capture Register (MSB)
LABEL 00OE ICPLOB *; Input Capture Register (LSB)
*
LABEL 00OF P3CSR  *; Port 3 Control and Status Register
*
LABEL 0010 RMCREG *; Rate & Mode Control Register
...

But I see in the output:

P3CSR  EQU     $0000
P2DDR   EQU     $0001
P1DR    EQU     $0002
P2DR    EQU     $0003
P3DDR   EQU     $0004
P4DDR   EQU     $0005
P3DR    EQU     $0006
P4DR    EQU     $0007
TCSR    EQU     $0008
CRHIB   EQU     $0009
M000A   EQU     $000A
M000B   EQU     $000B
M000D   EQU     $000D
RMCREG  EQU     $0010

Note the problems with the first LABEL @ $0000 (should be P1ADDR) and the M000A thru M000D. I'm not sure about any others LABEL issues at this time. If I comment out the P3CSR label in my info file, it takes the previous label in the info file (ICPLOB).

Not sure what files to post as I don't have permission to post the binary.

You might want to change the Ohs zu Zeroes in the address parts of

LABEL 00OC OCPLOB *; Output Compare Register (LSB)
LABEL 00OD ICPHIB *; Input Capture Register (MSB)
LABEL 00OE ICPLOB *; Input Capture Register (LSB)
*
LABEL 00OF P3CSR  *; Port 3 Control and Status Register

f9dasm interprets all of these as 0, since the address parsing terminates at the first non-hex character, so the last label given for address 0 (P3CSR) wins.

Zero good grief1 ;-)

Thanks for finding that.