fantasy-console/font.ts
2023-05-03 15:17:27 -07:00

507 lines
6.1 KiB
TypeScript

/**
* Perhaps fonts can be their own type of sheet. By the calculation below, we can fit ~4 fonts per fontsheet
*
* 3 bits for height
* 5 more metadata bits
* = 1 byte
*
* Per character:
* - 3 bits for width
* - 5 bits for metadata
* - 64 bits for pixels
* = 9 bytes per character
*
* 96 chars * 9 bytes =
*/
// deno-fmt-ignore
export const font: {[key: string]: Array<number>} = {
"a": [
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 1, 0,
],
"v": [
0, 0, 0, 0,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 1, 1,
0, 0, 1, 0,
],
"w": [
0, 0, 0, 0,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 1, 1,
0, 1, 1, 1,
],
"x": [
0, 0, 0, 0,
0, 1, 0, 1,
0, 1, 0, 1,
0, 0, 1, 0,
0, 1, 0, 1,
0, 1, 0, 1,
],
"y": [
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, 1, 0,
0, 1, 0, 0,
0, 1, 1, 1,
],
",": [
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 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,
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, 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, 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, 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, 1, 0, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 0, 1, 0,
0, 1, 0, 0,
],
"[": [
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, 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, 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, 1, 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, 1, 0,
0, 1, 0, 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, 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,
],
"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,
],
"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,
],
"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,
],
"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,
],
"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,
],
"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,
],
"8": [
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, 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, 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, 1, 1, 1,
],
"`": [
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, 1,
0, 1, 1, 1,
0, 1, 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, 1, 1, 1,
0, 0, 0, 1,
0, 0, 1, 1,
0, 0, 0, 0,
0, 0, 1, 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,
],
}