mirror of
https://github.com/fadden/6502bench.git
synced 2024-09-10 13:54:52 +00:00
Early data sheets listed BRK as one byte, but RTI after a BRK skips the following byte, effectively making BRK a 2-byte instruction. Sometimes, such as when diassembling Apple /// SOS code, it's handy to treat it that way explicitly. This change makes two-byte BRKs optional, controlled by a checkbox in the project settings. In the system definitions it defaults to true for Apple ///, false for all others. ACME doesn't allow BRK to have an arg, and cc65 only allows it for 65816 code (?), so it's emitted as a hex blob for those assemblers. Anyone wishing to target those assemblers should stick to 1-byte mode. Extension scripts have to switch between formatting one byte of inline data and formatting an instruction with a one-byte operand. A helper function has been added to the plugin Util class. To get some regression test coverage, 2022-extension-scripts has been configured to use two-byte BRK. Also, added/corrected some SOS constants. See also issue #44.
40 lines
1.6 KiB
Plaintext
40 lines
1.6 KiB
Plaintext
### 6502bench SourceGen dis65 v1.0 ###
|
|
{
|
|
"_ContentVersion":2,"FileDataLength":203,"FileDataCrc32":-1621468157,"ProjectProps":{
|
|
"CpuName":"65816","IncludeUndocumentedInstr":false,"TwoByteBrk":true,"EntryFlags":32702671,"AutoLabelStyle":"Simple","AnalysisParams":{
|
|
"AnalyzeUncategorizedData":true,"DefaultTextScanMode":"LowHighAscii","MinCharsForString":4,"SeekNearbyTargets":true,"SmartPlpHandling":true},
|
|
"PlatformSymbolFileIdentifiers":["PROJ:2022-extension-scripts.sym65"],"ExtensionScriptFileIdentifiers":["PROJ:2022-extension-scripts-a.cs","PROJ:2022-extension-scripts-b.cs"],"ProjectSyms":{
|
|
"PrintInlineDciString":{
|
|
"DataDescriptor":{
|
|
"Length":1,"Format":"NumericLE","SubFormat":"Hex","SymbolRef":null},
|
|
"Comment":"","HasWidth":false,"Label":"PrintInlineDciString","Value":77824,"Source":"Project","Type":"ExternalAddr"}}},
|
|
"AddressMap":[{
|
|
"Offset":0,"Addr":4096},
|
|
{
|
|
"Offset":182,"Addr":4352}],"TypeHints":[{
|
|
"Low":0,"High":0,"Hint":"Code"}],"StatusFlagOverrides":{
|
|
},
|
|
"Comments":{
|
|
},
|
|
"LongComments":{
|
|
},
|
|
"Notes":{
|
|
},
|
|
"UserLabels":{
|
|
"129":{
|
|
"Label":"PrintInline8String","Value":4225,"Source":"User","Type":"LocalOrGlobalAddr"},
|
|
"130":{
|
|
"Label":"PrintInlineRev8String","Value":4226,"Source":"User","Type":"LocalOrGlobalAddr"},
|
|
"131":{
|
|
"Label":"PrintInlineNullString","Value":4227,"Source":"User","Type":"LocalOrGlobalAddr"},
|
|
"160":{
|
|
"Label":"data02","Value":4256,"Source":"User","Type":"LocalOrGlobalAddr"},
|
|
"163":{
|
|
"Label":"data03","Value":4259,"Source":"User","Type":"LocalOrGlobalAddr"},
|
|
"132":{
|
|
"Label":"data01","Value":4228,"Source":"User","Type":"LocalOrGlobalAddr"}},
|
|
"OperandFormats":{
|
|
},
|
|
"LvTables":{
|
|
}}
|