1
0
mirror of https://github.com/fadden/6502bench.git synced 2024-11-18 15:06:07 +00:00
6502bench/SourceGen/SGTestData/Expected/2007-labels-and-symbols_cc65.S
Andy McFadden 835c1c7fe2 Reverse position on '#' in block move operands
During a discussion with the cc65 developers, I became convinced that
generating "MVN $01,$02" is wrong, and "MVN #$01,#$02" is correct.
64tass, cc65, and Merlin 32 all accept this syntax; only ACME does
not.  Operands without a leading '#' should be treated as 24-bit
values, and have the bank byte extracted.

This change updates the on-screen display and assembled output to
include the '#'.  The ACME generator uses a Quirk to suppress the
hash mark.  (It doesn't currently accept values larger than 8 bits,
so there's no ambiguity.)
2019-08-08 13:02:01 -07:00

211 lines
5.3 KiB
ArmAsm

;Project was edited to add a label in the middle of a dense hex region, and add
;a duplicate label.
.setcpu "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
; .segment "SEG000"
.org $012345
.a8
.i8
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 start & $ffff
pea $0001
pea $3456
pea $0012
pea absh
pea start & $ffff
pea start >> 16
pea biggie & $ffff
pea biggie >> 16
lda zip+1
lda a:zip+1
lda f:zip+1
lda absh-1
lda f:absh-1
lda absh+1
lda f:absh+1
lda start & $ffff +1
lda start+1
lda start & $ffff -1
lda start-1
lda biggie & $ffff +1
lda biggie+1
lda biggie & $ffff -1
lda biggie-1
rep #$30
.a16
.i16
lda #zip
lda #zip+16
lda #zip+64
lda #absl
lda #absl >> 8
lda #absl-4096
lda #absl >> 8 -16
lda #absl >> 16
lda #absh
lda #absh >> 8
lda #absh-61440
lda #absh >> 8 +16
lda #absh >> 16 +1
lda #start & $ffff
lda #start >> 8
lda #start >> 16
lda #biggie & $ffff
lda #biggie >> 8
lda #biggie >> 16
bra skipdata
.byte zip
.byte <absh
.byte >absh
.byte <start
.byte >start
.byte ^start
.word zip
.word absl
.word absl >> 8
.word absl-4096
.word absl >> 8 -16
.word absh
.word absh >> 8
.word absh-61440
.word absh >> 8 +16
.word start & $ffff
.word start >> 8
.word start >> 16
.word start & $ffff +1
.word start >> 8
.word start >> 16
.dbyt absh
.faraddr zip
.faraddr absh
.faraddr absh >> 8
.faraddr start
.faraddr start >> 8
.faraddr start >> 16
.dword zip
.dword absh
.dword absh >> 8
.dword start-1
.dword start >> 8
.dword start >> 16
skipdata: lda #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
; .segment "SEG001"
.org $1000
L1000_1: nop
L1000: nop
L1000_0: nop
l1000: sep #$30
.a8
.i8
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: .byte "This is a long string. Put a label and comment on it to confir" ;stringy
.byte "m that the label and comment only appear on the first line. T"
.byte "he quick brown fox jumps over the lazy dogs."
L118E: lda #<thirty2+2
lda #>thirty2+3
lda #^thirty2
rep #$30
.a16
.i16
lda #thirty2 & $ffff +3
lda #thirty2 >> 8 & $ffff +4
lda #thirty2 >> 16
rts