diff options
author | Jay Monkman <jtm@smoothsmoothie.com> | 2005-03-11 07:27:56 +0000 |
---|---|---|
committer | Jay Monkman <jtm@smoothsmoothie.com> | 2005-03-11 07:27:56 +0000 |
commit | e8c785c68aeb6565c1cd56fcefd8edb1163f4894 (patch) | |
tree | dd3954615862f25cf1a9e81e455f37f730af7074 /c/src/lib/libbsp/arm/gp32/console | |
parent | 2005-03-11 Philippe Simons <loki_666@fastmail.fm> (diff) | |
download | rtems-e8c785c68aeb6565c1cd56fcefd8edb1163f4894.tar.bz2 |
2005-03-11 Philippe Simons <loki_666@fastmail.fm>
* acinclude.m4: Added gp32 BSP.
* gp32/.cvsignore, gp32/Makefile.am, gp32/README, gp32/bsp_specs,
gp32/configure.ac, gp32/console/.cvsignore, gp32/console/conio.c,
gp32/console/console.c, gp32/console/defaultfont.c,
gp32/include/.cvsignore, gp32/include/bsp.h, gp32/include/conio.h,
gp32/include/tm27.h, gp32/start/.cvsignore, gp32/start/start.S,
gp32/startup/.cvsignore, gp32/startup/bspstart.c,
gp32/startup/exit.c, gp32/startup/linkcmds, gp32/startup/memmap.c: New files.
Diffstat (limited to 'c/src/lib/libbsp/arm/gp32/console')
-rw-r--r-- | c/src/lib/libbsp/arm/gp32/console/.cvsignore | 14 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/gp32/console/conio.c | 357 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/gp32/console/console.c | 176 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/gp32/console/defaultfont.c | 600 |
4 files changed, 1147 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/arm/gp32/console/.cvsignore b/c/src/lib/libbsp/arm/gp32/console/.cvsignore new file mode 100644 index 0000000000..d29e5050f5 --- /dev/null +++ b/c/src/lib/libbsp/arm/gp32/console/.cvsignore @@ -0,0 +1,14 @@ +Makefile +Makefile.in +aclocal.m4 +autom4te.cache +config.cache +config.guess +config.log +config.status +config.sub +configure +depcomp +install-sh +missing +mkinstalldirs diff --git a/c/src/lib/libbsp/arm/gp32/console/conio.c b/c/src/lib/libbsp/arm/gp32/console/conio.c new file mode 100644 index 0000000000..3455d09c07 --- /dev/null +++ b/c/src/lib/libbsp/arm/gp32/console/conio.c @@ -0,0 +1,357 @@ +/* + * conio.c : ARM GBA BSP + * + * This file contains the GBA conio I/O package. + * + * + * Copyright (c) 2004 Markku Puro <markku.puro@kopteri.net> + * + * This source file is based on work by Rafael Vuijk (aka Dark Fader) + * MyLib by Rafael Vuijk (aka Dark Fader) + * + * The license and distribution terms for this file may be + * found in found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * + * $Id$ +*/ + + +/*---------------------------------------------------------------------------* + * Includes * + *---------------------------------------------------------------------------*/ +#include <rtems/score/types.h> +#include <s3c2400.h> +#include <conio.h> +#include <stdio.h> +#include <stdarg.h> + +#define gp_initButtons() {rPBCON=0x0;} +#define gp_getButtons() ((((~rPEDAT >> 6) & 0x3) << 8) | \ + ((~rPBDAT >> 8) & 0xFF)) + +/*---------------------------------------------------------------------------* + * Defines * + *---------------------------------------------------------------------------*/ +#define LCD_WIDTH 240 +#define LCD_HEIGHT 320 +#define DEFAULT_FONT_WIDTH 4 +#define DEFAULT_FONT_HEIGHT 6 +#define W (LCD_WIDTH/DEFAULT_FONT_WIDTH) +#define H (LCD_HEIGHT/DEFAULT_FONT_HEIGHT) + +typedef unsigned char Bitmap[LCD_HEIGHT][LCD_WIDTH]; +#define GP32_VRAM 0x0c7b4000 +#define bg_bitmap (*(Bitmap *)GP32_VRAM) + +/* color conversion */ +#define RGB(r,g,b) ( (r)<<11 | (g)<<6 | (b)<<1 ) + +int _wherex; +int _wherey; +int _textattr; + + +/*---------------------------------------------------------------------------* + * Defaultfont * + *---------------------------------------------------------------------------*/ +#include "defaultfont.c" + +/*---------------------------------------------------------------------------* + * gp32_gotoxy * + *---------------------------------------------------------------------------*/ +void gpconio_gotoxy(int _x, int _y) +{ + _wherex = _x; + _wherey = _y; +} + + +/*---------------------------------------------------------------------------* + * PutChar * + *---------------------------------------------------------------------------*/ +void PutChar(char c, int textattr, int x, int y) +{ + int f = textattr & 0x0F; + int b = textattr >> 4; + uint32_t fmask = f | (f << 8) | (f << 16) | (f << 24); + uint32_t bmask = b | (b << 8) | (b << 16) | (b << 24); + uint32_t *dest = (uint32_t *)&bg_bitmap[((y << 1) + y) << 1][x << 2]; + const uint32_t *src = (uint32_t *)&(font3x5[(int)c]); + uint32_t s; + + s = *src++; + *dest = (fmask&s) | (bmask&~s); + dest += LCD_WIDTH / sizeof(uint32_t); + + s = *src++; + *dest = (fmask&s) | (bmask&~s); + dest += LCD_WIDTH / sizeof(uint32_t); + + s = *src++; + *dest = (fmask&s) | (bmask&~s); + dest += LCD_WIDTH / sizeof(uint32_t); + + s = *src++; + *dest = (fmask&s) | (bmask&~s); + dest += LCD_WIDTH / sizeof(uint32_t); + + s = *src++; + *dest = (fmask&s) | (bmask&~s); + dest += LCD_WIDTH / sizeof(uint32_t); + + s = *src++; + *dest = (fmask&s) | (bmask&~s); + dest += LCD_WIDTH / sizeof(uint32_t); +} + + +/*---------------------------------------------------------------------------* + * gp32_textattr * + *---------------------------------------------------------------------------*/ +void gpconio_textattr(int _attr) +{ + _textattr = _attr; +} + +/*---------------------------------------------------------------------------* + * gp32_textbackground * + *---------------------------------------------------------------------------*/ +void gpconio_textbackground(int _color) +{ + _textattr = (_textattr & 0x0F) | (_color << 4); +} + +/*---------------------------------------------------------------------------* + * gp32_textcolor * + *---------------------------------------------------------------------------*/ +void gpconio_textcolor(int _color) +{ + _textattr = (_textattr & 0xF0) | (_color); +} + + +/*---------------------------------------------------------------------------* + * ClrLine * + *---------------------------------------------------------------------------*/ +void ClrLine(int y) +{ + int x; + + for(x=0 ; x<=W ; x++) PutChar(0, _textattr, x, y); +} + +/*---------------------------------------------------------------------------* + * NextLine * + *---------------------------------------------------------------------------*/ +void NextLine() +{ + _wherex = 0; + + if (++_wherey >= H) { + _wherey = 0; + } + + ClrLine(_wherey); +} + +/*---------------------------------------------------------------------------* + * clrscr * + *---------------------------------------------------------------------------*/ +void gpconio_clrscr() +{ + int y; + + for(y=0 ; y<=H ; y++) { + ClrLine(y); + } + + gpconio_gotoxy(0,0); +} + +/*---------------------------------------------------------------------------* + * gp32_put * + *---------------------------------------------------------------------------*/ +void gpconio_put(char _c) +{ + /* We have save some memory with fonts */ + _c = _c & 0x7F; /* no extened chars */ + _c = _c - 0x20; /* no cntr chars */ + PutChar(_c, _textattr, _wherex, _wherey); +} + +/*---------------------------------------------------------------------------* + * gp32_putch * + *---------------------------------------------------------------------------*/ +void gpconio_putch(char _c) +{ + switch (_c) { + case ASCII_LF: + NextLine(); + break; + case ASCII_CR: + gpconio_gotoxy(0, _wherey); + break; + default: + gpconio_put(_c); + if (++_wherex >= W) { + NextLine(); + } + break; + } + return; +} + +/*---------------------------------------------------------------------------* + * gp32_puts * + *---------------------------------------------------------------------------*/ +void gpconio_puts(const char *_str) +{ + while (*_str) { + gpconio_putch(*_str++); + } + return; +} + +/*---------------------------------------------------------------------------* + * gp32_printf * + *---------------------------------------------------------------------------*/ +int gpconio_printf(const char *_format, ...) +{ + char s[256]; + va_list marker; + va_start(marker, _format); + int r = vsprintf(s, _format, marker); + + va_end(marker); + gpconio_puts(s); + return r; +} + + +/*---------------------------------------------------------------------------* + * InitConIO * + *---------------------------------------------------------------------------*/ +void InitConIO() +{ + uint32_t GPHCLK = 66750000; + unsigned short BPPMODE = 11; + unsigned short CLKVAL = (GPHCLK/(83385*2*60))-1; + uint32_t LCDBANK = GP32_VRAM >> 22; + uint32_t LCDBASEU = (GP32_VRAM & 0x3FFFFF) >> 1; + uint32_t LCDBASEL; + unsigned short OFFSIZE = 0; + unsigned short PAGEWIDTH; + + rLCDCON1 = (CLKVAL<<8) | (0<<7) | (3<<5) | (BPPMODE<<1) | (1<<0) ; + rLCDCON2 = 0; + rLCDCON2 = (1<<24) | (319<<14) | (2<<6) | (1<<0) ; + rLCDCON3 = 0; + rLCDCON3 = (6<<19) | (239<<8) | (2<<0) ; + rLCDCON4 = 0; + rLCDCON4 = (0<<24) | (0<<16) | (0<<8) | (4<<0) ; + rLCDCON5 = 0; + rLCDCON5 = ((1<<10) | (1<<9) | (1<<8) | (0<<7) | + (0<<6) | (0<<4) | (0<<2) | (1<<1) | (0<<0)) ; + + LCDBASEL = LCDBASEU + 320*120; + PAGEWIDTH = 120; + + rLCDSADDR1 = (LCDBANK<<21) | (LCDBASEU<<0) ; + rLCDSADDR2 = (LCDBASEL<<0) ; + rLCDSADDR3 = (OFFSIZE<<11) | (PAGEWIDTH<<0) ; + + gp_initButtons(); + gpconio_textattr(0); + gpconio_textcolor(DEF_TEXTCOLOR); + gpconio_textbackground(DEF_TEXTBACKGROUND); + gpconio_clrscr(); +} + + +static void delay_loop(unsigned int count) +{ + int i; + + for(i = 0; i < count; i++) { + i = i; + } + +} + +/*---------------------------------------------------------------------------* + * gp32_getch * + *---------------------------------------------------------------------------*/ +static unsigned char inputch = ASCII_CR; +char gpconio_getch(void) +{ + int keyx; + int key = 0; + + while(1) { + key = gp_getButtons(); + + do { + keyx = gp_getButtons(); + } while (keyx == key); + + switch (key) { + case GP32_KEY_SELECT: + gpconio_put(inputch); + return inputch; + break; + + case GP32_KEY_START: + gpconio_put(' '); + inputch = ASCII_CR; + return inputch; + break; + + case GP32_KEY_A: + inputch = 'A'; + break; + + case GP32_KEY_B: + inputch = 'Z'; + break; + + case GP32_KEY_UP: + if ((inputch-1) >= 0x20) { + inputch--; + } + break; + + case GP32_KEY_DOWN: + if ((inputch+1) <= 0x7E) { + inputch++; + } + break; + + case GP32_KEY_LEFT: + if ((inputch - 0x20) >= 0x20) { + inputch -= 0x20; + } + break; + + case GP32_KEY_RIGHT: + if ((inputch + 0x20) <= 0x7E) { + inputch += 0x20; + } + break; + + case GP32_KEY_R: + inputch = '1'; + break; + + case GP32_KEY_L: + inputch = '9'; + break; + + default: + break; + } + + gpconio_put(inputch); + delay_loop(10000); + } +} diff --git a/c/src/lib/libbsp/arm/gp32/console/console.c b/c/src/lib/libbsp/arm/gp32/console/console.c new file mode 100644 index 0000000000..d0fc3fef30 --- /dev/null +++ b/c/src/lib/libbsp/arm/gp32/console/console.c @@ -0,0 +1,176 @@ +/* + * console.c : ARM GBA BSP + * + * This file contains the GBA console I/O package. + * + * + * Copyright (c) 2004 Markku Puro <markku.puro@kopteri.net> + * + * The license and distribution terms for this file may be + * found in found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * + * $Id$ +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <assert.h> +#include <unistd.h> + +#include <bsp.h> +#include <rtems/bspIo.h> +#include <rtems/libio.h> +#include <rtems/termiostypes.h> +#include <termios.h> +#include <irq.h> +#include <s3c2400.h> +#include <conio.h> + +/* + * BSP initialization + */ + +static int gp32_pollRead(int minor) +{ + return(gpconio_getch()); +} + +static int gp32_write(int minor, const char *buf, int len) +{ + int i; + + for(i = 0; i < len; i++) { + gpconio_putch((unsigned short)buf[i]); + } + + return len; +} + + +/* for printk support */ +BSP_output_char_function_type BSP_output_char = (BSP_output_char_function_type) gpconio_putch; +BSP_polling_getchar_function_type BSP_poll_char = (BSP_polling_getchar_function_type) gpconio_getch; + +/*-------------------------------------------------------------------------+ +| Console device driver INITIALIZE entry point. ++--------------------------------------------------------------------------+ +| Initilizes the I/O console (keyboard + VGA display) driver. ++--------------------------------------------------------------------------*/ +rtems_device_driver +console_initialize(rtems_device_major_number major, + rtems_device_minor_number minor, + void *arg) +{ + rtems_status_code status; + + /* + * Set up TERMIOS + */ + rtems_termios_initialize (); + + /* + * Do device-specific initialization + */ + InitConIO(); + + /* + * Register the device + */ + status = rtems_io_register_name ("/dev/console", major, 0); + if (status != RTEMS_SUCCESSFUL) { + printk("Error registering console device!\n"); + rtems_fatal_error_occurred (status); + } + + return RTEMS_SUCCESSFUL; +} + + +/*-------------------------------------------------------------------------+ +| Console device driver OPEN entry point ++--------------------------------------------------------------------------*/ +rtems_device_driver +console_open(rtems_device_major_number major, + rtems_device_minor_number minor, + void *arg) +{ + rtems_status_code status; + static rtems_termios_callbacks cb = + { + NULL, /* firstOpen */ + NULL, /* lastClose */ + gp32_pollRead, /* pollRead */ + gp32_write, /* write */ + NULL, /* setAttributes */ + NULL, /* stopRemoteTx */ + NULL, /* startRemoteTx */ + TERMIOS_POLLED /* 1 = outputUsesInterrupts */ + }; + + status = rtems_termios_open (major, minor, arg, &cb); + + if(status != RTEMS_SUCCESSFUL) { + printk("Error openning console device\n"); + return status; + } + + return RTEMS_SUCCESSFUL; +} + +/*-------------------------------------------------------------------------+ +| Console device driver CLOSE entry point ++--------------------------------------------------------------------------*/ +rtems_device_driver +console_close(rtems_device_major_number major, + rtems_device_minor_number minor, + void *arg) +{ + rtems_device_driver res = RTEMS_SUCCESSFUL; + + res = rtems_termios_close (arg); + return res; +} + + +/*-------------------------------------------------------------------------+ +| Console device driver READ entry point. ++--------------------------------------------------------------------------+ +| Read characters from the I/O console. We only have stdin. ++--------------------------------------------------------------------------*/ +rtems_device_driver +console_read(rtems_device_major_number major, + rtems_device_minor_number minor, + void *arg) +{ + return rtems_termios_read (arg); + +} + + +/*-------------------------------------------------------------------------+ +| Console device driver WRITE entry point. ++--------------------------------------------------------------------------+ +| Write characters to the I/O console. Stderr and stdout are the same. ++--------------------------------------------------------------------------*/ +rtems_device_driver +console_write(rtems_device_major_number major, + rtems_device_minor_number minor, + void * arg) +{ + return rtems_termios_write (arg); +} + + + +/* + * Handle ioctl request. + */ +rtems_device_driver +console_control(rtems_device_major_number major, + rtems_device_minor_number minor, + void * arg +) +{ + return rtems_termios_ioctl (arg); +} diff --git a/c/src/lib/libbsp/arm/gp32/console/defaultfont.c b/c/src/lib/libbsp/arm/gp32/console/defaultfont.c new file mode 100644 index 0000000000..a4a5082e03 --- /dev/null +++ b/c/src/lib/libbsp/arm/gp32/console/defaultfont.c @@ -0,0 +1,600 @@ +/* + * defaultfont.c : ARM GBA BSP + * + * This file contains default font definitions + * + * + * Copyright (c) 2004 Markku Puro <markku.puro@kopteri.net> + * + * The license and distribution terms for this file may be + * found in found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * + * $Id$ +*/ + +#define X 255 +#define GEN_FONT_DATA(a,b,c,d) ( ((d) << 24) | \ + ((c) << 16) | \ + ((b) << 8) | \ + ((a) << 0) ) + +static const unsigned long font3x5[256][6] = { + { /* ' ' - ascii:0x20 font:0x00 */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,0 ) + },{ /* '!' - ascii:0x21 font:0x01 */ + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,X,0 ) + },{ /* '"' - ascii:0x22 font:0x02 */ + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,0 ) + },{ /* '#' - ascii:0x23 font:0x03 */ + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,0,X ) + },{ /* '$' - ascii:0x24 font:0x04 */ + GEN_FONT_DATA( 0,0,X,X ), + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,0,X,X ), + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ) + },{ /* '%' - ascii:0x25 font:0x05 */ + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,0 ) + },{ /* '&' - ascii:0x26 font:0x06 */ + GEN_FONT_DATA( 0,0,X,X ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,0,X,0 ) + },{ /* ''' - ascii:0x27 font:0x07 */ + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,0 ) + },{ /* '(' - ascii:0x28 font:0x08 */ + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,0,X ) + },{ /* ')' - ascii:0x29 font:0x09 */ + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,0,0 ) + },{ /* '*' - ascii:0x2A font:0x0A */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,0,0,0 ) + },{ /* '+' - ascii:0x2B font:0x0B */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,0,0 ) + },{ /* '´' - ascii:0x2C font:0x0C */ + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,0 ) + },{ /* '-' - ascii:0x2D font:0x0D */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,0 ) + },{ /* '.' - ascii:0x2E font:0x0E */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + },{ /* '/' - ascii:0x2F font:0x0F */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( X,0,0,0 ) + },{ /* '0' - ascii:0x30 font:0x10 */ + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,X ) + },{ /* '1' - ascii:0x31 font:0x11 */ + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,X,X ) + },{ /* '2' - ascii:0x32 font:0x12 */ + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,X,X ) + },{ /* '3' - ascii:0x33 font:0x13 */ + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,0,X,X ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,X,X,X ) + },{ /* '4' - ascii:0x34 font:0x14 */ + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,0,0,X ) + },{ /* '5' - ascii:0x35 font:0x15 */ + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,X,X,X ) + },{ /* '6' - ascii:0x36 font:0x16 */ + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,X ) + },{ /* '7' - ascii:0x37 font:0x17 */ + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,0,X,X ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ) + },{ /* '8' - ascii:0x38 font:0x18 */ + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,X ) + },{ /* '9' - ascii:0x39 font:0x19 */ + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,X,X,X ) + },{ /* ':' - ascii:0x3A font:0x1A */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,0,0 ), + },{ /* ';' - ascii:0x3B font:0x1B */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + },{ /* '<' - ascii:0x3C font:0x1C */ + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,0,X ) + },{ /* '=' - ascii:0x3D font:0x1D */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,0,0,0 ) + },{ /* '>' - ascii:0x3E font:0x1E */ + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,0,0 ) + },{ /* '?' - ascii:0x3F font:0x1F */ + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,0,X,X ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,X,0 ) + },{ /* '@' - ascii:0x40 font:0x20 */ + GEN_FONT_DATA( 0,0,X,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,0,X,X ) + },{ /* 'A' - ascii:0x41 font:0x21 */ + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ) + },{ /* 'B' - ascii:0x42 font:0x22 */ + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,0 ) + },{ /* 'C' - ascii:0x43 font:0x23 */ + GEN_FONT_DATA( 0,0,X,X ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,0,X,X ) + },{ /* 'D' - ascii:0x44 font:0x24 */ + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,0 ), + },{ /* 'E' - ascii:0x45 font:0x25 */ + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,X,X ) + },{ /* 'F' - ascii:0x46 font:0x26 */ + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + },{ /* 'G' - ascii:0x47 font:0x27 */ + GEN_FONT_DATA( 0,0,X,X ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,0,X,X ) + },{ /* 'H' - ascii:0x48 font:0x28 */ + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ) + },{ /* 'I' - ascii:0x49 font:0x29 */ + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ) + },{ /* 'J' - ascii:0x4A font:0x2A */ + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,0,X,0 ) + },{ /* 'K' - ascii:0x4B font:0x2B */ + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,X,0,X ) + },{ /* 'L' - ascii:0x4C font:0x2C */ + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,X,X ) + },{ /* 'M' - ascii:0x4D font:0x2D */ + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ) + },{ /* 'N' - ascii:0x4E font:0x2E */ + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ) + },{ /* 'O' - ascii:0x4F font:0x2F */ + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,0,X,0 ) + },{ /* 'P' - ascii:0x50 font:0x30 */ + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + },{ /* 'Q' - ascii:0x51 font:0x31 */ + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,0,X,X ) + },{ /* 'R' - ascii:0x52 font:0x33 */ + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ) + },{ /* 'S' - ascii:0x53 font:0x33 */ + GEN_FONT_DATA( 0,0,X,X ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,X,X,0 ) + },{ /* 'T' - ascii:0x54 font:0x34 */ + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + },{ /* 'U' - ascii:0x55 font:0x35 */ + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,X ) + },{ /* 'V' - ascii:0x56 font:0x36 */ + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,0,X,0 ), + },{ /* 'W' - ascii:0x57 font:0x37 */ + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,0,X ), + },{ /* 'X' - ascii:0x58 font:0x38 */ + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ) + },{ /* 'Y' - ascii:0x59 font:0x39 */ + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + },{ /* 'Z' - ascii:0x5A font:0x3A */ + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,X,X ) + },{ /* '[' - ascii:0x5B font:0x3B */ + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,X,X ) + },{ /* '\' - ascii:0x5C font:0x3C */ + GEN_FONT_DATA( X,0,0,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,0,0,0 ) + },{ /* ']' - ascii:0x5D font:0x3D */ + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,X,X,X ) + },{ /* '^' - ascii:0x5E font:0x3E */ + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,0 ) + },{ /* '_' - ascii:0x5F font:0x3F */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,X,X,X ) + },{ /* '´' - ascii:0x60 font:0x30 */ + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,0 ) + },{ /* 'a' - ascii:0x31 font:0x31 */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,0,X,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,X ) + },{ /* 'b' - ascii:0x62 font:0x32 */ + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,0 ) + },{ /* 'c' - ascii:0x63 font:0x33 */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,X,X ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,0,X,X ) + },{ /* 'd' - ascii:0x64 font:0x34 */ + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,0,X,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,0,X,X ), + },{ /* 'e' - ascii:0x65 font:0x35 */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,0,X,X ) + },{ /* 'f' - ascii:0x66 font:0x36 */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,X,X ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,0,0 ), + },{ /* 'g' - ascii:0x67 font:0x37 */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,0,X,X ), + GEN_FONT_DATA( 0,X,X,0 ) + },{ /* 'h' - ascii:0x68 font:0x38 */ + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ) + },{ /* 'i' - ascii:0x69 font:0x39 */ + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ) + },{ /* 'j' - ascii:0x6A font:0x3A */ + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,0,X,0 ) + },{ /* 'k' - ascii:0x6B font:0x3B */ + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,X,0,X ) + },{ /* 'l' - ascii:0x6C font:0x3C */ + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,X,X ) + },{ /* 'm' - ascii:0x6D font:0x3D */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ) + },{ /* 'n' - ascii:0x6E font:0x3E */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ) + },{ /* 'o' - ascii:0x6F font:0x6F */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,0,X,0 ) + },{ /* 'p' - ascii:0x70 font:0x40 */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + },{ /* 'q' - ascii:0x71 font:0x41 */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,X,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,0,X,X ), + GEN_FONT_DATA( 0,0,0,X ) + },{ /* 'r' - ascii:0x72 font:0x43 */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,0,0 ) + },{ /* 's' - ascii:0x73 font:0x43 */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,X,X ), + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,0,X,X ), + GEN_FONT_DATA( 0,X,X,0 ) + },{ /* 't' - ascii:0x74 font:0x44 */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,X ), + },{ /* 'u' - ascii:0x75 font:0x45 */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,0,X,X ) + },{ /* 'v' - ascii:0x76 font:0x46 */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,0,X,0 ), + },{ /* 'w' - ascii:0x77 font:0x47 */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,X,0,X ), + },{ /* 'x' - ascii:0x78 font:0x48 */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,0,X ) + },{ /* 'y' - ascii:0x79 font:0x49 */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,X,0,X ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + },{ /* 'z' - ascii:0x7A font:0x4A */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,X,X ) + },{ /* '{' - ascii:0x7B font:0x4B */ + GEN_FONT_DATA( 0,0,X,X ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,X,X ) + },{ /* '\' - ascii:0x7C font:0x4C */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,0,0,0 ) + },{ /* '}' - ascii:0x7D font:0x4D */ + GEN_FONT_DATA( 0,X,X,0 ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,0,X,0 ), + GEN_FONT_DATA( 0,X,X,0 ) + },{ /* '~' - ascii:0x7E font:0x4E */ + GEN_FONT_DATA( 0,0,0,0 ), + GEN_FONT_DATA( 0,X,0,0 ), + GEN_FONT_DATA( 0,X,X,X ), + GEN_FONT_DATA( 0,0,0,X ), + GEN_FONT_DATA( 0,0,0,0 ) + },{ /* DEL - ascii:0x7F font:0x4F */ + GEN_FONT_DATA( X,X,X,X ), + GEN_FONT_DATA( X,X,X,X ), + GEN_FONT_DATA( X,X,X,X ), + GEN_FONT_DATA( X,X,X,X ), + GEN_FONT_DATA( X,X,X,X ) + } +}; |