mirror of
https://github.com/fadden/6502bench.git
synced 2025-02-18 23:30:36 +00:00
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)
210 lines
5.2 KiB
ArmAsm
210 lines
5.2 KiB
ArmAsm
;Project was edited to add a label in the middle of a dense hex region, and add
|
|
;a duplicate label.
|
|
.cpu "65816"
|
|
zip = $cd
|
|
absl = $1029
|
|
plataddr = $3000 ;address only in platform file
|
|
projalsa = $3200 ;same val as projalso
|
|
absh = $feed
|
|
biggie = $123456
|
|
thirty2 = $12345678 ;32-bit constant test
|
|
|
|
* = $012345
|
|
.as
|
|
.xs
|
|
start clc
|
|
xce
|
|
sep #$30
|
|
lda #zip
|
|
lda #zip+16
|
|
lda #zip-192
|
|
lda #<absh
|
|
lda #>absh
|
|
lda #<absh-192
|
|
lda #(>absh)+1
|
|
lda #<absl
|
|
lda #>absl
|
|
lda #<absl+192
|
|
lda #(>absl)-1
|
|
lda #<start
|
|
lda #>start
|
|
lda #`start
|
|
pea $feed
|
|
pea 0+(start & $ffff)
|
|
pea $0001
|
|
pea $3456
|
|
pea $0012
|
|
pea absh
|
|
pea 0+(start & $ffff)
|
|
pea 0+(start >> 16)
|
|
pea 0+(biggie & $ffff)
|
|
pea 0+(biggie >> 16)
|
|
lda zip+1
|
|
lda @wzip+1
|
|
lda @lzip+1
|
|
lda absh-1
|
|
lda @labsh-1
|
|
lda absh+1
|
|
lda @labsh+1
|
|
lda 0+(start & $ffff)+1
|
|
lda start+1
|
|
lda 0+(start & $ffff)-1
|
|
lda start-1
|
|
lda 0+(biggie & $ffff)+1
|
|
lda biggie+1
|
|
lda 0+(biggie & $ffff)-1
|
|
lda biggie-1
|
|
rep #$30
|
|
.al
|
|
.xl
|
|
lda #zip
|
|
lda #zip+16
|
|
lda #zip+64
|
|
lda #absl
|
|
lda #0+(absl >> 8)
|
|
lda #absl-4096
|
|
lda #0+(absl >> 8)-16
|
|
lda #0+(absl >> 16)
|
|
lda #absh
|
|
lda #0+(absh >> 8)
|
|
lda #absh-61440
|
|
lda #0+(absh >> 8)+16
|
|
lda #0+(absh >> 16)+1
|
|
lda #0+(start & $ffff)
|
|
lda #0+(start >> 8)
|
|
lda #0+(start >> 16)
|
|
lda #0+(biggie & $ffff)
|
|
lda #0+(biggie >> 8)
|
|
lda #0+(biggie >> 16)
|
|
bra skipdata
|
|
|
|
.byte zip
|
|
.byte <absh
|
|
.byte >absh
|
|
.byte <start
|
|
.byte >start
|
|
.byte `start
|
|
.word zip
|
|
.word absl
|
|
.word 0+(absl >> 8)
|
|
.word absl-4096
|
|
.word 0+(absl >> 8)-16
|
|
.word absh
|
|
.word 0+(absh >> 8)
|
|
.word absh-61440
|
|
.word 0+(absh >> 8)+16
|
|
.word 0+(start & $ffff)
|
|
.word 0+(start >> 8)
|
|
.word 0+(start >> 16)
|
|
.word 0+(start & $ffff)+1
|
|
.word 0+(start >> 8)
|
|
.word 0+(start >> 16)
|
|
.byte $fe,$ed
|
|
.long zip
|
|
.long absh
|
|
.long 0+(absh >> 8)
|
|
.long start
|
|
.long 0+(start >> 8)
|
|
.long 0+(start >> 16)
|
|
.dword zip
|
|
.dword absh
|
|
.dword 0+(absh >> 8)
|
|
.dword start-1
|
|
.dword 0+(start >> 8)
|
|
.dword 0+(start >> 16)
|
|
|
|
skipdata lda #0+(biggie >> 16)-1
|
|
mvn `biggie,(`biggie)-17
|
|
mvp `start,(`start)+17
|
|
mvn 18,1
|
|
mvp %00000001,%00010010
|
|
per skipdata
|
|
brl nextchunk
|
|
|
|
nextchunk jml L1000_1
|
|
|
|
.logical $1000
|
|
L1000_1 nop
|
|
L1000 nop
|
|
L1000_0 nop
|
|
l1000 sep #$30
|
|
.as
|
|
.xs
|
|
lda plataddr
|
|
lda $3100
|
|
lda projalsa
|
|
lda $3300
|
|
bra calls
|
|
|
|
nop
|
|
targ nop
|
|
nop
|
|
L1016 per targ-1
|
|
per targ
|
|
per targ+1
|
|
jsr targ-1
|
|
jsr targ
|
|
jsr targ+1
|
|
L1028 bra targ-1
|
|
|
|
L102A bra targ
|
|
|
|
L102C bra targ+1
|
|
|
|
L102E brl targ-1
|
|
|
|
L1031 brl targ
|
|
|
|
L1034 brl targ+1
|
|
|
|
L1037 jmp targ-1
|
|
|
|
L103A jmp targ
|
|
|
|
L103D jmp targ+1
|
|
|
|
L1040 jml targ-1
|
|
|
|
jml targ
|
|
|
|
jml targ+1
|
|
|
|
calls jsr L1016
|
|
jsr L1028
|
|
jsr L102A
|
|
jsr L102C
|
|
jsr L102E
|
|
jsr L1031
|
|
jsr L1034
|
|
jsr L1037
|
|
jsr L103A
|
|
jsr L103D
|
|
jsr L1040
|
|
jsr $1044
|
|
jsr $1048
|
|
brl L118E
|
|
|
|
bulk .byte $80,$81,$82,$83,$84,$85,$86,$87,$88,$89,$8a,$8b,$8c,$8d,$8e,$8f ;bulky
|
|
.byte $80,$81,$82,$83,$84,$85,$86,$87,$88,$89,$8a,$8b,$8c,$8d,$8e,$8f
|
|
.byte $80,$81,$82,$83,$84,$85,$86,$87,$88,$89,$8a,$8b,$8c,$8d,$8e,$8f
|
|
.byte $80,$81,$82,$83,$84,$85,$86,$87,$88,$89,$8a,$8b,$8c,$8d,$8e,$8f
|
|
.byte $80,$81,$82,$83,$84,$85,$86,$87,$88,$89,$8a,$8b,$8c,$8d,$8e,$8f
|
|
.byte $80,$81,$82,$83,$84,$85,$86,$87,$88,$89,$8a,$8b,$8c,$8d,$8e,$8f
|
|
.byte $80,$81,$82,$83,$84,$85,$86,$87,$88,$89,$8a,$8b,$8c,$8d,$8e,$8f
|
|
string .text "This is a long string. Put a label and comment on it to confir" ;stringy
|
|
.text "m that the label and comment only appear on the first line. T"
|
|
.text "he quick brown fox jumps over the lazy dogs."
|
|
|
|
L118E lda #<thirty2+2
|
|
lda #(>thirty2)+3
|
|
lda #`thirty2
|
|
rep #$30
|
|
.al
|
|
.xl
|
|
lda #0+(thirty2 & $ffff)+3
|
|
lda #0+((thirty2 >> 8) & $ffff)+4
|
|
lda #0+(thirty2 >> 16)
|
|
rts
|
|
|
|
.here
|