mirror of
https://github.com/fadden/6502bench.git
synced 2024-11-25 14:34:27 +00:00
Regression test rework, part 3
Add a 6502-only version of the 20032-labels-and-symbols test. The 65816 version could get away with just the 65816-specific stuff, but there's no real need to modify it. (The next time I update it I may remove the duplicate label since that requires hand-editing.)
This commit is contained in:
parent
225ab9e132
commit
d0d387b973
BIN
SourceGen/SGTestData/20030-labels-and-symbols
Normal file
BIN
SourceGen/SGTestData/20030-labels-and-symbols
Normal file
Binary file not shown.
613
SourceGen/SGTestData/20030-labels-and-symbols.dis65
Normal file
613
SourceGen/SGTestData/20030-labels-and-symbols.dis65
Normal file
@ -0,0 +1,613 @@
|
||||
### 6502bench SourceGen dis65 v1.0 ###
|
||||
{
|
||||
"_ContentVersion":3,
|
||||
"FileDataLength":452,
|
||||
"FileDataCrc32":-1349239236,
|
||||
"ProjectProps":{
|
||||
"CpuName":"6502",
|
||||
"IncludeUndocumentedInstr":false,
|
||||
"TwoByteBrk":false,
|
||||
"EntryFlags":32702671,
|
||||
"AutoLabelStyle":"Simple",
|
||||
"AnalysisParams":{
|
||||
"AnalyzeUncategorizedData":true,
|
||||
"DefaultTextScanMode":"LowHighAscii",
|
||||
"MinCharsForString":4,
|
||||
"SeekNearbyTargets":true,
|
||||
"SmartPlpHandling":true},
|
||||
|
||||
"PlatformSymbolFileIdentifiers":["PROJ:20030-labels-and-symbols.sym65",
|
||||
"RT:TestData/TestSyms.sym65"],
|
||||
"ExtensionScriptFileIdentifiers":[],
|
||||
"ProjectSyms":{
|
||||
"BMI":{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"opcode mnemonic",
|
||||
"HasWidth":false,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"BMI",
|
||||
"Value":48,
|
||||
"Source":"Project",
|
||||
"Type":"Constant",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"nextchunk":{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Decimal",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"should be replaced by user label",
|
||||
"HasWidth":false,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"nextchunk",
|
||||
"Value":50,
|
||||
"Source":"Project",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"projalsa":{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"same val as projalso",
|
||||
"HasWidth":false,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"projalsa",
|
||||
"Value":12800,
|
||||
"Source":"Project",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"projalsz":{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"same val as projalso",
|
||||
"HasWidth":false,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"projalsz",
|
||||
"Value":12800,
|
||||
"Source":"Project",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"projover":{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"replaces platform symbol",
|
||||
"HasWidth":false,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"projover",
|
||||
"Value":16384,
|
||||
"Source":"Project",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}}},
|
||||
|
||||
"AddressMap":[{
|
||||
"Offset":0,
|
||||
"Addr":9029},
|
||||
|
||||
{
|
||||
"Offset":97,
|
||||
"Addr":4096}],
|
||||
"TypeHints":[{
|
||||
"Low":0,
|
||||
"High":0,
|
||||
"Hint":"Code"}],
|
||||
"StatusFlagOverrides":{
|
||||
},
|
||||
|
||||
"Comments":{
|
||||
"169":"bulky",
|
||||
"281":"stringy"},
|
||||
|
||||
"LongComments":{
|
||||
"-2147483647":{
|
||||
"Text":"Project was edited to add a label in the middle of a dense hex region, and add a duplicate label.",
|
||||
"BoxMode":false,
|
||||
"MaxWidth":80,
|
||||
"BackgroundColor":0}},
|
||||
|
||||
"Notes":{
|
||||
},
|
||||
|
||||
"UserLabels":{
|
||||
"0":{
|
||||
"Label":"start",
|
||||
"Value":9029,
|
||||
"Source":"User",
|
||||
"Type":"GlobalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"98":{
|
||||
"Label":"L1000",
|
||||
"Value":4097,
|
||||
"Source":"User",
|
||||
"Type":"LocalOrGlobalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"99":{
|
||||
"Label":"L1000_0",
|
||||
"Value":4098,
|
||||
"Source":"User",
|
||||
"Type":"LocalOrGlobalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"100":{
|
||||
"Label":"l1000",
|
||||
"Value":4099,
|
||||
"Source":"User",
|
||||
"Type":"LocalOrGlobalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"145":{
|
||||
"Label":"calls",
|
||||
"Value":4144,
|
||||
"Source":"User",
|
||||
"Type":"GlobalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"148":{
|
||||
"Label":"calls",
|
||||
"Value":4144,
|
||||
"Source":"User",
|
||||
"Type":"GlobalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"149":{
|
||||
"Label":"badmid",
|
||||
"Value":4144,
|
||||
"Source":"User",
|
||||
"Type":"GlobalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"179":{
|
||||
"Label":"badmidi",
|
||||
"Value":4144,
|
||||
"Source":"User",
|
||||
"Type":"GlobalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"116":{
|
||||
"Label":"targ",
|
||||
"Value":4115,
|
||||
"Source":"User",
|
||||
"Type":"GlobalAddr",
|
||||
"LabelAnno":"None"}},
|
||||
|
||||
"OperandFormats":{
|
||||
"0":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"zip",
|
||||
"Part":"Low"}},
|
||||
|
||||
"2":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"zip",
|
||||
"Part":"Low"}},
|
||||
|
||||
"4":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"zip",
|
||||
"Part":"Low"}},
|
||||
|
||||
"6":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"absh",
|
||||
"Part":"Low"}},
|
||||
|
||||
"8":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"absh",
|
||||
"Part":"High"}},
|
||||
|
||||
"10":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"absh",
|
||||
"Part":"Low"}},
|
||||
|
||||
"12":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"absh",
|
||||
"Part":"High"}},
|
||||
|
||||
"14":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"absl",
|
||||
"Part":"Low"}},
|
||||
|
||||
"16":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"absl",
|
||||
"Part":"High"}},
|
||||
|
||||
"18":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"absl",
|
||||
"Part":"Low"}},
|
||||
|
||||
"20":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"absl",
|
||||
"Part":"High"}},
|
||||
|
||||
"22":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"start",
|
||||
"Part":"Low"}},
|
||||
|
||||
"24":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"start",
|
||||
"Part":"High"}},
|
||||
|
||||
"26":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"zip",
|
||||
"Part":"Low"}},
|
||||
|
||||
"28":{
|
||||
"Length":3,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"zip",
|
||||
"Part":"Low"}},
|
||||
|
||||
"31":{
|
||||
"Length":3,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"absh",
|
||||
"Part":"Low"}},
|
||||
|
||||
"34":{
|
||||
"Length":3,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"absh",
|
||||
"Part":"Low"}},
|
||||
|
||||
"37":{
|
||||
"Length":3,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"start",
|
||||
"Part":"Low"}},
|
||||
|
||||
"40":{
|
||||
"Length":3,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"start",
|
||||
"Part":"Low"}},
|
||||
|
||||
"46":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"zip",
|
||||
"Part":"Low"}},
|
||||
|
||||
"47":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"absh",
|
||||
"Part":"Low"}},
|
||||
|
||||
"48":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"absh",
|
||||
"Part":"High"}},
|
||||
|
||||
"49":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"start",
|
||||
"Part":"Low"}},
|
||||
|
||||
"50":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"start",
|
||||
"Part":"High"}},
|
||||
|
||||
"51":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"zip",
|
||||
"Part":"Low"}},
|
||||
|
||||
"53":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"absl",
|
||||
"Part":"Low"}},
|
||||
|
||||
"55":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"absl",
|
||||
"Part":"High"}},
|
||||
|
||||
"57":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"absl",
|
||||
"Part":"Low"}},
|
||||
|
||||
"59":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"absl",
|
||||
"Part":"High"}},
|
||||
|
||||
"61":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"absh",
|
||||
"Part":"Low"}},
|
||||
|
||||
"63":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"absh",
|
||||
"Part":"High"}},
|
||||
|
||||
"65":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"absh",
|
||||
"Part":"Low"}},
|
||||
|
||||
"67":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"absh",
|
||||
"Part":"High"}},
|
||||
|
||||
"69":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"start",
|
||||
"Part":"Low"}},
|
||||
|
||||
"71":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"start",
|
||||
"Part":"High"}},
|
||||
|
||||
"73":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"start",
|
||||
"Part":"Low"}},
|
||||
|
||||
"75":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"start",
|
||||
"Part":"High"}},
|
||||
|
||||
"77":{
|
||||
"Length":2,
|
||||
"Format":"NumericBE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"absh",
|
||||
"Part":"Low"}},
|
||||
|
||||
"79":{
|
||||
"Length":3,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"zip",
|
||||
"Part":"Low"}},
|
||||
|
||||
"82":{
|
||||
"Length":3,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"absh",
|
||||
"Part":"Low"}},
|
||||
|
||||
"85":{
|
||||
"Length":3,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"absh",
|
||||
"Part":"High"}},
|
||||
|
||||
"88":{
|
||||
"Length":3,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"start",
|
||||
"Part":"Low"}},
|
||||
|
||||
"91":{
|
||||
"Length":3,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"start",
|
||||
"Part":"High"}},
|
||||
|
||||
"118":{
|
||||
"Length":3,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"targ",
|
||||
"Part":"Low"}},
|
||||
|
||||
"124":{
|
||||
"Length":3,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"targ",
|
||||
"Part":"Low"}},
|
||||
|
||||
"127":{
|
||||
"Length":3,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"targ",
|
||||
"Part":"Low"}},
|
||||
|
||||
"133":{
|
||||
"Length":3,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"targ",
|
||||
"Part":"Low"}},
|
||||
|
||||
"136":{
|
||||
"Length":3,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"targ",
|
||||
"Part":"Low"}},
|
||||
|
||||
"142":{
|
||||
"Length":3,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"targ",
|
||||
"Part":"Low"}},
|
||||
|
||||
"169":{
|
||||
"Length":112,
|
||||
"Format":"Dense",
|
||||
"SubFormat":"None",
|
||||
"SymbolRef":null},
|
||||
|
||||
"449":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"BMI",
|
||||
"Part":"Low"}}},
|
||||
|
||||
"LvTables":{
|
||||
},
|
||||
|
||||
"Visualizations":[],
|
||||
"VisualizationAnimations":[],
|
||||
"VisualizationSets":{
|
||||
}}
|
@ -1,7 +1,7 @@
|
||||
; Copyright 2018 faddenSoft. All Rights Reserved.
|
||||
; See the LICENSE.txt file for distribution terms (Apache 2.0).
|
||||
|
||||
*SYNOPSIS Symbols for test 2007-labels-and-symbols
|
||||
*SYNOPSIS Symbols for test 2003x-labels-and-symbols
|
||||
|
||||
zip = $cd
|
||||
absl = $1029
|
||||
|
114
SourceGen/SGTestData/Expected/20030-labels-and-symbols_64tass.S
Normal file
114
SourceGen/SGTestData/Expected/20030-labels-and-symbols_64tass.S
Normal file
@ -0,0 +1,114 @@
|
||||
;Project was edited to add a label in the middle of a dense hex region, and add
|
||||
;a duplicate label.
|
||||
.cpu "6502"
|
||||
.enc sg_ascii
|
||||
.cdef $20,$7e,$20
|
||||
BMI1 = $30 ;opcode mnemonic
|
||||
zip = $cd
|
||||
absl = $1029
|
||||
absh = $feed
|
||||
|
||||
plataddr = $3000 ;address only in platform file
|
||||
projalsa = $3200 ;same val as projalso
|
||||
|
||||
* = $2345
|
||||
start 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 zip+1
|
||||
lda @wzip+1
|
||||
lda absh-1
|
||||
lda absh+1
|
||||
lda start+1
|
||||
lda start-1
|
||||
jmp _L23A3
|
||||
|
||||
.byte zip
|
||||
.byte <absh
|
||||
.byte >absh
|
||||
.byte <start
|
||||
.byte >start
|
||||
.word zip
|
||||
.word absl
|
||||
.word 0+(absl >> 8)
|
||||
.word absl-$1000
|
||||
.word 0+(absl >> 8)-16
|
||||
.word absh
|
||||
.word 0+(absh >> 8)
|
||||
.word absh-$f000
|
||||
.word 0+(absh >> 8)+16
|
||||
.word start
|
||||
.word 0+(start >> 8)
|
||||
.word start+1
|
||||
.word 0+(start >> 8)
|
||||
.byte $fe,$ed
|
||||
.long zip
|
||||
.long absh
|
||||
.long 0+(absh >> 8)
|
||||
.long start
|
||||
.long 0+(start >> 8)
|
||||
|
||||
_L23A3 jmp _L1000_1
|
||||
|
||||
.logical $1000
|
||||
_L1000_1 nop
|
||||
_L1000 nop
|
||||
_L1000_0 nop
|
||||
_l1000 lda plataddr
|
||||
lda $3100
|
||||
lda projalsa
|
||||
lda $3300
|
||||
jmp calls
|
||||
|
||||
nop
|
||||
targ nop
|
||||
nop
|
||||
L1015 jsr targ-1
|
||||
jsr targ
|
||||
jsr targ+1
|
||||
L101E jmp targ-1
|
||||
|
||||
L1021 jmp targ
|
||||
|
||||
L1024 jmp targ+1
|
||||
|
||||
L1027 jmp targ-1
|
||||
|
||||
L102A jmp targ
|
||||
|
||||
L102D jmp targ+1
|
||||
|
||||
calls jsr L1015
|
||||
jsr L101E
|
||||
jsr L1021
|
||||
jsr L1024
|
||||
jsr L1027
|
||||
jsr L102A
|
||||
jsr L102D
|
||||
jmp L1160
|
||||
|
||||
.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
|
||||
.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."
|
||||
|
||||
L1160 adc #BMI1
|
||||
rts
|
||||
|
||||
.here
|
@ -0,0 +1,107 @@
|
||||
;Project was edited to add a label in the middle of a dense hex region, and add
|
||||
;a duplicate label.
|
||||
BMI equ $30 ;opcode mnemonic
|
||||
zip equ $cd
|
||||
absl equ $1029
|
||||
absh equ $feed
|
||||
|
||||
plataddr equ $3000 ;address only in platform file
|
||||
projalsa equ $3200 ;same val as projalso
|
||||
|
||||
org $2345
|
||||
start lda #zip
|
||||
lda #zip+16
|
||||
lda #zip+64
|
||||
lda #<absh
|
||||
lda #>absh
|
||||
lda #<absh+64
|
||||
lda #>absh+$100
|
||||
lda #<absl
|
||||
lda #>absl
|
||||
lda #<absl-64
|
||||
lda #>absl-$100
|
||||
lda #<start
|
||||
lda #>start
|
||||
lda zip+1
|
||||
lda: zip+1
|
||||
lda absh-1
|
||||
lda absh+1
|
||||
lda start+1
|
||||
lda start-1
|
||||
jmp :L23A3
|
||||
|
||||
dfb zip
|
||||
dfb <absh
|
||||
dfb >absh
|
||||
dfb <start
|
||||
dfb >start
|
||||
dw zip
|
||||
dw absl
|
||||
dw >absl
|
||||
dw absl-$1000
|
||||
dw >absl-$1000
|
||||
dw absh
|
||||
dw >absh
|
||||
dw absh+$1000
|
||||
dw >absh+$1000
|
||||
dw start
|
||||
dw >start
|
||||
dw start+1
|
||||
dw >start
|
||||
ddb absh
|
||||
adr zip
|
||||
adr absh
|
||||
adr >absh
|
||||
adr start
|
||||
adr >start
|
||||
|
||||
:L23A3 jmp :L1000_1
|
||||
|
||||
org $1000
|
||||
:L1000_1 nop
|
||||
:L1000 nop
|
||||
:L1000_0 nop
|
||||
:l1000 lda plataddr
|
||||
lda $3100
|
||||
lda projalsa
|
||||
lda $3300
|
||||
jmp calls
|
||||
|
||||
nop
|
||||
targ nop
|
||||
nop
|
||||
L1015 jsr targ-1
|
||||
jsr targ
|
||||
jsr targ+1
|
||||
L101E jmp targ-1
|
||||
|
||||
L1021 jmp targ
|
||||
|
||||
L1024 jmp targ+1
|
||||
|
||||
L1027 jmp targ-1
|
||||
|
||||
L102A jmp targ
|
||||
|
||||
L102D jmp targ+1
|
||||
|
||||
calls jsr L1015
|
||||
jsr L101E
|
||||
jsr L1021
|
||||
jsr L1024
|
||||
jsr L1027
|
||||
jsr L102A
|
||||
jsr L102D
|
||||
jmp L1160
|
||||
|
||||
hex 808182838485868788898a8b8c8d8e8f808182838485868788898a8b8c8d8e8f ;bulky
|
||||
hex 808182838485868788898a8b8c8d8e8f808182838485868788898a8b8c8d8e8f
|
||||
hex 808182838485868788898a8b8c8d8e8f808182838485868788898a8b8c8d8e8f
|
||||
hex 808182838485868788898a8b8c8d8e8f
|
||||
asc 'This is a long string. Put a label and comment on it to confir' ;stringy
|
||||
asc 'm that the label and comment only appear on the first line. T'
|
||||
asc 'he quick brown fox jumps over the lazy dogs.'
|
||||
|
||||
L1160 adc #BMI
|
||||
rts
|
||||
|
111
SourceGen/SGTestData/Expected/20030-labels-and-symbols_acme.S
Normal file
111
SourceGen/SGTestData/Expected/20030-labels-and-symbols_acme.S
Normal file
@ -0,0 +1,111 @@
|
||||
;Project was edited to add a label in the middle of a dense hex region, and add
|
||||
;a duplicate label.
|
||||
!cpu 6502
|
||||
BMI1 = $30 ;opcode mnemonic
|
||||
zip = $cd
|
||||
absl = $1029
|
||||
absh = $feed
|
||||
|
||||
plataddr = $3000 ;address only in platform file
|
||||
projalsa = $3200 ;same val as projalso
|
||||
|
||||
* = $0000
|
||||
!pseudopc $2345 {
|
||||
start 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 zip+1
|
||||
lda+2 zip+1
|
||||
lda absh-1
|
||||
lda absh+1
|
||||
lda start+1
|
||||
lda start-1
|
||||
jmp @L23A3
|
||||
|
||||
!byte zip
|
||||
!byte <absh
|
||||
!byte >absh
|
||||
!byte <start
|
||||
!byte >start
|
||||
!word zip
|
||||
!word absl
|
||||
!word 0+(absl >> 8)
|
||||
!word absl-$1000
|
||||
!word 0+(absl >> 8)-16
|
||||
!word absh
|
||||
!word 0+(absh >> 8)
|
||||
!word absh-$f000
|
||||
!word 0+(absh >> 8)+16
|
||||
!word start
|
||||
!word 0+(start >> 8)
|
||||
!word start+1
|
||||
!word 0+(start >> 8)
|
||||
!byte $fe,$ed
|
||||
!24 zip
|
||||
!24 absh
|
||||
!24 0+(absh >> 8)
|
||||
!24 start
|
||||
!24 0+(start >> 8)
|
||||
|
||||
@L23A3 jmp @L1000_1
|
||||
|
||||
} ;!pseudopc
|
||||
!pseudopc $1000 {
|
||||
@L1000_1 nop
|
||||
@L1000 nop
|
||||
@L1000_0 nop
|
||||
@l1000 lda plataddr
|
||||
lda $3100
|
||||
lda projalsa
|
||||
lda $3300
|
||||
jmp calls
|
||||
|
||||
nop
|
||||
targ nop
|
||||
nop
|
||||
L1015 jsr targ-1
|
||||
jsr targ
|
||||
jsr targ+1
|
||||
L101E jmp targ-1
|
||||
|
||||
L1021 jmp targ
|
||||
|
||||
L1024 jmp targ+1
|
||||
|
||||
L1027 jmp targ-1
|
||||
|
||||
L102A jmp targ
|
||||
|
||||
L102D jmp targ+1
|
||||
|
||||
calls jsr L1015
|
||||
jsr L101E
|
||||
jsr L1021
|
||||
jsr L1024
|
||||
jsr L1027
|
||||
jsr L102A
|
||||
jsr L102D
|
||||
jmp L1160
|
||||
|
||||
!hex 808182838485868788898a8b8c8d8e8f808182838485868788898a8b8c8d8e8f ;bulky
|
||||
!hex 808182838485868788898a8b8c8d8e8f808182838485868788898a8b8c8d8e8f
|
||||
!hex 808182838485868788898a8b8c8d8e8f808182838485868788898a8b8c8d8e8f
|
||||
!hex 808182838485868788898a8b8c8d8e8f
|
||||
!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."
|
||||
|
||||
L1160 adc #BMI1
|
||||
rts
|
||||
|
||||
} ;!pseudopc
|
113
SourceGen/SGTestData/Expected/20030-labels-and-symbols_cc65.S
Normal file
113
SourceGen/SGTestData/Expected/20030-labels-and-symbols_cc65.S
Normal file
@ -0,0 +1,113 @@
|
||||
;Project was edited to add a label in the middle of a dense hex region, and add
|
||||
;a duplicate label.
|
||||
.setcpu "6502"
|
||||
BMI1 = $30 ;opcode mnemonic
|
||||
zip = $cd
|
||||
absl = $1029
|
||||
absh = $feed
|
||||
|
||||
plataddr = $3000 ;address only in platform file
|
||||
projalsa = $3200 ;same val as projalso
|
||||
|
||||
; .segment "SEG000"
|
||||
.org $2345
|
||||
start: 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 zip+1
|
||||
lda a:zip+1
|
||||
lda absh-1
|
||||
lda absh+1
|
||||
lda start+1
|
||||
lda start-1
|
||||
jmp @L23A3
|
||||
|
||||
.byte zip
|
||||
.byte <absh
|
||||
.byte >absh
|
||||
.byte <start
|
||||
.byte >start
|
||||
.word zip
|
||||
.word absl
|
||||
.word absl >> 8
|
||||
.word absl-$1000
|
||||
.word absl >> 8 -16
|
||||
.word absh
|
||||
.word absh >> 8
|
||||
.word absh-$f000
|
||||
.word absh >> 8 +16
|
||||
.word start
|
||||
.word start >> 8
|
||||
.word start+1
|
||||
.word start >> 8
|
||||
.dbyt absh
|
||||
.faraddr zip
|
||||
.faraddr absh
|
||||
.faraddr absh >> 8
|
||||
.faraddr start
|
||||
.faraddr start >> 8
|
||||
|
||||
@L23A3: jmp @L1000_1
|
||||
|
||||
; .segment "SEG001"
|
||||
.org $1000
|
||||
@L1000_1: nop
|
||||
@L1000: nop
|
||||
@L1000_0: nop
|
||||
@l1000: lda plataddr
|
||||
lda $3100
|
||||
lda projalsa
|
||||
lda $3300
|
||||
jmp calls
|
||||
|
||||
nop
|
||||
targ: nop
|
||||
nop
|
||||
L1015: jsr targ-1
|
||||
jsr targ
|
||||
jsr targ+1
|
||||
L101E: jmp targ-1
|
||||
|
||||
L1021: jmp targ
|
||||
|
||||
L1024: jmp targ+1
|
||||
|
||||
L1027: jmp targ-1
|
||||
|
||||
L102A: jmp targ
|
||||
|
||||
L102D: jmp targ+1
|
||||
|
||||
calls: jsr L1015
|
||||
jsr L101E
|
||||
jsr L1021
|
||||
jsr L1024
|
||||
jsr L1027
|
||||
jsr L102A
|
||||
jsr L102D
|
||||
jmp L1160
|
||||
|
||||
.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
|
||||
.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."
|
||||
|
||||
L1160: adc #BMI1
|
||||
rts
|
||||
|
@ -0,0 +1,13 @@
|
||||
# 6502bench SourceGen generated linker script for 20030-labels-and-symbols
|
||||
MEMORY {
|
||||
MAIN: file=%O, start=%S, size=65536;
|
||||
# MEM000: file=%O, start=$2345, size=97;
|
||||
# MEM001: file=%O, start=$1000, size=355;
|
||||
}
|
||||
SEGMENTS {
|
||||
CODE: load=MAIN, type=rw;
|
||||
# SEG000: load=MEM000, type=rw;
|
||||
# SEG001: load=MEM001, type=rw;
|
||||
}
|
||||
FEATURES {}
|
||||
SYMBOLS {}
|
134
SourceGen/SGTestData/Source/20030-labels-and-symbols.S
Normal file
134
SourceGen/SGTestData/Source/20030-labels-and-symbols.S
Normal file
@ -0,0 +1,134 @@
|
||||
; Copyright 2018 faddenSoft. All Rights Reserved.
|
||||
; See the LICENSE.txt file for distribution terms (Apache 2.0).
|
||||
;
|
||||
; This is a reduced version of the 65816-based test.
|
||||
;
|
||||
; Assembler: Merlin 32
|
||||
|
||||
absl equ $1029
|
||||
absh equ $feed
|
||||
zip equ $cd
|
||||
|
||||
org $2345
|
||||
|
||||
start ;set this label
|
||||
; load 8/16-bit symbols in different ways
|
||||
lda #zip
|
||||
lda #zip+16
|
||||
lda #zip+64
|
||||
|
||||
lda #<absh
|
||||
lda #>absh
|
||||
lda #<absh+64
|
||||
lda #>absh+64
|
||||
|
||||
lda #<absl
|
||||
lda #>absl
|
||||
lda #<absl-64
|
||||
lda #>absl-64
|
||||
|
||||
lda #<start
|
||||
lda #>start
|
||||
|
||||
lda zip+1
|
||||
lda: zip+1
|
||||
lda absh-1
|
||||
lda absh+1
|
||||
lda start+1
|
||||
lda start-1
|
||||
|
||||
jmp :skipdata
|
||||
|
||||
; reference 16/24-bit symbol in data statements
|
||||
dfb zip
|
||||
dfb <absh
|
||||
dfb >absh
|
||||
dfb <start
|
||||
dfb >start
|
||||
|
||||
dw zip
|
||||
dw <absl
|
||||
dw >absl
|
||||
dw <absl-$1000
|
||||
dw >absl-$1000
|
||||
dw <absh
|
||||
dw >absh
|
||||
dw <absh+$1000
|
||||
dw >absh+$1000
|
||||
dw <start
|
||||
dw >start
|
||||
dw <start+1
|
||||
dw >start+1
|
||||
|
||||
dfb >absh ;format as 16-bit big-endian
|
||||
dfb <absh
|
||||
|
||||
adr zip
|
||||
adr <absh
|
||||
adr >absh
|
||||
adr <start
|
||||
adr >start
|
||||
|
||||
:skipdata
|
||||
jmp nextchunk
|
||||
|
||||
org $1000
|
||||
nextchunk
|
||||
nop ;leave this as auto-label
|
||||
nop ;label this L1000
|
||||
nop ;label this L1000_0
|
||||
|
||||
plataddr equ $3000 ;address only in platform file
|
||||
projover equ $3100 ;replaced by proj symbol w/same name, diff addr (no match)
|
||||
projalso equ $3200 ;also in project, twice w/different name +/- alpha; low should win
|
||||
nosym equ $3300 ;should not match anything
|
||||
|
||||
lda plataddr
|
||||
lda projover
|
||||
lda projalso
|
||||
lda nosym
|
||||
|
||||
jmp next
|
||||
|
||||
target0 nop
|
||||
target1 nop ;point everything here
|
||||
target2 nop
|
||||
|
||||
|
||||
t0 jsr target0
|
||||
jsr target1
|
||||
jsr target2
|
||||
t1a jmp target0
|
||||
t1b jmp target1
|
||||
t1c jmp target2
|
||||
t3a jmp target0
|
||||
t3b jmp target1
|
||||
t3c jmp target2
|
||||
|
||||
next
|
||||
jsr t0
|
||||
jsr t1a
|
||||
jsr t1b
|
||||
jsr t1c
|
||||
jsr t3a
|
||||
jsr t3b
|
||||
jsr t3c
|
||||
|
||||
jmp :skiphex
|
||||
|
||||
hex 808182838485868788898a8b8c8d8e8f ;add label and comment
|
||||
hex 808182838485868788898a8b8c8d8e8f
|
||||
hex 808182838485868788898a8b8c8d8e8f
|
||||
hex 808182838485868788898a8b8c8d8e8f
|
||||
hex 808182838485868788898a8b8c8d8e8f
|
||||
hex 808182838485868788898a8b8c8d8e8f
|
||||
hex 808182838485868788898a8b8c8d8e8f
|
||||
|
||||
asc 'This is a long string. Put a label and comment '
|
||||
asc 'on it to confirm that the label and comment only '
|
||||
asc 'appear on the first line. The quick brown fox '
|
||||
asc 'jumps over the lazy dogs.'
|
||||
|
||||
:skiphex
|
||||
adc #$30 ;set to BMI to test constant vs. instr
|
||||
rts
|
Loading…
Reference in New Issue
Block a user