2018-09-28 17:05:11 +00:00
|
|
|
; Copyright 2018 faddenSoft. All Rights Reserved.
|
|
|
|
; See the LICENSE.txt file for distribution terms (Apache 2.0).
|
|
|
|
;
|
|
|
|
; Assembler: Merlin 32
|
|
|
|
|
2019-09-20 22:29:34 +00:00
|
|
|
; NOTE: select CPU=65C02
|
|
|
|
|
2018-09-28 17:05:11 +00:00
|
|
|
EXTSYM equ $8888 ;EDIT: give this a long label
|
|
|
|
|
|
|
|
org $1000
|
|
|
|
|
|
|
|
nop
|
|
|
|
start lda :local1
|
|
|
|
lda nextglob
|
|
|
|
lda pastglob
|
|
|
|
lda :local2
|
|
|
|
|
|
|
|
:local1 nop
|
|
|
|
:local2 nop
|
|
|
|
nextglob nop ;EDIT: mark label as global
|
|
|
|
pastglob nop
|
|
|
|
|
|
|
|
lda nlocal
|
|
|
|
nlocal lda #$11 ;EDIT: mark label as global
|
|
|
|
|
|
|
|
reach1G nop ;EDIT: mark label as global
|
|
|
|
:local lda :local ;EDIT: edit operand to symbol=reach1G
|
|
|
|
|
|
|
|
lda reach4 ;EDIT: set operand to symbol=reach2; should stay local
|
|
|
|
reach2 nop
|
|
|
|
reach3G nop ;EDIT: mark label as global
|
|
|
|
reach4 nop
|
|
|
|
lda reach2 ;EDIT: edit operand to symbol=reach4; should stay local
|
|
|
|
|
|
|
|
lda $00
|
|
|
|
beq :local ;should be local
|
|
|
|
jsr reach4 ;should be local
|
|
|
|
jsr start ;should be global
|
|
|
|
:local lda #$22
|
|
|
|
|
|
|
|
lda gtest2
|
|
|
|
gtest1 nop ;EDIT: mark label as global
|
|
|
|
lda gtest3
|
|
|
|
gtest2 nop ;...which forces this to be global
|
|
|
|
gtest3 nop ;...and then this is forced to be global
|
|
|
|
|
|
|
|
lda #$33
|
|
|
|
|
|
|
|
lda midlocal ;EDIT: reformat as hex
|
|
|
|
topglob nop ;EDIT: mark label as global
|
|
|
|
lda farlocal ;should be local label ref
|
|
|
|
midlocal nop ;auto-label here should vanish
|
|
|
|
nop
|
|
|
|
farlocal nop
|
|
|
|
|
|
|
|
lda #$44
|
|
|
|
globalnm jsr :local2 ;EDIT: mark label as global
|
|
|
|
:local1 nop
|
|
|
|
:local2 nop
|
|
|
|
:local3 nop
|
|
|
|
nglobal nop ;should get marked as global
|
|
|
|
globlat jsr nglobal ;EDIT: mark label as global
|
|
|
|
|
|
|
|
bra cont
|
|
|
|
cont nop ;EDIT: mark label as global
|
|
|
|
lda EXTSYM
|
2019-09-20 22:29:34 +00:00
|
|
|
|
|
|
|
; test localizer uniquification
|
|
|
|
; only relevant for 64tass, which uses a leading '_' to indicate local labels
|
|
|
|
_uname nop
|
|
|
|
X_uname11 nop
|
|
|
|
X_uname1 nop
|
|
|
|
X_uname nop
|
|
|
|
|
|
|
|
; test labels with opcode names (not really a localization thing)
|
|
|
|
; EDIT: set these names, mark as global to prevent localization
|
|
|
|
lda #$00
|
|
|
|
ANDl bne ANDl ;leave label local
|
|
|
|
JMPg bne JMPg ;make label global
|
|
|
|
jmpg bne jmpg ;lower case name
|
|
|
|
TSBg bne TSBg
|
|
|
|
XCEg bne XCEg ;should be allowed
|
2018-09-28 17:05:11 +00:00
|
|
|
rts
|