stm: Expose LCD font API in ao_lcd_font.h
authorKeith Packard <keithp@keithp.com>
Mon, 18 Feb 2019 18:38:21 +0000 (10:38 -0800)
committerKeith Packard <keithp@keithp.com>
Mon, 18 Feb 2019 21:08:23 +0000 (13:08 -0800)
That required renaming the existing LCD font defintions from
ao_lcd_font.h to ao_lcd_font_bits.h.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/stm/ao-parse-font.5c
src/stm/ao_lcd_font.c
src/stm/ao_lcd_font.h
src/stm/ao_lcd_font_bits.h [new file with mode: 0644]

index fe78585447298064eb99c1b25b33df451dc0956f..152d4e8388c365d7041740b8b0d339fdf38b3ac8 100644 (file)
@@ -154,13 +154,13 @@ glyph[*] read_font(file f) {
 
 glyph[*] font;
 void init () {
-       twixt (file f = File::open("ao_lcd_font.h", "r"); File::close(f)) {
+       twixt (file f = File::open("ao_lcd_font_bits.h", "r"); File::close(f)) {
                font = read_font(f);
        }
 }
 
 void dump() {
-       twixt(file f = File::open("ao_lcd_font.h.new", "w"); File::close(f)) {
+       twixt(file f = File::open("ao_lcd_font_bits.h.new", "w"); File::close(f)) {
                for (int i = 0; i < dim(font); i++) {
                        File::fprintf (f, "\t[%d] = 0x%04x,\n", i, glyph_value(font[i]));
                        File::fprintf (f, "/*\n");
index b1664b1381f0ad2b9853bb982b7ddec65117fb1f..6c5ea5c2abcf6f07cfeb51439d4438cd5da15359 100644 (file)
  */
 
 #include <ao.h>
+#include "ao_lcd_font.h"
 
 static const uint16_t ao_lcd_font[] = {
-#include "ao_lcd_font.h"
+#include "ao_lcd_font_bits.h"
 };
 
 /*
@@ -116,7 +117,7 @@ ao_lcd_font_text(void)
        ao_lcd_font_string(string);
 }
 
-const struct ao_cmds ao_lcd_font_cmds[] = {
+static const struct ao_cmds ao_lcd_font_cmds[] = {
        { ao_lcd_font_text,     "t <string>\0Write <string> to LCD" },
        { 0, NULL }
 };
@@ -126,4 +127,3 @@ ao_lcd_font_init(void)
 {
        ao_cmd_register(ao_lcd_font_cmds);
 }
-       
index 08adc9ab8c89f4fa07b86288216f052dbdd3db8c..89c563cdb3c1b357f5e3ccfd380cdef4a14f8326 100644 (file)
-       [0] = 0x0000,
 /*
-CHAR 32 ' '
-              
-              
-              
-              
-              
-              
-              
-*/
+ * Copyright © 2019 Keith Packard <keithp@keithp.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ */
 
-       [1] = 0x0102,
-/*
-CHAR 33 '!'
-              
-       |      
-       |      
-              
-       |      
-       |      
-              
-*/
-
-       [2] = 0x000a,
-/*
-CHAR 34 '"'
-              
-       |  |   
-       |  |   
-              
-              
-              
-              
-*/
-
-       [3] = 0x05e8,
-/*
-CHAR 35 '#'
-              
-          |  |
-          |  |
-        -- -- 
-       |  |   
-       |  |   
-              
-*/
-
-       [4] = 0x34cb,
-/*
-CHAR 36 '$'
-        ----- 
-       |  |   
-       |  |   
-        -- -- 
-          |  |
-          |  |
-        ----- 
-*/
-
-       [5] = 0x1212,
-/*
-CHAR 37 '%'
-              
-       |    / 
-       |   /  
-              
-         /   |
-        /    |
-              
-*/
-
-       [6] = 0x2955,
-/*
-CHAR 38 '&'
-        ----- 
-        \   / 
-         \ /  
-        --    
-       |   \  
-       |    \ 
-        ----- 
-*/
-
-       [7] = 0x0008,
-/*
-CHAR 39 '''
-              
-          |   
-          |   
-              
-              
-              
-              
-*/
-
-       [8] = 0x2103,
-/*
-CHAR 40 '('
-        ----- 
-       |      
-       |      
-              
-       |      
-       |      
-        ----- 
-*/
-
-       [9] = 0x3021,
-/*
-CHAR 41 ')'
-        ----- 
-             |
-             |
-              
-             |
-             |
-        ----- 
-*/
-
-       [10] = 0x0e1c,
-/*
-CHAR 42 '*'
-              
-        \ | / 
-         \|/  
-              
-         /|\  
-        / | \ 
-              
-*/
-
-       [11] = 0x04c8,
-/*
-CHAR 43 '+'
-              
-          |   
-          |   
-        -- -- 
-          |   
-          |   
-              
-*/
-
-       [12] = 0x0200,
-/*
-CHAR 44 ','
-              
-              
-              
-              
-         /    
-        /     
-              
-*/
-
-       [13] = 0x00c0,
-/*
-CHAR 45 '-'
-              
-              
-              
-        -- -- 
-              
-              
-              
-*/
-
-       [14] = 0x0800,
-/*
-CHAR 46 '.'
-              
-              
-              
-              
-           \  
-            \ 
-              
-*/
-
-       [15] = 0x0210,
-/*
-CHAR 47 '/'
-              
-            / 
-           /  
-              
-         /    
-        /     
-              
-*/
-
-       [16] = 0x3333,
-/*
-CHAR 48 '0'
-        ----- 
-       |    /|
-       |   / |
-              
-       | /   |
-       |/    |
-        ----- 
-*/
-
-       [17] = 0x1030,
-/*
-CHAR 49 '1'
-              
-            /|
-           / |
-              
-             |
-             |
-              
-*/
-
-       [18] = 0x21e1,
-/*
-CHAR 50 '2'
-        ----- 
-             |
-             |
-        -- -- 
-       |      
-       |      
-        ----- 
-*/
-
-       [19] = 0x30a1,
-/*
-CHAR 51 '3'
-        ----- 
-             |
-             |
-           -- 
-             |
-             |
-        ----- 
-*/
-
-       [20] = 0x10e2,
-/*
-CHAR 52 '4'
-              
-       |     |
-       |     |
-        -- -- 
-             |
-             |
-              
-*/
-
-       [21] = 0x30c3,
-/*
-CHAR 53 '5'
-        ----- 
-       |      
-       |      
-        -- -- 
-             |
-             |
-        ----- 
-*/
-
-       [22] = 0x31c3,
-/*
-CHAR 54 '6'
-        ----- 
-       |      
-       |      
-        -- -- 
-       |     |
-       |     |
-        ----- 
-*/
-
-       [23] = 0x0411,
-/*
-CHAR 55 '7'
-        ----- 
-            / 
-           /  
-              
-          |   
-          |   
-              
-*/
-
-       [24] = 0x31e3,
-/*
-CHAR 56 '8'
-        ----- 
-       |     |
-       |     |
-        -- -- 
-       |     |
-       |     |
-        ----- 
-*/
-
-       [25] = 0x10e3,
-/*
-CHAR 57 '9'
-        ----- 
-       |     |
-       |     |
-        -- -- 
-             |
-             |
-              
-*/
-
-       [26] = 0x0408,
-/*
-CHAR 58 ':'
-              
-          |   
-          |   
-              
-          |   
-          |   
-              
-*/
-
-       [27] = 0x0208,
-/*
-CHAR 59 ';'
-              
-          |   
-          |   
-              
-         /    
-        /     
-              
-*/
-
-       [28] = 0x0810,
-/*
-CHAR 60 '<'
-              
-            / 
-           /  
-              
-           \  
-            \ 
-              
-*/
-
-       [29] = 0x20c0,
-/*
-CHAR 61 '='
-              
-              
-              
-        -- -- 
-              
-              
-        ----- 
-*/
-
-       [30] = 0x0204,
-/*
-CHAR 62 '>'
-              
-        \     
-         \    
-              
-         /    
-        /     
-              
-*/
-
-       [31] = 0x0413,
-/*
-CHAR 63 '?'
-        ----- 
-       |    / 
-       |   /  
-              
-          |   
-          |   
-              
-*/
-
-       [32] = 0x39b3,
-/*
-CHAR 64 '@'
-        ----- 
-       |    /|
-       |   / |
-           -- 
-       |   \ |
-       |    \|
-        ----- 
-*/
-
-       [33] = 0x11e3,
-/*
-CHAR 65 'A'
-        ----- 
-       |     |
-       |     |
-        -- -- 
-       |     |
-       |     |
-              
-*/
-
-       [34] = 0x34a9,
-/*
-CHAR 66 'B'
-        ----- 
-          |  |
-          |  |
-           -- 
-          |  |
-          |  |
-        ----- 
-*/
-
-       [35] = 0x2103,
-/*
-CHAR 67 'C'
-        ----- 
-       |      
-       |      
-              
-       |      
-       |      
-        ----- 
-*/
-
-       [36] = 0x3429,
-/*
-CHAR 68 'D'
-        ----- 
-          |  |
-          |  |
-              
-          |  |
-          |  |
-        ----- 
-*/
-
-       [37] = 0x2143,
-/*
-CHAR 69 'E'
-        ----- 
-       |      
-       |      
-        --    
-       |      
-       |      
-        ----- 
-*/
-
-       [38] = 0x0143,
-/*
-CHAR 70 'F'
-        ----- 
-       |      
-       |      
-        --    
-       |      
-       |      
-              
-*/
-
-       [39] = 0x3183,
-/*
-CHAR 71 'G'
-        ----- 
-       |      
-       |      
-           -- 
-       |     |
-       |     |
-        ----- 
-*/
-
-       [40] = 0x11e2,
-/*
-CHAR 72 'H'
-              
-       |     |
-       |     |
-        -- -- 
-       |     |
-       |     |
-              
-*/
-
-       [41] = 0x2409,
-/*
-CHAR 73 'I'
-        ----- 
-          |   
-          |   
-              
-          |   
-          |   
-        ----- 
-*/
-
-       [42] = 0x3120,
-/*
-CHAR 74 'J'
-              
-             |
-             |
-              
-       |     |
-       |     |
-        ----- 
-*/
-
-       [43] = 0x0952,
-/*
-CHAR 75 'K'
-              
-       |    / 
-       |   /  
-        --    
-       |   \  
-       |    \ 
-              
-*/
-
-       [44] = 0x2102,
-/*
-CHAR 76 'L'
-              
-       |      
-       |      
-              
-       |      
-       |      
-        ----- 
-*/
-
-       [45] = 0x1136,
-/*
-CHAR 77 'M'
-              
-       |\   /|
-       | \ / |
-              
-       |     |
-       |     |
-              
-*/
-
-       [46] = 0x1926,
-/*
-CHAR 78 'N'
-              
-       |\    |
-       | \   |
-              
-       |   \ |
-       |    \|
-              
-*/
-
-       [47] = 0x3123,
-/*
-CHAR 79 'O'
-        ----- 
-       |     |
-       |     |
-              
-       |     |
-       |     |
-        ----- 
-*/
+#ifndef _AO_LCD_FONT_H_
+#define _AO_LCD_FONT_H_
 
-       [48] = 0x01e3,
-/*
-CHAR 80 'P'
-        ----- 
-       |     |
-       |     |
-        -- -- 
-       |      
-       |      
-              
-*/
-
-       [49] = 0x3923,
-/*
-CHAR 81 'Q'
-        ----- 
-       |     |
-       |     |
-              
-       |   \ |
-       |    \|
-        ----- 
-*/
-
-       [50] = 0x09e3,
-/*
-CHAR 82 'R'
-        ----- 
-       |     |
-       |     |
-        -- -- 
-       |   \  
-       |    \ 
-              
-*/
-
-       [51] = 0x3085,
-/*
-CHAR 83 'S'
-        ----- 
-        \     
-         \    
-           -- 
-             |
-             |
-        ----- 
-*/
-
-       [52] = 0x0409,
-/*
-CHAR 84 'T'
-        ----- 
-          |   
-          |   
-              
-          |   
-          |   
-              
-*/
-
-       [53] = 0x3122,
-/*
-CHAR 85 'U'
-              
-       |     |
-       |     |
-              
-       |     |
-       |     |
-        ----- 
-*/
-
-       [54] = 0x0312,
-/*
-CHAR 86 'V'
-              
-       |    / 
-       |   /  
-              
-       | /    
-       |/     
-              
-*/
-
-       [55] = 0x1b22,
-/*
-CHAR 87 'W'
-              
-       |     |
-       |     |
-              
-       | / \ |
-       |/   \|
-              
-*/
-
-       [56] = 0x0a14,
-/*
-CHAR 88 'X'
-              
-        \   / 
-         \ /  
-              
-         / \  
-        /   \ 
-              
-*/
-
-       [57] = 0x0414,
-/*
-CHAR 89 'Y'
-              
-        \   / 
-         \ /  
-              
-          |   
-          |   
-              
-*/
-
-       [58] = 0x2211,
-/*
-CHAR 90 'Z'
-        ----- 
-            / 
-           /  
-              
-         /    
-        /     
-        ----- 
-*/
+void
+ao_lcd_font_init(void);
 
-       [59] = 0x2103,
-/*
-CHAR 91 '['
-        ----- 
-       |      
-       |      
-              
-       |      
-       |      
-        ----- 
-*/
-
-       [60] = 0x0804,
-/*
-CHAR 92 '\'
-              
-        \     
-         \    
-              
-           \  
-            \ 
-              
-*/
+void
+ao_lcd_font_string(char *s);
 
-       [61] = 0x3021,
-/*
-CHAR 93 ']'
-        ----- 
-             |
-             |
-              
-             |
-             |
-        ----- 
-*/
-
-       [62] = 0x0023,
-/*
-CHAR 94 '^'
-        ----- 
-       |     |
-       |     |
-              
-              
-              
-              
-*/
-
-       [63] = 0x2000,
-/*
-CHAR 95 '_'
-              
-              
-              
-              
-              
-              
-        ----- 
-*/
-
-       [64] = 0x0004,
-/*
-CHAR 96 '`'
-              
-        \     
-         \    
-              
-              
-              
-              
-*/
-
-       [65] = 0x2540,
-/*
-CHAR 97 'a'
-              
-              
-              
-        --    
-       |  |   
-       |  |   
-        ----- 
-*/
-
-       [66] = 0x2942,
-/*
-CHAR 98 'b'
-              
-       |      
-       |      
-        --    
-       |   \  
-       |    \ 
-        ----- 
-*/
-
-       [67] = 0x21c0,
-/*
-CHAR 99 'c'
-              
-              
-              
-        -- -- 
-       |      
-       |      
-        ----- 
-*/
-
-       [68] = 0x32a0,
-/*
-CHAR 100 'd'
-              
-             |
-             |
-           -- 
-         /   |
-        /    |
-        ----- 
-*/
-
-       [69] = 0x2340,
-/*
-CHAR 101 'e'
-              
-              
-              
-        --    
-       | /    
-       |/     
-        ----- 
-*/
-
-       [70] = 0x0143,
-/*
-CHAR 102 'f'
-        ----- 
-       |      
-       |      
-        --    
-       |      
-       |      
-              
-*/
-
-       [71] = 0x10a5,
-/*
-CHAR 103 'g'
-        ----- 
-        \    |
-         \   |
-           -- 
-             |
-             |
-              
-*/
-
-       [72] = 0x11c2,
-/*
-CHAR 104 'h'
-              
-       |      
-       |      
-        -- -- 
-       |     |
-       |     |
-              
-*/
-
-       [73] = 0x0400,
-/*
-CHAR 105 'i'
-              
-              
-              
-              
-          |   
-          |   
-              
-*/
-
-       [74] = 0x3000,
-/*
-CHAR 106 'j'
-              
-              
-              
-              
-             |
-             |
-        ----- 
-*/
-
-       [75] = 0x0c88,
-/*
-CHAR 107 'k'
-              
-          |   
-          |   
-           -- 
-          |\  
-          | \ 
-              
-*/
-
-       [76] = 0x0408,
-/*
-CHAR 108 'l'
-              
-          |   
-          |   
-              
-          |   
-          |   
-              
-*/
-
-       [77] = 0x15c0,
-/*
-CHAR 109 'm'
-              
-              
-              
-        -- -- 
-       |  |  |
-       |  |  |
-              
-*/
-
-       [78] = 0x0940,
-/*
-CHAR 110 'n'
-              
-              
-              
-        --    
-       |   \  
-       |    \ 
-              
-*/
-
-       [79] = 0x31c0,
-/*
-CHAR 111 'o'
-              
-              
-              
-        -- -- 
-       |     |
-       |     |
-        ----- 
-*/
-
-       [80] = 0x0146,
-/*
-CHAR 112 'p'
-              
-       |\     
-       | \    
-        --    
-       |      
-       |      
-              
-*/
-
-       [81] = 0x10b0,
-/*
-CHAR 113 'q'
-              
-            /|
-           / |
-           -- 
-             |
-             |
-              
-*/
-
-       [82] = 0x0140,
-/*
-CHAR 114 'r'
-              
-              
-              
-        --    
-       |      
-       |      
-              
-*/
-
-       [83] = 0x2880,
-/*
-CHAR 115 's'
-              
-              
-              
-           -- 
-           \  
-            \ 
-        ----- 
-*/
-
-       [84] = 0x2142,
-/*
-CHAR 116 't'
-              
-       |      
-       |      
-        --    
-       |      
-       |      
-        ----- 
-*/
-
-       [85] = 0x3100,
-/*
-CHAR 117 'u'
-              
-              
-              
-              
-       |     |
-       |     |
-        ----- 
-*/
-
-       [86] = 0x0300,
-/*
-CHAR 118 'v'
-              
-              
-              
-              
-       | /    
-       |/     
-              
-*/
-
-       [87] = 0x1b00,
-/*
-CHAR 119 'w'
-              
-              
-              
-              
-       | / \ |
-       |/   \|
-              
-*/
-
-       [88] = 0x0a14,
-/*
-CHAR 120 'x'
-              
-        \   / 
-         \ /  
-              
-         / \  
-        /   \ 
-              
-*/
-
-       [89] = 0x3800,
-/*
-CHAR 121 'y'
-              
-              
-              
-              
-           \ |
-            \|
-        ----- 
-*/
-
-       [90] = 0x2240,
-/*
-CHAR 122 'z'
-              
-              
-              
-        --    
-         /    
-        /     
-        ----- 
-*/
-
-       [91] = 0x2245,
-/*
-CHAR 123 '{'
-        ----- 
-        \     
-         \    
-        --    
-         /    
-        /     
-        ----- 
-*/
-
-       [92] = 0x0408,
-/*
-CHAR 124 '|'
-              
-          |   
-          |   
-              
-          |   
-          |   
-              
-*/
-
-       [93] = 0x2891,
-/*
-CHAR 125 '}'
-        ----- 
-            / 
-           /  
-           -- 
-           \  
-            \ 
-        ----- 
-*/
-
-       [94] = 0x000e,
-/*
-CHAR 126 '~'
-              
-       |\ |   
-       | \|   
-              
-              
-              
-              
-*/
-
-       [95] = 0x3fff,
-/*
-CHAR 127 'DEL'
-        ----- 
-       |\ | /|
-       | \|/ |
-        -- -- 
-       | /|\ |
-       |/ | \|
-        ----- 
-*/
+void
+ao_lcd_font_char(uint8_t pos, char c, uint16_t flags);
 
+#endif /* _AO_LCD_FONT_H_ */
diff --git a/src/stm/ao_lcd_font_bits.h b/src/stm/ao_lcd_font_bits.h
new file mode 100644 (file)
index 0000000..08adc9a
--- /dev/null
@@ -0,0 +1,1152 @@
+       [0] = 0x0000,
+/*
+CHAR 32 ' '
+              
+              
+              
+              
+              
+              
+              
+*/
+
+       [1] = 0x0102,
+/*
+CHAR 33 '!'
+              
+       |      
+       |      
+              
+       |      
+       |      
+              
+*/
+
+       [2] = 0x000a,
+/*
+CHAR 34 '"'
+              
+       |  |   
+       |  |   
+              
+              
+              
+              
+*/
+
+       [3] = 0x05e8,
+/*
+CHAR 35 '#'
+              
+          |  |
+          |  |
+        -- -- 
+       |  |   
+       |  |   
+              
+*/
+
+       [4] = 0x34cb,
+/*
+CHAR 36 '$'
+        ----- 
+       |  |   
+       |  |   
+        -- -- 
+          |  |
+          |  |
+        ----- 
+*/
+
+       [5] = 0x1212,
+/*
+CHAR 37 '%'
+              
+       |    / 
+       |   /  
+              
+         /   |
+        /    |
+              
+*/
+
+       [6] = 0x2955,
+/*
+CHAR 38 '&'
+        ----- 
+        \   / 
+         \ /  
+        --    
+       |   \  
+       |    \ 
+        ----- 
+*/
+
+       [7] = 0x0008,
+/*
+CHAR 39 '''
+              
+          |   
+          |   
+              
+              
+              
+              
+*/
+
+       [8] = 0x2103,
+/*
+CHAR 40 '('
+        ----- 
+       |      
+       |      
+              
+       |      
+       |      
+        ----- 
+*/
+
+       [9] = 0x3021,
+/*
+CHAR 41 ')'
+        ----- 
+             |
+             |
+              
+             |
+             |
+        ----- 
+*/
+
+       [10] = 0x0e1c,
+/*
+CHAR 42 '*'
+              
+        \ | / 
+         \|/  
+              
+         /|\  
+        / | \ 
+              
+*/
+
+       [11] = 0x04c8,
+/*
+CHAR 43 '+'
+              
+          |   
+          |   
+        -- -- 
+          |   
+          |   
+              
+*/
+
+       [12] = 0x0200,
+/*
+CHAR 44 ','
+              
+              
+              
+              
+         /    
+        /     
+              
+*/
+
+       [13] = 0x00c0,
+/*
+CHAR 45 '-'
+              
+              
+              
+        -- -- 
+              
+              
+              
+*/
+
+       [14] = 0x0800,
+/*
+CHAR 46 '.'
+              
+              
+              
+              
+           \  
+            \ 
+              
+*/
+
+       [15] = 0x0210,
+/*
+CHAR 47 '/'
+              
+            / 
+           /  
+              
+         /    
+        /     
+              
+*/
+
+       [16] = 0x3333,
+/*
+CHAR 48 '0'
+        ----- 
+       |    /|
+       |   / |
+              
+       | /   |
+       |/    |
+        ----- 
+*/
+
+       [17] = 0x1030,
+/*
+CHAR 49 '1'
+              
+            /|
+           / |
+              
+             |
+             |
+              
+*/
+
+       [18] = 0x21e1,
+/*
+CHAR 50 '2'
+        ----- 
+             |
+             |
+        -- -- 
+       |      
+       |      
+        ----- 
+*/
+
+       [19] = 0x30a1,
+/*
+CHAR 51 '3'
+        ----- 
+             |
+             |
+           -- 
+             |
+             |
+        ----- 
+*/
+
+       [20] = 0x10e2,
+/*
+CHAR 52 '4'
+              
+       |     |
+       |     |
+        -- -- 
+             |
+             |
+              
+*/
+
+       [21] = 0x30c3,
+/*
+CHAR 53 '5'
+        ----- 
+       |      
+       |      
+        -- -- 
+             |
+             |
+        ----- 
+*/
+
+       [22] = 0x31c3,
+/*
+CHAR 54 '6'
+        ----- 
+       |      
+       |      
+        -- -- 
+       |     |
+       |     |
+        ----- 
+*/
+
+       [23] = 0x0411,
+/*
+CHAR 55 '7'
+        ----- 
+            / 
+           /  
+              
+          |   
+          |   
+              
+*/
+
+       [24] = 0x31e3,
+/*
+CHAR 56 '8'
+        ----- 
+       |     |
+       |     |
+        -- -- 
+       |     |
+       |     |
+        ----- 
+*/
+
+       [25] = 0x10e3,
+/*
+CHAR 57 '9'
+        ----- 
+       |     |
+       |     |
+        -- -- 
+             |
+             |
+              
+*/
+
+       [26] = 0x0408,
+/*
+CHAR 58 ':'
+              
+          |   
+          |   
+              
+          |   
+          |   
+              
+*/
+
+       [27] = 0x0208,
+/*
+CHAR 59 ';'
+              
+          |   
+          |   
+              
+         /    
+        /     
+              
+*/
+
+       [28] = 0x0810,
+/*
+CHAR 60 '<'
+              
+            / 
+           /  
+              
+           \  
+            \ 
+              
+*/
+
+       [29] = 0x20c0,
+/*
+CHAR 61 '='
+              
+              
+              
+        -- -- 
+              
+              
+        ----- 
+*/
+
+       [30] = 0x0204,
+/*
+CHAR 62 '>'
+              
+        \     
+         \    
+              
+         /    
+        /     
+              
+*/
+
+       [31] = 0x0413,
+/*
+CHAR 63 '?'
+        ----- 
+       |    / 
+       |   /  
+              
+          |   
+          |   
+              
+*/
+
+       [32] = 0x39b3,
+/*
+CHAR 64 '@'
+        ----- 
+       |    /|
+       |   / |
+           -- 
+       |   \ |
+       |    \|
+        ----- 
+*/
+
+       [33] = 0x11e3,
+/*
+CHAR 65 'A'
+        ----- 
+       |     |
+       |     |
+        -- -- 
+       |     |
+       |     |
+              
+*/
+
+       [34] = 0x34a9,
+/*
+CHAR 66 'B'
+        ----- 
+          |  |
+          |  |
+           -- 
+          |  |
+          |  |
+        ----- 
+*/
+
+       [35] = 0x2103,
+/*
+CHAR 67 'C'
+        ----- 
+       |      
+       |      
+              
+       |      
+       |      
+        ----- 
+*/
+
+       [36] = 0x3429,
+/*
+CHAR 68 'D'
+        ----- 
+          |  |
+          |  |
+              
+          |  |
+          |  |
+        ----- 
+*/
+
+       [37] = 0x2143,
+/*
+CHAR 69 'E'
+        ----- 
+       |      
+       |      
+        --    
+       |      
+       |      
+        ----- 
+*/
+
+       [38] = 0x0143,
+/*
+CHAR 70 'F'
+        ----- 
+       |      
+       |      
+        --    
+       |      
+       |      
+              
+*/
+
+       [39] = 0x3183,
+/*
+CHAR 71 'G'
+        ----- 
+       |      
+       |      
+           -- 
+       |     |
+       |     |
+        ----- 
+*/
+
+       [40] = 0x11e2,
+/*
+CHAR 72 'H'
+              
+       |     |
+       |     |
+        -- -- 
+       |     |
+       |     |
+              
+*/
+
+       [41] = 0x2409,
+/*
+CHAR 73 'I'
+        ----- 
+          |   
+          |   
+              
+          |   
+          |   
+        ----- 
+*/
+
+       [42] = 0x3120,
+/*
+CHAR 74 'J'
+              
+             |
+             |
+              
+       |     |
+       |     |
+        ----- 
+*/
+
+       [43] = 0x0952,
+/*
+CHAR 75 'K'
+              
+       |    / 
+       |   /  
+        --    
+       |   \  
+       |    \ 
+              
+*/
+
+       [44] = 0x2102,
+/*
+CHAR 76 'L'
+              
+       |      
+       |      
+              
+       |      
+       |      
+        ----- 
+*/
+
+       [45] = 0x1136,
+/*
+CHAR 77 'M'
+              
+       |\   /|
+       | \ / |
+              
+       |     |
+       |     |
+              
+*/
+
+       [46] = 0x1926,
+/*
+CHAR 78 'N'
+              
+       |\    |
+       | \   |
+              
+       |   \ |
+       |    \|
+              
+*/
+
+       [47] = 0x3123,
+/*
+CHAR 79 'O'
+        ----- 
+       |     |
+       |     |
+              
+       |     |
+       |     |
+        ----- 
+*/
+
+       [48] = 0x01e3,
+/*
+CHAR 80 'P'
+        ----- 
+       |     |
+       |     |
+        -- -- 
+       |      
+       |      
+              
+*/
+
+       [49] = 0x3923,
+/*
+CHAR 81 'Q'
+        ----- 
+       |     |
+       |     |
+              
+       |   \ |
+       |    \|
+        ----- 
+*/
+
+       [50] = 0x09e3,
+/*
+CHAR 82 'R'
+        ----- 
+       |     |
+       |     |
+        -- -- 
+       |   \  
+       |    \ 
+              
+*/
+
+       [51] = 0x3085,
+/*
+CHAR 83 'S'
+        ----- 
+        \     
+         \    
+           -- 
+             |
+             |
+        ----- 
+*/
+
+       [52] = 0x0409,
+/*
+CHAR 84 'T'
+        ----- 
+          |   
+          |   
+              
+          |   
+          |   
+              
+*/
+
+       [53] = 0x3122,
+/*
+CHAR 85 'U'
+              
+       |     |
+       |     |
+              
+       |     |
+       |     |
+        ----- 
+*/
+
+       [54] = 0x0312,
+/*
+CHAR 86 'V'
+              
+       |    / 
+       |   /  
+              
+       | /    
+       |/     
+              
+*/
+
+       [55] = 0x1b22,
+/*
+CHAR 87 'W'
+              
+       |     |
+       |     |
+              
+       | / \ |
+       |/   \|
+              
+*/
+
+       [56] = 0x0a14,
+/*
+CHAR 88 'X'
+              
+        \   / 
+         \ /  
+              
+         / \  
+        /   \ 
+              
+*/
+
+       [57] = 0x0414,
+/*
+CHAR 89 'Y'
+              
+        \   / 
+         \ /  
+              
+          |   
+          |   
+              
+*/
+
+       [58] = 0x2211,
+/*
+CHAR 90 'Z'
+        ----- 
+            / 
+           /  
+              
+         /    
+        /     
+        ----- 
+*/
+
+       [59] = 0x2103,
+/*
+CHAR 91 '['
+        ----- 
+       |      
+       |      
+              
+       |      
+       |      
+        ----- 
+*/
+
+       [60] = 0x0804,
+/*
+CHAR 92 '\'
+              
+        \     
+         \    
+              
+           \  
+            \ 
+              
+*/
+
+       [61] = 0x3021,
+/*
+CHAR 93 ']'
+        ----- 
+             |
+             |
+              
+             |
+             |
+        ----- 
+*/
+
+       [62] = 0x0023,
+/*
+CHAR 94 '^'
+        ----- 
+       |     |
+       |     |
+              
+              
+              
+              
+*/
+
+       [63] = 0x2000,
+/*
+CHAR 95 '_'
+              
+              
+              
+              
+              
+              
+        ----- 
+*/
+
+       [64] = 0x0004,
+/*
+CHAR 96 '`'
+              
+        \     
+         \    
+              
+              
+              
+              
+*/
+
+       [65] = 0x2540,
+/*
+CHAR 97 'a'
+              
+              
+              
+        --    
+       |  |   
+       |  |   
+        ----- 
+*/
+
+       [66] = 0x2942,
+/*
+CHAR 98 'b'
+              
+       |      
+       |      
+        --    
+       |   \  
+       |    \ 
+        ----- 
+*/
+
+       [67] = 0x21c0,
+/*
+CHAR 99 'c'
+              
+              
+              
+        -- -- 
+       |      
+       |      
+        ----- 
+*/
+
+       [68] = 0x32a0,
+/*
+CHAR 100 'd'
+              
+             |
+             |
+           -- 
+         /   |
+        /    |
+        ----- 
+*/
+
+       [69] = 0x2340,
+/*
+CHAR 101 'e'
+              
+              
+              
+        --    
+       | /    
+       |/     
+        ----- 
+*/
+
+       [70] = 0x0143,
+/*
+CHAR 102 'f'
+        ----- 
+       |      
+       |      
+        --    
+       |      
+       |      
+              
+*/
+
+       [71] = 0x10a5,
+/*
+CHAR 103 'g'
+        ----- 
+        \    |
+         \   |
+           -- 
+             |
+             |
+              
+*/
+
+       [72] = 0x11c2,
+/*
+CHAR 104 'h'
+              
+       |      
+       |      
+        -- -- 
+       |     |
+       |     |
+              
+*/
+
+       [73] = 0x0400,
+/*
+CHAR 105 'i'
+              
+              
+              
+              
+          |   
+          |   
+              
+*/
+
+       [74] = 0x3000,
+/*
+CHAR 106 'j'
+              
+              
+              
+              
+             |
+             |
+        ----- 
+*/
+
+       [75] = 0x0c88,
+/*
+CHAR 107 'k'
+              
+          |   
+          |   
+           -- 
+          |\  
+          | \ 
+              
+*/
+
+       [76] = 0x0408,
+/*
+CHAR 108 'l'
+              
+          |   
+          |   
+              
+          |   
+          |   
+              
+*/
+
+       [77] = 0x15c0,
+/*
+CHAR 109 'm'
+              
+              
+              
+        -- -- 
+       |  |  |
+       |  |  |
+              
+*/
+
+       [78] = 0x0940,
+/*
+CHAR 110 'n'
+              
+              
+              
+        --    
+       |   \  
+       |    \ 
+              
+*/
+
+       [79] = 0x31c0,
+/*
+CHAR 111 'o'
+              
+              
+              
+        -- -- 
+       |     |
+       |     |
+        ----- 
+*/
+
+       [80] = 0x0146,
+/*
+CHAR 112 'p'
+              
+       |\     
+       | \    
+        --    
+       |      
+       |      
+              
+*/
+
+       [81] = 0x10b0,
+/*
+CHAR 113 'q'
+              
+            /|
+           / |
+           -- 
+             |
+             |
+              
+*/
+
+       [82] = 0x0140,
+/*
+CHAR 114 'r'
+              
+              
+              
+        --    
+       |      
+       |      
+              
+*/
+
+       [83] = 0x2880,
+/*
+CHAR 115 's'
+              
+              
+              
+           -- 
+           \  
+            \ 
+        ----- 
+*/
+
+       [84] = 0x2142,
+/*
+CHAR 116 't'
+              
+       |      
+       |      
+        --    
+       |      
+       |      
+        ----- 
+*/
+
+       [85] = 0x3100,
+/*
+CHAR 117 'u'
+              
+              
+              
+              
+       |     |
+       |     |
+        ----- 
+*/
+
+       [86] = 0x0300,
+/*
+CHAR 118 'v'
+              
+              
+              
+              
+       | /    
+       |/     
+              
+*/
+
+       [87] = 0x1b00,
+/*
+CHAR 119 'w'
+              
+              
+              
+              
+       | / \ |
+       |/   \|
+              
+*/
+
+       [88] = 0x0a14,
+/*
+CHAR 120 'x'
+              
+        \   / 
+         \ /  
+              
+         / \  
+        /   \ 
+              
+*/
+
+       [89] = 0x3800,
+/*
+CHAR 121 'y'
+              
+              
+              
+              
+           \ |
+            \|
+        ----- 
+*/
+
+       [90] = 0x2240,
+/*
+CHAR 122 'z'
+              
+              
+              
+        --    
+         /    
+        /     
+        ----- 
+*/
+
+       [91] = 0x2245,
+/*
+CHAR 123 '{'
+        ----- 
+        \     
+         \    
+        --    
+         /    
+        /     
+        ----- 
+*/
+
+       [92] = 0x0408,
+/*
+CHAR 124 '|'
+              
+          |   
+          |   
+              
+          |   
+          |   
+              
+*/
+
+       [93] = 0x2891,
+/*
+CHAR 125 '}'
+        ----- 
+            / 
+           /  
+           -- 
+           \  
+            \ 
+        ----- 
+*/
+
+       [94] = 0x000e,
+/*
+CHAR 126 '~'
+              
+       |\ |   
+       | \|   
+              
+              
+              
+              
+*/
+
+       [95] = 0x3fff,
+/*
+CHAR 127 'DEL'
+        ----- 
+       |\ | /|
+       | \|/ |
+        -- -- 
+       | /|\ |
+       |/ | \|
+        ----- 
+*/
+