diff --git a/SourceGen/SGTestData/2016-char-encoding-a b/SourceGen/SGTestData/2016-char-encoding-a new file mode 100644 index 0000000..88495ea Binary files /dev/null and b/SourceGen/SGTestData/2016-char-encoding-a differ diff --git a/SourceGen/SGTestData/2016-char-encoding-a.dis65 b/SourceGen/SGTestData/2016-char-encoding-a.dis65 new file mode 100644 index 0000000..556e385 --- /dev/null +++ b/SourceGen/SGTestData/2016-char-encoding-a.dis65 @@ -0,0 +1,131 @@ +### 6502bench SourceGen dis65 v1.0 ### +{ +"_ContentVersion":2,"FileDataLength":1093,"FileDataCrc32":589095233,"ProjectProps":{ +"CpuName":"65816","IncludeUndocumentedInstr":false,"EntryFlags":32702671,"AutoLabelStyle":"Simple","AnalysisParams":{ +"AnalyzeUncategorizedData":true,"DefaultTextScanMode":"LowAscii","MinCharsForString":4,"SeekNearbyTargets":true}, +"PlatformSymbolFileIdentifiers":[],"ExtensionScriptFileIdentifiers":[],"ProjectSyms":{ +}}, +"AddressMap":[{ +"Offset":0,"Addr":4096}],"TypeHints":[{ +"Low":0,"High":0,"Hint":"Code"}],"StatusFlagOverrides":{ +}, +"Comments":{ +}, +"LongComments":{ +"-2147483647":{ +"Text":"Project edited to mark some non-ASCII operands as ASCII.","BoxMode":false,"MaxWidth":80,"BackgroundColor":0}, +"837":{ +"Text":"$00-ff block","BoxMode":false,"MaxWidth":80,"BackgroundColor":0}}, +"Notes":{ +}, +"UserLabels":{ +}, +"OperandFormats":{ +"4":{ +"Length":2,"Format":"NumericLE","SubFormat":"Ascii","SymbolRef":null}, +"6":{ +"Length":2,"Format":"NumericLE","SubFormat":"HighAscii","SymbolRef":null}, +"8":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Petscii","SymbolRef":null}, +"10":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Screen","SymbolRef":null}, +"12":{ +"Length":2,"Format":"NumericLE","SubFormat":"Ascii","SymbolRef":null}, +"14":{ +"Length":2,"Format":"NumericLE","SubFormat":"HighAscii","SymbolRef":null}, +"16":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Petscii","SymbolRef":null}, +"18":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Screen","SymbolRef":null}, +"20":{ +"Length":2,"Format":"NumericLE","SubFormat":"Ascii","SymbolRef":null}, +"22":{ +"Length":2,"Format":"NumericLE","SubFormat":"HighAscii","SymbolRef":null}, +"24":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Petscii","SymbolRef":null}, +"26":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Screen","SymbolRef":null}, +"28":{ +"Length":2,"Format":"NumericLE","SubFormat":"Ascii","SymbolRef":null}, +"32":{ +"Length":3,"Format":"NumericLE","SubFormat":"Ascii","SymbolRef":null}, +"35":{ +"Length":3,"Format":"NumericLE","SubFormat":"HighAscii","SymbolRef":null}, +"38":{ +"Length":3,"Format":"NumericLE","SubFormat":"C64Petscii","SymbolRef":null}, +"41":{ +"Length":3,"Format":"NumericLE","SubFormat":"C64Screen","SymbolRef":null}, +"47":{ +"Length":1,"Format":"NumericLE","SubFormat":"Ascii","SymbolRef":null}, +"48":{ +"Length":1,"Format":"NumericLE","SubFormat":"HighAscii","SymbolRef":null}, +"49":{ +"Length":1,"Format":"NumericLE","SubFormat":"C64Petscii","SymbolRef":null}, +"50":{ +"Length":1,"Format":"NumericLE","SubFormat":"C64Screen","SymbolRef":null}, +"51":{ +"Length":2,"Format":"NumericLE","SubFormat":"Ascii","SymbolRef":null}, +"53":{ +"Length":2,"Format":"NumericLE","SubFormat":"HighAscii","SymbolRef":null}, +"55":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Petscii","SymbolRef":null}, +"57":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Screen","SymbolRef":null}, +"59":{ +"Length":2,"Format":"NumericBE","SubFormat":"Ascii","SymbolRef":null}, +"61":{ +"Length":2,"Format":"NumericBE","SubFormat":"HighAscii","SymbolRef":null}, +"63":{ +"Length":2,"Format":"NumericBE","SubFormat":"C64Petscii","SymbolRef":null}, +"65":{ +"Length":2,"Format":"NumericBE","SubFormat":"C64Screen","SymbolRef":null}, +"68":{ +"Length":13,"Format":"StringGeneric","SubFormat":"Ascii","SymbolRef":null}, +"81":{ +"Length":14,"Format":"StringGeneric","SubFormat":"HighAscii","SymbolRef":null}, +"96":{ +"Length":11,"Format":"StringGeneric","SubFormat":"C64Petscii","SymbolRef":null}, +"108":{ +"Length":15,"Format":"StringGeneric","SubFormat":"C64Screen","SymbolRef":null}, +"124":{ +"Length":17,"Format":"StringGeneric","SubFormat":"Ascii","SymbolRef":null}, +"142":{ +"Length":18,"Format":"StringGeneric","SubFormat":"HighAscii","SymbolRef":null}, +"161":{ +"Length":30,"Format":"StringGeneric","SubFormat":"C64Petscii","SymbolRef":null}, +"192":{ +"Length":95,"Format":"StringGeneric","SubFormat":"Ascii","SymbolRef":null}, +"288":{ +"Length":95,"Format":"StringGeneric","SubFormat":"HighAscii","SymbolRef":null}, +"384":{ +"Length":60,"Format":"StringGeneric","SubFormat":"C64Petscii","SymbolRef":null}, +"445":{ +"Length":1,"Format":"NumericLE","SubFormat":"C64Petscii","SymbolRef":null}, +"449":{ +"Length":26,"Format":"StringGeneric","SubFormat":"C64Petscii","SymbolRef":null}, +"480":{ +"Length":60,"Format":"StringGeneric","SubFormat":"C64Screen","SymbolRef":null}, +"541":{ +"Length":1,"Format":"NumericLE","SubFormat":"C64Screen","SymbolRef":null}, +"545":{ +"Length":26,"Format":"StringGeneric","SubFormat":"C64Screen","SymbolRef":null}, +"576":{ +"Length":15,"Format":"StringReverse","SubFormat":"C64Petscii","SymbolRef":null}, +"592":{ +"Length":18,"Format":"StringNullTerm","SubFormat":"C64Petscii","SymbolRef":null}, +"611":{ +"Length":84,"Format":"StringNullTerm","SubFormat":"C64Petscii","SymbolRef":null}, +"696":{ +"Length":20,"Format":"StringL8","SubFormat":"C64Petscii","SymbolRef":null}, +"717":{ +"Length":22,"Format":"StringL16","SubFormat":"C64Petscii","SymbolRef":null}, +"740":{ +"Length":7,"Format":"StringDci","SubFormat":"C64Petscii","SymbolRef":null}, +"748":{ +"Length":19,"Format":"StringReverse","SubFormat":"C64Screen","SymbolRef":null}, +"768":{ +"Length":24,"Format":"StringL8","SubFormat":"C64Screen","SymbolRef":null}, +"793":{ +"Length":26,"Format":"StringL16","SubFormat":"C64Screen","SymbolRef":null}, +"820":{ +"Length":15,"Format":"StringDci","SubFormat":"C64Screen","SymbolRef":null}}} diff --git a/SourceGen/SGTestData/2017-char-encoding-p b/SourceGen/SGTestData/2017-char-encoding-p new file mode 100644 index 0000000..88495ea Binary files /dev/null and b/SourceGen/SGTestData/2017-char-encoding-p differ diff --git a/SourceGen/SGTestData/2017-char-encoding-p.dis65 b/SourceGen/SGTestData/2017-char-encoding-p.dis65 new file mode 100644 index 0000000..eeb35d2 --- /dev/null +++ b/SourceGen/SGTestData/2017-char-encoding-p.dis65 @@ -0,0 +1,131 @@ +### 6502bench SourceGen dis65 v1.0 ### +{ +"_ContentVersion":2,"FileDataLength":1093,"FileDataCrc32":589095233,"ProjectProps":{ +"CpuName":"65816","IncludeUndocumentedInstr":false,"EntryFlags":32702671,"AutoLabelStyle":"Simple","AnalysisParams":{ +"AnalyzeUncategorizedData":true,"DefaultTextScanMode":"C64Petscii","MinCharsForString":4,"SeekNearbyTargets":true}, +"PlatformSymbolFileIdentifiers":[],"ExtensionScriptFileIdentifiers":[],"ProjectSyms":{ +}}, +"AddressMap":[{ +"Offset":0,"Addr":4096}],"TypeHints":[{ +"Low":0,"High":0,"Hint":"Code"}],"StatusFlagOverrides":{ +}, +"Comments":{ +}, +"LongComments":{ +"-2147483647":{ +"Text":"Project edited to mark some non-ASCII operands as ASCII.","BoxMode":false,"MaxWidth":80,"BackgroundColor":0}, +"837":{ +"Text":"$00-ff block","BoxMode":false,"MaxWidth":80,"BackgroundColor":0}}, +"Notes":{ +}, +"UserLabels":{ +}, +"OperandFormats":{ +"4":{ +"Length":2,"Format":"NumericLE","SubFormat":"Ascii","SymbolRef":null}, +"6":{ +"Length":2,"Format":"NumericLE","SubFormat":"HighAscii","SymbolRef":null}, +"8":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Petscii","SymbolRef":null}, +"10":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Screen","SymbolRef":null}, +"12":{ +"Length":2,"Format":"NumericLE","SubFormat":"Ascii","SymbolRef":null}, +"14":{ +"Length":2,"Format":"NumericLE","SubFormat":"HighAscii","SymbolRef":null}, +"16":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Petscii","SymbolRef":null}, +"18":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Screen","SymbolRef":null}, +"20":{ +"Length":2,"Format":"NumericLE","SubFormat":"Ascii","SymbolRef":null}, +"22":{ +"Length":2,"Format":"NumericLE","SubFormat":"HighAscii","SymbolRef":null}, +"24":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Petscii","SymbolRef":null}, +"26":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Screen","SymbolRef":null}, +"28":{ +"Length":2,"Format":"NumericLE","SubFormat":"Ascii","SymbolRef":null}, +"32":{ +"Length":3,"Format":"NumericLE","SubFormat":"Ascii","SymbolRef":null}, +"35":{ +"Length":3,"Format":"NumericLE","SubFormat":"HighAscii","SymbolRef":null}, +"38":{ +"Length":3,"Format":"NumericLE","SubFormat":"C64Petscii","SymbolRef":null}, +"41":{ +"Length":3,"Format":"NumericLE","SubFormat":"C64Screen","SymbolRef":null}, +"47":{ +"Length":1,"Format":"NumericLE","SubFormat":"Ascii","SymbolRef":null}, +"48":{ +"Length":1,"Format":"NumericLE","SubFormat":"HighAscii","SymbolRef":null}, +"49":{ +"Length":1,"Format":"NumericLE","SubFormat":"C64Petscii","SymbolRef":null}, +"50":{ +"Length":1,"Format":"NumericLE","SubFormat":"C64Screen","SymbolRef":null}, +"51":{ +"Length":2,"Format":"NumericLE","SubFormat":"Ascii","SymbolRef":null}, +"53":{ +"Length":2,"Format":"NumericLE","SubFormat":"HighAscii","SymbolRef":null}, +"55":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Petscii","SymbolRef":null}, +"57":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Screen","SymbolRef":null}, +"59":{ +"Length":2,"Format":"NumericBE","SubFormat":"Ascii","SymbolRef":null}, +"61":{ +"Length":2,"Format":"NumericBE","SubFormat":"HighAscii","SymbolRef":null}, +"63":{ +"Length":2,"Format":"NumericBE","SubFormat":"C64Petscii","SymbolRef":null}, +"65":{ +"Length":2,"Format":"NumericBE","SubFormat":"C64Screen","SymbolRef":null}, +"68":{ +"Length":13,"Format":"StringGeneric","SubFormat":"Ascii","SymbolRef":null}, +"81":{ +"Length":14,"Format":"StringGeneric","SubFormat":"HighAscii","SymbolRef":null}, +"96":{ +"Length":11,"Format":"StringGeneric","SubFormat":"C64Petscii","SymbolRef":null}, +"108":{ +"Length":15,"Format":"StringGeneric","SubFormat":"C64Screen","SymbolRef":null}, +"124":{ +"Length":17,"Format":"StringGeneric","SubFormat":"Ascii","SymbolRef":null}, +"142":{ +"Length":18,"Format":"StringGeneric","SubFormat":"HighAscii","SymbolRef":null}, +"161":{ +"Length":30,"Format":"StringGeneric","SubFormat":"C64Petscii","SymbolRef":null}, +"192":{ +"Length":95,"Format":"StringGeneric","SubFormat":"Ascii","SymbolRef":null}, +"288":{ +"Length":95,"Format":"StringGeneric","SubFormat":"HighAscii","SymbolRef":null}, +"384":{ +"Length":60,"Format":"StringGeneric","SubFormat":"C64Petscii","SymbolRef":null}, +"445":{ +"Length":1,"Format":"NumericLE","SubFormat":"C64Petscii","SymbolRef":null}, +"449":{ +"Length":26,"Format":"StringGeneric","SubFormat":"C64Petscii","SymbolRef":null}, +"480":{ +"Length":60,"Format":"StringGeneric","SubFormat":"C64Screen","SymbolRef":null}, +"541":{ +"Length":1,"Format":"NumericLE","SubFormat":"C64Screen","SymbolRef":null}, +"545":{ +"Length":26,"Format":"StringGeneric","SubFormat":"C64Screen","SymbolRef":null}, +"576":{ +"Length":15,"Format":"StringReverse","SubFormat":"C64Petscii","SymbolRef":null}, +"592":{ +"Length":18,"Format":"StringNullTerm","SubFormat":"C64Petscii","SymbolRef":null}, +"611":{ +"Length":84,"Format":"StringNullTerm","SubFormat":"C64Petscii","SymbolRef":null}, +"696":{ +"Length":20,"Format":"StringL8","SubFormat":"C64Petscii","SymbolRef":null}, +"717":{ +"Length":22,"Format":"StringL16","SubFormat":"C64Petscii","SymbolRef":null}, +"740":{ +"Length":7,"Format":"StringDci","SubFormat":"C64Petscii","SymbolRef":null}, +"748":{ +"Length":19,"Format":"StringReverse","SubFormat":"C64Screen","SymbolRef":null}, +"768":{ +"Length":24,"Format":"StringL8","SubFormat":"C64Screen","SymbolRef":null}, +"793":{ +"Length":26,"Format":"StringL16","SubFormat":"C64Screen","SymbolRef":null}, +"820":{ +"Length":15,"Format":"StringDci","SubFormat":"C64Screen","SymbolRef":null}}} diff --git a/SourceGen/SGTestData/2018-char-encoding-s b/SourceGen/SGTestData/2018-char-encoding-s new file mode 100644 index 0000000..88495ea Binary files /dev/null and b/SourceGen/SGTestData/2018-char-encoding-s differ diff --git a/SourceGen/SGTestData/2018-char-encoding-s.dis65 b/SourceGen/SGTestData/2018-char-encoding-s.dis65 new file mode 100644 index 0000000..fc1d298 --- /dev/null +++ b/SourceGen/SGTestData/2018-char-encoding-s.dis65 @@ -0,0 +1,131 @@ +### 6502bench SourceGen dis65 v1.0 ### +{ +"_ContentVersion":2,"FileDataLength":1093,"FileDataCrc32":589095233,"ProjectProps":{ +"CpuName":"65816","IncludeUndocumentedInstr":false,"EntryFlags":32702671,"AutoLabelStyle":"Simple","AnalysisParams":{ +"AnalyzeUncategorizedData":true,"DefaultTextScanMode":"C64ScreenCode","MinCharsForString":4,"SeekNearbyTargets":true}, +"PlatformSymbolFileIdentifiers":[],"ExtensionScriptFileIdentifiers":[],"ProjectSyms":{ +}}, +"AddressMap":[{ +"Offset":0,"Addr":4096}],"TypeHints":[{ +"Low":0,"High":0,"Hint":"Code"}],"StatusFlagOverrides":{ +}, +"Comments":{ +}, +"LongComments":{ +"-2147483647":{ +"Text":"Project edited to mark some non-ASCII operands as ASCII.","BoxMode":false,"MaxWidth":80,"BackgroundColor":0}, +"837":{ +"Text":"$00-ff block","BoxMode":false,"MaxWidth":80,"BackgroundColor":0}}, +"Notes":{ +}, +"UserLabels":{ +}, +"OperandFormats":{ +"4":{ +"Length":2,"Format":"NumericLE","SubFormat":"Ascii","SymbolRef":null}, +"6":{ +"Length":2,"Format":"NumericLE","SubFormat":"HighAscii","SymbolRef":null}, +"8":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Petscii","SymbolRef":null}, +"10":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Screen","SymbolRef":null}, +"12":{ +"Length":2,"Format":"NumericLE","SubFormat":"Ascii","SymbolRef":null}, +"14":{ +"Length":2,"Format":"NumericLE","SubFormat":"HighAscii","SymbolRef":null}, +"16":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Petscii","SymbolRef":null}, +"18":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Screen","SymbolRef":null}, +"20":{ +"Length":2,"Format":"NumericLE","SubFormat":"Ascii","SymbolRef":null}, +"22":{ +"Length":2,"Format":"NumericLE","SubFormat":"HighAscii","SymbolRef":null}, +"24":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Petscii","SymbolRef":null}, +"26":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Screen","SymbolRef":null}, +"28":{ +"Length":2,"Format":"NumericLE","SubFormat":"Ascii","SymbolRef":null}, +"32":{ +"Length":3,"Format":"NumericLE","SubFormat":"Ascii","SymbolRef":null}, +"35":{ +"Length":3,"Format":"NumericLE","SubFormat":"HighAscii","SymbolRef":null}, +"38":{ +"Length":3,"Format":"NumericLE","SubFormat":"C64Petscii","SymbolRef":null}, +"41":{ +"Length":3,"Format":"NumericLE","SubFormat":"C64Screen","SymbolRef":null}, +"47":{ +"Length":1,"Format":"NumericLE","SubFormat":"Ascii","SymbolRef":null}, +"48":{ +"Length":1,"Format":"NumericLE","SubFormat":"HighAscii","SymbolRef":null}, +"49":{ +"Length":1,"Format":"NumericLE","SubFormat":"C64Petscii","SymbolRef":null}, +"50":{ +"Length":1,"Format":"NumericLE","SubFormat":"C64Screen","SymbolRef":null}, +"51":{ +"Length":2,"Format":"NumericLE","SubFormat":"Ascii","SymbolRef":null}, +"53":{ +"Length":2,"Format":"NumericLE","SubFormat":"HighAscii","SymbolRef":null}, +"55":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Petscii","SymbolRef":null}, +"57":{ +"Length":2,"Format":"NumericLE","SubFormat":"C64Screen","SymbolRef":null}, +"59":{ +"Length":2,"Format":"NumericBE","SubFormat":"Ascii","SymbolRef":null}, +"61":{ +"Length":2,"Format":"NumericBE","SubFormat":"HighAscii","SymbolRef":null}, +"63":{ +"Length":2,"Format":"NumericBE","SubFormat":"C64Petscii","SymbolRef":null}, +"65":{ +"Length":2,"Format":"NumericBE","SubFormat":"C64Screen","SymbolRef":null}, +"68":{ +"Length":13,"Format":"StringGeneric","SubFormat":"Ascii","SymbolRef":null}, +"81":{ +"Length":14,"Format":"StringGeneric","SubFormat":"HighAscii","SymbolRef":null}, +"96":{ +"Length":11,"Format":"StringGeneric","SubFormat":"C64Petscii","SymbolRef":null}, +"108":{ +"Length":15,"Format":"StringGeneric","SubFormat":"C64Screen","SymbolRef":null}, +"124":{ +"Length":17,"Format":"StringGeneric","SubFormat":"Ascii","SymbolRef":null}, +"142":{ +"Length":18,"Format":"StringGeneric","SubFormat":"HighAscii","SymbolRef":null}, +"161":{ +"Length":30,"Format":"StringGeneric","SubFormat":"C64Petscii","SymbolRef":null}, +"192":{ +"Length":95,"Format":"StringGeneric","SubFormat":"Ascii","SymbolRef":null}, +"288":{ +"Length":95,"Format":"StringGeneric","SubFormat":"HighAscii","SymbolRef":null}, +"384":{ +"Length":60,"Format":"StringGeneric","SubFormat":"C64Petscii","SymbolRef":null}, +"445":{ +"Length":1,"Format":"NumericLE","SubFormat":"C64Petscii","SymbolRef":null}, +"449":{ +"Length":26,"Format":"StringGeneric","SubFormat":"C64Petscii","SymbolRef":null}, +"480":{ +"Length":60,"Format":"StringGeneric","SubFormat":"C64Screen","SymbolRef":null}, +"541":{ +"Length":1,"Format":"NumericLE","SubFormat":"C64Screen","SymbolRef":null}, +"545":{ +"Length":26,"Format":"StringGeneric","SubFormat":"C64Screen","SymbolRef":null}, +"576":{ +"Length":15,"Format":"StringReverse","SubFormat":"C64Petscii","SymbolRef":null}, +"592":{ +"Length":18,"Format":"StringNullTerm","SubFormat":"C64Petscii","SymbolRef":null}, +"611":{ +"Length":84,"Format":"StringNullTerm","SubFormat":"C64Petscii","SymbolRef":null}, +"696":{ +"Length":20,"Format":"StringL8","SubFormat":"C64Petscii","SymbolRef":null}, +"717":{ +"Length":22,"Format":"StringL16","SubFormat":"C64Petscii","SymbolRef":null}, +"740":{ +"Length":7,"Format":"StringDci","SubFormat":"C64Petscii","SymbolRef":null}, +"748":{ +"Length":19,"Format":"StringReverse","SubFormat":"C64Screen","SymbolRef":null}, +"768":{ +"Length":24,"Format":"StringL8","SubFormat":"C64Screen","SymbolRef":null}, +"793":{ +"Length":26,"Format":"StringL16","SubFormat":"C64Screen","SymbolRef":null}, +"820":{ +"Length":15,"Format":"StringDci","SubFormat":"C64Screen","SymbolRef":null}}} diff --git a/SourceGen/SGTestData/Expected/2016-char-encoding-a_64tass.S b/SourceGen/SGTestData/Expected/2016-char-encoding-a_64tass.S new file mode 100644 index 0000000..4b2b92d --- /dev/null +++ b/SourceGen/SGTestData/Expected/2016-char-encoding-a_64tass.S @@ -0,0 +1,293 @@ +;Project edited to mark some non-ASCII operands as ASCII. + .cpu "65816" +* = $1000 + .as + .xs + clc + xce + sep #$30 + lda #'A' + lda #'A' | $80 + lda #$c1 + lda #$41 + ldx #'a' + ldx #'a' | $80 + ldx #$41 + ldx #$01 + lda #$7f + lda #$7f + lda #$7f + lda #$7f + lda #$0d + rep #$30 + .al + .xl + lda #'B' + lda #'B' | $80 + lda #$c2 + lda #$42 + sep #$30 + .as + .xs + rts + + .byte 'C' + .byte 'C' | $80 + .byte $c3 + .byte $43 + .word 'd' + .word 'd' | $80 + .word $44 + .word $04 + .byte $00,$45 + .byte $00,$c5 + .byte $00,$c5 + .byte $00,$45 + .byte $80 + .text "low ASCII str" + .byte $e8,$e9,$e7,$e8,$a0,$c1,$d3,$c3,$c9,$c9,$a0,$f3,$f4,$f2 + .byte $80 + .byte $d0,$c5,$d4,$d3,$c3,$c9,$c9,$20,$53,$54,$52 + .byte $80 + .byte $53,$03,$12,$05,$05,$0e,$20,$43,$0f,$04,$05,$20,$13,$14,$12 + .byte $82 + .text $07,"Low ASCII CRLF",$0d,$0a + .byte $82 + .byte $87,$c8,$e9,$e7,$e8,$a0,$c1,$d3,$c3,$c9,$c9,$a0,$c3,$d2,$cc,$c6 + .byte $8d,$8a + .byte $82 + .byte $93,$d0,$c5,$d4,$d3,$c3,$c9,$c9,$20,$57,$49,$54,$48,$20,$96,$43 + .byte $4f,$4e,$54,$52,$4f,$4c,$05,$20,$43,$4f,$44,$45,$53,$0d + .byte $83 + .text " !",$22,"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW" + .text "XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" + .byte $83 + .byte $a0,$a1,$a2,$a3,$a4,$a5,$a6,$a7,$a8,$a9,$aa,$ab,$ac,$ad,$ae,$af + .byte $b0,$b1,$b2,$b3,$b4,$b5,$b6,$b7,$b8,$b9,$ba,$bb,$bc,$bd,$be,$bf + .byte $c0,$c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8,$c9,$ca,$cb,$cc,$cd,$ce,$cf + .byte $d0,$d1,$d2,$d3,$d4,$d5,$d6,$d7,$d8,$d9,$da,$db,$dc,$dd,$de,$df + .byte $e0,$e1,$e2,$e3,$e4,$e5,$e6,$e7,$e8,$e9,$ea,$eb,$ec,$ed,$ee,$ef + .byte $f0,$f1,$f2,$f3,$f4,$f5,$f6,$f7,$f8,$f9,$fa,$fb,$fc,$fd,$fe + .byte $83 + .byte $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2a,$2b,$2c,$2d,$2e,$2f + .byte $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3a,$3b,$3c,$3d,$3e,$3f + .byte $40,$c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8,$c9,$ca,$cb,$cc,$cd,$ce,$cf + .byte $d0,$d1,$d2,$d3,$d4,$d5,$d6,$d7,$d8,$d9,$da,$5b + .byte $5c + .byte $5d + .byte $5e + .byte $5f + .byte $60 + .byte $41,$42,$43,$44,$45,$46,$47,$48,$49,$4a,$4b,$4c,$4d,$4e,$4f,$50 + .byte $51,$52,$53,$54,$55,$56,$57,$58,$59,$5a + .text "{|}~" + .byte $83 + .byte $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2a,$2b,$2c,$2d,$2e,$2f + .byte $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3a,$3b,$3c,$3d,$3e,$3f + .byte $00,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4a,$4b,$4c,$4d,$4e,$4f + .byte $50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5a,$1b + .byte $1c + .byte $1d + .byte $1e + .byte $1f + .byte $40 + .byte $01,$02,$03,$04,$05,$06,$07,$08,$09,$0a,$0b,$0c,$0d,$0e,$0f,$10 + .byte $11,$12,$13,$14,$15,$16,$17,$18,$19,$1a + .text "{|}~" + .byte $84 + .byte $c9,$c9,$c3,$d3,$d4,$c5,$d0,$20,$45,$53,$52,$45,$56,$45,$52 + .byte $84 + .byte $4e,$55,$4c,$4c,$20,$54,$45,$52,$4d,$20,$d0,$c5,$d4,$d3,$c3,$c9 + .byte $c9,$00 + .byte $84 + .byte $d4,$48,$49,$53,$20,$4e,$55,$4c,$4c,$2d,$54,$45,$52,$4d,$49,$4e + .byte $41,$54,$45,$44,$20,$53,$54,$52,$49,$4e,$47,$20,$49,$53,$20,$54 + .byte $4f,$4f,$20,$4c,$4f,$4e,$47,$20,$54,$4f,$20,$46,$49,$54,$20,$4f + .byte $4e,$20,$41,$20,$53,$49,$4e,$47,$4c,$45,$20,$4c,$49,$4e,$45,$2c + .byte $20,$41,$4e,$44,$20,$57,$49,$4c,$4c,$20,$42,$45,$20,$53,$50,$4c + .byte $49,$54,$2e,$00 + .byte $84 + .byte $13,$d0,$c5,$d4,$d3,$c3,$c9,$c9,$20,$57,$49,$54,$48,$20,$4c,$45 + .byte $4e,$47,$54,$48 + .byte $84 + .byte $14,$00,$d0,$c5,$d4,$d3,$c3,$c9,$c9,$20,$57,$49,$54,$48,$20,$4c + .byte $45,$4e,$47,$54,$48,$32 + .byte $84 + .byte $42,$41,$44,$20,$44,$43,$c9 + .byte $84 + .byte $05,$04,$0f,$43,$20,$0e,$05,$05,$12,$03,$53,$20,$05,$13,$12,$05 + .byte $16,$05,$12 + .byte $84 + .byte $17,$53,$03,$12,$05,$05,$0e,$20,$43,$0f,$04,$05,$20,$17,$09,$14 + .byte $08,$20,$0c,$05,$0e,$07,$14,$08 + .byte $84 + .byte $18,$00,$53,$03,$12,$05,$05,$0e,$20,$43,$0f,$04,$05,$20,$17,$09 + .byte $14,$08,$20,$0c,$05,$0e,$07,$14,$08,$32 + .byte $84 + .byte $53,$03,$12,$05,$05,$0e,$20,$43,$0f,$04,$05,$20,$44,$43,$c9 + .byte $84 + .byte $85 +;$00-ff block + .byte $00 + .byte $01 + .byte $02 + .byte $03 + .byte $04 + .byte $05 + .byte $06 + .byte $07 + .byte $08 + .byte $09 + .byte $0a + .byte $0b + .byte $0c + .byte $0d + .byte $0e + .byte $0f + .byte $10 + .byte $11 + .byte $12 + .byte $13 + .byte $14 + .byte $15 + .byte $16 + .byte $17 + .byte $18 + .byte $19 + .byte $1a + .byte $1b + .byte $1c + .byte $1d + .byte $1e + .byte $1f + .text " !",$22,"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW" + .text "XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" + .byte $7f + .byte $80 + .byte $81 + .byte $82 + .byte $83 + .byte $84 + .byte $85 + .byte $86 + .byte $87 + .byte $88 + .byte $89 + .byte $8a + .byte $8b + .byte $8c + .byte $8d + .byte $8e + .byte $8f + .byte $90 + .byte $91 + .byte $92 + .byte $93 + .byte $94 + .byte $95 + .byte $96 + .byte $97 + .byte $98 + .byte $99 + .byte $9a + .byte $9b + .byte $9c + .byte $9d + .byte $9e + .byte $9f + .byte $a0 + .byte $a1 + .byte $a2 + .byte $a3 + .byte $a4 + .byte $a5 + .byte $a6 + .byte $a7 + .byte $a8 + .byte $a9 + .byte $aa + .byte $ab + .byte $ac + .byte $ad + .byte $ae + .byte $af + .byte $b0 + .byte $b1 + .byte $b2 + .byte $b3 + .byte $b4 + .byte $b5 + .byte $b6 + .byte $b7 + .byte $b8 + .byte $b9 + .byte $ba + .byte $bb + .byte $bc + .byte $bd + .byte $be + .byte $bf + .byte $c0 + .byte $c1 + .byte $c2 + .byte $c3 + .byte $c4 + .byte $c5 + .byte $c6 + .byte $c7 + .byte $c8 + .byte $c9 + .byte $ca + .byte $cb + .byte $cc + .byte $cd + .byte $ce + .byte $cf + .byte $d0 + .byte $d1 + .byte $d2 + .byte $d3 + .byte $d4 + .byte $d5 + .byte $d6 + .byte $d7 + .byte $d8 + .byte $d9 + .byte $da + .byte $db + .byte $dc + .byte $dd + .byte $de + .byte $df + .byte $e0 + .byte $e1 + .byte $e2 + .byte $e3 + .byte $e4 + .byte $e5 + .byte $e6 + .byte $e7 + .byte $e8 + .byte $e9 + .byte $ea + .byte $eb + .byte $ec + .byte $ed + .byte $ee + .byte $ef + .byte $f0 + .byte $f1 + .byte $f2 + .byte $f3 + .byte $f4 + .byte $f5 + .byte $f6 + .byte $f7 + .byte $f8 + .byte $f9 + .byte $fa + .byte $fb + .byte $fc + .byte $fd + .byte $fe + .byte $ff diff --git a/SourceGen/SGTestData/Expected/2016-char-encoding-a_Merlin32.S b/SourceGen/SGTestData/Expected/2016-char-encoding-a_Merlin32.S new file mode 100644 index 0000000..c7ae765 --- /dev/null +++ b/SourceGen/SGTestData/Expected/2016-char-encoding-a_Merlin32.S @@ -0,0 +1,267 @@ +;Project edited to mark some non-ASCII operands as ASCII. + org $1000 + clc + xce + sep #$30 + lda #'A' + lda #"A" + lda #$c1 + lda #$41 + ldx #'a' + ldx #"a" + ldx #$41 + ldx #$01 + lda #$7f + lda #$7f + lda #$7f + lda #$7f + lda #$0d + rep #$30 + mx %00 + lda #'B' + lda #"B" + lda #$c2 + lda #$42 + sep #$30 + mx %11 + rts + + dfb 'C' + dfb "C" + dfb $c3 + dfb $43 + dw 'd' + dw "d" + dw $44 + dw $04 + ddb 'E' + ddb "E" + ddb $c5 + ddb $45 + dfb $80 + asc 'low ASCII str' + asc "high ASCII str" + dfb $80 + hex d0c5d4d3c3c9c920535452 + dfb $80 + hex 53031205050e20430f040520131412 + dfb $82 + asc 07,'Low ASCII CRLF',0d0a + dfb $82 + asc 87,"High ASCII CRLF",8d8a + dfb $82 + hex 93d0c5d4d3c3c9c920574954482096434f4e54524f4c0520434f4445530d + dfb $83 + asc ' !"#$%&',27,'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX' + asc 'YZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' + dfb $83 + asc " !",a2,"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX" + asc "YZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" + dfb $83 + hex 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f + hex 40c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9da5b + dfb $5c + dfb $5d + dfb $5e + dfb $5f + dfb $60 + hex 4142434445464748494a4b4c4d4e4f505152535455565758595a + asc '{|}~' + dfb $83 + hex 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f + hex 004142434445464748494a4b4c4d4e4f505152535455565758595a1b + dfb $1c + dfb $1d + dfb $1e + dfb $1f + dfb $40 + hex 0102030405060708090a0b0c0d0e0f101112131415161718191a + asc '{|}~' + dfb $84 + hex c9c9c3d3d4c5d02045535245564552 + dfb $84 + hex 4e554c4c205445524d20d0c5d4d3c3c9c900 + dfb $84 + hex d4484953204e554c4c2d5445524d494e4154454420535452494e472049532054 + hex 4f4f204c4f4e4720544f20464954204f4e20412053494e474c45204c494e452c + hex 20414e442057494c4c2042452053504c49542e00 + dfb $84 + hex 13d0c5d4d3c3c9c92057495448204c454e475448 + dfb $84 + hex 1400d0c5d4d3c3c9c92057495448204c454e47544832 + dfb $84 + hex 424144204443c9 + dfb $84 + hex 05040f43200e05051203532005131205160512 + dfb $84 + hex 1753031205050e20430f04052017091408200c050e071408 + dfb $84 + hex 180053031205050e20430f04052017091408200c050e07140832 + dfb $84 + hex 53031205050e20430f0405204443c9 + dfb $84 + dfb $85 +;$00-ff block + dfb $00 + dfb $01 + dfb $02 + dfb $03 + dfb $04 + dfb $05 + dfb $06 + dfb $07 + dfb $08 + dfb $09 + dfb $0a + dfb $0b + dfb $0c + dfb $0d + dfb $0e + dfb $0f + dfb $10 + dfb $11 + dfb $12 + dfb $13 + dfb $14 + dfb $15 + dfb $16 + dfb $17 + dfb $18 + dfb $19 + dfb $1a + dfb $1b + dfb $1c + dfb $1d + dfb $1e + dfb $1f + asc ' !"#$%&',27,'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX' + asc 'YZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' + dfb $7f + dfb $80 + dfb $81 + dfb $82 + dfb $83 + dfb $84 + dfb $85 + dfb $86 + dfb $87 + dfb $88 + dfb $89 + dfb $8a + dfb $8b + dfb $8c + dfb $8d + dfb $8e + dfb $8f + dfb $90 + dfb $91 + dfb $92 + dfb $93 + dfb $94 + dfb $95 + dfb $96 + dfb $97 + dfb $98 + dfb $99 + dfb $9a + dfb $9b + dfb $9c + dfb $9d + dfb $9e + dfb $9f + dfb $a0 + dfb $a1 + dfb $a2 + dfb $a3 + dfb $a4 + dfb $a5 + dfb $a6 + dfb $a7 + dfb $a8 + dfb $a9 + dfb $aa + dfb $ab + dfb $ac + dfb $ad + dfb $ae + dfb $af + dfb $b0 + dfb $b1 + dfb $b2 + dfb $b3 + dfb $b4 + dfb $b5 + dfb $b6 + dfb $b7 + dfb $b8 + dfb $b9 + dfb $ba + dfb $bb + dfb $bc + dfb $bd + dfb $be + dfb $bf + dfb $c0 + dfb $c1 + dfb $c2 + dfb $c3 + dfb $c4 + dfb $c5 + dfb $c6 + dfb $c7 + dfb $c8 + dfb $c9 + dfb $ca + dfb $cb + dfb $cc + dfb $cd + dfb $ce + dfb $cf + dfb $d0 + dfb $d1 + dfb $d2 + dfb $d3 + dfb $d4 + dfb $d5 + dfb $d6 + dfb $d7 + dfb $d8 + dfb $d9 + dfb $da + dfb $db + dfb $dc + dfb $dd + dfb $de + dfb $df + dfb $e0 + dfb $e1 + dfb $e2 + dfb $e3 + dfb $e4 + dfb $e5 + dfb $e6 + dfb $e7 + dfb $e8 + dfb $e9 + dfb $ea + dfb $eb + dfb $ec + dfb $ed + dfb $ee + dfb $ef + dfb $f0 + dfb $f1 + dfb $f2 + dfb $f3 + dfb $f4 + dfb $f5 + dfb $f6 + dfb $f7 + dfb $f8 + dfb $f9 + dfb $fa + dfb $fb + dfb $fc + dfb $fd + dfb $fe + dfb $ff diff --git a/SourceGen/SGTestData/Expected/2016-char-encoding-a_acme.S b/SourceGen/SGTestData/Expected/2016-char-encoding-a_acme.S new file mode 100644 index 0000000..a182155 --- /dev/null +++ b/SourceGen/SGTestData/Expected/2016-char-encoding-a_acme.S @@ -0,0 +1,272 @@ +;Project edited to mark some non-ASCII operands as ASCII. + !cpu 65816 +* = $1000 + !as + !rs + clc + xce + sep #$30 + lda #'A' + lda #'A' | $80 + lda #$c1 + lda #$41 + ldx #'a' + ldx #'a' | $80 + ldx #$41 + ldx #$01 + lda #$7f + lda #$7f + lda #$7f + lda #$7f + lda #$0d + rep #$30 + !al + !rl + lda #'B' + lda #'B' | $80 + lda #$c2 + lda #$42 + sep #$30 + !as + !rs + rts + + !byte 'C' + !byte 'C' | $80 + !byte $c3 + !byte $43 + !word 'd' + !word 'd' | $80 + !word $44 + !word $04 + !byte $00,$45 + !byte $00,$c5 + !byte $00,$c5 + !byte $00,$45 + !byte $80 + !text "low ASCII str" + !hex e8e9e7e8a0c1d3c3c9c9a0f3f4f2 + !byte $80 + !pet "PETSCII str" + !byte $80 + !scr "Screen Code str" + !byte $82 + !text $07,"Low ASCII CRLF",$0d,$0a + !byte $82 + !hex 87c8e9e7e8a0c1d3c3c9c9a0c3d2ccc68d8a + !byte $82 + !pet $93,"PETSCII with ",$96,"control",$05," codes",$0d + !byte $83 + !text " !",$22,"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW" + !text "XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" + !byte $83 + !hex a0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf + !hex c0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf + !hex e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfe + !byte $83 + !pet " !",$22,"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW" + !pet "XYZ[" + !byte $5c + !byte $5d + !byte $5e + !byte $5f + !byte $60 + !pet "abcdefghijklmnopqrstuvwxyz" + !text "{|}~" + !byte $83 + !scr " !",$22,"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW" + !scr "XYZ[" + !byte $1c + !byte $1d + !byte $1e + !byte $1f + !byte $40 + !scr "abcdefghijklmnopqrstuvwxyz" + !text "{|}~" + !byte $84 + !pet "IICSTEP esrever" + !byte $84 + !pet "null term PETSCII",$00 + !byte $84 + !pet "This null-terminated string is too long to fit on a single lin" + !pet "e, and will be split.",$00 + !byte $84 + !pet $13,"PETSCII with length" + !byte $84 + !pet $14,$00,"PETSCII with length2" + !byte $84 + !pet "bad dcI" + !byte $84 + !scr "edoC neercS esrever" + !byte $84 + !scr $17,"Screen Code with length" + !byte $84 + !scr $18,$00,"Screen Code with length2" + !byte $84 + !scr "Screen Code DC",$c9 + !byte $84 + !byte $85 +;$00-ff block + !byte $00 + !byte $01 + !byte $02 + !byte $03 + !byte $04 + !byte $05 + !byte $06 + !byte $07 + !byte $08 + !byte $09 + !byte $0a + !byte $0b + !byte $0c + !byte $0d + !byte $0e + !byte $0f + !byte $10 + !byte $11 + !byte $12 + !byte $13 + !byte $14 + !byte $15 + !byte $16 + !byte $17 + !byte $18 + !byte $19 + !byte $1a + !byte $1b + !byte $1c + !byte $1d + !byte $1e + !byte $1f + !text " !",$22,"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW" + !text "XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" + !byte $7f + !byte $80 + !byte $81 + !byte $82 + !byte $83 + !byte $84 + !byte $85 + !byte $86 + !byte $87 + !byte $88 + !byte $89 + !byte $8a + !byte $8b + !byte $8c + !byte $8d + !byte $8e + !byte $8f + !byte $90 + !byte $91 + !byte $92 + !byte $93 + !byte $94 + !byte $95 + !byte $96 + !byte $97 + !byte $98 + !byte $99 + !byte $9a + !byte $9b + !byte $9c + !byte $9d + !byte $9e + !byte $9f + !byte $a0 + !byte $a1 + !byte $a2 + !byte $a3 + !byte $a4 + !byte $a5 + !byte $a6 + !byte $a7 + !byte $a8 + !byte $a9 + !byte $aa + !byte $ab + !byte $ac + !byte $ad + !byte $ae + !byte $af + !byte $b0 + !byte $b1 + !byte $b2 + !byte $b3 + !byte $b4 + !byte $b5 + !byte $b6 + !byte $b7 + !byte $b8 + !byte $b9 + !byte $ba + !byte $bb + !byte $bc + !byte $bd + !byte $be + !byte $bf + !byte $c0 + !byte $c1 + !byte $c2 + !byte $c3 + !byte $c4 + !byte $c5 + !byte $c6 + !byte $c7 + !byte $c8 + !byte $c9 + !byte $ca + !byte $cb + !byte $cc + !byte $cd + !byte $ce + !byte $cf + !byte $d0 + !byte $d1 + !byte $d2 + !byte $d3 + !byte $d4 + !byte $d5 + !byte $d6 + !byte $d7 + !byte $d8 + !byte $d9 + !byte $da + !byte $db + !byte $dc + !byte $dd + !byte $de + !byte $df + !byte $e0 + !byte $e1 + !byte $e2 + !byte $e3 + !byte $e4 + !byte $e5 + !byte $e6 + !byte $e7 + !byte $e8 + !byte $e9 + !byte $ea + !byte $eb + !byte $ec + !byte $ed + !byte $ee + !byte $ef + !byte $f0 + !byte $f1 + !byte $f2 + !byte $f3 + !byte $f4 + !byte $f5 + !byte $f6 + !byte $f7 + !byte $f8 + !byte $f9 + !byte $fa + !byte $fb + !byte $fc + !byte $fd + !byte $fe + !byte $ff diff --git a/SourceGen/SGTestData/Expected/2016-char-encoding-a_cc65.S b/SourceGen/SGTestData/Expected/2016-char-encoding-a_cc65.S new file mode 100644 index 0000000..9b8ad7f --- /dev/null +++ b/SourceGen/SGTestData/Expected/2016-char-encoding-a_cc65.S @@ -0,0 +1,299 @@ +;Project edited to mark some non-ASCII operands as ASCII. + .setcpu "65816" +; .segment "SEG000" + .org $1000 + .a8 + .i8 + clc + xce + sep #$30 + lda #'A' + lda #'A' | $80 + lda #$c1 + lda #$41 + ldx #'a' + ldx #'a' | $80 + ldx #$41 + ldx #$01 + lda #$7f + lda #$7f + lda #$7f + lda #$7f + lda #$0d + rep #$30 + .a16 + .i16 + lda #'B' + lda #'B' | $80 + lda #$c2 + lda #$42 + sep #$30 + .a8 + .i8 + rts + + .byte 'C' + .byte 'C' | $80 + .byte $c3 + .byte $43 + .word 'd' + .word 'd' | $80 + .word $44 + .word $04 + .dbyt 'E' + .dbyt 'E' | $80 + .dbyt $c5 + .dbyt $45 + .byte $80 + .byte "low ASCII str" +.macro HiAscii Arg + .repeat .strlen(Arg), I + .byte .strat(Arg, I) | $80 + .endrep +.endmacro + HiAscii "high ASCII str" + .byte $80 + .byte $d0,$c5,$d4,$d3,$c3,$c9,$c9,$20,$53,$54,$52 + .byte $80 + .byte $53,$03,$12,$05,$05,$0e,$20,$43,$0f,$04,$05,$20,$13,$14,$12 + .byte $82 + .byte $07,"Low ASCII CRLF",$0d,$0a + .byte $82 + .byte $87,$c8,$e9,$e7,$e8,$a0,$c1,$d3,$c3,$c9,$c9,$a0,$c3,$d2,$cc,$c6 + .byte $8d,$8a + .byte $82 + .byte $93,$d0,$c5,$d4,$d3,$c3,$c9,$c9,$20,$57,$49,$54,$48,$20,$96,$43 + .byte $4f,$4e,$54,$52,$4f,$4c,$05,$20,$43,$4f,$44,$45,$53,$0d + .byte $83 + .byte " !",$22,"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW" + .byte "XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" + .byte $83 + .byte $a0,$a1,$a2,$a3,$a4,$a5,$a6,$a7,$a8,$a9,$aa,$ab,$ac,$ad,$ae,$af + .byte $b0,$b1,$b2,$b3,$b4,$b5,$b6,$b7,$b8,$b9,$ba,$bb,$bc,$bd,$be,$bf + .byte $c0,$c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8,$c9,$ca,$cb,$cc,$cd,$ce,$cf + .byte $d0,$d1,$d2,$d3,$d4,$d5,$d6,$d7,$d8,$d9,$da,$db,$dc,$dd,$de,$df + .byte $e0,$e1,$e2,$e3,$e4,$e5,$e6,$e7,$e8,$e9,$ea,$eb,$ec,$ed,$ee,$ef + .byte $f0,$f1,$f2,$f3,$f4,$f5,$f6,$f7,$f8,$f9,$fa,$fb,$fc,$fd,$fe + .byte $83 + .byte $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2a,$2b,$2c,$2d,$2e,$2f + .byte $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3a,$3b,$3c,$3d,$3e,$3f + .byte $40,$c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8,$c9,$ca,$cb,$cc,$cd,$ce,$cf + .byte $d0,$d1,$d2,$d3,$d4,$d5,$d6,$d7,$d8,$d9,$da,$5b + .byte $5c + .byte $5d + .byte $5e + .byte $5f + .byte $60 + .byte $41,$42,$43,$44,$45,$46,$47,$48,$49,$4a,$4b,$4c,$4d,$4e,$4f,$50 + .byte $51,$52,$53,$54,$55,$56,$57,$58,$59,$5a + .byte "{|}~" + .byte $83 + .byte $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2a,$2b,$2c,$2d,$2e,$2f + .byte $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3a,$3b,$3c,$3d,$3e,$3f + .byte $00,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4a,$4b,$4c,$4d,$4e,$4f + .byte $50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5a,$1b + .byte $1c + .byte $1d + .byte $1e + .byte $1f + .byte $40 + .byte $01,$02,$03,$04,$05,$06,$07,$08,$09,$0a,$0b,$0c,$0d,$0e,$0f,$10 + .byte $11,$12,$13,$14,$15,$16,$17,$18,$19,$1a + .byte "{|}~" + .byte $84 + .byte $c9,$c9,$c3,$d3,$d4,$c5,$d0,$20,$45,$53,$52,$45,$56,$45,$52 + .byte $84 + .byte $4e,$55,$4c,$4c,$20,$54,$45,$52,$4d,$20,$d0,$c5,$d4,$d3,$c3,$c9 + .byte $c9,$00 + .byte $84 + .byte $d4,$48,$49,$53,$20,$4e,$55,$4c,$4c,$2d,$54,$45,$52,$4d,$49,$4e + .byte $41,$54,$45,$44,$20,$53,$54,$52,$49,$4e,$47,$20,$49,$53,$20,$54 + .byte $4f,$4f,$20,$4c,$4f,$4e,$47,$20,$54,$4f,$20,$46,$49,$54,$20,$4f + .byte $4e,$20,$41,$20,$53,$49,$4e,$47,$4c,$45,$20,$4c,$49,$4e,$45,$2c + .byte $20,$41,$4e,$44,$20,$57,$49,$4c,$4c,$20,$42,$45,$20,$53,$50,$4c + .byte $49,$54,$2e,$00 + .byte $84 + .byte $13,$d0,$c5,$d4,$d3,$c3,$c9,$c9,$20,$57,$49,$54,$48,$20,$4c,$45 + .byte $4e,$47,$54,$48 + .byte $84 + .byte $14,$00,$d0,$c5,$d4,$d3,$c3,$c9,$c9,$20,$57,$49,$54,$48,$20,$4c + .byte $45,$4e,$47,$54,$48,$32 + .byte $84 + .byte $42,$41,$44,$20,$44,$43,$c9 + .byte $84 + .byte $05,$04,$0f,$43,$20,$0e,$05,$05,$12,$03,$53,$20,$05,$13,$12,$05 + .byte $16,$05,$12 + .byte $84 + .byte $17,$53,$03,$12,$05,$05,$0e,$20,$43,$0f,$04,$05,$20,$17,$09,$14 + .byte $08,$20,$0c,$05,$0e,$07,$14,$08 + .byte $84 + .byte $18,$00,$53,$03,$12,$05,$05,$0e,$20,$43,$0f,$04,$05,$20,$17,$09 + .byte $14,$08,$20,$0c,$05,$0e,$07,$14,$08,$32 + .byte $84 + .byte $53,$03,$12,$05,$05,$0e,$20,$43,$0f,$04,$05,$20,$44,$43,$c9 + .byte $84 + .byte $85 +;$00-ff block + .byte $00 + .byte $01 + .byte $02 + .byte $03 + .byte $04 + .byte $05 + .byte $06 + .byte $07 + .byte $08 + .byte $09 + .byte $0a + .byte $0b + .byte $0c + .byte $0d + .byte $0e + .byte $0f + .byte $10 + .byte $11 + .byte $12 + .byte $13 + .byte $14 + .byte $15 + .byte $16 + .byte $17 + .byte $18 + .byte $19 + .byte $1a + .byte $1b + .byte $1c + .byte $1d + .byte $1e + .byte $1f + .byte " !",$22,"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW" + .byte "XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" + .byte $7f + .byte $80 + .byte $81 + .byte $82 + .byte $83 + .byte $84 + .byte $85 + .byte $86 + .byte $87 + .byte $88 + .byte $89 + .byte $8a + .byte $8b + .byte $8c + .byte $8d + .byte $8e + .byte $8f + .byte $90 + .byte $91 + .byte $92 + .byte $93 + .byte $94 + .byte $95 + .byte $96 + .byte $97 + .byte $98 + .byte $99 + .byte $9a + .byte $9b + .byte $9c + .byte $9d + .byte $9e + .byte $9f + .byte $a0 + .byte $a1 + .byte $a2 + .byte $a3 + .byte $a4 + .byte $a5 + .byte $a6 + .byte $a7 + .byte $a8 + .byte $a9 + .byte $aa + .byte $ab + .byte $ac + .byte $ad + .byte $ae + .byte $af + .byte $b0 + .byte $b1 + .byte $b2 + .byte $b3 + .byte $b4 + .byte $b5 + .byte $b6 + .byte $b7 + .byte $b8 + .byte $b9 + .byte $ba + .byte $bb + .byte $bc + .byte $bd + .byte $be + .byte $bf + .byte $c0 + .byte $c1 + .byte $c2 + .byte $c3 + .byte $c4 + .byte $c5 + .byte $c6 + .byte $c7 + .byte $c8 + .byte $c9 + .byte $ca + .byte $cb + .byte $cc + .byte $cd + .byte $ce + .byte $cf + .byte $d0 + .byte $d1 + .byte $d2 + .byte $d3 + .byte $d4 + .byte $d5 + .byte $d6 + .byte $d7 + .byte $d8 + .byte $d9 + .byte $da + .byte $db + .byte $dc + .byte $dd + .byte $de + .byte $df + .byte $e0 + .byte $e1 + .byte $e2 + .byte $e3 + .byte $e4 + .byte $e5 + .byte $e6 + .byte $e7 + .byte $e8 + .byte $e9 + .byte $ea + .byte $eb + .byte $ec + .byte $ed + .byte $ee + .byte $ef + .byte $f0 + .byte $f1 + .byte $f2 + .byte $f3 + .byte $f4 + .byte $f5 + .byte $f6 + .byte $f7 + .byte $f8 + .byte $f9 + .byte $fa + .byte $fb + .byte $fc + .byte $fd + .byte $fe + .byte $ff diff --git a/SourceGen/SGTestData/Expected/2016-char-encoding-a_cc65.cfg b/SourceGen/SGTestData/Expected/2016-char-encoding-a_cc65.cfg new file mode 100644 index 0000000..1190647 --- /dev/null +++ b/SourceGen/SGTestData/Expected/2016-char-encoding-a_cc65.cfg @@ -0,0 +1,11 @@ +# 6502bench SourceGen generated linker script for 2016-char-encoding-a +MEMORY { + MAIN: file=%O, start=%S, size=65536; +# MEM000: file=%O, start=$1000, size=1093; +} +SEGMENTS { + CODE: load=MAIN, type=rw; +# SEG000: load=MEM000, type=rw; +} +FEATURES {} +SYMBOLS {} diff --git a/SourceGen/SGTestData/Expected/2017-char-encoding-p_64tass.S b/SourceGen/SGTestData/Expected/2017-char-encoding-p_64tass.S new file mode 100644 index 0000000..91463f2 --- /dev/null +++ b/SourceGen/SGTestData/Expected/2017-char-encoding-p_64tass.S @@ -0,0 +1,300 @@ +;Project edited to mark some non-ASCII operands as ASCII. + .cpu "65816" + .enc sg_petscii + .cdef " @", $20 + .cdef "AZ", $c1 + .cdef "az", $41 + .cdef "[[", $5b + .cdef "]]", $5d +* = $1000 + .as + .xs + clc + xce + sep #$30 + lda #$41 + lda #$c1 + lda #'A' + lda #$41 + ldx #$61 + ldx #$e1 + ldx #'a' + ldx #$01 + lda #$7f + lda #$7f + lda #$7f + lda #$7f + lda #$0d + rep #$30 + .al + .xl + lda #$42 + lda #$c2 + lda #'B' + lda #$42 + sep #$30 + .as + .xs + rts + + .byte $43 + .byte $c3 + .byte 'C' + .byte $43 + .word $64 + .word $e4 + .word 'd' + .word $04 + .byte $00,$45 + .byte $00,$c5 + .byte $00,$c5 + .byte $00,$45 + .byte $80 + .byte $6c,$6f,$77,$20,$41,$53,$43,$49,$49,$20,$73,$74,$72 + .byte $e8,$e9,$e7,$e8,$a0,$c1,$d3,$c3,$c9,$c9,$a0,$f3,$f4,$f2 + .byte $80 + .text "PETSCII str" + .byte $80 + .byte $53,$03,$12,$05,$05,$0e,$20,$43,$0f,$04,$05,$20,$13,$14,$12 + .byte $82 + .byte $07,$4c,$6f,$77,$20,$41,$53,$43,$49,$49,$20,$43,$52,$4c,$46,$0d + .byte $0a + .byte $82 + .byte $87,$c8,$e9,$e7,$e8,$a0,$c1,$d3,$c3,$c9,$c9,$a0,$c3,$d2,$cc,$c6 + .byte $8d,$8a + .byte $82 + .text $93,"PETSCII with ",$96,"control",$05," codes",$0d + .byte $83 + .byte $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2a,$2b,$2c,$2d,$2e,$2f + .byte $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3a,$3b,$3c,$3d,$3e,$3f + .byte $40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4a,$4b,$4c,$4d,$4e,$4f + .byte $50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5a,$5b,$5c,$5d,$5e,$5f + .byte $60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6a,$6b,$6c,$6d,$6e,$6f + .byte $70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$7a,$7b,$7c,$7d,$7e + .byte $83 + .byte $a0,$a1,$a2,$a3,$a4,$a5,$a6,$a7,$a8,$a9,$aa,$ab,$ac,$ad,$ae,$af + .byte $b0,$b1,$b2,$b3,$b4,$b5,$b6,$b7,$b8,$b9,$ba,$bb,$bc,$bd,$be,$bf + .byte $c0,$c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8,$c9,$ca,$cb,$cc,$cd,$ce,$cf + .byte $d0,$d1,$d2,$d3,$d4,$d5,$d6,$d7,$d8,$d9,$da,$db,$dc,$dd,$de,$df + .byte $e0,$e1,$e2,$e3,$e4,$e5,$e6,$e7,$e8,$e9,$ea,$eb,$ec,$ed,$ee,$ef + .byte $f0,$f1,$f2,$f3,$f4,$f5,$f6,$f7,$f8,$f9,$fa,$fb,$fc,$fd,$fe + .byte $83 + .text " !",$22,"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW" + .text "XYZ[" + .byte $5c + .byte ']' + .byte $5e + .byte $5f + .byte $60 + .text "abcdefghijklmnopqrstuvwxyz" + .byte $7b + .byte $7c + .byte $7d + .byte $7e + .byte $83 + .byte $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2a,$2b,$2c,$2d,$2e,$2f + .byte $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3a,$3b,$3c,$3d,$3e,$3f + .byte $00,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4a,$4b,$4c,$4d,$4e,$4f + .byte $50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5a,$1b + .byte $1c + .byte $1d + .byte $1e + .byte $1f + .byte $40 + .byte $01,$02,$03,$04,$05,$06,$07,$08,$09,$0a,$0b,$0c,$0d,$0e,$0f,$10 + .byte $11,$12,$13,$14,$15,$16,$17,$18,$19,$1a + .byte $7b + .byte $7c + .byte $7d + .byte $7e + .byte $84 + .text "IICSTEP esrever" + .byte $84 + .null "null term PETSCII" + .byte $84 + .text "This null-terminated string is too long to fit on a single lin" + .text "e, and will be split.",$00 + .byte $84 + .ptext "PETSCII with length" + .byte $84 + .text $14,$00,"PETSCII with length2" + .byte $84 + .byte $42,$41,$44,$20,$44,$43,$c9 + .byte $84 + .byte $05,$04,$0f,$43,$20,$0e,$05,$05,$12,$03,$53,$20,$05,$13,$12,$05 + .byte $16,$05,$12 + .byte $84 + .byte $17,$53,$03,$12,$05,$05,$0e,$20,$43,$0f,$04,$05,$20,$17,$09,$14 + .byte $08,$20,$0c,$05,$0e,$07,$14,$08 + .byte $84 + .byte $18,$00,$53,$03,$12,$05,$05,$0e,$20,$43,$0f,$04,$05,$20,$17,$09 + .byte $14,$08,$20,$0c,$05,$0e,$07,$14,$08,$32 + .byte $84 + .byte $53,$03,$12,$05,$05,$0e,$20,$43,$0f,$04,$05,$20,$44,$43,$c9 + .byte $84 + .byte $85 +;$00-ff block + .byte $00 + .byte $01 + .byte $02 + .byte $03 + .byte $04 + .byte $05 + .byte $06 + .byte $07 + .byte $08 + .byte $09 + .byte $0a + .byte $0b + .byte $0c + .byte $0d + .byte $0e + .byte $0f + .byte $10 + .byte $11 + .byte $12 + .byte $13 + .byte $14 + .byte $15 + .byte $16 + .byte $17 + .byte $18 + .byte $19 + .byte $1a + .byte $1b + .byte $1c + .byte $1d + .text $1e,$1f," !",$22,"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmno" + .text "pqrstuvwxyz[" + .byte $5c + .byte $5d + .byte $5e + .byte $5f + .byte $60 + .byte $61 + .byte $62 + .byte $63 + .byte $64 + .byte $65 + .byte $66 + .byte $67 + .byte $68 + .byte $69 + .byte $6a + .byte $6b + .byte $6c + .byte $6d + .byte $6e + .byte $6f + .byte $70 + .byte $71 + .byte $72 + .byte $73 + .byte $74 + .byte $75 + .byte $76 + .byte $77 + .byte $78 + .byte $79 + .byte $7a + .byte $7b + .byte $7c + .byte $7d + .byte $7e + .byte $7f + .byte $80 + .byte $81 + .byte $82 + .byte $83 + .byte $84 + .byte $85 + .byte $86 + .byte $87 + .byte $88 + .byte $89 + .byte $8a + .byte $8b + .byte $8c + .byte $8d + .byte $8e + .byte $8f + .byte $90 + .byte $91 + .byte $92 + .byte $93 + .byte $94 + .text $95,$96,$97,$98,$99,$9a,$9b,$9c + .byte $9d + .byte $9e + .byte $9f + .byte $a0 + .byte $a1 + .byte $a2 + .byte $a3 + .byte $a4 + .byte $a5 + .byte $a6 + .byte $a7 + .byte $a8 + .byte $a9 + .byte $aa + .byte $ab + .byte $ac + .byte $ad + .byte $ae + .byte $af + .byte $b0 + .byte $b1 + .byte $b2 + .byte $b3 + .byte $b4 + .byte $b5 + .byte $b6 + .byte $b7 + .byte $b8 + .byte $b9 + .byte $ba + .byte $bb + .byte $bc + .byte $bd + .byte $be + .byte $bf + .byte $c0 + .text "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + .byte $db + .byte $dc + .byte $dd + .byte $de + .byte $df + .byte $e0 + .byte $e1 + .byte $e2 + .byte $e3 + .byte $e4 + .byte $e5 + .byte $e6 + .byte $e7 + .byte $e8 + .byte $e9 + .byte $ea + .byte $eb + .byte $ec + .byte $ed + .byte $ee + .byte $ef + .byte $f0 + .byte $f1 + .byte $f2 + .byte $f3 + .byte $f4 + .byte $f5 + .byte $f6 + .byte $f7 + .byte $f8 + .byte $f9 + .byte $fa + .byte $fb + .byte $fc + .byte $fd + .byte $fe + .byte $ff diff --git a/SourceGen/SGTestData/Expected/2017-char-encoding-p_Merlin32.S b/SourceGen/SGTestData/Expected/2017-char-encoding-p_Merlin32.S new file mode 100644 index 0000000..d0e64e4 --- /dev/null +++ b/SourceGen/SGTestData/Expected/2017-char-encoding-p_Merlin32.S @@ -0,0 +1,274 @@ +;Project edited to mark some non-ASCII operands as ASCII. + org $1000 + clc + xce + sep #$30 + lda #'A' + lda #"A" + lda #$c1 + lda #$41 + ldx #'a' + ldx #"a" + ldx #$41 + ldx #$01 + lda #$7f + lda #$7f + lda #$7f + lda #$7f + lda #$0d + rep #$30 + mx %00 + lda #'B' + lda #"B" + lda #$c2 + lda #$42 + sep #$30 + mx %11 + rts + + dfb 'C' + dfb "C" + dfb $c3 + dfb $43 + dw 'd' + dw "d" + dw $44 + dw $04 + ddb 'E' + ddb "E" + ddb $c5 + ddb $45 + dfb $80 + asc 'low ASCII str' + asc "high ASCII str" + dfb $80 + hex d0c5d4d3c3c9c920535452 + dfb $80 + hex 53031205050e20430f040520131412 + dfb $82 + asc 07,'Low ASCII CRLF',0d0a + dfb $82 + asc 87,"High ASCII CRLF",8d8a + dfb $82 + hex 93d0c5d4d3c3c9c920574954482096434f4e54524f4c0520434f4445530d + dfb $83 + asc ' !"#$%&',27,'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX' + asc 'YZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' + dfb $83 + asc " !",a2,"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX" + asc "YZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" + dfb $83 + hex 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f + hex 40c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9da5b + dfb $5c + dfb $5d + dfb $5e + dfb $5f + dfb $60 + hex 4142434445464748494a4b4c4d4e4f505152535455565758595a + dfb $7b + dfb $7c + dfb $7d + dfb $7e + dfb $83 + hex 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f + hex 004142434445464748494a4b4c4d4e4f505152535455565758595a1b + dfb $1c + dfb $1d + dfb $1e + dfb $1f + dfb $40 + hex 0102030405060708090a0b0c0d0e0f101112131415161718191a + dfb $7b + dfb $7c + dfb $7d + dfb $7e + dfb $84 + hex c9c9c3d3d4c5d02045535245564552 + dfb $84 + hex 4e554c4c205445524d20d0c5d4d3c3c9c900 + dfb $84 + hex d4484953204e554c4c2d5445524d494e4154454420535452494e472049532054 + hex 4f4f204c4f4e4720544f20464954204f4e20412053494e474c45204c494e452c + hex 20414e442057494c4c2042452053504c49542e00 + dfb $84 + hex 13d0c5d4d3c3c9c92057495448204c454e475448 + dfb $84 + hex 1400d0c5d4d3c3c9c92057495448204c454e47544832 + dfb $84 + hex 424144204443c9 + dfb $84 + hex 05040f43200e05051203532005131205160512 + dfb $84 + hex 1753031205050e20430f04052017091408200c050e071408 + dfb $84 + hex 180053031205050e20430f04052017091408200c050e07140832 + dfb $84 + hex 53031205050e20430f0405204443c9 + dfb $84 + dfb $85 +;$00-ff block + dfb $00 + dfb $01 + dfb $02 + dfb $03 + dfb $04 + dfb $05 + dfb $06 + dfb $07 + dfb $08 + dfb $09 + dfb $0a + dfb $0b + dfb $0c + dfb $0d + dfb $0e + dfb $0f + dfb $10 + dfb $11 + dfb $12 + dfb $13 + dfb $14 + dfb $15 + dfb $16 + dfb $17 + dfb $18 + dfb $19 + dfb $1a + dfb $1b + dfb $1c + dfb $1d + hex 1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d + hex 3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b + dfb $5c + dfb $5d + dfb $5e + dfb $5f + dfb $60 + dfb $61 + dfb $62 + dfb $63 + dfb $64 + dfb $65 + dfb $66 + dfb $67 + dfb $68 + dfb $69 + dfb $6a + dfb $6b + dfb $6c + dfb $6d + dfb $6e + dfb $6f + dfb $70 + dfb $71 + dfb $72 + dfb $73 + dfb $74 + dfb $75 + dfb $76 + dfb $77 + dfb $78 + dfb $79 + dfb $7a + dfb $7b + dfb $7c + dfb $7d + dfb $7e + dfb $7f + dfb $80 + dfb $81 + dfb $82 + dfb $83 + dfb $84 + dfb $85 + dfb $86 + dfb $87 + dfb $88 + dfb $89 + dfb $8a + dfb $8b + dfb $8c + dfb $8d + dfb $8e + dfb $8f + dfb $90 + dfb $91 + dfb $92 + dfb $93 + dfb $94 + hex 95969798999a9b9c + dfb $9d + dfb $9e + dfb $9f + dfb $a0 + dfb $a1 + dfb $a2 + dfb $a3 + dfb $a4 + dfb $a5 + dfb $a6 + dfb $a7 + dfb $a8 + dfb $a9 + dfb $aa + dfb $ab + dfb $ac + dfb $ad + dfb $ae + dfb $af + dfb $b0 + dfb $b1 + dfb $b2 + dfb $b3 + dfb $b4 + dfb $b5 + dfb $b6 + dfb $b7 + dfb $b8 + dfb $b9 + dfb $ba + dfb $bb + dfb $bc + dfb $bd + dfb $be + dfb $bf + dfb $c0 + hex c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9da + dfb $db + dfb $dc + dfb $dd + dfb $de + dfb $df + dfb $e0 + dfb $e1 + dfb $e2 + dfb $e3 + dfb $e4 + dfb $e5 + dfb $e6 + dfb $e7 + dfb $e8 + dfb $e9 + dfb $ea + dfb $eb + dfb $ec + dfb $ed + dfb $ee + dfb $ef + dfb $f0 + dfb $f1 + dfb $f2 + dfb $f3 + dfb $f4 + dfb $f5 + dfb $f6 + dfb $f7 + dfb $f8 + dfb $f9 + dfb $fa + dfb $fb + dfb $fc + dfb $fd + dfb $fe + dfb $ff diff --git a/SourceGen/SGTestData/Expected/2017-char-encoding-p_acme.S b/SourceGen/SGTestData/Expected/2017-char-encoding-p_acme.S new file mode 100644 index 0000000..3540bec --- /dev/null +++ b/SourceGen/SGTestData/Expected/2017-char-encoding-p_acme.S @@ -0,0 +1,279 @@ +;Project edited to mark some non-ASCII operands as ASCII. + !cpu 65816 +* = $1000 + !as + !rs + clc + xce + sep #$30 + lda #'A' + lda #'A' | $80 + lda #$c1 + lda #$41 + ldx #'a' + ldx #'a' | $80 + ldx #$41 + ldx #$01 + lda #$7f + lda #$7f + lda #$7f + lda #$7f + lda #$0d + rep #$30 + !al + !rl + lda #'B' + lda #'B' | $80 + lda #$c2 + lda #$42 + sep #$30 + !as + !rs + rts + + !byte 'C' + !byte 'C' | $80 + !byte $c3 + !byte $43 + !word 'd' + !word 'd' | $80 + !word $44 + !word $04 + !byte $00,$45 + !byte $00,$c5 + !byte $00,$c5 + !byte $00,$45 + !byte $80 + !text "low ASCII str" + !hex e8e9e7e8a0c1d3c3c9c9a0f3f4f2 + !byte $80 + !pet "PETSCII str" + !byte $80 + !scr "Screen Code str" + !byte $82 + !text $07,"Low ASCII CRLF",$0d,$0a + !byte $82 + !hex 87c8e9e7e8a0c1d3c3c9c9a0c3d2ccc68d8a + !byte $82 + !pet $93,"PETSCII with ",$96,"control",$05," codes",$0d + !byte $83 + !text " !",$22,"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW" + !text "XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" + !byte $83 + !hex a0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf + !hex c0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf + !hex e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfe + !byte $83 + !pet " !",$22,"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW" + !pet "XYZ[" + !byte $5c + !byte $5d + !byte $5e + !byte $5f + !byte $60 + !pet "abcdefghijklmnopqrstuvwxyz" + !byte $7b + !byte $7c + !byte $7d + !byte $7e + !byte $83 + !scr " !",$22,"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW" + !scr "XYZ[" + !byte $1c + !byte $1d + !byte $1e + !byte $1f + !byte $40 + !scr "abcdefghijklmnopqrstuvwxyz" + !byte $7b + !byte $7c + !byte $7d + !byte $7e + !byte $84 + !pet "IICSTEP esrever" + !byte $84 + !pet "null term PETSCII",$00 + !byte $84 + !pet "This null-terminated string is too long to fit on a single lin" + !pet "e, and will be split.",$00 + !byte $84 + !pet $13,"PETSCII with length" + !byte $84 + !pet $14,$00,"PETSCII with length2" + !byte $84 + !pet "bad dcI" + !byte $84 + !scr "edoC neercS esrever" + !byte $84 + !scr $17,"Screen Code with length" + !byte $84 + !scr $18,$00,"Screen Code with length2" + !byte $84 + !scr "Screen Code DC",$c9 + !byte $84 + !byte $85 +;$00-ff block + !byte $00 + !byte $01 + !byte $02 + !byte $03 + !byte $04 + !byte $05 + !byte $06 + !byte $07 + !byte $08 + !byte $09 + !byte $0a + !byte $0b + !byte $0c + !byte $0d + !byte $0e + !byte $0f + !byte $10 + !byte $11 + !byte $12 + !byte $13 + !byte $14 + !byte $15 + !byte $16 + !byte $17 + !byte $18 + !byte $19 + !byte $1a + !byte $1b + !byte $1c + !byte $1d + !pet $1e,$1f," !",$22,"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmno" + !pet "pqrstuvwxyz[" + !byte $5c + !byte $5d + !byte $5e + !byte $5f + !byte $60 + !byte $61 + !byte $62 + !byte $63 + !byte $64 + !byte $65 + !byte $66 + !byte $67 + !byte $68 + !byte $69 + !byte $6a + !byte $6b + !byte $6c + !byte $6d + !byte $6e + !byte $6f + !byte $70 + !byte $71 + !byte $72 + !byte $73 + !byte $74 + !byte $75 + !byte $76 + !byte $77 + !byte $78 + !byte $79 + !byte $7a + !byte $7b + !byte $7c + !byte $7d + !byte $7e + !byte $7f + !byte $80 + !byte $81 + !byte $82 + !byte $83 + !byte $84 + !byte $85 + !byte $86 + !byte $87 + !byte $88 + !byte $89 + !byte $8a + !byte $8b + !byte $8c + !byte $8d + !byte $8e + !byte $8f + !byte $90 + !byte $91 + !byte $92 + !byte $93 + !byte $94 + !pet $95,$96,$97,$98,$99,$9a,$9b,$9c + !byte $9d + !byte $9e + !byte $9f + !byte $a0 + !byte $a1 + !byte $a2 + !byte $a3 + !byte $a4 + !byte $a5 + !byte $a6 + !byte $a7 + !byte $a8 + !byte $a9 + !byte $aa + !byte $ab + !byte $ac + !byte $ad + !byte $ae + !byte $af + !byte $b0 + !byte $b1 + !byte $b2 + !byte $b3 + !byte $b4 + !byte $b5 + !byte $b6 + !byte $b7 + !byte $b8 + !byte $b9 + !byte $ba + !byte $bb + !byte $bc + !byte $bd + !byte $be + !byte $bf + !byte $c0 + !pet "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + !byte $db + !byte $dc + !byte $dd + !byte $de + !byte $df + !byte $e0 + !byte $e1 + !byte $e2 + !byte $e3 + !byte $e4 + !byte $e5 + !byte $e6 + !byte $e7 + !byte $e8 + !byte $e9 + !byte $ea + !byte $eb + !byte $ec + !byte $ed + !byte $ee + !byte $ef + !byte $f0 + !byte $f1 + !byte $f2 + !byte $f3 + !byte $f4 + !byte $f5 + !byte $f6 + !byte $f7 + !byte $f8 + !byte $f9 + !byte $fa + !byte $fb + !byte $fc + !byte $fd + !byte $fe + !byte $ff diff --git a/SourceGen/SGTestData/Expected/2017-char-encoding-p_cc65.S b/SourceGen/SGTestData/Expected/2017-char-encoding-p_cc65.S new file mode 100644 index 0000000..bb5b561 --- /dev/null +++ b/SourceGen/SGTestData/Expected/2017-char-encoding-p_cc65.S @@ -0,0 +1,309 @@ +;Project edited to mark some non-ASCII operands as ASCII. + .setcpu "65816" +; .segment "SEG000" + .org $1000 + .a8 + .i8 + clc + xce + sep #$30 + lda #'A' + lda #'A' | $80 + lda #$c1 + lda #$41 + ldx #'a' + ldx #'a' | $80 + ldx #$41 + ldx #$01 + lda #$7f + lda #$7f + lda #$7f + lda #$7f + lda #$0d + rep #$30 + .a16 + .i16 + lda #'B' + lda #'B' | $80 + lda #$c2 + lda #$42 + sep #$30 + .a8 + .i8 + rts + + .byte 'C' + .byte 'C' | $80 + .byte $c3 + .byte $43 + .word 'd' + .word 'd' | $80 + .word $44 + .word $04 + .dbyt 'E' + .dbyt 'E' | $80 + .dbyt $c5 + .dbyt $45 + .byte $80 + .byte "low ASCII str" +.macro HiAscii Arg + .repeat .strlen(Arg), I + .byte .strat(Arg, I) | $80 + .endrep +.endmacro + HiAscii "high ASCII str" + .byte $80 + .byte $d0,$c5,$d4,$d3,$c3,$c9,$c9,$20,$53,$54,$52 + .byte $80 + .byte $53,$03,$12,$05,$05,$0e,$20,$43,$0f,$04,$05,$20,$13,$14,$12 + .byte $82 + .byte $07,"Low ASCII CRLF",$0d,$0a + .byte $82 + .byte $87,$c8,$e9,$e7,$e8,$a0,$c1,$d3,$c3,$c9,$c9,$a0,$c3,$d2,$cc,$c6 + .byte $8d,$8a + .byte $82 + .byte $93,$d0,$c5,$d4,$d3,$c3,$c9,$c9,$20,$57,$49,$54,$48,$20,$96,$43 + .byte $4f,$4e,$54,$52,$4f,$4c,$05,$20,$43,$4f,$44,$45,$53,$0d + .byte $83 + .byte " !",$22,"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW" + .byte "XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" + .byte $83 + .byte $a0,$a1,$a2,$a3,$a4,$a5,$a6,$a7,$a8,$a9,$aa,$ab,$ac,$ad,$ae,$af + .byte $b0,$b1,$b2,$b3,$b4,$b5,$b6,$b7,$b8,$b9,$ba,$bb,$bc,$bd,$be,$bf + .byte $c0,$c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8,$c9,$ca,$cb,$cc,$cd,$ce,$cf + .byte $d0,$d1,$d2,$d3,$d4,$d5,$d6,$d7,$d8,$d9,$da,$db,$dc,$dd,$de,$df + .byte $e0,$e1,$e2,$e3,$e4,$e5,$e6,$e7,$e8,$e9,$ea,$eb,$ec,$ed,$ee,$ef + .byte $f0,$f1,$f2,$f3,$f4,$f5,$f6,$f7,$f8,$f9,$fa,$fb,$fc,$fd,$fe + .byte $83 + .byte $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2a,$2b,$2c,$2d,$2e,$2f + .byte $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3a,$3b,$3c,$3d,$3e,$3f + .byte $40,$c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8,$c9,$ca,$cb,$cc,$cd,$ce,$cf + .byte $d0,$d1,$d2,$d3,$d4,$d5,$d6,$d7,$d8,$d9,$da,$5b + .byte $5c + .byte $5d + .byte $5e + .byte $5f + .byte $60 + .byte $41,$42,$43,$44,$45,$46,$47,$48,$49,$4a,$4b,$4c,$4d,$4e,$4f,$50 + .byte $51,$52,$53,$54,$55,$56,$57,$58,$59,$5a + .byte $7b + .byte $7c + .byte $7d + .byte $7e + .byte $83 + .byte $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2a,$2b,$2c,$2d,$2e,$2f + .byte $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3a,$3b,$3c,$3d,$3e,$3f + .byte $00,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4a,$4b,$4c,$4d,$4e,$4f + .byte $50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5a,$1b + .byte $1c + .byte $1d + .byte $1e + .byte $1f + .byte $40 + .byte $01,$02,$03,$04,$05,$06,$07,$08,$09,$0a,$0b,$0c,$0d,$0e,$0f,$10 + .byte $11,$12,$13,$14,$15,$16,$17,$18,$19,$1a + .byte $7b + .byte $7c + .byte $7d + .byte $7e + .byte $84 + .byte $c9,$c9,$c3,$d3,$d4,$c5,$d0,$20,$45,$53,$52,$45,$56,$45,$52 + .byte $84 + .byte $4e,$55,$4c,$4c,$20,$54,$45,$52,$4d,$20,$d0,$c5,$d4,$d3,$c3,$c9 + .byte $c9,$00 + .byte $84 + .byte $d4,$48,$49,$53,$20,$4e,$55,$4c,$4c,$2d,$54,$45,$52,$4d,$49,$4e + .byte $41,$54,$45,$44,$20,$53,$54,$52,$49,$4e,$47,$20,$49,$53,$20,$54 + .byte $4f,$4f,$20,$4c,$4f,$4e,$47,$20,$54,$4f,$20,$46,$49,$54,$20,$4f + .byte $4e,$20,$41,$20,$53,$49,$4e,$47,$4c,$45,$20,$4c,$49,$4e,$45,$2c + .byte $20,$41,$4e,$44,$20,$57,$49,$4c,$4c,$20,$42,$45,$20,$53,$50,$4c + .byte $49,$54,$2e,$00 + .byte $84 + .byte $13,$d0,$c5,$d4,$d3,$c3,$c9,$c9,$20,$57,$49,$54,$48,$20,$4c,$45 + .byte $4e,$47,$54,$48 + .byte $84 + .byte $14,$00,$d0,$c5,$d4,$d3,$c3,$c9,$c9,$20,$57,$49,$54,$48,$20,$4c + .byte $45,$4e,$47,$54,$48,$32 + .byte $84 + .byte $42,$41,$44,$20,$44,$43,$c9 + .byte $84 + .byte $05,$04,$0f,$43,$20,$0e,$05,$05,$12,$03,$53,$20,$05,$13,$12,$05 + .byte $16,$05,$12 + .byte $84 + .byte $17,$53,$03,$12,$05,$05,$0e,$20,$43,$0f,$04,$05,$20,$17,$09,$14 + .byte $08,$20,$0c,$05,$0e,$07,$14,$08 + .byte $84 + .byte $18,$00,$53,$03,$12,$05,$05,$0e,$20,$43,$0f,$04,$05,$20,$17,$09 + .byte $14,$08,$20,$0c,$05,$0e,$07,$14,$08,$32 + .byte $84 + .byte $53,$03,$12,$05,$05,$0e,$20,$43,$0f,$04,$05,$20,$44,$43,$c9 + .byte $84 + .byte $85 +;$00-ff block + .byte $00 + .byte $01 + .byte $02 + .byte $03 + .byte $04 + .byte $05 + .byte $06 + .byte $07 + .byte $08 + .byte $09 + .byte $0a + .byte $0b + .byte $0c + .byte $0d + .byte $0e + .byte $0f + .byte $10 + .byte $11 + .byte $12 + .byte $13 + .byte $14 + .byte $15 + .byte $16 + .byte $17 + .byte $18 + .byte $19 + .byte $1a + .byte $1b + .byte $1c + .byte $1d + .byte $1e,$1f,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2a,$2b,$2c,$2d + .byte $2e,$2f,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3a,$3b,$3c,$3d + .byte $3e,$3f,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4a,$4b,$4c,$4d + .byte $4e,$4f,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5a,$5b + .byte $5c + .byte $5d + .byte $5e + .byte $5f + .byte $60 + .byte $61 + .byte $62 + .byte $63 + .byte $64 + .byte $65 + .byte $66 + .byte $67 + .byte $68 + .byte $69 + .byte $6a + .byte $6b + .byte $6c + .byte $6d + .byte $6e + .byte $6f + .byte $70 + .byte $71 + .byte $72 + .byte $73 + .byte $74 + .byte $75 + .byte $76 + .byte $77 + .byte $78 + .byte $79 + .byte $7a + .byte $7b + .byte $7c + .byte $7d + .byte $7e + .byte $7f + .byte $80 + .byte $81 + .byte $82 + .byte $83 + .byte $84 + .byte $85 + .byte $86 + .byte $87 + .byte $88 + .byte $89 + .byte $8a + .byte $8b + .byte $8c + .byte $8d + .byte $8e + .byte $8f + .byte $90 + .byte $91 + .byte $92 + .byte $93 + .byte $94 + .byte $95,$96,$97,$98,$99,$9a,$9b,$9c + .byte $9d + .byte $9e + .byte $9f + .byte $a0 + .byte $a1 + .byte $a2 + .byte $a3 + .byte $a4 + .byte $a5 + .byte $a6 + .byte $a7 + .byte $a8 + .byte $a9 + .byte $aa + .byte $ab + .byte $ac + .byte $ad + .byte $ae + .byte $af + .byte $b0 + .byte $b1 + .byte $b2 + .byte $b3 + .byte $b4 + .byte $b5 + .byte $b6 + .byte $b7 + .byte $b8 + .byte $b9 + .byte $ba + .byte $bb + .byte $bc + .byte $bd + .byte $be + .byte $bf + .byte $c0 + .byte $c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8,$c9,$ca,$cb,$cc,$cd,$ce,$cf,$d0 + .byte $d1,$d2,$d3,$d4,$d5,$d6,$d7,$d8,$d9,$da + .byte $db + .byte $dc + .byte $dd + .byte $de + .byte $df + .byte $e0 + .byte $e1 + .byte $e2 + .byte $e3 + .byte $e4 + .byte $e5 + .byte $e6 + .byte $e7 + .byte $e8 + .byte $e9 + .byte $ea + .byte $eb + .byte $ec + .byte $ed + .byte $ee + .byte $ef + .byte $f0 + .byte $f1 + .byte $f2 + .byte $f3 + .byte $f4 + .byte $f5 + .byte $f6 + .byte $f7 + .byte $f8 + .byte $f9 + .byte $fa + .byte $fb + .byte $fc + .byte $fd + .byte $fe + .byte $ff diff --git a/SourceGen/SGTestData/Expected/2017-char-encoding-p_cc65.cfg b/SourceGen/SGTestData/Expected/2017-char-encoding-p_cc65.cfg new file mode 100644 index 0000000..dae67ee --- /dev/null +++ b/SourceGen/SGTestData/Expected/2017-char-encoding-p_cc65.cfg @@ -0,0 +1,11 @@ +# 6502bench SourceGen generated linker script for 2017-char-encoding-p +MEMORY { + MAIN: file=%O, start=%S, size=65536; +# MEM000: file=%O, start=$1000, size=1093; +} +SEGMENTS { + CODE: load=MAIN, type=rw; +# SEG000: load=MEM000, type=rw; +} +FEATURES {} +SYMBOLS {} diff --git a/SourceGen/SGTestData/Expected/2018-char-encoding-s_64tass.S b/SourceGen/SGTestData/Expected/2018-char-encoding-s_64tass.S new file mode 100644 index 0000000..d440fad --- /dev/null +++ b/SourceGen/SGTestData/Expected/2018-char-encoding-s_64tass.S @@ -0,0 +1,315 @@ +;Project edited to mark some non-ASCII operands as ASCII. + .cpu "65816" + .enc sg_screen + .cdef " ?", $20 + .cdef "@@", $00 + .cdef "AZ", $41 + .cdef "az", $01 + .cdef "[[", $1b + .cdef "]]", $1d +* = $1000 + .as + .xs + clc + xce + sep #$30 + lda #$41 + lda #$c1 + lda #$c1 + lda #'A' + ldx #$61 + ldx #$e1 + ldx #$41 + ldx #'a' + lda #$7f + lda #$7f + lda #$7f + lda #$7f + lda #$0d + rep #$30 + .al + .xl + lda #$42 + lda #$c2 + lda #$c2 + lda #'B' + sep #$30 + .as + .xs + rts + + .byte $43 + .byte $c3 + .byte $c3 + .byte 'C' + .word $64 + .word $e4 + .word $44 + .word 'd' + .byte $00,$45 + .byte $00,$c5 + .byte $00,$c5 + .byte $00,$45 + .byte $80 + .byte $6c,$6f,$77,$20,$41,$53,$43,$49,$49,$20,$73,$74,$72 + .byte $e8,$e9,$e7,$e8,$a0,$c1,$d3,$c3,$c9,$c9,$a0,$f3,$f4,$f2 + .byte $80 + .byte $d0,$c5,$d4,$d3,$c3,$c9,$c9,$20,$53,$54,$52 + .byte $80 + .text "Screen Code str" + .byte $82 + .byte $07,$4c,$6f,$77,$20,$41,$53,$43,$49,$49,$20,$43,$52,$4c,$46,$0d + .byte $0a + .byte $82 + .byte $87,$c8,$e9,$e7,$e8,$a0,$c1,$d3,$c3,$c9,$c9,$a0,$c3,$d2,$cc,$c6 + .byte $8d,$8a + .byte $82 + .byte $93,$d0,$c5,$d4,$d3,$c3,$c9,$c9,$20,$57,$49,$54,$48,$20,$96,$43 + .byte $4f,$4e,$54,$52,$4f,$4c,$05,$20,$43,$4f,$44,$45,$53,$0d + .byte $83 + .byte $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2a,$2b,$2c,$2d,$2e,$2f + .byte $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3a,$3b,$3c,$3d,$3e,$3f + .byte $40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4a,$4b,$4c,$4d,$4e,$4f + .byte $50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5a,$5b,$5c,$5d,$5e,$5f + .byte $60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6a,$6b,$6c,$6d,$6e,$6f + .byte $70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$7a,$7b,$7c,$7d,$7e + .byte $83 + .byte $a0,$a1,$a2,$a3,$a4,$a5,$a6,$a7,$a8,$a9,$aa,$ab,$ac,$ad,$ae,$af + .byte $b0,$b1,$b2,$b3,$b4,$b5,$b6,$b7,$b8,$b9,$ba,$bb,$bc,$bd,$be,$bf + .byte $c0,$c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8,$c9,$ca,$cb,$cc,$cd,$ce,$cf + .byte $d0,$d1,$d2,$d3,$d4,$d5,$d6,$d7,$d8,$d9,$da,$db,$dc,$dd,$de,$df + .byte $e0,$e1,$e2,$e3,$e4,$e5,$e6,$e7,$e8,$e9,$ea,$eb,$ec,$ed,$ee,$ef + .byte $f0,$f1,$f2,$f3,$f4,$f5,$f6,$f7,$f8,$f9,$fa,$fb,$fc,$fd,$fe + .byte $83 + .byte $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2a,$2b,$2c,$2d,$2e,$2f + .byte $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3a,$3b,$3c,$3d,$3e,$3f + .byte $40,$c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8,$c9,$ca,$cb,$cc,$cd,$ce,$cf + .byte $d0,$d1,$d2,$d3,$d4,$d5,$d6,$d7,$d8,$d9,$da,$5b + .byte $5c + .byte $5d + .byte $5e + .byte $5f + .byte $60 + .byte $41,$42,$43,$44,$45,$46,$47,$48,$49,$4a,$4b,$4c,$4d,$4e,$4f,$50 + .byte $51,$52,$53,$54,$55,$56,$57,$58,$59,$5a + .byte $7b + .byte $7c + .byte $7d + .byte $7e + .byte $83 + .text " !",$22,"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW" + .text "XYZ[" + .byte $1c + .byte ']' + .byte $1e + .byte $1f + .byte $40 + .text "abcdefghijklmnopqrstuvwxyz" + .byte $7b + .byte $7c + .byte $7d + .byte $7e + .byte $84 + .byte $c9,$c9,$c3,$d3,$d4,$c5,$d0,$20,$45,$53,$52,$45,$56,$45,$52 + .byte $84 + .byte $4e,$55,$4c,$4c,$20,$54,$45,$52,$4d,$20,$d0,$c5,$d4,$d3,$c3,$c9 + .byte $c9,$00 + .byte $84 + .byte $d4,$48,$49,$53,$20,$4e,$55,$4c,$4c,$2d,$54,$45,$52,$4d,$49,$4e + .byte $41,$54,$45,$44,$20,$53,$54,$52,$49,$4e,$47,$20,$49,$53,$20,$54 + .byte $4f,$4f,$20,$4c,$4f,$4e,$47,$20,$54,$4f,$20,$46,$49,$54,$20,$4f + .byte $4e,$20,$41,$20,$53,$49,$4e,$47,$4c,$45,$20,$4c,$49,$4e,$45,$2c + .byte $20,$41,$4e,$44,$20,$57,$49,$4c,$4c,$20,$42,$45,$20,$53,$50,$4c + .byte $49,$54,$2e,$00 + .byte $84 + .byte $13,$d0,$c5,$d4,$d3,$c3,$c9,$c9,$20,$57,$49,$54,$48,$20,$4c,$45 + .byte $4e,$47,$54,$48 + .byte $84 + .byte $14,$00,$d0,$c5,$d4,$d3,$c3,$c9,$c9,$20,$57,$49,$54,$48,$20,$4c + .byte $45,$4e,$47,$54,$48,$32 + .byte $84 + .byte $42,$41,$44,$20,$44,$43,$c9 + .byte $84 + .text "edoC neercS esrever" + .byte $84 + .ptext "Screen Code with length" + .byte $84 + .text $18,$00,"Screen Code with length2" + .byte $84 + .shift "Screen Code DCI" + .byte $84 + .byte $85 +;$00-ff block + .text "@abcdefghijklmnopqrstuvwxyz[" + .byte $1c + .byte $1d + .byte $1e + .byte $1f + .text " !",$22,"#$%&'()*+,-./0123456789:;<=>?" + .byte $40 + .text "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + .byte $5b + .byte $5c + .byte $5d + .byte $5e + .byte $5f + .byte $60 + .byte $61 + .byte $62 + .byte $63 + .byte $64 + .byte $65 + .byte $66 + .byte $67 + .byte $68 + .byte $69 + .byte $6a + .byte $6b + .byte $6c + .byte $6d + .byte $6e + .byte $6f + .byte $70 + .byte $71 + .byte $72 + .byte $73 + .byte $74 + .byte $75 + .byte $76 + .byte $77 + .byte $78 + .byte $79 + .byte $7a + .byte $7b + .byte $7c + .byte $7d + .byte $7e + .byte $7f + .byte $80 + .byte $81 + .byte $82 + .byte $83 + .byte $84 + .byte $85 + .byte $86 + .byte $87 + .byte $88 + .byte $89 + .byte $8a + .byte $8b + .byte $8c + .byte $8d + .byte $8e + .byte $8f + .byte $90 + .byte $91 + .byte $92 + .byte $93 + .byte $94 + .byte $95 + .byte $96 + .byte $97 + .byte $98 + .byte $99 + .byte $9a + .byte $9b + .byte $9c + .byte $9d + .byte $9e + .byte $9f + .byte $a0 + .byte $a1 + .byte $a2 + .byte $a3 + .byte $a4 + .byte $a5 + .byte $a6 + .byte $a7 + .byte $a8 + .byte $a9 + .byte $aa + .byte $ab + .byte $ac + .byte $ad + .byte $ae + .byte $af + .byte $b0 + .byte $b1 + .byte $b2 + .byte $b3 + .byte $b4 + .byte $b5 + .byte $b6 + .byte $b7 + .byte $b8 + .byte $b9 + .byte $ba + .byte $bb + .byte $bc + .byte $bd + .byte $be + .byte $bf + .byte $c0 + .byte $c1 + .byte $c2 + .byte $c3 + .byte $c4 + .byte $c5 + .byte $c6 + .byte $c7 + .byte $c8 + .byte $c9 + .byte $ca + .byte $cb + .byte $cc + .byte $cd + .byte $ce + .byte $cf + .byte $d0 + .byte $d1 + .byte $d2 + .byte $d3 + .byte $d4 + .byte $d5 + .byte $d6 + .byte $d7 + .byte $d8 + .byte $d9 + .byte $da + .byte $db + .byte $dc + .byte $dd + .byte $de + .byte $df + .byte $e0 + .byte $e1 + .byte $e2 + .byte $e3 + .byte $e4 + .byte $e5 + .byte $e6 + .byte $e7 + .byte $e8 + .byte $e9 + .byte $ea + .byte $eb + .byte $ec + .byte $ed + .byte $ee + .byte $ef + .byte $f0 + .byte $f1 + .byte $f2 + .byte $f3 + .byte $f4 + .byte $f5 + .byte $f6 + .byte $f7 + .byte $f8 + .byte $f9 + .byte $fa + .byte $fb + .byte $fc + .byte $fd + .byte $fe + .byte $ff diff --git a/SourceGen/SGTestData/Expected/2018-char-encoding-s_Merlin32.S b/SourceGen/SGTestData/Expected/2018-char-encoding-s_Merlin32.S new file mode 100644 index 0000000..4024bc4 --- /dev/null +++ b/SourceGen/SGTestData/Expected/2018-char-encoding-s_Merlin32.S @@ -0,0 +1,283 @@ +;Project edited to mark some non-ASCII operands as ASCII. + org $1000 + clc + xce + sep #$30 + lda #'A' + lda #"A" + lda #$c1 + lda #$41 + ldx #'a' + ldx #"a" + ldx #$41 + ldx #$01 + lda #$7f + lda #$7f + lda #$7f + lda #$7f + lda #$0d + rep #$30 + mx %00 + lda #'B' + lda #"B" + lda #$c2 + lda #$42 + sep #$30 + mx %11 + rts + + dfb 'C' + dfb "C" + dfb $c3 + dfb $43 + dw 'd' + dw "d" + dw $44 + dw $04 + ddb 'E' + ddb "E" + ddb $c5 + ddb $45 + dfb $80 + asc 'low ASCII str' + asc "high ASCII str" + dfb $80 + hex d0c5d4d3c3c9c920535452 + dfb $80 + hex 53031205050e20430f040520131412 + dfb $82 + asc 07,'Low ASCII CRLF',0d0a + dfb $82 + asc 87,"High ASCII CRLF",8d8a + dfb $82 + hex 93d0c5d4d3c3c9c920574954482096434f4e54524f4c0520434f4445530d + dfb $83 + asc ' !"#$%&',27,'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX' + asc 'YZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' + dfb $83 + asc " !",a2,"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX" + asc "YZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" + dfb $83 + hex 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f + hex 40c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9da5b + dfb $5c + dfb $5d + dfb $5e + dfb $5f + dfb $60 + hex 4142434445464748494a4b4c4d4e4f505152535455565758595a + dfb $7b + dfb $7c + dfb $7d + dfb $7e + dfb $83 + hex 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f + hex 004142434445464748494a4b4c4d4e4f505152535455565758595a1b + dfb $1c + dfb $1d + dfb $1e + dfb $1f + dfb $40 + hex 0102030405060708090a0b0c0d0e0f101112131415161718191a + dfb $7b + dfb $7c + dfb $7d + dfb $7e + dfb $84 + hex c9c9c3d3d4c5d02045535245564552 + dfb $84 + hex 4e554c4c205445524d20d0c5d4d3c3c9c900 + dfb $84 + hex d4484953204e554c4c2d5445524d494e4154454420535452494e472049532054 + hex 4f4f204c4f4e4720544f20464954204f4e20412053494e474c45204c494e452c + hex 20414e442057494c4c2042452053504c49542e00 + dfb $84 + hex 13d0c5d4d3c3c9c92057495448204c454e475448 + dfb $84 + hex 1400d0c5d4d3c3c9c92057495448204c454e47544832 + dfb $84 + hex 424144204443c9 + dfb $84 + hex 05040f43200e05051203532005131205160512 + dfb $84 + hex 1753031205050e20430f04052017091408200c050e071408 + dfb $84 + hex 180053031205050e20430f04052017091408200c050e07140832 + dfb $84 + hex 53031205050e20430f0405204443c9 + dfb $84 + dfb $85 +;$00-ff block + hex 000102030405060708090a0b0c0d0e0f101112131415161718191a1b + dfb $1c + dfb $1d + dfb $1e + dfb $1f + hex 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f + dfb $40 + hex 4142434445464748494a4b4c4d4e4f505152535455565758595a + dfb $5b + dfb $5c + dfb $5d + dfb $5e + dfb $5f + dfb $60 + dfb $61 + dfb $62 + dfb $63 + dfb $64 + dfb $65 + dfb $66 + dfb $67 + dfb $68 + dfb $69 + dfb $6a + dfb $6b + dfb $6c + dfb $6d + dfb $6e + dfb $6f + dfb $70 + dfb $71 + dfb $72 + dfb $73 + dfb $74 + dfb $75 + dfb $76 + dfb $77 + dfb $78 + dfb $79 + dfb $7a + dfb $7b + dfb $7c + dfb $7d + dfb $7e + dfb $7f + dfb $80 + dfb $81 + dfb $82 + dfb $83 + dfb $84 + dfb $85 + dfb $86 + dfb $87 + dfb $88 + dfb $89 + dfb $8a + dfb $8b + dfb $8c + dfb $8d + dfb $8e + dfb $8f + dfb $90 + dfb $91 + dfb $92 + dfb $93 + dfb $94 + dfb $95 + dfb $96 + dfb $97 + dfb $98 + dfb $99 + dfb $9a + dfb $9b + dfb $9c + dfb $9d + dfb $9e + dfb $9f + dfb $a0 + dfb $a1 + dfb $a2 + dfb $a3 + dfb $a4 + dfb $a5 + dfb $a6 + dfb $a7 + dfb $a8 + dfb $a9 + dfb $aa + dfb $ab + dfb $ac + dfb $ad + dfb $ae + dfb $af + dfb $b0 + dfb $b1 + dfb $b2 + dfb $b3 + dfb $b4 + dfb $b5 + dfb $b6 + dfb $b7 + dfb $b8 + dfb $b9 + dfb $ba + dfb $bb + dfb $bc + dfb $bd + dfb $be + dfb $bf + dfb $c0 + dfb $c1 + dfb $c2 + dfb $c3 + dfb $c4 + dfb $c5 + dfb $c6 + dfb $c7 + dfb $c8 + dfb $c9 + dfb $ca + dfb $cb + dfb $cc + dfb $cd + dfb $ce + dfb $cf + dfb $d0 + dfb $d1 + dfb $d2 + dfb $d3 + dfb $d4 + dfb $d5 + dfb $d6 + dfb $d7 + dfb $d8 + dfb $d9 + dfb $da + dfb $db + dfb $dc + dfb $dd + dfb $de + dfb $df + dfb $e0 + dfb $e1 + dfb $e2 + dfb $e3 + dfb $e4 + dfb $e5 + dfb $e6 + dfb $e7 + dfb $e8 + dfb $e9 + dfb $ea + dfb $eb + dfb $ec + dfb $ed + dfb $ee + dfb $ef + dfb $f0 + dfb $f1 + dfb $f2 + dfb $f3 + dfb $f4 + dfb $f5 + dfb $f6 + dfb $f7 + dfb $f8 + dfb $f9 + dfb $fa + dfb $fb + dfb $fc + dfb $fd + dfb $fe + dfb $ff diff --git a/SourceGen/SGTestData/Expected/2018-char-encoding-s_acme.S b/SourceGen/SGTestData/Expected/2018-char-encoding-s_acme.S new file mode 100644 index 0000000..350728b --- /dev/null +++ b/SourceGen/SGTestData/Expected/2018-char-encoding-s_acme.S @@ -0,0 +1,288 @@ +;Project edited to mark some non-ASCII operands as ASCII. + !cpu 65816 +* = $1000 + !as + !rs + clc + xce + sep #$30 + lda #'A' + lda #'A' | $80 + lda #$c1 + lda #$41 + ldx #'a' + ldx #'a' | $80 + ldx #$41 + ldx #$01 + lda #$7f + lda #$7f + lda #$7f + lda #$7f + lda #$0d + rep #$30 + !al + !rl + lda #'B' + lda #'B' | $80 + lda #$c2 + lda #$42 + sep #$30 + !as + !rs + rts + + !byte 'C' + !byte 'C' | $80 + !byte $c3 + !byte $43 + !word 'd' + !word 'd' | $80 + !word $44 + !word $04 + !byte $00,$45 + !byte $00,$c5 + !byte $00,$c5 + !byte $00,$45 + !byte $80 + !text "low ASCII str" + !hex e8e9e7e8a0c1d3c3c9c9a0f3f4f2 + !byte $80 + !pet "PETSCII str" + !byte $80 + !scr "Screen Code str" + !byte $82 + !text $07,"Low ASCII CRLF",$0d,$0a + !byte $82 + !hex 87c8e9e7e8a0c1d3c3c9c9a0c3d2ccc68d8a + !byte $82 + !pet $93,"PETSCII with ",$96,"control",$05," codes",$0d + !byte $83 + !text " !",$22,"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW" + !text "XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" + !byte $83 + !hex a0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf + !hex c0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf + !hex e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfe + !byte $83 + !pet " !",$22,"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW" + !pet "XYZ[" + !byte $5c + !byte $5d + !byte $5e + !byte $5f + !byte $60 + !pet "abcdefghijklmnopqrstuvwxyz" + !byte $7b + !byte $7c + !byte $7d + !byte $7e + !byte $83 + !scr " !",$22,"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW" + !scr "XYZ[" + !byte $1c + !byte $1d + !byte $1e + !byte $1f + !byte $40 + !scr "abcdefghijklmnopqrstuvwxyz" + !byte $7b + !byte $7c + !byte $7d + !byte $7e + !byte $84 + !pet "IICSTEP esrever" + !byte $84 + !pet "null term PETSCII",$00 + !byte $84 + !pet "This null-terminated string is too long to fit on a single lin" + !pet "e, and will be split.",$00 + !byte $84 + !pet $13,"PETSCII with length" + !byte $84 + !pet $14,$00,"PETSCII with length2" + !byte $84 + !pet "bad dcI" + !byte $84 + !scr "edoC neercS esrever" + !byte $84 + !scr $17,"Screen Code with length" + !byte $84 + !scr $18,$00,"Screen Code with length2" + !byte $84 + !scr "Screen Code DC",$c9 + !byte $84 + !byte $85 +;$00-ff block + !scr "@abcdefghijklmnopqrstuvwxyz[" + !byte $1c + !byte $1d + !byte $1e + !byte $1f + !scr " !",$22,"#$%&'()*+,-./0123456789:;<=>?" + !byte $40 + !scr "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + !byte $5b + !byte $5c + !byte $5d + !byte $5e + !byte $5f + !byte $60 + !byte $61 + !byte $62 + !byte $63 + !byte $64 + !byte $65 + !byte $66 + !byte $67 + !byte $68 + !byte $69 + !byte $6a + !byte $6b + !byte $6c + !byte $6d + !byte $6e + !byte $6f + !byte $70 + !byte $71 + !byte $72 + !byte $73 + !byte $74 + !byte $75 + !byte $76 + !byte $77 + !byte $78 + !byte $79 + !byte $7a + !byte $7b + !byte $7c + !byte $7d + !byte $7e + !byte $7f + !byte $80 + !byte $81 + !byte $82 + !byte $83 + !byte $84 + !byte $85 + !byte $86 + !byte $87 + !byte $88 + !byte $89 + !byte $8a + !byte $8b + !byte $8c + !byte $8d + !byte $8e + !byte $8f + !byte $90 + !byte $91 + !byte $92 + !byte $93 + !byte $94 + !byte $95 + !byte $96 + !byte $97 + !byte $98 + !byte $99 + !byte $9a + !byte $9b + !byte $9c + !byte $9d + !byte $9e + !byte $9f + !byte $a0 + !byte $a1 + !byte $a2 + !byte $a3 + !byte $a4 + !byte $a5 + !byte $a6 + !byte $a7 + !byte $a8 + !byte $a9 + !byte $aa + !byte $ab + !byte $ac + !byte $ad + !byte $ae + !byte $af + !byte $b0 + !byte $b1 + !byte $b2 + !byte $b3 + !byte $b4 + !byte $b5 + !byte $b6 + !byte $b7 + !byte $b8 + !byte $b9 + !byte $ba + !byte $bb + !byte $bc + !byte $bd + !byte $be + !byte $bf + !byte $c0 + !byte $c1 + !byte $c2 + !byte $c3 + !byte $c4 + !byte $c5 + !byte $c6 + !byte $c7 + !byte $c8 + !byte $c9 + !byte $ca + !byte $cb + !byte $cc + !byte $cd + !byte $ce + !byte $cf + !byte $d0 + !byte $d1 + !byte $d2 + !byte $d3 + !byte $d4 + !byte $d5 + !byte $d6 + !byte $d7 + !byte $d8 + !byte $d9 + !byte $da + !byte $db + !byte $dc + !byte $dd + !byte $de + !byte $df + !byte $e0 + !byte $e1 + !byte $e2 + !byte $e3 + !byte $e4 + !byte $e5 + !byte $e6 + !byte $e7 + !byte $e8 + !byte $e9 + !byte $ea + !byte $eb + !byte $ec + !byte $ed + !byte $ee + !byte $ef + !byte $f0 + !byte $f1 + !byte $f2 + !byte $f3 + !byte $f4 + !byte $f5 + !byte $f6 + !byte $f7 + !byte $f8 + !byte $f9 + !byte $fa + !byte $fb + !byte $fc + !byte $fd + !byte $fe + !byte $ff diff --git a/SourceGen/SGTestData/Expected/2018-char-encoding-s_cc65.S b/SourceGen/SGTestData/Expected/2018-char-encoding-s_cc65.S new file mode 100644 index 0000000..018a27b --- /dev/null +++ b/SourceGen/SGTestData/Expected/2018-char-encoding-s_cc65.S @@ -0,0 +1,318 @@ +;Project edited to mark some non-ASCII operands as ASCII. + .setcpu "65816" +; .segment "SEG000" + .org $1000 + .a8 + .i8 + clc + xce + sep #$30 + lda #'A' + lda #'A' | $80 + lda #$c1 + lda #$41 + ldx #'a' + ldx #'a' | $80 + ldx #$41 + ldx #$01 + lda #$7f + lda #$7f + lda #$7f + lda #$7f + lda #$0d + rep #$30 + .a16 + .i16 + lda #'B' + lda #'B' | $80 + lda #$c2 + lda #$42 + sep #$30 + .a8 + .i8 + rts + + .byte 'C' + .byte 'C' | $80 + .byte $c3 + .byte $43 + .word 'd' + .word 'd' | $80 + .word $44 + .word $04 + .dbyt 'E' + .dbyt 'E' | $80 + .dbyt $c5 + .dbyt $45 + .byte $80 + .byte "low ASCII str" +.macro HiAscii Arg + .repeat .strlen(Arg), I + .byte .strat(Arg, I) | $80 + .endrep +.endmacro + HiAscii "high ASCII str" + .byte $80 + .byte $d0,$c5,$d4,$d3,$c3,$c9,$c9,$20,$53,$54,$52 + .byte $80 + .byte $53,$03,$12,$05,$05,$0e,$20,$43,$0f,$04,$05,$20,$13,$14,$12 + .byte $82 + .byte $07,"Low ASCII CRLF",$0d,$0a + .byte $82 + .byte $87,$c8,$e9,$e7,$e8,$a0,$c1,$d3,$c3,$c9,$c9,$a0,$c3,$d2,$cc,$c6 + .byte $8d,$8a + .byte $82 + .byte $93,$d0,$c5,$d4,$d3,$c3,$c9,$c9,$20,$57,$49,$54,$48,$20,$96,$43 + .byte $4f,$4e,$54,$52,$4f,$4c,$05,$20,$43,$4f,$44,$45,$53,$0d + .byte $83 + .byte " !",$22,"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW" + .byte "XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" + .byte $83 + .byte $a0,$a1,$a2,$a3,$a4,$a5,$a6,$a7,$a8,$a9,$aa,$ab,$ac,$ad,$ae,$af + .byte $b0,$b1,$b2,$b3,$b4,$b5,$b6,$b7,$b8,$b9,$ba,$bb,$bc,$bd,$be,$bf + .byte $c0,$c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8,$c9,$ca,$cb,$cc,$cd,$ce,$cf + .byte $d0,$d1,$d2,$d3,$d4,$d5,$d6,$d7,$d8,$d9,$da,$db,$dc,$dd,$de,$df + .byte $e0,$e1,$e2,$e3,$e4,$e5,$e6,$e7,$e8,$e9,$ea,$eb,$ec,$ed,$ee,$ef + .byte $f0,$f1,$f2,$f3,$f4,$f5,$f6,$f7,$f8,$f9,$fa,$fb,$fc,$fd,$fe + .byte $83 + .byte $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2a,$2b,$2c,$2d,$2e,$2f + .byte $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3a,$3b,$3c,$3d,$3e,$3f + .byte $40,$c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8,$c9,$ca,$cb,$cc,$cd,$ce,$cf + .byte $d0,$d1,$d2,$d3,$d4,$d5,$d6,$d7,$d8,$d9,$da,$5b + .byte $5c + .byte $5d + .byte $5e + .byte $5f + .byte $60 + .byte $41,$42,$43,$44,$45,$46,$47,$48,$49,$4a,$4b,$4c,$4d,$4e,$4f,$50 + .byte $51,$52,$53,$54,$55,$56,$57,$58,$59,$5a + .byte $7b + .byte $7c + .byte $7d + .byte $7e + .byte $83 + .byte $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2a,$2b,$2c,$2d,$2e,$2f + .byte $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3a,$3b,$3c,$3d,$3e,$3f + .byte $00,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4a,$4b,$4c,$4d,$4e,$4f + .byte $50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5a,$1b + .byte $1c + .byte $1d + .byte $1e + .byte $1f + .byte $40 + .byte $01,$02,$03,$04,$05,$06,$07,$08,$09,$0a,$0b,$0c,$0d,$0e,$0f,$10 + .byte $11,$12,$13,$14,$15,$16,$17,$18,$19,$1a + .byte $7b + .byte $7c + .byte $7d + .byte $7e + .byte $84 + .byte $c9,$c9,$c3,$d3,$d4,$c5,$d0,$20,$45,$53,$52,$45,$56,$45,$52 + .byte $84 + .byte $4e,$55,$4c,$4c,$20,$54,$45,$52,$4d,$20,$d0,$c5,$d4,$d3,$c3,$c9 + .byte $c9,$00 + .byte $84 + .byte $d4,$48,$49,$53,$20,$4e,$55,$4c,$4c,$2d,$54,$45,$52,$4d,$49,$4e + .byte $41,$54,$45,$44,$20,$53,$54,$52,$49,$4e,$47,$20,$49,$53,$20,$54 + .byte $4f,$4f,$20,$4c,$4f,$4e,$47,$20,$54,$4f,$20,$46,$49,$54,$20,$4f + .byte $4e,$20,$41,$20,$53,$49,$4e,$47,$4c,$45,$20,$4c,$49,$4e,$45,$2c + .byte $20,$41,$4e,$44,$20,$57,$49,$4c,$4c,$20,$42,$45,$20,$53,$50,$4c + .byte $49,$54,$2e,$00 + .byte $84 + .byte $13,$d0,$c5,$d4,$d3,$c3,$c9,$c9,$20,$57,$49,$54,$48,$20,$4c,$45 + .byte $4e,$47,$54,$48 + .byte $84 + .byte $14,$00,$d0,$c5,$d4,$d3,$c3,$c9,$c9,$20,$57,$49,$54,$48,$20,$4c + .byte $45,$4e,$47,$54,$48,$32 + .byte $84 + .byte $42,$41,$44,$20,$44,$43,$c9 + .byte $84 + .byte $05,$04,$0f,$43,$20,$0e,$05,$05,$12,$03,$53,$20,$05,$13,$12,$05 + .byte $16,$05,$12 + .byte $84 + .byte $17,$53,$03,$12,$05,$05,$0e,$20,$43,$0f,$04,$05,$20,$17,$09,$14 + .byte $08,$20,$0c,$05,$0e,$07,$14,$08 + .byte $84 + .byte $18,$00,$53,$03,$12,$05,$05,$0e,$20,$43,$0f,$04,$05,$20,$17,$09 + .byte $14,$08,$20,$0c,$05,$0e,$07,$14,$08,$32 + .byte $84 + .byte $53,$03,$12,$05,$05,$0e,$20,$43,$0f,$04,$05,$20,$44,$43,$c9 + .byte $84 + .byte $85 +;$00-ff block + .byte $00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$0a,$0b,$0c,$0d,$0e,$0f + .byte $10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$1a,$1b + .byte $1c + .byte $1d + .byte $1e + .byte $1f + .byte $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2a,$2b,$2c,$2d,$2e,$2f + .byte $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3a,$3b,$3c,$3d,$3e,$3f + .byte $40 + .byte $41,$42,$43,$44,$45,$46,$47,$48,$49,$4a,$4b,$4c,$4d,$4e,$4f,$50 + .byte $51,$52,$53,$54,$55,$56,$57,$58,$59,$5a + .byte $5b + .byte $5c + .byte $5d + .byte $5e + .byte $5f + .byte $60 + .byte $61 + .byte $62 + .byte $63 + .byte $64 + .byte $65 + .byte $66 + .byte $67 + .byte $68 + .byte $69 + .byte $6a + .byte $6b + .byte $6c + .byte $6d + .byte $6e + .byte $6f + .byte $70 + .byte $71 + .byte $72 + .byte $73 + .byte $74 + .byte $75 + .byte $76 + .byte $77 + .byte $78 + .byte $79 + .byte $7a + .byte $7b + .byte $7c + .byte $7d + .byte $7e + .byte $7f + .byte $80 + .byte $81 + .byte $82 + .byte $83 + .byte $84 + .byte $85 + .byte $86 + .byte $87 + .byte $88 + .byte $89 + .byte $8a + .byte $8b + .byte $8c + .byte $8d + .byte $8e + .byte $8f + .byte $90 + .byte $91 + .byte $92 + .byte $93 + .byte $94 + .byte $95 + .byte $96 + .byte $97 + .byte $98 + .byte $99 + .byte $9a + .byte $9b + .byte $9c + .byte $9d + .byte $9e + .byte $9f + .byte $a0 + .byte $a1 + .byte $a2 + .byte $a3 + .byte $a4 + .byte $a5 + .byte $a6 + .byte $a7 + .byte $a8 + .byte $a9 + .byte $aa + .byte $ab + .byte $ac + .byte $ad + .byte $ae + .byte $af + .byte $b0 + .byte $b1 + .byte $b2 + .byte $b3 + .byte $b4 + .byte $b5 + .byte $b6 + .byte $b7 + .byte $b8 + .byte $b9 + .byte $ba + .byte $bb + .byte $bc + .byte $bd + .byte $be + .byte $bf + .byte $c0 + .byte $c1 + .byte $c2 + .byte $c3 + .byte $c4 + .byte $c5 + .byte $c6 + .byte $c7 + .byte $c8 + .byte $c9 + .byte $ca + .byte $cb + .byte $cc + .byte $cd + .byte $ce + .byte $cf + .byte $d0 + .byte $d1 + .byte $d2 + .byte $d3 + .byte $d4 + .byte $d5 + .byte $d6 + .byte $d7 + .byte $d8 + .byte $d9 + .byte $da + .byte $db + .byte $dc + .byte $dd + .byte $de + .byte $df + .byte $e0 + .byte $e1 + .byte $e2 + .byte $e3 + .byte $e4 + .byte $e5 + .byte $e6 + .byte $e7 + .byte $e8 + .byte $e9 + .byte $ea + .byte $eb + .byte $ec + .byte $ed + .byte $ee + .byte $ef + .byte $f0 + .byte $f1 + .byte $f2 + .byte $f3 + .byte $f4 + .byte $f5 + .byte $f6 + .byte $f7 + .byte $f8 + .byte $f9 + .byte $fa + .byte $fb + .byte $fc + .byte $fd + .byte $fe + .byte $ff diff --git a/SourceGen/SGTestData/Expected/2018-char-encoding-s_cc65.cfg b/SourceGen/SGTestData/Expected/2018-char-encoding-s_cc65.cfg new file mode 100644 index 0000000..c7552ae --- /dev/null +++ b/SourceGen/SGTestData/Expected/2018-char-encoding-s_cc65.cfg @@ -0,0 +1,11 @@ +# 6502bench SourceGen generated linker script for 2018-char-encoding-s +MEMORY { + MAIN: file=%O, start=%S, size=65536; +# MEM000: file=%O, start=$1000, size=1093; +} +SEGMENTS { + CODE: load=MAIN, type=rw; +# SEG000: load=MEM000, type=rw; +} +FEATURES {} +SYMBOLS {} diff --git a/SourceGen/SGTestData/Source/2016-char-encoding.S b/SourceGen/SGTestData/Source/2016-char-encoding.S index 64b2e93..cca8e36 100644 --- a/SourceGen/SGTestData/Source/2016-char-encoding.S +++ b/SourceGen/SGTestData/Source/2016-char-encoding.S @@ -106,8 +106,8 @@ !scr "`abcdefghijklmnopqrstuvwxyz{|}~" ; The 2005 test exercises low/high ASCII strings, so no need to do that here. -; Do a quick test with C64 characters. Note Screen Code can't be null-terminated, -; and PETSCII can't be DCI. +; Do a quick test with C64 characters. Note Screen Code can't be null-terminated +; by definition, and PETSCII can't effectively be DCI. !byte $84 !pet "IICSTEP esrever" ;format as StringReverse !byte $84 @@ -118,6 +118,8 @@ !pet 19,"PETSCII with length" ;format as StringL8 !byte $84 !pet 20,0,"PETSCII with length2" ;format as StringL16 + !byte $84 + !pet "bad dcI" ;EDIT: format as StringDCI !byte $84 !scr "edoC neercS esrever" ;format as StringReverse @@ -126,7 +128,7 @@ !byte $84 !scr 24,0,"Screen Code with length2" ;format as StringL16 !byte $84 - !scr "Screen Code DC",$c9 ;format as DCI + !scr "Screen Code DC",$c9 ;format as StringDCI !byte $84 !byte $85