1
0
mirror of https://github.com/fadden/6502bench.git synced 2024-05-31 22:41:37 +00:00
6502bench/SourceGen/SGTestData/20052-branches-and-banks.dis65
Andy McFadden 478afa542e Fix 64tass code gen corner case
On the 65816, if you say "JSR foo" from bank $12, but "foo" is an
address in bank 0, most assemblers will conclude that you're forming
a 16-bit argument with a 16-bit address and assemble happily.  64tass
halts with an error.  Up until v1.55 or so, you could fake it out
by supplying a large offset.

This no longer works.  The preferred way to say "no really I mean to
do this" is to append ",k" to the operand.  We now do that as needed.

I didn't want to define a new ExpressionMode for 64tass just to
support an operand modifier that should probably never actually get
generated (you can't call across banks with JSR!), so this is
implemented with a quirk and an op flag.

64tass v1.56.2625 is now the default.

(issue #104)
2021-08-09 14:11:15 -07:00

340 lines
4.6 KiB
Plaintext

### 6502bench SourceGen dis65 v1.0 ###
{
"_ContentVersion":4,
"FileDataLength":266,
"FileDataCrc32":-1640516088,
"ProjectProps":{
"CpuName":"65816",
"IncludeUndocumentedInstr":false,
"TwoByteBrk":false,
"EntryFlags":32702671,
"AutoLabelStyle":"Simple",
"AnalysisParams":{
"AnalyzeUncategorizedData":true,
"DefaultTextScanMode":"LowHighAscii",
"MinCharsForString":4,
"SeekNearbyTargets":true,
"UseRelocData":false,
"SmartPlpHandling":false,
"SmartPlbHandling":false},
"PlatformSymbolFileIdentifiers":["PROJ:20050-branches-and-banks.sym65"],
"ExtensionScriptFileIdentifiers":[],
"ProjectSyms":{
}},
"AddressMap":[{
"Offset":0,
"Addr":4096},
{
"Offset":11,
"Addr":4456448},
{
"Offset":39,
"Addr":4521920},
{
"Offset":54,
"Addr":8192},
{
"Offset":86,
"Addr":5517840}],
"TypeHints":[{
"Low":0,
"High":0,
"Hint":"Code"}],
"StatusFlagOverrides":{
},
"Comments":{
},
"LongComments":{
},
"Notes":{
},
"UserLabels":{
"8":{
"Label":"lodat",
"Value":4104,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"34":{
"Label":"dat44",
"Value":4456471,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"43":{
"Label":"high44",
"Value":4521924,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"72":{
"Label":"j2",
"Value":8210,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"68":{
"Label":"skip",
"Value":8206,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"86":{
"Label":"bank54",
"Value":5517840,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"92":{
"Label":"backchk",
"Value":5517846,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"195":{
"Label":"fwdchk",
"Value":5517949,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"192":{
"Label":"fwdval",
"Value":5517946,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"95":{
"Label":"backval",
"Value":5517849,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"}},
"OperandFormats":{
"34":{
"Length":2,
"Format":"NumericLE",
"SubFormat":"Address",
"SymbolRef":null},
"36":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Address",
"SymbolRef":null},
"57":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Symbol",
"SymbolRef":{
"Label":"dat44",
"Part":"Low"}},
"60":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Symbol",
"SymbolRef":{
"Label":"dat44",
"Part":"Bank"}},
"72":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Symbol",
"SymbolRef":{
"Label":"j2",
"Part":"Low"}},
"75":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Symbol",
"SymbolRef":{
"Label":"j2",
"Part":"Low"}},
"95":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Address",
"SymbolRef":null},
"106":{
"Length":4,
"Format":"NumericLE",
"SubFormat":"Hex",
"SymbolRef":null},
"110":{
"Length":4,
"Format":"NumericLE",
"SubFormat":"Hex",
"SymbolRef":null},
"114":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Symbol",
"SymbolRef":{
"Label":"backchk",
"Part":"Low"}},
"117":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Symbol",
"SymbolRef":{
"Label":"backchk",
"Part":"Low"}},
"120":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Symbol",
"SymbolRef":{
"Label":"fwdchk",
"Part":"Low"}},
"130":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Symbol",
"SymbolRef":{
"Label":"backchk",
"Part":"Low"}},
"133":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Hex",
"SymbolRef":null},
"139":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Symbol",
"SymbolRef":{
"Label":"fwdchk",
"Part":"Low"}},
"142":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Hex",
"SymbolRef":null},
"148":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Symbol",
"SymbolRef":{
"Label":"backval",
"Part":"Low"}},
"192":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Address",
"SymbolRef":null},
"198":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Symbol",
"SymbolRef":{
"Label":"skip",
"Part":"Low"}},
"233":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Symbol",
"SymbolRef":{
"Label":"skip",
"Part":"Low"}},
"236":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Symbol",
"SymbolRef":{
"Label":"skip",
"Part":"Low"}},
"239":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Symbol",
"SymbolRef":{
"Label":"skip",
"Part":"Low"}},
"242":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Symbol",
"SymbolRef":{
"Label":"skip",
"Part":"Low"}},
"245":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Symbol",
"SymbolRef":{
"Label":"skip",
"Part":"Low"}},
"250":{
"Length":3,
"Format":"NumericLE",
"SubFormat":"Symbol",
"SymbolRef":{
"Label":"skip",
"Part":"Low"}}},
"LvTables":{
},
"Visualizations":[],
"VisualizationAnimations":[],
"VisualizationSets":{
},
"RelocList":{
},
"DbrValues":{
"86":{
"FollowPbr":true,
"Bank":0},
"11":{
"FollowPbr":true,
"Bank":0},
"54":{
"FollowPbr":true,
"Bank":0}}}