1
0
mirror of https://github.com/fadden/6502bench.git synced 2024-07-19 21:29:14 +00:00
6502bench/SourceGen/SGTestData/Expected/2007-labels-and-symbols_cc65.S
Andy McFadden 2065f4ef9e Attempt to generate segment names for cc65
This worked, sort of.  The problem is that SourceGen will revert to
hex output in certain situations, such as a broken symbolic
reference.  There happens to be one in the ZIPPY example, and it's
on a relative branch.

The goal with the segment stuff is to allow cc65 to treat the
source as relocatable code.  In that context, a relative branch to
an absolute address doesn't make any sense, so the assembler reports
a range error.

We don't currently have a mechanism that guarantees no references
are broken (and no affordance for finding them), so we can't make
this mode the default yet.

Instead, we continue to use the generic config, but generate the
correct set of lines as comments.

(issue #39)
2018-11-18 15:11:29 -08: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
.byte $54,$01,$12
.byte $44,$12,$01
.byte $54,$01,$12
.byte $44,$12,$01
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