1
0
mirror of https://github.com/fadden/6502bench.git synced 2024-08-13 12:29:01 +00:00
6502bench/SourceGen/SGTestData/Expected/2009-branches-and-banks_64tass.S
Andy McFadden da91f86043 Get 64tass expressions working
We now insert parenthesis as needed.  This can cause problems in
some situations, so we always prefix parenthetical expressions with
"0+", which looks goofy and is unnecessary for immediate operands.
But it does generate working source code.

Renamed the "simple" expression mode to "common", as it's not
particularly simple but is what you'd expect most assemblers to do.
(OTOH, life has been full of surprises.)

(issue #16)
2018-10-24 14:57:09 -07:00

78 lines
1.4 KiB
ArmAsm

.cpu "65816"
longsym = $123456
* = $1000
.as
.xs
clc
xce
sep #$30
jmp L0000
.logical $0000
L0000 bit @wL0000
L0003 lda L0000
lda L0003
bne LFFC3
bmi $ffc3
per LFFC3
bcc L0016
brl L0080
lodat .byte $00
.byte $01
.byte $02
L0016 lda lodat+1
brl LFFC0
.here
.logical $0080
L0080 bit @wL0080
jml L440000
.here
.logical $ffc0
LFFC0 bit LFFC0
LFFC3 brl L0003
.here
.logical $440000
L440000 cmp L440000
L440004 lda L440000
lda @w0+(L440000 & $ffff)
lda L0000
bmi L440004
per high44
bne high44
brl L44FFC0
dat44 .word 0+(dat44 & $ffff)
.long dat44
.here
.logical $44ffc0
L44FFC0 cmp L44FFC0
high44 beq L44FFCB
bmi L440004
brl L440004
L44FFCB jml L2000
.here
.logical $2000
L2000 bit L2000
pea 0+(dat44 & $ffff)
pea 0+(dat44 >> 16)
bne L200E
jml [lodat]
L200E nop
jsr j2
j2 jsr j2+3
jsr j2-3
jsl longsym
rts
.here