From f6ef420541881d6d459970436281c6724290d434 Mon Sep 17 00:00:00 2001 From: Stefan Bethke Date: Mon, 2 Jun 2025 12:21:47 +0200 Subject: [PATCH] Add 0x00-0x0f --- buba/static/display.js | 161 ++++++++++++++++++++++++++++++++--------- 1 file changed, 128 insertions(+), 33 deletions(-) diff --git a/buba/static/display.js b/buba/static/display.js index 59bcc51..4faaa4a 100644 --- a/buba/static/display.js +++ b/buba/static/display.js @@ -135,44 +135,139 @@ export default class { * position in the source code corresponds to the CP437 code point. */ let defs = {} - // 0x00-0x0f - defs['\u0001'] = []; - defs['\u0002'] = []; - defs['\u0003'] = []; - defs['\u0004'] = []; - defs['\u0005'] = []; - defs['\u0006'] = []; - defs['\u0007'] = []; - defs['\u0008'] = []; - defs['\u0009'] = []; - defs['\u000a'] = []; - defs['\u000b'] = []; - defs['\u000c'] = []; - defs['\u000d'] = []; - defs['\u000e'] = []; - defs['\u000f'] = []; + // 0x00-0x0f; work around wrong Python encoding by assigning the same glyph to both the identity code and the correct Unicode codepoint + defs['\u0001'] = defs['\u263a'] = [ // ☺︎ + '#....# .#.... ..#.#. .#.###', + '....## ##.### #.#### ...###', + '.#..#. #..... ..##.. ..####', + '...... ...... ...... ......', + ]; + defs['\u0002'] = defs['\u263c'] = [ // ☻ + '.####. #.#### ##.#.# #.#...', + '####.. ..#... .#.... ###...', + '#.##.# .##### ##..## ##....', + '...... ...... ...... ......', + ]; + defs['\u0003'] = defs['\u2665'] = [ // ♥︎ + '...### ###### ###.#. ......', + '....## ###### ###### #.....', + '...### ###### ####.. ......', + '...... ...... ...... ......', + ]; + defs['\u0004'] = defs['\u2666'] = [ // ♦︎ + '...... .....# ###.#. ......', + '...... ..#### ###### #.....', + '...... ....#. ####.. ......', + '...... ...... ...... ......', + ]; + defs['\u0005'] = defs['\u2663'] = [ // ♣︎ + '.....# .#.... ###... ....##', + '...### ###### ###### ######', + '....#. #..... ###... ....##', + '...... ...... ...... ......', + ]; + defs['\u0006'] = defs['\u2660'] = [ // ♠︎ + '...... .....# ###.#. ....##', + '...... ..#### ###### ######', + '...... ....#. ####.. ....##', + '...... ...... ...... ......', + ]; + defs['\u0007'] = defs['\u2022'] = [ // • + '...... ...### #..... ......', + '...... ...... ...... ......', + ]; + defs['\u0008'] = defs['\u25d6'] = [ // ◘ + '###### ###### ###### ######', + '###### ###... .##### ######', + '###### ###### ###### ######', + '...... ...... ...... ......', + ]; + defs['\u0009'] = defs['\u25cb'] = [ // ○ + '...... ###### ##.... ......', + '...... ###... .#.... ......', + '...... ###### ##.... ......', + '...... ...... ...... ......', + ]; + defs['\u000a'] = defs['\u25d9'] = [ // ◙ + '###### ...... ..#### ######', + '###### ...### #.#### ######', + '###### ...... ..#### ######', + '...... ...... ...... ......', + ]; + defs['\u000b'] = defs['\u2642'] = [ // ♂︎ + '...... .....# ###### #.#...', + '...... ...### #..... ###...', + '...... ...### #..... ###...', + '.#...# .##### #..... ###...', + '###### ##..#. ###### ##....', + '...... ...... ...... ......', + ]; + defs['\u000c'] = defs['\u2640'] = [ // ♀︎ + '.##### ###... .#.... ......', + '###... ###### ###### ###...', + '#.#### ###... .#.... ......', + '...... ...... ...... ......', + ]; + defs['\u000d'] = defs['\u266a'] = [ // ♪ + '...... ...... ...... ####..', + '###### ###### ###### ####..', + '....#. #.##.# ...... ......', + '...... ...... ...... ......', + ]; + defs['\u000e'] = defs['\u266b'] = [ // ♫ + '...... ...... ...... ####..', + '###### ###### ###### ####..', + '###... ...... ...... ......', + '#.##.# .#.... ...... ######', + '....#. #.#### ###### ######', + '...... ...... ...... ......', + ]; + defs['\u000f'] = defs['\u263c'] = [ // ☼ + '####.# .#.### #...## ###...', + '....## #####. #####. ......', + '###### ##.... ..#### ###..', + '....## ####.# #####. ......', + '#####. #..### #..#.# ###...', + '...... ...... ...... ......', + ]; // 0x10-0x1f - defs['\u0010'] = []; - defs['\u0011'] = []; - defs['\u0012'] = []; - defs['\u0013'] = []; - defs['\u0014'] = []; - defs['\u0015'] = []; - defs['\u0016'] = []; - defs['\u0017'] = []; - defs['\u0018'] = []; - defs['\u0019'] = []; - defs['\u001a'] = []; - defs['\u001b'] = []; - defs['\u001c'] = []; - defs['\u001d'] = []; - defs['\u001e'] = []; - defs['\u001f'] = []; + defs['\u0010'] = [ // x + ]; + defs['\u0011'] = [ // x + ]; + defs['\u0012'] = [ // x + ]; + defs['\u0013'] = [ // x + ]; + defs['\u0014'] = [ // x + ]; + defs['\u0015'] = [ // x + ]; + defs['\u0016'] = [ // x + ]; + defs['\u0017'] = [ // x + ]; + defs['\u0018'] = [ // x + ]; + defs['\u0019'] = [ // x + ]; + defs['\u001a'] = [ // x + ]; + defs['\u001b'] = [ // x + ]; + defs['\u001c'] = [ // x + ]; + defs['\u001d'] = [ // x + ]; + defs['\u001e'] = [ // x + ]; + defs['\u001f'] = [ // x + ]; // 0x20-0x2f defs['\u0020'] = [ // space - '...... ...... ...... ......' + '...... ...... ...... ......', ]; defs['\u0021'] = [ // ! '###### ###### ##.... ###...',