titrmlib

A curses-style TUI library for the TI-84 Plus CE. Panels, widgets, scenes, dialogs, colors and text styles for CE C programs.

View the Project on GitHub gavinhsmith/titrmlib

titrmlib font map

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):

0x20-0x7E: ASCII

All 95 printable characters; standard ASCII positions.

0x01-0x1F, 0x7F-0xFF: code page 437

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.