1
0
mirror of https://github.com/fadden/6502bench.git synced 2024-11-13 13:10:51 +00:00
6502bench/SourceGen/SGTestData/Expected/2019-local-variables_cc65.S
Andy McFadden 14b215b76d Implement local variables for cc65
I'd apparently overlooked the ".set" directive, which seems to do
exactly what we need.
2019-09-01 18:14:39 -07:00

111 lines
2.7 KiB
ArmAsm

;Edited to have duplicate labels (PROJ_ZERO, DPCODE).
.setcpu "65816"
PROJ_ZERO = $00 ;project addr
PROJ_ONE = $01 ;project addr
CONST_ZERO = $f0 ;project const
; .segment "SEG000"
.org $1000
.a8
.i8
ldy PROJ_ZERO
lda (PROJ_ONE),y
sta $03
ldx $04
lda CONST_ZERO,S
sta $f1,S
VAR_ZERO .set $00
VAR_TWO .set $02
VAR_THREE .set $03
CONST_ZERO_VAR .set $f0
ldy VAR_ZERO
lda (VAR_ZERO+1),y
sta VAR_THREE
ldx $04
lda CONST_ZERO_VAR,S
sta $f1,S
eor 0
ora 240,S
PROJ_ZERO_DUP1 .set $10 ;clash with project symbol
DPCODE_DUP1 .set $80 ;clash with user label
lda VAR_ZERO
lda VAR_ZERO+1
lda VAR_TWO
lda VAR_THREE
lda $04
lda PROJ_ZERO_DUP1
lda $11
lda z:DPCODE
ldx PROJ_ZERO
ldx PROJ_ONE
ldx $02
bit $ffa9
ldy PROJ_ZERO
ldy PROJ_ONE
ldy $02
.byte $2c
NH0 .set $00 ;not hidden
NH1 .set $01 ;not hidden
L103C: lda #$fe
beq L103C
ldy NH0
ldy NH1
ldy $02
nop
PTR0 .set $10
CONST0 .set $10
lda PTR0
ldx PTR0+1
ldy $12
lda (CONST0,S),y
sta (CONST0+3,S),y
;Test name redefinition. This is mostly of interest for assemblers without
;redefinable variables, but also of interest to the cross-reference window.
PTR .set $20 ;#1
ldx PTR
PTR .set $22 ;#2
ldx PTR
PTR .set $24 ;#3
ldx PTR
PTR_1: nop
PTR_A .set $20
ldy PTR_A
PTR_B .set $1f
ldy PTR_B+1
PTR_C .set $1d
ldy PTR_C+3
PTR_D .set $21
ldy PTR_C+3
VAL0 .set $30
VAL1 .set $31
VAL2 .set $32
VAL3 .set $33
VAL4 .set $34
VAL5 .set $35
and VAL0
and VAL1
and VAL2
and VAL3
and VAL4
and VAL5
VAL14 .set $31
and VAL0
and VAL14
and VAL14+1
and VAL14+2
and VAL14+3
and VAL5
DPNOP .set $80 ;same as org
lda z:DPCODE
jsr DPCODE
rts
; .segment "SEG001"
.org $0080
DPCODE: nop
lda DPCODE
lda a:DPCODE
lda f:DPCODE
rts