[bugfix] 优化字体
This commit is contained in:
parent
930e6befeb
commit
2b86f5fe01
|
@ -5,6 +5,7 @@ export class CompileError extends Error {
|
||||||
super(message);
|
super(message);
|
||||||
this.index = index;
|
this.index = index;
|
||||||
}
|
}
|
||||||
|
|
||||||
index: number;
|
index: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,8 +83,8 @@ export class Compiler {
|
||||||
["GX", "07"]
|
["GX", "07"]
|
||||||
])
|
])
|
||||||
static font8x8: { [key: string]: number[] } = {
|
static font8x8: { [key: string]: number[] } = {
|
||||||
'A': [0x7E, 0x11, 0x11, 0x7E, 0x11, 0x11, 0x11, 0x00],
|
'A': [0x3E, 0x41, 0x41, 0x7F, 0x41, 0x41, 0x41, 0x00],
|
||||||
'B': [0x7C, 0x12, 0x12, 0x7C, 0x12, 0x12, 0x7C, 0x00],
|
'B': [0x7C, 0x42, 0x42, 0x7C, 0x42, 0x42, 0x7C, 0x00],
|
||||||
'C': [0x3E, 0x41, 0x40, 0x40, 0x40, 0x41, 0x3E, 0x00],
|
'C': [0x3E, 0x41, 0x40, 0x40, 0x40, 0x41, 0x3E, 0x00],
|
||||||
'D': [0x7C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x7C, 0x00],
|
'D': [0x7C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x7C, 0x00],
|
||||||
'E': [0x7F, 0x40, 0x40, 0x7C, 0x40, 0x40, 0x7F, 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],
|
'M': [0x41, 0x63, 0x55, 0x49, 0x41, 0x41, 0x41, 0x00],
|
||||||
'N': [0x41, 0x61, 0x51, 0x49, 0x45, 0x43, 0x41, 0x00],
|
'N': [0x41, 0x61, 0x51, 0x49, 0x45, 0x43, 0x41, 0x00],
|
||||||
'O': [0x3E, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3E, 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],
|
'Q': [0x3E, 0x41, 0x41, 0x41, 0x45, 0x42, 0x3D, 0x00],
|
||||||
'R': [0x7E, 0x41, 0x41, 0x7E, 0x44, 0x42, 0x41, 0x00],
|
'R': [0x7E, 0x41, 0x41, 0x7E, 0x44, 0x42, 0x41, 0x00],
|
||||||
'S': [0x3E, 0x41, 0x40, 0x3E, 0x01, 0x41, 0x3E, 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],
|
'1': [0x08, 0x18, 0x28, 0x08, 0x08, 0x08, 0x3E, 0x00],
|
||||||
'2': [0x3E, 0x41, 0x01, 0x3E, 0x40, 0x40, 0x7F, 0x00],
|
'2': [0x3E, 0x41, 0x01, 0x3E, 0x40, 0x40, 0x7F, 0x00],
|
||||||
'3': [0x3E, 0x41, 0x01, 0x1E, 0x01, 0x41, 0x3E, 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],
|
'5': [0x7F, 0x40, 0x7E, 0x01, 0x01, 0x41, 0x3E, 0x00],
|
||||||
'6': [0x3E, 0x40, 0x7E, 0x41, 0x41, 0x41, 0x3E, 0x00],
|
'6': [0x3E, 0x40, 0x7E, 0x41, 0x41, 0x41, 0x3E, 0x00],
|
||||||
'7': [0x7F, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 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],
|
'9': [0x3E, 0x41, 0x41, 0x3F, 0x01, 0x41, 0x3E, 0x00],
|
||||||
'+': [0x00, 0x08, 0x08, 0x7F, 0x08, 0x08, 0x00, 0x00],
|
'+': [0x00, 0x08, 0x08, 0x7F, 0x08, 0x08, 0x00, 0x00],
|
||||||
'-': [0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00],
|
'-': [0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00],
|
||||||
'x': [0x00, 0x41, 0x22, 0x14, 0x08, 0x14, 0x22, 0x41],
|
'*': [0x00, 0x22, 0x14, 0x08, 0x14, 0x22, 0x00, 0x00],
|
||||||
'/': [0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x00],
|
'/': [0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00],
|
||||||
' ': [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]
|
' ': [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]
|
||||||
};
|
};
|
||||||
Code: string = "";
|
Code: string = "";
|
||||||
|
@ -199,11 +200,11 @@ export class Compiler {
|
||||||
for (let i = 1; i <= 2; i++)
|
for (let i = 1; i <= 2; i++)
|
||||||
if ((Compiler.Registers.has(mnemonicAndVals[i])))
|
if ((Compiler.Registers.has(mnemonicAndVals[i])))
|
||||||
mnemonicAndVals[i] = Compiler.Registers.get(mnemonicAndVals[i])!;
|
mnemonicAndVals[i] = Compiler.Registers.get(mnemonicAndVals[i])!;
|
||||||
else if(this.Labels.has(mnemonicAndVals[i]))
|
else if (this.Labels.has(mnemonicAndVals[i]))
|
||||||
mnemonicAndVals[i] = this.Labels.get(mnemonicAndVals[i])!.toString(16).padStart(2,'0');
|
mnemonicAndVals[i] = this.Labels.get(mnemonicAndVals[i])!.toString(16).padStart(2, '0');
|
||||||
else
|
else
|
||||||
mnemonicAndVals[i] = parseInt(mnemonicAndVals[i]).toString(16).padStart(2,'0');
|
mnemonicAndVals[i] = parseInt(mnemonicAndVals[i]).toString(16).padStart(2, '0');
|
||||||
if (mnemonicAndVals[1] === 'NaN'||mnemonicAndVals[2] === 'NaN')
|
if (mnemonicAndVals[1] === 'NaN' || mnemonicAndVals[2] === 'NaN')
|
||||||
throw new CompileError("Invalid operand", index);
|
throw new CompileError("Invalid operand", index);
|
||||||
this.PCToMachineCode.set(pc, Compiler.KeyWordsToMachineCode.get(mnemonicAndVals[0])! + mnemonicAndVals[1] + mnemonicAndVals[2]);
|
this.PCToMachineCode.set(pc, Compiler.KeyWordsToMachineCode.get(mnemonicAndVals[0])! + mnemonicAndVals[1] + mnemonicAndVals[2]);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue