Add lowercase

This commit is contained in:
dylan 2023-05-03 21:29:11 -07:00
parent ce7da27cc3
commit dca54e76ec
2 changed files with 336 additions and 125 deletions

448
font.ts
View File

@ -16,213 +16,421 @@
// deno-fmt-ignore
export const font: {[key: string]: Array<number>} = {
"a": [
"A": [
0, 1, 1, 1,
0, 1, 0, 1,
0, 1, 1, 1,
0, 1, 0, 1,
0, 1, 0, 1,
0, 0, 0, 0,
0, 1, 1, 1,
0, 1, 0, 1,
0, 1, 1, 1,
0, 1, 0, 1,
0, 1, 0, 1,
],
"b": [
0, 0, 0, 0,
"B": [
0, 1, 1, 1,
0, 1, 0, 1,
0, 1, 1, 0,
0, 1, 0, 1,
0, 1, 1, 1,
],
"c": [
0, 0, 0, 0,
],
"C": [
0, 0, 1, 1,
0, 1, 0, 0,
0, 1, 0, 0,
0, 1, 0, 0,
0, 0, 1, 1,
],
"d": [
0, 0, 0, 0,
],
"D": [
0, 1, 1, 0,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 1, 0,
],
"e": [
0, 0, 0, 0,
],
"E": [
0, 1, 1, 1,
0, 1, 0, 0,
0, 1, 1, 0,
0, 1, 0, 0,
0, 1, 1, 1,
],
"f": [
0, 0, 0, 0,
],
"F": [
0, 1, 1, 1,
0, 1, 0, 0,
0, 1, 1, 0,
0, 1, 0, 0,
0, 1, 0, 0,
],
"g": [
0, 0, 0, 0,
],
"G": [
0, 0, 1, 1,
0, 1, 0, 0,
0, 1, 0, 1,
0, 1, 0, 1,
0, 0, 1, 1,
],
"h": [
0, 0, 0, 0,
],
"H": [
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 1, 1,
0, 1, 0, 1,
0, 1, 0, 1,
],
"i": [
0, 0, 0, 0,
],
"I": [
0, 1, 1, 1,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 1, 1, 1,
],
"j": [
0, 0, 0, 0,
],
"J": [
0, 1, 1, 1,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 1, 1, 0,
],
"k": [
0, 0, 0, 0,
],
"K": [
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 1, 0,
0, 1, 0, 1,
0, 1, 0, 1,
],
"l": [
0, 0, 0, 0,
],
"L": [
0, 1, 0, 0,
0, 1, 0, 0,
0, 1, 0, 0,
0, 1, 0, 0,
0, 1, 1, 1,
],
"m": [
0, 0, 0, 0,
],
"M": [
0, 1, 1, 1,
0, 1, 1, 1,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 0, 1,
],
"n": [
0, 0, 0, 0,
],
"N": [
0, 1, 1, 0,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 0, 1,
],
"o": [
0, 0, 0, 0,
],
"O": [
0, 0, 1, 1,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 1, 0,
],
"p": [
0, 0, 0, 0,
],
"P": [
0, 1, 1, 1,
0, 1, 0, 1,
0, 1, 1, 1,
0, 1, 0, 0,
0, 1, 0, 0,
],
"q": [
0, 0, 0, 0,
],
"Q": [
0, 0, 1, 1,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 1, 0,
0, 0, 1, 1,
],
"r": [
0, 0, 0, 0,
],
"R": [
0, 1, 1, 1,
0, 1, 0, 1,
0, 1, 1, 0,
0, 1, 0, 1,
0, 1, 0, 1,
],
"s": [
0, 0, 0, 0,
],
"S": [
0, 0, 1, 1,
0, 1, 0, 0,
0, 1, 1, 1,
0, 0, 0, 1,
0, 1, 1, 0,
],
"t": [
0, 0, 0, 0,
],
"T": [
0, 1, 1, 1,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
],
"u": [
0, 0, 0, 0,
],
"U": [
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 1, 0,
0, 0, 0, 0,
],
"V": [
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 1, 1,
0, 0, 1, 0,
0, 0, 0, 0,
],
"W": [
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 1, 1,
0, 1, 1, 1,
0, 0, 0, 0,
],
"X": [
0, 1, 0, 1,
0, 1, 0, 1,
0, 0, 1, 0,
0, 1, 0, 1,
0, 1, 0, 1,
0, 0, 0, 0,
],
"Y": [
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 1, 1,
0, 0, 1, 0,
0, 1, 0, 0,
0, 0, 0, 0,
],
"Z": [
0, 1, 1, 1,
0, 0, 0, 1,
0, 0, 1, 0,
0, 1, 0, 0,
0, 1, 1, 1,
0, 0, 0, 0,
],
"a": [
0, 0, 0, 0,
0, 1, 1, 1,
0, 0, 1, 1,
0, 1, 0, 1,
0, 1, 1, 1,
0, 0, 0, 0,
],
"b": [
0, 1, 0, 0,
0, 1, 0, 0,
0, 1, 1, 1,
0, 1, 0, 1,
0, 1, 1, 1,
0, 0, 0, 0,
],
"c": [
0, 0, 0, 0,
0, 0, 0, 0,
0, 1, 1, 1,
0, 1, 0, 0,
0, 1, 1, 1,
0, 0, 0, 0,
],
"d": [
0, 0, 0, 1,
0, 0, 0, 1,
0, 1, 1, 1,
0, 1, 0, 1,
0, 1, 1, 1,
0, 0, 0, 0,
],
"e": [
0, 0, 0, 0,
0, 0, 1, 1,
0, 1, 0, 1,
0, 1, 1, 0,
0, 0, 1, 1,
0, 0, 0, 0,
],
"f": [
0, 0, 1, 1,
0, 1, 0, 0,
0, 1, 1, 0,
0, 1, 0, 0,
0, 1, 0, 0,
0, 0, 0, 0,
],
"g": [
0, 0, 0, 0,
0, 0, 0, 0,
0, 1, 1, 1,
0, 1, 0, 1,
0, 0, 1, 1,
0, 1, 1, 0,
],
"h": [
0, 1, 0, 0,
0, 1, 0, 0,
0, 1, 1, 1,
0, 1, 0, 1,
0, 1, 0, 1,
0, 0, 0, 0,
],
"i": [
0, 0, 1, 0,
0, 0, 0, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 0, 0,
],
"j": [
0, 0, 1, 0,
0, 0, 0, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 1, 0, 0,
],
"k": [
0, 1, 0, 0,
0, 1, 0, 0,
0, 1, 0, 1,
0, 1, 1, 0,
0, 1, 0, 1,
0, 0, 0, 0,
],
"l": [
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 0, 1,
0, 0, 0, 0,
],
"m": [
0, 0, 0, 0,
0, 0, 0, 0,
0, 1, 1, 1,
0, 1, 1, 1,
0, 1, 0, 1,
0, 0, 0, 0,
],
"n": [
0, 0, 0, 0,
0, 0, 0, 0,
0, 1, 1, 0,
0, 1, 0, 1,
0, 1, 0, 1,
0, 0, 0, 0,
],
"o": [
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 1, 1,
0, 1, 0, 1,
0, 1, 1, 0,
0, 0, 0, 0,
],
"p": [
0, 0, 0, 0,
0, 0, 0, 0,
0, 1, 1, 1,
0, 1, 0, 1,
0, 1, 1, 1,
0, 1, 0, 0,
],
"q": [
0, 0, 0, 0,
0, 0, 0, 0,
0, 1, 1, 1,
0, 1, 0, 1,
0, 1, 1, 1,
0, 0, 0, 1,
],
"r": [
0, 0, 0, 0,
0, 0, 0, 0,
0, 1, 1, 1,
0, 1, 0, 0,
0, 1, 0, 0,
0, 0, 0, 0,
],
"s": [
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 1, 1,
0, 0, 1, 0,
0, 1, 1, 0,
0, 0, 0, 0,
],
"t": [
0, 0, 1, 0,
0, 0, 1, 0,
0, 1, 1, 1,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 0, 0,
],
"u": [
0, 0, 0, 0,
0, 0, 0, 0,
0, 1, 0, 1,
0, 1, 0, 1,
0, 0, 1, 1,
0, 0, 0, 0,
],
"v": [
0, 0, 0, 0,
0, 0, 0, 0,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 1, 1,
0, 0, 1, 0,
0, 0, 0, 0,
],
"w": [
0, 0, 0, 0,
0, 1, 0, 1,
0, 1, 0, 1,
0, 0, 0, 0,
0, 1, 0, 1,
0, 1, 1, 1,
0, 1, 1, 1,
0, 0, 0, 0,
],
"x": [
0, 0, 0, 0,
0, 1, 0, 1,
0, 0, 0, 0,
0, 1, 0, 1,
0, 0, 1, 0,
0, 1, 0, 1,
0, 1, 0, 1,
0, 0, 0, 0,
],
"y": [
0, 0, 0, 0,
0, 0, 0, 0,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 1, 1,
0, 0, 1, 0,
0, 1, 0, 0,
],
"z": [
0, 0, 0, 0,
0, 1, 1, 1,
0, 0, 0, 1,
0, 0, 0, 0,
0, 1, 1, 0,
0, 0, 1, 0,
0, 1, 0, 0,
0, 1, 1, 1,
0, 0, 1, 1,
0, 0, 0, 0,
],
",": [
0, 0, 0, 0,
@ -237,8 +445,8 @@ export const font: {[key: string]: Array<number>} = {
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 1, 0,
0, 0, 0, 0,
],
" ": [
0, 0, 0, 0,
@ -249,259 +457,259 @@ export const font: {[key: string]: Array<number>} = {
0, 0, 0, 0,
],
"<": [
0, 0, 0, 0,
0, 0, 0, 1,
0, 0, 1, 0,
0, 1, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1,
0, 0, 0, 0,
],
">": [
0, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1,
0, 0, 1, 0,
0, 1, 0, 0,
0, 0, 0, 0,
],
"=": [
0, 0, 0, 0,
0, 0, 0, 0,
0, 1, 1, 1,
0, 0, 0, 0,
0, 1, 1, 1,
0, 0, 0, 0,
0, 0, 0, 0,
],
"(": [
0, 0, 0, 1,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 0, 1,
0, 0, 0, 0,
0, 0, 0, 1,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 0, 1,
],
")": [
0, 1, 0, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 1, 0, 0,
0, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 1, 0, 0,
],
"[": [
0, 0, 1, 1,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 1,
0, 0, 0, 0,
0, 0, 1, 1,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 1,
],
"]": [
0, 1, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 1, 1, 0,
0, 0, 0, 0,
0, 1, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 1, 1, 0,
],
"{": [
0, 0, 0, 0,
0, 0, 1, 1,
0, 0, 1, 0,
0, 1, 1, 0,
0, 0, 1, 0,
0, 0, 1, 1,
0, 0, 0, 0,
],
"}": [
0, 0, 0, 0,
0, 1, 1, 0,
0, 0, 1, 0,
0, 0, 1, 1,
0, 0, 1, 0,
0, 1, 1, 0,
0, 0, 0, 0,
],
":": [
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 1, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 1, 0,
0, 0, 0, 0,
],
";": [
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 1, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 1, 0,
0, 1, 0, 0,
],
"'": [
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 0, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
],
'"': [
0, 1, 0, 1,
0, 1, 0, 1,
0, 0, 0, 0,
0, 1, 0, 1,
0, 1, 0, 1,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
],
"1": [
0, 0, 0, 0,
0, 0, 1, 0,
0, 1, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 1, 1, 1,
0, 0, 0, 0,
],
"2": [
0, 0, 0, 0,
0, 0, 1, 0,
0, 1, 0, 1,
0, 0, 0, 1,
0, 0, 1, 0,
0, 1, 1, 1,
0, 0, 0, 0,
],
"3": [
0, 0, 0, 0,
0, 1, 1, 1,
0, 0, 0, 1,
0, 0, 1, 0,
0, 0, 0, 1,
0, 1, 1, 0,
0, 0, 0, 0,
],
"4": [
0, 0, 0, 0,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 1, 1,
0, 0, 0, 1,
0, 0, 0, 1,
0, 0, 0, 0,
],
"5": [
0, 0, 0, 0,
0, 1, 1, 1,
0, 1, 0, 0,
0, 1, 1, 0,
0, 0, 0, 1,
0, 1, 1, 0,
0, 0, 0, 0,
],
"6": [
0, 0, 0, 0,
0, 0, 0, 1,
0, 0, 1, 0,
0, 1, 1, 1,
0, 1, 0, 1,
0, 1, 1, 1,
0, 0, 0, 0,
],
"7": [
0, 0, 0, 0,
0, 1, 1, 1,
0, 0, 0, 1,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 0, 0,
],
"8": [
0, 1, 1, 1,
0, 1, 0, 1,
0, 1, 1, 1,
0, 1, 0, 1,
0, 1, 1, 1,
0, 0, 0, 0,
0, 1, 1, 1,
0, 1, 0, 1,
0, 1, 1, 1,
0, 1, 0, 1,
0, 1, 1, 1,
],
"9": [
0, 0, 0, 0,
0, 1, 1, 1,
0, 1, 0, 1,
0, 1, 1, 1,
0, 0, 1, 0,
0, 1, 0, 0,
0, 0, 0, 0,
],
"0": [
0, 1, 1, 1,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 1, 1,
0, 0, 0, 0,
0, 1, 1, 1,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 1, 1,
],
"+": [
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 1, 0,
0, 1, 1, 1,
0, 0, 1, 0,
0, 0, 0, 0,
0, 0, 0, 0,
],
"-": [
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 1, 1, 1,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
],
"_": [
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 1, 1, 1,
0, 0, 0, 0,
],
"`": [
0, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
],
"~": [
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 1,
0, 1, 1, 1,
0, 1, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
],
"/": [
0, 0, 0, 0,
0, 0, 0, 1,
0, 0, 0, 1,
0, 0, 1, 0,
0, 1, 0, 0,
0, 1, 0, 0,
0, 0, 0, 0,
],
"?": [
0, 0, 0, 0,
0, 1, 1, 1,
0, 0, 0, 1,
0, 0, 1, 1,
0, 0, 0, 0,
0, 0, 1, 0,
0, 0, 0, 0,
],
"\\": [
0, 0, 0, 0,
0, 1, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1,
0, 0, 0, 1,
0, 0, 0, 0,
],
"|": [
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 0, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
],
}

13
repl.ts
View File

@ -2,6 +2,7 @@ import faux from "./builtins.ts";
import { getKeysPressed, shiftKeyDown, shiftMap, K } from "./keyboard.ts";
import { font } from "./font.ts";
import { runCode } from "./runcode.ts";
import { clearScreen } from "./window.ts";
const lineHeight = 6;
@ -75,7 +76,7 @@ const update = () => {
textLinesAbove.push(...resultString.split("\n"))
}
} catch (err) {
textLinesAbove.push(...(err.name+":\n"+err.message).toLowerCase().split("\n"))
textLinesAbove.push(...(err.name+":\n"+err.message).split("\n"))
}
textLinesAbove = textLinesAbove.slice(-20);
maxLineLen = 0;
@ -88,17 +89,19 @@ const update = () => {
const drawTextAbove = () => {
textLinesAbove.forEach((line, i) => {
faux.draw_rect(0, i*lineHeight, 4*(line.length+1)+1, lineHeight+1, 6);
faux.draw_text(-1, i*lineHeight, line);
faux.draw_rect(0, 1+i*lineHeight, 4*(line.length+1)+1, lineHeight+1, 0);
faux.draw_text(-1, 1+i*lineHeight, line);
});
}
const draw = () => {
clearScreen();
drawTextAbove();
faux.draw_rect(0, textLinesAbove.length*lineHeight, 4*(2+maxLineLen+1)+1, lineHeight+1, 6);
faux.draw_rect(0, 1+textLinesAbove.length*lineHeight, 4*(2+maxLineLen+1)+1, lineHeight+1, 0);
faux.draw_rect((2+index)*4, textLinesAbove.length*lineHeight+1, 4, lineHeight-1, 3);
faux.draw_text(-1, textLinesAbove.length*lineHeight, "> "+currentLine);
faux.draw_text(-1, 1+textLinesAbove.length*lineHeight, "> "+currentLine);
}
export const repl = {