Arakula / A09

A09 6800/6801/6809/6309/68HC11 Assembler
GNU General Public License v2.0
40 stars 8 forks source link

HD63B03 support? #4

Closed raybellis closed 4 years ago

raybellis commented 4 years ago

Hi there - I'm using f9dasm to disassemble the HD63B03 firmware for the TX81Z synthesizer.

The source for A09 appears to suggest 6303 support, but almost every source line I try with the -OH03 generates an error, e.g:

lo.asm(211) : error 2: Illegal addressing mode in "hdlr_RST OIM     #$08,PORT6               *8000: 72 08 17       'r..'"
lo.asm(212) : error 2: Illegal addressing mode in "        LDAA    #$F8                     *8003: 86 F8          '..'"
lo.asm(213) : error 2: Illegal addressing mode in "        STAA    DDR6                     *8005: 97 16          '..'"
lo.asm(214) : error 2: Illegal addressing mode in "        OIM     #$08,PORT6               *8007: 72 08 17       'r..'"

even FCB lines don't work

lo.asm(295) : error 2: Illegal addressing mode in "        FCB     $1F,$1F,$00,$0F,$0F,$00  *8086: 1F 1F 00 0F 0F 00 '......'"

Although many single word opcodes do.

Please advise if this is a fundamental incompatibility between the packages or if there's a set of options to f9fdasm and/or a09 to make them mutually compatible.

thanks! :)

Arakula commented 4 years ago

Actually, I suspect it's the '*' comment delimiters, since I added some (in hindsight, not so) clever syntax checks for these. I'll investigate.

Arakula commented 4 years ago

To check, you might add -oTSC to the command line. Might be that the error "magically goes away", Trump-style (meaning: it's still there, just masked by the "any blanks terminate the expression" rule implied by setting TSC assembler compatibility).

Arakula commented 4 years ago

As an alternative, add the commandline option -cchar ; to the f9dasm invocation. ... And yes, confirmed, it's definitely the ''. The simple line `haha lda haha hehe which has no 630x requirements at all gives the nice error *** Error 3: Undefined label` ... which only makes sense if interpreted as "multiply haha by hehe and use the low byte of that result to fill A. Oops, hehe is undefined!".

raybellis commented 4 years ago

Thanks - I changed the cchar option in f9dasm and that resolved this issue :)

Arakula commented 4 years ago

I think I'll switch to the more universal ';' in f9dasm's next version.