This article covers STM32 KS0108 LCD integration using Proteus simulation, demonstrating how to connect the KS0108 display to STM32 via SPI.
Things used in this project
Software apps and online services:
1-Â STMicroelectronics STM32CubeMX
2-Â STMicroelectronics STM32CubeIDE
3-Â Proteus 8
Empowering STM32 Projects with KS0108 Graphical LCD IntegrationÂ
This project aims to leverage the STM32 microcontroller’s GPIO capabilities to interface with a Graphical LCD based on the KS0108 controller. By utilizing GPIO pins for data transmission and control, we seek to create a robust and versatile display solution for various STM32-based applications. The goal is to enable seamless communication between the microcontroller and the LCD, facilitating the display of graphics and text with high resolution and clarity.
Overview of KS0108 Graphical LCDs:
Graphical LCDs utilizing the KS0108 controller are prevalent in the realm of display technology. These LCDs boast internal memory of 512 bytes, facilitating resolutions of up to 64×64 pixels. Larger displays often employ multiple controllers, with each one handling a fraction of the screen’s area. For instance, a 128×64 LCD typically incorporates two controllers, while a 128×128 display would employ four.
Each controller operates independently and is activated using two control lines: CS1 and CS2 (chip select), functioning as a 2-bit address selector for up to four ICs. Notably, these controllers lack an internal font generator, necessitating the storage of glyph pixel data by the driving device, such as a microcontroller’s Flash memory or an external memory module.
Pin Description and Functionality:
- VSS: Ground reference (0V)
- VDD: Supply voltage for the LCD (5V)
- V0: Contrast adjustment
- D/I: Selects between Data (1) or Instruction (0)
- R/W: Selects between reading (1) or writing (0) the controller
- E: Initiates data transfer upon pulse application
- DB0..7: Data bus (8-bit bus)
- CS1..2: Controller selection lines
- RES: Reset signal; resets all controllers when set to 0
- Vee: Negative voltage OUTPUT
- K and A: Backlight, typically LEDs
Sending Commands and Data to the LCD:
Sending commands or data to the LCD involves several steps, including activating the desired controller, setting the D/I line according to the type of data being sent, placing the data on the data bus, and applying a pulse to the E line. The display is divided into 8 horizontal pages and 64 vertical lines/columns.
To start this project, we will first configure the GPIO pins of the STM32 microcontroller to establish communication with the KS0108-based graphical LCD. This involves setting up the necessary GPIO pins for data transmission, control signals, and any additional functionalities required by the LCD.
STM32CubeMX Configuration:
- Open CubeMX & Create New Project Choose The Target MCU STM32F103C6 & Double-Click Its Name
- Go To The Clock Configuration & Set The System Clock To 16MHz
Configuration for the GPIO
Mode:
- Configure The GPIO Pin [PA0 .. PA7] as Output Pin (D0 ,D1 , D2 , D3 , D4 , D5 , D6 , D7)
- Configure The GPIO Pin [PB8.. PB13] as Output Pin (DI ,RW , EN , CS1 , CS2 , RS )
STM32CubeIDE Configuration :
- Write The Application Layer Code
- KS0108.h & KS0108.c
- IO_Macros.h
/* * KS0108.h * * Created on: May 13, 2024 * Author: PC-MAGHREBI */ #ifndef KS0108_H_INCLUDED #define KS0108_H_INCLUDED //----- Headers ------------// #include "main.h" #include "IO_Macros.h" //--------------------------// #define GLCD_Active_Low 0 // GLCD pins #define GLCD_D0 GPIO_PIN_0 #define GLCD_D1 GPIO_PIN_1 #define GLCD_D2 GPIO_PIN_2 #define GLCD_D3 GPIO_PIN_3 #define GLCD_D4 GPIO_PIN_4 #define GLCD_D5 GPIO_PIN_5 #define GLCD_D6 GPIO_PIN_6 #define GLCD_D7 GPIO_PIN_7 #define GLCD_DI GPIO_PIN_8 #define GLCD_RW GPIO_PIN_9 #define GLCD_EN GPIO_PIN_10 #define GLCD_CS1 GPIO_PIN_11 #define GLCD_CS2 GPIO_PIN_12 #define GLCD_RST GPIO_PIN_13 //----- Auxiliary data ---------------------------// #define __GLCD_Pulse_En 1 #define __GLCD_Command_On 0x3F #define __GLCD_Command_Off 0x3E #define __GLCD_Command_Set_Address 0x40 #define __GLCD_Command_Set_Page 0xB8 #define __GLCD_Command_Display_Start 0xC0 #define __GLCD_Screen_Width 128 #define __GLCD_Screen_Height 64 #define __GLCD_Screen_Line_Height 8 #define __GLCD_Screen_Lines __GLCD_Screen_Height / __GLCD_Screen_Line_Height #define __GLCD_Screen_Chips 2 #define __GLCD_BUSY_FLAG 7 enum Chip_t { Chip_1, Chip_2, Chip_All }; enum ReadMode_t { GLCD_Increment, GLCD_No_Increment }; enum OperatingMode_t { GLCD_Inverted, GLCD_Non_Inverted }; enum PrintMode_t { GLCD_Overwrite, GLCD_Merge }; enum Color_t { GLCD_White = 0x00, GLCD_Black = 0xFF }; typedef struct { uint8_t *Name; uint8_t Width; uint8_t Height; uint8_t Lines; enum PrintMode_t Mode; }Font_t; typedef struct { uint8_t X; uint8_t Y; enum OperatingMode_t Mode; Font_t Font; }GLCD_t; //------------------------------------------------// //----- Prototypes ------------------------------------------------------------// void GLCD_SendCommand(const uint8_t Command, enum Chip_t Chip); void GLCD_SendData(const uint8_t Data, enum Chip_t Chip); void GLCD_Setup(void); void GLCD_Render(void); void GLCD_InvertMode(void); void GLCD_Clear(void); void GLCD_ClearLine(const uint8_t Line); void GLCD_GotoX(const uint8_t X); void GLCD_GotoY(const uint8_t Y); void GLCD_GotoXY(const uint8_t X, const uint8_t Y); void GLCD_GotoLine(const uint8_t line); uint8_t GLCD_GetX(void); uint8_t GLCD_GetY(void); uint8_t GLCD_GetLine(void); void GLCD_SetPixel(const uint8_t X, const uint8_t Y, enum Color_t Color); void GLCD_SetPixels(uint8_t X1, uint8_t Y1, uint8_t X2, uint8_t Y2, enum Color_t Color); void GLCD_DrawBitmap(const uint8_t *Bitmap, uint8_t Width, const uint8_t Height, enum PrintMode_t Mode); void GLCD_DrawLine(const uint8_t X1, const uint8_t Y1, const uint8_t X2, const uint8_t Y2, enum Color_t Color); void GLCD_DrawRectangle(const uint8_t X1, const uint8_t Y1, const uint8_t X2, const uint8_t Y2, enum Color_t Color); void GLCD_DrawRoundRectangle(const uint8_t X1, const uint8_t Y1, const uint8_t X2, const uint8_t Y2, const uint8_t Radius, enum Color_t Color); void GLCD_DrawTriangle(const uint8_t X1, const uint8_t Y1, const uint8_t X2, const uint8_t Y2, const uint8_t X3, const uint8_t Y3, enum Color_t Color); void GLCD_DrawCircle(const uint8_t CenterX, const uint8_t CenterY, uint8_t Radius, enum Color_t Color); void GLCD_FillScreen(enum Color_t Color); void GLCD_FillRectangle(const uint8_t X1, const uint8_t Y1, const uint8_t X2, const uint8_t Y2, enum Color_t Color); void GLCD_FillRoundRectangle(const uint8_t X1, const uint8_t Y1, const uint8_t X2, const uint8_t Y2, const uint8_t Radius, enum Color_t Color); void GLCD_FillTriangle(uint8_t X1, uint8_t Y1, uint8_t X2, uint8_t Y2, uint8_t X3, uint8_t Y3, enum Color_t Color); void GLCD_FillCircle(const uint8_t CenterX, const uint8_t CenterY, const uint8_t Radius, enum Color_t Color); void GLCD_InvertScreen(void); void GLCD_InvertRect(uint8_t X1, uint8_t Y1, uint8_t X2, uint8_t Y2); void GLCD_SetFont(const uint8_t *Name, const uint8_t Width, const uint8_t Height, enum PrintMode_t Mode); uint8_t GLCD_GetWidthChar(const char Character); uint16_t GLCD_GetWidthString(const char *Text); uint16_t GLCD_GetWidthString_P(const char *Text); void GLCD_PrintChar(char Character); void GLCD_PrintString(const char *Text); void GLCD_PrintString_P(const char *Text); void GLCD_PrintInteger(const int32_t Value); void GLCD_PrintDouble(double Value, const uint32_t Tens); //-----------------------------------------------------------------------------// #endif
/* * KS0108.c * * Created on: May 13, 2024 * Author: PC-MAGHREBI */ #include "KS0108.h" // Delay in milliseconds void _delay_ms(uint32_t ms) { HAL_Delay(ms); } // Delay in microseconds void _delay_us(uint32_t us) { volatile uint32_t delay = us * (SystemCoreClock / 1000000) / 5; // Adjust the divisor to fit your system while (delay--); } //----- Auxiliary data ------// uint8_t __GLCD_Buffer[__GLCD_Screen_Width][__GLCD_Screen_Lines]; GLCD_t __GLCD; #define __GLCD_XtoChip(X) ((X < (__GLCD_Screen_Width / __GLCD_Screen_Chips)) ? Chip_1 : Chip_2) #define __GLCD_Min(X, Y) ((X < Y) ? X : Y) #define __GLCD_AbsDiff(X, Y) ((X > Y) ? (X - Y) : (Y - X)) #define __GLCD_Swap(X, Y) do { typeof(X) t = X; X = Y; Y = t; } while (0) //---------------------------// //----- Prototypes ----------------------------// static void GLCD_Send(const uint8_t Data); static void GLCD_WaitBusy(enum Chip_t Chip); static void GLCD_BufferWrite(const uint8_t X, const uint8_t Y, const uint8_t Data); static uint8_t GLCD_BufferRead(const uint8_t X, const uint8_t Y); static void GLCD_SelectChip(enum Chip_t Chip); static void __GLCD_GotoX(const uint8_t X); static void __GLCD_GotoY(const uint8_t Y); static void GLCD_DrawHLine(uint8_t X1, uint8_t X2, const uint8_t Y, enum Color_t Color); static void GLCD_DrawVLine(uint8_t Y1, uint8_t Y2, const uint8_t X, enum Color_t Color); static void Int2bcd(int32_t Value, char BCD[]); static inline void Pulse_En(void); //---------------------------------------------// //----- Functions -------------// void GLCD_SendCommand(const uint8_t Command, enum Chip_t Chip) { //Check if busy if (Chip != Chip_All) { GLCD_WaitBusy(Chip); } else { GLCD_WaitBusy(Chip_1); GLCD_WaitBusy(Chip_2); } GLCD_SelectChip(Chip); DigitalWrite(GPIOB,GLCD_DI, Low); //RS = 0 DigitalWrite(GPIOB,GLCD_RW, Low); //RW = 0 //Send data GLCD_Send(Command); } void GLCD_SendData(const uint8_t Data, enum Chip_t Chip) { //Check if busy if (Chip != Chip_All) { GLCD_WaitBusy(Chip); } else { GLCD_WaitBusy(Chip_1); GLCD_WaitBusy(Chip_2); } GLCD_SelectChip(Chip); DigitalWrite(GPIOB,GLCD_DI, High); //RS = 1 DigitalWrite(GPIOB,GLCD_RW, Low); //RW = 0 //Send data GLCD_Send(__GLCD.Mode == GLCD_Non_Inverted ? Data : ~Data); __GLCD.X++; if (__GLCD.X == (__GLCD_Screen_Width / __GLCD_Screen_Chips)) __GLCD_GotoX(__GLCD.X); else if (__GLCD.X >= __GLCD_Screen_Width) __GLCD.X = __GLCD_Screen_Width - 1; } void GLCD_Setup(void) { //Setup pins PinMode(GPIOA,GLCD_D0, Output); //GLCD pins = Outputs PinMode(GPIOA,GLCD_D1, Output); PinMode(GPIOA,GLCD_D2, Output); PinMode(GPIOA,GLCD_D3, Output); PinMode(GPIOA,GLCD_D4, Output); PinMode(GPIOA,GLCD_D5, Output); PinMode(GPIOA,GLCD_D6, Output); PinMode(GPIOA,GLCD_D7, Output); PinMode(GPIOB,GLCD_CS1, Output); PinMode(GPIOB,GLCD_CS2, Output); PinMode(GPIOB,GLCD_DI, Output); PinMode(GPIOB,GLCD_EN, Output); PinMode(GPIOB,GLCD_RW, Output); PinMode(GPIOB,GLCD_RST, Output); DigitalWrite(GPIOB,GLCD_DI, Low); //GLCD pins = 0 DigitalWrite(GPIOB,GLCD_RW, Low); DigitalWrite(GPIOB,GLCD_EN, Low); DigitalWrite(GPIOB,GLCD_RST, Low); //!RST _delay_ms(5); DigitalWrite(GPIOB,GLCD_RST, High); _delay_ms(50); //Initialize chips GLCD_SendCommand(__GLCD_Command_On, Chip_All); GLCD_SendCommand(__GLCD_Command_Display_Start, Chip_All); //Go to 0,0 GLCD_GotoXY(0, 0); //Reset GLCD structure __GLCD.Mode = GLCD_Non_Inverted; __GLCD.X = __GLCD.Y = __GLCD.Font.Width = __GLCD.Font.Height = __GLCD.Font.Lines = 0; } void GLCD_Render(void) { uint8_t i, j; for (j = 0 ; j < __GLCD_Screen_Height ; j += __GLCD_Screen_Line_Height) { __GLCD_GotoX(0); __GLCD_GotoY(j); for (i = 0 ; i < __GLCD_Screen_Width ; i++) GLCD_SendData(GLCD_BufferRead(i, __GLCD.Y), __GLCD_XtoChip(i)); } } void GLCD_InvertMode(void) { if (__GLCD.Mode == GLCD_Inverted) __GLCD.Mode = GLCD_Non_Inverted; else __GLCD.Mode = GLCD_Inverted; } void GLCD_Clear(void) { GLCD_FillScreen(__GLCD.Mode == GLCD_Non_Inverted ? GLCD_White : GLCD_Black); } void GLCD_ClearLine(const uint8_t Line) { if (Line < __GLCD_Screen_Lines) { uint8_t i, color; i = 0; color = __GLCD.Mode == GLCD_Non_Inverted ? GLCD_White : GLCD_Black; GLCD_GotoXY(0, Line * __GLCD_Screen_Line_Height); for (i = 0 ; i < __GLCD_Screen_Width ; i++) GLCD_BufferWrite(i, __GLCD.Y, color); } } void GLCD_GotoX(const uint8_t X) { if (X < __GLCD_Screen_Width) __GLCD.X = X; } void GLCD_GotoY(const uint8_t Y) { if (__GLCD.Y < __GLCD_Screen_Height) __GLCD.Y = Y; } void GLCD_GotoXY(const uint8_t X, const uint8_t Y) { GLCD_GotoX(X); GLCD_GotoY(Y); } void GLCD_GotoLine(const uint8_t Line) { if (Line < __GLCD_Screen_Lines) __GLCD.Y = Line * __GLCD_Screen_Line_Height; } uint8_t GLCD_GetX(void) { return __GLCD.X; } uint8_t GLCD_GetY(void) { return __GLCD.Y; } uint8_t GLCD_GetLine(void) { return (__GLCD.Y / __GLCD_Screen_Line_Height); } void GLCD_SetPixel(const uint8_t X, const uint8_t Y, enum Color_t Color) { uint8_t data = 0; //Goto to point GLCD_GotoXY(X, Y); //Read data data = GLCD_BufferRead(__GLCD.X, __GLCD.Y); //Set pixel if (Color == GLCD_Black) BitSet(data, Y % 8); else BitClear(data, Y % 8); //Sent data GLCD_BufferWrite(__GLCD.X, __GLCD.Y, data); } void GLCD_SetPixels(const uint8_t X1, uint8_t Y1, const uint8_t X2, const uint8_t Y2, enum Color_t Color) { if ((X1 < __GLCD_Screen_Width) && (X2 < __GLCD_Screen_Width) && (Y1 < __GLCD_Screen_Height) && (Y2 < __GLCD_Screen_Height)) { uint8_t height, width, offset, mask, h, i, data; height = Y2 - Y1 + 1; width = X2 - X1 + 1; offset = Y1 % __GLCD_Screen_Line_Height; Y1 -= offset; mask = 0xFF; data = 0; //Calculate mask for top fractioned region if (height <(__GLCD_Screen_Line_Height - offset)) { mask >>=(__GLCD_Screen_Line_Height - height); h = height; } else h = __GLCD_Screen_Line_Height - offset; mask <<= offset; //Draw fractional rows at the top of the region GLCD_GotoXY(X1, Y1); for (i = 0 ; i < width ; i++) { //Read data = GLCD_BufferRead(__GLCD.X, __GLCD.Y); //Mask data = ((Color == GLCD_Black) ? (data | mask) : (data & ~mask)); //Write GLCD_BufferWrite(__GLCD.X++, __GLCD.Y, data); } //Full rows while ((h + __GLCD_Screen_Line_Height) <= height) { h += __GLCD_Screen_Line_Height; Y1 += __GLCD_Screen_Line_Height; GLCD_GotoXY(X1, Y1); for (i = 0 ; i < width ; i++) GLCD_BufferWrite(__GLCD.X++, __GLCD.Y, Color); } //Fractional rows at the bottom of the region if (h < height) { mask = ~(0xFF << (height - h)); GLCD_GotoXY(X1, Y1 + __GLCD_Screen_Line_Height); for (i = 0 ; i < width ; i++) { //Read data = GLCD_BufferRead(__GLCD.X, __GLCD.Y); //Mask data = ((Color == GLCD_Black) ? (data | mask) : (data & ~mask)); //Write GLCD_BufferWrite(__GLCD.X++, __GLCD.Y, data); } } } } void GLCD_DrawBitmap(const uint8_t *Bitmap, uint8_t Width, const uint8_t Height, enum PrintMode_t Mode) { uint16_t lines, bmpRead, bmpReadPrev; uint8_t x, y, y2, i, j, overflow, data, dataPrev; lines = bmpRead = bmpReadPrev = x = y = i = j = overflow = data = dataPrev = 0; //#1 - Save current position x = __GLCD.X; y = y2 = __GLCD.Y; //#2 - Read width - First two bytes data = __GLCD.X + Width; //"data" is used temporarily //If character exceed screen bounds, reduce if (data >= __GLCD_Screen_Width) Width -= data - __GLCD_Screen_Width; //#3 - Read height - Second two bytes - Convert to lines lines = (Height + __GLCD_Screen_Line_Height - 1) / __GLCD_Screen_Line_Height; //lines = Ceiling(A/B) = (A+B-1)/B data = __GLCD.Y / __GLCD_Screen_Line_Height + lines; //"data" is used temporarily //If bitmap exceed screen bounds, reduce if (data > __GLCD_Screen_Lines) lines -= data - __GLCD_Screen_Lines; //#4 - Calculate overflowing bits overflow = __GLCD.Y % __GLCD_Screen_Line_Height; //#5 - Print the character //Scan the lines needed for (j = 0 ; j < lines ; j++) { //Go to the start of the line GLCD_GotoXY(x, y); //Update the indices for reading the line bmpRead = j * Width; bmpReadPrev = bmpRead - Width; //Previous = 4 + (j - 1) * width = Current - width //Scan bytes of selected line for (i = 0 ; i < Width ; i++) { //Read byte data = pgm_read_byte(&(Bitmap[bmpRead++])); //Shift byte data <<= overflow; //Merge byte with previous one if (j > 0) { dataPrev = pgm_read_byte(&(Bitmap[bmpReadPrev++])); dataPrev >>= __GLCD_Screen_Line_Height - overflow; data |= dataPrev; } //Edit byte depending on the mode if (Mode == GLCD_Merge) data |= GLCD_BufferRead(__GLCD.X, __GLCD.Y); //Send byte GLCD_BufferWrite(__GLCD.X++, __GLCD.Y, data); } //Send an empty column of 1px in the end' if (__GLCD.Font.Mode == GLCD_Overwrite) data = GLCD_White; else data = GLCD_BufferRead(__GLCD.X, __GLCD.Y); GLCD_BufferWrite(__GLCD.X, __GLCD.Y, data); //Increase line counter y += __GLCD_Screen_Line_Height; } //#6 - Update last line, if needed if (lines > 1) { //Go to the start of the line GLCD_GotoXY(x, y); //Update the index for reading the last printed line bmpReadPrev = (j - 1) * Width; //Scan bytes of selected line for (i = 0 ; i < Width ; i++) { //Read byte data = GLCD_BufferRead(__GLCD.X, __GLCD.Y); //Merge byte with previous one dataPrev = pgm_read_byte(&(Bitmap[bmpReadPrev++])); dataPrev >>= __GLCD_Screen_Line_Height - overflow; data |= dataPrev; //Edit byte depending on the mode if (Mode == GLCD_Merge) data |= GLCD_BufferRead(__GLCD.X, __GLCD.Y); //Send byte GLCD_BufferWrite(__GLCD.X++, __GLCD.Y, data); } //Send an empty column of 1px in the end if (__GLCD.Font.Mode == GLCD_Overwrite) data = GLCD_White; else if (__GLCD.Font.Mode == GLCD_Merge) data = GLCD_BufferRead(__GLCD.X, __GLCD.Y); else data = ~GLCD_BufferRead(__GLCD.X, __GLCD.Y); GLCD_BufferWrite(__GLCD.X++, __GLCD.Y,data); } //Go to the upper-right corner of the printed bitmap GLCD_GotoXY(GLCD_GetX(), y2); } void GLCD_DrawLine(uint8_t X1, uint8_t Y1, uint8_t X2, uint8_t Y2, enum Color_t Color) { if ((X1 < __GLCD_Screen_Width) && (X2 < __GLCD_Screen_Width) && (Y1 < __GLCD_Screen_Height) && (Y2 < __GLCD_Screen_Height)) { if (X1 == X2) GLCD_DrawVLine(Y1, Y2, X1, Color); else if (Y1 == Y2) GLCD_DrawHLine(X1, X2, Y1, Color); else { uint8_t deltax, deltay, x, y, slope; int8_t error, ystep; slope = ((__GLCD_AbsDiff(Y1, Y2) > __GLCD_AbsDiff(X1,X2)) ? 1 : 0); if (slope) { //Swap x1, y1 __GLCD_Swap(X1, Y1); //Swap x2, y2 __GLCD_Swap(X2, Y2); } if (X1 > X2) { //Swap x1, x2 __GLCD_Swap(X1, X2); //Swap y1,y2 __GLCD_Swap(Y1, Y2); } deltax = X2 - X1; deltay = __GLCD_AbsDiff(Y2, Y1); error = deltax / 2; y = Y1; ystep = ((Y1 < Y2) ? 1 : -1); for (x=X1 ; x<=X2 ; x++) { if (slope) GLCD_SetPixel(y, x, Color); else GLCD_SetPixel(x, y, Color); error -= deltay; if (error < 0) { y = y + ystep; error = error + deltax; } } } } } void GLCD_DrawRectangle(const uint8_t X1, const uint8_t Y1, const uint8_t X2, const uint8_t Y2, enum Color_t Color) { if ((X1 < __GLCD_Screen_Width) && (X2 < __GLCD_Screen_Width) && (Y1 < __GLCD_Screen_Height) && (Y2 < __GLCD_Screen_Height)) { GLCD_DrawHLine(X1, X2, Y1, Color); GLCD_DrawHLine(X1, X2, Y2, Color); GLCD_DrawVLine(Y1, Y2, X1, Color); GLCD_DrawVLine(Y1, Y2, X2, Color); } } void GLCD_DrawRoundRectangle(const uint8_t X1, const uint8_t Y1, const uint8_t X2, const uint8_t Y2, const uint8_t Radius, enum Color_t Color) { if ((X1<__GLCD_Screen_Width) && (X2<__GLCD_Screen_Width) && (Y1<__GLCD_Screen_Height) && (Y2<__GLCD_Screen_Height)) { int16_t tSwitch = 3 - 2 * Radius; uint8_t width, height, x, y; width = X2-X1; height = Y2-Y1; x = 0; y = Radius; //Draw perimeter GLCD_DrawHLine(X1+Radius, X2-Radius, Y1, Color); //Top GLCD_DrawHLine(X1+Radius, X2-Radius, Y2, Color); //Bottom GLCD_DrawVLine(Y1+Radius, Y2-Radius, X1, Color); //Left GLCD_DrawVLine(Y1+Radius, Y2-Radius, X2, Color); //Right while (x <= y) { //Upper left corner GLCD_SetPixel(X1+Radius-x, Y1+Radius-y, Color); GLCD_SetPixel(X1+Radius-y, Y1+Radius-x, Color); //Upper right corner GLCD_SetPixel(X1+width-Radius+x, Y1+Radius-y, Color); GLCD_SetPixel(X1+width-Radius+y, Y1+Radius-x, Color); //Lower left corner GLCD_SetPixel(X1+Radius-x, Y1+height-Radius+y, Color); GLCD_SetPixel(X1+Radius-y, Y1+height-Radius+x, Color); //Lower right corner GLCD_SetPixel(X1+width-Radius+x, Y1+height-Radius+y, Color); GLCD_SetPixel(X1+width-Radius+y, Y1+height-Radius+x, Color); if (tSwitch < 0) tSwitch += 4 * x + 6; else { tSwitch += 4 * (x - y) + 10; y--; } x++; } } } void GLCD_DrawTriangle(const uint8_t X1, const uint8_t Y1, const uint8_t X2, const uint8_t Y2, const uint8_t X3, const uint8_t Y3, enum Color_t Color) { if (((X1 < __GLCD_Screen_Width) && (X2 < __GLCD_Screen_Width) && (X3 < __GLCD_Screen_Width) && (Y1 < __GLCD_Screen_Height) && (Y2 < __GLCD_Screen_Height) && (Y3 < __GLCD_Screen_Height))) { GLCD_DrawLine(X1, Y1, X2, Y2, Color); GLCD_DrawLine(X2, Y2, X3, Y3, Color); GLCD_DrawLine(X3, Y3, X1, Y1, Color); } }; void GLCD_DrawCircle(const uint8_t CenterX, const uint8_t CenterY, const uint8_t Radius, enum Color_t Color) { if (((CenterX + Radius) < __GLCD_Screen_Width) && ((CenterY + Radius) < __GLCD_Screen_Height)) { uint8_t x, y; int16_t xChange, radiusError; uint16_t yChange; x = Radius; y = 0; xChange = 1 - 2 * Radius; yChange = 1; radiusError = 0; while (x >= y) { GLCD_SetPixel(CenterX+x, CenterY+y, Color); GLCD_SetPixel(CenterX-x, CenterY+y, Color); GLCD_SetPixel(CenterX-x, CenterY-y, Color); GLCD_SetPixel(CenterX+x, CenterY-y, Color); GLCD_SetPixel(CenterX+y, CenterY+x, Color); GLCD_SetPixel(CenterX-y, CenterY+x, Color); GLCD_SetPixel(CenterX-y, CenterY-x, Color); GLCD_SetPixel(CenterX+y, CenterY-x, Color); y++; radiusError += yChange; yChange += 2; if ((2 * radiusError + xChange) > 0) { x--; radiusError += xChange; xChange += 2; } } } } void GLCD_FillScreen(enum Color_t Color) { uint8_t i, j; for (j = 0 ; j < __GLCD_Screen_Height ; j += __GLCD_Screen_Line_Height) for (i = 0 ; i < __GLCD_Screen_Width ; i++) GLCD_BufferWrite(i, j, Color); } void GLCD_FillRectangle(const uint8_t X1, const uint8_t Y1, const uint8_t X2, const uint8_t Y2, enum Color_t Color) { GLCD_SetPixels(X1, Y1, X2, Y2, Color); } void GLCD_FillRoundRectangle(const uint8_t X1, const uint8_t Y1, const uint8_t X2, const uint8_t Y2, const uint8_t Radius, enum Color_t Color) { if ((X1 < __GLCD_Screen_Width) && (X2 < __GLCD_Screen_Width) && (Y1 < __GLCD_Screen_Height) && (Y2 < __GLCD_Screen_Height)) { int16_t tSwitch = 3 - 2 * Radius; uint8_t width, height, x, y; width = X2 - X1; height = Y2 - Y1; x = 0; y = Radius; //Fill center block GLCD_FillRectangle(X1+Radius, Y1, X2 - Radius, Y2, Color); while (x <= y) { //Left side GLCD_DrawLine( X1 + Radius - x, Y1 + Radius - y, //Upper left corner upper half X1 + Radius - x, Y1 + height - Radius + y, //Lower left corner lower half Color); GLCD_DrawLine( X1 + Radius - y, Y1 + Radius - x, //Upper left corner lower half X1 + Radius - y, Y1 + height - Radius + x, //Lower left corner upper half Color); //Right side GLCD_DrawLine( X1 + width - Radius + x, Y1 + Radius - y, //Upper right corner upper half X1 + width - Radius + x, Y1 + height - Radius + y, //Lower right corner lower half Color); GLCD_DrawLine( X1 + width - Radius + y, Y1 + Radius - x, //Upper right corner lower half X1 + width - Radius + y, Y1 + height - Radius + x, //Lower right corner upper half Color); if (tSwitch < 0) { tSwitch += 4 * x +6; } else { tSwitch += 4 * (x - y) + 10; y--; } x++; } } } void GLCD_FillTriangle(uint8_t X1, uint8_t Y1, uint8_t X2, uint8_t y2, uint8_t X3, uint8_t Y3, enum Color_t Color) { if (((X1 < __GLCD_Screen_Width) && (X2 < __GLCD_Screen_Width) && (X3 < __GLCD_Screen_Width) && (Y1 < __GLCD_Screen_Height) && (y2 < __GLCD_Screen_Height) && (Y3 < __GLCD_Screen_Height))) { uint8_t sl, sx1, sx2; double m1, m2, m3; sl = sx1 = sx2 = m1 = m2 = m3 = 0; if (y2 > Y3) { __GLCD_Swap(X2, X3); __GLCD_Swap(y2, Y3); } if (Y1 > y2) { __GLCD_Swap(X1, X2); __GLCD_Swap(Y1, y2); } m1 = (double)(X1 - X2) / (Y1 - y2); m2 = (double)(X2 - X3) / (y2 - Y3); m3 = (double)(X3 - X1) / (Y3 - Y1); for(sl = Y1 ; sl <= y2 ; sl++) { sx1= m1 * (sl - Y1) + X1; sx2= m3 * (sl - Y1) + X1; if (sx1> sx2) __GLCD_Swap(sx1, sx2); GLCD_DrawLine(sx1, sl, sx2, sl, Color); } for (sl = y2 ; sl <= Y3 ; sl++) { sx1= m2 * (sl - Y3) + X3; sx2= m3 * (sl - Y1) + X1; if (sx1 > sx2) __GLCD_Swap(sx1, sx2); GLCD_DrawLine(sx1, sl, sx2, sl, Color); } } } void GLCD_FillCircle(const uint8_t CenterX, const uint8_t CenterY, const uint8_t Radius, enum Color_t Color) { if (((CenterX + Radius) < __GLCD_Screen_Width) && ((CenterY + Radius) < __GLCD_Screen_Height)) { int8_t f, ddF_x, ddF_y; uint8_t x, y; f = 1 - Radius; ddF_x = 1; ddF_y = -2 * Radius; x = 0; y = Radius; //Fill in the center between the two halves GLCD_DrawLine(CenterX, CenterY - Radius, CenterX, CenterY + Radius, Color); while(x < y) { //ddF_x = 2 * x + 1; //ddF_y = -2 * y; //f = x*x + y*y - radius*radius + 2*x - y + 1; if (f >= 0) { y--; ddF_y += 2; f += ddF_y; } x++; ddF_x += 2; f += ddF_x; //Now draw vertical lines between the points on the circle rather than //draw the points of the circle. This draws lines between the //perimeter points on the upper and lower quadrants of the 2 halves of the circle. GLCD_DrawVLine(CenterY + y, CenterY - y, CenterX + x, Color); GLCD_DrawVLine(CenterY + y, CenterY - y, CenterX - x, Color); GLCD_DrawVLine(CenterY + x, CenterY - x, CenterX + y, Color); GLCD_DrawVLine(CenterY + x, CenterY - x, CenterX - y, Color); } } } void GLCD_InvertRect(uint8_t X1, uint8_t Y1, uint8_t X2, uint8_t Y2) { uint8_t width, height, offset, mask, h, i, data; width = X2 - X1 + 1; height = Y2 - Y1 + 1; offset = Y1 % __GLCD_Screen_Line_Height; Y1 -= offset; mask = 0xFF; data = 0; //Calculate mask for top fractioned region if (height < (__GLCD_Screen_Line_Height - offset)) { mask >>= (__GLCD_Screen_Line_Height - height); h = height; } else h = __GLCD_Screen_Line_Height - offset; mask <<= offset; //Draw fractional rows at the top of the region GLCD_GotoXY(X1, Y1); for (i = 0 ; i < width ; i++) { data = GLCD_BufferRead(__GLCD.X, __GLCD.Y); data = ((~data) & mask) | (data & (~mask)); GLCD_BufferWrite(__GLCD.X++, __GLCD.Y, data); } //Full rows while ((h + __GLCD_Screen_Line_Height) <= height) { h += __GLCD_Screen_Line_Height; Y1 += __GLCD_Screen_Line_Height; GLCD_GotoXY(X1, Y1); for (i=0 ; i < width ; i++) { data = ~GLCD_BufferRead(__GLCD.X, __GLCD.Y); GLCD_BufferWrite(__GLCD.X++, __GLCD.Y, data); } } //Fractional rows at the bottom of the region if (h < height) { mask = ~(0xFF<<(height - h)); GLCD_GotoXY(X1, (Y1 + __GLCD_Screen_Line_Height)); for (i = 0 ; i < width ; i++) { data = GLCD_BufferRead(__GLCD.X, __GLCD.Y); data = ((~data) & mask) | (data & (~mask)); GLCD_BufferWrite(__GLCD.X++, __GLCD.Y, data); } } } void GLCD_SetFont(const uint8_t *Name, const uint8_t Width, const uint8_t Height, enum PrintMode_t Mode) { if ((Width < __GLCD_Screen_Width) && (Height < __GLCD_Screen_Height) && ((Mode == GLCD_Overwrite) || (Mode == GLCD_Merge))) { //Change font pointer to new font __GLCD.Font.Name = (uint8_t *)(Name); //Update font's size __GLCD.Font.Width = Width; __GLCD.Font.Height = Height; //Update lines required for a character to be fully displayed __GLCD.Font.Lines = (Height - 1) / __GLCD_Screen_Line_Height + 1; //Update blending mode __GLCD.Font.Mode = Mode; } } uint8_t GLCD_GetWidthChar(const char Character) { return (pgm_read_byte(&(__GLCD.Font.Name[(Character - 32) * (__GLCD.Font.Width * __GLCD.Font.Lines + 1)]))); } uint16_t GLCD_GetWidthString(const char *Text) { uint16_t width = 0; while (*Text) width += GLCD_GetWidthChar(*Text++); return width; } uint16_t GLCD_GetWidthString_P(const char *Text) { uint16_t width = 0; char r = pgm_read_byte(Text++); while (r) { width += GLCD_GetWidthChar(r); r = pgm_read_byte(Text++); } return width; } void GLCD_PrintChar(char Character) { uint16_t fontStart, fontRead, fontReadPrev; uint8_t x, y, y2, i, j, width, lines, overflow, data, dataPrev; fontStart = fontRead = fontReadPrev = x = y = y2 = i = j = width = lines = overflow = data = dataPrev = 0; //#1 - Save current position x = __GLCD.X; y = y2 = __GLCD.Y; //#2 - Remove leading empty characters Character -= 32; //32 is the ASCII of the first printable character //#3 - Find the start of the character in the font array fontStart = Character * (__GLCD.Font.Width * __GLCD.Font.Lines + 1); //+1 due to first byte of each array line being the width //#4 - Update width - First byte of each line is the width of the character width = pgm_read_byte(&(__GLCD.Font.Name[fontStart++])); data = __GLCD.X + width; //"data" is used temporarily //If character exceed screen bounds, reduce if (data >= __GLCD_Screen_Width) width -= data-__GLCD_Screen_Width; //#5 - Update lines lines = __GLCD.Font.Lines; data = __GLCD.Y / __GLCD_Screen_Line_Height + lines; //"data" is used temporarily //If character exceed screen bounds, reduce if (data > __GLCD_Screen_Lines) lines -= data - __GLCD_Screen_Lines; //#6 - Calculate overflowing bits overflow = __GLCD.Y % __GLCD_Screen_Line_Height; //#7 - Print the character //Scan the lines needed for (j = 0 ; j < lines ; j++) { //Go to the start of the line GLCD_GotoXY(x, y); //Update the indices for reading the line fontRead = fontStart + j; fontReadPrev = fontRead - 1; //Scan bytes of selected line for (i = 0 ; i < width ; i++) { //Read byte data = pgm_read_byte(&(__GLCD.Font.Name[fontRead])); //Shift byte data <<= overflow; //Merge byte with previous one if (j > 0) { dataPrev = pgm_read_byte(&(__GLCD.Font.Name[fontReadPrev])); dataPrev >>= __GLCD_Screen_Line_Height - overflow; data |= dataPrev; fontReadPrev += __GLCD.Font.Lines; } //Edit byte depending on the mode if (__GLCD.Font.Mode == GLCD_Merge) data |= GLCD_BufferRead(__GLCD.X, __GLCD.Y); //Send byte GLCD_BufferWrite(__GLCD.X++, __GLCD.Y, data); //Increase index fontRead += __GLCD.Font.Lines; } //Send an empty column of 1px in the end if (__GLCD.Font.Mode == GLCD_Overwrite) data = GLCD_White; else data = GLCD_BufferRead(__GLCD.X, __GLCD.Y); GLCD_BufferWrite(__GLCD.X, __GLCD.Y, data); //Increase line counter y += __GLCD_Screen_Line_Height; } //#8 - Update last line, if needed if (lines > 1) { //Go to the start of the line GLCD_GotoXY(x, y); //Update the index for reading the last printed line fontReadPrev = fontStart + j - 1; //Scan bytes of selected line for (i = 0 ; i < width ; i++) { //Read byte data = GLCD_BufferRead(__GLCD.X, __GLCD.Y); //Merge byte with previous one dataPrev = pgm_read_byte(&(__GLCD.Font.Name[fontReadPrev])); dataPrev >>= __GLCD_Screen_Line_Height - overflow; data |= dataPrev; //Edit byte depending on the mode if (__GLCD.Font.Mode == GLCD_Merge) data |= GLCD_BufferRead(__GLCD.X, __GLCD.Y); //Send byte GLCD_BufferWrite(__GLCD.X, __GLCD.Y, data); //Increase index fontReadPrev += __GLCD.Font.Lines; } //Send an empty column of 1px in the end if (__GLCD.Font.Mode == GLCD_Overwrite) data = GLCD_White; else if (__GLCD.Font.Mode == GLCD_Merge) data = GLCD_BufferRead(__GLCD.X, __GLCD.Y); else data = ~GLCD_BufferRead(__GLCD.X, __GLCD.Y); GLCD_BufferWrite(__GLCD.X++, __GLCD.Y,data); } //Move cursor to the end of the printed character GLCD_GotoXY(x + width + 1, y2); } void GLCD_PrintString(const char *Text) { while(*Text) { if ((__GLCD.X + __GLCD.Font.Width) >= __GLCD_Screen_Width) break; GLCD_PrintChar(*Text++); } } void GLCD_PrintString_P(const char *Text) { char r = pgm_read_byte(Text++); while(r) { if ((__GLCD.X + __GLCD.Font.Width) >= __GLCD_Screen_Width) break; GLCD_PrintChar(r); r = pgm_read_byte(Text++); } } void GLCD_PrintInteger(const int32_t Value) { if (Value == 0) { GLCD_PrintChar('0'); } else if ((Value > INT32_MIN) && (Value <= INT32_MAX)) { //int32_max + sign + null = 12 bytes char bcd[12] = { '\0' }; //Convert integer to array Int2bcd(Value, bcd); //Print from first non-zero digit GLCD_PrintString(bcd); } } void GLCD_PrintDouble(double Value, const uint32_t Tens) { if (Value == 0) { //Print characters individually so no string is stored in RAM GLCD_PrintChar('0'); GLCD_PrintChar('.'); GLCD_PrintChar('0'); } else if ((Value >= (-2147483647)) && (Value < 2147483648)) { //Print sign if (Value<0) { Value = -Value; GLCD_PrintChar('-'); } //Print integer part GLCD_PrintInteger(Value); //Print dot GLCD_PrintChar('.'); //Print decimal part GLCD_PrintInteger((Value - (uint32_t)(Value)) * Tens); } } static void GLCD_Send(const uint8_t Data) { //Send nibble DigitalWrite(GPIOA,GLCD_D0, BitCheck(Data, 0)); DigitalWrite(GPIOA,GLCD_D1, BitCheck(Data, 1)); DigitalWrite(GPIOA,GLCD_D2, BitCheck(Data, 2)); DigitalWrite(GPIOA,GLCD_D3, BitCheck(Data, 3)); DigitalWrite(GPIOA,GLCD_D4, BitCheck(Data, 4)); DigitalWrite(GPIOA,GLCD_D5, BitCheck(Data, 5)); DigitalWrite(GPIOA,GLCD_D6, BitCheck(Data, 6)); DigitalWrite(GPIOA,GLCD_D7, BitCheck(Data, 7)); Pulse_En(); } static void GLCD_WaitBusy(enum Chip_t Chip) { uint8_t status = 0; GLCD_SelectChip(Chip); //Busy pin = Input PinMode(GPIOA,GLCD_D7, Input); DigitalWrite(GPIOB,GLCD_DI, Low); DigitalWrite(GPIOB,GLCD_RW, High); DigitalWrite(GPIOB,GLCD_EN, Low); _delay_us(__GLCD_Pulse_En); //Send Enable pulse and wait till busy flag goes Low do { DigitalWrite(GPIOB,GLCD_EN, High); _delay_us(__GLCD_Pulse_En); status = DigitalRead(GPIOA,GLCD_D7) << 7; DigitalWrite(GPIOB,GLCD_EN, Low); _delay_us(__GLCD_Pulse_En<<3); } while(BitCheck(status, __GLCD_BUSY_FLAG)); DigitalWrite(GPIOB,GLCD_RW, Low); //Busy pin = Output PinMode(GPIOA,GLCD_D7, Output); } static void GLCD_BufferWrite(const uint8_t X, const uint8_t Y, const uint8_t Data) { //a>>3 = a/8 __GLCD_Buffer[X][Y>>3] = Data; } static uint8_t GLCD_BufferRead(const uint8_t X, const uint8_t Y) { //a>>3 = a/8 return (__GLCD_Buffer[X][Y>>3]); } static void GLCD_SelectChip(enum Chip_t Chip) { uint8_t on, off; #if (GLCD_ACTIVE_LOW != 0) on = 0; off = 1; #else on = 1; off = 0; #endif if(Chip == Chip_1) { DigitalWrite(GPIOB,GLCD_CS2, off); DigitalWrite(GPIOB,GLCD_CS1, on); } else if (Chip == Chip_2) { DigitalWrite(GPIOB,GLCD_CS1, off); DigitalWrite(GPIOB,GLCD_CS2, on); } else { DigitalWrite(GPIOB,GLCD_CS1, on); DigitalWrite(GPIOB,GLCD_CS2, on); } } static void __GLCD_GotoX(const uint8_t X) { if (X < __GLCD_Screen_Width) { uint8_t chip, cmd; //Update command chip = __GLCD_XtoChip(X); cmd = ((chip == Chip_1) ? (__GLCD_Command_Set_Address | X) : (__GLCD_Command_Set_Address | (X - __GLCD_Screen_Width / __GLCD_Screen_Chips))); //Update tracker __GLCD.X = X; //Send command GLCD_SendCommand(cmd, chip); } } static void __GLCD_GotoY(const uint8_t Y) { if (Y < __GLCD_Screen_Height) { uint8_t cmd; //Update command cmd = __GLCD_Command_Set_Page | (Y / __GLCD_Screen_Line_Height); //Update tracker __GLCD.Y = Y; //Send command GLCD_SendCommand(cmd, Chip_All); } } static inline void GLCD_DrawHLine(uint8_t X1, uint8_t X2, const uint8_t Y, enum Color_t Color) { if (X1 > X2) __GLCD_Swap(X1, X2); while (X1 <= X2) { GLCD_SetPixel(X1, Y, Color); X1++; } } static inline void GLCD_DrawVLine(uint8_t Y1, uint8_t Y2, const uint8_t X, enum Color_t Color) { if (Y1 > Y2) __GLCD_Swap(Y1, Y2); GLCD_SetPixels(X, Y1, X, Y2, Color); } static inline void Pulse_En(void) { DigitalWrite(GPIOB,GLCD_EN, High); _delay_us(__GLCD_Pulse_En); DigitalWrite(GPIOB,GLCD_EN, Low); _delay_us(__GLCD_Pulse_En); } static void Int2bcd(int32_t Value, char BCD[]) { uint8_t isNegative = 0; BCD[0] = BCD[1] = BCD[2] = BCD[3] = BCD[4] = BCD[5] = BCD[6] = BCD[7] = BCD[8] = BCD[9] = BCD[10] = '0'; if (Value < 0) { isNegative = 1; Value = -Value; } while (Value > 1000000000) { Value -= 1000000000; BCD[1]++; } while (Value >= 100000000) { Value -= 100000000; BCD[2]++; } while (Value >= 10000000) { Value -= 10000000; BCD[3]++; } while (Value >= 1000000) { Value -= 1000000; BCD[4]++; } while (Value >= 100000) { Value -= 100000; BCD[5]++; } while (Value >= 10000) { Value -= 10000; BCD[6]++; } while (Value >= 1000) { Value -= 1000; BCD[7]++; } while (Value >= 100) { Value -= 100; BCD[8]++; } while (Value >= 10) { Value -= 10; BCD[9]++; } while (Value >= 1) { Value -= 1; BCD[10]++; } uint8_t i = 0; //Find first non zero digit while (BCD[i] == '0') i++; //Add sign if (isNegative) { i--; BCD[i] = '-'; } //Shift array uint8_t end = 10 - i; uint8_t offset = i; i = 0; while (i <= end) { BCD[i] = BCD[i + offset]; i++; } BCD[i] = '\0'; } //-----------------------------//
/* * IO_Macros.h * * Created on: May 13, 2024 * Author: PC-MAGHREBI */ #ifndef IO_MACROS_H_INCLUDED #define IO_MACROS_H_INCLUDED #include "main.h" // Define GPIO port and pin macros for STM32 #define PORTA GPIOA #define PORTB GPIOB #define PORTC GPIOC // Add more ports as needed... #define PinMode(port, pin, mode) \ do { \ GPIO_InitTypeDef GPIO_InitStruct; \ GPIO_InitStruct.Pin = pin; \ GPIO_InitStruct.Mode = mode; \ GPIO_InitStruct.Pull = GPIO_NOPULL; \ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; \ HAL_GPIO_Init(port, &GPIO_InitStruct); \ } while(0) #define DigitalRead(port, pin) HAL_GPIO_ReadPin(port, pin) #define DigitalWrite(port, pin, value) HAL_GPIO_WritePin(port, pin, value ? GPIO_PIN_SET : GPIO_PIN_RESET) #define DigitalLevelToggle(pin) HAL_GPIO_TogglePin(pin) #define BitSet(x, y) ((x) |= (1U << (y))) #define BitClear(x, y) ((x) &= ~(1U << (y))) #define BitToggle(x, y) ((x) ^= (1U << (y))) #define BitCheck(x, y) (((x) & (1U << (y))) != 0) #define Input GPIO_MODE_INPUT #define Output GPIO_MODE_OUTPUT_PP #define Low GPIO_PIN_RESET #define High GPIO_PIN_SET #define False 0 #define True 1 #define pgm_read_byte(address) (*(const unsigned char *)(address)) //------------------ #endif
- Fonts11x13.hÂ
- Fonts27x28.hÂ
- main.c
/* * Fonts11x13.h * * Created on: May 13, 2024 * Author: PC-MAGHREBI */ #ifndef INC_FONTS11X13_H_ #define INC_FONTS11X13_H_ //GLCD FontSize : 11 x 13 const uint8_t Font_11x13[] = { 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 0x02, 0x00, 0x00, 0x7E, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ! 0x04, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char " 0x08, 0x00, 0x00, 0x40, 0x00, 0x48, 0x03, 0xF8, 0x00, 0x4E, 0x03, 0xF8, 0x00, 0x4E, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char # 0x06, 0x18, 0x02, 0x24, 0x02, 0xFF, 0x0F, 0x44, 0x02, 0x44, 0x02, 0x84, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char $ 0x0B, 0x00, 0x00, 0x1C, 0x00, 0x22, 0x00, 0x22, 0x02, 0x9C, 0x01, 0x60, 0x00, 0x10, 0x00, 0xCC, 0x01, 0x22, 0x02, 0x20, 0x02, 0xC0, 0x01, // Code for char % 0x08, 0xCC, 0x01, 0x32, 0x02, 0x22, 0x02, 0x22, 0x02, 0x52, 0x02, 0x8C, 0x01, 0xE0, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char & 0x02, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ' 0x05, 0x00, 0x00, 0xF0, 0x01, 0x0C, 0x06, 0x02, 0x08, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ( 0x04, 0x01, 0x10, 0x02, 0x08, 0x0C, 0x06, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ) 0x06, 0x00, 0x00, 0x0A, 0x00, 0x04, 0x00, 0x1F, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char * 0x07, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xFC, 0x01, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char + 0x02, 0x00, 0x08, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char , 0x04, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char - 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char . 0x05, 0x00, 0x0C, 0x80, 0x03, 0x60, 0x00, 0x1C, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char / 0x06, 0xFC, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0xFC, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 0 0x06, 0x00, 0x00, 0x04, 0x02, 0x04, 0x02, 0xFE, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 1 0x06, 0x04, 0x03, 0x82, 0x02, 0x42, 0x02, 0x42, 0x02, 0x22, 0x02, 0x1C, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 2 0x06, 0x04, 0x01, 0x02, 0x02, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0xDC, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 3 0x06, 0x60, 0x00, 0x50, 0x00, 0x48, 0x00, 0x44, 0x00, 0xFE, 0x03, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 4 0x06, 0x1E, 0x01, 0x12, 0x02, 0x12, 0x02, 0x12, 0x02, 0x12, 0x02, 0xE2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 5 0x06, 0xF8, 0x01, 0x14, 0x02, 0x12, 0x02, 0x12, 0x02, 0x12, 0x02, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 6 0x06, 0x02, 0x00, 0x02, 0x02, 0x82, 0x01, 0x62, 0x00, 0x1A, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 7 0x06, 0xDC, 0x01, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0xDC, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 8 0x06, 0x3C, 0x00, 0x42, 0x02, 0x42, 0x02, 0x42, 0x02, 0x42, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 9 0x03, 0x00, 0x00, 0x00, 0x00, 0x18, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char : 0x03, 0x00, 0x00, 0x00, 0x08, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ; 0x08, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x50, 0x00, 0x50, 0x00, 0x88, 0x00, 0x88, 0x00, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char < 0x08, 0x00, 0x00, 0x90, 0x00, 0x90, 0x00, 0x90, 0x00, 0x90, 0x00, 0x90, 0x00, 0x90, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char = 0x08, 0x00, 0x00, 0x04, 0x01, 0x88, 0x00, 0x88, 0x00, 0x50, 0x00, 0x50, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char > 0x05, 0x04, 0x00, 0x42, 0x03, 0x22, 0x00, 0x12, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ? 0x0B, 0xF0, 0x00, 0x0C, 0x03, 0x04, 0x02, 0xF2, 0x04, 0x0A, 0x05, 0x0A, 0x05, 0x0A, 0x05, 0xFA, 0x05, 0x04, 0x01, 0x0C, 0x01, 0xF0, 0x00, // Code for char @ 0x07, 0x00, 0x03, 0xE0, 0x00, 0x98, 0x00, 0x86, 0x00, 0x98, 0x00, 0xE0, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char A 0x06, 0xFE, 0x03, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0x3C, 0x02, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char B 0x07, 0xF8, 0x00, 0x04, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char C 0x07, 0xFE, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char D 0x06, 0xFE, 0x03, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char E 0x06, 0xFE, 0x03, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char F 0x07, 0xF8, 0x00, 0x04, 0x01, 0x02, 0x02, 0x02, 0x02, 0x42, 0x02, 0x42, 0x02, 0xC4, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char G 0x07, 0xFE, 0x03, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xFE, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char H 0x03, 0x02, 0x02, 0xFE, 0x03, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char I 0x04, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char J 0x06, 0xFE, 0x03, 0x20, 0x00, 0x50, 0x00, 0x88, 0x00, 0x04, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char K 0x05, 0xFE, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char L 0x09, 0xFE, 0x03, 0x06, 0x00, 0x18, 0x00, 0x60, 0x00, 0x80, 0x01, 0x60, 0x00, 0x18, 0x00, 0x06, 0x00, 0xFE, 0x03, 0x00, 0x00, 0x00, 0x00, // Code for char M 0x07, 0xFE, 0x03, 0x06, 0x00, 0x18, 0x00, 0x20, 0x00, 0xC0, 0x00, 0x00, 0x03, 0xFE, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char N 0x08, 0xF8, 0x00, 0x04, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char O 0x06, 0xFE, 0x03, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char P 0x08, 0xF8, 0x00, 0x04, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x06, 0x02, 0x0A, 0x04, 0x09, 0xF8, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Q 0x07, 0xFE, 0x03, 0x22, 0x00, 0x22, 0x00, 0x62, 0x00, 0xA2, 0x00, 0x1C, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char R 0x07, 0x1C, 0x01, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0xC4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char S 0x07, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFE, 0x03, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char T 0x07, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char U 0x07, 0x0E, 0x00, 0x30, 0x00, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x30, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char V 0x0B, 0x1E, 0x00, 0xE0, 0x01, 0x00, 0x02, 0xC0, 0x01, 0x38, 0x00, 0x06, 0x00, 0x38, 0x00, 0xC0, 0x01, 0x00, 0x02, 0xE0, 0x01, 0x1E, 0x00, // Code for char W 0x07, 0x02, 0x02, 0x04, 0x01, 0xD8, 0x00, 0x20, 0x00, 0xD8, 0x00, 0x04, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char X 0x07, 0x02, 0x00, 0x0C, 0x00, 0x10, 0x00, 0xE0, 0x03, 0x10, 0x00, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Y 0x06, 0x02, 0x03, 0x82, 0x02, 0x62, 0x02, 0x12, 0x02, 0x0A, 0x02, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Z 0x04, 0x00, 0x00, 0xFF, 0x0F, 0x01, 0x08, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char [ 0x05, 0x03, 0x00, 0x1C, 0x00, 0x60, 0x00, 0x80, 0x03, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char BackSlash 0x04, 0x00, 0x00, 0x01, 0x08, 0x01, 0x08, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ] 0x09, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ^ 0x07, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char _ 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ` 0x06, 0x80, 0x01, 0x48, 0x02, 0x48, 0x02, 0x48, 0x02, 0x48, 0x01, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char a 0x06, 0xFF, 0x03, 0x10, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char b 0x05, 0xF0, 0x01, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char c 0x06, 0xF0, 0x01, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x01, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char d 0x06, 0xF0, 0x01, 0x48, 0x02, 0x48, 0x02, 0x48, 0x02, 0x48, 0x02, 0x70, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char e 0x05, 0x08, 0x00, 0xFE, 0x03, 0x09, 0x00, 0x09, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char f 0x06, 0xF0, 0x01, 0x08, 0x12, 0x08, 0x12, 0x08, 0x12, 0x08, 0x11, 0xF8, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char g 0x06, 0xFF, 0x03, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char h 0x02, 0x00, 0x00, 0xFA, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char i 0x03, 0x00, 0x10, 0x08, 0x10, 0xFA, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char j 0x05, 0xFF, 0x03, 0x40, 0x00, 0xA0, 0x00, 0x10, 0x01, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char k 0x02, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char l 0x0A, 0x00, 0x00, 0xF8, 0x03, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0xF0, 0x03, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0xF0, 0x03, 0x00, 0x00, // Code for char m 0x06, 0xF8, 0x03, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char n 0x06, 0xF0, 0x01, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char o 0x06, 0xF8, 0x1F, 0x10, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char p 0x06, 0xF0, 0x01, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x01, 0xF8, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char q 0x04, 0xF8, 0x03, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char r 0x05, 0x30, 0x01, 0x48, 0x02, 0x48, 0x02, 0x48, 0x02, 0x90, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char s 0x04, 0x08, 0x00, 0xFE, 0x01, 0x08, 0x02, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char t 0x06, 0xF8, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0xF8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char u 0x05, 0x18, 0x00, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char v 0x09, 0x18, 0x00, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x18, 0x00, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char w 0x05, 0x08, 0x02, 0xB0, 0x01, 0x40, 0x00, 0xB0, 0x01, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char x 0x05, 0x18, 0x00, 0xE0, 0x18, 0x00, 0x07, 0xE0, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char y 0x05, 0x08, 0x03, 0x88, 0x02, 0x48, 0x02, 0x28, 0x02, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char z 0x05, 0x40, 0x00, 0x40, 0x00, 0xBE, 0x07, 0x01, 0x08, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char { 0x03, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char | 0x05, 0x01, 0x08, 0x01, 0x08, 0xBE, 0x07, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char } 0x08, 0x00, 0x00, 0x60, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ~ 0x03, 0xFF, 0x03, 0x01, 0x02, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Code for char }; #endif /* INC_FONTS11X13_H_ */
/* * Fonts27x28.h * * Created on: May 13, 2024 * Author: PC-MAGHREBI */ #ifndef INC_FONTS27X28_H_ #define INC_FONTS27X28_H_ const uint8_t Font_27x28[] = { 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x7F, 0x0E, 0x00, 0xFC, 0x7F, 0x0F, 0x00, 0xFC, 0x7F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ! 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char " 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x80, 0x61, 0x00, 0x00, 0x80, 0x61, 0x0C, 0x00, 0x80, 0xE1, 0x0F, 0x00, 0x80, 0xFD, 0x0F, 0x00, 0x80, 0x7F, 0x00, 0x00, 0xF8, 0x6F, 0x00, 0x00, 0xFC, 0x61, 0x0C, 0x00, 0x8C, 0xE1, 0x0F, 0x00, 0x80, 0xFD, 0x0F, 0x00, 0x80, 0x7F, 0x00, 0x00, 0xF8, 0x6F, 0x00, 0x00, 0xFC, 0x61, 0x00, 0x00, 0x8C, 0x61, 0x00, 0x00, 0x80, 0x21, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char # 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x01, 0x00, 0xC0, 0xC7, 0x03, 0x00, 0xE0, 0x8F, 0x03, 0x00, 0x70, 0x0C, 0x07, 0x00, 0x30, 0x0C, 0x06, 0x00, 0x18, 0x0C, 0x06, 0x00, 0x18, 0x04, 0x06, 0x00, 0xFF, 0xFF, 0x7F, 0x00, 0xFE, 0xFF, 0x3F, 0x00, 0x18, 0x06, 0x06, 0x00, 0x18, 0x06, 0x03, 0x00, 0x18, 0x06, 0x03, 0x00, 0x38, 0x86, 0x03, 0x00, 0x70, 0xFE, 0x01, 0x00, 0x70, 0xFC, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char $ 0x15, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x1C, 0x03, 0x04, 0x00, 0x0C, 0x03, 0x0E, 0x00, 0x8C, 0x83, 0x0F, 0x00, 0xFC, 0xC1, 0x03, 0x00, 0xF8, 0xF0, 0x00, 0x00, 0x70, 0x7C, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x80, 0x07, 0x03, 0x00, 0xE0, 0x83, 0x07, 0x00, 0xF0, 0xC0, 0x0F, 0x00, 0x3C, 0xC0, 0x0C, 0x00, 0x1C, 0x60, 0x0C, 0x00, 0x08, 0x60, 0x0C, 0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char % 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x07, 0x00, 0x70, 0x1C, 0x0E, 0x00, 0xF8, 0x0E, 0x0C, 0x00, 0xF8, 0x0F, 0x0C, 0x00, 0xDC, 0x07, 0x0C, 0x00, 0x8C, 0x07, 0x0C, 0x00, 0x0C, 0x0F, 0x0C, 0x00, 0x0C, 0x1F, 0x06, 0x00, 0x8C, 0x1F, 0x06, 0x00, 0xCC, 0x39, 0x07, 0x00, 0xF8, 0x71, 0x03, 0x00, 0xF8, 0xF0, 0x03, 0x00, 0x70, 0xE0, 0x01, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x3C, 0x07, 0x00, 0x00, 0x18, 0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char & 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ' 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x03, 0x00, 0x00, 0xFF, 0x1F, 0x00, 0xC0, 0xFF, 0x3F, 0x00, 0xE0, 0x03, 0xFC, 0x00, 0xF0, 0x00, 0xE0, 0x01, 0x38, 0x00, 0xC0, 0x01, 0x3C, 0x00, 0x80, 0x03, 0x1C, 0x00, 0x80, 0x03, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ( 0x0A, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x80, 0x03, 0x3C, 0x00, 0x80, 0x03, 0x38, 0x00, 0xC0, 0x01, 0xF0, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0xFC, 0x00, 0xC0, 0xFF, 0x3F, 0x00, 0x00, 0xFF, 0x1F, 0x00, 0x00, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ) 0x0A, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x4C, 0x02, 0x00, 0x00, 0xD8, 0x03, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0xAC, 0x01, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char * 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char , 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char - 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char . 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char / 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0x07, 0x00, 0xC0, 0x03, 0x07, 0x00, 0xE0, 0x01, 0x0E, 0x00, 0x70, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x38, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x08, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x07, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x1C, 0x80, 0x03, 0x00, 0x18, 0xC0, 0x01, 0x00, 0x38, 0xF0, 0x00, 0x00, 0xF0, 0x7F, 0x00, 0x00, 0xE0, 0x3F, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 0 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 1 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x0E, 0x00, 0xE0, 0x00, 0x0F, 0x00, 0xF0, 0xC0, 0x0F, 0x00, 0x38, 0xE0, 0x0D, 0x00, 0x18, 0xE0, 0x0C, 0x00, 0x18, 0x70, 0x0C, 0x00, 0x0C, 0x30, 0x0C, 0x00, 0x0C, 0x38, 0x0C, 0x00, 0x0C, 0x38, 0x0C, 0x00, 0x0C, 0x1C, 0x0C, 0x00, 0x0C, 0x1C, 0x0C, 0x00, 0x0C, 0x0C, 0x0C, 0x00, 0x0C, 0x0E, 0x0C, 0x00, 0x18, 0x0F, 0x0C, 0x00, 0xF8, 0x07, 0x0E, 0x00, 0xF8, 0x03, 0x0F, 0x00, 0xE0, 0x01, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 2 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x7C, 0xC0, 0x07, 0x00, 0x7C, 0xC0, 0x07, 0x00, 0x7C, 0x00, 0x0E, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x0E, 0x0C, 0x00, 0x0C, 0x06, 0x0C, 0x00, 0x0C, 0x07, 0x0C, 0x00, 0x0C, 0x07, 0x0C, 0x00, 0x8C, 0x03, 0x0C, 0x00, 0xCC, 0x03, 0x06, 0x00, 0xEC, 0x03, 0x06, 0x00, 0x7C, 0x03, 0x06, 0x00, 0x3C, 0x03, 0x03, 0x00, 0x1C, 0xC7, 0x03, 0x00, 0x0C, 0xFE, 0x01, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 3 0x16, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0xEE, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x80, 0x63, 0x00, 0x00, 0xC0, 0x61, 0x00, 0x00, 0xE0, 0x60, 0x00, 0x00, 0x70, 0x60, 0x00, 0x00, 0x38, 0x70, 0x00, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 4 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x03, 0x00, 0xF8, 0x1F, 0x07, 0x00, 0xF8, 0x1F, 0x07, 0x00, 0xF8, 0x0D, 0x0E, 0x00, 0x08, 0x0E, 0x0C, 0x00, 0x08, 0x06, 0x0C, 0x00, 0x08, 0x06, 0x0C, 0x00, 0x08, 0x02, 0x0C, 0x00, 0x08, 0x03, 0x0C, 0x00, 0x08, 0x03, 0x0C, 0x00, 0x08, 0x03, 0x0C, 0x00, 0x08, 0x03, 0x06, 0x00, 0x0C, 0x03, 0x06, 0x00, 0x0C, 0x03, 0x07, 0x00, 0x0C, 0x07, 0x03, 0x00, 0x0C, 0xC6, 0x03, 0x00, 0x0C, 0xFE, 0x01, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 5 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x80, 0xFF, 0x03, 0x00, 0xC0, 0xC7, 0x07, 0x00, 0xE0, 0xE1, 0x07, 0x00, 0x60, 0x70, 0x0E, 0x00, 0x70, 0x30, 0x0C, 0x00, 0x38, 0x38, 0x0C, 0x00, 0x18, 0x1C, 0x0C, 0x00, 0x18, 0x0C, 0x0C, 0x00, 0x0C, 0x0C, 0x0C, 0x00, 0x0C, 0x06, 0x0C, 0x00, 0x0C, 0x06, 0x0E, 0x00, 0x0C, 0x06, 0x06, 0x00, 0x0C, 0x06, 0x06, 0x00, 0x0C, 0x06, 0x07, 0x00, 0x0C, 0x06, 0x03, 0x00, 0x38, 0x8E, 0x03, 0x00, 0x78, 0xFC, 0x01, 0x00, 0x30, 0xFC, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 6 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x0E, 0x00, 0x0C, 0x80, 0x0F, 0x00, 0x0C, 0xE0, 0x07, 0x00, 0x0C, 0xF0, 0x01, 0x00, 0x0C, 0xFC, 0x00, 0x00, 0x0C, 0x3E, 0x00, 0x00, 0x8C, 0x1F, 0x00, 0x00, 0xEC, 0x07, 0x00, 0x00, 0xFC, 0x03, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 7 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0xF0, 0x07, 0x00, 0xC0, 0x79, 0x06, 0x00, 0xF0, 0x3B, 0x0E, 0x00, 0xF8, 0x1F, 0x0C, 0x00, 0x38, 0x0E, 0x0C, 0x00, 0x18, 0x0C, 0x0C, 0x00, 0x1C, 0x0C, 0x0C, 0x00, 0x0C, 0x06, 0x0C, 0x00, 0x0C, 0x06, 0x0C, 0x00, 0x0C, 0x06, 0x06, 0x00, 0x0C, 0x06, 0x06, 0x00, 0x0C, 0x06, 0x06, 0x00, 0x1C, 0x07, 0x03, 0x00, 0xF8, 0x07, 0x03, 0x00, 0xF8, 0x86, 0x03, 0x00, 0x70, 0xCE, 0x01, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 8 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x80, 0x83, 0x03, 0x00, 0xE0, 0x87, 0x07, 0x00, 0xF0, 0x0F, 0x07, 0x00, 0x70, 0x0C, 0x0E, 0x00, 0x38, 0x1C, 0x0C, 0x00, 0x18, 0x18, 0x0C, 0x00, 0x1C, 0x18, 0x0C, 0x00, 0x0C, 0x18, 0x0C, 0x00, 0x0C, 0x18, 0x0C, 0x00, 0x0C, 0x18, 0x0C, 0x00, 0x0C, 0x18, 0x04, 0x00, 0x0C, 0x0C, 0x06, 0x00, 0x0C, 0x0C, 0x06, 0x00, 0x1C, 0x0C, 0x07, 0x00, 0x18, 0x86, 0x03, 0x00, 0x38, 0xC7, 0x03, 0x00, 0xF0, 0xE3, 0x01, 0x00, 0xF0, 0xFF, 0x00, 0x00, 0xE0, 0x7F, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 9 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0E, 0x00, 0x00, 0x1E, 0x0F, 0x00, 0x00, 0x0C, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char : 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x0C, 0x6F, 0x00, 0x00, 0x1E, 0x3F, 0x00, 0x00, 0x0E, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ; 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0xD8, 0x01, 0x00, 0x00, 0x9C, 0x03, 0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x0E, 0x07, 0x00, 0x00, 0x07, 0x0E, 0x00, 0x00, 0x07, 0x0E, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char < 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char = 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x07, 0x0E, 0x00, 0x00, 0x07, 0x0E, 0x00, 0x00, 0x0E, 0x07, 0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x9C, 0x03, 0x00, 0x00, 0xD8, 0x01, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char > 0x10, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x78, 0x70, 0x00, 0x00, 0x18, 0xF8, 0x00, 0x00, 0x18, 0xFC, 0x1C, 0x00, 0x0C, 0xDC, 0x1E, 0x00, 0x0C, 0xCE, 0x0E, 0x00, 0x0C, 0xC7, 0x00, 0x00, 0x0C, 0xF7, 0x00, 0x00, 0x8C, 0x73, 0x00, 0x00, 0xDC, 0x21, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ? 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0xE0, 0x1F, 0x00, 0x00, 0x78, 0x38, 0x00, 0x00, 0x1C, 0x30, 0x00, 0x00, 0x0E, 0x70, 0x00, 0x00, 0x06, 0x67, 0x00, 0x00, 0xC3, 0x67, 0x00, 0x80, 0xE3, 0x6F, 0x00, 0x80, 0x71, 0x6C, 0x00, 0x80, 0x39, 0x6C, 0x00, 0xC0, 0x18, 0x6C, 0x00, 0xC0, 0x0C, 0x66, 0x00, 0xC0, 0x0C, 0x36, 0x00, 0x60, 0x04, 0x33, 0x00, 0x60, 0x86, 0x3B, 0x00, 0x60, 0x86, 0x11, 0x00, 0x60, 0xC6, 0x07, 0x00, 0x60, 0xFE, 0x0F, 0x00, 0x60, 0xFE, 0x0F, 0x00, 0x60, 0x0E, 0x0C, 0x00, 0x60, 0x00, 0x0C, 0x00, 0xC0, 0x00, 0x06, 0x00, 0xC0, 0x01, 0x06, 0x00, 0x80, 0x83, 0x03, 0x00, 0x00, 0xFF, 0x01, 0x00, 0x00, 0x7C, 0x00, 0x00, // Code for char @ 0x15, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0xE0, 0x1B, 0x00, 0x00, 0xF8, 0x18, 0x00, 0x00, 0x7C, 0x18, 0x00, 0x00, 0x7C, 0x18, 0x00, 0x00, 0xF8, 0x18, 0x00, 0x00, 0xE0, 0x1B, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char A 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xF8, 0xFF, 0x0F, 0x00, 0x18, 0x06, 0x0C, 0x00, 0x18, 0x06, 0x0C, 0x00, 0x18, 0x07, 0x0C, 0x00, 0x0C, 0x07, 0x04, 0x00, 0x0C, 0x03, 0x06, 0x00, 0x0C, 0x03, 0x06, 0x00, 0x8C, 0x03, 0x06, 0x00, 0x8C, 0x03, 0x07, 0x00, 0xCC, 0x03, 0x03, 0x00, 0xCC, 0x03, 0x03, 0x00, 0xFC, 0x83, 0x03, 0x00, 0x78, 0xC3, 0x01, 0x00, 0x38, 0xE7, 0x01, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char B 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0xFF, 0x01, 0x00, 0xC0, 0xFF, 0x07, 0x00, 0xE0, 0x83, 0x07, 0x00, 0xF0, 0x00, 0x0E, 0x00, 0x30, 0x00, 0x0E, 0x00, 0x38, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x07, 0x00, 0x0C, 0x00, 0x07, 0x00, 0x18, 0xC0, 0x03, 0x00, 0x38, 0xC0, 0x01, 0x00, 0x38, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char C 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0x38, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x1C, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x07, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x0C, 0x80, 0x03, 0x00, 0x0C, 0x80, 0x03, 0x00, 0x1C, 0xC0, 0x01, 0x00, 0x18, 0xE0, 0x01, 0x00, 0x78, 0xF8, 0x00, 0x00, 0xF0, 0x7F, 0x00, 0x00, 0xE0, 0x1F, 0x00, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char D 0x13, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0x18, 0x0C, 0x06, 0x00, 0x18, 0x0C, 0x06, 0x00, 0x18, 0x0C, 0x06, 0x00, 0x18, 0x0C, 0x06, 0x00, 0x18, 0x0C, 0x06, 0x00, 0x18, 0x0C, 0x06, 0x00, 0x18, 0x0C, 0x06, 0x00, 0x18, 0x0C, 0x06, 0x00, 0x18, 0x0E, 0x06, 0x00, 0x1C, 0x0E, 0x06, 0x00, 0x1C, 0x04, 0x06, 0x00, 0x1C, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char E 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0x38, 0x1C, 0x00, 0x00, 0x38, 0x1C, 0x00, 0x00, 0x38, 0x0C, 0x00, 0x00, 0x18, 0x0C, 0x00, 0x00, 0x18, 0x0C, 0x00, 0x00, 0x18, 0x0C, 0x00, 0x00, 0x18, 0x0C, 0x00, 0x00, 0x18, 0x0E, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char F 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x80, 0xFF, 0x03, 0x00, 0xC0, 0x87, 0x07, 0x00, 0xE0, 0x01, 0x06, 0x00, 0xE0, 0x00, 0x0E, 0x00, 0x70, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x38, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x0C, 0x10, 0x0C, 0x00, 0x0C, 0x18, 0x06, 0x00, 0x0C, 0x18, 0x06, 0x00, 0x0C, 0x18, 0x06, 0x00, 0x0C, 0x18, 0x03, 0x00, 0x0C, 0x98, 0x03, 0x00, 0x1C, 0xCC, 0x01, 0x00, 0x18, 0xEC, 0x01, 0x00, 0x38, 0xFC, 0x00, 0x00, 0x10, 0x7C, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char G 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char H 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char I 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x07, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0xFC, 0xFF, 0x07, 0x00, 0xFC, 0xFF, 0x03, 0x00, 0xFC, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char J 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xC0, 0x1D, 0x00, 0x00, 0xE0, 0x38, 0x00, 0x00, 0xE0, 0x78, 0x00, 0x00, 0x70, 0x70, 0x00, 0x00, 0x30, 0xE0, 0x00, 0x00, 0x38, 0xC0, 0x01, 0x00, 0x18, 0xC0, 0x03, 0x00, 0x0C, 0x80, 0x03, 0x00, 0x0C, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char K 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char L 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xF0, 0x01, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char M 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xF0, 0x01, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0xC0, 0x03, 0x00, 0xFC, 0xFF, 0x07, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char N 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x80, 0xFF, 0x03, 0x00, 0xC0, 0x83, 0x07, 0x00, 0xE0, 0x01, 0x06, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x38, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x07, 0x00, 0x1C, 0x00, 0x03, 0x00, 0x18, 0xC0, 0x03, 0x00, 0x78, 0xE0, 0x01, 0x00, 0xF0, 0xFF, 0x00, 0x00, 0xE0, 0x7F, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char O 0x13, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0x38, 0x1C, 0x00, 0x00, 0x38, 0x0C, 0x00, 0x00, 0x18, 0x0C, 0x00, 0x00, 0x18, 0x0C, 0x00, 0x00, 0x08, 0x0E, 0x00, 0x00, 0x0C, 0x0E, 0x00, 0x00, 0x0C, 0x06, 0x00, 0x00, 0x0C, 0x07, 0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x8C, 0x03, 0x00, 0x00, 0xCC, 0x01, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char P 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x80, 0xFF, 0x07, 0x00, 0xC0, 0x07, 0x07, 0x00, 0xE0, 0x01, 0x0E, 0x00, 0xE0, 0x00, 0x0C, 0x00, 0x70, 0x00, 0x0C, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x0C, 0x20, 0x0C, 0x00, 0x0C, 0x70, 0x0E, 0x00, 0x0C, 0xF0, 0x06, 0x00, 0x0C, 0xE0, 0x06, 0x00, 0x0C, 0xC0, 0x07, 0x00, 0x1C, 0xC0, 0x03, 0x00, 0x1C, 0xC0, 0x07, 0x00, 0x78, 0xF0, 0x07, 0x00, 0xF0, 0xFF, 0x0E, 0x00, 0xE0, 0x3F, 0x1C, 0x00, 0xC0, 0x0F, 0x1C, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Q 0x15, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0x38, 0x1C, 0x00, 0x00, 0x18, 0x3E, 0x00, 0x00, 0x18, 0x3E, 0x00, 0x00, 0x18, 0x76, 0x00, 0x00, 0x0C, 0x76, 0x00, 0x00, 0x0C, 0xE6, 0x00, 0x00, 0x0C, 0xE3, 0x00, 0x00, 0x0C, 0xC3, 0x00, 0x00, 0x8C, 0xC3, 0x01, 0x00, 0x8C, 0x81, 0x01, 0x00, 0xCC, 0x81, 0x03, 0x00, 0xFC, 0x00, 0x03, 0x00, 0xF8, 0x00, 0x07, 0x00, 0x38, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char R 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x03, 0x00, 0xC0, 0x87, 0x07, 0x00, 0xE0, 0x0F, 0x07, 0x00, 0x70, 0x0C, 0x0E, 0x00, 0x30, 0x0C, 0x0C, 0x00, 0x18, 0x0C, 0x0C, 0x00, 0x18, 0x0C, 0x0C, 0x00, 0x18, 0x0C, 0x0C, 0x00, 0x0C, 0x04, 0x0C, 0x00, 0x0C, 0x04, 0x0C, 0x00, 0x0C, 0x06, 0x0E, 0x00, 0x0C, 0x06, 0x06, 0x00, 0x0C, 0x06, 0x06, 0x00, 0x0C, 0x06, 0x07, 0x00, 0x1C, 0x06, 0x07, 0x00, 0x38, 0x86, 0x03, 0x00, 0x38, 0xC6, 0x03, 0x00, 0x10, 0xFE, 0x01, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char S 0x12, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x0F, 0x00, 0xF8, 0xFF, 0x0F, 0x00, 0xF8, 0xFF, 0x0F, 0x00, 0x18, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char T 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x03, 0x00, 0xFC, 0xFF, 0x07, 0x00, 0xF8, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0xFC, 0xFF, 0x03, 0x00, 0xFC, 0xFF, 0x01, 0x00, 0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char U 0x13, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0xF8, 0x07, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char V 0x1B, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0xFC, 0x03, 0x00, 0x00, 0xFC, 0x1F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0xFC, 0x07, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, // Code for char W 0x11, 0x00, 0x00, 0x04, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x7C, 0xC0, 0x07, 0x00, 0xF8, 0xE0, 0x03, 0x00, 0xF0, 0xF1, 0x00, 0x00, 0xC0, 0x7B, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0x00, 0xE0, 0xF1, 0x00, 0x00, 0xF0, 0xE0, 0x01, 0x00, 0x78, 0xC0, 0x03, 0x00, 0x3C, 0x80, 0x0F, 0x00, 0x1C, 0x00, 0x0F, 0x00, 0x18, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char X 0x15, 0x18, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0x07, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Y 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x38, 0x00, 0x0F, 0x00, 0x3C, 0x80, 0x0F, 0x00, 0x1C, 0xC0, 0x0F, 0x00, 0x0C, 0xC0, 0x0D, 0x00, 0x0C, 0xE0, 0x0C, 0x00, 0x0C, 0x70, 0x0C, 0x00, 0x0C, 0x38, 0x0C, 0x00, 0x0C, 0x3C, 0x0C, 0x00, 0x0C, 0x1E, 0x0C, 0x00, 0x0C, 0x0F, 0x0C, 0x00, 0x8C, 0x07, 0x0C, 0x00, 0xCC, 0x03, 0x0C, 0x00, 0xEC, 0x01, 0x0C, 0x00, 0xEC, 0x00, 0x0C, 0x00, 0xFC, 0x00, 0x0C, 0x00, 0x7C, 0x00, 0x0E, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x1C, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Z 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x03, 0xFC, 0xFF, 0xFF, 0x03, 0xFC, 0xFF, 0xFF, 0x03, 0x0C, 0x00, 0x00, 0x03, 0x0C, 0x00, 0x00, 0x03, 0x0C, 0x00, 0x00, 0x03, 0x0C, 0x00, 0x00, 0x03, 0x0C, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char [ 0x0B, 0x08, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x00, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char BackSlash 0x09, 0x08, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x03, 0x0C, 0x00, 0x00, 0x03, 0x0C, 0x00, 0x00, 0x03, 0x0C, 0x00, 0x00, 0x01, 0x0C, 0x00, 0x00, 0x01, 0xFC, 0xFF, 0xFF, 0x01, 0xFC, 0xFF, 0xFF, 0x03, 0xF8, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ] 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ^ 0x0D, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char _ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ` 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xCC, 0x0F, 0x00, 0x00, 0xCE, 0x0C, 0x00, 0x00, 0xC6, 0x0C, 0x00, 0x00, 0x66, 0x0C, 0x00, 0x00, 0x63, 0x04, 0x00, 0x00, 0x23, 0x06, 0x00, 0x00, 0x33, 0x06, 0x00, 0x00, 0x33, 0x03, 0x00, 0x00, 0xB3, 0x01, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char a 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0x00, 0x1C, 0x0C, 0x00, 0x00, 0x0E, 0x0C, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x83, 0x03, 0x00, 0x00, 0xC3, 0x01, 0x00, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char b 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x07, 0x00, 0x00, 0x3C, 0x0E, 0x00, 0x00, 0x0E, 0x0C, 0x00, 0x00, 0x06, 0x0C, 0x00, 0x00, 0x07, 0x0C, 0x00, 0x00, 0x03, 0x0C, 0x00, 0x00, 0x03, 0x0C, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0x03, 0x07, 0x00, 0x00, 0x87, 0x07, 0x00, 0x00, 0x86, 0x03, 0x00, 0x00, 0x86, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char c 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0xC0, 0x07, 0x00, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x78, 0x0C, 0x00, 0x00, 0x38, 0x0C, 0x00, 0x00, 0x1C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x06, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x06, 0x03, 0x00, 0x00, 0x86, 0x03, 0x00, 0x00, 0xC6, 0x01, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char d 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x7C, 0x0E, 0x00, 0x00, 0x6C, 0x0C, 0x00, 0x00, 0x66, 0x0C, 0x00, 0x00, 0x66, 0x0C, 0x00, 0x00, 0x33, 0x0C, 0x00, 0x00, 0x33, 0x0C, 0x00, 0x00, 0x33, 0x0E, 0x00, 0x00, 0x33, 0x06, 0x00, 0x00, 0x33, 0x06, 0x00, 0x00, 0x9E, 0x03, 0x00, 0x00, 0x9E, 0x03, 0x00, 0x00, 0x0C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char e 0x0D, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0x00, 0xF0, 0xFF, 0x0F, 0x00, 0xF8, 0xFF, 0x0F, 0x00, 0x1C, 0x06, 0x00, 0x00, 0x0C, 0x06, 0x00, 0x00, 0x0C, 0x06, 0x00, 0x00, 0x0C, 0x06, 0x00, 0x00, 0x38, 0x07, 0x00, 0x00, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char f 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0xF0, 0xCF, 0x01, 0x00, 0x78, 0xCC, 0x01, 0x00, 0x1C, 0x8C, 0x03, 0x00, 0x0C, 0x0C, 0x03, 0x00, 0x06, 0x06, 0x03, 0x00, 0x06, 0x07, 0x03, 0x00, 0x02, 0x03, 0x03, 0x00, 0xC3, 0x83, 0x03, 0x00, 0xF3, 0xC0, 0x01, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char g 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char h 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xFF, 0x0F, 0x00, 0x78, 0xFF, 0x0F, 0x00, 0x38, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char i 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0xFF, 0xFF, 0x03, 0x18, 0xFF, 0xFF, 0x03, 0x3C, 0xFF, 0xFF, 0x01, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char j 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0xDC, 0x01, 0x00, 0x00, 0xDC, 0x01, 0x00, 0x00, 0x8E, 0x03, 0x00, 0x00, 0x07, 0x07, 0x00, 0x80, 0x07, 0x07, 0x00, 0x80, 0x03, 0x0E, 0x00, 0x00, 0x01, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char k 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char l 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char m 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char n 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x07, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x0E, 0x0C, 0x00, 0x00, 0x06, 0x0C, 0x00, 0x00, 0x06, 0x0C, 0x00, 0x00, 0x03, 0x0C, 0x00, 0x00, 0x03, 0x0E, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0x03, 0x07, 0x00, 0x00, 0x87, 0x03, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char o 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x0F, 0x00, 0xFF, 0xFF, 0x0F, 0x00, 0xFF, 0xFF, 0x0F, 0x00, 0x38, 0x0C, 0x00, 0x00, 0x1C, 0x0C, 0x00, 0x00, 0x0E, 0x0C, 0x00, 0x00, 0x06, 0x0C, 0x00, 0x00, 0x03, 0x0E, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0x03, 0x07, 0x00, 0x00, 0x83, 0x03, 0x00, 0x00, 0xC7, 0x03, 0x00, 0x00, 0xFF, 0x01, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char p 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x1C, 0x0E, 0x00, 0x00, 0x0E, 0x0C, 0x00, 0x00, 0x06, 0x0C, 0x00, 0x00, 0x07, 0x0C, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0x03, 0x07, 0x00, 0x00, 0x83, 0x03, 0x00, 0x00, 0xC3, 0x01, 0x00, 0x00, 0xF3, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x07, 0x00, 0xFF, 0xFF, 0x0F, 0x00, 0xFE, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char q 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char r 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x06, 0x00, 0x00, 0x7C, 0x07, 0x00, 0x00, 0x7C, 0x06, 0x00, 0x00, 0x6E, 0x0C, 0x00, 0x00, 0x66, 0x0C, 0x00, 0x00, 0x66, 0x0C, 0x00, 0x00, 0x63, 0x0C, 0x00, 0x00, 0x23, 0x0C, 0x00, 0x00, 0x33, 0x0C, 0x00, 0x00, 0x33, 0x06, 0x00, 0x00, 0x33, 0x06, 0x00, 0x00, 0x33, 0x06, 0x00, 0x00, 0x33, 0x03, 0x00, 0x00, 0xF2, 0x03, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char s 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xE0, 0xFF, 0x07, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x03, 0x0C, 0x00, 0x00, 0x03, 0x0C, 0x00, 0x00, 0x03, 0x04, 0x00, 0x00, 0x03, 0x06, 0x00, 0x80, 0x01, 0x07, 0x00, 0x80, 0x01, 0x03, 0x00, 0x00, 0xC1, 0x03, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char t 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char u 0x0F, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0xC0, 0x07, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char v 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0xC0, 0x07, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char w 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x00, 0x00, 0x07, 0x0E, 0x00, 0x00, 0x0F, 0x07, 0x00, 0x00, 0x9C, 0x03, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0xDC, 0x01, 0x00, 0x00, 0x8E, 0x03, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x07, 0x0E, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char x 0x10, 0x00, 0x02, 0xE0, 0x00, 0x00, 0x07, 0xE0, 0x01, 0x00, 0x1F, 0x80, 0x01, 0x00, 0x3E, 0x80, 0x01, 0x00, 0x78, 0x80, 0x01, 0x00, 0xF0, 0xC0, 0x01, 0x00, 0xE0, 0xE1, 0x00, 0x00, 0x80, 0xF7, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char y 0x0F, 0x00, 0x00, 0x08, 0x00, 0x00, 0x0E, 0x0C, 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x06, 0x0F, 0x00, 0x00, 0x06, 0x0F, 0x00, 0x00, 0x86, 0x0F, 0x00, 0x00, 0xC6, 0x0D, 0x00, 0x00, 0xE6, 0x0C, 0x00, 0x00, 0x76, 0x0C, 0x00, 0x00, 0x3E, 0x0C, 0x00, 0x00, 0x3E, 0x0C, 0x00, 0x00, 0x1E, 0x0C, 0x00, 0x00, 0x0E, 0x0C, 0x00, 0x00, 0x07, 0x0E, 0x00, 0x00, 0x03, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char z 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x01, 0xE0, 0xFF, 0xFF, 0x01, 0xF8, 0x1F, 0xFF, 0x03, 0xF8, 0x0F, 0x00, 0x03, 0x1C, 0x00, 0x00, 0x03, 0x0C, 0x00, 0x00, 0x03, 0x0C, 0x00, 0x00, 0x03, 0x0C, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char { 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char | 0x0C, 0x08, 0x00, 0x00, 0x03, 0x0C, 0x00, 0x00, 0x03, 0x0C, 0x00, 0x00, 0x03, 0x0C, 0x00, 0x80, 0x03, 0x0C, 0x00, 0xFF, 0x01, 0xFC, 0x8F, 0xFF, 0x01, 0xF8, 0xFF, 0x7F, 0x00, 0xF0, 0xFF, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char } 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ~ 0x08, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x1F, 0x00, 0xFE, 0xFF, 0x1F, 0x00, 0x02, 0x00, 0x10, 0x00, 0x02, 0x00, 0x10, 0x00, 0x02, 0x00, 0x10, 0x00, 0xFE, 0xFF, 0x1F, 0x00, 0xFE, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Code for char }; #endif /* INC_FONTS27X28_H_ */
/* Includes ------------------------------------------------------------------*/ #include "main.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "KS0108.h" #include "Fonts11x13.h" #include "Fonts27x28.h" /* Private variables ---------------------------------------------------------*/ /* USER CODE BEGIN PV */ const char txt1[] = "THE "; const char txt2[] = "EMBEDDED "; const char txt3[] = "THINGS "; const char txt4[] = "LIKE && SUB"; uint8_t width = 129; uint8_t height = 64; enum PrintMode_t mode = GLCD_Merge;// GLCD_Overwrite; // or GLCD_Merge enum Color_t color= GLCD_Black;// GLCD_Overwrite; // or GLCD_Merge /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); static void MX_GPIO_Init(void); /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ // this file generated by Image2GLCD const unsigned char img[1024] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x60, 0x30, 0x30, 0x18, 0x0C, 0x0C, 0x04, 0x84, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0x44, 0x44, 0x44, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x44, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x84, 0x0C, 0x0C, 0x18, 0x38, 0x30, 0x60, 0xE0, 0xC0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x60, 0x70, 0x30, 0x18, 0x0C, 0x0C, 0x06, 0x83, 0xC3, 0xC1, 0xE0, 0xF0, 0xF0, 0xF8, 0xFC, 0xFC, 0xFE, 0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x07, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF8, 0xFC, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xFC, 0xF8, 0xF0, 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFE, 0xFC, 0xFC, 0xF8, 0xF0, 0xF0, 0xE0, 0xE1, 0xC3, 0x83, 0x06, 0x0E, 0x0C, 0x18, 0x38, 0x30, 0x60, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x06, 0x0C, 0x1C, 0x38, 0x30, 0x60, 0xE0, 0xC1, 0x83, 0x03, 0x07, 0x0F, 0x1F, 0x1F, 0x3F, 0x7F, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x1F, 0x1F, 0x1F, 0x1E, 0x1E, 0x1E, 0x1E, 0x3E, 0x3E, 0x3E, 0x3E, 0x7E, 0x7E, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F, 0x1F, 0x1F, 0x0F, 0x07, 0x03, 0x83, 0xC1, 0xC0, 0x60, 0x30, 0x38, 0x1C, 0x0C, 0x06, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x06, 0x0E, 0x0C, 0x18, 0x38, 0x70, 0x60, 0xC0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x10, 0x00, 0x20, 0x60, 0xE0, 0xE0, 0xE0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x07, 0x07, 0x07, 0x83, 0x81, 0xC0, 0x60, 0x70, 0x30, 0x18, 0x1C, 0x0E, 0x06, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x06, 0x0C, 0x1C, 0x38, 0x30, 0x60, 0xE0, 0xC0, 0x81, 0x03, 0x07, 0x07, 0x0F, 0x1F, 0x3F, 0x0F, 0x0F, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0F, 0x0F, 0x0F, 0x1F, 0x1F, 0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x1E, 0x1E, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x60, 0x30, 0x38, 0x1C, 0x0C, 0x06, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x06, 0x0C, 0x18, 0x38, 0x70, 0x60, 0xC0, 0x80, 0x80, 0x00, 0x00, 0x08, 0x08, 0x18, 0x38, 0x78, 0x70, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF8, 0x78, 0x38, 0x18, 0x18, 0x08, 0x00, 0x00, 0x80, 0x80, 0xC0, 0x60, 0x70, 0x30, 0x18, 0x0C, 0x0E, 0x07, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x06, 0x0E, 0x1C, 0x18, 0x30, 0x60, 0xE0, 0xC0, 0x81, 0x03, 0x03, 0x07, 0x0F, 0x1F, 0x1F, 0x3F, 0x7F, 0x3F, 0x3F, 0x1F, 0x0F, 0x07, 0x07, 0x03, 0x81, 0xC0, 0xE0, 0x60, 0x30, 0x18, 0x1C, 0x0C, 0x06, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x06, 0x0C, 0x18, 0x38, 0x70, 0x60, 0x70, 0x38, 0x18, 0x0C, 0x0E, 0x07, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; int main(void) { /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* Configure the system clock */ SystemClock_Config(); /* Initialize all configured peripherals */ MX_GPIO_Init(); /* USER CODE BEGIN 2 */ GLCD_Setup(); GLCD_Clear(); GLCD_DrawBitmap(img, width, height, mode); GLCD_Render(); HAL_Delay(2000); GLCD_InvertMode(); //Inverted mode GLCD_Render(); HAL_Delay(2000); /* USER CODE END 2 */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ GLCD_Clear(); GLCD_SetFont(Font_27x28, 27, 28, mode); GLCD_GotoXY(32, 1); GLCD_PrintString_P(txt1); //Print text #1 GLCD_SetFont(Font_11x13, 11, 13, mode); GLCD_GotoXY(38, 22); GLCD_PrintString_P(txt2); //Print text #2 GLCD_SetFont(Font_27x28, 27, 28, mode); GLCD_GotoXY(5, 31); GLCD_PrintString_P(txt3); //Print text #3 GLCD_DrawRoundRectangle(1, 1, 126, 62, 5, color); //Draw outline GLCD_Render(); GLCD_Clear(); HAL_Delay(2000); GLCD_DrawLine(10, 10, 50, 50, color); GLCD_Render(); GLCD_Clear(); GLCD_DrawRectangle(20, 20, 40, 40, color); GLCD_Render(); GLCD_Clear(); GLCD_DrawRoundRectangle(30, 30, 60, 60, 5, color); GLCD_Render(); GLCD_Clear(); GLCD_DrawTriangle(10, 20, 60, 30, 60, 50, color); GLCD_Render(); GLCD_Clear(); for(int i=5 ;i<30 ;i=i+5) { GLCD_DrawCircle(64, 32, i, color); GLCD_Render(); } GLCD_Clear(); GLCD_FillScreen(color); GLCD_Render(); GLCD_Clear(); GLCD_FillRectangle(1,1, 40, 32, color); GLCD_Render(); HAL_Delay(1000); GLCD_Clear(); GLCD_FillRoundRectangle(10, 10, 40, 40, 5, color); GLCD_Render(); HAL_Delay(1000); GLCD_Clear(); GLCD_FillTriangle(10, 20, 60, 30, 60, 50, color); GLCD_Render(); GLCD_Clear(); GLCD_FillCircle(64, 30, 30, color); GLCD_Render(); } /* USER CODE END 3 */ }
Proteus Configuration :
- Open Proteus & Create New Project and click next
- Click on Pick Device
- Search for STM32F103C6 & LGM12641BS1R
- Click on Terminal Mode then choose (DEFAULT & POWER & GROUND)
- finally make the circuit below and start the simulation
That’s all!
If you have any questions or suggestions don’t hesitate to leave a comment below.