From 32d6d849ea1a992ab799a88a84692e36da36c6b3 Mon Sep 17 00:00:00 2001 From: Andy McFadden Date: Wed, 1 Jan 2020 17:42:21 -0800 Subject: [PATCH] Tweak Merlin DS output The default fill value is $00. Don't specify it explicitly when we don't have to. --- SourceGen/AsmGen/AsmMerlin32.cs | 18 +++++++++++++++--- .../Expected/1004-data-recognition_Merlin32.S | 6 +++--- .../Expected/2004-numeric-types_Merlin32.S | 14 +++++++------- .../Expected/2008-address-changes_Merlin32.S | 4 ++-- .../Expected/2010-target-adjustment_Merlin32.S | 2 +- .../2020-cycle-counts-65816_Merlin32.S | 2 +- 6 files changed, 29 insertions(+), 17 deletions(-) diff --git a/SourceGen/AsmGen/AsmMerlin32.cs b/SourceGen/AsmGen/AsmMerlin32.cs index 92fbcbe..f8c98fc 100644 --- a/SourceGen/AsmGen/AsmMerlin32.cs +++ b/SourceGen/AsmGen/AsmMerlin32.cs @@ -264,7 +264,11 @@ namespace SourceGen.AsmGen { break; case FormatDescriptor.Type.Fill: opcodeStr = sDataOpNames.Fill; - operandStr = length + "," + formatter.FormatHexValue(data[offset], 2); + if (data[offset] == 0) { + operandStr = length.ToString(); + } else { + operandStr = length + "," + formatter.FormatHexValue(data[offset], 2); + } break; case FormatDescriptor.Type.Dense: multiLine = true; @@ -278,9 +282,17 @@ namespace SourceGen.AsmGen { if (dfd.FormatSubType == FormatDescriptor.SubType.Align256 && GenCommon.CheckJunkAlign(offset, dfd, Project.AddrMap)) { // special syntax for page alignment - operandStr = "\\," + formatter.FormatHexValue(fillVal, 2); + if (fillVal == 0) { + operandStr = "\\"; + } else { + operandStr = "\\," + formatter.FormatHexValue(fillVal, 2); + } } else { - operandStr = length + "," + formatter.FormatHexValue(fillVal, 2); + if (fillVal == 0) { + operandStr = length.ToString(); + } else { + operandStr = length + "," + formatter.FormatHexValue(fillVal, 2); + } } } else { // treat same as Dense diff --git a/SourceGen/SGTestData/Expected/1004-data-recognition_Merlin32.S b/SourceGen/SGTestData/Expected/1004-data-recognition_Merlin32.S index 42fcc7f..92b11e7 100644 --- a/SourceGen/SGTestData/Expected/1004-data-recognition_Merlin32.S +++ b/SourceGen/SGTestData/Expected/1004-data-recognition_Merlin32.S @@ -24,9 +24,9 @@ dfb $00 dfb $00 dfb $81 - ds 5,$00 + ds 5 dfb $81 - ds 8,$00 -L10AC ds 8,$00 + ds 8 +L10AC ds 8 ds 8,$82 L10BC ds 8,$82 diff --git a/SourceGen/SGTestData/Expected/2004-numeric-types_Merlin32.S b/SourceGen/SGTestData/Expected/2004-numeric-types_Merlin32.S index 02d6d75..ef6bf4d 100644 --- a/SourceGen/SGTestData/Expected/2004-numeric-types_Merlin32.S +++ b/SourceGen/SGTestData/Expected/2004-numeric-types_Merlin32.S @@ -29,15 +29,15 @@ ddb $1122 dfb $11,$22,$33 dfb $11,$22,$33,$44 - ds 2,$00 + ds 2 dfb $80 - ds 3,$00 + ds 3 dfb $80 - ds 4,$00 + ds 4 dfb $80 - ds 5,$00 + ds 5 dfb $80 - ds 256,$00 + ds 256 dfb $80 ds 257,$cc hex 11 @@ -49,7 +49,7 @@ LABEL hex 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff dfb $80 ds \,$aa dfb $81 - ds 63,$00 + ds 63 dfb $81 ds 31,$ab hex 0000000000000001 @@ -57,7 +57,7 @@ LABEL hex 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff hex 1000000000000000 dfb $81 ds 2,$dd ;incorrect alignment - ds \,$00 + ds \ ds 16,$82 ds 8,$83 org $1428 diff --git a/SourceGen/SGTestData/Expected/2008-address-changes_Merlin32.S b/SourceGen/SGTestData/Expected/2008-address-changes_Merlin32.S index d025eb1..64ac625 100644 --- a/SourceGen/SGTestData/Expected/2008-address-changes_Merlin32.S +++ b/SourceGen/SGTestData/Expected/2008-address-changes_Merlin32.S @@ -63,9 +63,9 @@ L2000 bit L2000 org $2800 dfb $00 dfb $28 - ds 14,$00 + ds 14 org $2820 - ds 18,$00 + ds 18 org $3000 :L3000 bit :L3000 diff --git a/SourceGen/SGTestData/Expected/2010-target-adjustment_Merlin32.S b/SourceGen/SGTestData/Expected/2010-target-adjustment_Merlin32.S index 4907a98..0f78b48 100644 --- a/SourceGen/SGTestData/Expected/2010-target-adjustment_Merlin32.S +++ b/SourceGen/SGTestData/Expected/2010-target-adjustment_Merlin32.S @@ -17,7 +17,7 @@ load11 lda #$11 dw :L1042 dw :L1041 dw :L1042+1 -:fill0 ds 16,$00 +:fill0 ds 16 :L1041 dfb $80 :L1042 lda :predat+2 diff --git a/SourceGen/SGTestData/Expected/2020-cycle-counts-65816_Merlin32.S b/SourceGen/SGTestData/Expected/2020-cycle-counts-65816_Merlin32.S index 03f41a3..d7f71e2 100644 --- a/SourceGen/SGTestData/Expected/2020-cycle-counts-65816_Merlin32.S +++ b/SourceGen/SGTestData/Expected/2020-cycle-counts-65816_Merlin32.S @@ -3,7 +3,7 @@ L10F0 sec ;2 xce ;2 bra :L1108 ;4 crosses page boundary - ds 20,$00 + ds 20 :L1108 bra :L110A ;3