[bugfix] 优化字体

This commit is contained in:
lichx 2024-11-23 09:47:32 +08:00
parent 930e6befeb
commit 2b86f5fe01
1 changed files with 11 additions and 10 deletions

View File

@ -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]);
});