├── CMakeLists.txt ├── LICENSE ├── README.md ├── framebuffer.S ├── main.c ├── monprom.c ├── monprom.h ├── pico_extras_import.cmake └── pico_sdk_import.cmake /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.13) 2 | set(PICO_BOARD vgaboard) 3 | include(pico_sdk_import.cmake) 4 | include(pico_extras_import.cmake) 5 | project(vga_framebuf_project C CXX ASM) 6 | set(CMAKE_C_STANDARD 11) 7 | set(CMAKE_CXX_STANDARD 17) 8 | 9 | pico_sdk_init() 10 | add_executable(vga_framebuf 11 | main.c 12 | monprom.c 13 | framebuffer.S 14 | ) 15 | target_compile_definitions(vga_framebuf PUBLIC -DPICO_SCANVIDEO_MAX_SCANLINE_BUFFER_WORDS=322 16 | -DPICO_SCANVIDEO_SCANLINE_BUFFER_COUNT=8) 17 | 18 | pico_enable_stdio_uart(vga_framebuf 0) 19 | pico_enable_stdio_usb(vga_framebuf 0) 20 | pico_add_extra_outputs(vga_framebuf) 21 | target_link_libraries(vga_framebuf PRIVATE 22 | pico_stdlib 23 | pico_scanvideo_dpi 24 | pico_multicore 25 | hardware_interp) 26 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2021, Memotech-Bill 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | 3. Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Raspberry Pi Pico - VGA 640x480 Framebuffer 2 | =========================================== 3 | 4 | This code is a quick trial of a 640x480 framebuffer using the RPi scanvideo code 5 | https://github.com/raspberrypi/pico-extras/tree/master/src/common/pico_scanvideo 6 | 7 | 640x480 = 307,200 pixels, but the Pico only has 264 kB of RAM. Thus each pixel can 8 | only be 4-bits (giving 16 colours) with each byte of the frame buffer containing two 9 | pixels. 10 | 11 | As described in the above reference, to generate video a scanvideo_scanline_buffer->data buffer 12 | must be filled with the pixels to be displayed. A single RAW_RUN is used for 641 pixels, including 13 | a black pixel at the end of the run. The pixels in the scanline buffer are described as 16-bit values. 14 | 15 | The problem is to convert the 4-bit values in the framebuffer to 16-bit values in the scanline 16 | buffer fast enough to keep up with the video generation. 17 | 18 | The solution is not to use a palette of 16 colours but a double palette of 256 colour pairs. 19 | This enables each byte in the frame buffer to be rapidly converted into a 32-bit word containing 20 | the colours of the two pixels, ready to be loaded into the scanline buffer. Even with this trick 21 | it is necessary to over-clock the Pico. 22 | 23 | The code has now been revised to make use of the routine provided by @kilograham to use the Pico 24 | interpolater to accelerate the palette expansion. 25 | https://www.raspberrypi.org/forums/viewtopic.php?f=145&t=305712&p=1848868#p1848706 26 | Using this it is no longer necessary to overclock the Pico. 27 | 28 | At present the code just displays the contents of fbuf[], which is filled with some sample text. 29 | The code is only using one core, so it will be possible to use the second core to generate or 30 | update the text to be displayed. 31 | 32 | To use, fill an array of sixteen uint16_t values with the RGB definitions of the colours you wish 33 | to use. Then call set_colours() with that array to populate the double palette (dblpal). 34 | 35 | A couple of routines, plot_point() and plot_text(), for writing to the frame buffer are supplied. 36 | 37 | 38 | Build Instructions 39 | ------------------ 40 | 41 | You require pico-sdk and pico-extras from Raspberry Pi. Then from the folder containing these: 42 | ``` 43 | git clone https://github.com/Memotech-Bill/pico-vga-framebuffer.git 44 | cd pico-vga-framebuffer 45 | mkdir build 46 | cd build 47 | cmake .. 48 | make 49 | ``` 50 | -------------------------------------------------------------------------------- /framebuffer.S: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020 Graham Sanderson 3 | * 4 | * WJB 9/ 4/21 Additional commenting 5 | * 6 | * SPDX-License-Identifier: BSD-3-Clause 7 | */ 8 | 9 | #include "hardware/regs/sio.h" 10 | #include "hardware/regs/addressmap.h" 11 | 12 | .cpu cortex-m0plus 13 | .thumb 14 | 15 | .section .time_critical.pal16 16 | 17 | #define INTERP_OFFSET0(x) (x - SIO_INTERP0_ACCUM0_OFFSET) 18 | #define INTERP_OFFSET1(x) (INTERP_OFFSET0(x) + SIO_INTERP1_ACCUM0_OFFSET - SIO_INTERP0_ACCUM0_OFFSET) 19 | 20 | // setup: note palette is 256 entries of 32bits; i.e. all 2 pixel combinations 21 | // 22 | // interp_config c = interp_default_config(); 23 | // interp_config_set_shift(&c, 22); 24 | // interp_config_set_mask(&c, 2, 9); 25 | // interp_set_config(interp0, 0, &c); 26 | // interp_config_set_shift(&c, 14); 27 | // interp_config_set_cross_input(&c, true); 28 | // interp_set_config(interp0, 1, &c); 29 | // interp_set_base(interp0, 0, (uintptr_t)palette256); 30 | // interp_set_base(interp0, 1, (uintptr_t)palette256); 31 | 32 | // dest - pixel buffer 16bpp 33 | // src - source pixel buffer 4bpp (must be 32 bit aligned) 34 | // count - is number of pixels to convert / 2 35 | // extern void convert_from_pal16(uint32_t *dest, uint8_t *src, uint count); 36 | // r0 = &dest 37 | // r1 = &src 38 | // r2 = count 39 | 40 | .global convert_from_pal16 41 | .type convert_from_pal16,%function 42 | .thumb_func 43 | convert_from_pal16: 44 | push {r4-r7, lr} // Save registers 45 | add r2, r1 // r2 = &src + count 46 | ldr r7, =(SIO_BASE + SIO_INTERP0_ACCUM0_OFFSET) // Address of SIO_INTERP0 registers 47 | 48 | 1: 49 | ldmia r1!, {r3} // r3 = *(src++) 50 | str r3, [r7, #INTERP_OFFSET0(SIO_INTERP0_ACCUM0_OFFSET)] // SIO_INTERP0_ACCUM0 = r3 51 | ldr r6, [r7, #INTERP_OFFSET0(SIO_INTERP0_PEEK_LANE0_OFFSET)] // r6 = SIO_INTERP0_PEEK_LANE0 52 | ldr r5, [r7, #INTERP_OFFSET0(SIO_INTERP0_PEEK_LANE1_OFFSET)] // r5 = SIO_INTERP0_PEEK_LANE1 53 | ldr r6, [r6] // r6 = *(r6) = palette256[r3>>24] 54 | ldr r5, [r5] // r5 = *(r5) = palette256[(r3>>16)&0xFF] 55 | lsl r3, #16 // r3 <<= 16 56 | str r3, [r7, #INTERP_OFFSET0(SIO_INTERP0_ACCUM0_OFFSET)] // SIO_INTERP0_ACCUM0 = r3 57 | ldr r4, [r7, #INTERP_OFFSET0(SIO_INTERP0_PEEK_LANE0_OFFSET)] // r4 = SIO_INTERP0_PEEK_LANE0 58 | ldr r3, [r7, #INTERP_OFFSET0(SIO_INTERP0_PEEK_LANE1_OFFSET)] // r3 = SIO_INTERP0_PEEK_LANE1 59 | ldr r4, [r4] // r4 = *(r4) = palette256[r3>>24] 60 | ldr r3, [r3] // r3 = *(r3) = palette256[(r3>>16)&0xFF] 61 | stmia r0!, {r3, r4, r5, r6} // *(dest++) = r3, *(dest++) = r4, *(dest++) = r5, *(dest++) = r6 62 | cmp r1, r2 // Compare (r1 - r2) 63 | blo 1b // Repeat if r1 < r2 (= &src[count]) 64 | 65 | pop {r4-r7, pc} // Restore registers and exit 66 | -------------------------------------------------------------------------------- /main.c: -------------------------------------------------------------------------------- 1 | /* main.c - The main program 2 | 3 | WJB 8/ 4/21 Experimenting with a 640x480x4-bit (16 colour) framebuffer. 4 | WJB 9/ 4/21 Use Pico Interpolater code from @kilograham 5 | 6 | */ 7 | 8 | #define USE_INTERP 1 9 | 10 | #include "pico.h" 11 | #include "pico/stdlib.h" 12 | #include "pico/scanvideo.h" 13 | #include "pico/scanvideo/composable_scanline.h" 14 | #include "pico/multicore.h" 15 | #include "hardware/clocks.h" 16 | #if USE_INTERP == 1 17 | #include "hardware/interp.h" 18 | #endif 19 | #include "monprom.h" 20 | #include 21 | #include 22 | 23 | #define WIDTH 640 24 | #define HEIGHT 480 25 | #define NCLR 16 26 | 27 | uint16_t colours[NCLR] = 28 | { 29 | PICO_SCANVIDEO_PIXEL_FROM_RGB8( 0u, 0u, 0u), 30 | PICO_SCANVIDEO_PIXEL_FROM_RGB8(128u, 0u, 0u), 31 | PICO_SCANVIDEO_PIXEL_FROM_RGB8( 0u, 128u, 0u), 32 | PICO_SCANVIDEO_PIXEL_FROM_RGB8(128u, 128u, 0u), 33 | PICO_SCANVIDEO_PIXEL_FROM_RGB8( 0u, 0u, 128u), 34 | PICO_SCANVIDEO_PIXEL_FROM_RGB8(128u, 0u, 128u), 35 | PICO_SCANVIDEO_PIXEL_FROM_RGB8( 0u, 128u, 128u), 36 | PICO_SCANVIDEO_PIXEL_FROM_RGB8(128u, 128u, 128u), 37 | PICO_SCANVIDEO_PIXEL_FROM_RGB8( 64u, 64u, 64u), 38 | PICO_SCANVIDEO_PIXEL_FROM_RGB8(255u, 0u, 0u), 39 | PICO_SCANVIDEO_PIXEL_FROM_RGB8( 0u, 255u, 0u), 40 | PICO_SCANVIDEO_PIXEL_FROM_RGB8(255u, 255u, 0u), 41 | PICO_SCANVIDEO_PIXEL_FROM_RGB8( 0u, 0u, 255u), 42 | PICO_SCANVIDEO_PIXEL_FROM_RGB8(255u, 0u, 255u), 43 | PICO_SCANVIDEO_PIXEL_FROM_RGB8( 0u, 255u, 255u), 44 | PICO_SCANVIDEO_PIXEL_FROM_RGB8(255u, 255u, 255u) 45 | }; 46 | 47 | uint32_t dblpal[NCLR * NCLR]; 48 | 49 | uint8_t fbuf[WIDTH * HEIGHT / 2]; 50 | 51 | #if USE_INTERP == 1 52 | extern void convert_from_pal16(uint32_t *dest, uint8_t *src, uint count); 53 | #endif 54 | 55 | void __time_critical_func(render_loop) (void) 56 | { 57 | #ifdef DEBUG 58 | printf ("Starting render\n"); 59 | #endif 60 | while (true) 61 | { 62 | struct scanvideo_scanline_buffer *buffer = scanvideo_begin_scanline_generation (true); 63 | int iScan = scanvideo_scanline_number (buffer->scanline_id); 64 | uint32_t *twoclr = buffer->data; 65 | uint8_t *twopix = &fbuf[(WIDTH / 2) * iScan]; 66 | #if USE_INTERP == 1 67 | ++twoclr; 68 | convert_from_pal16 (twoclr, twopix, WIDTH / 2); 69 | twoclr += WIDTH / 2; 70 | #else 71 | for ( int iCol = 0; iCol < WIDTH / 2; ++iCol ) 72 | { 73 | ++twoclr; 74 | *twoclr = dblpal[*twopix]; 75 | ++twopix; 76 | } 77 | ++twoclr; 78 | #endif 79 | *twoclr = COMPOSABLE_EOL_ALIGN << 16; 80 | twoclr = buffer->data; 81 | twoclr[0] = ( twoclr[1] << 16 ) | COMPOSABLE_RAW_RUN; 82 | twoclr[1] = ( twoclr[1] & 0xFFFF0000 ) | ( WIDTH - 2 ); 83 | buffer->data_used = ( WIDTH + 4 ) / 2; 84 | scanvideo_end_scanline_generation (buffer); 85 | } 86 | } 87 | 88 | void setup_video (void) 89 | { 90 | #ifdef DEBUG 91 | printf ("System clock speed %d kHz\n", clock_get_hz (clk_sys) / 1000); 92 | printf ("Starting video\n"); 93 | #endif 94 | #if USE_INTERP == 1 95 | // Configure interpolater lanes 96 | interp_config c = interp_default_config(); 97 | interp_config_set_shift(&c, 22); 98 | interp_config_set_mask(&c, 2, 9); 99 | interp_set_config(interp0, 0, &c); 100 | interp_config_set_shift(&c, 14); 101 | interp_config_set_cross_input(&c, true); 102 | interp_set_config(interp0, 1, &c); 103 | interp_set_base(interp0, 0, (uintptr_t)dblpal); 104 | interp_set_base(interp0, 1, (uintptr_t)dblpal); 105 | #endif 106 | scanvideo_setup(&vga_mode_640x480_60); 107 | scanvideo_timing_enable(true); 108 | #ifdef DEBUG 109 | printf ("System clock speed %d kHz\n", clock_get_hz (clk_sys) / 1000); 110 | #endif 111 | } 112 | 113 | void set_colours (uint16_t *pclr) 114 | { 115 | uint32_t *dpal = dblpal; 116 | for ( int i = 0; i < NCLR; ++i ) 117 | { 118 | for ( int j = 0; j < NCLR; ++j ) 119 | { 120 | *dpal = ( pclr[i] << 16 ) | pclr[j]; 121 | ++dpal; 122 | } 123 | } 124 | } 125 | 126 | void plot_point (int x, int y, int clr) 127 | { 128 | bool odd = x & 1; 129 | int n = ( WIDTH / 2 ) * y + x / 2; 130 | clr &= 0x0F; 131 | if ( ( n >= 0 ) && ( n < WIDTH * HEIGHT / 2 ) ) 132 | { 133 | uint8_t *p = &fbuf[n]; 134 | if ( odd ) *p = ( clr << 4 ) | ( *p & 0x0F ); 135 | else *p = ( *p & 0xF0 ) | clr; 136 | } 137 | } 138 | 139 | void plot_text (const char *ps, int row, int col, int fg, int bg) 140 | { 141 | if ( ( row < 0 ) || ( row >= ( HEIGHT / GLYPH_HEIGHT / 2 ) ) 142 | || ( col < 0 ) || ( col >= ( WIDTH / GLYPH_WIDTH ) ) ) return; 143 | int nch = strlen (ps); 144 | if ( col + nch > ( WIDTH / GLYPH_WIDTH ) ) nch = ( WIDTH / GLYPH_WIDTH ) - col; 145 | fg &= 0x0F; 146 | if ( bg > 0 ) bg = bg &= 0x0F; 147 | for ( int iScan = 0; iScan < 2 * GLYPH_HEIGHT; ++iScan ) 148 | { 149 | uint8_t *p = &fbuf[(WIDTH / 2) * ((2 * GLYPH_HEIGHT) * row + iScan) + ( GLYPH_WIDTH / 2 ) * col]; 150 | for ( int ich = 0; ich < nch; ++ich ) 151 | { 152 | uint8_t line = mon_alpha_prom[ps[ich]][iScan / 2]; 153 | if ( bg >= 0 ) 154 | { 155 | for ( int i = 0; i < 4; ++i ) 156 | { 157 | switch (line & 0xC0) 158 | { 159 | case 0x00: *p = ( bg << 4 ) | bg; break; 160 | case 0x40: *p = ( fg << 4 ) | bg; break; 161 | case 0x80: *p = ( bg << 4 ) | fg; break; 162 | case 0xC0: *p = ( fg << 4 ) | fg; break; 163 | } 164 | line <<= 2; 165 | ++p; 166 | } 167 | } 168 | else 169 | { 170 | for ( int i = 0; i < 4; ++i ) 171 | { 172 | switch (line & 0xC0) 173 | { 174 | case 0x00: break; 175 | case 0x40: *p = ( fg << 4 ) | ( *p & 0x0F ); break; 176 | case 0x80: *p = ( *p & 0xF0 ) | fg; break; 177 | case 0xC0: *p = ( fg << 4 ) | fg; break; 178 | } 179 | line <<= 2; 180 | ++p; 181 | } 182 | } 183 | } 184 | } 185 | } 186 | 187 | void core1_entry() { 188 | char row[2][WIDTH]; 189 | int r=0, Y=0, S=0; 190 | 191 | sleep_ms(5000); 192 | 193 | // continuous Sierpinski triangle on "tube" framebuffer 194 | // https://en.wikipedia.org/wiki/Sierpinski_triangle 195 | memset(row[r], 0, WIDTH); 196 | row[r][WIDTH/2]=1; 197 | 198 | for(;;) 199 | { 200 | memset(fbuf+((Y+10)%HEIGHT)*WIDTH/2, 0, WIDTH/2); 201 | for(int x=0; x 0; --i ) 230 | { 231 | gpio_put(LED_PIN, 1); 232 | sleep_ms(500); 233 | gpio_put(LED_PIN, 0); 234 | sleep_ms(500); 235 | printf ("%d seconds to start\n", i); 236 | } 237 | printf ("Building screen.\n"); 238 | #endif 239 | memset (fbuf, 0, sizeof (fbuf)); 240 | set_colours (colours); 241 | for ( int i = 0; i < NCLR; ++i ) 242 | { 243 | sprintf (text, "Colour %d", i); 244 | plot_text (text, i, i, i, -1); 245 | plot_text (text, i, i + 40, i, i + 8); 246 | } 247 | setup_video (); 248 | multicore_launch_core1(core1_entry); 249 | render_loop (); 250 | } 251 | -------------------------------------------------------------------------------- /monprom.c: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Taken from MEMU - Andy's Memotech Emulator http://www.nyangau.org/memu/memu.htm 4 | with small modifications. 5 | 6 | monprom.c - Character generator PROM 7 | 8 | Disclaimer: Although I hope this will be pixel perfect, it was created working 9 | from a printout of a scan of the FDX manual (as found on mtxinfo.de). 10 | I don't have access to a real FDX or a image of its character generator PROM. 11 | 12 | */ 13 | 14 | /*...sincludes:0:*/ 15 | #include "monprom.h" 16 | 17 | /*...vtypes\46\h:0:*/ 18 | /*...vmonprom\46\h:0:*/ 19 | /*...e*/ 20 | 21 | #define ROW(b7,b6,b5,b4,b3,b2,b1,b0) ( ((b7)<<7) | ((b6)<<6) | ((b5)<<5) | ((b4)<<4) | ((b3)<<3) | ((b2)<<2) | ((b1)<<1) | (b0)) 22 | 23 | byte mon_alpha_prom[0x100][GLYPH_HEIGHT] = 24 | { 25 | /* graphics set 1 */ 26 | 27 | { /* dot */ 28 | ROW(0,0,0,0,0,0,0,0), 29 | ROW(0,0,0,0,0,0,0,0), 30 | ROW(0,0,0,0,0,0,0,0), 31 | ROW(0,0,0,0,0,0,0,0), 32 | ROW(0,0,0,0,0,0,0,0), 33 | ROW(0,0,0,0,1,0,0,0), 34 | ROW(0,0,0,0,0,0,0,0), 35 | ROW(0,0,0,0,0,0,0,0), 36 | ROW(0,0,0,0,0,0,0,0), 37 | ROW(0,0,0,0,0,0,0,0), 38 | }, 39 | 40 | { /* omega */ 41 | ROW(0,0,0,0,0,0,0,0), 42 | ROW(0,0,0,0,0,0,0,0), 43 | ROW(0,0,0,0,0,0,0,0), 44 | ROW(0,0,0,1,1,0,0,0), 45 | ROW(0,0,1,0,0,1,0,0), 46 | ROW(0,1,0,0,0,0,1,0), 47 | ROW(0,0,1,0,0,1,0,0), 48 | ROW(0,1,1,0,0,1,1,0), 49 | ROW(0,0,0,0,0,0,0,0), 50 | ROW(0,0,0,0,0,0,0,0), 51 | }, 52 | 53 | { /* degree */ 54 | ROW(0,0,0,0,0,0,0,0), 55 | ROW(0,0,0,1,1,0,0,0), 56 | ROW(0,0,1,0,0,1,0,0), 57 | ROW(0,0,1,0,0,1,0,0), 58 | ROW(0,0,0,1,1,0,0,0), 59 | ROW(0,0,0,0,0,0,0,0), 60 | ROW(0,0,0,0,0,0,0,0), 61 | ROW(0,0,0,0,0,0,0,0), 62 | ROW(0,0,0,0,0,0,0,0), 63 | ROW(0,0,0,0,0,0,0,0), 64 | }, 65 | 66 | { /* copyright */ 67 | ROW(0,0,0,0,0,0,0,0), 68 | ROW(0,0,1,1,1,1,0,0), 69 | ROW(0,1,0,0,0,0,1,0), 70 | ROW(0,1,0,1,1,0,1,0), 71 | ROW(0,1,0,1,0,0,1,0), 72 | ROW(0,1,0,1,1,0,1,0), 73 | ROW(0,1,0,0,0,0,1,0), 74 | ROW(0,0,1,1,1,1,0,0), 75 | ROW(0,0,0,0,0,0,0,0), 76 | ROW(0,0,0,0,0,0,0,0), 77 | }, 78 | 79 | { /* disk icon */ 80 | ROW(0,0,0,0,0,0,0,0), 81 | ROW(1,1,1,1,1,1,1,0), 82 | ROW(1,0,0,0,0,0,1,0), 83 | ROW(1,0,0,0,0,0,1,0), 84 | ROW(1,0,0,1,0,0,1,0), 85 | ROW(1,0,0,0,0,0,1,0), 86 | ROW(1,0,0,1,0,0,1,0), 87 | ROW(1,1,1,1,1,1,1,0), 88 | ROW(0,0,0,0,0,0,0,0), 89 | ROW(0,0,0,0,0,0,0,0), 90 | }, 91 | 92 | { /* sigma */ 93 | ROW(0,0,0,0,0,0,0,0), 94 | ROW(1,1,1,1,1,1,1,0), 95 | ROW(0,1,0,0,0,0,1,0), 96 | ROW(0,0,1,0,0,0,0,0), 97 | ROW(0,0,0,1,0,0,0,0), 98 | ROW(0,0,1,0,0,0,0,0), 99 | ROW(0,1,0,0,0,0,1,0), 100 | ROW(1,1,1,1,1,1,1,0), 101 | ROW(0,0,0,0,0,0,0,0), 102 | ROW(0,0,0,0,0,0,0,0), 103 | }, 104 | 105 | { /* integral */ 106 | ROW(0,0,0,0,0,0,0,0), 107 | ROW(0,0,0,0,0,1,0,0), 108 | ROW(0,0,0,0,1,0,1,0), 109 | ROW(0,0,0,0,1,0,0,0), 110 | ROW(0,0,0,1,0,0,0,0), 111 | ROW(0,0,0,1,0,0,0,0), 112 | ROW(0,0,1,0,0,0,0,0), 113 | ROW(1,0,1,0,0,0,0,0), 114 | ROW(0,1,0,0,0,0,0,0), 115 | ROW(0,0,0,0,0,0,0,0), 116 | }, 117 | 118 | { /* bell */ 119 | ROW(0,0,0,0,0,0,0,0), 120 | ROW(0,0,0,1,0,0,0,0), 121 | ROW(0,0,1,0,1,0,0,0), 122 | ROW(0,1,0,0,0,1,0,0), 123 | ROW(0,1,0,0,0,1,0,0), 124 | ROW(0,1,0,0,0,1,0,0), 125 | ROW(1,0,0,0,0,0,1,0), 126 | ROW(1,1,1,1,1,1,1,0), 127 | ROW(0,0,0,1,0,0,0,0), 128 | ROW(0,0,0,0,0,0,0,0), 129 | }, 130 | 131 | { /* left arrow */ 132 | ROW(0,0,0,0,0,0,0,0), 133 | ROW(0,0,0,0,1,0,0,0), 134 | ROW(0,0,0,1,0,0,0,0), 135 | ROW(0,0,1,0,0,0,0,0), 136 | ROW(0,1,1,1,1,1,1,0), 137 | ROW(0,0,1,0,0,0,0,0), 138 | ROW(0,0,0,1,0,0,0,0), 139 | ROW(0,0,0,0,1,0,0,0), 140 | ROW(0,0,0,0,0,0,0,0), 141 | ROW(0,0,0,0,0,0,0,0), 142 | }, 143 | 144 | { /* right arrow */ 145 | ROW(0,0,0,0,0,0,0,0), 146 | ROW(0,0,0,1,0,0,0,0), 147 | ROW(0,0,0,0,1,0,0,0), 148 | ROW(0,0,0,0,0,1,0,0), 149 | ROW(0,1,1,1,1,1,1,0), 150 | ROW(0,0,0,0,0,1,0,0), 151 | ROW(0,0,0,0,1,0,0,0), 152 | ROW(0,0,0,1,0,0,0,0), 153 | ROW(0,0,0,0,0,0,0,0), 154 | ROW(0,0,0,0,0,0,0,0), 155 | }, 156 | 157 | { /* down arrow */ 158 | ROW(0,0,0,0,0,0,0,0), 159 | ROW(0,0,0,1,0,0,0,0), 160 | ROW(0,0,0,1,0,0,0,0), 161 | ROW(0,0,0,1,0,0,0,0), 162 | ROW(1,0,0,1,0,0,1,0), 163 | ROW(0,1,0,1,0,1,0,0), 164 | ROW(0,0,1,1,1,0,0,0), 165 | ROW(0,0,0,1,0,0,0,0), 166 | ROW(0,0,0,0,0,0,0,0), 167 | ROW(0,0,0,0,0,0,0,0), 168 | }, 169 | 170 | { /* up arrow */ 171 | ROW(0,0,0,0,0,0,0,0), 172 | ROW(0,0,0,1,0,0,0,0), 173 | ROW(0,0,1,1,1,0,0,0), 174 | ROW(0,1,0,1,0,1,0,0), 175 | ROW(1,0,0,1,0,0,1,0), 176 | ROW(0,0,0,1,0,0,0,0), 177 | ROW(0,0,0,1,0,0,0,0), 178 | ROW(0,0,0,1,0,0,0,0), 179 | ROW(0,0,0,0,0,0,0,0), 180 | ROW(0,0,0,0,0,0,0,0), 181 | }, 182 | 183 | { /* double down arrow */ 184 | ROW(0,0,0,0,0,0,0,0), 185 | ROW(1,0,0,1,0,0,1,0), 186 | ROW(0,1,0,1,0,1,0,0), 187 | ROW(0,0,1,1,1,0,0,0), 188 | ROW(1,0,0,1,0,0,1,0), 189 | ROW(0,1,0,1,0,1,0,0), 190 | ROW(0,0,1,1,1,0,0,0), 191 | ROW(0,0,0,1,0,0,0,0), 192 | ROW(0,0,0,0,0,0,0,0), 193 | ROW(0,0,0,0,0,0,0,0), 194 | }, 195 | 196 | { /* triangle */ 197 | ROW(0,0,0,0,0,0,0,0), 198 | ROW(0,0,0,0,0,0,1,0), 199 | ROW(0,0,0,0,0,1,1,0), 200 | ROW(0,0,0,0,1,1,1,0), 201 | ROW(0,0,0,1,1,1,1,0), 202 | ROW(0,0,0,0,1,1,1,0), 203 | ROW(0,0,0,0,0,1,1,0), 204 | ROW(0,0,0,0,0,0,1,0), 205 | ROW(0,0,0,0,0,0,0,0), 206 | ROW(0,0,0,0,0,0,0,0), 207 | }, 208 | 209 | { /* sqrt */ 210 | ROW(0,0,0,0,0,0,0,0), 211 | ROW(0,0,0,0,0,0,1,0), 212 | ROW(0,0,0,0,0,0,1,0), 213 | ROW(0,0,0,0,0,1,0,0), 214 | ROW(0,0,0,0,0,1,0,0), 215 | ROW(1,1,0,0,1,0,0,0), 216 | ROW(0,0,1,0,1,0,0,0), 217 | ROW(0,0,1,1,0,0,0,0), 218 | ROW(0,0,0,1,0,0,0,0), 219 | ROW(0,0,0,0,0,0,0,0), 220 | }, 221 | 222 | { /* pi */ 223 | ROW(0,0,0,0,0,0,0,0), 224 | ROW(0,0,0,0,0,0,0,0), 225 | ROW(0,0,0,0,0,0,0,0), 226 | ROW(0,0,0,0,0,0,0,0), 227 | ROW(0,0,1,1,1,1,1,0), 228 | ROW(0,1,0,1,0,1,0,0), 229 | ROW(0,0,0,1,0,1,0,0), 230 | ROW(0,0,0,1,0,1,0,0), 231 | ROW(0,0,0,0,0,0,0,0), 232 | ROW(0,0,0,0,0,0,0,0), 233 | }, 234 | 235 | { /* heart */ 236 | ROW(0,0,0,0,0,0,0,0), 237 | ROW(0,1,1,0,1,1,0,0), 238 | ROW(1,1,1,1,1,1,1,0), 239 | ROW(1,1,1,1,1,1,1,0), 240 | ROW(1,1,1,1,1,1,1,0), 241 | ROW(0,1,1,1,1,1,0,0), 242 | ROW(0,0,1,1,1,0,0,0), 243 | ROW(0,0,0,1,0,0,0,0), 244 | ROW(0,0,0,0,0,0,0,0), 245 | ROW(0,0,0,0,0,0,0,0), 246 | }, 247 | 248 | { /* diamond */ 249 | ROW(0,0,0,0,0,0,0,0), 250 | ROW(0,0,0,1,0,0,0,0), 251 | ROW(0,0,1,1,1,0,0,0), 252 | ROW(0,1,1,1,1,1,0,0), 253 | ROW(1,1,1,1,1,1,1,0), 254 | ROW(0,1,1,1,1,1,0,0), 255 | ROW(0,0,1,1,1,0,0,0), 256 | ROW(0,0,0,1,0,0,0,0), 257 | ROW(0,0,0,0,0,0,0,0), 258 | ROW(0,0,0,0,0,0,0,0), 259 | }, 260 | 261 | { /* spade */ 262 | ROW(0,0,0,0,0,0,0,0), 263 | ROW(0,0,0,1,0,0,0,0), 264 | ROW(0,0,1,1,1,0,0,0), 265 | ROW(0,1,1,1,1,1,0,0), 266 | ROW(1,1,1,1,1,1,1,0), 267 | ROW(1,1,1,1,1,1,1,0), 268 | ROW(0,1,0,1,0,1,0,0), 269 | ROW(0,0,0,1,0,0,0,0), 270 | ROW(0,0,0,0,0,0,0,0), 271 | ROW(0,0,0,0,0,0,0,0), 272 | }, 273 | 274 | { /* club */ 275 | ROW(0,0,0,0,0,0,0,0), 276 | ROW(0,0,0,1,0,0,0,0), 277 | ROW(0,0,1,1,1,0,0,0), 278 | ROW(0,0,1,1,1,0,0,0), 279 | ROW(0,1,0,1,0,1,0,0), 280 | ROW(1,1,1,1,1,1,1,0), 281 | ROW(1,1,1,1,1,1,1,0), 282 | ROW(0,1,0,1,0,1,0,0), 283 | ROW(0,0,0,1,0,0,0,0), 284 | ROW(0,0,0,0,0,0,0,0), 285 | }, 286 | 287 | { /* tm */ 288 | ROW(0,0,0,0,0,0,0,0), 289 | ROW(0,1,1,1,1,1,0,0), 290 | ROW(0,0,0,1,0,0,0,0), 291 | ROW(0,0,0,1,0,0,0,0), 292 | ROW(0,1,0,0,0,1,0,0), 293 | ROW(0,1,1,0,1,1,0,0), 294 | ROW(0,1,0,1,0,1,0,0), 295 | ROW(0,1,0,0,0,1,0,0), 296 | ROW(0,0,0,0,0,0,0,0), 297 | ROW(0,0,0,0,0,0,0,0), 298 | }, 299 | 300 | { /* x cross */ 301 | ROW(0,0,0,0,0,0,0,0), 302 | ROW(0,0,0,0,0,0,0,0), 303 | ROW(0,1,0,0,0,1,0,0), 304 | ROW(0,0,1,0,1,0,0,0), 305 | ROW(0,0,0,1,0,0,0,0), 306 | ROW(0,0,1,0,1,0,0,0), 307 | ROW(0,1,0,0,0,1,0,0), 308 | ROW(0,0,0,0,0,0,0,0), 309 | ROW(0,0,0,0,0,0,0,0), 310 | ROW(0,0,0,0,0,0,0,0), 311 | }, 312 | 313 | { /* + cross */ 314 | ROW(0,0,0,0,0,0,0,0), 315 | ROW(0,0,1,0,0,0,0,0), 316 | ROW(0,1,1,1,0,0,0,0), 317 | ROW(0,0,1,0,0,0,0,0), 318 | ROW(0,0,1,0,0,0,0,0), 319 | ROW(0,0,0,0,0,0,0,0), 320 | ROW(0,0,0,0,0,0,0,0), 321 | ROW(0,0,0,0,0,0,0,0), 322 | ROW(0,0,0,0,0,0,0,0), 323 | ROW(0,0,0,0,0,0,0,0), 324 | }, 325 | 326 | { /* divide */ 327 | ROW(0,0,0,0,0,0,0,0), 328 | ROW(0,0,0,0,0,0,0,0), 329 | ROW(0,0,0,1,0,0,0,0), 330 | ROW(0,0,0,0,0,0,0,0), 331 | ROW(0,1,1,1,1,1,0,0), 332 | ROW(0,0,0,0,0,0,0,0), 333 | ROW(0,0,0,1,0,0,0,0), 334 | ROW(0,0,0,0,0,0,0,0), 335 | ROW(0,0,0,0,0,0,0,0), 336 | ROW(0,0,0,0,0,0,0,0), 337 | }, 338 | 339 | { /* sims $ */ 340 | ROW(0,0,0,0,0,0,0,0), 341 | ROW(0,0,0,1,1,0,0,0), 342 | ROW(0,0,1,0,0,1,0,0), 343 | ROW(0,0,0,1,0,0,0,0), 344 | ROW(0,0,1,0,1,0,0,0), 345 | ROW(0,0,0,1,0,0,0,0), 346 | ROW(0,1,0,0,1,0,0,0), 347 | ROW(0,0,1,1,0,0,0,0), 348 | ROW(0,0,0,0,0,0,0,0), 349 | ROW(0,0,0,0,0,0,0,0), 350 | }, 351 | 352 | { /* cent */ 353 | ROW(0,0,0,0,0,0,0,0), 354 | ROW(0,0,0,0,1,0,0,0), 355 | ROW(0,0,0,1,1,1,0,0), 356 | ROW(0,0,1,0,0,0,0,0), 357 | ROW(0,0,1,0,0,0,0,0), 358 | ROW(0,0,0,1,1,1,0,0), 359 | ROW(0,0,0,0,1,0,0,0), 360 | ROW(0,0,0,0,0,0,0,0), 361 | ROW(0,0,0,0,0,0,0,0), 362 | ROW(0,0,0,0,0,0,0,0), 363 | }, 364 | 365 | { /* king */ 366 | ROW(0,0,0,0,0,0,0,0), 367 | ROW(0,0,0,1,0,0,0,0), 368 | ROW(0,0,1,1,1,0,0,0), 369 | ROW(0,0,0,1,0,0,0,0), 370 | ROW(0,0,1,1,1,0,0,0), 371 | ROW(0,1,1,1,1,1,0,0), 372 | ROW(0,0,1,1,1,0,0,0), 373 | ROW(0,1,1,1,1,1,0,0), 374 | ROW(1,1,1,1,1,1,1,0), 375 | ROW(0,0,0,0,0,0,0,0), 376 | }, 377 | 378 | { /* queen */ 379 | ROW(0,0,0,0,0,0,0,0), 380 | ROW(0,0,0,1,0,0,0,0), 381 | ROW(0,1,1,1,1,1,0,0), 382 | ROW(0,0,1,1,1,0,0,0), 383 | ROW(0,0,0,1,0,0,0,0), 384 | ROW(0,0,1,1,1,0,0,0), 385 | ROW(0,0,1,1,1,0,0,0), 386 | ROW(0,1,1,1,1,1,0,0), 387 | ROW(1,1,1,1,1,1,1,0), 388 | ROW(0,0,0,0,0,0,0,0), 389 | }, 390 | 391 | { /* rook */ 392 | ROW(0,0,0,0,0,0,0,0), 393 | ROW(0,0,0,0,0,0,0,0), 394 | ROW(0,1,0,1,0,1,0,0), 395 | ROW(0,1,1,1,1,1,0,0), 396 | ROW(0,0,1,1,1,0,0,0), 397 | ROW(0,0,1,1,1,0,0,0), 398 | ROW(0,0,1,1,1,0,0,0), 399 | ROW(0,1,1,1,1,1,0,0), 400 | ROW(1,1,1,1,1,1,1,0), 401 | ROW(0,0,0,0,0,0,0,0), 402 | }, 403 | 404 | { /* knight */ 405 | ROW(0,0,0,0,0,0,0,0), 406 | ROW(0,0,0,0,0,0,0,0), 407 | ROW(0,0,0,0,0,1,0,0), 408 | ROW(0,0,0,1,1,1,1,0), 409 | ROW(0,0,1,1,1,1,1,0), 410 | ROW(0,0,0,0,1,1,0,0), 411 | ROW(0,0,0,1,1,0,0,0), 412 | ROW(0,0,1,1,1,1,0,0), 413 | ROW(0,1,1,1,1,1,1,0), 414 | ROW(0,0,0,0,0,0,0,0), 415 | }, 416 | 417 | { /* bishop */ 418 | ROW(0,0,0,0,0,0,0,0), 419 | ROW(0,0,0,0,0,0,0,0), 420 | ROW(0,0,0,1,0,0,0,0), 421 | ROW(0,0,0,1,1,0,0,0), 422 | ROW(0,1,0,1,1,1,0,0), 423 | ROW(1,1,0,1,1,1,1,0), 424 | ROW(0,1,1,1,1,1,0,0), 425 | ROW(0,0,1,1,1,0,0,0), 426 | ROW(1,1,1,1,1,1,1,0), 427 | ROW(0,0,0,0,0,0,0,0), 428 | }, 429 | 430 | { /* pawn */ 431 | ROW(0,0,0,0,0,0,0,0), 432 | ROW(0,0,0,0,0,0,0,0), 433 | ROW(0,0,0,0,0,0,0,0), 434 | ROW(0,0,0,1,0,0,0,0), 435 | ROW(0,0,1,1,1,0,0,0), 436 | ROW(0,0,1,1,1,0,0,0), 437 | ROW(0,0,0,1,0,0,0,0), 438 | ROW(0,0,1,1,1,0,0,0), 439 | ROW(0,1,1,1,1,1,0,0), 440 | ROW(0,0,0,0,0,0,0,0), 441 | }, 442 | 443 | /* alpha set */ 444 | 445 | { /* space */ 446 | ROW(0,0,0,0,0,0,0,0), 447 | ROW(0,0,0,0,0,0,0,0), 448 | ROW(0,0,0,0,0,0,0,0), 449 | ROW(0,0,0,0,0,0,0,0), 450 | ROW(0,0,0,0,0,0,0,0), 451 | ROW(0,0,0,0,0,0,0,0), 452 | ROW(0,0,0,0,0,0,0,0), 453 | ROW(0,0,0,0,0,0,0,0), 454 | ROW(0,0,0,0,0,0,0,0), 455 | ROW(0,0,0,0,0,0,0,0), 456 | }, 457 | 458 | { /* ! */ 459 | ROW(0,0,0,0,0,0,0,0), 460 | ROW(0,0,0,0,1,0,0,0), 461 | ROW(0,0,0,0,1,0,0,0), 462 | ROW(0,0,0,0,1,0,0,0), 463 | ROW(0,0,0,0,1,0,0,0), 464 | ROW(0,0,0,0,0,0,0,0), 465 | ROW(0,0,0,0,0,0,0,0), 466 | ROW(0,0,0,0,1,0,0,0), 467 | ROW(0,0,0,0,0,0,0,0), 468 | ROW(0,0,0,0,0,0,0,0), 469 | }, 470 | 471 | { /* " */ 472 | ROW(0,0,0,0,0,0,0,0), 473 | ROW(0,0,1,0,0,1,0,0), 474 | ROW(0,0,1,0,0,1,0,0), 475 | ROW(0,0,1,0,0,1,0,0), 476 | ROW(0,0,0,0,0,0,0,0), 477 | ROW(0,0,0,0,0,0,0,0), 478 | ROW(0,0,0,0,0,0,0,0), 479 | ROW(0,0,0,0,0,0,0,0), 480 | ROW(0,0,0,0,0,0,0,0), 481 | ROW(0,0,0,0,0,0,0,0), 482 | }, 483 | 484 | { /* # */ 485 | ROW(0,0,0,0,0,0,0,0), 486 | ROW(0,0,1,0,0,1,0,0), 487 | ROW(0,0,1,0,0,1,0,0), 488 | ROW(0,1,1,1,1,1,1,0), 489 | ROW(0,0,1,0,0,1,0,0), 490 | ROW(0,1,1,1,1,1,1,0), 491 | ROW(0,0,1,0,0,1,0,0), 492 | ROW(0,0,1,0,0,1,0,0), 493 | ROW(0,0,0,0,0,0,0,0), 494 | ROW(0,0,0,0,0,0,0,0), 495 | }, 496 | 497 | { /* $ */ 498 | ROW(0,0,0,0,0,0,0,0), 499 | ROW(0,0,0,0,1,0,0,0), 500 | ROW(0,0,0,1,1,1,1,0), 501 | ROW(0,0,1,0,1,0,0,0), 502 | ROW(0,0,0,1,1,1,0,0), 503 | ROW(0,0,0,0,1,0,1,0), 504 | ROW(0,0,1,1,1,1,0,0), 505 | ROW(0,0,0,0,1,0,0,0), 506 | ROW(0,0,0,0,0,0,0,0), 507 | ROW(0,0,0,0,0,0,0,0), 508 | }, 509 | 510 | { /* % */ 511 | ROW(0,0,0,0,0,0,0,0), 512 | ROW(0,0,0,0,0,0,0,0), 513 | ROW(0,1,1,0,0,0,1,0), 514 | ROW(0,1,1,0,0,1,0,0), 515 | ROW(0,0,0,0,1,0,0,0), 516 | ROW(0,0,0,1,0,0,0,0), 517 | ROW(0,0,1,0,0,1,1,0), 518 | ROW(0,1,0,0,0,1,1,0), 519 | ROW(0,0,0,0,0,0,0,0), 520 | ROW(0,0,0,0,0,0,0,0), 521 | }, 522 | 523 | { /* & */ 524 | ROW(0,0,0,0,0,0,0,0), 525 | ROW(0,0,1,1,0,0,0,0), 526 | ROW(0,1,0,0,1,0,0,0), 527 | ROW(0,1,0,0,1,0,0,0), 528 | ROW(0,0,1,1,0,0,0,0), 529 | ROW(0,1,0,0,1,0,1,0), 530 | ROW(0,1,0,0,0,1,0,0), 531 | ROW(0,0,1,1,1,0,1,0), 532 | ROW(0,0,0,0,0,0,0,0), 533 | ROW(0,0,0,0,0,0,0,0), 534 | }, 535 | 536 | { /* ' */ 537 | ROW(0,0,0,0,0,0,0,0), 538 | ROW(0,0,0,0,0,1,0,0), 539 | ROW(0,0,0,0,1,0,0,0), 540 | ROW(0,0,0,1,0,0,0,0), 541 | ROW(0,0,0,0,0,0,0,0), 542 | ROW(0,0,0,0,0,0,0,0), 543 | ROW(0,0,0,0,0,0,0,0), 544 | ROW(0,0,0,0,0,0,0,0), 545 | ROW(0,0,0,0,0,0,0,0), 546 | ROW(0,0,0,0,0,0,0,0), 547 | }, 548 | 549 | { /* ( */ 550 | ROW(0,0,0,0,0,0,0,0), 551 | ROW(0,0,0,0,0,1,0,0), 552 | ROW(0,0,0,0,1,0,0,0), 553 | ROW(0,0,0,1,0,0,0,0), 554 | ROW(0,0,0,1,0,0,0,0), 555 | ROW(0,0,0,1,0,0,0,0), 556 | ROW(0,0,0,0,1,0,0,0), 557 | ROW(0,0,0,0,0,1,0,0), 558 | ROW(0,0,0,0,0,0,0,0), 559 | ROW(0,0,0,0,0,0,0,0), 560 | }, 561 | 562 | { /* ) */ 563 | ROW(0,0,0,0,0,0,0,0), 564 | ROW(0,0,1,0,0,0,0,0), 565 | ROW(0,0,0,1,0,0,0,0), 566 | ROW(0,0,0,0,1,0,0,0), 567 | ROW(0,0,0,0,1,0,0,0), 568 | ROW(0,0,0,0,1,0,0,0), 569 | ROW(0,0,0,1,0,0,0,0), 570 | ROW(0,0,1,0,0,0,0,0), 571 | ROW(0,0,0,0,0,0,0,0), 572 | ROW(0,0,0,0,0,0,0,0), 573 | }, 574 | 575 | { /* * */ 576 | ROW(0,0,0,0,0,0,0,0), 577 | ROW(0,0,0,0,1,0,0,0), 578 | ROW(0,0,1,0,1,0,1,0), 579 | ROW(0,0,0,1,1,1,0,0), 580 | ROW(0,0,0,1,1,1,0,0), 581 | ROW(0,0,0,1,1,1,0,0), 582 | ROW(0,0,1,0,1,0,1,0), 583 | ROW(0,0,0,0,1,0,0,0), 584 | ROW(0,0,0,0,0,0,0,0), 585 | ROW(0,0,0,0,0,0,0,0), 586 | }, 587 | 588 | { /* + */ 589 | ROW(0,0,0,0,0,0,0,0), 590 | ROW(0,0,0,0,0,0,0,0), 591 | ROW(0,0,0,0,1,0,0,0), 592 | ROW(0,0,0,0,1,0,0,0), 593 | ROW(0,0,1,1,1,1,1,0), 594 | ROW(0,0,0,0,1,0,0,0), 595 | ROW(0,0,0,0,1,0,0,0), 596 | ROW(0,0,0,0,0,0,0,0), 597 | ROW(0,0,0,0,0,0,0,0), 598 | ROW(0,0,0,0,0,0,0,0), 599 | }, 600 | 601 | { /* , */ 602 | ROW(0,0,0,0,0,0,0,0), 603 | ROW(0,0,0,0,0,0,0,0), 604 | ROW(0,0,0,0,0,0,0,0), 605 | ROW(0,0,0,0,0,0,0,0), 606 | ROW(0,0,0,0,0,0,0,0), 607 | ROW(0,0,0,0,0,0,0,0), 608 | ROW(0,0,0,0,0,0,0,0), 609 | ROW(0,0,0,1,0,0,0,0), 610 | ROW(0,0,1,0,0,0,0,0), 611 | ROW(0,0,0,0,0,0,0,0), 612 | }, 613 | 614 | { /* - */ 615 | ROW(0,0,0,0,0,0,0,0), 616 | ROW(0,0,0,0,0,0,0,0), 617 | ROW(0,0,0,0,0,0,0,0), 618 | ROW(0,0,0,0,0,0,0,0), 619 | ROW(0,0,1,1,1,1,0,0), 620 | ROW(0,0,0,0,0,0,0,0), 621 | ROW(0,0,0,0,0,0,0,0), 622 | ROW(0,0,0,0,0,0,0,0), 623 | ROW(0,0,0,0,0,0,0,0), 624 | ROW(0,0,0,0,0,0,0,0), 625 | }, 626 | 627 | { /* . */ 628 | ROW(0,0,0,0,0,0,0,0), 629 | ROW(0,0,0,0,0,0,0,0), 630 | ROW(0,0,0,0,0,0,0,0), 631 | ROW(0,0,0,0,0,0,0,0), 632 | ROW(0,0,0,0,0,0,0,0), 633 | ROW(0,0,0,0,0,0,0,0), 634 | ROW(0,0,0,0,0,0,0,0), 635 | ROW(0,0,0,1,0,0,0,0), 636 | ROW(0,0,0,0,0,0,0,0), 637 | ROW(0,0,0,0,0,0,0,0), 638 | }, 639 | 640 | 641 | { /* / */ 642 | ROW(0,0,0,0,0,0,0,0), 643 | ROW(0,0,0,0,0,0,0,0), 644 | ROW(0,0,0,0,0,0,1,0), 645 | ROW(0,0,0,0,0,1,0,0), 646 | ROW(0,0,0,0,1,0,0,0), 647 | ROW(0,0,0,1,0,0,0,0), 648 | ROW(0,0,1,0,0,0,0,0), 649 | ROW(0,1,0,0,0,0,0,0), 650 | ROW(0,0,0,0,0,0,0,0), 651 | ROW(0,0,0,0,0,0,0,0), 652 | }, 653 | 654 | { /* 0 */ 655 | ROW(0,0,0,0,0,0,0,0), 656 | ROW(0,0,1,1,1,1,0,0), 657 | ROW(0,1,0,0,0,0,1,0), 658 | ROW(0,1,0,0,0,1,1,0), 659 | ROW(0,1,0,1,1,0,1,0), 660 | ROW(0,1,1,0,0,0,1,0), 661 | ROW(0,1,0,0,0,0,1,0), 662 | ROW(0,0,1,1,1,1,0,0), 663 | ROW(0,0,0,0,0,0,0,0), 664 | ROW(0,0,0,0,0,0,0,0), 665 | }, 666 | 667 | { /* 1 */ 668 | ROW(0,0,0,0,0,0,0,0), 669 | ROW(0,0,0,0,1,0,0,0), 670 | ROW(0,0,0,1,1,0,0,0), 671 | ROW(0,0,1,0,1,0,0,0), 672 | ROW(0,0,0,0,1,0,0,0), 673 | ROW(0,0,0,0,1,0,0,0), 674 | ROW(0,0,0,0,1,0,0,0), 675 | ROW(0,0,1,1,1,1,0,0), 676 | ROW(0,0,0,0,0,0,0,0), 677 | ROW(0,0,0,0,0,0,0,0), 678 | }, 679 | 680 | { /* 2 */ 681 | ROW(0,0,0,0,0,0,0,0), 682 | ROW(0,0,1,1,1,1,0,0), 683 | ROW(0,1,0,0,0,0,1,0), 684 | ROW(0,0,0,0,0,0,1,0), 685 | ROW(0,0,0,0,1,1,0,0), 686 | ROW(0,0,1,1,0,0,0,0), 687 | ROW(0,1,0,0,0,0,0,0), 688 | ROW(0,1,1,1,1,1,1,0), 689 | ROW(0,0,0,0,0,0,0,0), 690 | ROW(0,0,0,0,0,0,0,0), 691 | }, 692 | 693 | { /* 3 */ 694 | ROW(0,0,0,0,0,0,0,0), 695 | ROW(0,0,1,1,1,1,0,0), 696 | ROW(0,1,0,0,0,0,1,0), 697 | ROW(0,0,0,0,0,0,1,0), 698 | ROW(0,0,0,0,1,1,0,0), 699 | ROW(0,0,0,0,0,0,1,0), 700 | ROW(0,1,0,0,0,0,1,0), 701 | ROW(0,0,1,1,1,1,0,0), 702 | ROW(0,0,0,0,0,0,0,0), 703 | ROW(0,0,0,0,0,0,0,0), 704 | }, 705 | 706 | { /* 4 */ 707 | ROW(0,0,0,0,0,0,0,0), 708 | ROW(0,0,0,0,0,1,0,0), 709 | ROW(0,0,0,0,1,1,0,0), 710 | ROW(0,0,0,1,0,1,0,0), 711 | ROW(0,0,1,0,0,1,0,0), 712 | ROW(0,1,1,1,1,1,1,0), 713 | ROW(0,0,0,0,0,1,0,0), 714 | ROW(0,0,0,0,0,1,0,0), 715 | ROW(0,0,0,0,0,0,0,0), 716 | ROW(0,0,0,0,0,0,0,0), 717 | }, 718 | 719 | { /* 5 */ 720 | ROW(0,0,0,0,0,0,0,0), 721 | ROW(0,1,1,1,1,1,0,0), 722 | ROW(0,1,0,0,0,0,0,0), 723 | ROW(0,1,1,1,1,0,0,0), 724 | ROW(0,0,0,0,0,1,0,0), 725 | ROW(0,0,0,0,0,0,1,0), 726 | ROW(0,1,0,0,0,1,0,0), 727 | ROW(0,0,1,1,1,0,0,0), 728 | ROW(0,0,0,0,0,0,0,0), 729 | ROW(0,0,0,0,0,0,0,0), 730 | }, 731 | 732 | { /* 6 */ 733 | ROW(0,0,0,0,0,0,0,0), 734 | ROW(0,0,0,1,1,1,0,0), 735 | ROW(0,0,1,0,0,0,0,0), 736 | ROW(0,1,0,0,0,0,0,0), 737 | ROW(0,1,1,1,1,1,0,0), 738 | ROW(0,1,0,0,0,0,1,0), 739 | ROW(0,1,0,0,0,0,1,0), 740 | ROW(0,0,1,1,1,1,0,0), 741 | ROW(0,0,0,0,0,0,0,0), 742 | ROW(0,0,0,0,0,0,0,0), 743 | }, 744 | 745 | { /* 7 */ 746 | ROW(0,0,0,0,0,0,0,0), 747 | ROW(0,1,1,1,1,1,1,0), 748 | ROW(0,1,0,0,0,0,1,0), 749 | ROW(0,0,0,0,0,1,0,0), 750 | ROW(0,0,0,0,1,0,0,0), 751 | ROW(0,0,0,1,0,0,0,0), 752 | ROW(0,0,0,1,0,0,0,0), 753 | ROW(0,0,0,1,0,0,0,0), 754 | ROW(0,0,0,0,0,0,0,0), 755 | ROW(0,0,0,0,0,0,0,0), 756 | }, 757 | 758 | { /* 8 */ 759 | ROW(0,0,0,0,0,0,0,0), 760 | ROW(0,0,1,1,1,1,0,0), 761 | ROW(0,1,0,0,0,0,1,0), 762 | ROW(0,1,0,0,0,0,1,0), 763 | ROW(0,0,1,1,1,1,0,0), 764 | ROW(0,1,0,0,0,0,1,0), 765 | ROW(0,1,0,0,0,0,1,0), 766 | ROW(0,0,1,1,1,1,0,0), 767 | ROW(0,0,0,0,0,0,0,0), 768 | ROW(0,0,0,0,0,0,0,0), 769 | }, 770 | 771 | { /* 9 */ 772 | ROW(0,0,0,0,0,0,0,0), 773 | ROW(0,0,1,1,1,1,0,0), 774 | ROW(0,1,0,0,0,0,1,0), 775 | ROW(0,1,0,0,0,0,1,0), 776 | ROW(0,0,1,1,1,1,1,0), 777 | ROW(0,0,0,0,0,0,1,0), 778 | ROW(0,0,0,0,0,1,0,0), 779 | ROW(0,0,1,1,1,0,0,0), 780 | ROW(0,0,0,0,0,0,0,0), 781 | ROW(0,0,0,0,0,0,0,0), 782 | }, 783 | 784 | { /* : */ 785 | ROW(0,0,0,0,0,0,0,0), 786 | ROW(0,0,0,0,0,0,0,0), 787 | ROW(0,0,0,0,0,0,0,0), 788 | ROW(0,0,0,0,1,0,0,0), 789 | ROW(0,0,0,0,0,0,0,0), 790 | ROW(0,0,0,0,0,0,0,0), 791 | ROW(0,0,0,0,1,0,0,0), 792 | ROW(0,0,0,0,0,0,0,0), 793 | ROW(0,0,0,0,0,0,0,0), 794 | ROW(0,0,0,0,0,0,0,0), 795 | }, 796 | 797 | { /* ; */ 798 | ROW(0,0,0,0,0,0,0,0), 799 | ROW(0,0,0,0,0,0,0,0), 800 | ROW(0,0,0,0,0,0,0,0), 801 | ROW(0,0,0,0,1,0,0,0), 802 | ROW(0,0,0,0,0,0,0,0), 803 | ROW(0,0,0,0,0,0,0,0), 804 | ROW(0,0,0,0,1,0,0,0), 805 | ROW(0,0,0,0,1,0,0,0), 806 | ROW(0,0,0,1,0,0,0,0), 807 | ROW(0,0,0,0,0,0,0,0), 808 | }, 809 | 810 | { /* < */ 811 | ROW(0,0,0,0,0,0,0,0), 812 | ROW(0,0,0,0,0,1,0,0), 813 | ROW(0,0,0,0,1,0,0,0), 814 | ROW(0,0,0,1,0,0,0,0), 815 | ROW(0,0,1,0,0,0,0,0), 816 | ROW(0,0,0,1,0,0,0,0), 817 | ROW(0,0,0,0,1,0,0,0), 818 | ROW(0,0,0,0,0,1,0,0), 819 | ROW(0,0,0,0,0,0,0,0), 820 | ROW(0,0,0,0,0,0,0,0), 821 | }, 822 | 823 | { /* = */ 824 | ROW(0,0,0,0,0,0,0,0), 825 | ROW(0,0,0,0,0,0,0,0), 826 | ROW(0,0,0,0,0,0,0,0), 827 | ROW(0,0,1,1,1,1,0,0), 828 | ROW(0,0,0,0,0,0,0,0), 829 | ROW(0,0,1,1,1,1,0,0), 830 | ROW(0,0,0,0,0,0,0,0), 831 | ROW(0,0,0,0,0,0,0,0), 832 | ROW(0,0,0,0,0,0,0,0), 833 | ROW(0,0,0,0,0,0,0,0), 834 | }, 835 | 836 | { /* > */ 837 | ROW(0,0,0,0,0,0,0,0), 838 | ROW(0,0,1,0,0,0,0,0), 839 | ROW(0,0,0,1,0,0,0,0), 840 | ROW(0,0,0,0,1,0,0,0), 841 | ROW(0,0,0,0,0,1,0,0), 842 | ROW(0,0,0,0,1,0,0,0), 843 | ROW(0,0,0,1,0,0,0,0), 844 | ROW(0,0,1,0,0,0,0,0), 845 | ROW(0,0,0,0,0,0,0,0), 846 | ROW(0,0,0,0,0,0,0,0), 847 | }, 848 | 849 | { /* ? */ 850 | ROW(0,0,0,0,0,0,0,0), 851 | ROW(0,0,1,1,1,1,0,0), 852 | ROW(0,1,0,0,0,0,1,0), 853 | ROW(0,0,0,0,0,0,1,0), 854 | ROW(0,0,0,0,1,1,0,0), 855 | ROW(0,0,0,1,0,0,0,0), 856 | ROW(0,0,0,0,0,0,0,0), 857 | ROW(0,0,0,1,0,0,0,0), 858 | ROW(0,0,0,0,0,0,0,0), 859 | ROW(0,0,0,0,0,0,0,0), 860 | }, 861 | 862 | { /* @ */ 863 | ROW(0,0,0,0,0,0,0,0), 864 | ROW(0,0,0,1,1,1,0,0), 865 | ROW(0,0,1,0,0,0,1,0), 866 | ROW(0,1,0,0,1,0,1,0), 867 | ROW(0,1,0,1,0,1,1,0), 868 | ROW(0,1,0,0,1,1,0,0), 869 | ROW(0,0,1,0,0,0,0,0), 870 | ROW(0,0,0,1,1,1,0,0), 871 | ROW(0,0,0,0,0,0,0,0), 872 | ROW(0,0,0,0,0,0,0,0), 873 | }, 874 | 875 | { /* A */ 876 | ROW(0,0,0,0,0,0,0,0), 877 | ROW(0,0,0,1,1,0,0,0), 878 | ROW(0,0,1,0,0,1,0,0), 879 | ROW(0,1,0,0,0,0,1,0), 880 | ROW(0,1,1,1,1,1,1,0), 881 | ROW(0,1,0,0,0,0,1,0), 882 | ROW(0,1,0,0,0,0,1,0), 883 | ROW(0,1,0,0,0,0,1,0), 884 | ROW(0,0,0,0,0,0,0,0), 885 | ROW(0,0,0,0,0,0,0,0), 886 | }, 887 | 888 | { /* B */ 889 | ROW(0,0,0,0,0,0,0,0), 890 | ROW(0,1,1,1,1,1,0,0), 891 | ROW(0,1,0,0,0,0,1,0), 892 | ROW(0,1,0,0,0,0,1,0), 893 | ROW(0,1,1,1,1,1,0,0), 894 | ROW(0,1,0,0,0,0,1,0), 895 | ROW(0,1,0,0,0,0,1,0), 896 | ROW(0,1,1,1,1,1,0,0), 897 | ROW(0,0,0,0,0,0,0,0), 898 | ROW(0,0,0,0,0,0,0,0), 899 | }, 900 | 901 | { /* C */ 902 | ROW(0,0,0,0,0,0,0,0), 903 | ROW(0,0,1,1,1,1,0,0), 904 | ROW(0,1,0,0,0,0,1,0), 905 | ROW(0,1,0,0,0,0,0,0), 906 | ROW(0,1,0,0,0,0,0,0), 907 | ROW(0,1,0,0,0,0,0,0), 908 | ROW(0,1,0,0,0,0,1,0), 909 | ROW(0,0,1,1,1,1,0,0), 910 | ROW(0,0,0,0,0,0,0,0), 911 | ROW(0,0,0,0,0,0,0,0), 912 | }, 913 | 914 | { /* D */ 915 | ROW(0,0,0,0,0,0,0,0), 916 | ROW(0,1,1,1,1,1,0,0), 917 | ROW(0,0,1,0,0,0,1,0), 918 | ROW(0,0,1,0,0,0,1,0), 919 | ROW(0,0,1,0,0,0,1,0), 920 | ROW(0,0,1,0,0,0,1,0), 921 | ROW(0,0,1,0,0,0,1,0), 922 | ROW(0,1,1,1,1,1,0,0), 923 | ROW(0,0,0,0,0,0,0,0), 924 | ROW(0,0,0,0,0,0,0,0), 925 | }, 926 | 927 | { /* E */ 928 | ROW(0,0,0,0,0,0,0,0), 929 | ROW(0,1,1,1,1,1,1,0), 930 | ROW(0,1,0,0,0,0,0,0), 931 | ROW(0,1,0,0,0,0,0,0), 932 | ROW(0,1,1,1,1,0,0,0), 933 | ROW(0,1,0,0,0,0,0,0), 934 | ROW(0,1,0,0,0,0,0,0), 935 | ROW(0,1,1,1,1,1,1,0), 936 | ROW(0,0,0,0,0,0,0,0), 937 | ROW(0,0,0,0,0,0,0,0), 938 | }, 939 | 940 | { /* F */ 941 | ROW(0,0,0,0,0,0,0,0), 942 | ROW(0,1,1,1,1,1,1,0), 943 | ROW(0,1,0,0,0,0,0,0), 944 | ROW(0,1,0,0,0,0,0,0), 945 | ROW(0,1,1,1,1,0,0,0), 946 | ROW(0,1,0,0,0,0,0,0), 947 | ROW(0,1,0,0,0,0,0,0), 948 | ROW(0,1,0,0,0,0,0,0), 949 | ROW(0,0,0,0,0,0,0,0), 950 | ROW(0,0,0,0,0,0,0,0), 951 | }, 952 | 953 | { /* G */ 954 | ROW(0,0,0,0,0,0,0,0), 955 | ROW(0,0,1,1,1,1,0,0), 956 | ROW(0,1,0,0,0,0,1,0), 957 | ROW(0,1,0,0,0,0,0,0), 958 | ROW(0,1,0,0,1,1,1,0), 959 | ROW(0,1,0,0,0,0,1,0), 960 | ROW(0,1,0,0,0,0,1,0), 961 | ROW(0,0,1,1,1,1,0,0), 962 | ROW(0,0,0,0,0,0,0,0), 963 | ROW(0,0,0,0,0,0,0,0), 964 | }, 965 | 966 | { /* H */ 967 | ROW(0,0,0,0,0,0,0,0), 968 | ROW(0,1,0,0,0,0,1,0), 969 | ROW(0,1,0,0,0,0,1,0), 970 | ROW(0,1,0,0,0,0,1,0), 971 | ROW(0,1,1,1,1,1,1,0), 972 | ROW(0,1,0,0,0,0,1,0), 973 | ROW(0,1,0,0,0,0,1,0), 974 | ROW(0,1,0,0,0,0,1,0), 975 | ROW(0,0,0,0,0,0,0,0), 976 | ROW(0,0,0,0,0,0,0,0), 977 | }, 978 | 979 | { /* I */ 980 | ROW(0,0,0,0,0,0,0,0), 981 | ROW(0,0,0,1,1,1,0,0), 982 | ROW(0,0,0,0,1,0,0,0), 983 | ROW(0,0,0,0,1,0,0,0), 984 | ROW(0,0,0,0,1,0,0,0), 985 | ROW(0,0,0,0,1,0,0,0), 986 | ROW(0,0,0,0,1,0,0,0), 987 | ROW(0,0,0,1,1,1,0,0), 988 | ROW(0,0,0,0,0,0,0,0), 989 | ROW(0,0,0,0,0,0,0,0), 990 | }, 991 | 992 | { /* J */ 993 | ROW(0,0,0,0,0,0,0,0), 994 | ROW(0,0,0,0,1,1,1,0), 995 | ROW(0,0,0,0,0,1,0,0), 996 | ROW(0,0,0,0,0,1,0,0), 997 | ROW(0,0,0,0,0,1,0,0), 998 | ROW(0,0,0,0,0,1,0,0), 999 | ROW(0,1,0,0,0,1,0,0), 1000 | ROW(0,0,1,1,1,0,0,0), 1001 | ROW(0,0,0,0,0,0,0,0), 1002 | ROW(0,0,0,0,0,0,0,0), 1003 | }, 1004 | 1005 | { /* K */ 1006 | ROW(0,0,0,0,0,0,0,0), 1007 | ROW(0,1,0,0,0,0,1,0), 1008 | ROW(0,1,0,0,0,1,0,0), 1009 | ROW(0,1,0,0,1,0,0,0), 1010 | ROW(0,1,1,1,0,0,0,0), 1011 | ROW(0,1,0,0,1,0,0,0), 1012 | ROW(0,1,0,0,0,1,0,0), 1013 | ROW(0,1,0,0,0,0,1,0), 1014 | ROW(0,0,0,0,0,0,0,0), 1015 | ROW(0,0,0,0,0,0,0,0), 1016 | }, 1017 | 1018 | { /* L */ 1019 | ROW(0,0,0,0,0,0,0,0), 1020 | ROW(0,1,0,0,0,0,0,0), 1021 | ROW(0,1,0,0,0,0,0,0), 1022 | ROW(0,1,0,0,0,0,0,0), 1023 | ROW(0,1,0,0,0,0,0,0), 1024 | ROW(0,1,0,0,0,0,0,0), 1025 | ROW(0,1,0,0,0,0,0,0), 1026 | ROW(0,1,1,1,1,1,1,0), 1027 | ROW(0,0,0,0,0,0,0,0), 1028 | ROW(0,0,0,0,0,0,0,0), 1029 | }, 1030 | 1031 | { /* M */ 1032 | ROW(0,0,0,0,0,0,0,0), 1033 | ROW(0,1,0,0,0,0,1,0), 1034 | ROW(0,1,1,0,0,1,1,0), 1035 | ROW(0,1,0,1,1,0,1,0), 1036 | ROW(0,1,0,1,1,0,1,0), 1037 | ROW(0,1,0,0,0,0,1,0), 1038 | ROW(0,1,0,0,0,0,1,0), 1039 | ROW(0,1,0,0,0,0,1,0), 1040 | ROW(0,0,0,0,0,0,0,0), 1041 | ROW(0,0,0,0,0,0,0,0), 1042 | }, 1043 | 1044 | { /* N */ 1045 | ROW(0,0,0,0,0,0,0,0), 1046 | ROW(0,1,0,0,0,0,1,0), 1047 | ROW(0,1,1,0,0,0,1,0), 1048 | ROW(0,1,0,1,0,0,1,0), 1049 | ROW(0,1,0,0,1,0,1,0), 1050 | ROW(0,1,0,0,0,1,1,0), 1051 | ROW(0,1,0,0,0,0,1,0), 1052 | ROW(0,1,0,0,0,0,1,0), 1053 | ROW(0,0,0,0,0,0,0,0), 1054 | ROW(0,0,0,0,0,0,0,0), 1055 | }, 1056 | 1057 | { /* O */ 1058 | ROW(0,0,0,0,0,0,0,0), 1059 | ROW(0,0,1,1,1,1,0,0), 1060 | ROW(0,1,0,0,0,0,1,0), 1061 | ROW(0,1,0,0,0,0,1,0), 1062 | ROW(0,1,0,0,0,0,1,0), 1063 | ROW(0,1,0,0,0,0,1,0), 1064 | ROW(0,1,0,0,0,0,1,0), 1065 | ROW(0,0,1,1,1,1,0,0), 1066 | ROW(0,0,0,0,0,0,0,0), 1067 | ROW(0,0,0,0,0,0,0,0), 1068 | }, 1069 | 1070 | { /* P */ 1071 | ROW(0,0,0,0,0,0,0,0), 1072 | ROW(0,1,1,1,1,1,0,0), 1073 | ROW(0,1,0,0,0,0,1,0), 1074 | ROW(0,1,0,0,0,0,1,0), 1075 | ROW(0,1,1,1,1,1,0,0), 1076 | ROW(0,1,0,0,0,0,0,0), 1077 | ROW(0,1,0,0,0,0,0,0), 1078 | ROW(0,1,0,0,0,0,0,0), 1079 | ROW(0,0,0,0,0,0,0,0), 1080 | ROW(0,0,0,0,0,0,0,0), 1081 | }, 1082 | 1083 | { /* Q */ 1084 | ROW(0,0,0,0,0,0,0,0), 1085 | ROW(0,0,1,1,1,1,0,0), 1086 | ROW(0,1,0,0,0,0,1,0), 1087 | ROW(0,1,0,0,0,0,1,0), 1088 | ROW(0,1,0,0,0,0,1,0), 1089 | ROW(0,1,0,0,1,0,1,0), 1090 | ROW(0,1,0,0,0,1,0,0), 1091 | ROW(0,0,1,1,1,0,1,0), 1092 | ROW(0,0,0,0,0,0,0,0), 1093 | ROW(0,0,0,0,0,0,0,0), 1094 | }, 1095 | 1096 | { /* R*/ 1097 | ROW(0,0,0,0,0,0,0,0), 1098 | ROW(0,1,1,1,1,1,0,0), 1099 | ROW(0,1,0,0,0,0,1,0), 1100 | ROW(0,1,0,0,0,0,1,0), 1101 | ROW(0,1,1,1,1,1,0,0), 1102 | ROW(0,1,0,0,1,0,0,0), 1103 | ROW(0,1,0,0,0,1,0,0), 1104 | ROW(0,1,0,0,0,0,1,0), 1105 | ROW(0,0,0,0,0,0,0,0), 1106 | ROW(0,0,0,0,0,0,0,0), 1107 | }, 1108 | 1109 | { /* S */ 1110 | ROW(0,0,0,0,0,0,0,0), 1111 | ROW(0,0,1,1,1,1,0,0), 1112 | ROW(0,1,0,0,0,0,1,0), 1113 | ROW(0,1,0,0,0,0,0,0), 1114 | ROW(0,0,1,1,1,1,0,0), 1115 | ROW(0,0,0,0,0,0,1,0), 1116 | ROW(0,1,0,0,0,0,1,0), 1117 | ROW(0,0,1,1,1,1,0,0), 1118 | ROW(0,0,0,0,0,0,0,0), 1119 | ROW(0,0,0,0,0,0,0,0), 1120 | }, 1121 | 1122 | { /* T */ 1123 | ROW(0,0,0,0,0,0,0,0), 1124 | ROW(0,0,1,1,1,1,1,0), 1125 | ROW(0,0,0,0,1,0,0,0), 1126 | ROW(0,0,0,0,1,0,0,0), 1127 | ROW(0,0,0,0,1,0,0,0), 1128 | ROW(0,0,0,0,1,0,0,0), 1129 | ROW(0,0,0,0,1,0,0,0), 1130 | ROW(0,0,0,0,1,0,0,0), 1131 | ROW(0,0,0,0,0,0,0,0), 1132 | ROW(0,0,0,0,0,0,0,0), 1133 | }, 1134 | 1135 | { /* U */ 1136 | ROW(0,0,0,0,0,0,0,0), 1137 | ROW(0,1,0,0,0,0,1,0), 1138 | ROW(0,1,0,0,0,0,1,0), 1139 | ROW(0,1,0,0,0,0,1,0), 1140 | ROW(0,1,0,0,0,0,1,0), 1141 | ROW(0,1,0,0,0,0,1,0), 1142 | ROW(0,1,0,0,0,0,1,0), 1143 | ROW(0,0,1,1,1,1,0,0), 1144 | ROW(0,0,0,0,0,0,0,0), 1145 | ROW(0,0,0,0,0,0,0,0), 1146 | }, 1147 | 1148 | { /* V */ 1149 | ROW(0,0,0,0,0,0,0,0), 1150 | ROW(0,1,0,0,0,0,1,0), 1151 | ROW(0,1,0,0,0,0,1,0), 1152 | ROW(0,1,0,0,0,0,1,0), 1153 | ROW(0,0,1,0,0,1,0,0), 1154 | ROW(0,0,1,0,0,1,0,0), 1155 | ROW(0,0,0,1,1,0,0,0), 1156 | ROW(0,0,0,1,1,0,0,0), 1157 | ROW(0,0,0,0,0,0,0,0), 1158 | ROW(0,0,0,0,0,0,0,0), 1159 | }, 1160 | 1161 | { /* W */ 1162 | ROW(0,0,0,0,0,0,0,0), 1163 | ROW(0,1,0,0,0,0,1,0), 1164 | ROW(0,1,0,0,0,0,1,0), 1165 | ROW(0,1,0,0,0,0,1,0), 1166 | ROW(0,1,0,1,1,0,1,0), 1167 | ROW(0,1,0,1,1,0,1,0), 1168 | ROW(0,1,1,0,0,1,1,0), 1169 | ROW(0,1,0,0,0,0,1,0), 1170 | ROW(0,0,0,0,0,0,0,0), 1171 | ROW(0,0,0,0,0,0,0,0), 1172 | }, 1173 | 1174 | { /* X */ 1175 | ROW(0,0,0,0,0,0,0,0), 1176 | ROW(0,1,0,0,0,0,1,0), 1177 | ROW(0,1,0,0,0,0,1,0), 1178 | ROW(0,0,1,0,0,1,0,0), 1179 | ROW(0,0,0,1,1,0,0,0), 1180 | ROW(0,0,1,0,0,1,0,0), 1181 | ROW(0,1,0,0,0,0,1,0), 1182 | ROW(0,1,0,0,0,0,1,0), 1183 | ROW(0,0,0,0,0,0,0,0), 1184 | ROW(0,0,0,0,0,0,0,0), 1185 | }, 1186 | 1187 | { /* Y */ 1188 | ROW(0,0,0,0,0,0,0,0), 1189 | ROW(0,0,1,0,0,0,1,0), 1190 | ROW(0,0,1,0,0,0,1,0), 1191 | ROW(0,0,1,0,0,0,1,0), 1192 | ROW(0,0,0,1,1,1,0,0), 1193 | ROW(0,0,0,0,1,0,0,0), 1194 | ROW(0,0,0,0,1,0,0,0), 1195 | ROW(0,0,0,0,1,0,0,0), 1196 | ROW(0,0,0,0,0,0,0,0), 1197 | ROW(0,0,0,0,0,0,0,0), 1198 | }, 1199 | 1200 | { /* Z */ 1201 | ROW(0,0,0,0,0,0,0,0), 1202 | ROW(0,1,1,1,1,1,1,0), 1203 | ROW(0,0,0,0,0,0,1,0), 1204 | ROW(0,0,0,0,0,1,0,0), 1205 | ROW(0,0,0,1,1,0,0,0), 1206 | ROW(0,0,1,0,0,0,0,0), 1207 | ROW(0,1,0,0,0,0,0,0), 1208 | ROW(0,1,1,1,1,1,1,0), 1209 | ROW(0,0,0,0,0,0,0,0), 1210 | ROW(0,0,0,0,0,0,0,0), 1211 | }, 1212 | 1213 | { /* [ */ 1214 | ROW(0,0,0,0,0,0,0,0), 1215 | ROW(0,0,1,1,1,1,0,0), 1216 | ROW(0,0,1,0,0,0,0,0), 1217 | ROW(0,0,1,0,0,0,0,0), 1218 | ROW(0,0,1,0,0,0,0,0), 1219 | ROW(0,0,1,0,0,0,0,0), 1220 | ROW(0,0,1,0,0,0,0,0), 1221 | ROW(0,0,1,1,1,1,0,0), 1222 | ROW(0,0,0,0,0,0,0,0), 1223 | ROW(0,0,0,0,0,0,0,0), 1224 | }, 1225 | 1226 | { /* \ */ 1227 | ROW(0,0,0,0,0,0,0,0), 1228 | ROW(0,0,0,0,0,0,0,0), 1229 | ROW(0,1,0,0,0,0,0,0), 1230 | ROW(0,0,1,0,0,0,0,0), 1231 | ROW(0,0,0,1,0,0,0,0), 1232 | ROW(0,0,0,0,1,0,0,0), 1233 | ROW(0,0,0,0,0,1,0,0), 1234 | ROW(0,0,0,0,0,0,1,0), 1235 | ROW(0,0,0,0,0,0,0,0), 1236 | ROW(0,0,0,0,0,0,0,0), 1237 | }, 1238 | 1239 | { /* ] */ 1240 | ROW(0,0,0,0,0,0,0,0), 1241 | ROW(0,0,1,1,1,1,0,0), 1242 | ROW(0,0,0,0,0,1,0,0), 1243 | ROW(0,0,0,0,0,1,0,0), 1244 | ROW(0,0,0,0,0,1,0,0), 1245 | ROW(0,0,0,0,0,1,0,0), 1246 | ROW(0,0,0,0,0,1,0,0), 1247 | ROW(0,0,1,1,1,1,0,0), 1248 | ROW(0,0,0,0,0,0,0,0), 1249 | ROW(0,0,0,0,0,0,0,0), 1250 | }, 1251 | 1252 | { /* ^ */ 1253 | ROW(0,0,0,0,0,0,0,0), 1254 | ROW(0,0,0,0,1,0,0,0), 1255 | ROW(0,0,0,1,0,1,0,0), 1256 | ROW(0,0,1,0,0,0,1,0), 1257 | ROW(0,0,0,0,0,0,0,0), 1258 | ROW(0,0,0,0,0,0,0,0), 1259 | ROW(0,0,0,0,0,0,0,0), 1260 | ROW(0,0,0,0,0,0,0,0), 1261 | ROW(0,0,0,0,0,0,0,0), 1262 | ROW(0,0,0,0,0,0,0,0), 1263 | }, 1264 | 1265 | { /* _ */ 1266 | ROW(0,0,0,0,0,0,0,0), 1267 | ROW(0,0,0,0,0,0,0,0), 1268 | ROW(0,0,0,0,0,0,0,0), 1269 | ROW(0,0,0,0,0,0,0,0), 1270 | ROW(0,0,0,0,0,0,0,0), 1271 | ROW(0,0,0,0,0,0,0,0), 1272 | ROW(0,0,0,0,0,0,0,0), 1273 | ROW(0,0,0,0,0,0,0,0), 1274 | ROW(1,1,1,1,1,1,1,1), 1275 | ROW(0,0,0,0,0,0,0,0), 1276 | }, 1277 | 1278 | { /* ` */ 1279 | ROW(0,0,0,0,0,0,0,0), 1280 | ROW(0,0,0,1,0,0,0,0), 1281 | ROW(0,0,0,0,1,0,0,0), 1282 | ROW(0,0,0,0,0,1,0,0), 1283 | ROW(0,0,0,0,0,0,0,0), 1284 | ROW(0,0,0,0,0,0,0,0), 1285 | ROW(0,0,0,0,0,0,0,0), 1286 | ROW(0,0,0,0,0,0,0,0), 1287 | ROW(0,0,0,0,0,0,0,0), 1288 | ROW(0,0,0,0,0,0,0,0), 1289 | }, 1290 | 1291 | { /* a */ 1292 | ROW(0,0,0,0,0,0,0,0), 1293 | ROW(0,0,0,0,0,0,0,0), 1294 | ROW(0,0,0,0,0,0,0,0), 1295 | ROW(0,0,1,1,1,0,0,0), 1296 | ROW(0,0,0,0,0,1,0,0), 1297 | ROW(0,0,1,1,1,1,0,0), 1298 | ROW(0,1,0,0,0,1,0,0), 1299 | ROW(0,0,1,1,1,0,1,0), 1300 | ROW(0,0,0,0,0,0,0,0), 1301 | ROW(0,0,0,0,0,0,0,0), 1302 | }, 1303 | 1304 | { /* b */ 1305 | ROW(0,0,0,0,0,0,0,0), 1306 | ROW(0,1,0,0,0,0,0,0), 1307 | ROW(0,1,0,0,0,0,0,0), 1308 | ROW(0,1,0,1,1,1,0,0), 1309 | ROW(0,1,1,0,0,0,1,0), 1310 | ROW(0,1,0,0,0,0,1,0), 1311 | ROW(0,1,1,0,0,0,1,0), 1312 | ROW(0,1,0,1,1,1,0,0), 1313 | ROW(0,0,0,0,0,0,0,0), 1314 | ROW(0,0,0,0,0,0,0,0), 1315 | }, 1316 | 1317 | { /* c */ 1318 | ROW(0,0,0,0,0,0,0,0), 1319 | ROW(0,0,0,0,0,0,0,0), 1320 | ROW(0,0,0,0,0,0,0,0), 1321 | ROW(0,0,1,1,1,1,0,0), 1322 | ROW(0,1,0,0,0,0,0,0), 1323 | ROW(0,1,0,0,0,0,0,0), 1324 | ROW(0,1,0,0,0,0,0,0), 1325 | ROW(0,0,1,1,1,1,0,0), 1326 | ROW(0,0,0,0,0,0,0,0), 1327 | ROW(0,0,0,0,0,0,0,0), 1328 | }, 1329 | 1330 | { /* d */ 1331 | ROW(0,0,0,0,0,0,0,0), 1332 | ROW(0,0,0,0,0,0,1,0), 1333 | ROW(0,0,0,0,0,0,1,0), 1334 | ROW(0,0,1,1,1,0,1,0), 1335 | ROW(0,1,0,0,0,1,1,0), 1336 | ROW(0,1,0,0,0,0,1,0), 1337 | ROW(0,1,0,0,0,1,1,0), 1338 | ROW(0,0,1,1,1,0,1,0), 1339 | ROW(0,0,0,0,0,0,0,0), 1340 | ROW(0,0,0,0,0,0,0,0), 1341 | }, 1342 | 1343 | { /* e */ 1344 | ROW(0,0,0,0,0,0,0,0), 1345 | ROW(0,0,0,0,0,0,0,0), 1346 | ROW(0,0,0,0,0,0,0,0), 1347 | ROW(0,0,1,1,1,1,0,0), 1348 | ROW(0,1,0,0,0,0,1,0), 1349 | ROW(0,1,1,1,1,1,1,0), 1350 | ROW(0,1,0,0,0,0,0,0), 1351 | ROW(0,0,1,1,1,1,0,0), 1352 | ROW(0,0,0,0,0,0,0,0), 1353 | ROW(0,0,0,0,0,0,0,0), 1354 | }, 1355 | 1356 | { /* f */ 1357 | ROW(0,0,0,0,0,0,0,0), 1358 | ROW(0,0,0,0,1,1,0,0), 1359 | ROW(0,0,0,1,0,0,1,0), 1360 | ROW(0,0,0,1,0,0,0,0), 1361 | ROW(0,1,1,1,1,1,0,0), 1362 | ROW(0,0,0,1,0,0,0,0), 1363 | ROW(0,0,0,1,0,0,0,0), 1364 | ROW(0,0,0,1,0,0,0,0), 1365 | ROW(0,0,0,0,0,0,0,0), 1366 | ROW(0,0,0,0,0,0,0,0), 1367 | }, 1368 | 1369 | { /* g */ 1370 | ROW(0,0,0,0,0,0,0,0), 1371 | ROW(0,0,0,0,0,0,0,0), 1372 | ROW(0,0,0,0,0,0,0,0), 1373 | ROW(0,0,1,1,1,0,1,0), 1374 | ROW(0,1,0,0,0,1,1,0), 1375 | ROW(0,1,0,0,0,0,1,0), 1376 | ROW(0,1,0,0,0,1,1,0), 1377 | ROW(0,0,1,1,1,0,1,0), 1378 | ROW(0,0,0,0,0,0,1,0), 1379 | ROW(0,0,1,1,1,1,0,0), 1380 | }, 1381 | 1382 | { /* h */ 1383 | ROW(0,0,0,0,0,0,0,0), 1384 | ROW(0,1,0,0,0,0,0,0), 1385 | ROW(0,1,0,0,0,0,0,0), 1386 | ROW(0,1,0,1,1,1,0,0), 1387 | ROW(0,1,1,0,0,0,1,0), 1388 | ROW(0,1,0,0,0,0,1,0), 1389 | ROW(0,1,0,0,0,0,1,0), 1390 | ROW(0,1,0,0,0,0,1,0), 1391 | ROW(0,0,0,0,0,0,0,0), 1392 | ROW(0,0,0,0,0,0,0,0), 1393 | }, 1394 | 1395 | { /* i */ 1396 | ROW(0,0,0,0,0,0,0,0), 1397 | ROW(0,0,0,0,1,0,0,0), 1398 | ROW(0,0,0,0,0,0,0,0), 1399 | ROW(0,0,0,1,1,0,0,0), 1400 | ROW(0,0,0,0,1,0,0,0), 1401 | ROW(0,0,0,0,1,0,0,0), 1402 | ROW(0,0,0,0,1,0,0,0), 1403 | ROW(0,0,0,1,1,1,0,0), 1404 | ROW(0,0,0,0,0,0,0,0), 1405 | ROW(0,0,0,0,0,0,0,0), 1406 | }, 1407 | 1408 | { /* j */ 1409 | ROW(0,0,0,0,0,0,0,0), 1410 | ROW(0,0,0,0,0,1,0,0), 1411 | ROW(0,0,0,0,0,0,0,0), 1412 | ROW(0,0,0,0,1,1,0,0), 1413 | ROW(0,0,0,0,0,1,0,0), 1414 | ROW(0,0,0,0,0,1,0,0), 1415 | ROW(0,0,0,0,0,1,0,0), 1416 | ROW(0,0,0,0,0,1,0,0), 1417 | ROW(0,1,0,0,0,1,0,0), 1418 | ROW(0,0,1,1,1,0,0,0), 1419 | }, 1420 | 1421 | { /* k */ 1422 | ROW(0,0,0,0,0,0,0,0), 1423 | ROW(0,1,0,0,0,0,0,0), 1424 | ROW(0,1,0,0,0,0,0,0), 1425 | ROW(0,1,0,0,0,1,0,0), 1426 | ROW(0,1,0,0,1,0,0,0), 1427 | ROW(0,1,0,1,0,0,0,0), 1428 | ROW(0,1,1,0,1,0,0,0), 1429 | ROW(0,1,0,0,0,1,0,0), 1430 | ROW(0,0,0,0,0,0,0,0), 1431 | ROW(0,0,0,0,0,0,0,0), 1432 | }, 1433 | 1434 | { /* l */ 1435 | ROW(0,0,0,0,0,0,0,0), 1436 | ROW(0,0,0,1,1,0,0,0), 1437 | ROW(0,0,0,0,1,0,0,0), 1438 | ROW(0,0,0,0,1,0,0,0), 1439 | ROW(0,0,0,0,1,0,0,0), 1440 | ROW(0,0,0,0,1,0,0,0), 1441 | ROW(0,0,0,0,1,0,0,0), 1442 | ROW(0,0,0,1,1,1,0,0), 1443 | ROW(0,0,0,0,0,0,0,0), 1444 | ROW(0,0,0,0,0,0,0,0), 1445 | }, 1446 | 1447 | { /* m */ 1448 | ROW(0,0,0,0,0,0,0,0), 1449 | ROW(0,0,0,0,0,0,0,0), 1450 | ROW(0,0,0,0,0,0,0,0), 1451 | ROW(0,1,1,1,0,1,0,0), 1452 | ROW(0,0,1,0,1,0,1,0), 1453 | ROW(0,0,1,0,1,0,1,0), 1454 | ROW(0,0,1,0,1,0,1,0), 1455 | ROW(0,0,1,0,1,0,1,0), 1456 | ROW(0,0,0,0,0,0,0,0), 1457 | ROW(0,0,0,0,0,0,0,0), 1458 | }, 1459 | 1460 | { /* n */ 1461 | ROW(0,0,0,0,0,0,0,0), 1462 | ROW(0,0,0,0,0,0,0,0), 1463 | ROW(0,0,0,0,0,0,0,0), 1464 | ROW(0,1,1,1,1,1,0,0), 1465 | ROW(0,0,1,0,0,0,1,0), 1466 | ROW(0,0,1,0,0,0,1,0), 1467 | ROW(0,0,1,0,0,0,1,0), 1468 | ROW(0,0,1,0,0,0,1,0), 1469 | ROW(0,0,0,0,0,0,0,0), 1470 | ROW(0,0,0,0,0,0,0,0), 1471 | }, 1472 | 1473 | { /* o */ 1474 | ROW(0,0,0,0,0,0,0,0), 1475 | ROW(0,0,0,0,0,0,0,0), 1476 | ROW(0,0,0,0,0,0,0,0), 1477 | ROW(0,0,0,1,1,1,0,0), 1478 | ROW(0,0,1,0,0,0,1,0), 1479 | ROW(0,0,1,0,0,0,1,0), 1480 | ROW(0,0,1,0,0,0,1,0), 1481 | ROW(0,0,0,1,1,1,0,0), 1482 | ROW(0,0,0,0,0,0,0,0), 1483 | ROW(0,0,0,0,0,0,0,0), 1484 | }, 1485 | 1486 | { /* p */ 1487 | ROW(0,0,0,0,0,0,0,0), 1488 | ROW(0,0,0,0,0,0,0,0), 1489 | ROW(0,0,0,0,0,0,0,0), 1490 | ROW(0,1,0,1,1,1,0,0), 1491 | ROW(0,1,1,0,0,0,1,0), 1492 | ROW(0,1,0,0,0,0,1,0), 1493 | ROW(0,1,1,0,0,0,1,0), 1494 | ROW(0,1,0,1,1,1,0,0), 1495 | ROW(0,1,0,0,0,0,0,0), 1496 | ROW(0,1,0,0,0,0,0,0), 1497 | }, 1498 | 1499 | { /* q */ 1500 | ROW(0,0,0,0,0,0,0,0), 1501 | ROW(0,0,0,0,0,0,0,0), 1502 | ROW(0,0,0,0,0,0,0,0), 1503 | ROW(0,0,1,1,1,0,1,0), 1504 | ROW(0,1,0,0,0,1,1,0), 1505 | ROW(0,1,0,0,0,0,1,0), 1506 | ROW(0,1,0,0,0,1,1,0), 1507 | ROW(0,0,1,1,1,0,1,0), 1508 | ROW(0,0,0,0,0,0,1,0), 1509 | ROW(0,0,0,0,0,0,1,0), 1510 | }, 1511 | 1512 | { /* r */ 1513 | ROW(0,0,0,0,0,0,0,0), 1514 | ROW(0,0,0,0,0,0,0,0), 1515 | ROW(0,0,0,0,0,0,0,0), 1516 | ROW(0,1,0,1,1,1,0,0), 1517 | ROW(0,1,1,0,0,0,1,0), 1518 | ROW(0,1,0,0,0,0,0,0), 1519 | ROW(0,1,0,0,0,0,0,0), 1520 | ROW(0,1,0,0,0,0,0,0), 1521 | ROW(0,0,0,0,0,0,0,0), 1522 | ROW(0,0,0,0,0,0,0,0), 1523 | }, 1524 | 1525 | { /* s */ 1526 | ROW(0,0,0,0,0,0,0,0), 1527 | ROW(0,0,0,0,0,0,0,0), 1528 | ROW(0,0,0,0,0,0,0,0), 1529 | ROW(0,0,1,1,1,1,1,0), 1530 | ROW(0,1,0,0,0,0,0,0), 1531 | ROW(0,0,1,1,1,1,0,0), 1532 | ROW(0,0,0,0,0,0,1,0), 1533 | ROW(0,1,1,1,1,1,0,0), 1534 | ROW(0,0,0,0,0,0,0,0), 1535 | ROW(0,0,0,0,0,0,0,0), 1536 | }, 1537 | 1538 | { /* t */ 1539 | ROW(0,0,0,0,0,0,0,0), 1540 | ROW(0,0,0,1,0,0,0,0), 1541 | ROW(0,0,0,1,0,0,0,0), 1542 | ROW(0,1,1,1,1,1,1,0), 1543 | ROW(0,0,0,1,0,0,0,0), 1544 | ROW(0,0,0,1,0,0,0,0), 1545 | ROW(0,0,0,1,0,0,1,0), 1546 | ROW(0,0,0,0,1,1,0,0), 1547 | ROW(0,0,0,0,0,0,0,0), 1548 | ROW(0,0,0,0,0,0,0,0), 1549 | }, 1550 | 1551 | { /* u */ 1552 | ROW(0,0,0,0,0,0,0,0), 1553 | ROW(0,0,0,0,0,0,0,0), 1554 | ROW(0,0,0,0,0,0,0,0), 1555 | ROW(0,1,0,0,0,0,1,0), 1556 | ROW(0,1,0,0,0,0,1,0), 1557 | ROW(0,1,0,0,0,0,1,0), 1558 | ROW(0,1,0,0,0,1,1,0), 1559 | ROW(0,0,1,1,1,0,1,0), 1560 | ROW(0,0,0,0,0,0,0,0), 1561 | ROW(0,0,0,0,0,0,0,0), 1562 | }, 1563 | 1564 | { /* v */ 1565 | ROW(0,0,0,0,0,0,0,0), 1566 | ROW(0,0,0,0,0,0,0,0), 1567 | ROW(0,0,0,0,0,0,0,0), 1568 | ROW(0,1,0,0,0,0,1,0), 1569 | ROW(0,1,0,0,0,0,1,0), 1570 | ROW(0,1,0,0,0,0,1,0), 1571 | ROW(0,0,1,0,0,1,0,0), 1572 | ROW(0,0,0,1,1,0,0,0), 1573 | ROW(0,0,0,0,0,0,0,0), 1574 | ROW(0,0,0,0,0,0,0,0), 1575 | }, 1576 | 1577 | { /* w */ 1578 | ROW(0,0,0,0,0,0,0,0), 1579 | ROW(0,0,0,0,0,0,0,0), 1580 | ROW(0,0,0,0,0,0,0,0), 1581 | ROW(0,0,1,0,0,0,1,0), 1582 | ROW(0,0,1,0,0,0,1,0), 1583 | ROW(0,0,1,0,1,0,1,0), 1584 | ROW(0,0,1,0,1,0,1,0), 1585 | ROW(0,0,1,1,0,1,1,0), 1586 | ROW(0,0,0,0,0,0,0,0), 1587 | ROW(0,0,0,0,0,0,0,0), 1588 | }, 1589 | 1590 | { /* x */ 1591 | ROW(0,0,0,0,0,0,0,0), 1592 | ROW(0,0,0,0,0,0,0,0), 1593 | ROW(0,0,0,0,0,0,0,0), 1594 | ROW(0,1,0,0,0,0,1,0), 1595 | ROW(0,0,1,0,0,1,0,0), 1596 | ROW(0,0,0,1,1,0,0,0), 1597 | ROW(0,0,1,0,0,1,0,0), 1598 | ROW(0,1,0,0,0,0,1,0), 1599 | ROW(0,0,0,0,0,0,0,0), 1600 | ROW(0,0,0,0,0,0,0,0), 1601 | }, 1602 | 1603 | { /* y */ 1604 | ROW(0,0,0,0,0,0,0,0), 1605 | ROW(0,0,0,0,0,0,0,0), 1606 | ROW(0,0,0,0,0,0,0,0), 1607 | ROW(0,1,0,0,0,0,1,0), 1608 | ROW(0,1,0,0,0,0,1,0), 1609 | ROW(0,1,0,0,0,0,1,0), 1610 | ROW(0,1,0,0,0,1,1,0), 1611 | ROW(0,0,1,1,1,0,1,0), 1612 | ROW(0,0,0,0,0,0,1,0), 1613 | ROW(0,0,1,1,1,1,0,0), 1614 | }, 1615 | 1616 | { /* z */ 1617 | ROW(0,0,0,0,0,0,0,0), 1618 | ROW(0,0,0,0,0,0,0,0), 1619 | ROW(0,0,0,0,0,0,0,0), 1620 | ROW(0,1,1,1,1,1,1,0), 1621 | ROW(0,0,0,0,0,1,0,0), 1622 | ROW(0,0,0,1,1,0,0,0), 1623 | ROW(0,0,1,0,0,0,0,0), 1624 | ROW(0,1,1,1,1,1,1,0), 1625 | ROW(0,0,0,0,0,0,0,0), 1626 | ROW(0,0,0,0,0,0,0,0), 1627 | }, 1628 | 1629 | { /* { */ 1630 | ROW(0,0,0,0,0,0,0,0), 1631 | ROW(0,0,0,0,0,1,0,0), 1632 | ROW(0,0,0,0,1,0,0,0), 1633 | ROW(0,0,0,0,1,0,0,0), 1634 | ROW(0,0,0,1,0,0,0,0), 1635 | ROW(0,0,0,0,1,0,0,0), 1636 | ROW(0,0,0,0,1,0,0,0), 1637 | ROW(0,0,0,0,0,1,0,0), 1638 | ROW(0,0,0,0,0,0,0,0), 1639 | ROW(0,0,0,0,0,0,0,0), 1640 | }, 1641 | 1642 | { /* | */ 1643 | ROW(0,0,0,0,0,0,0,0), 1644 | ROW(0,0,0,0,1,0,0,0), 1645 | ROW(0,0,0,0,1,0,0,0), 1646 | ROW(0,0,0,0,1,0,0,0), 1647 | ROW(0,0,0,0,1,0,0,0), 1648 | ROW(0,0,0,0,1,0,0,0), 1649 | ROW(0,0,0,0,1,0,0,0), 1650 | ROW(0,0,0,0,1,0,0,0), 1651 | ROW(0,0,0,0,0,0,0,0), 1652 | ROW(0,0,0,0,0,0,0,0), 1653 | }, 1654 | 1655 | { /* } */ 1656 | ROW(0,0,0,0,0,0,0,0), 1657 | ROW(0,0,1,0,0,0,0,0), 1658 | ROW(0,0,0,1,0,0,0,0), 1659 | ROW(0,0,0,1,0,0,0,0), 1660 | ROW(0,0,0,0,1,0,0,0), 1661 | ROW(0,0,0,1,0,0,0,0), 1662 | ROW(0,0,0,1,0,0,0,0), 1663 | ROW(0,0,1,0,0,0,0,0), 1664 | ROW(0,0,0,0,0,0,0,0), 1665 | ROW(0,0,0,0,0,0,0,0), 1666 | }, 1667 | 1668 | { /* ~ */ 1669 | ROW(0,0,0,0,0,0,0,0), 1670 | ROW(0,0,0,1,0,1,0,0), 1671 | ROW(0,0,1,0,1,0,0,0), 1672 | ROW(0,0,0,0,0,0,0,0), 1673 | ROW(0,0,0,0,0,0,0,0), 1674 | ROW(0,0,0,0,0,0,0,0), 1675 | ROW(0,0,0,0,0,0,0,0), 1676 | ROW(0,0,0,0,0,0,0,0), 1677 | ROW(0,0,0,0,0,0,0,0), 1678 | ROW(0,0,0,0,0,0,0,0), 1679 | }, 1680 | 1681 | { /* block */ 1682 | ROW(0,0,0,0,0,0,0,0), 1683 | ROW(1,1,1,1,1,1,1,0), 1684 | ROW(1,1,1,1,1,1,1,0), 1685 | ROW(1,1,1,1,1,1,1,0), 1686 | ROW(1,1,1,1,1,1,1,0), 1687 | ROW(1,1,1,1,1,1,1,0), 1688 | ROW(1,1,1,1,1,1,1,0), 1689 | ROW(1,1,1,1,1,1,1,0), 1690 | ROW(1,1,1,1,1,1,1,0), 1691 | ROW(0,0,0,0,0,0,0,0), 1692 | }, 1693 | 1694 | /* graphics set 2 */ 1695 | 1696 | { /* line draw - */ 1697 | ROW(0,0,0,0,0,0,0,0), 1698 | ROW(0,0,0,0,0,0,0,0), 1699 | ROW(0,0,0,0,0,0,0,0), 1700 | ROW(0,0,0,0,0,0,0,0), 1701 | ROW(1,1,1,1,1,1,1,1), 1702 | ROW(1,1,1,1,1,1,1,1), 1703 | ROW(0,0,0,0,0,0,0,0), 1704 | ROW(0,0,0,0,0,0,0,0), 1705 | ROW(0,0,0,0,0,0,0,0), 1706 | ROW(0,0,0,0,0,0,0,0), 1707 | }, 1708 | 1709 | { /* line draw | */ 1710 | ROW(0,0,0,1,1,0,0,0), 1711 | ROW(0,0,0,1,1,0,0,0), 1712 | ROW(0,0,0,1,1,0,0,0), 1713 | ROW(0,0,0,1,1,0,0,0), 1714 | ROW(0,0,0,1,1,0,0,0), 1715 | ROW(0,0,0,1,1,0,0,0), 1716 | ROW(0,0,0,1,1,0,0,0), 1717 | ROW(0,0,0,1,1,0,0,0), 1718 | ROW(0,0,0,1,1,0,0,0), 1719 | ROW(0,0,0,1,1,0,0,0), 1720 | }, 1721 | 1722 | { /* line draw br corner */ 1723 | ROW(0,0,0,1,1,0,0,0), 1724 | ROW(0,0,0,1,1,0,0,0), 1725 | ROW(0,0,0,1,1,0,0,0), 1726 | ROW(0,0,0,1,1,0,0,0), 1727 | ROW(1,1,1,1,1,0,0,0), 1728 | ROW(1,1,1,1,0,0,0,0), 1729 | ROW(0,0,0,0,0,0,0,0), 1730 | ROW(0,0,0,0,0,0,0,0), 1731 | ROW(0,0,0,0,0,0,0,0), 1732 | ROW(0,0,0,0,0,0,0,0), 1733 | }, 1734 | 1735 | { /* line draw bl corner */ 1736 | ROW(0,0,0,1,1,0,0,0), 1737 | ROW(0,0,0,1,1,0,0,0), 1738 | ROW(0,0,0,1,1,0,0,0), 1739 | ROW(0,0,0,1,1,0,0,0), 1740 | ROW(0,0,0,1,1,1,1,1), 1741 | ROW(0,0,0,0,1,1,1,1), 1742 | ROW(0,0,0,0,0,0,0,0), 1743 | ROW(0,0,0,0,0,0,0,0), 1744 | ROW(0,0,0,0,0,0,0,0), 1745 | ROW(0,0,0,0,0,0,0,0), 1746 | }, 1747 | 1748 | { /* line draw tr corner */ 1749 | ROW(0,0,0,0,0,0,0,0), 1750 | ROW(0,0,0,0,0,0,0,0), 1751 | ROW(0,0,0,0,0,0,0,0), 1752 | ROW(0,0,0,0,0,0,0,0), 1753 | ROW(1,1,1,1,0,0,0,0), 1754 | ROW(1,1,1,1,1,0,0,0), 1755 | ROW(0,0,0,1,1,0,0,0), 1756 | ROW(0,0,0,1,1,0,0,0), 1757 | ROW(0,0,0,1,1,0,0,0), 1758 | ROW(0,0,0,1,1,0,0,0), 1759 | }, 1760 | 1761 | { /* line draw tl corner */ 1762 | ROW(0,0,0,0,0,0,0,0), 1763 | ROW(0,0,0,0,0,0,0,0), 1764 | ROW(0,0,0,0,0,0,0,0), 1765 | ROW(0,0,0,0,0,0,0,0), 1766 | ROW(0,0,0,0,1,1,1,1), 1767 | ROW(0,0,0,1,1,1,1,1), 1768 | ROW(0,0,0,1,1,0,0,0), 1769 | ROW(0,0,0,1,1,0,0,0), 1770 | ROW(0,0,0,1,1,0,0,0), 1771 | ROW(0,0,0,1,1,0,0,0), 1772 | }, 1773 | 1774 | { /* line draw l tee */ 1775 | ROW(0,0,0,1,1,0,0,0), 1776 | ROW(0,0,0,1,1,0,0,0), 1777 | ROW(0,0,0,1,1,0,0,0), 1778 | ROW(0,0,0,1,1,0,0,0), 1779 | ROW(1,1,1,1,1,0,0,0), 1780 | ROW(1,1,1,1,1,0,0,0), 1781 | ROW(0,0,0,1,1,0,0,0), 1782 | ROW(0,0,0,1,1,0,0,0), 1783 | ROW(0,0,0,1,1,0,0,0), 1784 | ROW(0,0,0,1,1,0,0,0), 1785 | }, 1786 | 1787 | { /* line draw r tee */ 1788 | ROW(0,0,0,1,1,0,0,0), 1789 | ROW(0,0,0,1,1,0,0,0), 1790 | ROW(0,0,0,1,1,0,0,0), 1791 | ROW(0,0,0,1,1,0,0,0), 1792 | ROW(0,0,0,1,1,1,1,1), 1793 | ROW(0,0,0,1,1,1,1,1), 1794 | ROW(0,0,0,1,1,0,0,0), 1795 | ROW(0,0,0,1,1,0,0,0), 1796 | ROW(0,0,0,1,1,0,0,0), 1797 | ROW(0,0,0,1,1,0,0,0), 1798 | }, 1799 | 1800 | { /* line draw u tee */ 1801 | ROW(0,0,0,1,1,0,0,0), 1802 | ROW(0,0,0,1,1,0,0,0), 1803 | ROW(0,0,0,1,1,0,0,0), 1804 | ROW(0,0,0,1,1,0,0,0), 1805 | ROW(1,1,1,1,1,1,1,1), 1806 | ROW(1,1,1,1,1,1,1,1), 1807 | ROW(0,0,0,0,0,0,0,0), 1808 | ROW(0,0,0,0,0,0,0,0), 1809 | ROW(0,0,0,0,0,0,0,0), 1810 | ROW(0,0,0,0,0,0,0,0), 1811 | }, 1812 | 1813 | { /* line draw d tee */ 1814 | ROW(0,0,0,0,0,0,0,0), 1815 | ROW(0,0,0,0,0,0,0,0), 1816 | ROW(0,0,0,0,0,0,0,0), 1817 | ROW(0,0,0,0,0,0,0,0), 1818 | ROW(1,1,1,1,1,1,1,1), 1819 | ROW(1,1,1,1,1,1,1,1), 1820 | ROW(0,0,0,1,1,0,0,0), 1821 | ROW(0,0,0,1,1,0,0,0), 1822 | ROW(0,0,0,1,1,0,0,0), 1823 | ROW(0,0,0,1,1,0,0,0), 1824 | }, 1825 | 1826 | { /* line draw cross */ 1827 | ROW(0,0,0,1,1,0,0,0), 1828 | ROW(0,0,0,1,1,0,0,0), 1829 | ROW(0,0,0,1,1,0,0,0), 1830 | ROW(0,0,0,1,1,0,0,0), 1831 | ROW(1,1,1,1,1,1,1,1), 1832 | ROW(1,1,1,1,1,1,1,1), 1833 | ROW(0,0,0,1,1,0,0,0), 1834 | ROW(0,0,0,1,1,0,0,0), 1835 | ROW(0,0,0,1,1,0,0,0), 1836 | ROW(0,0,0,1,1,0,0,0), 1837 | }, 1838 | 1839 | { /* bar 0 */ 1840 | ROW(0,0,0,0,0,0,0,0), 1841 | ROW(0,0,0,0,0,0,0,0), 1842 | ROW(0,0,0,0,0,0,0,0), 1843 | ROW(0,0,0,0,0,0,0,0), 1844 | ROW(0,0,0,0,0,0,0,0), 1845 | ROW(0,0,0,0,0,0,0,0), 1846 | ROW(0,0,0,0,0,0,0,0), 1847 | ROW(0,0,0,0,0,0,0,0), 1848 | ROW(0,0,0,0,0,0,0,0), 1849 | ROW(1,1,1,1,1,1,1,1), 1850 | }, 1851 | 1852 | { /* bar 1 */ 1853 | ROW(0,0,0,0,0,0,0,0), 1854 | ROW(0,0,0,0,0,0,0,0), 1855 | ROW(0,0,0,0,0,0,0,0), 1856 | ROW(0,0,0,0,0,0,0,0), 1857 | ROW(0,0,0,0,0,0,0,0), 1858 | ROW(0,0,0,0,0,0,0,0), 1859 | ROW(0,0,0,0,0,0,0,0), 1860 | ROW(0,0,1,1,1,1,0,0), 1861 | ROW(0,0,1,0,0,1,0,0), 1862 | ROW(1,1,1,1,1,1,1,1), 1863 | }, 1864 | 1865 | { /* bar 2 */ 1866 | ROW(0,0,0,0,0,0,0,0), 1867 | ROW(0,0,0,0,0,0,0,0), 1868 | ROW(0,0,0,0,0,0,0,0), 1869 | ROW(0,0,0,0,0,0,0,0), 1870 | ROW(0,0,0,0,0,0,0,0), 1871 | ROW(0,0,1,1,1,1,0,0), 1872 | ROW(0,0,1,0,0,1,0,0), 1873 | ROW(0,0,1,0,0,1,0,0), 1874 | ROW(0,0,1,0,0,1,0,0), 1875 | ROW(1,1,1,1,1,1,1,1), 1876 | }, 1877 | 1878 | { /* bar 3 */ 1879 | ROW(0,0,0,0,0,0,0,0), 1880 | ROW(0,0,0,0,0,0,0,0), 1881 | ROW(0,0,0,0,0,0,0,0), 1882 | ROW(0,0,1,1,1,1,0,0), 1883 | ROW(0,0,1,0,0,1,0,0), 1884 | ROW(0,0,1,0,0,1,0,0), 1885 | ROW(0,0,1,0,0,1,0,0), 1886 | ROW(0,0,1,0,0,1,0,0), 1887 | ROW(0,0,1,0,0,1,0,0), 1888 | ROW(1,1,1,1,1,1,1,1), 1889 | }, 1890 | 1891 | { /* bar 4 */ 1892 | ROW(0,0,0,0,0,0,0,0), 1893 | ROW(0,0,1,1,1,1,0,0), 1894 | ROW(0,0,1,0,0,1,0,0), 1895 | ROW(0,0,1,0,0,1,0,0), 1896 | ROW(0,0,1,0,0,1,0,0), 1897 | ROW(0,0,1,0,0,1,0,0), 1898 | ROW(0,0,1,0,0,1,0,0), 1899 | ROW(0,0,1,0,0,1,0,0), 1900 | ROW(0,0,1,0,0,1,0,0), 1901 | ROW(1,1,1,1,1,1,1,1), 1902 | }, 1903 | 1904 | { /* bar 5 or more */ 1905 | ROW(0,0,1,0,0,1,0,0), 1906 | ROW(0,0,1,0,0,1,0,0), 1907 | ROW(0,0,1,0,0,1,0,0), 1908 | ROW(0,0,1,0,0,1,0,0), 1909 | ROW(0,0,1,0,0,1,0,0), 1910 | ROW(0,0,1,0,0,1,0,0), 1911 | ROW(0,0,1,0,0,1,0,0), 1912 | ROW(0,0,1,0,0,1,0,0), 1913 | ROW(0,0,1,0,0,1,0,0), 1914 | ROW(1,1,1,1,1,1,1,1), 1915 | }, 1916 | 1917 | { /* bar cap 0 */ 1918 | ROW(0,0,0,0,0,0,0,0), 1919 | ROW(0,0,0,0,0,0,0,0), 1920 | ROW(0,0,0,0,0,0,0,0), 1921 | ROW(0,0,0,0,0,0,0,0), 1922 | ROW(0,0,0,0,0,0,0,0), 1923 | ROW(0,0,0,0,0,0,0,0), 1924 | ROW(0,0,0,0,0,0,0,0), 1925 | ROW(0,0,0,0,0,0,0,0), 1926 | ROW(0,0,0,0,0,0,0,0), 1927 | ROW(0,0,1,1,1,1,0,0), 1928 | }, 1929 | 1930 | { /* bar cap 1 */ 1931 | ROW(0,0,0,0,0,0,0,0), 1932 | ROW(0,0,0,0,0,0,0,0), 1933 | ROW(0,0,0,0,0,0,0,0), 1934 | ROW(0,0,0,0,0,0,0,0), 1935 | ROW(0,0,0,0,0,0,0,0), 1936 | ROW(0,0,0,0,0,0,0,0), 1937 | ROW(0,0,0,0,0,0,0,0), 1938 | ROW(0,0,1,1,1,1,0,0), 1939 | ROW(0,0,1,0,0,1,0,0), 1940 | ROW(0,0,1,0,0,1,0,0), 1941 | }, 1942 | 1943 | { /* bar cap 2 */ 1944 | ROW(0,0,0,0,0,0,0,0), 1945 | ROW(0,0,0,0,0,0,0,0), 1946 | ROW(0,0,0,0,0,0,0,0), 1947 | ROW(0,0,0,0,0,0,0,0), 1948 | ROW(0,0,0,0,0,0,0,0), 1949 | ROW(0,0,1,1,1,1,0,0), 1950 | ROW(0,0,1,0,0,1,0,0), 1951 | ROW(0,0,1,0,0,1,0,0), 1952 | ROW(0,0,1,0,0,1,0,0), 1953 | ROW(0,0,1,0,0,1,0,0), 1954 | }, 1955 | 1956 | { /* bar cap 3 */ 1957 | ROW(0,0,0,0,0,0,0,0), 1958 | ROW(0,0,0,0,0,0,0,0), 1959 | ROW(0,0,0,0,0,0,0,0), 1960 | ROW(0,0,1,1,1,1,0,0), 1961 | ROW(0,0,1,0,0,1,0,0), 1962 | ROW(0,0,1,0,0,1,0,0), 1963 | ROW(0,0,1,0,0,1,0,0), 1964 | ROW(0,0,1,0,0,1,0,0), 1965 | ROW(0,0,1,0,0,1,0,0), 1966 | ROW(0,0,1,0,0,1,0,0), 1967 | }, 1968 | 1969 | { /* bar cap 4 */ 1970 | ROW(0,0,0,0,0,0,0,0), 1971 | ROW(0,0,1,1,1,1,0,0), 1972 | ROW(0,0,1,0,0,1,0,0), 1973 | ROW(0,0,1,0,0,1,0,0), 1974 | ROW(0,0,1,0,0,1,0,0), 1975 | ROW(0,0,1,0,0,1,0,0), 1976 | ROW(0,0,1,0,0,1,0,0), 1977 | ROW(0,0,1,0,0,1,0,0), 1978 | ROW(0,0,1,0,0,1,0,0), 1979 | ROW(0,0,1,0,0,1,0,0), 1980 | }, 1981 | 1982 | { /* bar cap 5 or more */ 1983 | ROW(0,0,1,0,0,1,0,0), 1984 | ROW(0,0,1,0,0,1,0,0), 1985 | ROW(0,0,1,0,0,1,0,0), 1986 | ROW(0,0,1,0,0,1,0,0), 1987 | ROW(0,0,1,0,0,1,0,0), 1988 | ROW(0,0,1,0,0,1,0,0), 1989 | ROW(0,0,1,0,0,1,0,0), 1990 | ROW(0,0,1,0,0,1,0,0), 1991 | ROW(0,0,1,0,0,1,0,0), 1992 | ROW(0,0,1,0,0,1,0,0), 1993 | }, 1994 | 1995 | { /* bar line 1 */ 1996 | ROW(0,0,0,0,0,0,0,0), 1997 | ROW(0,0,0,0,0,0,0,0), 1998 | ROW(0,0,0,0,0,0,0,0), 1999 | ROW(0,0,0,0,0,0,0,0), 2000 | ROW(0,0,0,0,0,0,0,0), 2001 | ROW(0,0,0,0,0,0,0,0), 2002 | ROW(0,0,0,0,0,0,0,0), 2003 | ROW(0,0,0,0,0,0,0,0), 2004 | ROW(0,0,1,1,1,1,0,0), 2005 | ROW(0,0,0,0,0,0,0,0), 2006 | }, 2007 | 2008 | { /* bar line 2 */ 2009 | ROW(0,0,0,0,0,0,0,0), 2010 | ROW(0,0,0,0,0,0,0,0), 2011 | ROW(0,0,0,0,0,0,0,0), 2012 | ROW(0,0,0,0,0,0,0,0), 2013 | ROW(0,0,0,0,0,0,0,0), 2014 | ROW(0,0,0,0,0,0,0,0), 2015 | ROW(0,0,0,0,0,0,0,0), 2016 | ROW(0,0,1,1,1,1,0,0), 2017 | ROW(0,0,0,0,0,0,0,0), 2018 | ROW(0,0,0,0,0,0,0,0), 2019 | }, 2020 | 2021 | { /* bar line 3 */ 2022 | ROW(0,0,0,0,0,0,0,0), 2023 | ROW(0,0,0,0,0,0,0,0), 2024 | ROW(0,0,0,0,0,0,0,0), 2025 | ROW(0,0,0,0,0,0,0,0), 2026 | ROW(0,0,0,0,0,0,0,0), 2027 | ROW(0,0,0,0,0,0,0,0), 2028 | ROW(0,0,1,1,1,1,0,0), 2029 | ROW(0,0,0,0,0,0,0,0), 2030 | ROW(0,0,0,0,0,0,0,0), 2031 | ROW(0,0,0,0,0,0,0,0), 2032 | }, 2033 | 2034 | { /* bar line 4 */ 2035 | ROW(0,0,0,0,0,0,0,0), 2036 | ROW(0,0,0,0,0,0,0,0), 2037 | ROW(0,0,0,0,0,0,0,0), 2038 | ROW(0,0,0,0,0,0,0,0), 2039 | ROW(0,0,0,0,0,0,0,0), 2040 | ROW(0,0,1,1,1,1,0,0), 2041 | ROW(0,0,0,0,0,0,0,0), 2042 | ROW(0,0,0,0,0,0,0,0), 2043 | ROW(0,0,0,0,0,0,0,0), 2044 | ROW(0,0,0,0,0,0,0,0), 2045 | }, 2046 | 2047 | { /* bar line 5 */ 2048 | ROW(0,0,0,0,0,0,0,0), 2049 | ROW(0,0,0,0,0,0,0,0), 2050 | ROW(0,0,0,0,0,0,0,0), 2051 | ROW(0,0,0,0,0,0,0,0), 2052 | ROW(0,0,1,1,1,1,0,0), 2053 | ROW(0,0,0,0,0,0,0,0), 2054 | ROW(0,0,0,0,0,0,0,0), 2055 | ROW(0,0,0,0,0,0,0,0), 2056 | ROW(0,0,0,0,0,0,0,0), 2057 | ROW(0,0,0,0,0,0,0,0), 2058 | }, 2059 | 2060 | { /* bar line 6 */ 2061 | ROW(0,0,0,0,0,0,0,0), 2062 | ROW(0,0,0,0,0,0,0,0), 2063 | ROW(0,0,0,0,0,0,0,0), 2064 | ROW(0,0,1,1,1,1,0,0), 2065 | ROW(0,0,0,0,0,0,0,0), 2066 | ROW(0,0,0,0,0,0,0,0), 2067 | ROW(0,0,0,0,0,0,0,0), 2068 | ROW(0,0,0,0,0,0,0,0), 2069 | ROW(0,0,0,0,0,0,0,0), 2070 | ROW(0,0,0,0,0,0,0,0), 2071 | }, 2072 | 2073 | { /* bar line 7 */ 2074 | ROW(0,0,0,0,0,0,0,0), 2075 | ROW(0,0,0,0,0,0,0,0), 2076 | ROW(0,0,1,1,1,1,0,0), 2077 | ROW(0,0,0,0,0,0,0,0), 2078 | ROW(0,0,0,0,0,0,0,0), 2079 | ROW(0,0,0,0,0,0,0,0), 2080 | ROW(0,0,0,0,0,0,0,0), 2081 | ROW(0,0,0,0,0,0,0,0), 2082 | ROW(0,0,0,0,0,0,0,0), 2083 | ROW(0,0,0,0,0,0,0,0), 2084 | }, 2085 | 2086 | { /* bar line 8 */ 2087 | ROW(0,0,0,0,0,0,0,0), 2088 | ROW(0,0,1,1,1,1,0,0), 2089 | ROW(0,0,0,0,0,0,0,0), 2090 | ROW(0,0,0,0,0,0,0,0), 2091 | ROW(0,0,0,0,0,0,0,0), 2092 | ROW(0,0,0,0,0,0,0,0), 2093 | ROW(0,0,0,0,0,0,0,0), 2094 | ROW(0,0,0,0,0,0,0,0), 2095 | ROW(0,0,0,0,0,0,0,0), 2096 | ROW(0,0,0,0,0,0,0,0), 2097 | }, 2098 | 2099 | { /* bar line 9 */ 2100 | ROW(0,0,1,1,1,1,0,0), 2101 | ROW(0,0,0,0,0,0,0,0), 2102 | ROW(0,0,0,0,0,0,0,0), 2103 | ROW(0,0,0,0,0,0,0,0), 2104 | ROW(0,0,0,0,0,0,0,0), 2105 | ROW(0,0,0,0,0,0,0,0), 2106 | ROW(0,0,0,0,0,0,0,0), 2107 | ROW(0,0,0,0,0,0,0,0), 2108 | ROW(0,0,0,0,0,0,0,0), 2109 | ROW(0,0,0,0,0,0,0,0), 2110 | }, 2111 | 2112 | /* alternate alpha set */ 2113 | 2114 | { /* space */ 2115 | ROW(0,0,0,0,0,0,0,0), 2116 | ROW(0,0,0,0,0,0,0,0), 2117 | ROW(0,0,0,0,0,0,0,0), 2118 | ROW(0,0,0,0,0,0,0,0), 2119 | ROW(0,0,0,0,0,0,0,0), 2120 | ROW(0,0,0,0,0,0,0,0), 2121 | ROW(0,0,0,0,0,0,0,0), 2122 | ROW(0,0,0,0,0,0,0,0), 2123 | ROW(0,0,0,0,0,0,0,0), 2124 | ROW(0,0,0,0,0,0,0,0), 2125 | }, 2126 | 2127 | { /* ! */ 2128 | ROW(0,0,0,0,0,0,0,0), 2129 | ROW(0,0,0,0,1,0,0,0), 2130 | ROW(0,0,0,0,1,0,0,0), 2131 | ROW(0,0,0,0,1,0,0,0), 2132 | ROW(0,0,0,0,1,0,0,0), 2133 | ROW(0,0,0,0,1,0,0,0), 2134 | ROW(0,0,0,0,0,0,0,0), 2135 | ROW(0,0,0,0,1,0,0,0), 2136 | ROW(0,0,0,0,0,0,0,0), 2137 | ROW(0,0,0,0,0,0,0,0), 2138 | }, 2139 | 2140 | { /* " */ 2141 | ROW(0,0,0,0,0,0,0,0), 2142 | ROW(0,0,0,0,0,0,0,0), 2143 | ROW(0,0,0,1,0,1,0,0), 2144 | ROW(0,0,0,1,0,1,0,0), 2145 | ROW(0,0,0,1,0,1,0,0), 2146 | ROW(0,0,0,0,0,0,0,0), 2147 | ROW(0,0,0,0,0,0,0,0), 2148 | ROW(0,0,0,0,0,0,0,0), 2149 | ROW(0,0,0,0,0,0,0,0), 2150 | ROW(0,0,0,0,0,0,0,0), 2151 | }, 2152 | 2153 | { /* pound */ 2154 | ROW(0,0,0,0,0,0,0,0), 2155 | ROW(0,0,0,0,1,1,0,0), 2156 | ROW(0,0,0,1,0,0,1,0), 2157 | ROW(0,0,0,1,0,0,0,0), 2158 | ROW(0,0,0,1,1,1,0,0), 2159 | ROW(0,0,0,1,0,0,0,0), 2160 | ROW(0,0,0,1,0,0,0,0), 2161 | ROW(0,0,1,0,1,1,1,0), 2162 | ROW(0,0,0,0,0,0,0,0), 2163 | ROW(0,0,0,0,0,0,0,0), 2164 | }, 2165 | 2166 | { /* $ */ 2167 | ROW(0,0,0,0,0,0,0,0), 2168 | ROW(0,0,0,0,1,0,0,0), 2169 | ROW(0,0,0,1,1,1,1,0), 2170 | ROW(0,0,1,0,1,0,0,0), 2171 | ROW(0,0,0,1,1,1,0,0), 2172 | ROW(0,0,0,0,1,0,1,0), 2173 | ROW(0,0,1,1,1,1,0,0), 2174 | ROW(0,0,0,0,1,0,0,0), 2175 | ROW(0,0,0,0,0,0,0,0), 2176 | ROW(0,0,0,0,0,0,0,0), 2177 | }, 2178 | 2179 | { /* % */ 2180 | ROW(0,0,0,0,0,0,0,0), 2181 | ROW(0,0,1,1,0,0,0,0), 2182 | ROW(0,0,1,1,0,0,1,0), 2183 | ROW(0,0,0,0,0,1,0,0), 2184 | ROW(0,0,0,0,1,0,0,0), 2185 | ROW(0,0,0,1,0,0,0,0), 2186 | ROW(0,0,1,0,0,1,1,0), 2187 | ROW(0,0,0,0,0,1,1,0), 2188 | ROW(0,0,0,0,0,0,0,0), 2189 | ROW(0,0,0,0,0,0,0,0), 2190 | }, 2191 | 2192 | { /* & */ 2193 | ROW(0,0,0,0,0,0,0,0), 2194 | ROW(0,0,0,0,1,0,0,0), 2195 | ROW(0,0,0,1,0,1,0,0), 2196 | ROW(0,0,0,1,0,1,0,0), 2197 | ROW(0,0,0,1,1,0,0,0), 2198 | ROW(0,0,1,0,1,0,1,0), 2199 | ROW(0,0,1,0,0,1,0,0), 2200 | ROW(0,0,0,1,1,0,1,0), 2201 | ROW(0,0,0,0,0,0,0,0), 2202 | ROW(0,0,0,0,0,0,0,0), 2203 | }, 2204 | 2205 | { /* ' */ 2206 | ROW(0,0,0,0,0,0,0,0), 2207 | ROW(0,0,0,0,1,0,0,0), 2208 | ROW(0,0,0,0,1,0,0,0), 2209 | ROW(0,0,0,1,0,0,0,0), 2210 | ROW(0,0,0,0,0,0,0,0), 2211 | ROW(0,0,0,0,0,0,0,0), 2212 | ROW(0,0,0,0,0,0,0,0), 2213 | ROW(0,0,0,0,0,0,0,0), 2214 | ROW(0,0,0,0,0,0,0,0), 2215 | ROW(0,0,0,0,0,0,0,0), 2216 | }, 2217 | 2218 | { /* ( */ 2219 | ROW(0,0,0,0,0,0,0,0), 2220 | ROW(0,0,0,0,0,1,0,0), 2221 | ROW(0,0,0,0,1,0,0,0), 2222 | ROW(0,0,0,1,0,0,0,0), 2223 | ROW(0,0,0,1,0,0,0,0), 2224 | ROW(0,0,0,1,0,0,0,0), 2225 | ROW(0,0,0,0,1,0,0,0), 2226 | ROW(0,0,0,0,0,1,0,0), 2227 | ROW(0,0,0,0,0,0,0,0), 2228 | ROW(0,0,0,0,0,0,0,0), 2229 | }, 2230 | 2231 | { /* ) */ 2232 | ROW(0,0,0,0,0,0,0,0), 2233 | ROW(0,0,0,1,0,0,0,0), 2234 | ROW(0,0,0,0,1,0,0,0), 2235 | ROW(0,0,0,0,0,1,0,0), 2236 | ROW(0,0,0,0,0,1,0,0), 2237 | ROW(0,0,0,0,0,1,0,0), 2238 | ROW(0,0,0,0,1,0,0,0), 2239 | ROW(0,0,0,1,0,0,0,0), 2240 | ROW(0,0,0,0,0,0,0,0), 2241 | ROW(0,0,0,0,0,0,0,0), 2242 | }, 2243 | 2244 | { /* * */ 2245 | ROW(0,0,0,0,0,0,0,0), 2246 | ROW(0,0,0,0,0,0,0,0), 2247 | ROW(0,0,0,0,1,0,0,0), 2248 | ROW(0,0,1,0,1,0,1,0), 2249 | ROW(0,0,0,1,1,1,0,0), 2250 | ROW(0,0,1,0,1,0,1,0), 2251 | ROW(0,0,0,0,1,0,0,0), 2252 | ROW(0,0,0,0,0,0,0,0), 2253 | ROW(0,0,0,0,0,0,0,0), 2254 | ROW(0,0,0,0,0,0,0,0), 2255 | }, 2256 | 2257 | { /* + */ 2258 | ROW(0,0,0,0,0,0,0,0), 2259 | ROW(0,0,0,0,0,0,0,0), 2260 | ROW(0,0,0,0,1,0,0,0), 2261 | ROW(0,0,0,0,1,0,0,0), 2262 | ROW(0,0,1,1,1,1,1,0), 2263 | ROW(0,0,0,0,1,0,0,0), 2264 | ROW(0,0,0,0,1,0,0,0), 2265 | ROW(0,0,0,0,0,0,0,0), 2266 | ROW(0,0,0,0,0,0,0,0), 2267 | ROW(0,0,0,0,0,0,0,0), 2268 | }, 2269 | 2270 | { /* , */ 2271 | ROW(0,0,0,0,0,0,0,0), 2272 | ROW(0,0,0,0,0,0,0,0), 2273 | ROW(0,0,0,0,0,0,0,0), 2274 | ROW(0,0,0,0,0,0,0,0), 2275 | ROW(0,0,0,0,0,0,0,0), 2276 | ROW(0,0,0,0,0,0,0,0), 2277 | ROW(0,0,0,0,1,0,0,0), 2278 | ROW(0,0,0,0,1,0,0,0), 2279 | ROW(0,0,0,1,0,0,0,0), 2280 | ROW(0,0,0,0,0,0,0,0), 2281 | }, 2282 | 2283 | { /* - */ 2284 | ROW(0,0,0,0,0,0,0,0), 2285 | ROW(0,0,0,0,0,0,0,0), 2286 | ROW(0,0,0,0,0,0,0,0), 2287 | ROW(0,0,0,0,0,0,0,0), 2288 | ROW(0,0,0,1,1,1,0,0), 2289 | ROW(0,0,0,0,0,0,0,0), 2290 | ROW(0,0,0,0,0,0,0,0), 2291 | ROW(0,0,0,0,0,0,0,0), 2292 | ROW(0,0,0,0,0,0,0,0), 2293 | ROW(0,0,0,0,0,0,0,0), 2294 | }, 2295 | 2296 | { /* . */ 2297 | ROW(0,0,0,0,0,0,0,0), 2298 | ROW(0,0,0,0,0,0,0,0), 2299 | ROW(0,0,0,0,0,0,0,0), 2300 | ROW(0,0,0,0,0,0,0,0), 2301 | ROW(0,0,0,0,0,0,0,0), 2302 | ROW(0,0,0,0,0,0,0,0), 2303 | ROW(0,0,0,0,0,0,0,0), 2304 | ROW(0,0,0,0,1,0,0,0), 2305 | ROW(0,0,0,0,0,0,0,0), 2306 | ROW(0,0,0,0,0,0,0,0), 2307 | }, 2308 | 2309 | { /* / */ 2310 | ROW(0,0,0,0,0,0,0,0), 2311 | ROW(0,0,0,0,0,0,0,0), 2312 | ROW(0,0,0,0,0,0,1,0), 2313 | ROW(0,0,0,0,0,1,0,0), 2314 | ROW(0,0,0,0,1,0,0,0), 2315 | ROW(0,0,0,1,0,0,0,0), 2316 | ROW(0,0,1,0,0,0,0,0), 2317 | ROW(0,0,0,0,0,0,0,0), 2318 | ROW(0,0,0,0,0,0,0,0), 2319 | ROW(0,0,0,0,0,0,0,0), 2320 | }, 2321 | 2322 | { /* 0 */ 2323 | ROW(0,0,0,0,0,0,0,0), 2324 | ROW(0,0,0,1,1,1,0,0), 2325 | ROW(0,0,1,0,0,0,1,0), 2326 | ROW(0,0,1,1,0,0,1,0), 2327 | ROW(0,0,1,0,1,0,1,0), 2328 | ROW(0,0,1,0,0,1,1,0), 2329 | ROW(0,0,1,0,0,0,1,0), 2330 | ROW(0,0,0,1,1,1,0,0), 2331 | ROW(0,0,0,0,0,0,0,0), 2332 | ROW(0,0,0,0,0,0,0,0), 2333 | }, 2334 | 2335 | { /* 1 */ 2336 | ROW(0,0,0,0,0,0,0,0), 2337 | ROW(0,0,0,0,1,0,0,0), 2338 | ROW(0,0,0,1,1,0,0,0), 2339 | ROW(0,0,0,0,1,0,0,0), 2340 | ROW(0,0,0,0,1,0,0,0), 2341 | ROW(0,0,0,0,1,0,0,0), 2342 | ROW(0,0,0,0,1,0,0,0), 2343 | ROW(0,0,0,1,1,1,0,0), 2344 | ROW(0,0,0,0,0,0,0,0), 2345 | ROW(0,0,0,0,0,0,0,0), 2346 | }, 2347 | 2348 | { /* 2 */ 2349 | ROW(0,0,0,0,0,0,0,0), 2350 | ROW(0,0,0,1,1,1,0,0), 2351 | ROW(0,0,1,0,0,0,1,0), 2352 | ROW(0,0,0,0,0,0,1,0), 2353 | ROW(0,0,0,0,1,1,0,0), 2354 | ROW(0,0,0,1,0,0,0,0), 2355 | ROW(0,0,1,0,0,0,0,0), 2356 | ROW(0,0,1,1,1,1,1,0), 2357 | ROW(0,0,0,0,0,0,0,0), 2358 | ROW(0,0,0,0,0,0,0,0), 2359 | }, 2360 | 2361 | { /* 3 */ 2362 | ROW(0,0,0,0,0,0,0,0), 2363 | ROW(0,0,1,1,1,1,1,0), 2364 | ROW(0,0,0,0,0,0,1,0), 2365 | ROW(0,0,0,0,0,1,0,0), 2366 | ROW(0,0,0,0,1,1,0,0), 2367 | ROW(0,0,0,0,0,0,1,0), 2368 | ROW(0,0,1,0,0,0,1,0), 2369 | ROW(0,0,0,1,1,1,0,0), 2370 | ROW(0,0,0,0,0,0,0,0), 2371 | ROW(0,0,0,0,0,0,0,0), 2372 | }, 2373 | 2374 | { /* 4 */ 2375 | ROW(0,0,0,0,0,0,0,0), 2376 | ROW(0,0,0,0,0,1,0,0), 2377 | ROW(0,0,0,0,1,1,0,0), 2378 | ROW(0,0,0,1,0,1,0,0), 2379 | ROW(0,0,1,0,0,1,0,0), 2380 | ROW(0,0,1,1,1,1,1,0), 2381 | ROW(0,0,0,0,0,1,0,0), 2382 | ROW(0,0,0,0,0,1,0,0), 2383 | ROW(0,0,0,0,0,0,0,0), 2384 | ROW(0,0,0,0,0,0,0,0), 2385 | }, 2386 | 2387 | { /* 5 */ 2388 | ROW(0,0,0,0,0,0,0,0), 2389 | ROW(0,0,1,1,1,1,1,0), 2390 | ROW(0,0,1,0,0,0,0,0), 2391 | ROW(0,0,1,1,1,1,0,0), 2392 | ROW(0,0,0,0,0,0,1,0), 2393 | ROW(0,0,0,0,0,0,1,0), 2394 | ROW(0,0,1,0,0,0,1,0), 2395 | ROW(0,0,0,1,1,1,0,0), 2396 | ROW(0,0,0,0,0,0,0,0), 2397 | ROW(0,0,0,0,0,0,0,0), 2398 | }, 2399 | 2400 | { /* 6 */ 2401 | ROW(0,0,0,0,0,0,0,0), 2402 | ROW(0,0,0,0,1,1,1,0), 2403 | ROW(0,0,0,1,0,0,0,0), 2404 | ROW(0,0,1,0,0,0,0,0), 2405 | ROW(0,0,1,1,1,1,0,0), 2406 | ROW(0,0,1,0,0,0,1,0), 2407 | ROW(0,0,1,0,0,0,1,0), 2408 | ROW(0,0,0,1,1,1,0,0), 2409 | ROW(0,0,0,0,0,0,0,0), 2410 | ROW(0,0,0,0,0,0,0,0), 2411 | }, 2412 | 2413 | { /* 7 */ 2414 | ROW(0,0,0,0,0,0,0,0), 2415 | ROW(0,0,1,1,1,1,1,0), 2416 | ROW(0,0,0,0,0,0,1,0), 2417 | ROW(0,0,0,0,0,1,0,0), 2418 | ROW(0,0,0,0,1,0,0,0), 2419 | ROW(0,0,0,1,0,0,0,0), 2420 | ROW(0,0,0,1,0,0,0,0), 2421 | ROW(0,0,0,1,0,0,0,0), 2422 | ROW(0,0,0,0,0,0,0,0), 2423 | ROW(0,0,0,0,0,0,0,0), 2424 | }, 2425 | 2426 | { /* 8 */ 2427 | ROW(0,0,0,0,0,0,0,0), 2428 | ROW(0,0,0,1,1,1,0,0), 2429 | ROW(0,0,1,0,0,0,1,0), 2430 | ROW(0,0,1,0,0,0,1,0), 2431 | ROW(0,0,0,1,1,1,0,0), 2432 | ROW(0,0,1,0,0,0,1,0), 2433 | ROW(0,0,1,0,0,0,1,0), 2434 | ROW(0,0,0,1,1,1,0,0), 2435 | ROW(0,0,0,0,0,0,0,0), 2436 | ROW(0,0,0,0,0,0,0,0), 2437 | }, 2438 | 2439 | { /* 9 */ 2440 | ROW(0,0,0,0,0,0,0,0), 2441 | ROW(0,0,0,1,1,1,1,0), 2442 | ROW(0,0,1,0,0,0,1,0), 2443 | ROW(0,0,1,0,0,0,1,0), 2444 | ROW(0,0,0,1,1,1,1,0), 2445 | ROW(0,0,0,0,0,0,1,0), 2446 | ROW(0,0,0,0,0,1,0,0), 2447 | ROW(0,0,1,1,1,0,0,0), 2448 | ROW(0,0,0,0,0,0,0,0), 2449 | ROW(0,0,0,0,0,0,0,0), 2450 | }, 2451 | 2452 | { /* : */ 2453 | ROW(0,0,0,0,0,0,0,0), 2454 | ROW(0,0,0,0,0,0,0,0), 2455 | ROW(0,0,0,0,0,0,0,0), 2456 | ROW(0,0,0,0,0,0,0,0), 2457 | ROW(0,0,0,0,0,0,0,0), 2458 | ROW(0,0,0,1,0,0,0,0), 2459 | ROW(0,0,0,0,0,0,0,0), 2460 | ROW(0,0,0,1,0,0,0,0), 2461 | ROW(0,0,0,0,0,0,0,0), 2462 | ROW(0,0,0,0,0,0,0,0), 2463 | }, 2464 | 2465 | { /* ; */ 2466 | ROW(0,0,0,0,0,0,0,0), 2467 | ROW(0,0,0,0,0,0,0,0), 2468 | ROW(0,0,0,0,0,0,0,0), 2469 | ROW(0,0,0,0,0,0,0,0), 2470 | ROW(0,0,0,0,1,0,0,0), 2471 | ROW(0,0,0,0,0,0,0,0), 2472 | ROW(0,0,0,0,1,0,0,0), 2473 | ROW(0,0,0,0,1,0,0,0), 2474 | ROW(0,0,0,1,0,0,0,0), 2475 | ROW(0,0,0,0,0,0,0,0), 2476 | }, 2477 | 2478 | { /* < */ 2479 | ROW(0,0,0,0,0,0,0,0), 2480 | ROW(0,0,0,0,0,1,0,0), 2481 | ROW(0,0,0,0,1,0,0,0), 2482 | ROW(0,0,0,1,0,0,0,0), 2483 | ROW(0,0,1,0,0,0,0,0), 2484 | ROW(0,0,0,1,0,0,0,0), 2485 | ROW(0,0,0,0,1,0,0,0), 2486 | ROW(0,0,0,0,0,1,0,0), 2487 | ROW(0,0,0,0,0,0,0,0), 2488 | ROW(0,0,0,0,0,0,0,0), 2489 | }, 2490 | 2491 | { /* = */ 2492 | ROW(0,0,0,0,0,0,0,0), 2493 | ROW(0,0,0,0,0,0,0,0), 2494 | ROW(0,0,0,0,0,0,0,0), 2495 | ROW(0,0,1,1,1,1,0,0), 2496 | ROW(0,0,0,0,0,0,0,0), 2497 | ROW(0,0,1,1,1,1,0,0), 2498 | ROW(0,0,0,0,0,0,0,0), 2499 | ROW(0,0,0,0,0,0,0,0), 2500 | ROW(0,0,0,0,0,0,0,0), 2501 | ROW(0,0,0,0,0,0,0,0), 2502 | }, 2503 | 2504 | { /* > */ 2505 | ROW(0,0,0,0,0,0,0,0), 2506 | ROW(0,0,1,0,0,0,0,0), 2507 | ROW(0,0,0,1,0,0,0,0), 2508 | ROW(0,0,0,0,1,0,0,0), 2509 | ROW(0,0,0,0,0,1,0,0), 2510 | ROW(0,0,0,0,1,0,0,0), 2511 | ROW(0,0,0,1,0,0,0,0), 2512 | ROW(0,0,1,0,0,0,0,0), 2513 | ROW(0,0,0,0,0,0,0,0), 2514 | ROW(0,0,0,0,0,0,0,0), 2515 | }, 2516 | 2517 | { /* ? */ 2518 | ROW(0,0,0,0,0,0,0,0), 2519 | ROW(0,0,0,1,1,1,0,0), 2520 | ROW(0,0,1,0,0,0,1,0), 2521 | ROW(0,0,0,0,0,0,1,0), 2522 | ROW(0,0,0,0,0,1,0,0), 2523 | ROW(0,0,0,0,1,0,0,0), 2524 | ROW(0,0,0,0,0,0,0,0), 2525 | ROW(0,0,0,0,1,0,0,0), 2526 | ROW(0,0,0,0,0,0,0,0), 2527 | ROW(0,0,0,0,0,0,0,0), 2528 | }, 2529 | 2530 | { /* @ */ 2531 | ROW(0,0,0,0,0,0,0,0), 2532 | ROW(0,0,0,1,1,1,0,0), 2533 | ROW(0,0,1,0,0,0,1,0), 2534 | ROW(0,0,1,0,1,1,1,0), 2535 | ROW(0,0,1,0,1,0,1,0), 2536 | ROW(0,0,1,0,1,1,1,0), 2537 | ROW(0,0,1,0,0,0,0,0), 2538 | ROW(0,0,0,1,1,1,0,0), 2539 | ROW(0,0,0,0,0,0,0,0), 2540 | ROW(0,0,0,0,0,0,0,0), 2541 | }, 2542 | 2543 | { /* A */ 2544 | ROW(0,0,0,0,0,0,0,0), 2545 | ROW(0,0,0,0,1,0,0,0), 2546 | ROW(0,0,0,1,0,1,0,0), 2547 | ROW(0,0,1,0,0,0,1,0), 2548 | ROW(0,0,1,0,0,0,1,0), 2549 | ROW(0,0,1,1,1,1,1,0), 2550 | ROW(0,0,1,0,0,0,1,0), 2551 | ROW(0,0,1,0,0,0,1,0), 2552 | ROW(0,0,0,0,0,0,0,0), 2553 | ROW(0,0,0,0,0,0,0,0), 2554 | }, 2555 | 2556 | { /* B */ 2557 | ROW(0,0,0,0,0,0,0,0), 2558 | ROW(0,0,1,1,1,1,0,0), 2559 | ROW(0,0,1,0,0,0,1,0), 2560 | ROW(0,0,1,0,0,0,1,0), 2561 | ROW(0,0,1,1,1,1,0,0), 2562 | ROW(0,0,1,0,0,0,1,0), 2563 | ROW(0,0,1,0,0,0,1,0), 2564 | ROW(0,0,1,1,1,1,0,0), 2565 | ROW(0,0,0,0,0,0,0,0), 2566 | ROW(0,0,0,0,0,0,0,0), 2567 | }, 2568 | 2569 | { /* C */ 2570 | ROW(0,0,0,0,0,0,0,0), 2571 | ROW(0,0,0,1,1,1,0,0), 2572 | ROW(0,0,1,0,0,0,1,0), 2573 | ROW(0,0,1,0,0,0,0,0), 2574 | ROW(0,0,1,0,0,0,0,0), 2575 | ROW(0,0,1,0,0,0,0,0), 2576 | ROW(0,0,1,0,0,0,1,0), 2577 | ROW(0,0,0,1,1,1,0,0), 2578 | ROW(0,0,0,0,0,0,0,0), 2579 | ROW(0,0,0,0,0,0,0,0), 2580 | }, 2581 | 2582 | { /* D */ 2583 | ROW(0,0,0,0,0,0,0,0), 2584 | ROW(0,0,1,1,1,1,0,0), 2585 | ROW(0,0,0,1,0,0,1,0), 2586 | ROW(0,0,0,1,0,0,1,0), 2587 | ROW(0,0,0,1,0,0,1,0), 2588 | ROW(0,0,0,1,0,0,1,0), 2589 | ROW(0,0,0,1,0,0,1,0), 2590 | ROW(0,0,1,1,1,1,0,0), 2591 | ROW(0,0,0,0,0,0,0,0), 2592 | ROW(0,0,0,0,0,0,0,0), 2593 | }, 2594 | 2595 | { /* E */ 2596 | ROW(0,0,0,0,0,0,0,0), 2597 | ROW(0,0,1,1,1,1,1,0), 2598 | ROW(0,0,1,0,0,0,0,0), 2599 | ROW(0,0,1,0,0,0,0,0), 2600 | ROW(0,0,1,1,1,1,0,0), 2601 | ROW(0,0,1,0,0,0,0,0), 2602 | ROW(0,0,1,0,0,0,0,0), 2603 | ROW(0,0,1,1,1,1,1,0), 2604 | ROW(0,0,0,0,0,0,0,0), 2605 | ROW(0,0,0,0,0,0,0,0), 2606 | }, 2607 | 2608 | { /* F */ 2609 | ROW(0,0,0,0,0,0,0,0), 2610 | ROW(0,0,1,1,1,1,1,0), 2611 | ROW(0,0,1,0,0,0,0,0), 2612 | ROW(0,0,1,0,0,0,0,0), 2613 | ROW(0,0,1,1,1,1,0,0), 2614 | ROW(0,0,1,0,0,0,0,0), 2615 | ROW(0,0,1,0,0,0,0,0), 2616 | ROW(0,0,1,0,0,0,0,0), 2617 | ROW(0,0,0,0,0,0,0,0), 2618 | ROW(0,0,0,0,0,0,0,0), 2619 | }, 2620 | 2621 | { /* G */ 2622 | ROW(0,0,0,0,0,0,0,0), 2623 | ROW(0,0,0,1,1,1,0,0), 2624 | ROW(0,0,1,0,0,0,1,0), 2625 | ROW(0,0,1,0,0,0,0,0), 2626 | ROW(0,0,1,0,0,0,0,0), 2627 | ROW(0,0,1,0,0,1,1,0), 2628 | ROW(0,0,1,0,0,0,1,0), 2629 | ROW(0,0,0,1,1,1,1,0), 2630 | ROW(0,0,0,0,0,0,0,0), 2631 | ROW(0,0,0,0,0,0,0,0), 2632 | }, 2633 | 2634 | { /* H */ 2635 | ROW(0,0,0,0,0,0,0,0), 2636 | ROW(0,0,1,0,0,0,1,0), 2637 | ROW(0,0,1,0,0,0,1,0), 2638 | ROW(0,0,1,0,0,0,1,0), 2639 | ROW(0,0,1,1,1,1,1,0), 2640 | ROW(0,0,1,0,0,0,1,0), 2641 | ROW(0,0,1,0,0,0,1,0), 2642 | ROW(0,0,1,0,0,0,1,0), 2643 | ROW(0,0,0,0,0,0,0,0), 2644 | ROW(0,0,0,0,0,0,0,0), 2645 | }, 2646 | 2647 | { /* I */ 2648 | ROW(0,0,0,0,0,0,0,0), 2649 | ROW(0,0,0,1,1,1,0,0), 2650 | ROW(0,0,0,0,1,0,0,0), 2651 | ROW(0,0,0,0,1,0,0,0), 2652 | ROW(0,0,0,0,1,0,0,0), 2653 | ROW(0,0,0,0,1,0,0,0), 2654 | ROW(0,0,0,0,1,0,0,0), 2655 | ROW(0,0,0,1,1,1,0,0), 2656 | ROW(0,0,0,0,0,0,0,0), 2657 | ROW(0,0,0,0,0,0,0,0), 2658 | }, 2659 | 2660 | { /* J */ 2661 | ROW(0,0,0,0,0,0,0,0), 2662 | ROW(0,0,0,0,0,0,1,0), 2663 | ROW(0,0,0,0,0,0,1,0), 2664 | ROW(0,0,0,0,0,0,1,0), 2665 | ROW(0,0,0,0,0,0,1,0), 2666 | ROW(0,0,1,0,0,0,1,0), 2667 | ROW(0,0,1,0,0,0,1,0), 2668 | ROW(0,0,0,1,1,1,0,0), 2669 | ROW(0,0,0,0,0,0,0,0), 2670 | ROW(0,0,0,0,0,0,0,0), 2671 | }, 2672 | 2673 | { /* K */ 2674 | ROW(0,0,0,0,0,0,0,0), 2675 | ROW(0,0,1,0,0,0,1,0), 2676 | ROW(0,0,1,0,0,1,0,0), 2677 | ROW(0,0,1,0,1,0,0,0), 2678 | ROW(0,0,1,1,0,0,0,0), 2679 | ROW(0,0,1,0,1,0,0,0), 2680 | ROW(0,0,1,0,0,1,0,0), 2681 | ROW(0,0,1,0,0,0,1,0), 2682 | ROW(0,0,0,0,0,0,0,0), 2683 | ROW(0,0,0,0,0,0,0,0), 2684 | }, 2685 | 2686 | { /* L */ 2687 | ROW(0,0,0,0,0,0,0,0), 2688 | ROW(0,0,1,0,0,0,0,0), 2689 | ROW(0,0,1,0,0,0,0,0), 2690 | ROW(0,0,1,0,0,0,0,0), 2691 | ROW(0,0,1,0,0,0,0,0), 2692 | ROW(0,0,1,0,0,0,0,0), 2693 | ROW(0,0,1,0,0,0,0,0), 2694 | ROW(0,0,1,1,1,1,1,0), 2695 | ROW(0,0,0,0,0,0,0,0), 2696 | ROW(0,0,0,0,0,0,0,0), 2697 | }, 2698 | 2699 | { /* M */ 2700 | ROW(0,0,0,0,0,0,0,0), 2701 | ROW(0,0,1,0,0,0,1,0), 2702 | ROW(0,0,1,1,0,1,1,0), 2703 | ROW(0,0,1,0,1,0,1,0), 2704 | ROW(0,0,1,0,1,0,1,0), 2705 | ROW(0,0,1,0,0,0,1,0), 2706 | ROW(0,0,1,0,0,0,1,0), 2707 | ROW(0,0,1,0,0,0,1,0), 2708 | ROW(0,0,0,0,0,0,0,0), 2709 | ROW(0,0,0,0,0,0,0,0), 2710 | }, 2711 | 2712 | { /* N */ 2713 | ROW(0,0,0,0,0,0,0,0), 2714 | ROW(0,0,1,0,0,0,1,0), 2715 | ROW(0,0,1,0,0,0,1,0), 2716 | ROW(0,0,1,1,0,0,1,0), 2717 | ROW(0,0,1,0,1,0,1,0), 2718 | ROW(0,0,1,0,0,1,1,0), 2719 | ROW(0,0,1,0,0,0,1,0), 2720 | ROW(0,0,1,0,0,0,1,0), 2721 | ROW(0,0,0,0,0,0,0,0), 2722 | ROW(0,0,0,0,0,0,0,0), 2723 | }, 2724 | 2725 | { /* O */ 2726 | ROW(0,0,0,0,0,0,0,0), 2727 | ROW(0,0,0,1,1,1,0,0), 2728 | ROW(0,0,1,0,0,0,1,0), 2729 | ROW(0,0,1,0,0,0,1,0), 2730 | ROW(0,0,1,0,0,0,1,0), 2731 | ROW(0,0,1,0,0,0,1,0), 2732 | ROW(0,0,1,0,0,0,1,0), 2733 | ROW(0,0,0,1,1,1,0,0), 2734 | ROW(0,0,0,0,0,0,0,0), 2735 | ROW(0,0,0,0,0,0,0,0), 2736 | }, 2737 | 2738 | { /* P */ 2739 | ROW(0,0,0,0,0,0,0,0), 2740 | ROW(0,0,1,1,1,1,0,0), 2741 | ROW(0,0,1,0,0,0,1,0), 2742 | ROW(0,0,1,0,0,0,1,0), 2743 | ROW(0,0,1,1,1,1,0,0), 2744 | ROW(0,0,1,0,0,0,0,0), 2745 | ROW(0,0,1,0,0,0,0,0), 2746 | ROW(0,0,1,0,0,0,0,0), 2747 | ROW(0,0,0,0,0,0,0,0), 2748 | ROW(0,0,0,0,0,0,0,0), 2749 | }, 2750 | 2751 | { /* Q */ 2752 | ROW(0,0,0,0,0,0,0,0), 2753 | ROW(0,0,0,1,1,1,0,0), 2754 | ROW(0,0,1,0,0,0,1,0), 2755 | ROW(0,0,1,0,0,0,1,0), 2756 | ROW(0,0,1,0,0,0,1,0), 2757 | ROW(0,0,1,0,1,0,1,0), 2758 | ROW(0,0,1,0,0,1,0,0), 2759 | ROW(0,0,0,1,1,0,1,0), 2760 | ROW(0,0,0,0,0,0,0,0), 2761 | ROW(0,0,0,0,0,0,0,0), 2762 | }, 2763 | 2764 | { /* R */ 2765 | ROW(0,0,0,0,0,0,0,0), 2766 | ROW(0,0,1,1,1,1,0,0), 2767 | ROW(0,0,1,0,0,0,1,0), 2768 | ROW(0,0,1,0,0,0,1,0), 2769 | ROW(0,0,1,1,1,1,0,0), 2770 | ROW(0,0,1,0,1,0,0,0), 2771 | ROW(0,0,1,0,0,1,0,0), 2772 | ROW(0,0,1,0,0,0,1,0), 2773 | ROW(0,0,0,0,0,0,0,0), 2774 | ROW(0,0,0,0,0,0,0,0), 2775 | }, 2776 | 2777 | { /* S */ 2778 | ROW(0,0,0,0,0,0,0,0), 2779 | ROW(0,0,0,1,1,1,0,0), 2780 | ROW(0,0,1,0,0,0,1,0), 2781 | ROW(0,0,1,0,0,0,0,0), 2782 | ROW(0,0,0,1,1,1,0,0), 2783 | ROW(0,0,0,0,0,0,1,0), 2784 | ROW(0,0,1,0,0,0,1,0), 2785 | ROW(0,0,0,1,1,1,0,0), 2786 | ROW(0,0,0,0,0,0,0,0), 2787 | ROW(0,0,0,0,0,0,0,0), 2788 | }, 2789 | 2790 | { /* T */ 2791 | ROW(0,0,0,0,0,0,0,0), 2792 | ROW(0,0,1,1,1,1,1,0), 2793 | ROW(0,0,0,0,1,0,0,0), 2794 | ROW(0,0,0,0,1,0,0,0), 2795 | ROW(0,0,0,0,1,0,0,0), 2796 | ROW(0,0,0,0,1,0,0,0), 2797 | ROW(0,0,0,0,1,0,0,0), 2798 | ROW(0,0,0,0,1,0,0,0), 2799 | ROW(0,0,0,0,0,0,0,0), 2800 | ROW(0,0,0,0,0,0,0,0), 2801 | }, 2802 | 2803 | { /* U */ 2804 | ROW(0,0,0,0,0,0,0,0), 2805 | ROW(0,0,1,0,0,0,1,0), 2806 | ROW(0,0,1,0,0,0,1,0), 2807 | ROW(0,0,1,0,0,0,1,0), 2808 | ROW(0,0,1,0,0,0,1,0), 2809 | ROW(0,0,1,0,0,0,1,0), 2810 | ROW(0,0,1,0,0,0,1,0), 2811 | ROW(0,0,0,1,1,1,0,0), 2812 | ROW(0,0,0,0,0,0,0,0), 2813 | ROW(0,0,0,0,0,0,0,0), 2814 | }, 2815 | 2816 | { /* V */ 2817 | ROW(0,0,0,0,0,0,0,0), 2818 | ROW(0,0,1,0,0,0,1,0), 2819 | ROW(0,0,1,0,0,0,1,0), 2820 | ROW(0,0,1,0,0,0,1,0), 2821 | ROW(0,0,0,1,0,1,0,0), 2822 | ROW(0,0,0,1,0,1,0,0), 2823 | ROW(0,0,0,0,1,0,0,0), 2824 | ROW(0,0,0,0,1,0,0,0), 2825 | ROW(0,0,0,0,0,0,0,0), 2826 | ROW(0,0,0,0,0,0,0,0), 2827 | }, 2828 | 2829 | { /* W */ 2830 | ROW(0,0,0,0,0,0,0,0), 2831 | ROW(0,0,1,0,0,0,1,0), 2832 | ROW(0,0,1,0,0,0,1,0), 2833 | ROW(0,0,1,0,0,0,1,0), 2834 | ROW(0,0,1,0,1,0,1,0), 2835 | ROW(0,0,1,0,1,0,1,0), 2836 | ROW(0,0,1,0,1,0,1,0), 2837 | ROW(0,0,0,1,0,1,0,0), 2838 | ROW(0,0,0,0,0,0,0,0), 2839 | ROW(0,0,0,0,0,0,0,0), 2840 | }, 2841 | 2842 | { /* X */ 2843 | ROW(0,0,0,0,0,0,0,0), 2844 | ROW(0,0,1,0,0,0,1,0), 2845 | ROW(0,0,1,0,0,0,1,0), 2846 | ROW(0,0,0,1,0,1,0,0), 2847 | ROW(0,0,0,0,1,0,0,0), 2848 | ROW(0,0,0,1,0,1,0,0), 2849 | ROW(0,0,1,0,0,0,1,0), 2850 | ROW(0,0,1,0,0,0,1,0), 2851 | ROW(0,0,0,0,0,0,0,0), 2852 | ROW(0,0,0,0,0,0,0,0), 2853 | }, 2854 | 2855 | { /* Y */ 2856 | ROW(0,0,0,0,0,0,0,0), 2857 | ROW(0,0,1,0,0,0,1,0), 2858 | ROW(0,0,1,0,0,0,1,0), 2859 | ROW(0,0,0,1,0,1,0,0), 2860 | ROW(0,0,0,0,1,0,0,0), 2861 | ROW(0,0,0,0,1,0,0,0), 2862 | ROW(0,0,0,0,1,0,0,0), 2863 | ROW(0,0,0,0,1,0,0,0), 2864 | ROW(0,0,0,0,0,0,0,0), 2865 | ROW(0,0,0,0,0,0,0,0), 2866 | }, 2867 | 2868 | { /* Z */ 2869 | ROW(0,0,0,0,0,0,0,0), 2870 | ROW(0,0,1,1,1,1,1,0), 2871 | ROW(0,0,0,0,0,0,1,0), 2872 | ROW(0,0,0,0,0,1,0,0), 2873 | ROW(0,0,0,0,1,0,0,0), 2874 | ROW(0,0,0,1,0,0,0,0), 2875 | ROW(0,0,1,0,0,0,0,0), 2876 | ROW(0,0,1,1,1,1,1,0), 2877 | ROW(0,0,0,0,0,0,0,0), 2878 | ROW(0,0,0,0,0,0,0,0), 2879 | }, 2880 | 2881 | { /* left arrow */ 2882 | ROW(0,0,0,0,0,0,0,0), 2883 | ROW(0,0,0,0,0,0,0,0), 2884 | ROW(0,0,0,0,1,0,0,0), 2885 | ROW(0,0,0,1,0,0,0,0), 2886 | ROW(0,0,1,1,1,1,1,0), 2887 | ROW(0,0,0,1,0,0,0,0), 2888 | ROW(0,0,0,0,1,0,0,0), 2889 | ROW(0,0,0,0,0,0,0,0), 2890 | ROW(0,0,0,0,0,0,0,0), 2891 | ROW(0,0,0,0,0,0,0,0), 2892 | }, 2893 | 2894 | { /* half */ 2895 | ROW(0,0,0,0,0,0,0,0), 2896 | ROW(0,0,0,1,0,0,0,0), 2897 | ROW(0,0,1,1,0,0,0,0), 2898 | ROW(0,0,0,1,0,0,0,0), 2899 | ROW(0,0,0,1,0,0,0,0), 2900 | ROW(0,0,0,0,0,1,0,0), 2901 | ROW(0,0,0,0,1,0,1,0), 2902 | ROW(0,0,0,0,0,0,1,0), 2903 | ROW(0,0,0,0,0,1,0,0), 2904 | ROW(0,0,0,0,1,0,1,0), 2905 | }, 2906 | 2907 | { /* right arrow */ 2908 | ROW(0,0,0,0,0,0,0,0), 2909 | ROW(0,0,0,0,0,0,0,0), 2910 | ROW(0,0,0,0,1,0,0,0), 2911 | ROW(0,0,0,0,0,1,0,0), 2912 | ROW(0,0,1,1,1,1,1,0), 2913 | ROW(0,0,0,0,0,1,0,0), 2914 | ROW(0,0,0,0,1,0,0,0), 2915 | ROW(0,0,0,0,0,0,0,0), 2916 | ROW(0,0,0,0,0,0,0,0), 2917 | ROW(0,0,0,0,0,0,0,0), 2918 | }, 2919 | 2920 | { /* up arrow */ 2921 | ROW(0,0,0,0,0,0,0,0), 2922 | ROW(0,0,0,0,1,0,0,0), 2923 | ROW(0,0,0,1,1,1,0,0), 2924 | ROW(0,0,1,0,1,0,1,0), 2925 | ROW(0,0,0,0,1,0,0,0), 2926 | ROW(0,0,0,0,1,0,0,0), 2927 | ROW(0,0,0,0,1,0,0,0), 2928 | ROW(0,0,0,0,1,0,0,0), 2929 | ROW(0,0,0,0,0,0,0,0), 2930 | ROW(0,0,0,0,0,0,0,0), 2931 | }, 2932 | 2933 | { /* _ */ 2934 | ROW(0,0,0,0,0,0,0,0), 2935 | ROW(0,0,0,0,0,0,0,0), 2936 | ROW(0,0,0,0,0,0,0,0), 2937 | ROW(0,0,0,0,0,0,0,0), 2938 | ROW(0,0,0,0,0,0,0,0), 2939 | ROW(0,0,0,0,0,0,0,0), 2940 | ROW(0,0,0,0,0,0,0,0), 2941 | ROW(0,0,1,1,1,1,1,0), 2942 | ROW(0,0,0,0,0,0,0,0), 2943 | ROW(0,0,0,0,0,0,0,0), 2944 | }, 2945 | 2946 | { /* - */ 2947 | ROW(0,0,0,0,0,0,0,0), 2948 | ROW(0,0,0,0,0,0,0,0), 2949 | ROW(0,0,0,0,0,0,0,0), 2950 | ROW(0,0,0,0,0,0,0,0), 2951 | ROW(0,0,1,1,1,1,1,0), 2952 | ROW(0,0,0,0,0,0,0,0), 2953 | ROW(0,0,0,0,0,0,0,0), 2954 | ROW(0,0,0,0,0,0,0,0), 2955 | ROW(0,0,0,0,0,0,0,0), 2956 | ROW(0,0,0,0,0,0,0,0), 2957 | }, 2958 | 2959 | { /* a */ 2960 | ROW(0,0,0,0,0,0,0,0), 2961 | ROW(0,0,0,0,0,0,0,0), 2962 | ROW(0,0,0,0,0,0,0,0), 2963 | ROW(0,0,0,1,1,1,0,0), 2964 | ROW(0,0,0,0,0,0,1,0), 2965 | ROW(0,0,0,1,1,1,1,0), 2966 | ROW(0,0,1,0,0,0,1,0), 2967 | ROW(0,0,0,1,1,1,1,0), 2968 | ROW(0,0,0,0,0,0,0,0), 2969 | ROW(0,0,0,0,0,0,0,0), 2970 | }, 2971 | 2972 | { /* b */ 2973 | ROW(0,0,0,0,0,0,0,0), 2974 | ROW(0,0,1,0,0,0,0,0), 2975 | ROW(0,0,1,0,0,0,0,0), 2976 | ROW(0,0,1,1,1,1,0,0), 2977 | ROW(0,0,1,0,0,0,1,0), 2978 | ROW(0,0,1,0,0,0,1,0), 2979 | ROW(0,0,1,0,0,0,1,0), 2980 | ROW(0,0,1,1,1,1,0,0), 2981 | ROW(0,0,0,0,0,0,0,0), 2982 | ROW(0,0,0,0,0,0,0,0), 2983 | }, 2984 | 2985 | { /* c */ 2986 | ROW(0,0,0,0,0,0,0,0), 2987 | ROW(0,0,0,0,0,0,0,0), 2988 | ROW(0,0,0,0,0,0,0,0), 2989 | ROW(0,0,0,1,1,1,1,0), 2990 | ROW(0,0,1,0,0,0,0,0), 2991 | ROW(0,0,1,0,0,0,0,0), 2992 | ROW(0,0,1,0,0,0,0,0), 2993 | ROW(0,0,0,1,1,1,1,0), 2994 | ROW(0,0,0,0,0,0,0,0), 2995 | ROW(0,0,0,0,0,0,0,0), 2996 | }, 2997 | 2998 | { /* d */ 2999 | ROW(0,0,0,0,0,0,0,0), 3000 | ROW(0,0,0,0,0,0,1,0), 3001 | ROW(0,0,0,0,0,0,1,0), 3002 | ROW(0,0,0,1,1,1,1,0), 3003 | ROW(0,0,1,0,0,0,1,0), 3004 | ROW(0,0,1,0,0,0,1,0), 3005 | ROW(0,0,1,0,0,0,1,0), 3006 | ROW(0,0,0,1,1,1,1,0), 3007 | ROW(0,0,0,0,0,0,0,0), 3008 | ROW(0,0,0,0,0,0,0,0), 3009 | }, 3010 | 3011 | { /* e */ 3012 | ROW(0,0,0,0,0,0,0,0), 3013 | ROW(0,0,0,0,0,0,0,0), 3014 | ROW(0,0,0,0,0,0,0,0), 3015 | ROW(0,0,0,1,1,1,0,0), 3016 | ROW(0,0,1,0,0,0,1,0), 3017 | ROW(0,0,1,1,1,1,1,0), 3018 | ROW(0,0,1,0,0,0,0,0), 3019 | ROW(0,0,0,1,1,1,0,0), 3020 | ROW(0,0,0,0,0,0,0,0), 3021 | ROW(0,0,0,0,0,0,0,0), 3022 | }, 3023 | 3024 | { /* f */ 3025 | ROW(0,0,0,0,0,0,0,0), 3026 | ROW(0,0,0,0,0,1,0,0), 3027 | ROW(0,0,0,0,1,0,0,0), 3028 | ROW(0,0,0,0,1,0,0,0), 3029 | ROW(0,0,0,1,1,1,0,0), 3030 | ROW(0,0,0,0,1,0,0,0), 3031 | ROW(0,0,0,0,1,0,0,0), 3032 | ROW(0,0,0,0,1,0,0,0), 3033 | ROW(0,0,0,0,0,0,0,0), 3034 | ROW(0,0,0,0,0,0,0,0), 3035 | }, 3036 | 3037 | { /* g */ 3038 | ROW(0,0,0,0,0,0,0,0), 3039 | ROW(0,0,0,0,0,0,0,0), 3040 | ROW(0,0,0,0,0,0,0,0), 3041 | ROW(0,0,0,1,1,1,1,0), 3042 | ROW(0,0,1,0,0,0,1,0), 3043 | ROW(0,0,1,0,0,0,1,0), 3044 | ROW(0,0,1,0,0,0,1,0), 3045 | ROW(0,0,0,1,1,1,1,0), 3046 | ROW(0,0,0,0,0,0,1,0), 3047 | ROW(0,0,0,0,1,1,0,0), 3048 | }, 3049 | 3050 | { /* h */ 3051 | ROW(0,0,0,0,0,0,0,0), 3052 | ROW(0,0,1,0,0,0,0,0), 3053 | ROW(0,0,1,0,0,0,0,0), 3054 | ROW(0,0,1,1,1,1,0,0), 3055 | ROW(0,0,1,0,0,0,1,0), 3056 | ROW(0,0,1,0,0,0,1,0), 3057 | ROW(0,0,1,0,0,0,1,0), 3058 | ROW(0,0,1,0,0,0,1,0), 3059 | ROW(0,0,0,0,0,0,0,0), 3060 | ROW(0,0,0,0,0,0,0,0), 3061 | }, 3062 | 3063 | { /* i */ 3064 | ROW(0,0,0,0,0,0,0,0), 3065 | ROW(0,0,0,0,0,0,0,0), 3066 | ROW(0,0,0,0,1,0,0,0), 3067 | ROW(0,0,0,0,0,0,0,0), 3068 | ROW(0,0,0,0,1,0,0,0), 3069 | ROW(0,0,0,0,1,0,0,0), 3070 | ROW(0,0,0,0,1,0,0,0), 3071 | ROW(0,0,0,0,1,0,0,0), 3072 | ROW(0,0,0,0,0,0,0,0), 3073 | ROW(0,0,0,0,0,0,0,0), 3074 | }, 3075 | 3076 | { /* j */ 3077 | ROW(0,0,0,0,0,0,0,0), 3078 | ROW(0,0,0,0,0,0,0,0), 3079 | ROW(0,0,0,0,1,0,0,0), 3080 | ROW(0,0,0,0,0,0,0,0), 3081 | ROW(0,0,0,0,1,0,0,0), 3082 | ROW(0,0,0,0,1,0,0,0), 3083 | ROW(0,0,0,0,1,0,0,0), 3084 | ROW(0,0,0,0,1,0,0,0), 3085 | ROW(0,0,0,0,1,0,0,0), 3086 | ROW(0,0,0,1,0,0,0,0), 3087 | }, 3088 | 3089 | { /* k */ 3090 | ROW(0,0,0,0,0,0,0,0), 3091 | ROW(0,0,1,0,0,0,0,0), 3092 | ROW(0,0,1,0,0,0,0,0), 3093 | ROW(0,0,1,0,0,1,0,0), 3094 | ROW(0,0,1,0,1,0,0,0), 3095 | ROW(0,0,1,1,0,0,0,0), 3096 | ROW(0,0,1,0,1,0,0,0), 3097 | ROW(0,0,1,0,0,1,0,0), 3098 | ROW(0,0,0,0,0,0,0,0), 3099 | ROW(0,0,0,0,0,0,0,0), 3100 | }, 3101 | 3102 | { /* l */ 3103 | ROW(0,0,0,0,0,0,0,0), 3104 | ROW(0,0,0,0,1,0,0,0), 3105 | ROW(0,0,0,0,1,0,0,0), 3106 | ROW(0,0,0,0,1,0,0,0), 3107 | ROW(0,0,0,0,1,0,0,0), 3108 | ROW(0,0,0,0,1,0,0,0), 3109 | ROW(0,0,0,0,1,0,0,0), 3110 | ROW(0,0,0,0,1,0,0,0), 3111 | ROW(0,0,0,0,0,0,0,0), 3112 | ROW(0,0,0,0,0,0,0,0), 3113 | }, 3114 | 3115 | { /* m */ 3116 | ROW(0,0,0,0,0,0,0,0), 3117 | ROW(0,0,0,0,0,0,0,0), 3118 | ROW(0,0,0,0,0,0,0,0), 3119 | ROW(0,0,1,1,0,1,0,0), 3120 | ROW(0,0,1,0,1,0,1,0), 3121 | ROW(0,0,1,0,1,0,1,0), 3122 | ROW(0,0,1,0,1,0,1,0), 3123 | ROW(0,0,1,0,1,0,1,0), 3124 | ROW(0,0,0,0,0,0,0,0), 3125 | ROW(0,0,0,0,0,0,0,0), 3126 | }, 3127 | 3128 | { /* n */ 3129 | ROW(0,0,0,0,0,0,0,0), 3130 | ROW(0,0,0,0,0,0,0,0), 3131 | ROW(0,0,0,0,0,0,0,0), 3132 | ROW(0,0,1,1,1,1,0,0), 3133 | ROW(0,0,1,0,0,0,1,0), 3134 | ROW(0,0,1,0,0,0,1,0), 3135 | ROW(0,0,1,0,0,0,1,0), 3136 | ROW(0,0,1,0,0,0,1,0), 3137 | ROW(0,0,0,0,0,0,0,0), 3138 | ROW(0,0,0,0,0,0,0,0), 3139 | }, 3140 | 3141 | { /* o */ 3142 | ROW(0,0,0,0,0,0,0,0), 3143 | ROW(0,0,0,0,0,0,0,0), 3144 | ROW(0,0,0,0,0,0,0,0), 3145 | ROW(0,0,0,1,1,1,0,0), 3146 | ROW(0,0,1,0,0,0,1,0), 3147 | ROW(0,0,1,0,0,0,1,0), 3148 | ROW(0,0,1,0,0,0,1,0), 3149 | ROW(0,0,0,1,1,1,0,0), 3150 | ROW(0,0,0,0,0,0,0,0), 3151 | ROW(0,0,0,0,0,0,0,0), 3152 | }, 3153 | 3154 | { /* p */ 3155 | ROW(0,0,0,0,0,0,0,0), 3156 | ROW(0,0,0,0,0,0,0,0), 3157 | ROW(0,0,0,0,0,0,0,0), 3158 | ROW(0,0,1,1,1,1,0,0), 3159 | ROW(0,0,1,0,0,0,1,0), 3160 | ROW(0,0,1,0,0,0,1,0), 3161 | ROW(0,0,1,0,0,0,1,0), 3162 | ROW(0,0,1,1,1,1,0,0), 3163 | ROW(0,0,1,0,0,0,0,0), 3164 | ROW(0,0,1,0,0,0,0,0), 3165 | }, 3166 | 3167 | { /* q */ 3168 | ROW(0,0,0,0,0,0,0,0), 3169 | ROW(0,0,0,0,0,0,0,0), 3170 | ROW(0,0,0,0,0,0,0,0), 3171 | ROW(0,0,0,1,1,1,1,0), 3172 | ROW(0,0,1,0,0,0,1,0), 3173 | ROW(0,0,1,0,0,0,1,0), 3174 | ROW(0,0,1,0,0,0,1,0), 3175 | ROW(0,0,0,1,1,1,1,0), 3176 | ROW(0,0,0,0,0,0,1,0), 3177 | ROW(0,0,0,0,0,0,1,0), 3178 | }, 3179 | 3180 | { /* r */ 3181 | ROW(0,0,0,0,0,0,0,0), 3182 | ROW(0,0,0,0,0,0,0,0), 3183 | ROW(0,0,0,0,0,0,0,0), 3184 | ROW(0,0,1,0,1,1,1,0), 3185 | ROW(0,0,1,1,0,0,0,0), 3186 | ROW(0,0,1,0,0,0,0,0), 3187 | ROW(0,0,1,0,0,0,0,0), 3188 | ROW(0,0,1,0,0,0,0,0), 3189 | ROW(0,0,0,0,0,0,0,0), 3190 | ROW(0,0,0,0,0,0,0,0), 3191 | }, 3192 | 3193 | { /* s */ 3194 | ROW(0,0,0,0,0,0,0,0), 3195 | ROW(0,0,0,0,0,0,0,0), 3196 | ROW(0,0,0,0,0,0,0,0), 3197 | ROW(0,0,0,1,1,1,1,0), 3198 | ROW(0,0,1,0,0,0,0,0), 3199 | ROW(0,0,0,1,1,1,0,0), 3200 | ROW(0,0,0,0,0,0,1,0), 3201 | ROW(0,0,1,1,1,1,0,0), 3202 | ROW(0,0,0,0,0,0,0,0), 3203 | ROW(0,0,0,0,0,0,0,0), 3204 | }, 3205 | 3206 | { /* t */ 3207 | ROW(0,0,0,0,0,0,0,0), 3208 | ROW(0,0,0,0,0,0,0,0), 3209 | ROW(0,0,0,0,1,0,0,0), 3210 | ROW(0,0,0,1,1,1,0,0), 3211 | ROW(0,0,0,0,1,0,0,0), 3212 | ROW(0,0,0,0,1,0,0,0), 3213 | ROW(0,0,0,0,1,0,0,0), 3214 | ROW(0,0,0,0,0,1,0,0), 3215 | ROW(0,0,0,0,0,0,0,0), 3216 | ROW(0,0,0,0,0,0,0,0), 3217 | }, 3218 | 3219 | { /* u */ 3220 | ROW(0,0,0,0,0,0,0,0), 3221 | ROW(0,0,0,0,0,0,0,0), 3222 | ROW(0,0,0,0,0,0,0,0), 3223 | ROW(0,0,1,0,0,0,1,0), 3224 | ROW(0,0,1,0,0,0,1,0), 3225 | ROW(0,0,1,0,0,0,1,0), 3226 | ROW(0,0,1,0,0,0,1,0), 3227 | ROW(0,0,0,1,1,1,1,0), 3228 | ROW(0,0,0,0,0,0,0,0), 3229 | ROW(0,0,0,0,0,0,0,0), 3230 | }, 3231 | 3232 | { /* v */ 3233 | ROW(0,0,0,0,0,0,0,0), 3234 | ROW(0,0,0,0,0,0,0,0), 3235 | ROW(0,0,0,0,0,0,0,0), 3236 | ROW(0,0,1,0,0,0,1,0), 3237 | ROW(0,0,1,0,0,0,1,0), 3238 | ROW(0,0,0,1,0,1,0,0), 3239 | ROW(0,0,0,1,0,1,0,0), 3240 | ROW(0,0,0,0,1,0,0,0), 3241 | ROW(0,0,0,0,0,0,0,0), 3242 | ROW(0,0,0,0,0,0,0,0), 3243 | }, 3244 | 3245 | { /* w */ 3246 | ROW(0,0,0,0,0,0,0,0), 3247 | ROW(0,0,0,0,0,0,0,0), 3248 | ROW(0,0,0,0,0,0,0,0), 3249 | ROW(0,0,1,0,0,0,1,0), 3250 | ROW(0,0,1,0,0,0,1,0), 3251 | ROW(0,0,1,0,0,0,1,0), 3252 | ROW(0,0,1,0,1,0,1,0), 3253 | ROW(0,0,0,1,0,1,0,0), 3254 | ROW(0,0,0,0,0,0,0,0), 3255 | ROW(0,0,0,0,0,0,0,0), 3256 | }, 3257 | 3258 | { /* x */ 3259 | ROW(0,0,0,0,0,0,0,0), 3260 | ROW(0,0,0,0,0,0,0,0), 3261 | ROW(0,0,0,0,0,0,0,0), 3262 | ROW(0,0,1,0,0,0,1,0), 3263 | ROW(0,0,0,1,0,1,0,0), 3264 | ROW(0,0,0,0,1,0,0,0), 3265 | ROW(0,0,0,1,0,1,0,0), 3266 | ROW(0,0,1,0,0,0,1,0), 3267 | ROW(0,0,0,0,0,0,0,0), 3268 | ROW(0,0,0,0,0,0,0,0), 3269 | }, 3270 | 3271 | { /* y */ 3272 | ROW(0,0,0,0,0,0,0,0), 3273 | ROW(0,0,0,0,0,0,0,0), 3274 | ROW(0,0,0,0,0,0,0,0), 3275 | ROW(0,0,1,0,0,0,1,0), 3276 | ROW(0,0,1,0,0,0,1,0), 3277 | ROW(0,0,1,0,0,0,1,0), 3278 | ROW(0,0,1,0,0,0,1,0), 3279 | ROW(0,0,0,1,1,1,1,0), 3280 | ROW(0,0,0,0,0,0,1,0), 3281 | ROW(0,0,0,0,1,1,1,0), 3282 | }, 3283 | 3284 | { /* z */ 3285 | ROW(0,0,0,0,0,0,0,0), 3286 | ROW(0,0,0,0,0,0,0,0), 3287 | ROW(0,0,0,0,0,0,0,0), 3288 | ROW(0,0,1,1,1,1,1,0), 3289 | ROW(0,0,0,0,0,1,0,0), 3290 | ROW(0,0,0,0,1,0,0,0), 3291 | ROW(0,0,0,1,0,0,0,0), 3292 | ROW(0,0,1,1,1,1,1,0), 3293 | ROW(0,0,0,0,0,0,0,0), 3294 | ROW(0,0,0,0,0,0,0,0), 3295 | }, 3296 | 3297 | { /* 1/4 */ 3298 | ROW(0,0,0,0,0,0,0,0), 3299 | ROW(0,0,0,1,0,0,0,0), 3300 | ROW(0,0,1,1,0,0,0,0), 3301 | ROW(0,0,0,1,0,0,0,0), 3302 | ROW(0,0,0,1,0,0,0,0), 3303 | ROW(0,0,0,0,0,0,1,0), 3304 | ROW(0,0,0,0,0,1,1,0), 3305 | ROW(0,0,0,0,1,0,1,0), 3306 | ROW(0,0,0,1,1,1,1,0), 3307 | ROW(0,0,0,0,0,0,1,0), 3308 | }, 3309 | 3310 | { /* double bar */ 3311 | ROW(0,0,0,0,0,0,0,0), 3312 | ROW(0,0,1,1,0,1,1,0), 3313 | ROW(0,0,1,1,0,1,1,0), 3314 | ROW(0,0,1,1,0,1,1,0), 3315 | ROW(0,0,1,1,0,1,1,0), 3316 | ROW(0,0,1,1,0,1,1,0), 3317 | ROW(0,0,1,1,0,1,1,0), 3318 | ROW(0,0,1,1,0,1,1,0), 3319 | ROW(0,0,0,0,0,0,0,0), 3320 | ROW(0,0,0,0,0,0,0,0), 3321 | }, 3322 | 3323 | { /* 3/4 */ 3324 | ROW(0,0,0,0,0,0,0,0), 3325 | ROW(0,0,1,1,0,0,0,0), 3326 | ROW(0,0,0,0,1,0,0,0), 3327 | ROW(0,0,1,1,0,0,0,0), 3328 | ROW(0,0,0,0,1,0,0,0), 3329 | ROW(0,0,1,1,0,0,1,0), 3330 | ROW(0,0,0,0,0,1,1,0), 3331 | ROW(0,0,0,0,1,0,1,0), 3332 | ROW(0,0,0,1,1,1,1,0), 3333 | ROW(0,0,0,0,0,0,1,0), 3334 | }, 3335 | 3336 | { /* divide */ 3337 | ROW(0,0,0,0,0,0,0,0), 3338 | ROW(0,0,0,0,0,0,0,0), 3339 | ROW(0,0,0,0,1,0,0,0), 3340 | ROW(0,0,0,0,0,0,0,0), 3341 | ROW(0,0,1,1,1,1,1,0), 3342 | ROW(0,0,0,0,0,0,0,0), 3343 | ROW(0,0,0,0,1,0,0,0), 3344 | ROW(0,0,0,0,0,0,0,0), 3345 | ROW(0,0,0,0,0,0,0,0), 3346 | ROW(0,0,0,0,0,0,0,0), 3347 | }, 3348 | 3349 | { /* block */ 3350 | ROW(0,0,0,0,0,0,0,0), 3351 | ROW(0,0,1,1,1,1,1,0), 3352 | ROW(0,0,1,1,1,1,1,0), 3353 | ROW(0,0,1,1,1,1,1,0), 3354 | ROW(0,0,1,1,1,1,1,0), 3355 | ROW(0,0,1,1,1,1,1,0), 3356 | ROW(0,0,1,1,1,1,1,0), 3357 | ROW(0,0,1,1,1,1,1,0), 3358 | ROW(0,0,0,0,0,0,0,0), 3359 | ROW(0,0,0,0,0,0,0,0), 3360 | }, 3361 | 3362 | }; 3363 | -------------------------------------------------------------------------------- /monprom.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | 4 | Taken from MEMU - Andy's Memotech Emulator http://www.nyangau.org/memu/memu.htm 5 | with small modifications. 6 | 7 | monprom.h - Character generator PROM 8 | 9 | */ 10 | 11 | #ifndef MONPROM_H 12 | #define MONPROM_H 13 | 14 | /*...sincludes:0:*/ 15 | #define byte unsigned char 16 | 17 | /*...vtypes\46\h:0:*/ 18 | /*...e*/ 19 | 20 | #define GLYPH_WIDTH 8 21 | #define GLYPH_HEIGHT 10 22 | 23 | extern byte mon_alpha_prom[0x100][GLYPH_HEIGHT]; 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /pico_extras_import.cmake: -------------------------------------------------------------------------------- 1 | # This is a copy of /external/pico_extras_import.cmake 2 | 3 | # This can be dropped into an external project to help locate pico-extras 4 | # It should be include()ed prior to project() 5 | 6 | if (DEFINED ENV{PICO_EXTRAS_PATH} AND (NOT PICO_EXTRAS_PATH)) 7 | set(PICO_EXTRAS_PATH $ENV{PICO_EXTRAS_PATH}) 8 | message("Using PICO_EXTRAS_PATH from environment ('${PICO_EXTRAS_PATH}')") 9 | endif () 10 | 11 | if (DEFINED ENV{PICO_EXTRAS_FETCH_FROM_GIT} AND (NOT PICO_EXTRAS_FETCH_FROM_GIT)) 12 | set(PICO_EXTRAS_FETCH_FROM_GIT $ENV{PICO_EXTRAS_FETCH_FROM_GIT}) 13 | message("Using PICO_EXTRAS_FETCH_FROM_GIT from environment ('${PICO_EXTRAS_FETCH_FROM_GIT}')") 14 | endif () 15 | 16 | if (DEFINED ENV{PICO_EXTRAS_FETCH_FROM_GIT_PATH} AND (NOT PICO_EXTRAS_FETCH_FROM_GIT_PATH)) 17 | set(PICO_EXTRAS_FETCH_FROM_GIT_PATH $ENV{PICO_EXTRAS_FETCH_FROM_GIT_PATH}) 18 | message("Using PICO_EXTRAS_FETCH_FROM_GIT_PATH from environment ('${PICO_EXTRAS_FETCH_FROM_GIT_PATH}')") 19 | endif () 20 | 21 | if (NOT PICO_EXTRAS_PATH) 22 | if (PICO_EXTRAS_FETCH_FROM_GIT) 23 | include(FetchContent) 24 | set(FETCHCONTENT_BASE_DIR_SAVE ${FETCHCONTENT_BASE_DIR}) 25 | if (PICO_EXTRAS_FETCH_FROM_GIT_PATH) 26 | get_filename_component(FETCHCONTENT_BASE_DIR "${PICO_EXTRAS_FETCH_FROM_GIT_PATH}" REALPATH BASE_DIR "${CMAKE_SOURCE_DIR}") 27 | endif () 28 | FetchContent_Declare( 29 | PICO_EXTRAS 30 | GIT_REPOSITORY https://github.com/raspberrypi/pico-extras 31 | GIT_TAG master 32 | ) 33 | if (NOT PICO_EXTRAS) 34 | message("Downloading PICO EXTRAS") 35 | FetchContent_Populate(PICO_EXTRAS) 36 | set(PICO_EXTRAS_PATH ${PICO_EXTRAS_SOURCE_DIR}) 37 | endif () 38 | set(FETCHCONTENT_BASE_DIR ${FETCHCONTENT_BASE_DIR_SAVE}) 39 | else () 40 | if (PICO_SDK_PATH AND EXISTS "${PICO_SDK_PATH}/../pico-extras") 41 | set(PICO_EXTRAS_PATH ${PICO_SDK_PATH}/../pico-extras) 42 | message("Defaulting PICO_EXTRAS_PATH as sibling of PICO_SDK_PATH: ${PICO_EXTRAS_PATH}") 43 | else() 44 | message(FATAL_ERROR 45 | "PICO EXTRAS location was not specified. Please set PICO_EXTRAS_PATH or set PICO_EXTRAS_FETCH_FROM_GIT to on to fetch from git." 46 | ) 47 | endif() 48 | endif () 49 | endif () 50 | 51 | set(PICO_EXTRAS_PATH "${PICO_EXTRAS_PATH}" CACHE PATH "Path to the PICO EXTRAS") 52 | set(PICO_EXTRAS_FETCH_FROM_GIT "${PICO_EXTRAS_FETCH_FROM_GIT}" CACHE BOOL "Set to ON to fetch copy of PICO EXTRAS from git if not otherwise locatable") 53 | set(PICO_EXTRAS_FETCH_FROM_GIT_PATH "${PICO_EXTRAS_FETCH_FROM_GIT_PATH}" CACHE FILEPATH "location to download EXTRAS") 54 | 55 | get_filename_component(PICO_EXTRAS_PATH "${PICO_EXTRAS_PATH}" REALPATH BASE_DIR "${CMAKE_BINARY_DIR}") 56 | if (NOT EXISTS ${PICO_EXTRAS_PATH}) 57 | message(FATAL_ERROR "Directory '${PICO_EXTRAS_PATH}' not found") 58 | endif () 59 | 60 | set(PICO_EXTRAS_PATH ${PICO_EXTRAS_PATH} CACHE PATH "Path to the PICO EXTRAS" FORCE) 61 | 62 | add_subdirectory(${PICO_EXTRAS_PATH} pico_extras) -------------------------------------------------------------------------------- /pico_sdk_import.cmake: -------------------------------------------------------------------------------- 1 | # This is a copy of /external/pico_sdk_import.cmake 2 | 3 | # This can be dropped into an external project to help locate this SDK 4 | # It should be include()ed prior to project() 5 | 6 | if (DEFINED ENV{PICO_SDK_PATH} AND (NOT PICO_SDK_PATH)) 7 | set(PICO_SDK_PATH $ENV{PICO_SDK_PATH}) 8 | message("Using PICO_SDK_PATH from environment ('${PICO_SDK_PATH}')") 9 | endif () 10 | 11 | if (DEFINED ENV{PICO_SDK_FETCH_FROM_GIT} AND (NOT PICO_SDK_FETCH_FROM_GIT)) 12 | set(PICO_SDK_FETCH_FROM_GIT $ENV{PICO_SDK_FETCH_FROM_GIT}) 13 | message("Using PICO_SDK_FETCH_FROM_GIT from environment ('${PICO_SDK_FETCH_FROM_GIT}')") 14 | endif () 15 | 16 | if (DEFINED ENV{PICO_SDK_FETCH_FROM_GIT_PATH} AND (NOT PICO_SDK_FETCH_FROM_GIT_PATH)) 17 | set(PICO_SDK_FETCH_FROM_GIT_PATH $ENV{PICO_SDK_FETCH_FROM_GIT_PATH}) 18 | message("Using PICO_SDK_FETCH_FROM_GIT_PATH from environment ('${PICO_SDK_FETCH_FROM_GIT_PATH}')") 19 | endif () 20 | 21 | set(PICO_SDK_PATH "${PICO_SDK_PATH}" CACHE PATH "Path to the Raspberry Pi Pico SDK") 22 | set(PICO_SDK_FETCH_FROM_GIT "${PICO_SDK_FETCH_FROM_GIT}" CACHE BOOL "Set to ON to fetch copy of SDK from git if not otherwise locatable") 23 | set(PICO_SDK_FETCH_FROM_GIT_PATH "${PICO_SDK_FETCH_FROM_GIT_PATH}" CACHE FILEPATH "location to download SDK") 24 | 25 | if (NOT PICO_SDK_PATH) 26 | if (PICO_SDK_FETCH_FROM_GIT) 27 | include(FetchContent) 28 | set(FETCHCONTENT_BASE_DIR_SAVE ${FETCHCONTENT_BASE_DIR}) 29 | if (PICO_SDK_FETCH_FROM_GIT_PATH) 30 | get_filename_component(FETCHCONTENT_BASE_DIR "${PICO_SDK_FETCH_FROM_GIT_PATH}" REALPATH BASE_DIR "${CMAKE_SOURCE_DIR}") 31 | endif () 32 | FetchContent_Declare( 33 | pico_sdk 34 | GIT_REPOSITORY https://github.com/raspberrypi/pico-sdk 35 | GIT_TAG master 36 | ) 37 | if (NOT pico_sdk) 38 | message("Downloading Raspberry Pi Pico SDK") 39 | FetchContent_Populate(pico_sdk) 40 | set(PICO_SDK_PATH ${pico_sdk_SOURCE_DIR}) 41 | endif () 42 | set(FETCHCONTENT_BASE_DIR ${FETCHCONTENT_BASE_DIR_SAVE}) 43 | else () 44 | message(FATAL_ERROR 45 | "SDK location was not specified. Please set PICO_SDK_PATH or set PICO_SDK_FETCH_FROM_GIT to on to fetch from git." 46 | ) 47 | endif () 48 | endif () 49 | 50 | get_filename_component(PICO_SDK_PATH "${PICO_SDK_PATH}" REALPATH BASE_DIR "${CMAKE_BINARY_DIR}") 51 | if (NOT EXISTS ${PICO_SDK_PATH}) 52 | message(FATAL_ERROR "Directory '${PICO_SDK_PATH}' not found") 53 | endif () 54 | 55 | set(PICO_SDK_INIT_CMAKE_FILE ${PICO_SDK_PATH}/pico_sdk_init.cmake) 56 | if (NOT EXISTS ${PICO_SDK_INIT_CMAKE_FILE}) 57 | message(FATAL_ERROR "Directory '${PICO_SDK_PATH}' does not appear to contain the Raspberry Pi Pico SDK") 58 | endif () 59 | 60 | set(PICO_SDK_PATH ${PICO_SDK_PATH} CACHE PATH "Path to the Raspberry Pi Pico SDK" FORCE) 61 | 62 | include(${PICO_SDK_INIT_CMAKE_FILE}) 63 | --------------------------------------------------------------------------------