diff --git a/wled00/FX.cpp b/wled00/FX.cpp index 21dd802d..312a92e5 100644 --- a/wled00/FX.cpp +++ b/wled00/FX.cpp @@ -596,10 +596,12 @@ uint16_t WS2812FX::mode_sparkle(void) { if (it != SEGENV.step) { SEGENV.aux0 = random16(SEGLEN); // aux0 stores the random led index + SEGENV.aux1 = random16(0,SEGMENT.virtualHeight()-1); SEGENV.step = it; } - setPixelColor(SEGENV.aux0, SEGCOLOR(0)); + if (isMatrix) setPixelColorXY(SEGENV.aux0, SEGENV.aux1, SEGCOLOR(0)); + else setPixelColor(SEGENV.aux0, SEGCOLOR(0)); return FRAMETIME; } static const char *_data_FX_MODE_SPARKLE PROGMEM = "Sparkle@!,;!,!,;!"; @@ -616,7 +618,8 @@ uint16_t WS2812FX::mode_flash_sparkle(void) { if (now - SEGENV.aux0 > SEGENV.step) { if(random8((255-SEGMENT.intensity) >> 4) == 0) { - setPixelColor(random16(SEGLEN), SEGCOLOR(1)); //flash + if (isMatrix) setPixelColorXY(random16(SEGLEN), random16(0,SEGMENT.virtualHeight()-1), SEGCOLOR(1)); + else setPixelColor(random16(SEGLEN), SEGCOLOR(1)); //flash } SEGENV.step = now; SEGENV.aux0 = 255-SEGMENT.speed; @@ -638,7 +641,8 @@ uint16_t WS2812FX::mode_hyper_sparkle(void) { if (now - SEGENV.aux0 > SEGENV.step) { if(random8((255-SEGMENT.intensity) >> 4) == 0) { for(uint16_t i = 0; i < MAX(1, SEGLEN/3); i++) { - setPixelColor(random16(SEGLEN), SEGCOLOR(1)); + if (isMatrix) setPixelColorXY(random16(SEGLEN), random16(0,SEGMENT.virtualHeight()-1), SEGCOLOR(1)); + else setPixelColor(random16(SEGLEN), SEGCOLOR(1)); } } SEGENV.step = now; @@ -2869,10 +2873,14 @@ uint16_t WS2812FX::mode_glitter() { mode_palette(); - if (SEGMENT.intensity > random8()) - { - setPixelColor(random16(SEGLEN), ULTRAWHITE); - } + if (isMatrix) { + uint16_t height = SEGMENT.virtualHeight(); + uint16_t width = SEGMENT.virtualWidth(); + for (uint16_t i = 0; i random8()) setPixelColorXY(random16(width-1), i, ULTRAWHITE); + } + } else + if (SEGMENT.intensity > random8()) setPixelColor(random16(SEGLEN), ULTRAWHITE); return FRAMETIME; } @@ -3691,10 +3699,15 @@ uint16_t WS2812FX::mode_solid_glitter() { fill(SEGCOLOR(0)); - if (SEGMENT.intensity > random8()) - { - setPixelColor(random16(SEGLEN), ULTRAWHITE); - } + if (isMatrix) { + uint16_t height = SEGMENT.virtualHeight(); + uint16_t width = SEGMENT.virtualWidth(); + for (uint16_t i = 0; i random8()) setPixelColorXY(random16(width-1), i, ULTRAWHITE); + } + } else + if (SEGMENT.intensity > random8()) setPixelColor(random16(SEGLEN), ULTRAWHITE); + return FRAMETIME; } static const char *_data_FX_MODE_SOLID_GLITTER PROGMEM = "Solid Glitter@,!;!,,;0"; @@ -5153,12 +5166,12 @@ uint16_t WS2812FX::mode_2DPlasmaball(void) { // By: Stepko htt double t = millis() / (33 - SEGMENT.speed/8); for (uint16_t i = 0; i < width; i++) { uint16_t thisVal = inoise8(i * 30, t, t); - uint16_t thisMax = map(thisVal, 0, 255, 0, width); + uint16_t thisMax = map(thisVal, 0, 255, 0, width-1); for (uint16_t j = 0; j < height; j++) { uint16_t thisVal_ = inoise8(t, j * 30, t); - uint16_t thisMax_ = map(thisVal_, 0, 255, 0, height); - uint16_t x = (i + thisMax_ - (width * 2 - width) / 2); - uint16_t y = (j + thisMax - (width * 2 - width) / 2); + uint16_t thisMax_ = map(thisVal_, 0, 255, 0, height-1); + uint16_t x = (i + thisMax_ - width / 2); + uint16_t y = (j + thisMax - width / 2); uint16_t cx = (i + thisMax_); uint16_t cy = (j + thisMax); @@ -5167,7 +5180,7 @@ uint16_t WS2812FX::mode_2DPlasmaball(void) { // By: Stepko htt (width - cx == 0) || (width - 1 - cx == 0) || ((height - cy == 0) || - (height - 1 - cy == 0)) ? ColorFromPalette(currentPalette, beat8(5), thisVal, LINEARBLEND) : CHSV(0, 0, 0); + (height - 1 - cy == 0)) ? ColorFromPalette(currentPalette, beat8(5), thisVal, LINEARBLEND) : CRGB::Black; } } blur2d(leds, 4); @@ -5181,10 +5194,9 @@ static const char *_data_FX_MODE_PLASMA_BALL PROGMEM = "2D Plasma Ball@Speed;!,! //////////////////////////////// // 2D Polar Lights // //////////////////////////////// -static float fmap(const float x, const float in_min, const float in_max, const float out_min, const float out_max) { - return (out_max - out_min) * (x - in_min) / (in_max - in_min) + out_min; -} - +//static float fmap(const float x, const float in_min, const float in_max, const float out_min, const float out_max) { +// return (out_max - out_min) * (x - in_min) / (in_max - in_min) + out_min; +//} uint16_t WS2812FX::mode_2DPolarLights(void) { // By: Kostyantyn Matviyevskyy https://editor.soulmatelights.com/gallery/762-polar-lights , Modified by: Andrew Tuline if (!isMatrix) return mode_static(); // not a 2D set-up @@ -5739,6 +5751,8 @@ uint16_t WS2812FX::mode_2Dghostrider(void) { CRGB *leds = reinterpret_cast(SEGENV.data); lighter_t *lighter = reinterpret_cast(SEGENV.data + dataSize); + const int maxLighters = min(width+height,LIGHTERS_AM); + if (SEGENV.call == 0) { fill_solid(leds, CRGB::Black); randomSeed(now); @@ -5746,7 +5760,7 @@ uint16_t WS2812FX::mode_2Dghostrider(void) { lighter->Vspeed = 5; lighter->gPosX = (width/2) * 10; lighter->gPosY = (height/2) * 10; - for (byte i = 0; i < LIGHTERS_AM; i++) { + for (byte i = 0; i < maxLighters; i++) { lighter->lightersPosX[i] = lighter->gPosX; lighter->lightersPosY[i] = lighter->gPosY + i; lighter->time[i] = i * 2; @@ -5768,7 +5782,7 @@ uint16_t WS2812FX::mode_2Dghostrider(void) { if (lighter->gPosX > (width - 1) * 10) lighter->gPosX = 0; if (lighter->gPosY < 0) lighter->gPosY = (height - 1) * 10; if (lighter->gPosY > (height - 1) * 10) lighter->gPosY = 0; - for (byte i = 0; i < LIGHTERS_AM; i++) { + for (byte i = 0; i < maxLighters; i++) { lighter->time[i] += random8(5, 20); if (lighter->time[i] >= 255 || (lighter->lightersPosX[i] <= 0) || @@ -5900,33 +5914,38 @@ uint16_t WS2812FX::mode_2Dfloatingblobs(void) { static const char *_data_FX_MODE_BLOBS PROGMEM = "2D Blobs@!,# blobs;!,!,!;!"; -// letters for scrolling text -static unsigned char A[] = {B00000000,B00111100,B01100110,B01100110,B01111110,B01100110,B01100110,B01100110}; -static unsigned char B[] = {B01111000,B01001000,B01001000,B01110000,B01001000,B01000100,B01000100,B01111100}; -static unsigned char C[] = {B00000000,B00011110,B00100000,B01000000,B01000000,B01000000,B00100000,B00011110}; -static unsigned char D[] = {B00000000,B00111000,B00100100,B00100010,B00100010,B00100100,B00111000,B00000000}; -static unsigned char E[] = {B00000000,B00111100,B00100000,B00111000,B00100000,B00100000,B00111100,B00000000}; -static unsigned char F[] = {B00000000,B00111100,B00100000,B00111000,B00100000,B00100000,B00100000,B00000000}; -static unsigned char G[] = {B00000000,B00111110,B00100000,B00100000,B00101110,B00100010,B00111110,B00000000}; -static unsigned char H[] = {B00000000,B00100100,B00100100,B00111100,B00100100,B00100100,B00100100,B00000000}; -static unsigned char I[] = {B00000000,B00111000,B00010000,B00010000,B00010000,B00010000,B00111000,B00000000}; -static unsigned char J[] = {B00000000,B00011100,B00001000,B00001000,B00001000,B00101000,B00111000,B00000000}; -static unsigned char K[] = {B00000000,B00100100,B00101000,B00110000,B00101000,B00100100,B00100100,B00000000}; -static unsigned char L[] = {B00000000,B00100000,B00100000,B00100000,B00100000,B00100000,B00111100,B00000000}; -static unsigned char M[] = {B00000000,B00000000,B01000100,B10101010,B10010010,B10000010,B10000010,B00000000}; -static unsigned char N[] = {B00000000,B00100010,B00110010,B00101010,B00100110,B00100010,B00000000,B00000000}; -static unsigned char O[] = {B00000000,B00111100,B01000010,B01000010,B01000010,B01000010,B00111100,B00000000}; -static unsigned char P[] = {B00000000,B00111000,B00100100,B00100100,B00111000,B00100000,B00100000,B00000000}; -static unsigned char Q[] = {B00000000,B00111100,B01000010,B01000010,B01000010,B01000110,B00111110,B00000001}; -static unsigned char R[] = {B00000000,B00111000,B00100100,B00100100,B00111000,B00100100,B00100100,B00000000}; -static unsigned char S[] = {B00000000,B00111100,B00100000,B00111100,B00000100,B00000100,B00111100,B00000000}; -static unsigned char T[] = {B00000000,B01111100,B00010000,B00010000,B00010000,B00010000,B00010000,B00000000}; -static unsigned char U[] = {B00000000,B01000010,B01000010,B01000010,B01000010,B00100100,B00011000,B00000000}; -static unsigned char V[] = {B00000000,B00100010,B00100010,B00100010,B00010100,B00010100,B00001000,B00000000}; -static unsigned char W[] = {B00000000,B10000010,B10010010,B01010100,B01010100,B00101000,B00000000,B00000000}; -static unsigned char X[] = {B00000000,B01000010,B00100100,B00011000,B00011000,B00100100,B01000010,B00000000}; -static unsigned char Y[] = {B00000000,B01000100,B00101000,B00010000,B00010000,B00010000,B00010000,B00000000}; -static unsigned char Z[] = {B00000000,B00111100,B00000100,B00001000,B00010000,B00100000,B00111100,B00000000}; +//////////////////////////// +// 2D Scrolling text // +//////////////////////////// +uint16_t WS2812FX::mode_2Dscrollingtext(void) { + if (!isMatrix) return mode_static(); // not a 2D set-up + + uint16_t width = SEGMENT.virtualWidth(); + uint16_t height = SEGMENT.virtualHeight(); + + const int letterWidth = 6; + const int letterHeight = 8; + const int yoffset = map(SEGMENT.intensity, 0, 255, -height/2, height/2) + (height-letterHeight)/2; + const char *text = PSTR("Segment name"); // fallback if empty segment name + if (strlen(SEGMENT.name)) text = SEGMENT.name; + const int numberOfLetters = strlen(text); + + if (SEGENV.step < now) { + ++SEGENV.aux0 %= (numberOfLetters * letterWidth) + width; // offset + ++SEGENV.aux1 &= 0xFF; // color shift + SEGENV.step = now + map(SEGMENT.speed, 0, 255, 10*FRAMETIME_FIXED, 2*FRAMETIME_FIXED); + } + + fade_out(255 - (SEGMENT.custom1>>5)); // fade to background color + + for (uint16_t i = 0; i < numberOfLetters; i++) { + if (int(width) - int(SEGENV.aux0) + letterWidth*(i+1) < 0) continue; // don't draw characters off-screen + drawCharacter(text[i], int(width) - int(SEGENV.aux0) + letterWidth*i, yoffset, color_from_palette(SEGENV.aux1, false, PALETTE_SOLID_WRAP, 0)); + } + + return FRAMETIME; +} +static const char *_data_FX_MODE_SCROLL_TEXT PROGMEM = "2D Scrolling Text@!,Y Offset,Trail;!,!;!"; ////////////////////////////////////////////////////////////////////////////////////////// @@ -6076,6 +6095,7 @@ const char *WS2812FX::_modeData[] = { _data_FX_MODE_SPACESHIPS, _data_FX_MODE_CRAZYBEES, _data_FX_MODE_GHOST_RIDER, - _data_FX_MODE_BLOBS + _data_FX_MODE_BLOBS, + _data_FX_MODE_SCROLL_TEXT }; diff --git a/wled00/FX.h b/wled00/FX.h index ada21688..5687bd53 100644 --- a/wled00/FX.h +++ b/wled00/FX.h @@ -265,8 +265,9 @@ #define FX_MODE_CRAZYBEES 142 #define FX_MODE_GHOST_RIDER 143 #define FX_MODE_BLOBS 144 +#define FX_MODE_SCROLL_TEXT 145 -#define MODE_COUNT 145 +#define MODE_COUNT 146 class WS2812FX { @@ -663,6 +664,7 @@ class WS2812FX { _mode[FX_MODE_CRAZYBEES] = &WS2812FX::mode_2Dcrazybees; _mode[FX_MODE_GHOST_RIDER] = &WS2812FX::mode_2Dghostrider; _mode[FX_MODE_BLOBS] = &WS2812FX::mode_2Dfloatingblobs; + _mode[FX_MODE_SCROLL_TEXT] = &WS2812FX::mode_2Dscrollingtext; _brightness = DEFAULT_BRIGHTNESS; currentPalette = CRGBPalette16(CRGB::Black); @@ -931,11 +933,13 @@ class WS2812FX { nscale8(CRGB* leds, uint8_t scale), setPixels(CRGB* leds), drawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, CRGB c, CRGB *leds = nullptr), + drawCharacter(unsigned char chr, int16_t x, int16_t y, CRGB color, CRGB *leds = nullptr), wu_pixel(CRGB *leds, uint32_t x, uint32_t y, CRGB c); inline void setPixelColorXY(uint16_t x, uint16_t y, uint32_t c) { setPixelColorXY(x, y, byte(c>>16), byte(c>>8), byte(c), byte(c>>24)); } inline void setPixelColorXY(uint16_t x, uint16_t y, CRGB c) { setPixelColorXY(x, y, c.red, c.green, c.blue); } inline void drawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint32_t c) { drawLine(x0, y0, x1, y1, CRGB(byte(c>>16), byte(c>>8), byte(c))); } + inline void drawCharacter(unsigned char chr, int16_t x, int16_t y, uint32_t c) { drawCharacter(chr, x, y, CRGB(byte(c>>16), byte(c>>8), byte(c))); } uint16_t XY(uint16_t, uint16_t), @@ -972,7 +976,8 @@ class WS2812FX { mode_2Dspaceships(void), mode_2Dcrazybees(void), mode_2Dghostrider(void), - mode_2Dfloatingblobs(void); + mode_2Dfloatingblobs(void), + mode_2Dscrollingtext(void); // end 2D support diff --git a/wled00/FX_2Dfcn.cpp b/wled00/FX_2Dfcn.cpp index 140ed974..3c844342 100644 --- a/wled00/FX_2Dfcn.cpp +++ b/wled00/FX_2Dfcn.cpp @@ -370,6 +370,3102 @@ void WS2812FX::drawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, CRGB } } +// font curtesy of https://github.com/idispatch/raster-fonts +static unsigned char console_font_6x8[] PROGMEM = { + + /* + * code=0, hex=0x00, ascii="^@" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=1, hex=0x01, ascii="^A" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x6C, /* 011011 */ + 0x44, /* 010001 */ + 0x54, /* 010101 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=2, hex=0x02, ascii="^B" + */ + 0x38, /* 001110 */ + 0x7C, /* 011111 */ + 0x54, /* 010101 */ + 0x7C, /* 011111 */ + 0x44, /* 010001 */ + 0x7C, /* 011111 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=3, hex=0x03, ascii="^C" + */ + 0x00, /* 000000 */ + 0x28, /* 001010 */ + 0x7C, /* 011111 */ + 0x7C, /* 011111 */ + 0x7C, /* 011111 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=4, hex=0x04, ascii="^D" + */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x7C, /* 011111 */ + 0x7C, /* 011111 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=5, hex=0x05, ascii="^E" + */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x7C, /* 011111 */ + 0x7C, /* 011111 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=6, hex=0x06, ascii="^F" + */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x7C, /* 011111 */ + 0x7C, /* 011111 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=7, hex=0x07, ascii="^G" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=8, hex=0x08, ascii="^H" + */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xCC, /* 110011 */ + 0xCC, /* 110011 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + + /* + * code=9, hex=0x09, ascii="^I" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=10, hex=0x0A, ascii="^J" + */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0x84, /* 100001 */ + 0xB4, /* 101101 */ + 0xB4, /* 101101 */ + 0x84, /* 100001 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + + /* + * code=11, hex=0x0B, ascii="^K" + */ + 0x00, /* 000000 */ + 0x1C, /* 000111 */ + 0x0C, /* 000011 */ + 0x34, /* 001101 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=12, hex=0x0C, ascii="^L" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=13, hex=0x0D, ascii="^M" + */ + 0x10, /* 000100 */ + 0x18, /* 000110 */ + 0x14, /* 000101 */ + 0x10, /* 000100 */ + 0x30, /* 001100 */ + 0x70, /* 011100 */ + 0x60, /* 011000 */ + 0x00, /* 000000 */ + + /* + * code=14, hex=0x0E, ascii="^N" + */ + 0x0C, /* 000011 */ + 0x34, /* 001101 */ + 0x2C, /* 001011 */ + 0x34, /* 001101 */ + 0x2C, /* 001011 */ + 0x6C, /* 011011 */ + 0x60, /* 011000 */ + 0x00, /* 000000 */ + + /* + * code=15, hex=0x0F, ascii="^O" + */ + 0x00, /* 000000 */ + 0x54, /* 010101 */ + 0x38, /* 001110 */ + 0x6C, /* 011011 */ + 0x38, /* 001110 */ + 0x54, /* 010101 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=16, hex=0x10, ascii="^P" + */ + 0x20, /* 001000 */ + 0x30, /* 001100 */ + 0x38, /* 001110 */ + 0x3C, /* 001111 */ + 0x38, /* 001110 */ + 0x30, /* 001100 */ + 0x20, /* 001000 */ + 0x00, /* 000000 */ + + /* + * code=17, hex=0x11, ascii="^Q" + */ + 0x08, /* 000010 */ + 0x18, /* 000110 */ + 0x38, /* 001110 */ + 0x78, /* 011110 */ + 0x38, /* 001110 */ + 0x18, /* 000110 */ + 0x08, /* 000010 */ + 0x00, /* 000000 */ + + /* + * code=18, hex=0x12, ascii="^R" + */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x7C, /* 011111 */ + 0x10, /* 000100 */ + 0x7C, /* 011111 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=19, hex=0x13, ascii="^S" + */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + + /* + * code=20, hex=0x14, ascii="^T" + */ + 0x3C, /* 001111 */ + 0x54, /* 010101 */ + 0x54, /* 010101 */ + 0x34, /* 001101 */ + 0x14, /* 000101 */ + 0x14, /* 000101 */ + 0x14, /* 000101 */ + 0x00, /* 000000 */ + + /* + * code=21, hex=0x15, ascii="^U" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x30, /* 001100 */ + 0x28, /* 001010 */ + 0x18, /* 000110 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=22, hex=0x16, ascii="^V" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + + /* + * code=23, hex=0x17, ascii="^W" + */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x7C, /* 011111 */ + 0x10, /* 000100 */ + 0x7C, /* 011111 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + + /* + * code=24, hex=0x18, ascii="^X" + */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x7C, /* 011111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=25, hex=0x19, ascii="^Y" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x7C, /* 011111 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=26, hex=0x1A, ascii="^Z" + */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x18, /* 000110 */ + 0x7C, /* 011111 */ + 0x18, /* 000110 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=27, hex=0x1B, ascii="^[" + */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x30, /* 001100 */ + 0x7C, /* 011111 */ + 0x30, /* 001100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=28, hex=0x1C, ascii="^\" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + + /* + * code=29, hex=0x1D, ascii="^]" + */ + 0x00, /* 000000 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x7C, /* 011111 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=30, hex=0x1E, ascii="^^" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x38, /* 001110 */ + 0x7C, /* 011111 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=31, hex=0x1F, ascii="^_" + */ + 0x7C, /* 011111 */ + 0x7C, /* 011111 */ + 0x38, /* 001110 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=32, hex=0x20, ascii=" " + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=33, hex=0x21, ascii="!" + */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=34, hex=0x22, ascii=""" + */ + 0x6C, /* 011011 */ + 0x6C, /* 011011 */ + 0x48, /* 010010 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=35, hex=0x23, ascii="#" + */ + 0x00, /* 000000 */ + 0x28, /* 001010 */ + 0x7C, /* 011111 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x7C, /* 011111 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + + /* + * code=36, hex=0x24, ascii="$" + */ + 0x20, /* 001000 */ + 0x38, /* 001110 */ + 0x40, /* 010000 */ + 0x30, /* 001100 */ + 0x08, /* 000010 */ + 0x70, /* 011100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=37, hex=0x25, ascii="%" + */ + 0x64, /* 011001 */ + 0x64, /* 011001 */ + 0x08, /* 000010 */ + 0x10, /* 000100 */ + 0x20, /* 001000 */ + 0x4C, /* 010011 */ + 0x4C, /* 010011 */ + 0x00, /* 000000 */ + + /* + * code=38, hex=0x26, ascii="&" + */ + 0x20, /* 001000 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x20, /* 001000 */ + 0x54, /* 010101 */ + 0x48, /* 010010 */ + 0x34, /* 001101 */ + 0x00, /* 000000 */ + + /* + * code=39, hex=0x27, ascii="'" + */ + 0x30, /* 001100 */ + 0x30, /* 001100 */ + 0x20, /* 001000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=40, hex=0x28, ascii="(" + */ + 0x10, /* 000100 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=41, hex=0x29, ascii=")" + */ + 0x20, /* 001000 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x20, /* 001000 */ + 0x00, /* 000000 */ + + /* + * code=42, hex=0x2A, ascii="*" + */ + 0x00, /* 000000 */ + 0x28, /* 001010 */ + 0x38, /* 001110 */ + 0x7C, /* 011111 */ + 0x38, /* 001110 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=43, hex=0x2B, ascii="+" + */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x7C, /* 011111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=44, hex=0x2C, ascii="," + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x30, /* 001100 */ + 0x20, /* 001000 */ + + /* + * code=45, hex=0x2D, ascii="-" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=46, hex=0x2E, ascii="." + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=47, hex=0x2F, ascii="/" + */ + 0x00, /* 000000 */ + 0x04, /* 000001 */ + 0x08, /* 000010 */ + 0x10, /* 000100 */ + 0x20, /* 001000 */ + 0x40, /* 010000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=48, hex=0x30, ascii="0" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x4C, /* 010011 */ + 0x54, /* 010101 */ + 0x64, /* 011001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=49, hex=0x31, ascii="1" + */ + 0x10, /* 000100 */ + 0x30, /* 001100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=50, hex=0x32, ascii="2" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x04, /* 000001 */ + 0x18, /* 000110 */ + 0x20, /* 001000 */ + 0x40, /* 010000 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + + /* + * code=51, hex=0x33, ascii="3" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x04, /* 000001 */ + 0x38, /* 001110 */ + 0x04, /* 000001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=52, hex=0x34, ascii="4" + */ + 0x08, /* 000010 */ + 0x18, /* 000110 */ + 0x28, /* 001010 */ + 0x48, /* 010010 */ + 0x7C, /* 011111 */ + 0x08, /* 000010 */ + 0x08, /* 000010 */ + 0x00, /* 000000 */ + + /* + * code=53, hex=0x35, ascii="5" + */ + 0x7C, /* 011111 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x78, /* 011110 */ + 0x04, /* 000001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=54, hex=0x36, ascii="6" + */ + 0x18, /* 000110 */ + 0x20, /* 001000 */ + 0x40, /* 010000 */ + 0x78, /* 011110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=55, hex=0x37, ascii="7" + */ + 0x7C, /* 011111 */ + 0x04, /* 000001 */ + 0x08, /* 000010 */ + 0x10, /* 000100 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x00, /* 000000 */ + + /* + * code=56, hex=0x38, ascii="8" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=57, hex=0x39, ascii="9" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x04, /* 000001 */ + 0x08, /* 000010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=58, hex=0x3A, ascii=":" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=59, hex=0x3B, ascii=";" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x30, /* 001100 */ + 0x20, /* 001000 */ + + /* + * code=60, hex=0x3C, ascii="<" + */ + 0x08, /* 000010 */ + 0x10, /* 000100 */ + 0x20, /* 001000 */ + 0x40, /* 010000 */ + 0x20, /* 001000 */ + 0x10, /* 000100 */ + 0x08, /* 000010 */ + 0x00, /* 000000 */ + + /* + * code=61, hex=0x3D, ascii="=" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=62, hex=0x3E, ascii=">" + */ + 0x20, /* 001000 */ + 0x10, /* 000100 */ + 0x08, /* 000010 */ + 0x04, /* 000001 */ + 0x08, /* 000010 */ + 0x10, /* 000100 */ + 0x20, /* 001000 */ + 0x00, /* 000000 */ + + /* + * code=63, hex=0x3F, ascii="?" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x04, /* 000001 */ + 0x18, /* 000110 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=64, hex=0x40, ascii="@" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x5C, /* 010111 */ + 0x54, /* 010101 */ + 0x5C, /* 010111 */ + 0x40, /* 010000 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=65, hex=0x41, ascii="A" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x7C, /* 011111 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x00, /* 000000 */ + + /* + * code=66, hex=0x42, ascii="B" + */ + 0x78, /* 011110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + + /* + * code=67, hex=0x43, ascii="C" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=68, hex=0x44, ascii="D" + */ + 0x78, /* 011110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + + /* + * code=69, hex=0x45, ascii="E" + */ + 0x7C, /* 011111 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x78, /* 011110 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + + /* + * code=70, hex=0x46, ascii="F" + */ + 0x7C, /* 011111 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x78, /* 011110 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x00, /* 000000 */ + + /* + * code=71, hex=0x47, ascii="G" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x40, /* 010000 */ + 0x5C, /* 010111 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x00, /* 000000 */ + + /* + * code=72, hex=0x48, ascii="H" + */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x7C, /* 011111 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x00, /* 000000 */ + + /* + * code=73, hex=0x49, ascii="I" + */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=74, hex=0x4A, ascii="J" + */ + 0x04, /* 000001 */ + 0x04, /* 000001 */ + 0x04, /* 000001 */ + 0x04, /* 000001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=75, hex=0x4B, ascii="K" + */ + 0x44, /* 010001 */ + 0x48, /* 010010 */ + 0x50, /* 010100 */ + 0x60, /* 011000 */ + 0x50, /* 010100 */ + 0x48, /* 010010 */ + 0x44, /* 010001 */ + 0x00, /* 000000 */ + + /* + * code=76, hex=0x4C, ascii="L" + */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + + /* + * code=77, hex=0x4D, ascii="M" + */ + 0x44, /* 010001 */ + 0x6C, /* 011011 */ + 0x54, /* 010101 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x00, /* 000000 */ + + /* + * code=78, hex=0x4E, ascii="N" + */ + 0x44, /* 010001 */ + 0x64, /* 011001 */ + 0x54, /* 010101 */ + 0x4C, /* 010011 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x00, /* 000000 */ + + /* + * code=79, hex=0x4F, ascii="O" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=80, hex=0x50, ascii="P" + */ + 0x78, /* 011110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x00, /* 000000 */ + + /* + * code=81, hex=0x51, ascii="Q" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x54, /* 010101 */ + 0x48, /* 010010 */ + 0x34, /* 001101 */ + 0x00, /* 000000 */ + + /* + * code=82, hex=0x52, ascii="R" + */ + 0x78, /* 011110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x48, /* 010010 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x00, /* 000000 */ + + /* + * code=83, hex=0x53, ascii="S" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x40, /* 010000 */ + 0x38, /* 001110 */ + 0x04, /* 000001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=84, hex=0x54, ascii="T" + */ + 0x7C, /* 011111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=85, hex=0x55, ascii="U" + */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=86, hex=0x56, ascii="V" + */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x28, /* 001010 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=87, hex=0x57, ascii="W" + */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x54, /* 010101 */ + 0x54, /* 010101 */ + 0x54, /* 010101 */ + 0x54, /* 010101 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + + /* + * code=88, hex=0x58, ascii="X" + */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x28, /* 001010 */ + 0x10, /* 000100 */ + 0x28, /* 001010 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x00, /* 000000 */ + + /* + * code=89, hex=0x59, ascii="Y" + */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x28, /* 001010 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=90, hex=0x5A, ascii="Z" + */ + 0x78, /* 011110 */ + 0x08, /* 000010 */ + 0x10, /* 000100 */ + 0x20, /* 001000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + + /* + * code=91, hex=0x5B, ascii="[" + */ + 0x38, /* 001110 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=92, hex=0x5C, ascii="\" + */ + 0x00, /* 000000 */ + 0x40, /* 010000 */ + 0x20, /* 001000 */ + 0x10, /* 000100 */ + 0x08, /* 000010 */ + 0x04, /* 000001 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=93, hex=0x5D, ascii="]" + */ + 0x38, /* 001110 */ + 0x08, /* 000010 */ + 0x08, /* 000010 */ + 0x08, /* 000010 */ + 0x08, /* 000010 */ + 0x08, /* 000010 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=94, hex=0x5E, ascii="^" + */ + 0x10, /* 000100 */ + 0x28, /* 001010 */ + 0x44, /* 010001 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=95, hex=0x5F, ascii="_" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + + /* + * code=96, hex=0x60, ascii="`" + */ + 0x30, /* 001100 */ + 0x30, /* 001100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=97, hex=0x61, ascii="a" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x04, /* 000001 */ + 0x3C, /* 001111 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x00, /* 000000 */ + + /* + * code=98, hex=0x62, ascii="b" + */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x78, /* 011110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + + /* + * code=99, hex=0x63, ascii="c" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x40, /* 010000 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=100, hex=0x64, ascii="d" + */ + 0x04, /* 000001 */ + 0x04, /* 000001 */ + 0x3C, /* 001111 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x00, /* 000000 */ + + /* + * code=101, hex=0x65, ascii="e" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x40, /* 010000 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=102, hex=0x66, ascii="f" + */ + 0x18, /* 000110 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x78, /* 011110 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x00, /* 000000 */ + + /* + * code=103, hex=0x67, ascii="g" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x3C, /* 001111 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x04, /* 000001 */ + 0x38, /* 001110 */ + + /* + * code=104, hex=0x68, ascii="h" + */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x70, /* 011100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x00, /* 000000 */ + + /* + * code=105, hex=0x69, ascii="i" + */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x18, /* 000110 */ + 0x00, /* 000000 */ + + /* + * code=106, hex=0x6A, ascii="j" + */ + 0x08, /* 000010 */ + 0x00, /* 000000 */ + 0x18, /* 000110 */ + 0x08, /* 000010 */ + 0x08, /* 000010 */ + 0x08, /* 000010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + + /* + * code=107, hex=0x6B, ascii="k" + */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x48, /* 010010 */ + 0x50, /* 010100 */ + 0x60, /* 011000 */ + 0x50, /* 010100 */ + 0x48, /* 010010 */ + 0x00, /* 000000 */ + + /* + * code=108, hex=0x6C, ascii="l" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x18, /* 000110 */ + 0x00, /* 000000 */ + + /* + * code=109, hex=0x6D, ascii="m" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x68, /* 011010 */ + 0x54, /* 010101 */ + 0x54, /* 010101 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x00, /* 000000 */ + + /* + * code=110, hex=0x6E, ascii="n" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x70, /* 011100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x00, /* 000000 */ + + /* + * code=111, hex=0x6F, ascii="o" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=112, hex=0x70, ascii="p" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x40, /* 010000 */ + + /* + * code=113, hex=0x71, ascii="q" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x3C, /* 001111 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x04, /* 000001 */ + + /* + * code=114, hex=0x72, ascii="r" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x58, /* 010110 */ + 0x24, /* 001001 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x70, /* 011100 */ + 0x00, /* 000000 */ + + /* + * code=115, hex=0x73, ascii="s" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x40, /* 010000 */ + 0x38, /* 001110 */ + 0x04, /* 000001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=116, hex=0x74, ascii="t" + */ + 0x00, /* 000000 */ + 0x20, /* 001000 */ + 0x78, /* 011110 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x28, /* 001010 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=117, hex=0x75, ascii="u" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x58, /* 010110 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + + /* + * code=118, hex=0x76, ascii="v" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x28, /* 001010 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=119, hex=0x77, ascii="w" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x54, /* 010101 */ + 0x7C, /* 011111 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + + /* + * code=120, hex=0x78, ascii="x" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x00, /* 000000 */ + + /* + * code=121, hex=0x79, ascii="y" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x60, /* 011000 */ + + /* + * code=122, hex=0x7A, ascii="z" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x08, /* 000010 */ + 0x30, /* 001100 */ + 0x40, /* 010000 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + + /* + * code=123, hex=0x7B, ascii="{" + */ + 0x18, /* 000110 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x60, /* 011000 */ + 0x20, /* 001000 */ + 0x20, /* 001000 */ + 0x18, /* 000110 */ + 0x00, /* 000000 */ + + /* + * code=124, hex=0x7C, ascii="|" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=125, hex=0x7D, ascii="}" + */ + 0x30, /* 001100 */ + 0x08, /* 000010 */ + 0x08, /* 000010 */ + 0x0C, /* 000011 */ + 0x08, /* 000010 */ + 0x08, /* 000010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=126, hex=0x7E, ascii="~" + */ + 0x28, /* 001010 */ + 0x50, /* 010100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=127, hex=0x7F, ascii="^?" + */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x6C, /* 011011 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=128, hex=0x80, ascii="!^@" + */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x30, /* 001100 */ + + /* + * code=129, hex=0x81, ascii="!^A" + */ + 0x48, /* 010010 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x58, /* 010110 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + + /* + * code=130, hex=0x82, ascii="!^B" + */ + 0x0C, /* 000011 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x40, /* 010000 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=131, hex=0x83, ascii="!^C" + */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x04, /* 000001 */ + 0x3C, /* 001111 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x00, /* 000000 */ + + /* + * code=132, hex=0x84, ascii="!^D" + */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x04, /* 000001 */ + 0x3C, /* 001111 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x00, /* 000000 */ + + /* + * code=133, hex=0x85, ascii="!^E" + */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x04, /* 000001 */ + 0x3C, /* 001111 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x00, /* 000000 */ + + /* + * code=134, hex=0x86, ascii="!^F" + */ + 0x38, /* 001110 */ + 0x28, /* 001010 */ + 0x38, /* 001110 */ + 0x04, /* 000001 */ + 0x3C, /* 001111 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x00, /* 000000 */ + + /* + * code=135, hex=0x87, ascii="!^G" + */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x40, /* 010000 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x30, /* 001100 */ + + /* + * code=136, hex=0x88, ascii="!^H" + */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x40, /* 010000 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=137, hex=0x89, ascii="!^I" + */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x40, /* 010000 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=138, hex=0x8A, ascii="!^J" + */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x78, /* 011110 */ + 0x40, /* 010000 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=139, hex=0x8B, ascii="!^K" + */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x18, /* 000110 */ + 0x00, /* 000000 */ + + /* + * code=140, hex=0x8C, ascii="!^L" + */ + 0x10, /* 000100 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x18, /* 000110 */ + 0x00, /* 000000 */ + + /* + * code=141, hex=0x8D, ascii="!^M" + */ + 0x20, /* 001000 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x18, /* 000110 */ + 0x00, /* 000000 */ + + /* + * code=142, hex=0x8E, ascii="!^N" + */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x28, /* 001010 */ + 0x44, /* 010001 */ + 0x7C, /* 011111 */ + 0x44, /* 010001 */ + 0x00, /* 000000 */ + + /* + * code=143, hex=0x8F, ascii="!^O" + */ + 0x38, /* 001110 */ + 0x28, /* 001010 */ + 0x38, /* 001110 */ + 0x6C, /* 011011 */ + 0x44, /* 010001 */ + 0x7C, /* 011111 */ + 0x44, /* 010001 */ + 0x00, /* 000000 */ + + /* + * code=144, hex=0x90, ascii="!^P" + */ + 0x0C, /* 000011 */ + 0x00, /* 000000 */ + 0x7C, /* 011111 */ + 0x40, /* 010000 */ + 0x78, /* 011110 */ + 0x40, /* 010000 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + + /* + * code=145, hex=0x91, ascii="!^Q" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x14, /* 000101 */ + 0x7C, /* 011111 */ + 0x50, /* 010100 */ + 0x3C, /* 001111 */ + 0x00, /* 000000 */ + + /* + * code=146, hex=0x92, ascii="!^R" + */ + 0x3C, /* 001111 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x7C, /* 011111 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x5C, /* 010111 */ + 0x00, /* 000000 */ + + /* + * code=147, hex=0x93, ascii="!^S" + */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=148, hex=0x94, ascii="!^T" + */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=149, hex=0x95, ascii="!^U" + */ + 0x60, /* 011000 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=150, hex=0x96, ascii="!^V" + */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x58, /* 010110 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + + /* + * code=151, hex=0x97, ascii="!^W" + */ + 0x60, /* 011000 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x58, /* 010110 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + + /* + * code=152, hex=0x98, ascii="!^X" + */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x60, /* 011000 */ + + /* + * code=153, hex=0x99, ascii="!^Y" + */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=154, hex=0x9A, ascii="!^Z" + */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=155, hex=0x9B, ascii="!^[" + */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=156, hex=0x9C, ascii="!^\" + */ + 0x18, /* 000110 */ + 0x24, /* 001001 */ + 0x20, /* 001000 */ + 0x78, /* 011110 */ + 0x20, /* 001000 */ + 0x24, /* 001001 */ + 0x5C, /* 010111 */ + 0x00, /* 000000 */ + + /* + * code=157, hex=0x9D, ascii="!^]" + */ + 0x44, /* 010001 */ + 0x28, /* 001010 */ + 0x10, /* 000100 */ + 0x7C, /* 011111 */ + 0x10, /* 000100 */ + 0x7C, /* 011111 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=158, hex=0x9E, ascii="!^^" + */ + 0x60, /* 011000 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x68, /* 011010 */ + 0x5C, /* 010111 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x00, /* 000000 */ + + /* + * code=159, hex=0x9F, ascii="!^_" + */ + 0x08, /* 000010 */ + 0x14, /* 000101 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x50, /* 010100 */ + 0x20, /* 001000 */ + + /* + * code=160, hex=0xA0, ascii="! " + */ + 0x18, /* 000110 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x04, /* 000001 */ + 0x3C, /* 001111 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x00, /* 000000 */ + + /* + * code=161, hex=0xA1, ascii="!!" + */ + 0x18, /* 000110 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x18, /* 000110 */ + 0x00, /* 000000 */ + + /* + * code=162, hex=0xA2, ascii="!"" + */ + 0x18, /* 000110 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=163, hex=0xA3, ascii="!#" + */ + 0x18, /* 000110 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x58, /* 010110 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + + /* + * code=164, hex=0xA4, ascii="!$" + */ + 0x28, /* 001010 */ + 0x50, /* 010100 */ + 0x00, /* 000000 */ + 0x70, /* 011100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x00, /* 000000 */ + + /* + * code=165, hex=0xA5, ascii="!%" + */ + 0x28, /* 001010 */ + 0x50, /* 010100 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x68, /* 011010 */ + 0x58, /* 010110 */ + 0x48, /* 010010 */ + 0x00, /* 000000 */ + + /* + * code=166, hex=0xA6, ascii="!&" + */ + 0x38, /* 001110 */ + 0x04, /* 000001 */ + 0x3C, /* 001111 */ + 0x44, /* 010001 */ + 0x3C, /* 001111 */ + 0x00, /* 000000 */ + 0x3C, /* 001111 */ + 0x00, /* 000000 */ + + /* + * code=167, hex=0xA7, ascii="!'" + */ + 0x30, /* 001100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + + /* + * code=168, hex=0xA8, ascii="!(" + */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x30, /* 001100 */ + 0x40, /* 010000 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=169, hex=0xA9, ascii="!)" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x7C, /* 011111 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=170, hex=0xAA, ascii="!*" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x04, /* 000001 */ + 0x04, /* 000001 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=171, hex=0xAB, ascii="!+" + */ + 0x40, /* 010000 */ + 0x48, /* 010010 */ + 0x50, /* 010100 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x08, /* 000010 */ + 0x1C, /* 000111 */ + 0x00, /* 000000 */ + + /* + * code=172, hex=0xAC, ascii="!," + */ + 0x40, /* 010000 */ + 0x48, /* 010010 */ + 0x50, /* 010100 */ + 0x2C, /* 001011 */ + 0x54, /* 010101 */ + 0x1C, /* 000111 */ + 0x04, /* 000001 */ + 0x00, /* 000000 */ + + /* + * code=173, hex=0xAD, ascii="!-" + */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=174, hex=0xAE, ascii="!." + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x24, /* 001001 */ + 0x48, /* 010010 */ + 0x24, /* 001001 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=175, hex=0xAF, ascii="!/" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x24, /* 001001 */ + 0x48, /* 010010 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=176, hex=0xB0, ascii="!0" + */ + 0x54, /* 010101 */ + 0x00, /* 000000 */ + 0xA8, /* 101010 */ + 0x00, /* 000000 */ + 0x54, /* 010101 */ + 0x00, /* 000000 */ + 0xA8, /* 101010 */ + 0x00, /* 000000 */ + + /* + * code=177, hex=0xB1, ascii="!1" + */ + 0x54, /* 010101 */ + 0xA8, /* 101010 */ + 0x54, /* 010101 */ + 0xA8, /* 101010 */ + 0x54, /* 010101 */ + 0xA8, /* 101010 */ + 0x54, /* 010101 */ + 0xA8, /* 101010 */ + + /* + * code=178, hex=0xB2, ascii="!2" + */ + 0xA8, /* 101010 */ + 0xFC, /* 111111 */ + 0x54, /* 010101 */ + 0xFC, /* 111111 */ + 0xA8, /* 101010 */ + 0xFC, /* 111111 */ + 0x54, /* 010101 */ + 0xFC, /* 111111 */ + + /* + * code=179, hex=0xB3, ascii="!3" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=180, hex=0xB4, ascii="!4" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0xF0, /* 111100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=181, hex=0xB5, ascii="!5" + */ + 0x10, /* 000100 */ + 0xF0, /* 111100 */ + 0x10, /* 000100 */ + 0xF0, /* 111100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=182, hex=0xB6, ascii="!6" + */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0xD0, /* 110100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=183, hex=0xB7, ascii="!7" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0xF0, /* 111100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=184, hex=0xB8, ascii="!8" + */ + 0x00, /* 000000 */ + 0xF0, /* 111100 */ + 0x10, /* 000100 */ + 0xF0, /* 111100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=185, hex=0xB9, ascii="!9" + */ + 0x50, /* 010100 */ + 0xD0, /* 110100 */ + 0x10, /* 000100 */ + 0xD0, /* 110100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=186, hex=0xBA, ascii="!:" + */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=187, hex=0xBB, ascii="!;" + */ + 0x00, /* 000000 */ + 0xF0, /* 111100 */ + 0x10, /* 000100 */ + 0xD0, /* 110100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=188, hex=0xBC, ascii="!<" + */ + 0x50, /* 010100 */ + 0xD0, /* 110100 */ + 0x10, /* 000100 */ + 0xF0, /* 111100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=189, hex=0xBD, ascii="!=" + */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0xF0, /* 111100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=190, hex=0xBE, ascii="!>" + */ + 0x10, /* 000100 */ + 0xF0, /* 111100 */ + 0x10, /* 000100 */ + 0xF0, /* 111100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=191, hex=0xBF, ascii="!?" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0xF0, /* 111100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=192, hex=0xC0, ascii="!@" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x1C, /* 000111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=193, hex=0xC1, ascii="!A" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=194, hex=0xC2, ascii="!B" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=195, hex=0xC3, ascii="!C" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x1C, /* 000111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=196, hex=0xC4, ascii="!D" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=197, hex=0xC5, ascii="!E" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0xFC, /* 111111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=198, hex=0xC6, ascii="!F" + */ + 0x10, /* 000100 */ + 0x1C, /* 000111 */ + 0x10, /* 000100 */ + 0x1C, /* 000111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=199, hex=0xC7, ascii="!G" + */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x5C, /* 010111 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=200, hex=0xC8, ascii="!H" + */ + 0x50, /* 010100 */ + 0x5C, /* 010111 */ + 0x40, /* 010000 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=201, hex=0xC9, ascii="!I" + */ + 0x00, /* 000000 */ + 0x7C, /* 011111 */ + 0x40, /* 010000 */ + 0x5C, /* 010111 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=202, hex=0xCA, ascii="!J" + */ + 0x50, /* 010100 */ + 0xDC, /* 110111 */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=203, hex=0xCB, ascii="!K" + */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0xDC, /* 110111 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=204, hex=0xCC, ascii="!L" + */ + 0x50, /* 010100 */ + 0x5C, /* 010111 */ + 0x40, /* 010000 */ + 0x5C, /* 010111 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=205, hex=0xCD, ascii="!M" + */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=206, hex=0xCE, ascii="!N" + */ + 0x50, /* 010100 */ + 0xDC, /* 110111 */ + 0x00, /* 000000 */ + 0xDC, /* 110111 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=207, hex=0xCF, ascii="!O" + */ + 0x10, /* 000100 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=208, hex=0xD0, ascii="!P" + */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=209, hex=0xD1, ascii="!Q" + */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=210, hex=0xD2, ascii="!R" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=211, hex=0xD3, ascii="!S" + */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=212, hex=0xD4, ascii="!T" + */ + 0x10, /* 000100 */ + 0x1C, /* 000111 */ + 0x10, /* 000100 */ + 0x1C, /* 000111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=213, hex=0xD5, ascii="!U" + */ + 0x00, /* 000000 */ + 0x1C, /* 000111 */ + 0x10, /* 000100 */ + 0x1C, /* 000111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=214, hex=0xD6, ascii="!V" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x7C, /* 011111 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=215, hex=0xD7, ascii="!W" + */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0xDC, /* 110111 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + + /* + * code=216, hex=0xD8, ascii="!X" + */ + 0x10, /* 000100 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=217, hex=0xD9, ascii="!Y" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0xF0, /* 111100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=218, hex=0xDA, ascii="!Z" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x1C, /* 000111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=219, hex=0xDB, ascii="![" + */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + + /* + * code=220, hex=0xDC, ascii="!\" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + + /* + * code=221, hex=0xDD, ascii="!]" + */ + 0xE0, /* 111000 */ + 0xE0, /* 111000 */ + 0xE0, /* 111000 */ + 0xE0, /* 111000 */ + 0xE0, /* 111000 */ + 0xE0, /* 111000 */ + 0xE0, /* 111000 */ + 0xE0, /* 111000 */ + + /* + * code=222, hex=0xDE, ascii="!^" + */ + 0x1C, /* 000111 */ + 0x1C, /* 000111 */ + 0x1C, /* 000111 */ + 0x1C, /* 000111 */ + 0x1C, /* 000111 */ + 0x1C, /* 000111 */ + 0x1C, /* 000111 */ + 0x1C, /* 000111 */ + + /* + * code=223, hex=0xDF, ascii="!_" + */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0xFC, /* 111111 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=224, hex=0xE0, ascii="!`" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x34, /* 001101 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x34, /* 001101 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=225, hex=0xE1, ascii="!a" + */ + 0x00, /* 000000 */ + 0x70, /* 011100 */ + 0x48, /* 010010 */ + 0x70, /* 011100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x70, /* 011100 */ + 0x40, /* 010000 */ + + /* + * code=226, hex=0xE2, ascii="!b" + */ + 0x78, /* 011110 */ + 0x48, /* 010010 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + 0x00, /* 000000 */ + + /* + * code=227, hex=0xE3, ascii="!c" + */ + 0x00, /* 000000 */ + 0x7C, /* 011111 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + + /* + * code=228, hex=0xE4, ascii="!d" + */ + 0x78, /* 011110 */ + 0x48, /* 010010 */ + 0x20, /* 001000 */ + 0x10, /* 000100 */ + 0x20, /* 001000 */ + 0x48, /* 010010 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + + /* + * code=229, hex=0xE5, ascii="!e" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x3C, /* 001111 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=230, hex=0xE6, ascii="!f" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x70, /* 011100 */ + 0x40, /* 010000 */ + 0x40, /* 010000 */ + + /* + * code=231, hex=0xE7, ascii="!g" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x28, /* 001010 */ + 0x50, /* 010100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=232, hex=0xE8, ascii="!h" + */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + + /* + * code=233, hex=0xE9, ascii="!i" + */ + 0x30, /* 001100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x78, /* 011110 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=234, hex=0xEA, ascii="!j" + */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x44, /* 010001 */ + 0x44, /* 010001 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x6C, /* 011011 */ + 0x00, /* 000000 */ + + /* + * code=235, hex=0xEB, ascii="!k" + */ + 0x30, /* 001100 */ + 0x40, /* 010000 */ + 0x20, /* 001000 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + + /* + * code=236, hex=0xEC, ascii="!l" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x28, /* 001010 */ + 0x54, /* 010101 */ + 0x54, /* 010101 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=237, hex=0xED, ascii="!m" + */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x54, /* 010101 */ + 0x54, /* 010101 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + + /* + * code=238, hex=0xEE, ascii="!n" + */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x40, /* 010000 */ + 0x78, /* 011110 */ + 0x40, /* 010000 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=239, hex=0xEF, ascii="!o" + */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=240, hex=0xF0, ascii="!p" + */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=241, hex=0xF1, ascii="!q" + */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x38, /* 001110 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x38, /* 001110 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=242, hex=0xF2, ascii="!r" + */ + 0x40, /* 010000 */ + 0x30, /* 001100 */ + 0x08, /* 000010 */ + 0x30, /* 001100 */ + 0x40, /* 010000 */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + + /* + * code=243, hex=0xF3, ascii="!s" + */ + 0x08, /* 000010 */ + 0x30, /* 001100 */ + 0x40, /* 010000 */ + 0x30, /* 001100 */ + 0x08, /* 000010 */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + + /* + * code=244, hex=0xF4, ascii="!t" + */ + 0x00, /* 000000 */ + 0x08, /* 000010 */ + 0x14, /* 000101 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + + /* + * code=245, hex=0xF5, ascii="!u" + */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x50, /* 010100 */ + 0x20, /* 001000 */ + 0x00, /* 000000 */ + + /* + * code=246, hex=0xF6, ascii="!v" + */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x7C, /* 011111 */ + 0x00, /* 000000 */ + 0x10, /* 000100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=247, hex=0xF7, ascii="!w" + */ + 0x00, /* 000000 */ + 0x28, /* 001010 */ + 0x50, /* 010100 */ + 0x00, /* 000000 */ + 0x28, /* 001010 */ + 0x50, /* 010100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=248, hex=0xF8, ascii="!x" + */ + 0x30, /* 001100 */ + 0x48, /* 010010 */ + 0x48, /* 010010 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=249, hex=0xF9, ascii="!y" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x30, /* 001100 */ + 0x30, /* 001100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=250, hex=0xFA, ascii="!z" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x20, /* 001000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=251, hex=0xFB, ascii="!{" + */ + 0x00, /* 000000 */ + 0x1C, /* 000111 */ + 0x10, /* 000100 */ + 0x10, /* 000100 */ + 0x50, /* 010100 */ + 0x50, /* 010100 */ + 0x20, /* 001000 */ + 0x00, /* 000000 */ + + /* + * code=252, hex=0xFC, ascii="!|" + */ + 0x50, /* 010100 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x28, /* 001010 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=253, hex=0xFD, ascii="!}" + */ + 0x60, /* 011000 */ + 0x10, /* 000100 */ + 0x20, /* 001000 */ + 0x70, /* 011100 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=254, hex=0xFE, ascii="!~" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x78, /* 011110 */ + 0x78, /* 011110 */ + 0x78, /* 011110 */ + 0x78, /* 011110 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + + /* + * code=255, hex=0xFF, ascii="!^ΕΊ" + */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00, /* 000000 */ + 0x00 /* 000000 */ +}; + +void WS2812FX::drawCharacter(unsigned char chr, int16_t x, int16_t y, CRGB color, CRGB *leds) { + uint16_t width = SEGMENT.virtualWidth(); + uint16_t height = SEGMENT.virtualHeight(); + + for (uint8_t i = 0; i<8; i++) { // character height + int16_t y0 = y + i; + if (y0 < 0) continue; // drawing off-screen + if (y0 >= height) break; // drawing off-screen + uint8_t bits = pgm_read_byte_near(&console_font_6x8[(chr * 8) + i]); + for (uint8_t j = 0; j<6; j++) { // character width + int16_t x0 = x + 5 - j; + if ((x0 >= 0 || x0 < width) && ((bits>>(j+1)) & 0x01)) { // bit set & drawing on-screen + if (leds) leds[XY(x0,y0)] = color; + else setPixelColorXY(x0, y0, color); + } + } + } +} + + #define WU_WEIGHT(a,b) ((uint8_t) (((a)*(b)+(a)+(b))>>8)) void WS2812FX::wu_pixel(CRGB *leds, uint32_t x, uint32_t y, CRGB c) { //awesome wu_pixel procedure by reddit u/sutaburosu // extract the fractional parts and derive their inverses diff --git a/wled00/wled.h b/wled00/wled.h index 0c09d24a..a1e8b27f 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -8,7 +8,7 @@ */ // version code in format yymmddb (b = daily build) -#define VERSION 2205231 +#define VERSION 2205251 //uncomment this if you have a "my_config.h" file you'd like to use //#define WLED_USE_MY_CONFIG