A curses-style TUI library for the TI-84 Plus CE. Panels, widgets, scenes, dialogs, colors and text styles for CE C programs.
Generated by tools/gen_font.py. ASCII comes from petabyt/font (MIT, tools/petabyt-font/LICENSE); everything else is drawn in the script. 5x7 glyphs, packed one byte per row.
Fixes applied to the source font (see the script for detail):
- and _ were each defined twice; kept the later - (5px, row 4).1 was a smiley face; it is CP437’s ☺ at 0x01 (TERM_CH_SMILE).$ & @ [ ] \ ^ | drawn by hand (\ mirrors /).I i l 1 redrawn with serifs to fill the cell; other narrow glyphs (! . ' : ( ) etc.) centered instead of flush-left, so they don’t leave a gap.TERM_CH_BLOCK is the same idea).All 95 printable characters; standard ASCII positions.
The IBM PC character set, except that 0x13-0x16 (‼ ¶ § ▬ in CP437) hold the
signal-strength icons. 0x00 and 0xFF are blank. 0x00 ends a string, and
term_panel_print treats 0x0A and 0x0D as newline and carriage return, so
those three can only be placed with term_put.
0xB3-0xDF (box drawing and blocks) are connected: the renderer extends them across the 1px column/row gap between cells so they join.
| Code | CP437 | Name | Glyph |
|---|---|---|---|
| 0x01 | ☺ | TERM_CH_SMILE |
<pre>….. .#.#. .#.#. ….. ..#.. #…# .###.</pre> |
| 0x02 | ☻ | <pre>….. .###. #.#.# ##### #…# .###. …..</pre> |
|
| 0x03 | ♥ | <pre>….. .#.#. ##### ##### .###. ..#.. …..</pre> |
|
| 0x04 | ♦ | <pre>….. ..#.. .###. ##### .###. ..#.. …..</pre> |
|
| 0x05 | ♣ | <pre>.###. .###. #.#.# ##### #.#.# ..#.. .###.</pre> |
|
| 0x06 | ♠ | <pre>..#.. .###. ##### ##### #.#.# ..#.. .###.</pre> |
|
| 0x07 | • | <pre>….. ….. ..#.. .###. ..#.. ….. …..</pre> |
|
| 0x08 | ◘ | <pre>##### ##### ##.## #…# ##.## ##### #####</pre> |
|
| 0x09 | ○ | <pre>….. .###. #…# #…# #…# .###. …..</pre> |
|
| 0x0A | ◙ | <pre>##### #…# .###. .###. .###. #…# #####</pre> |
|
| 0x0B | ♂ | <pre>..### …## .##.# #..#. #..#. .##.. …..</pre> |
|
| 0x0C | ♀ | <pre>.###. #…# #…# .###. ..#.. .###. ..#..</pre> |
|
| 0x0D | ♪ | <pre>..#.. ..##. ..#.# ..#.. .##.. ###.. .#…</pre> |
|
| 0x0E | ♫ | <pre>.#### .#..# .#..# .#..# .#.## ##.## ##…</pre> |
|
| 0x0F | ☼ | <pre>..#.. #.#.# .###. ##.## .###. #.#.# ..#..</pre> |
|
| 0x10 | ► | TERM_CH_ARROW_R |
<pre>….. #…. ##… ###.. ##… #…. …..</pre> |
| 0x11 | ◄ | <pre>….. ….# …## ..### …## ….# …..</pre> |
|
| 0x12 | ↕ | <pre>..#.. .###. #.#.# ..#.. #.#.# .###. ..#..</pre> |
|
| 0x13 | signal | TERM_CH_SIG0 |
<pre>….. ….. ….. ….. ….. ….. #.#.#</pre> |
| 0x14 | signal | TERM_CH_SIG1 |
<pre>….. ….. ….. ….. #…. #…. #.#.#</pre> |
| 0x15 | signal | TERM_CH_SIG2 |
<pre>….. ….. ..#.. ..#.. #.#.. #.#.. #.#.#</pre> |
| 0x16 | signal | TERM_CH_SIG3 |
<pre>….# ….# ..#.# ..#.# #.#.# #.#.# #.#.#</pre> |
| 0x17 | ↨ | <pre>..#.. .###. ..#.. ..#.. .###. ..#.. #####</pre> |
|
| 0x18 | ↑ | <pre>..#.. .###. #.#.# ..#.. ..#.. ..#.. ..#..</pre> |
|
| 0x19 | ↓ | <pre>..#.. ..#.. ..#.. ..#.. #.#.# .###. ..#..</pre> |
|
| 0x1A | → | <pre>….. ..#.. …#. ##### …#. ..#.. …..</pre> |
|
| 0x1B | ← | <pre>….. ..#.. .#… ##### .#… ..#.. …..</pre> |
|
| 0x1C | ∟ | <pre>….. ….. #…. #…. ##### ….. …..</pre> |
|
| 0x1D | ↔ | <pre>….. ….. .#.#. ##### .#.#. ….. …..</pre> |
|
| 0x1E | ▲ | TERM_CH_ARROW_U |
<pre>….. ….. ..#.. .###. ##### ….. …..</pre> |
| 0x1F | ▼ | TERM_CH_ARROW_D |
<pre>….. ….. ##### .###. ..#.. ….. …..</pre> |
| 0x7F | ⌂ | <pre>..#.. .#.#. #…# #…# #…# ##### …..</pre> |
|
| 0x80 | Ç | <pre>.#### #…. #…. #…. #…. .#### ..#..</pre> |
|
| 0x81 | ü | <pre>.#.#. ….. #…# #…# #…# #…# .###.</pre> |
|
| 0x82 | é | <pre>…#. ..#.. .###. #…# ##### #…. .####</pre> |
|
| 0x83 | â | <pre>..#.. .#.#. .###. ….# .#### #…# .####</pre> |
|
| 0x84 | ä | <pre>.#.#. ….. .###. ….# .#### #…# .####</pre> |
|
| 0x85 | à | <pre>.#… ..#.. .###. ….# .#### #…# .####</pre> |
|
| 0x86 | å | <pre>.###. .#.#. .###. ….# .#### #…# .####</pre> |
|
| 0x87 | ç | <pre>….. .###. #…# #…. #…# .###. ..#..</pre> |
|
| 0x88 | ê | <pre>..#.. .#.#. .###. #…# ##### #…. .####</pre> |
|
| 0x89 | ë | <pre>.#.#. ….. .###. #…# ##### #…. .####</pre> |
|
| 0x8A | è | <pre>.#… ..#.. .###. #…# ##### #…. .####</pre> |
|
| 0x8B | ï | <pre>.#.#. ….. .##.. ..#.. ..#.. ..#.. .###.</pre> |
|
| 0x8C | î | <pre>..#.. .#.#. .##.. ..#.. ..#.. ..#.. .###.</pre> |
|
| 0x8D | ì | <pre>.#… ..#.. .##.. ..#.. ..#.. ..#.. .###.</pre> |
|
| 0x8E | Ä | <pre>.#.#. ….. .###. #…# ##### #…# #…#</pre> |
|
| 0x8F | Å | <pre>.###. .#.#. .###. #…# ##### #…# #…#</pre> |
|
| 0x90 | É | <pre>…#. ..#.. ##### #…. ##### #…. #####</pre> |
|
| 0x91 | æ | <pre>….. ….. ##.#. ..#.# .#### #.#.. .####</pre> |
|
| 0x92 | Æ | <pre>.#### #.#.. #.#.. ##### #.#.. #.#.. #.###</pre> |
|
| 0x93 | ô | <pre>..#.. .#.#. .###. #…# #…# #…# .###.</pre> |
|
| 0x94 | ö | <pre>.#.#. ….. .###. #…# #…# #…# .###.</pre> |
|
| 0x95 | ò | <pre>.#… ..#.. .###. #…# #…# #…# .###.</pre> |
|
| 0x96 | û | <pre>..#.. .#.#. #…# #…# #…# #…# .###.</pre> |
|
| 0x97 | ù | <pre>.#… ..#.. #…# #…# #…# #…# .###.</pre> |
|
| 0x98 | ÿ | <pre>.#.#. ….. #…# #…# .#### ….# ####.</pre> |
|
| 0x99 | Ö | <pre>.#.#. ….. .###. #…# #…# #…# .###.</pre> |
|
| 0x9A | Ü | <pre>.#.#. ….. #…# #…# #…# #…# .###.</pre> |
|
| 0x9B | ¢ | <pre>..#.. .#### #.#.. #.#.. #.#.. .#### ..#..</pre> |
|
| 0x9C | £ | <pre>..##. .#..# .#… ###.. .#… .#… #####</pre> |
|
| 0x9D | ¥ | <pre>#…# .#.#. ##### ..#.. ##### ..#.. ..#..</pre> |
|
| 0x9E | ₧ | <pre>###.. #..#. ###.. #..#. #.### #..#. #..##</pre> |
|
| 0x9F | ƒ | <pre>…## ..#.. ..#.. .###. ..#.. ..#.. ##…</pre> |
|
| 0xA0 | á | <pre>…#. ..#.. .###. ….# .#### #…# .####</pre> |
|
| 0xA1 | í | <pre>…#. ..#.. .##.. ..#.. ..#.. ..#.. .###.</pre> |
|
| 0xA2 | ó | <pre>…#. ..#.. .###. #…# #…# #…# .###.</pre> |
|
| 0xA3 | ú | <pre>…#. ..#.. #…# #…# #…# #…# .###.</pre> |
|
| 0xA4 | ñ | <pre>.##.# #.##. ####. #…# #…# #…# #…#</pre> |
|
| 0xA5 | Ñ | <pre>.##.# #.##. #…# ##..# #.#.# #..## #…#</pre> |
|
| 0xA6 | ª | <pre>.###. ….# .#### #…# .#### ….. #####</pre> |
|
| 0xA7 | º | <pre>.###. #…# #…# .###. ….. ##### …..</pre> |
|
| 0xA8 | ¿ | <pre>…#. ….. …#. ..#.. .#… .#..# ..##.</pre> |
|
| 0xA9 | ⌐ | <pre>….. ….. ##### #…. #…. ….. …..</pre> |
|
| 0xAA | ¬ | <pre>….. ….. ##### ….# ….# ….. …..</pre> |
|
| 0xAB | ½ | <pre>#…. #..#. #.#.. .#.## #…# …#. …##</pre> |
|
| 0xAC | ¼ | <pre>#…. #..#. #.#.. .#.#. #..## ….# ….#</pre> |
|
| 0xAD | ¡ | <pre>..#.. ….. ..#.. ..#.. ..#.. ..#.. ..#..</pre> |
|
| 0xAE | « | <pre>….. ..#.# .#.#. #.#.. .#.#. ..#.# …..</pre> |
|
| 0xAF | » | <pre>….. #.#.. .#.#. ..#.# .#.#. #.#.. …..</pre> |
|
| 0xB0 | ░ | <pre>#…# ..#.. #…# ..#.. #…# ..#.. #…#</pre> |
|
| 0xB1 | ▒ | TERM_CH_SHADE |
<pre>#.#.# .#.#. #.#.# .#.#. #.#.# .#.#. #.#.#</pre> |
| 0xB2 | ▓ | <pre>.###. ##.## .###. ##.## .###. ##.## .###.</pre> |
|
| 0xB3 | │ | TERM_CH_VLINE |
<pre>..#.. ..#.. ..#.. ..#.. ..#.. ..#.. ..#..</pre> |
| 0xB4 | ┤ | TERM_CH_RTEE |
<pre>..#.. ..#.. ..#.. ###.. ..#.. ..#.. ..#..</pre> |
| 0xB5 | ╡ | <pre>..#.. ..#.. ###.. ..#.. ###.. ..#.. ..#..</pre> |
|
| 0xB6 | ╢ | <pre>.#.#. .#.#. .#.#. ##.#. .#.#. .#.#. .#.#.</pre> |
|
| 0xB7 | ╖ | <pre>….. ….. ….. ####. .#.#. .#.#. .#.#.</pre> |
|
| 0xB8 | ╕ | <pre>….. ….. ###.. ..#.. ###.. ..#.. ..#..</pre> |
|
| 0xB9 | ╣ | <pre>.#.#. .#.#. ##.#. …#. ##.#. .#.#. .#.#.</pre> |
|
| 0xBA | ║ | <pre>.#.#. .#.#. .#.#. .#.#. .#.#. .#.#. .#.#.</pre> |
|
| 0xBB | ╗ | <pre>….. ….. ####. …#. ##.#. .#.#. .#.#.</pre> |
|
| 0xBC | ╝ | <pre>.#.#. .#.#. ##.#. …#. ####. ….. …..</pre> |
|
| 0xBD | ╜ | <pre>.#.#. .#.#. .#.#. ####. ….. ….. …..</pre> |
|
| 0xBE | ╛ | <pre>..#.. ..#.. ###.. ..#.. ###.. ….. …..</pre> |
|
| 0xBF | ┐ | TERM_CH_TR |
<pre>….. ….. ….. ###.. ..#.. ..#.. ..#..</pre> |
| 0xC0 | └ | TERM_CH_BL |
<pre>..#.. ..#.. ..#.. ..### ….. ….. …..</pre> |
| 0xC1 | ┴ | TERM_CH_BTEE |
<pre>..#.. ..#.. ..#.. ##### ….. ….. …..</pre> |
| 0xC2 | ┬ | TERM_CH_TTEE |
<pre>….. ….. ….. ##### ..#.. ..#.. ..#..</pre> |
| 0xC3 | ├ | TERM_CH_LTEE |
<pre>..#.. ..#.. ..#.. ..### ..#.. ..#.. ..#..</pre> |
| 0xC4 | ─ | TERM_CH_HLINE |
<pre>….. ….. ….. ##### ….. ….. …..</pre> |
| 0xC5 | ┼ | TERM_CH_CROSS |
<pre>..#.. ..#.. ..#.. ##### ..#.. ..#.. ..#..</pre> |
| 0xC6 | ╞ | <pre>..#.. ..#.. ..### ..#.. ..### ..#.. ..#..</pre> |
|
| 0xC7 | ╟ | <pre>.#.#. .#.#. .#.#. .#.## .#.#. .#.#. .#.#.</pre> |
|
| 0xC8 | ╚ | <pre>.#.#. .#.#. .#.## .#… .#### ….. …..</pre> |
|
| 0xC9 | ╔ | <pre>….. ….. .#### .#… .#.## .#.#. .#.#.</pre> |
|
| 0xCA | ╩ | <pre>.#.#. .#.#. ##.## ….. ##### ….. …..</pre> |
|
| 0xCB | ╦ | <pre>….. ….. ##### ….. ##.## .#.#. .#.#.</pre> |
|
| 0xCC | ╠ | <pre>.#.#. .#.#. .#.## .#… .#.## .#.#. .#.#.</pre> |
|
| 0xCD | ═ | <pre>….. ….. ##### ….. ##### ….. …..</pre> |
|
| 0xCE | ╬ | <pre>.#.#. .#.#. ##.## ….. ##.## .#.#. .#.#.</pre> |
|
| 0xCF | ╧ | <pre>..#.. ..#.. ##### ….. ##### ….. …..</pre> |
|
| 0xD0 | ╨ | <pre>.#.#. .#.#. .#.#. ##### ….. ….. …..</pre> |
|
| 0xD1 | ╤ | <pre>….. ….. ##### ….. ##### ..#.. ..#..</pre> |
|
| 0xD2 | ╥ | <pre>….. ….. ….. ##### .#.#. .#.#. .#.#.</pre> |
|
| 0xD3 | ╙ | <pre>.#.#. .#.#. .#.#. .#### ….. ….. …..</pre> |
|
| 0xD4 | ╘ | <pre>..#.. ..#.. ..### ..#.. ..### ….. …..</pre> |
|
| 0xD5 | ╒ | <pre>….. ….. ..### ..#.. ..### ..#.. ..#..</pre> |
|
| 0xD6 | ╓ | <pre>….. ….. ….. .#### .#.#. .#.#. .#.#.</pre> |
|
| 0xD7 | ╫ | <pre>.#.#. .#.#. .#.#. ##### .#.#. .#.#. .#.#.</pre> |
|
| 0xD8 | ╪ | <pre>..#.. ..#.. ##### ..#.. ##### ..#.. ..#..</pre> |
|
| 0xD9 | ┘ | TERM_CH_BR |
<pre>..#.. ..#.. ..#.. ###.. ….. ….. …..</pre> |
| 0xDA | ┌ | TERM_CH_TL |
<pre>….. ….. ….. ..### ..#.. ..#.. ..#..</pre> |
| 0xDB | █ | TERM_CH_BLOCK |
<pre>##### ##### ##### ##### ##### ##### #####</pre> |
| 0xDC | ▄ | <pre>….. ….. ….. ….. ##### ##### #####</pre> |
|
| 0xDD | ▌ | <pre>###.. ###.. ###.. ###.. ###.. ###.. ###..</pre> |
|
| 0xDE | ▐ | <pre>…## …## …## …## …## …## …##</pre> |
|
| 0xDF | ▀ | <pre>##### ##### ##### ##### ….. ….. …..</pre> |
|
| 0xE0 | α | <pre>….. ….. .##.# #..#. #..#. #..#. .##.#</pre> |
|
| 0xE1 | ß | <pre>.###. #…# #..#. #.#.. #..#. #…# #.##.</pre> |
|
| 0xE2 | Γ | <pre>##### #…. #…. #…. #…. #…. #….</pre> |
|
| 0xE3 | π | <pre>….. ….. ##### .#.#. .#.#. .#.#. .#..#</pre> |
|
| 0xE4 | Σ | <pre>##### #…. .#… ..#.. .#… #…. #####</pre> |
|
| 0xE5 | σ | <pre>….. ….. .#### #..#. #..#. #..#. .##..</pre> |
|
| 0xE6 | µ | <pre>….. ….. #..#. #..#. #..#. ###.# #….</pre> |
|
| 0xE7 | τ | <pre>….. ….. .#### #.#.. ..#.. ..#.. ..##.</pre> |
|
| 0xE8 | Φ | <pre>..#.. .###. #.#.# #.#.# #.#.# .###. ..#..</pre> |
|
| 0xE9 | Θ | <pre>.###. #…# #…# ##### #…# #…# .###.</pre> |
|
| 0xEA | Ω | <pre>.###. #…# #…# #…# .#.#. .#.#. ##.##</pre> |
|
| 0xEB | δ | <pre>..##. .#… ..#.. .###. #…# #…# .###.</pre> |
|
| 0xEC | ∞ | <pre>….. ….. .#.#. #.#.# #.#.# .#.#. …..</pre> |
|
| 0xED | φ | <pre>….# …#. .###. #.#.# #.#.# .###. .#…</pre> |
|
| 0xEE | ε | <pre>….. ….. .#### #…. .###. #…. .####</pre> |
|
| 0xEF | ∩ | <pre>….. .###. #…# #…# #…# #…# …..</pre> |
|
| 0xF0 | ≡ | <pre>….. ##### ….. ##### ….. ##### …..</pre> |
|
| 0xF1 | ± | <pre>..#.. ..#.. ##### ..#.. ..#.. ….. #####</pre> |
|
| 0xF2 | ≥ | <pre>.#… ..#.. …#. ..#.. .#… ….. .###.</pre> |
|
| 0xF3 | ≤ | <pre>…#. ..#.. .#… ..#.. …#. ….. .###.</pre> |
|
| 0xF4 | ⌠ | <pre>..##. ..#.# ..#.. ..#.. ..#.. ..#.. ..#..</pre> |
|
| 0xF5 | ⌡ | <pre>..#.. ..#.. ..#.. ..#.. ..#.. #.#.. .##..</pre> |
|
| 0xF6 | ÷ | <pre>….. ..#.. ….. ##### ….. ..#.. …..</pre> |
|
| 0xF7 | ≈ | <pre>….. .##.# #.##. ….. .##.# #.##. …..</pre> |
|
| 0xF8 | ° | <pre>.##.. #..#. #..#. .##.. ….. ….. …..</pre> |
|
| 0xF9 | ∙ | <pre>….. ….. ….. .##.. .##.. ….. …..</pre> |
|
| 0xFA | · | <pre>….. ….. ….. ..#.. ….. ….. …..</pre> |
|
| 0xFB | √ | <pre>…## …#. …#. #..#. .#.#. ..#.. …..</pre> |
|
| 0xFC | ⁿ | <pre>###.. #.#.. #.#.. ….. ….. ….. …..</pre> |
|
| 0xFD | ² | <pre>##… ..#.. .#… ###.. ….. ….. …..</pre> |
|
| 0xFE | ■ | <pre>….. .###. .###. .###. .###. ….. …..</pre> |
The . in the art above is an empty pixel.