mirror of
https://github.com/fadden/6502bench.git
synced 2024-11-29 10:50:28 +00:00
Clone 20152-local-variables
Generate a 6502 test from the 65816 version by substituting the 16-bit instructions with 8-bit no-ops. There's a lot of project edits and weird stuff in the test, so this was much easier than starting over. The 65816 variant is largely unchanged, though it could now be stripped down to the stack-offset instructions.
This commit is contained in:
parent
84e3dd3df2
commit
345dff7765
BIN
SourceGen/SGTestData/20150-local-variables
Normal file
BIN
SourceGen/SGTestData/20150-local-variables
Normal file
Binary file not shown.
774
SourceGen/SGTestData/20150-local-variables.dis65
Normal file
774
SourceGen/SGTestData/20150-local-variables.dis65
Normal file
@ -0,0 +1,774 @@
|
||||
### 6502bench SourceGen dis65 v1.0 ###
|
||||
{
|
||||
"_ContentVersion":4,
|
||||
"FileDataLength":151,
|
||||
"FileDataCrc32":-1030691121,
|
||||
"ProjectProps":{
|
||||
"CpuName":"6502",
|
||||
"IncludeUndocumentedInstr":false,
|
||||
"TwoByteBrk":false,
|
||||
"EntryFlags":32702671,
|
||||
"AutoLabelStyle":"Simple",
|
||||
"AnalysisParams":{
|
||||
"AnalyzeUncategorizedData":true,
|
||||
"DefaultTextScanMode":"LowHighAscii",
|
||||
"MinCharsForString":4,
|
||||
"SeekNearbyTargets":false,
|
||||
"UseRelocData":false,
|
||||
"SmartPlpHandling":false,
|
||||
"SmartPlbHandling":true},
|
||||
|
||||
"PlatformSymbolFileIdentifiers":[],
|
||||
"ExtensionScriptFileIdentifiers":[],
|
||||
"ProjectSyms":{
|
||||
"__ENABLE_LABEL_LOCALIZATION":{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Decimal",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":false,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"__ENABLE_LABEL_LOCALIZATION",
|
||||
"Value":1,
|
||||
"Source":"Project",
|
||||
"Type":"Constant",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"CONST_ONE":{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"project const",
|
||||
"HasWidth":false,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"CONST_ONE",
|
||||
"Value":241,
|
||||
"Source":"Project",
|
||||
"Type":"Constant",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"CONST_ZERO":{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"project const",
|
||||
"HasWidth":false,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"CONST_ZERO",
|
||||
"Value":240,
|
||||
"Source":"Project",
|
||||
"Type":"Constant",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"PROJ_ONE":{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"project addr",
|
||||
"HasWidth":false,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PROJ_ONE",
|
||||
"Value":1,
|
||||
"Source":"Project",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"PROJ_ZERO":{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"project addr",
|
||||
"HasWidth":false,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PROJ_ZERO",
|
||||
"Value":0,
|
||||
"Source":"Project",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"PTR_2":{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"project addr, should clash",
|
||||
"HasWidth":false,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PTR_2",
|
||||
"Value":248,
|
||||
"Source":"Project",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}}},
|
||||
|
||||
"AddressMap":[{
|
||||
"Offset":0,
|
||||
"Addr":4096},
|
||||
|
||||
{
|
||||
"Offset":126,
|
||||
"Addr":128}],
|
||||
"TypeHints":[{
|
||||
"Low":0,
|
||||
"High":0,
|
||||
"Hint":"Code"}],
|
||||
"StatusFlagOverrides":{
|
||||
},
|
||||
|
||||
"Comments":{
|
||||
"4":"could be PROJ_ONE+2, but \"nearby\" is off"},
|
||||
|
||||
"LongComments":{
|
||||
"-2147483647":{
|
||||
"Text":"Edited to have duplicate labels (PROJ_ZERO, DPCODE).",
|
||||
"BoxMode":false,
|
||||
"MaxWidth":80,
|
||||
"BackgroundColor":0},
|
||||
|
||||
"81":{
|
||||
"Text":"Test name redefinition. This is mostly of interest for assemblers without redefinable variables, but also of interest to the cross-reference window.",
|
||||
"BoxMode":false,
|
||||
"MaxWidth":80,
|
||||
"BackgroundColor":0}},
|
||||
|
||||
"Notes":{
|
||||
"0":{
|
||||
"Text":"Should add a variable that conflicts with an auto-label.",
|
||||
"BoxMode":false,
|
||||
"MaxWidth":80,
|
||||
"BackgroundColor":-256}},
|
||||
|
||||
"UserLabels":{
|
||||
"87":{
|
||||
"Label":"PTR_1",
|
||||
"Value":4183,
|
||||
"Source":"User",
|
||||
"Type":"LocalOrGlobalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"126":{
|
||||
"Label":"DPCODE",
|
||||
"Value":128,
|
||||
"Source":"User",
|
||||
"Type":"LocalOrGlobalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"136":{
|
||||
"Label":"SPLIT1",
|
||||
"Value":138,
|
||||
"Source":"User",
|
||||
"Type":"LocalOrGlobalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"143":{
|
||||
"Label":"SPLIT2",
|
||||
"Value":145,
|
||||
"Source":"User",
|
||||
"Type":"LocalOrGlobalAddr",
|
||||
"LabelAnno":"None"}},
|
||||
|
||||
"OperandFormats":{
|
||||
"8":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"CONST_ZERO",
|
||||
"Part":"Low"}},
|
||||
|
||||
"24":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Decimal",
|
||||
"SymbolRef":null},
|
||||
|
||||
"26":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Decimal",
|
||||
"SymbolRef":null},
|
||||
|
||||
"136":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Ascii",
|
||||
"SymbolRef":null},
|
||||
|
||||
"143":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Ascii",
|
||||
"SymbolRef":null}},
|
||||
|
||||
"LvTables":{
|
||||
"12":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"VAR_ZERO",
|
||||
"Value":0,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"VAR_TWO",
|
||||
"Value":2,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"VAR_THREE",
|
||||
"Value":3,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"CONST_ZERO_VAR",
|
||||
"Value":240,
|
||||
"Source":"Variable",
|
||||
"Type":"Constant",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"28":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"clash with project symbol",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PROJ_ZERO",
|
||||
"Value":16,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"clash with user label",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"DPCODE",
|
||||
"Value":128,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"34":{
|
||||
"Variables":[],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"44":{
|
||||
"Variables":[],
|
||||
"ClearPrevious":true},
|
||||
|
||||
"51":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"hidden table",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"HIDDEN0",
|
||||
"Value":0,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"hidden table",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"HIDDEN1",
|
||||
"Value":1,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"60":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"not hidden",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"NH0",
|
||||
"Value":0,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"not hidden",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"NH1",
|
||||
"Value":1,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"71":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PTR0",
|
||||
"Value":16,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":4,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"CONST0",
|
||||
"Value":16,
|
||||
"Source":"Variable",
|
||||
"Type":"Constant",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"81":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"#1",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PTR",
|
||||
"Value":32,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"83":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"#2",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PTR",
|
||||
"Value":34,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"85":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"#3",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PTR",
|
||||
"Value":36,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"88":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PTR_A",
|
||||
"Value":32,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"90":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PTR_B",
|
||||
"Value":31,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"92":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":4,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PTR_C",
|
||||
"Value":29,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"94":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PTR_D",
|
||||
"Value":33,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"96":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"VAL0",
|
||||
"Value":48,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"VAL1",
|
||||
"Value":49,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"VAL2",
|
||||
"Value":50,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"VAL3",
|
||||
"Value":51,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"VAL4",
|
||||
"Value":52,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"VAL5",
|
||||
"Value":53,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"108":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":4,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"VAL14",
|
||||
"Value":49,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"120":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"same as org",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"DPNOP",
|
||||
"Value":128,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"138":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"SPLITTER",
|
||||
"Value":128,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"139":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"FOO",
|
||||
"Value":128,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"145":{
|
||||
"Variables":[],
|
||||
"ClearPrevious":false}},
|
||||
|
||||
"Visualizations":[],
|
||||
"VisualizationAnimations":[],
|
||||
"VisualizationSets":{
|
||||
},
|
||||
|
||||
"RelocList":{
|
||||
},
|
||||
|
||||
"DbrValues":{
|
||||
}}
|
@ -1,207 +1,770 @@
|
||||
### 6502bench SourceGen dis65 v1.0 ###
|
||||
{
|
||||
"_ContentVersion":2,"FileDataLength":151,"FileDataCrc32":-814797830,"ProjectProps":{
|
||||
"CpuName":"65816","IncludeUndocumentedInstr":false,"EntryFlags":32702671,"AutoLabelStyle":"Simple","AnalysisParams":{
|
||||
"AnalyzeUncategorizedData":true,"DefaultTextScanMode":"LowHighAscii","MinCharsForString":4,"SeekNearbyTargets":false,"SmartPlpHandling":false},
|
||||
"PlatformSymbolFileIdentifiers":[],"ExtensionScriptFileIdentifiers":[],"ProjectSyms":{
|
||||
"_ContentVersion":4,
|
||||
"FileDataLength":151,
|
||||
"FileDataCrc32":-814797830,
|
||||
"ProjectProps":{
|
||||
"CpuName":"65816",
|
||||
"IncludeUndocumentedInstr":false,
|
||||
"TwoByteBrk":false,
|
||||
"EntryFlags":32702671,
|
||||
"AutoLabelStyle":"Simple",
|
||||
"AnalysisParams":{
|
||||
"AnalyzeUncategorizedData":true,
|
||||
"DefaultTextScanMode":"LowHighAscii",
|
||||
"MinCharsForString":4,
|
||||
"SeekNearbyTargets":false,
|
||||
"UseRelocData":false,
|
||||
"SmartPlpHandling":false,
|
||||
"SmartPlbHandling":true},
|
||||
|
||||
"PlatformSymbolFileIdentifiers":[],
|
||||
"ExtensionScriptFileIdentifiers":[],
|
||||
"ProjectSyms":{
|
||||
"__ENABLE_LABEL_LOCALIZATION":{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Decimal","SymbolRef":null},
|
||||
"Comment":"","Label":"__ENABLE_LABEL_LOCALIZATION","Value":1,"Source":"Project","Type":"Constant"},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Decimal",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":false,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"__ENABLE_LABEL_LOCALIZATION",
|
||||
"Value":1,
|
||||
"Source":"Project",
|
||||
"Type":"Constant",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"CONST_ONE":{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"project const","Label":"CONST_ONE","Value":241,"Source":"Project","Type":"Constant"},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"project const",
|
||||
"HasWidth":false,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"CONST_ONE",
|
||||
"Value":241,
|
||||
"Source":"Project",
|
||||
"Type":"Constant",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"CONST_ZERO":{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"project const","Label":"CONST_ZERO","Value":240,"Source":"Project","Type":"Constant"},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"project const",
|
||||
"HasWidth":false,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"CONST_ZERO",
|
||||
"Value":240,
|
||||
"Source":"Project",
|
||||
"Type":"Constant",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"PROJ_ONE":{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"project addr","Label":"PROJ_ONE","Value":1,"Source":"Project","Type":"ExternalAddr"},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"project addr",
|
||||
"HasWidth":false,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PROJ_ONE",
|
||||
"Value":1,
|
||||
"Source":"Project",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"PROJ_ZERO":{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"project addr","Label":"PROJ_ZERO","Value":0,"Source":"Project","Type":"ExternalAddr"},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"project addr",
|
||||
"HasWidth":false,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PROJ_ZERO",
|
||||
"Value":0,
|
||||
"Source":"Project",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"PTR_2":{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"project addr, should clash","Label":"PTR_2","Value":248,"Source":"Project","Type":"ExternalAddr"}}},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"project addr, should clash",
|
||||
"HasWidth":false,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PTR_2",
|
||||
"Value":248,
|
||||
"Source":"Project",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}}},
|
||||
|
||||
"AddressMap":[{
|
||||
"Offset":0,"Addr":4096},
|
||||
"Offset":0,
|
||||
"Addr":4096},
|
||||
|
||||
{
|
||||
"Offset":126,"Addr":128}],"TypeHints":[{
|
||||
"Low":0,"High":0,"Hint":"Code"}],"StatusFlagOverrides":{
|
||||
"Offset":126,
|
||||
"Addr":128}],
|
||||
"TypeHints":[{
|
||||
"Low":0,
|
||||
"High":0,
|
||||
"Hint":"Code"}],
|
||||
"StatusFlagOverrides":{
|
||||
},
|
||||
|
||||
"Comments":{
|
||||
"4":"could be PROJ_ONE+2, but \"nearby\" is off"},
|
||||
|
||||
"LongComments":{
|
||||
"-2147483647":{
|
||||
"Text":"Edited to have duplicate labels (PROJ_ZERO, DPCODE).","BoxMode":false,"MaxWidth":80,"BackgroundColor":0},
|
||||
"Text":"Edited to have duplicate labels (PROJ_ZERO, DPCODE).",
|
||||
"BoxMode":false,
|
||||
"MaxWidth":80,
|
||||
"BackgroundColor":0},
|
||||
|
||||
"81":{
|
||||
"Text":"Test name redefinition. This is mostly of interest for assemblers without redefinable variables, but also of interest to the cross-reference window.","BoxMode":false,"MaxWidth":80,"BackgroundColor":0}},
|
||||
"Text":"Test name redefinition. This is mostly of interest for assemblers without redefinable variables, but also of interest to the cross-reference window.",
|
||||
"BoxMode":false,
|
||||
"MaxWidth":80,
|
||||
"BackgroundColor":0}},
|
||||
|
||||
"Notes":{
|
||||
"0":{
|
||||
"Text":"Should add a variable that conflicts with an auto-label.","BoxMode":false,"MaxWidth":80,"BackgroundColor":-256}},
|
||||
},
|
||||
|
||||
"UserLabels":{
|
||||
"87":{
|
||||
"Label":"PTR_1","Value":4183,"Source":"User","Type":"LocalOrGlobalAddr"},
|
||||
"Label":"PTR_1",
|
||||
"Value":4183,
|
||||
"Source":"User",
|
||||
"Type":"LocalOrGlobalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"126":{
|
||||
"Label":"DPCODE","Value":128,"Source":"User","Type":"LocalOrGlobalAddr"},
|
||||
"Label":"DPCODE",
|
||||
"Value":128,
|
||||
"Source":"User",
|
||||
"Type":"LocalOrGlobalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"136":{
|
||||
"Label":"SPLIT1","Value":138,"Source":"User","Type":"LocalOrGlobalAddr"},
|
||||
"Label":"SPLIT1",
|
||||
"Value":138,
|
||||
"Source":"User",
|
||||
"Type":"LocalOrGlobalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
"143":{
|
||||
"Label":"SPLIT2","Value":145,"Source":"User","Type":"LocalOrGlobalAddr"}},
|
||||
"Label":"SPLIT2",
|
||||
"Value":145,
|
||||
"Source":"User",
|
||||
"Type":"LocalOrGlobalAddr",
|
||||
"LabelAnno":"None"}},
|
||||
|
||||
"OperandFormats":{
|
||||
"8":{
|
||||
"Length":2,"Format":"NumericLE","SubFormat":"Symbol","SymbolRef":{
|
||||
"Label":"CONST_ZERO","Part":"Low"}},
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Symbol",
|
||||
"SymbolRef":{
|
||||
"Label":"CONST_ZERO",
|
||||
"Part":"Low"}},
|
||||
|
||||
"24":{
|
||||
"Length":2,"Format":"NumericLE","SubFormat":"Decimal","SymbolRef":null},
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Decimal",
|
||||
"SymbolRef":null},
|
||||
|
||||
"26":{
|
||||
"Length":2,"Format":"NumericLE","SubFormat":"Decimal","SymbolRef":null},
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Decimal",
|
||||
"SymbolRef":null},
|
||||
|
||||
"136":{
|
||||
"Length":2,"Format":"NumericLE","SubFormat":"Ascii","SymbolRef":null},
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Ascii",
|
||||
"SymbolRef":null},
|
||||
|
||||
"143":{
|
||||
"Length":2,"Format":"NumericLE","SubFormat":"Ascii","SymbolRef":null}},
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Ascii",
|
||||
"SymbolRef":null}},
|
||||
|
||||
"LvTables":{
|
||||
"12":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":2,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"","Label":"VAR_ZERO","Value":0,"Source":"Variable","Type":"ExternalAddr"},
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"VAR_ZERO",
|
||||
"Value":0,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"","Label":"VAR_TWO","Value":2,"Source":"Variable","Type":"ExternalAddr"},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"VAR_TWO",
|
||||
"Value":2,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"","Label":"VAR_THREE","Value":3,"Source":"Variable","Type":"ExternalAddr"},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"VAR_THREE",
|
||||
"Value":3,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"","Label":"CONST_ZERO_VAR","Value":240,"Source":"Variable","Type":"Constant"}],"ClearPrevious":false},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"CONST_ZERO_VAR",
|
||||
"Value":240,
|
||||
"Source":"Variable",
|
||||
"Type":"Constant",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"28":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"clash with project symbol","Label":"PROJ_ZERO","Value":16,"Source":"Variable","Type":"ExternalAddr"},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"clash with project symbol",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PROJ_ZERO",
|
||||
"Value":16,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"clash with user label","Label":"DPCODE","Value":128,"Source":"Variable","Type":"ExternalAddr"}],"ClearPrevious":false},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"clash with user label",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"DPCODE",
|
||||
"Value":128,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"34":{
|
||||
"Variables":[],"ClearPrevious":false},
|
||||
"Variables":[],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"44":{
|
||||
"Variables":[],"ClearPrevious":true},
|
||||
"Variables":[],
|
||||
"ClearPrevious":true},
|
||||
|
||||
"51":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"hidden table","Label":"HIDDEN0","Value":0,"Source":"Variable","Type":"ExternalAddr"},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"hidden table",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"HIDDEN0",
|
||||
"Value":0,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"hidden table","Label":"HIDDEN1","Value":1,"Source":"Variable","Type":"ExternalAddr"}],"ClearPrevious":false},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"hidden table",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"HIDDEN1",
|
||||
"Value":1,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"60":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"not hidden","Label":"NH0","Value":0,"Source":"Variable","Type":"ExternalAddr"},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"not hidden",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"NH0",
|
||||
"Value":0,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"not hidden","Label":"NH1","Value":1,"Source":"Variable","Type":"ExternalAddr"}],"ClearPrevious":false},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"not hidden",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"NH1",
|
||||
"Value":1,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"71":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":2,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"","Label":"PTR0","Value":16,"Source":"Variable","Type":"ExternalAddr"},
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PTR0",
|
||||
"Value":16,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":4,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"","Label":"CONST0","Value":16,"Source":"Variable","Type":"Constant"}],"ClearPrevious":false},
|
||||
"Length":4,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"CONST0",
|
||||
"Value":16,
|
||||
"Source":"Variable",
|
||||
"Type":"Constant",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"81":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":2,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"#1","Label":"PTR","Value":32,"Source":"Variable","Type":"ExternalAddr"}],"ClearPrevious":false},
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"#1",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PTR",
|
||||
"Value":32,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"83":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":2,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"#2","Label":"PTR","Value":34,"Source":"Variable","Type":"ExternalAddr"}],"ClearPrevious":false},
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"#2",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PTR",
|
||||
"Value":34,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"85":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":2,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"#3","Label":"PTR","Value":36,"Source":"Variable","Type":"ExternalAddr"}],"ClearPrevious":false},
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"#3",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PTR",
|
||||
"Value":36,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"88":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":2,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"","Label":"PTR_A","Value":32,"Source":"Variable","Type":"ExternalAddr"}],"ClearPrevious":false},
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PTR_A",
|
||||
"Value":32,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"90":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":2,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"","Label":"PTR_B","Value":31,"Source":"Variable","Type":"ExternalAddr"}],"ClearPrevious":false},
|
||||
"Length":2,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PTR_B",
|
||||
"Value":31,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"92":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":4,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"","Label":"PTR_C","Value":29,"Source":"Variable","Type":"ExternalAddr"}],"ClearPrevious":false},
|
||||
"Length":4,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PTR_C",
|
||||
"Value":29,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"94":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"","Label":"PTR_D","Value":33,"Source":"Variable","Type":"ExternalAddr"}],"ClearPrevious":false},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"PTR_D",
|
||||
"Value":33,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"96":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"","Label":"VAL0","Value":48,"Source":"Variable","Type":"ExternalAddr"},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"VAL0",
|
||||
"Value":48,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"","Label":"VAL1","Value":49,"Source":"Variable","Type":"ExternalAddr"},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"VAL1",
|
||||
"Value":49,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"","Label":"VAL2","Value":50,"Source":"Variable","Type":"ExternalAddr"},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"VAL2",
|
||||
"Value":50,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"","Label":"VAL3","Value":51,"Source":"Variable","Type":"ExternalAddr"},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"VAL3",
|
||||
"Value":51,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"","Label":"VAL4","Value":52,"Source":"Variable","Type":"ExternalAddr"},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"VAL4",
|
||||
"Value":52,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"},
|
||||
|
||||
{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"","Label":"VAL5","Value":53,"Source":"Variable","Type":"ExternalAddr"}],"ClearPrevious":false},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"VAL5",
|
||||
"Value":53,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"108":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":4,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"","Label":"VAL14","Value":49,"Source":"Variable","Type":"ExternalAddr"}],"ClearPrevious":false},
|
||||
"Length":4,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"VAL14",
|
||||
"Value":49,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"120":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"same as org","Label":"DPNOP","Value":128,"Source":"Variable","Type":"ExternalAddr"}],"ClearPrevious":false},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"same as org",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"DPNOP",
|
||||
"Value":128,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"138":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"","Label":"SPLITTER","Value":128,"Source":"Variable","Type":"ExternalAddr"}],"ClearPrevious":false},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"SPLITTER",
|
||||
"Value":128,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"139":{
|
||||
"Variables":[{
|
||||
"DataDescriptor":{
|
||||
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
||||
"Comment":"","Label":"FOO","Value":128,"Source":"Variable","Type":"ExternalAddr"}],"ClearPrevious":false},
|
||||
"Length":1,
|
||||
"Format":"NumericLE",
|
||||
"SubFormat":"Hex",
|
||||
"SymbolRef":null},
|
||||
|
||||
"Comment":"",
|
||||
"HasWidth":true,
|
||||
"Direction":"ReadWrite",
|
||||
"MultiMask":null,
|
||||
"Label":"FOO",
|
||||
"Value":128,
|
||||
"Source":"Variable",
|
||||
"Type":"ExternalAddr",
|
||||
"LabelAnno":"None"}],
|
||||
"ClearPrevious":false},
|
||||
|
||||
"145":{
|
||||
"Variables":[],"ClearPrevious":false}}}
|
||||
"Variables":[],
|
||||
"ClearPrevious":false}},
|
||||
|
||||
"Visualizations":[],
|
||||
"VisualizationAnimations":[],
|
||||
"VisualizationSets":{
|
||||
},
|
||||
|
||||
"RelocList":{
|
||||
},
|
||||
|
||||
"DbrValues":{
|
||||
}}
|
||||
|
118
SourceGen/SGTestData/Expected/20150-local-variables_64tass.S
Normal file
118
SourceGen/SGTestData/Expected/20150-local-variables_64tass.S
Normal file
@ -0,0 +1,118 @@
|
||||
;Edited to have duplicate labels (PROJ_ZERO, DPCODE).
|
||||
.cpu "6502"
|
||||
.enc "sg_ascii"
|
||||
.cdef $20,$7e,$20
|
||||
CONST_ZERO = $f0 ;project const
|
||||
|
||||
PROJ_ZERO = $00 ;project addr
|
||||
PROJ_ONE = $01 ;project addr
|
||||
|
||||
* = $1000
|
||||
ldy PROJ_ZERO
|
||||
lda (PROJ_ONE),y
|
||||
sta $03 ;could be PROJ_ONE+2, but "nearby" is off
|
||||
ldx $04
|
||||
lda #CONST_ZERO
|
||||
ora #$f1
|
||||
VAR_ZERO .var $00
|
||||
VAR_TWO .var $02
|
||||
VAR_THREE .var $03
|
||||
CONST_ZERO_VAR .var $f0
|
||||
ldy VAR_ZERO
|
||||
lda (VAR_ZERO+1),y
|
||||
sta VAR_THREE
|
||||
ldx $04
|
||||
lda #$f0
|
||||
ora #$f1
|
||||
eor 0
|
||||
ora 240
|
||||
PROJ_ZERO_DUP1 .var $10 ;clash with project symbol
|
||||
DPCODE_DUP1 .var $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 DPCODE
|
||||
ldx PROJ_ZERO
|
||||
ldx PROJ_ONE
|
||||
ldx $02
|
||||
bit $ffa9
|
||||
ldy PROJ_ZERO
|
||||
ldy PROJ_ONE
|
||||
ldy $02
|
||||
.byte $2c
|
||||
NH0 .var $00 ;not hidden
|
||||
NH1 .var $01 ;not hidden
|
||||
L103C lda #$fe
|
||||
beq L103C
|
||||
ldy NH0
|
||||
ldy NH1
|
||||
ldy $02
|
||||
nop
|
||||
PTR0 .var $10
|
||||
CONST0 .var $10
|
||||
lda PTR0
|
||||
ldx PTR0+1
|
||||
ldy $12
|
||||
lda #$10
|
||||
ora #$13
|
||||
;Test name redefinition. This is mostly of interest for assemblers without
|
||||
;redefinable variables, but also of interest to the cross-reference window.
|
||||
PTR .var $20 ;#1
|
||||
ldx PTR
|
||||
PTR .var $22 ;#2
|
||||
ldx PTR
|
||||
PTR .var $24 ;#3
|
||||
ldx PTR
|
||||
_PTR_1 nop
|
||||
PTR_A .var $20
|
||||
ldy PTR_A
|
||||
PTR_B .var $1f
|
||||
ldy PTR_B+1
|
||||
PTR_C .var $1d
|
||||
ldy PTR_C+3
|
||||
PTR_D .var $21
|
||||
ldy PTR_C+3
|
||||
VAL0 .var $30
|
||||
VAL1 .var $31
|
||||
VAL2 .var $32
|
||||
VAL3 .var $33
|
||||
VAL4 .var $34
|
||||
VAL5 .var $35
|
||||
and VAL0
|
||||
and VAL1
|
||||
and VAL2
|
||||
and VAL3
|
||||
and VAL4
|
||||
and VAL5
|
||||
VAL14 .var $31
|
||||
and VAL0
|
||||
and VAL14
|
||||
and VAL14+1
|
||||
and VAL14+2
|
||||
and VAL14+3
|
||||
and VAL5
|
||||
DPNOP .var $80 ;same as org
|
||||
lda DPCODE
|
||||
jsr DPCODE
|
||||
rts
|
||||
|
||||
.logical $0080
|
||||
DPCODE nop
|
||||
lda DPCODE
|
||||
lda @wDPCODE
|
||||
nop
|
||||
ora @wDPCODE
|
||||
_SPLIT1 lda #','
|
||||
SPLITTER .var $80
|
||||
ldx $1234
|
||||
beq _SPLIT1
|
||||
_SPLIT2 lda ','
|
||||
ldx $5678
|
||||
beq _SPLIT2
|
||||
rts
|
||||
|
||||
.here
|
228
SourceGen/SGTestData/Expected/20150-local-variables_acme.S
Normal file
228
SourceGen/SGTestData/Expected/20150-local-variables_acme.S
Normal file
@ -0,0 +1,228 @@
|
||||
;Edited to have duplicate labels (PROJ_ZERO, DPCODE).
|
||||
!cpu 6502
|
||||
CONST_ZERO = $f0 ;project const
|
||||
|
||||
PROJ_ZERO = $00 ;project addr
|
||||
PROJ_ONE = $01 ;project addr
|
||||
|
||||
* = $0000
|
||||
!pseudopc $1000 {
|
||||
ldy PROJ_ZERO
|
||||
lda (PROJ_ONE),y
|
||||
sta $03 ;could be PROJ_ONE+2, but "nearby" is off
|
||||
ldx $04
|
||||
lda #CONST_ZERO
|
||||
ora #$f1
|
||||
!zone Z00000c
|
||||
.VAR_ZERO = $00
|
||||
.VAR_TWO = $02
|
||||
.VAR_THREE = $03
|
||||
.CONST_ZERO_VAR = $f0
|
||||
ldy .VAR_ZERO
|
||||
lda (.VAR_ZERO+1),y
|
||||
sta .VAR_THREE
|
||||
ldx $04
|
||||
lda #$f0
|
||||
ora #$f1
|
||||
eor 0
|
||||
ora 240
|
||||
!zone Z00001c
|
||||
.VAR_ZERO = $00
|
||||
.VAR_TWO = $02
|
||||
.VAR_THREE = $03
|
||||
.PROJ_ZERO_DUP1 = $10 ;clash with project symbol
|
||||
.DPCODE_DUP1 = $80 ;clash with user label
|
||||
.CONST_ZERO_VAR = $f0
|
||||
lda .VAR_ZERO
|
||||
lda .VAR_ZERO+1
|
||||
lda .VAR_TWO
|
||||
!zone Z000022
|
||||
.VAR_ZERO = $00
|
||||
.VAR_TWO = $02
|
||||
.VAR_THREE = $03
|
||||
.PROJ_ZERO_DUP1 = $10 ;clash with project symbol
|
||||
.DPCODE_DUP1 = $80 ;clash with user label
|
||||
.CONST_ZERO_VAR = $f0
|
||||
lda .VAR_THREE
|
||||
lda $04
|
||||
lda .PROJ_ZERO_DUP1
|
||||
lda $11
|
||||
lda+1 DPCODE
|
||||
!zone Z00002c
|
||||
ldx PROJ_ZERO
|
||||
ldx PROJ_ONE
|
||||
ldx $02
|
||||
bit $ffa9
|
||||
ldy PROJ_ZERO
|
||||
ldy PROJ_ONE
|
||||
ldy $02
|
||||
!byte $2c
|
||||
!zone Z00003c
|
||||
.NH0 = $00 ;not hidden
|
||||
.NH1 = $01 ;not hidden
|
||||
L103C lda #$fe
|
||||
beq L103C
|
||||
ldy .NH0
|
||||
ldy .NH1
|
||||
ldy $02
|
||||
nop
|
||||
!zone Z000047
|
||||
.NH0 = $00 ;not hidden
|
||||
.NH1 = $01 ;not hidden
|
||||
.PTR0 = $10
|
||||
.CONST0 = $10
|
||||
lda .PTR0
|
||||
ldx .PTR0+1
|
||||
ldy $12
|
||||
lda #$10
|
||||
ora #$13
|
||||
;Test name redefinition. This is mostly of interest for assemblers without
|
||||
;redefinable variables, but also of interest to the cross-reference window.
|
||||
!zone Z000051
|
||||
.NH0 = $00 ;not hidden
|
||||
.NH1 = $01 ;not hidden
|
||||
.PTR0 = $10
|
||||
.CONST0 = $10
|
||||
.PTR = $20 ;#1
|
||||
ldx .PTR
|
||||
!zone Z000053
|
||||
.NH0 = $00 ;not hidden
|
||||
.NH1 = $01 ;not hidden
|
||||
.PTR0 = $10
|
||||
.CONST0 = $10
|
||||
.PTR = $22 ;#2
|
||||
ldx .PTR
|
||||
!zone Z000055
|
||||
.NH0 = $00 ;not hidden
|
||||
.NH1 = $01 ;not hidden
|
||||
.PTR0 = $10
|
||||
.CONST0 = $10
|
||||
.PTR = $24 ;#3
|
||||
ldx .PTR
|
||||
@PTR_1 nop
|
||||
!zone Z000058
|
||||
.NH0 = $00 ;not hidden
|
||||
.NH1 = $01 ;not hidden
|
||||
.PTR0 = $10
|
||||
.CONST0 = $10
|
||||
.PTR_A = $20
|
||||
.PTR = $24 ;#3
|
||||
ldy .PTR_A
|
||||
!zone Z00005a
|
||||
.NH0 = $00 ;not hidden
|
||||
.NH1 = $01 ;not hidden
|
||||
.PTR0 = $10
|
||||
.CONST0 = $10
|
||||
.PTR_B = $1f
|
||||
.PTR = $24 ;#3
|
||||
ldy .PTR_B+1
|
||||
!zone Z00005c
|
||||
.NH0 = $00 ;not hidden
|
||||
.NH1 = $01 ;not hidden
|
||||
.PTR0 = $10
|
||||
.CONST0 = $10
|
||||
.PTR_C = $1d
|
||||
.PTR = $24 ;#3
|
||||
ldy .PTR_C+3
|
||||
!zone Z00005e
|
||||
.NH0 = $00 ;not hidden
|
||||
.NH1 = $01 ;not hidden
|
||||
.PTR0 = $10
|
||||
.CONST0 = $10
|
||||
.PTR_C = $1d
|
||||
.PTR_D = $21
|
||||
.PTR = $24 ;#3
|
||||
ldy .PTR_C+3
|
||||
!zone Z000060
|
||||
.NH0 = $00 ;not hidden
|
||||
.NH1 = $01 ;not hidden
|
||||
.PTR0 = $10
|
||||
.CONST0 = $10
|
||||
.PTR_C = $1d
|
||||
.PTR_D = $21
|
||||
.PTR = $24 ;#3
|
||||
.VAL0 = $30
|
||||
.VAL1 = $31
|
||||
.VAL2 = $32
|
||||
.VAL3 = $33
|
||||
.VAL4 = $34
|
||||
.VAL5 = $35
|
||||
and .VAL0
|
||||
and .VAL1
|
||||
and .VAL2
|
||||
and .VAL3
|
||||
and .VAL4
|
||||
and .VAL5
|
||||
!zone Z00006c
|
||||
.NH0 = $00 ;not hidden
|
||||
.NH1 = $01 ;not hidden
|
||||
.PTR0 = $10
|
||||
.CONST0 = $10
|
||||
.PTR_C = $1d
|
||||
.PTR_D = $21
|
||||
.PTR = $24 ;#3
|
||||
.VAL0 = $30
|
||||
.VAL14 = $31
|
||||
.VAL5 = $35
|
||||
and .VAL0
|
||||
and .VAL14
|
||||
and .VAL14+1
|
||||
and .VAL14+2
|
||||
and .VAL14+3
|
||||
and .VAL5
|
||||
!zone Z000078
|
||||
.NH0 = $00 ;not hidden
|
||||
.NH1 = $01 ;not hidden
|
||||
.PTR0 = $10
|
||||
.CONST0 = $10
|
||||
.PTR_C = $1d
|
||||
.PTR_D = $21
|
||||
.PTR = $24 ;#3
|
||||
.VAL0 = $30
|
||||
.VAL14 = $31
|
||||
.VAL5 = $35
|
||||
.DPNOP = $80 ;same as org
|
||||
lda+1 DPCODE
|
||||
jsr DPCODE
|
||||
rts
|
||||
|
||||
} ;!pseudopc
|
||||
!pseudopc $0080 {
|
||||
DPCODE nop
|
||||
lda+1 DPCODE
|
||||
lda+2 DPCODE
|
||||
nop
|
||||
ora+2 DPCODE
|
||||
@SPLIT1 lda #','
|
||||
!zone Z00008a
|
||||
.NH0 = $00 ;not hidden
|
||||
.NH1 = $01 ;not hidden
|
||||
.PTR0 = $10
|
||||
.CONST0 = $10
|
||||
.PTR_C = $1d
|
||||
.PTR_D = $21
|
||||
.PTR = $24 ;#3
|
||||
.VAL0 = $30
|
||||
.VAL14 = $31
|
||||
.VAL5 = $35
|
||||
.SPLITTER = $80
|
||||
ldx $1234
|
||||
beq @SPLIT1
|
||||
@SPLIT2 lda ','
|
||||
!zone Z000091
|
||||
.NH0 = $00 ;not hidden
|
||||
.NH1 = $01 ;not hidden
|
||||
.PTR0 = $10
|
||||
.CONST0 = $10
|
||||
.PTR_C = $1d
|
||||
.PTR_D = $21
|
||||
.PTR = $24 ;#3
|
||||
.VAL0 = $30
|
||||
.VAL14 = $31
|
||||
.VAL5 = $35
|
||||
.SPLITTER = $80
|
||||
ldx $5678
|
||||
beq @SPLIT2
|
||||
rts
|
||||
|
||||
} ;!pseudopc
|
117
SourceGen/SGTestData/Expected/20150-local-variables_cc65.S
Normal file
117
SourceGen/SGTestData/Expected/20150-local-variables_cc65.S
Normal file
@ -0,0 +1,117 @@
|
||||
;Edited to have duplicate labels (PROJ_ZERO, DPCODE).
|
||||
.setcpu "6502"
|
||||
CONST_ZERO = $f0 ;project const
|
||||
|
||||
PROJ_ZERO = $00 ;project addr
|
||||
PROJ_ONE = $01 ;project addr
|
||||
|
||||
; .segment "SEG000"
|
||||
.org $1000
|
||||
ldy PROJ_ZERO
|
||||
lda (PROJ_ONE),y
|
||||
sta $03 ;could be PROJ_ONE+2, but "nearby" is off
|
||||
ldx $04
|
||||
lda #CONST_ZERO
|
||||
ora #$f1
|
||||
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 #$f0
|
||||
ora #$f1
|
||||
eor 0
|
||||
ora 240
|
||||
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 #$10
|
||||
ora #$13
|
||||
;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
|
||||
nop
|
||||
ora a:DPCODE
|
||||
SPLIT1: lda #','
|
||||
SPLITTER .set $80
|
||||
ldx $1234
|
||||
beq SPLIT1
|
||||
@SPLIT2: lda ','
|
||||
ldx $5678
|
||||
beq @SPLIT2
|
||||
rts
|
||||
|
13
SourceGen/SGTestData/Expected/20150-local-variables_cc65.cfg
Normal file
13
SourceGen/SGTestData/Expected/20150-local-variables_cc65.cfg
Normal file
@ -0,0 +1,13 @@
|
||||
# 6502bench SourceGen generated linker script for 20150-local-variables
|
||||
MEMORY {
|
||||
MAIN: file=%O, start=%S, size=65536;
|
||||
# MEM000: file=%O, start=$1000, size=126;
|
||||
# MEM001: file=%O, start=$0080, size=25;
|
||||
}
|
||||
SEGMENTS {
|
||||
CODE: load=MAIN, type=rw;
|
||||
# SEG000: load=MEM000, type=rw;
|
||||
# SEG001: load=MEM001, type=rw;
|
||||
}
|
||||
FEATURES {}
|
||||
SYMBOLS {}
|
114
SourceGen/SGTestData/Expected/20150-local-variables_merlin32.S
Normal file
114
SourceGen/SGTestData/Expected/20150-local-variables_merlin32.S
Normal file
@ -0,0 +1,114 @@
|
||||
;Edited to have duplicate labels (PROJ_ZERO, DPCODE).
|
||||
CONST_ZERO equ $f0 ;project const
|
||||
|
||||
PROJ_ZERO equ $00 ;project addr
|
||||
PROJ_ONE equ $01 ;project addr
|
||||
|
||||
org $1000
|
||||
ldy PROJ_ZERO
|
||||
lda (PROJ_ONE),y
|
||||
sta $03 ;could be PROJ_ONE+2, but "nearby" is off
|
||||
ldx $04
|
||||
lda #CONST_ZERO
|
||||
ora #$f1
|
||||
]VAR_ZERO equ $00
|
||||
]VAR_TWO equ $02
|
||||
]VAR_THREE equ $03
|
||||
]CONST_ZERO_VAR equ $f0
|
||||
ldy ]VAR_ZERO
|
||||
lda (]VAR_ZERO+1),y
|
||||
sta ]VAR_THREE
|
||||
ldx $04
|
||||
lda #$f0
|
||||
ora #$f1
|
||||
eor 0
|
||||
ora 240
|
||||
]PROJ_ZERO_DUP1 equ $10 ;clash with project symbol
|
||||
]DPCODE_DUP1 equ $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 DPCODE
|
||||
ldx PROJ_ZERO
|
||||
ldx PROJ_ONE
|
||||
ldx $02
|
||||
bit $ffa9
|
||||
ldy PROJ_ZERO
|
||||
ldy PROJ_ONE
|
||||
ldy $02
|
||||
dfb $2c
|
||||
]NH0 equ $00 ;not hidden
|
||||
]NH1 equ $01 ;not hidden
|
||||
L103C lda #$fe
|
||||
beq L103C
|
||||
ldy ]NH0
|
||||
ldy ]NH1
|
||||
ldy $02
|
||||
nop
|
||||
]PTR0 equ $10
|
||||
]CONST0 equ $10
|
||||
lda ]PTR0
|
||||
ldx ]PTR0+1
|
||||
ldy $12
|
||||
lda #$10
|
||||
ora #$13
|
||||
;Test name redefinition. This is mostly of interest for assemblers without
|
||||
;redefinable variables, but also of interest to the cross-reference window.
|
||||
]PTR equ $20 ;#1
|
||||
ldx ]PTR
|
||||
]PTR equ $22 ;#2
|
||||
ldx ]PTR
|
||||
]PTR equ $24 ;#3
|
||||
ldx ]PTR
|
||||
:PTR_1 nop
|
||||
]PTR_A equ $20
|
||||
ldy ]PTR_A
|
||||
]PTR_B equ $1f
|
||||
ldy ]PTR_B+1
|
||||
]PTR_C equ $1d
|
||||
ldy ]PTR_C+3
|
||||
]PTR_D equ $21
|
||||
ldy ]PTR_C+3
|
||||
]VAL0 equ $30
|
||||
]VAL1 equ $31
|
||||
]VAL2 equ $32
|
||||
]VAL3 equ $33
|
||||
]VAL4 equ $34
|
||||
]VAL5 equ $35
|
||||
and ]VAL0
|
||||
and ]VAL1
|
||||
and ]VAL2
|
||||
and ]VAL3
|
||||
and ]VAL4
|
||||
and ]VAL5
|
||||
]VAL14 equ $31
|
||||
and ]VAL0
|
||||
and ]VAL14
|
||||
and ]VAL14+1
|
||||
and ]VAL14+2
|
||||
and ]VAL14+3
|
||||
and ]VAL5
|
||||
]DPNOP equ $80 ;same as org
|
||||
lda DPCODE
|
||||
jsr DPCODE
|
||||
rts
|
||||
|
||||
org $0080
|
||||
DPCODE nop
|
||||
lda DPCODE
|
||||
lda: DPCODE
|
||||
nop
|
||||
ora: DPCODE
|
||||
:SPLIT1 lda #$2c
|
||||
]SPLITTER equ $80
|
||||
ldx $1234
|
||||
beq :SPLIT1
|
||||
:SPLIT2 lda $2c
|
||||
ldx $5678
|
||||
beq :SPLIT2
|
||||
rts
|
||||
|
159
SourceGen/SGTestData/Source/20150-local-variables.S
Normal file
159
SourceGen/SGTestData/Source/20150-local-variables.S
Normal file
@ -0,0 +1,159 @@
|
||||
; Copyright 2019 faddenSoft. All Rights Reserved.
|
||||
; See the LICENSE.txt file for distribution terms (Apache 2.0).
|
||||
;
|
||||
; Assembler: Merlin 32
|
||||
; 6502 version
|
||||
|
||||
org $1000
|
||||
|
||||
; Define these as project symbols.
|
||||
PROJ_ZERO equ $00
|
||||
PROJ_ONE equ $01
|
||||
CONST_ZERO equ $f0
|
||||
CONST_ONE equ $f1
|
||||
PTR_2 equ $f8 ;used to test uniqifier later on
|
||||
|
||||
ldy PROJ_ZERO
|
||||
lda (PROJ_ONE),y
|
||||
sta $03 ;undefined yet
|
||||
ldx $04 ;undefined yet
|
||||
lda #CONST_ZERO
|
||||
ora #CONST_ONE
|
||||
|
||||
; TABLE - test redefinition of project symbol values
|
||||
]VAR_ZERO equ $00 ;2b
|
||||
]VAR_TWO equ $02 ;1b
|
||||
]VAR_THREE equ $03 ;1b
|
||||
]CONST_ZERO equ $f0 ;1b const
|
||||
|
||||
ldy PROJ_ZERO ;should become ]VAR_ZERO
|
||||
lda (PROJ_ONE),y ;should become ]VAR_ZERO+1
|
||||
sta $03 ;should become ]VAR_THREE
|
||||
ldx $04 ;undefined yet
|
||||
lda #CONST_ZERO
|
||||
ora #CONST_ONE
|
||||
|
||||
eor $00 ;explicitly format as decimal
|
||||
ora $f0 ;explicitly format as decimal
|
||||
|
||||
; TABLE - test redefinition of symbol labels
|
||||
]PROJ_ZERO equ $10 ;EDIT: rename to PROJ_ZERO
|
||||
]DPCODE equ $80 ;EDIT: rename to DPCODE
|
||||
|
||||
lda $00
|
||||
lda $01
|
||||
lda $02
|
||||
lda $03
|
||||
lda $04
|
||||
lda $10
|
||||
lda $11
|
||||
lda $80
|
||||
|
||||
; TABLE/CLEAR - empty table
|
||||
ldx $00
|
||||
ldx $01
|
||||
ldx $02
|
||||
|
||||
; confirm that hidden tables are skipped over
|
||||
dfb $2c
|
||||
; TABLE (hidden)
|
||||
]HIDDEN0 equ $00
|
||||
]HIDDEN1 equ $01
|
||||
lda #$ff
|
||||
ldy $00
|
||||
ldy $01
|
||||
ldy $02
|
||||
|
||||
dfb $2c
|
||||
; TABLE (not hidden)
|
||||
]NH0 equ $00
|
||||
]NH1 equ $01
|
||||
:label lda #$fe
|
||||
beq :label
|
||||
ldy $00
|
||||
ldy $01
|
||||
ldy $02
|
||||
|
||||
nop
|
||||
|
||||
; TABLE
|
||||
]PTR0 equ $10 ;2b
|
||||
]CONST0 equ $10 ;4b
|
||||
lda ]PTR0
|
||||
ldx ]PTR0+1
|
||||
ldy ]PTR0+2 ;should be hex
|
||||
lda #]CONST0
|
||||
ora #]CONST0+3
|
||||
|
||||
; test redefinition of name
|
||||
|
||||
; TABLE
|
||||
]PTR equ $20 ;2b
|
||||
ldx ]PTR
|
||||
; TABLE
|
||||
]PTR equ $22 ;2b
|
||||
ldx ]PTR
|
||||
; TABLE
|
||||
]PTR equ $24 ;2b
|
||||
ldx ]PTR
|
||||
|
||||
; define user label to try to trip up the uniqifier
|
||||
PTR_1 nop
|
||||
|
||||
|
||||
; test redefinition of value
|
||||
; TABLE/CLEAR
|
||||
]PTR_A equ $20 ;2b
|
||||
ldy ]PTR_A ;PTR_A
|
||||
]PTR_B equ $1f ;2b
|
||||
ldy ]PTR_A ;PTR_B+1
|
||||
]PTR_C equ $1d ;4b
|
||||
ldy ]PTR_A ;PTR_C+3
|
||||
]PTR_D equ $21 ;1b
|
||||
ldy ]PTR_A ;should come up as hex
|
||||
|
||||
; TABLE
|
||||
]VAL0 equ $30 ;1b
|
||||
]VAL1 equ $31 ;1b
|
||||
]VAL2 equ $32 ;1b
|
||||
]VAL3 equ $33 ;1b
|
||||
]VAL4 equ $34 ;1b
|
||||
]VAL5 equ $35 ;1b
|
||||
and ]VAL0
|
||||
and ]VAL1
|
||||
and ]VAL2
|
||||
and ]VAL3
|
||||
and ]VAL4
|
||||
and ]VAL5
|
||||
; TABLE
|
||||
]VAL14 equ $31 ;4b
|
||||
and ]VAL0
|
||||
and ]VAL1 ;these four become ]VAL14
|
||||
and ]VAL2
|
||||
and ]VAL3
|
||||
and ]VAL4
|
||||
and ]VAL5
|
||||
|
||||
|
||||
; TABLE - test direct page label vs. variable
|
||||
]DPNOP equ $80
|
||||
lda ]DPNOP
|
||||
jsr DPCODE
|
||||
rts
|
||||
|
||||
org $0080
|
||||
DPCODE nop
|
||||
lda DPCODE ;should be DPNOP
|
||||
lda |DPCODE ;should be DPCODE
|
||||
nop
|
||||
ora |DPCODE ;should be DPCODE
|
||||
|
||||
; Local label test. ca65 v2.18 erases cheap local label scope when it
|
||||
; encounters a constant or .set.
|
||||
LOCAL1 lda #$2c ;EDIT: format as ASCII
|
||||
ldx $1234 ;put variable table here with one arbitrary entry
|
||||
beq LOCAL1
|
||||
LOCAL2 lda $2c ;EDIT: format as ASCII
|
||||
ldx $5678 ;put empty variable table here
|
||||
beq LOCAL2
|
||||
rts
|
@ -2,8 +2,7 @@
|
||||
; See the LICENSE.txt file for distribution terms (Apache 2.0).
|
||||
;
|
||||
; Assembler: Merlin 32
|
||||
|
||||
; EDIT: add __ENABLE_LABEL_LOCALIZATION to project symbols
|
||||
; 65816 version
|
||||
|
||||
org $1000
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user