From 2b86f5fe0182717701d9f0bf3d8125f4622e96e3 Mon Sep 17 00:00:00 2001 From: lichx Date: Sat, 23 Nov 2024 09:47:32 +0800 Subject: [PATCH] =?UTF-8?q?[bugfix]=20=E4=BC=98=E5=8C=96=E5=AD=97=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/Complier.ts | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/utils/Complier.ts b/src/utils/Complier.ts index dcdaec0..7a5d92f 100644 --- a/src/utils/Complier.ts +++ b/src/utils/Complier.ts @@ -5,6 +5,7 @@ export class CompileError extends Error { super(message); this.index = index; } + index: number; } @@ -82,8 +83,8 @@ export class Compiler { ["GX", "07"] ]) static font8x8: { [key: string]: number[] } = { - 'A': [0x7E, 0x11, 0x11, 0x7E, 0x11, 0x11, 0x11, 0x00], - 'B': [0x7C, 0x12, 0x12, 0x7C, 0x12, 0x12, 0x7C, 0x00], + 'A': [0x3E, 0x41, 0x41, 0x7F, 0x41, 0x41, 0x41, 0x00], + 'B': [0x7C, 0x42, 0x42, 0x7C, 0x42, 0x42, 0x7C, 0x00], 'C': [0x3E, 0x41, 0x40, 0x40, 0x40, 0x41, 0x3E, 0x00], 'D': [0x7C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x7C, 0x00], 'E': [0x7F, 0x40, 0x40, 0x7C, 0x40, 0x40, 0x7F, 0x00], @@ -97,7 +98,7 @@ export class Compiler { 'M': [0x41, 0x63, 0x55, 0x49, 0x41, 0x41, 0x41, 0x00], 'N': [0x41, 0x61, 0x51, 0x49, 0x45, 0x43, 0x41, 0x00], 'O': [0x3E, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3E, 0x00], - 'P': [0x7E, 0x11, 0x11, 0x7E, 0x40, 0x40, 0x40, 0x00], + 'P': [0x7E, 0x41, 0x41, 0x7E, 0x40, 0x40, 0x40, 0x00], 'Q': [0x3E, 0x41, 0x41, 0x41, 0x45, 0x42, 0x3D, 0x00], 'R': [0x7E, 0x41, 0x41, 0x7E, 0x44, 0x42, 0x41, 0x00], 'S': [0x3E, 0x41, 0x40, 0x3E, 0x01, 0x41, 0x3E, 0x00], @@ -112,7 +113,7 @@ export class Compiler { '1': [0x08, 0x18, 0x28, 0x08, 0x08, 0x08, 0x3E, 0x00], '2': [0x3E, 0x41, 0x01, 0x3E, 0x40, 0x40, 0x7F, 0x00], '3': [0x3E, 0x41, 0x01, 0x1E, 0x01, 0x41, 0x3E, 0x00], - '4': [0x10, 0x30, 0x50, 0x90, 0x7F, 0x10, 0x10, 0x00], + '4': [0x04, 0x0C, 0x14, 0x24, 0x7F, 0x04, 0x04, 0x00], '5': [0x7F, 0x40, 0x7E, 0x01, 0x01, 0x41, 0x3E, 0x00], '6': [0x3E, 0x40, 0x7E, 0x41, 0x41, 0x41, 0x3E, 0x00], '7': [0x7F, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00], @@ -120,8 +121,8 @@ export class Compiler { '9': [0x3E, 0x41, 0x41, 0x3F, 0x01, 0x41, 0x3E, 0x00], '+': [0x00, 0x08, 0x08, 0x7F, 0x08, 0x08, 0x00, 0x00], '-': [0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00], - 'x': [0x00, 0x41, 0x22, 0x14, 0x08, 0x14, 0x22, 0x41], - '/': [0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x00], + '*': [0x00, 0x22, 0x14, 0x08, 0x14, 0x22, 0x00, 0x00], + '/': [0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00], ' ': [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] }; Code: string = ""; @@ -199,11 +200,11 @@ export class Compiler { for (let i = 1; i <= 2; i++) if ((Compiler.Registers.has(mnemonicAndVals[i]))) mnemonicAndVals[i] = Compiler.Registers.get(mnemonicAndVals[i])!; - else if(this.Labels.has(mnemonicAndVals[i])) - mnemonicAndVals[i] = this.Labels.get(mnemonicAndVals[i])!.toString(16).padStart(2,'0'); + else if (this.Labels.has(mnemonicAndVals[i])) + mnemonicAndVals[i] = this.Labels.get(mnemonicAndVals[i])!.toString(16).padStart(2, '0'); else - mnemonicAndVals[i] = parseInt(mnemonicAndVals[i]).toString(16).padStart(2,'0'); - if (mnemonicAndVals[1] === 'NaN'||mnemonicAndVals[2] === 'NaN') + mnemonicAndVals[i] = parseInt(mnemonicAndVals[i]).toString(16).padStart(2, '0'); + if (mnemonicAndVals[1] === 'NaN' || mnemonicAndVals[2] === 'NaN') throw new CompileError("Invalid operand", index); this.PCToMachineCode.set(pc, Compiler.KeyWordsToMachineCode.get(mnemonicAndVals[0])! + mnemonicAndVals[1] + mnemonicAndVals[2]); });