+++ /dev/null
-//*****************************************************************************\r
-// +--+ \r
-// | ++----+ \r
-// +-++ | \r
-// | | \r
-// +-+--+ | \r
-// | +--+--+ \r
-// +----+ Copyright (c) 2009 Code Red Technologies Ltd. \r
-//\r
-// lcd.c contains various routines to plot to the LCD display on the RDB1768\r
-// development board.\r
-//\r
-// Software License Agreement\r
-// \r
-// The software is owned by Code Red Technologies and/or its suppliers, and is \r
-// protected under applicable copyright laws. All rights are reserved. Any \r
-// use in violation of the foregoing restrictions may subject the user to criminal \r
-// sanctions under applicable laws, as well as to civil liability for the breach \r
-// of the terms and conditions of this license.\r
-// \r
-// THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED\r
-// OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF\r
-// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.\r
-// USE OF THIS SOFTWARE FOR COMMERCIAL DEVELOPMENT AND/OR EDUCATION IS SUBJECT\r
-// TO A CURRENT END USER LICENSE AGREEMENT (COMMERCIAL OR EDUCATIONAL) WITH\r
-// CODE RED TECHNOLOGIES LTD. \r
-\r
-#include "lcd_commands.h"\r
-#include "lcd.h"\r
-#include "lcd_driver.h"\r
-#include "font.h"\r
-\r
-#include <stdlib.h> // to provice abs() function\r
-\r
-// Routine to draw a filled rectangle to the LCD.\r
-// Two corners of rectangle are at (xmin,ymin) and (xmax,ymax).\r
-// The Rectangle is filled with the RGB565 color specified\r
-void LCD_FilledRect(int xmin,int xmax,int ymin,int ymax,int color)\r
-{\r
- int i;\r
-\r
- // Specify to LCD controller coordinates we are writing to...\r
- LCDdriver_WriteCom(DD_CASET); // Set the column address\r
- LCDdriver_WriteData(xmin); // min address\r
- LCDdriver_WriteData(xmax); // max address\r
- LCDdriver_WriteCom(DD_RASET); // Set the row address\r
- LCDdriver_WriteData(ymin + 1); // min address\r
- LCDdriver_WriteData(ymax + 1); // max address\r
- LCDdriver_WriteCom(DD_RAMWR); // RAM Write command\r
-\r
- // Plot the color data to the LCD buffer\r
- for(i = ((xmax - xmin + 1) * (ymax - ymin + 1)); i > 0; i--)\r
- {\r
- LCDdriver_WriteData(color >> 8); // top 8 bits of RGB565 color\r
- LCDdriver_WriteData(color); // bottom 8 bits of RGB565 color\r
- }\r
-}\r
-\r
-// Routine to draw an unfilled rectangle to the LCD.\r
-// Two corners of rectangle are at (xmin,ymin) and (xmax,ymax).\r
-// The Rectangle is drawn in the RGB565 color specified\r
-void LCD_Rect(int xmin,int xmax,int ymin,int ymax,int color)\r
-{\r
- // Draw 4 lines of rectange as 4 filled rectanges, each of 1 pixel wide\r
- LCD_FilledRect(xmin,xmin,ymin,ymax,color);\r
- LCD_FilledRect(xmax,xmax,ymin,ymax,color);\r
- LCD_FilledRect(xmin,xmax,ymin,ymin,color);\r
- LCD_FilledRect(xmin,xmax,ymax,ymax,color);\r
-}\r
-\r
-\r
-\r
-// Plot a point on the screen in the 6:5:6 color format\r
-void LCD_PlotPoint(int x,int y,int color)\r
-{\r
- LCDdriver_WriteCom(DD_CASET); // Set the column address \r
- LCDdriver_WriteData(x); // min address\r
- LCDdriver_WriteData(x); // max address\r
- LCDdriver_WriteCom(DD_RASET); // Set the row address\r
- LCDdriver_WriteData(y + 1); // min address\r
- LCDdriver_WriteData(y + 1); // max address\r
- LCDdriver_WriteCom(DD_RAMWR); // RAM Write command\r
- LCDdriver_WriteData(color >> 8); // top 8 bits of RGB565 color\r
- LCDdriver_WriteData(color); // top 8 bits of RGB565 color\r
-}\r
-\r
-// Routine to draw a filled circle to the LCD.\r
-// The centre of the circle is at (x0,y0) and the circle has the \r
-// specifed radius. The circle is filled with the RGB565 color \r
-// The circle is drawn using the "Midpoint circle algorithm", \r
-// also known as "Bresenham's circle algorithm". In order to fill\r
-// the circle, the algorithm has been modifed to draw a line between\r
-// each two points, rather than plotting the two points individually.\r
-void LCD_FilledCircle (int x0, int y0, int radius, int color)\r
-{\r
- int f = 1 - radius;\r
- int ddF_x = 1;\r
- int ddF_y = -2 * radius;\r
- int x = 0;\r
- int y = radius;\r
- \r
- LCD_FilledRect(x0, x0 ,y0 - radius,y0 + radius, color); \r
- LCD_FilledRect(x0 - radius, x0 + radius ,y0,y0, color); \r
- \r
- while(x < y)\r
- {\r
- if(f >= 0) \r
- {\r
- y--;\r
- ddF_y += 2;\r
- f += ddF_y;\r
- }\r
- x++;\r
- ddF_x += 2;\r
- f += ddF_x; \r
-\r
- LCD_FilledRect(x0-x, x0+x ,y0 +y, y0 + y, color); \r
- LCD_FilledRect(x0-x, x0+x ,y0 - y, y0 - y, color); \r
- LCD_FilledRect(x0-y, x0+y ,y0 + x, y0 + x, color); \r
- LCD_FilledRect(x0-y, x0+y ,y0 - x, y0 - x, color); \r
- }\r
-}\r
-\r
-// Routine to draw an unfilled circle to the LCD.\r
-// The centre of the circle is at (x0,y0) and the circle has the \r
-// specifed radius. The circle is drawn in the RGB565 color \r
-// The circle is drawn using the "Midpoint circle algorithm", \r
-// also known as "Bresenham's circle algorithm". \r
-void LCD_Circle (int x0, int y0, int radius, int color)\r
-{\r
- int f = 1 - radius;\r
- int ddF_x = 1;\r
- int ddF_y = -2 * radius;\r
- int x = 0;\r
- int y = radius;\r
-\r
- LCD_PlotPoint(x0, y0 + radius, color);\r
- LCD_PlotPoint(x0, y0 - radius, color);\r
- LCD_PlotPoint(x0 + radius, y0, color);\r
- LCD_PlotPoint(x0 - radius, y0, color);\r
-\r
- while(x < y)\r
- {\r
- if(f >= 0) \r
- {\r
- y--;\r
- ddF_y += 2;\r
- f += ddF_y;\r
- }\r
- x++;\r
- ddF_x += 2;\r
- f += ddF_x; \r
- LCD_PlotPoint(x0 + x, y0 + y, color);\r
- LCD_PlotPoint(x0 - x, y0 + y, color);\r
- LCD_PlotPoint(x0 + x, y0 - y, color);\r
- LCD_PlotPoint(x0 - x, y0 - y, color);\r
- LCD_PlotPoint(x0 + y, y0 + x, color);\r
- LCD_PlotPoint(x0 - y, y0 + x, color);\r
- LCD_PlotPoint(x0 + y, y0 - x, color);\r
- LCD_PlotPoint(x0 - y, y0 - x, color);\r
- }\r
-}\r
-\r
-// Routine to draw a line in the RGB565 color to the LCD.\r
-// The line is drawn from (xmin,ymin) to (xmax,ymax).\r
-// The algorithm used to draw the line is "Bresenham's line\r
-// algorithm". \r
-#define SWAP(a, b) a ^= b; b ^= a; a ^= b; \r
-\r
-void LCD_Line (int xmin,int xmax,int ymin,int ymax,int color)\r
-{\r
- int Dx = xmax - xmin; \r
- int Dy = ymax - ymin;\r
- int steep = (abs(Dy) >= abs(Dx));\r
- if (steep) {\r
- SWAP(xmin, ymin);\r
- SWAP(xmax, ymax);\r
- // recompute Dx, Dy after swap\r
- Dx = xmax - xmin;\r
- Dy = ymax - ymin;\r
- }\r
- int xstep = 1;\r
- if (Dx < 0) {\r
- xstep = -1;\r
- Dx = -Dx;\r
- }\r
- int ystep = 1;\r
- if (Dy < 0) {\r
- ystep = -1; \r
- Dy = -Dy; \r
- }\r
- int TwoDy = 2*Dy; \r
- int TwoDyTwoDx = TwoDy - 2*Dx; // 2*Dy - 2*Dx\r
- int E = TwoDy - Dx; //2*Dy - Dx\r
- int y = ymin;\r
- int xDraw, yDraw;\r
- int x;\r
- for (x = xmin; x != xmax; x += xstep) { \r
- if (steep) { \r
- xDraw = y;\r
- yDraw = x;\r
- } else { \r
- xDraw = x;\r
- yDraw = y;\r
- }\r
- // plot\r
- LCD_PlotPoint(xDraw, yDraw, color);\r
- // next\r
- if (E > 0) {\r
- E += TwoDyTwoDx; //E += 2*Dy - 2*Dx;\r
- y = y + ystep;\r
- } else {\r
- E += TwoDy; //E += 2*Dy;\r
- }\r
- }\r
-}\r
-\r
-// Routine to clear the LCD.\r
-// Implemented by drawing a black rectangle across the whole screen\r
-void LCD_ClearScreen(void)\r
-{ \r
- LCD_FilledRect (0,LCD_MAX_X,0 , LCD_MAX_Y, COLOR_BLACK);\r
-}\r
-\r
-\r
-\r
-// Routine to write a single character to screen in the font pointed\r
-// to by pBitMap. This routine is intended to be used via the \r
-// LCD_PrintChar() and LCD_PrintString() routines, rather than called\r
-// directly from user code.\r
-void LCD_WriteBitMap8x15(int x, int y, int height, int width, unsigned char *pBitMap, int color)\r
-{\r
- int xmax = x + width - 1; // start at zero\r
- int ymax = y + height - 1; // start at zero\r
- int iRow, iCol;\r
- unsigned char ucRowData;\r
- \r
- LCDdriver_WriteCom(DD_CASET); // Column address set\r
- LCDdriver_WriteData(x); // Start column\r
- LCDdriver_WriteData(xmax); // End column\r
- LCDdriver_WriteCom(DD_RASET); // Row address set\r
- LCDdriver_WriteData(y); // Start row\r
- LCDdriver_WriteData(ymax); // End row\r
- LCDdriver_WriteCom(DD_RAMWR); // Memory write\r
- \r
- \r
- for(iRow=0;iRow<height;iRow++)\r
- {\r
- ucRowData = *pBitMap++;\r
- \r
- for(iCol=0;iCol<width;iCol++)\r
- {\r
-\r
- // Look at each input bitmap bit\r
- // and write as a black-pixel or\r
- // a color-pixel.\r
- \r
- if(ucRowData & 0x80) // 'color pixel'\r
- {\r
- LCDdriver_WriteData(color >> 8); \r
- LCDdriver_WriteData(color);\r
- }\r
- else // black pixel\r
- {\r
- LCDdriver_WriteData(0x00);\r
- LCDdriver_WriteData(0x00);\r
- }\r
- \r
- ucRowData = ucRowData<<1;\r
- }\r
- }\r
-\r
-}\r
-\r
-\r
-// Prints the character 'c' to the LCD in the appropriate color.\r
-void LCD_PrintChar(int x, int y, unsigned char c, int color )\r
-{\r
- const unsigned char index = font_index_table[c];\r
- const unsigned int offset = index * 15;\r
- unsigned char *pData = (unsigned char *)&font_data_table[offset]; \r
-\r
- LCD_WriteBitMap8x15(x, y, 15, 8, pData, color);\r
-}\r
-\r
-// Prints the string to the LCD in the appropriate color.\r
-void LCD_PrintString(int x, int y, char *pcString, int iStrLen, int color)\r
-{\r
- unsigned char index;\r
- unsigned int offset;\r
- unsigned char *pData;\r
- unsigned char c;\r
- int i;\r
- \r
- for(i=0;i<iStrLen;i++)\r
- {\r
- c = pcString[i];\r
- if(c==0)\r
- break;\r
- index = font_index_table[c];\r
- offset = index * 15;\r
- pData = (unsigned char *)&font_data_table[offset];\r
-\r
- LCD_WriteBitMap8x15(x, y, 15, 8, pData, color); \r
- x += 8;\r
- }\r
- \r
-}
\ No newline at end of file
+++ /dev/null
-/*******************************************************************************************\r
- Data table provides the bitmap data of each character.\r
-\r
- To get the starting data offset of character 'A', you can use the following expression:\r
-\r
- const unsigned char index = index_table['A'];\r
- const unsigned int offset = offset_table[index];\r
- const unsigned char *pData = data_table[offset];\r
-\r
- *******************************************************************************************/\r
-const unsigned char font_data_table[] = {\r
-\r
-/* character 0x0020 (' '): (width=8, offset=0) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0021 ('!'): (width=8, offset=15) */\r
-0x00, 0x00, 0x00, 0x18, 0x3C, 0x3C, 0x3C, 0x18, \r
-0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0022 ('"'): (width=8, offset=30) */\r
-0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x00, 0x00, \r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0023 ('#'): (width=8, offset=45) */\r
-0x00, 0x00, 0x00, 0x36, 0x36, 0x7F, 0x36, 0x36, \r
-0x36, 0x7F, 0x36, 0x36, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0024 ('$'): (width=8, offset=60) */\r
-0x00, 0x18, 0x18, 0x3C, 0x66, 0x60, 0x30, 0x18, \r
-0x0C, 0x06, 0x66, 0x3C, 0x18, 0x18, 0x00, \r
-\r
-/* character 0x0025 ('%'): (width=8, offset=75) */\r
-0x00, 0x00, 0x70, 0xD8, 0xDA, 0x76, 0x0C, 0x18, \r
-0x30, 0x6E, 0x5B, 0x1B, 0x0E, 0x00, 0x00, \r
-\r
-/* character 0x0026 ('&'): (width=8, offset=90) */\r
-0x00, 0x00, 0x00, 0x38, 0x6C, 0x6C, 0x38, 0x60, \r
-0x6F, 0x66, 0x66, 0x3B, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0027 ('''): (width=8, offset=105) */\r
-0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x00, 0x00, \r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0028 ('('): (width=8, offset=120) */\r
-0x00, 0x00, 0x00, 0x0C, 0x18, 0x18, 0x30, 0x30, \r
-0x30, 0x30, 0x30, 0x18, 0x18, 0x0C, 0x00, \r
-\r
-/* character 0x0029 (')'): (width=8, offset=135) */\r
-0x00, 0x00, 0x00, 0x30, 0x18, 0x18, 0x0C, 0x0C, \r
-0x0C, 0x0C, 0x0C, 0x18, 0x18, 0x30, 0x00, \r
-\r
-/* character 0x002A ('*'): (width=8, offset=150) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x1C, 0x7F, \r
-0x1C, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x002B ('+'): (width=8, offset=165) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, \r
-0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x002C (','): (width=8, offset=180) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \r
-0x00, 0x00, 0x1C, 0x1C, 0x0C, 0x18, 0x00, \r
-\r
-/* character 0x002D ('-'): (width=8, offset=195) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, \r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x002E ('.'): (width=8, offset=210) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \r
-0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x002F ('/'): (width=8, offset=225) */\r
-0x00, 0x00, 0x00, 0x06, 0x06, 0x0C, 0x0C, 0x18, \r
-0x18, 0x30, 0x30, 0x60, 0x60, 0x00, 0x00, \r
-\r
-/* character 0x0030 ('0'): (width=8, offset=240) */\r
-0x00, 0x00, 0x00, 0x1E, 0x33, 0x37, 0x37, 0x33, \r
-0x3B, 0x3B, 0x33, 0x1E, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0031 ('1'): (width=8, offset=255) */\r
-0x00, 0x00, 0x00, 0x0C, 0x1C, 0x7C, 0x0C, 0x0C, \r
-0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0032 ('2'): (width=8, offset=270) */\r
-0x00, 0x00, 0x00, 0x3C, 0x66, 0x66, 0x06, 0x0C, \r
-0x18, 0x30, 0x60, 0x7E, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0033 ('3'): (width=8, offset=285) */\r
-0x00, 0x00, 0x00, 0x3C, 0x66, 0x66, 0x06, 0x1C, \r
-0x06, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0034 ('4'): (width=8, offset=300) */\r
-0x00, 0x00, 0x00, 0x30, 0x30, 0x36, 0x36, 0x36, \r
-0x66, 0x7F, 0x06, 0x06, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0035 ('5'): (width=8, offset=315) */\r
-0x00, 0x00, 0x00, 0x7E, 0x60, 0x60, 0x60, 0x7C, \r
-0x06, 0x06, 0x0C, 0x78, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0036 ('6'): (width=8, offset=330) */\r
-0x00, 0x00, 0x00, 0x1C, 0x18, 0x30, 0x7C, 0x66, \r
-0x66, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0037 ('7'): (width=8, offset=345) */\r
-0x00, 0x00, 0x00, 0x7E, 0x06, 0x0C, 0x0C, 0x18, \r
-0x18, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0038 ('8'): (width=8, offset=360) */\r
-0x00, 0x00, 0x00, 0x3C, 0x66, 0x66, 0x76, 0x3C, \r
-0x6E, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0039 ('9'): (width=8, offset=375) */\r
-0x00, 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x66, \r
-0x3E, 0x0C, 0x18, 0x38, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x003A (':'): (width=8, offset=390) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x00, \r
-0x00, 0x00, 0x1C, 0x1C, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x003B (';'): (width=8, offset=405) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x00, \r
-0x00, 0x00, 0x1C, 0x1C, 0x0C, 0x18, 0x00, \r
-\r
-/* character 0x003C ('<'): (width=8, offset=420) */\r
-0x00, 0x00, 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, \r
-0x30, 0x18, 0x0C, 0x06, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x003D ('='): (width=8, offset=435) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, \r
-0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x003E ('>'): (width=8, offset=450) */\r
-0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x0C, 0x06, \r
-0x0C, 0x18, 0x30, 0x60, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x003F ('?'): (width=8, offset=465) */\r
-0x00, 0x00, 0x00, 0x3C, 0x66, 0x66, 0x0C, 0x18, \r
-0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0040 ('@'): (width=8, offset=480) */\r
-0x00, 0x00, 0x00, 0x7E, 0xC3, 0xC3, 0xCF, 0xDB, \r
-0xDB, 0xCF, 0xC0, 0x7F, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0041 ('A'): (width=8, offset=495) */\r
-0x00, 0x00, 0x00, 0x18, 0x3C, 0x66, 0x66, 0x66, \r
-0x7E, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0042 ('B'): (width=8, offset=510) */\r
-0x00, 0x00, 0x00, 0x7C, 0x66, 0x66, 0x66, 0x7C, \r
-0x66, 0x66, 0x66, 0x7C, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0043 ('C'): (width=8, offset=525) */\r
-0x00, 0x00, 0x00, 0x3C, 0x66, 0x66, 0x60, 0x60, \r
-0x60, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0044 ('D'): (width=8, offset=540) */\r
-0x00, 0x00, 0x00, 0x78, 0x6C, 0x66, 0x66, 0x66, \r
-0x66, 0x66, 0x6C, 0x78, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0045 ('E'): (width=8, offset=555) */\r
-0x00, 0x00, 0x00, 0x7E, 0x60, 0x60, 0x60, 0x7C, \r
-0x60, 0x60, 0x60, 0x7E, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0046 ('F'): (width=8, offset=570) */\r
-0x00, 0x00, 0x00, 0x7E, 0x60, 0x60, 0x60, 0x7C, \r
-0x60, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0047 ('G'): (width=8, offset=585) */\r
-0x00, 0x00, 0x00, 0x3C, 0x66, 0x66, 0x60, 0x60, \r
-0x6E, 0x66, 0x66, 0x3E, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0048 ('H'): (width=8, offset=600) */\r
-0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7E, \r
-0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0049 ('I'): (width=8, offset=615) */\r
-0x00, 0x00, 0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, \r
-0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x004A ('J'): (width=8, offset=630) */\r
-0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, \r
-0x06, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x004B ('K'): (width=8, offset=645) */\r
-0x00, 0x00, 0x00, 0x66, 0x66, 0x6C, 0x6C, 0x78, \r
-0x6C, 0x6C, 0x66, 0x66, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x004C ('L'): (width=8, offset=660) */\r
-0x00, 0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, \r
-0x60, 0x60, 0x60, 0x7E, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x004D ('M'): (width=8, offset=675) */\r
-0x00, 0x00, 0x00, 0x63, 0x63, 0x77, 0x6B, 0x6B, \r
-0x6B, 0x63, 0x63, 0x63, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x004E ('N'): (width=8, offset=690) */\r
-0x00, 0x00, 0x00, 0x63, 0x63, 0x73, 0x7B, 0x6F, \r
-0x67, 0x63, 0x63, 0x63, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x004F ('O'): (width=8, offset=705) */\r
-0x00, 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x66, \r
-0x66, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0050 ('P'): (width=8, offset=720) */\r
-0x00, 0x00, 0x00, 0x7C, 0x66, 0x66, 0x66, 0x7C, \r
-0x60, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0051 ('Q'): (width=8, offset=735) */\r
-0x00, 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x66, \r
-0x66, 0x66, 0x66, 0x3C, 0x0C, 0x06, 0x00, \r
-\r
-/* character 0x0052 ('R'): (width=8, offset=750) */\r
-0x00, 0x00, 0x00, 0x7C, 0x66, 0x66, 0x66, 0x7C, \r
-0x6C, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0053 ('S'): (width=8, offset=765) */\r
-0x00, 0x00, 0x00, 0x3C, 0x66, 0x60, 0x30, 0x18, \r
-0x0C, 0x06, 0x66, 0x3C, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0054 ('T'): (width=8, offset=780) */\r
-0x00, 0x00, 0x00, 0x7E, 0x18, 0x18, 0x18, 0x18, \r
-0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0055 ('U'): (width=8, offset=795) */\r
-0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, \r
-0x66, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0056 ('V'): (width=8, offset=810) */\r
-0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, \r
-0x66, 0x66, 0x3C, 0x18, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0057 ('W'): (width=8, offset=825) */\r
-0x00, 0x00, 0x00, 0x63, 0x63, 0x63, 0x6B, 0x6B, \r
-0x6B, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0058 ('X'): (width=8, offset=840) */\r
-0x00, 0x00, 0x00, 0x66, 0x66, 0x34, 0x18, 0x18, \r
-0x2C, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0059 ('Y'): (width=8, offset=855) */\r
-0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3C, \r
-0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x005A ('Z'): (width=8, offset=870) */\r
-0x00, 0x00, 0x00, 0x7E, 0x06, 0x06, 0x0C, 0x18, \r
-0x30, 0x60, 0x60, 0x7E, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x005B ('['): (width=8, offset=885) */\r
-0x00, 0x00, 0x00, 0x3C, 0x30, 0x30, 0x30, 0x30, \r
-0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3C, \r
-\r
-/* character 0x005C ('\'): (width=8, offset=900) */\r
-0x00, 0x00, 0x00, 0x60, 0x60, 0x30, 0x30, 0x18, \r
-0x18, 0x0C, 0x0C, 0x06, 0x06, 0x00, 0x00, \r
-\r
-/* character 0x005D (']'): (width=8, offset=915) */\r
-0x00, 0x00, 0x00, 0x3C, 0x0C, 0x0C, 0x0C, 0x0C, \r
-0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x3C, \r
-\r
-/* character 0x005E ('^'): (width=8, offset=930) */\r
-0x00, 0x18, 0x3C, 0x66, 0x00, 0x00, 0x00, 0x00, \r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x005F ('_'): (width=8, offset=945) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, \r
-\r
-/* character 0x0060 ('`'): (width=8, offset=960) */\r
-0x00, 0x38, 0x18, 0x0C, 0x00, 0x00, 0x00, 0x00, \r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0061 ('a'): (width=8, offset=975) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x06, 0x06, \r
-0x3E, 0x66, 0x66, 0x3E, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0062 ('b'): (width=8, offset=990) */\r
-0x00, 0x00, 0x00, 0x60, 0x60, 0x7C, 0x66, 0x66, \r
-0x66, 0x66, 0x66, 0x7C, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0063 ('c'): (width=8, offset=1005) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x60, \r
-0x60, 0x60, 0x66, 0x3C, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0064 ('d'): (width=8, offset=1020) */\r
-0x00, 0x00, 0x00, 0x06, 0x06, 0x3E, 0x66, 0x66, \r
-0x66, 0x66, 0x66, 0x3E, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0065 ('e'): (width=8, offset=1035) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x66, \r
-0x7E, 0x60, 0x60, 0x3C, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0066 ('f'): (width=8, offset=1050) */\r
-0x00, 0x00, 0x00, 0x1E, 0x30, 0x30, 0x30, 0x7E, \r
-0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0067 ('g'): (width=8, offset=1065) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x66, 0x66, \r
-0x66, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x7C, \r
-\r
-/* character 0x0068 ('h'): (width=8, offset=1080) */\r
-0x00, 0x00, 0x00, 0x60, 0x60, 0x7C, 0x66, 0x66, \r
-0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0069 ('i'): (width=8, offset=1095) */\r
-0x00, 0x00, 0x18, 0x18, 0x00, 0x78, 0x18, 0x18, \r
-0x18, 0x18, 0x18, 0x7E, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x006A ('j'): (width=8, offset=1110) */\r
-0x00, 0x00, 0x0C, 0x0C, 0x00, 0x3C, 0x0C, 0x0C, \r
-0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x78, \r
-\r
-/* character 0x006B ('k'): (width=8, offset=1125) */\r
-0x00, 0x00, 0x00, 0x60, 0x60, 0x66, 0x66, 0x6C, \r
-0x78, 0x6C, 0x66, 0x66, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x006C ('l'): (width=8, offset=1140) */\r
-0x00, 0x00, 0x00, 0x78, 0x18, 0x18, 0x18, 0x18, \r
-0x18, 0x18, 0x18, 0x7E, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x006D ('m'): (width=8, offset=1155) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x6B, 0x6B, \r
-0x6B, 0x6B, 0x6B, 0x63, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x006E ('n'): (width=8, offset=1170) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x66, 0x66, \r
-0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x006F ('o'): (width=8, offset=1185) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x66, \r
-0x66, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0070 ('p'): (width=8, offset=1200) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x66, 0x66, \r
-0x66, 0x66, 0x66, 0x7C, 0x60, 0x60, 0x60, \r
-\r
-/* character 0x0071 ('q'): (width=8, offset=1215) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x66, 0x66, \r
-0x66, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x06, \r
-\r
-/* character 0x0072 ('r'): (width=8, offset=1230) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x6E, 0x70, \r
-0x60, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0073 ('s'): (width=8, offset=1245) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x60, 0x60, \r
-0x3C, 0x06, 0x06, 0x7C, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0074 ('t'): (width=8, offset=1260) */\r
-0x00, 0x00, 0x00, 0x30, 0x30, 0x7E, 0x30, 0x30, \r
-0x30, 0x30, 0x30, 0x1E, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0075 ('u'): (width=8, offset=1275) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, \r
-0x66, 0x66, 0x66, 0x3E, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0076 ('v'): (width=8, offset=1290) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, \r
-0x66, 0x66, 0x3C, 0x18, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0077 ('w'): (width=8, offset=1305) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x6B, 0x6B, \r
-0x6B, 0x6B, 0x36, 0x36, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0078 ('x'): (width=8, offset=1320) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x3C, \r
-0x18, 0x3C, 0x66, 0x66, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x0079 ('y'): (width=8, offset=1335) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, \r
-0x66, 0x66, 0x66, 0x3C, 0x0C, 0x18, 0xF0, \r
-\r
-/* character 0x007A ('z'): (width=8, offset=1350) */\r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x06, 0x0C, \r
-0x18, 0x30, 0x60, 0x7E, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x007B ('{'): (width=8, offset=1365) */\r
-0x00, 0x00, 0x00, 0x0C, 0x18, 0x18, 0x18, 0x30, \r
-0x60, 0x30, 0x18, 0x18, 0x18, 0x0C, 0x00, \r
-\r
-/* character 0x007C ('|'): (width=8, offset=1380) */\r
-0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, \r
-0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, \r
-\r
-/* character 0x007D ('}'): (width=8, offset=1395) */\r
-0x00, 0x00, 0x00, 0x30, 0x18, 0x18, 0x18, 0x0C, \r
-0x06, 0x0C, 0x18, 0x18, 0x18, 0x30, 0x00, \r
-\r
-/* character 0x007E ('~'): (width=8, offset=1410) */\r
-0x00, 0x00, 0x00, 0x71, 0xDB, 0x8E, 0x00, 0x00, \r
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \r
-\r
-/* character 0x007F ('\7f'): (width=8, offset=1425) */\r
-0x00, 0x00, 0x00, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, \r
-0x7E, 0x7E, 0x7E, 0x7E, 0x00, 0x00, 0x00, \r
-\r
-};\r
-\r
-\r
-/*******************************************************************************************\r
- Index table is used to find the mapping index of a character.\r
-\r
- If you can find a simple mathematical expression for index mapping, you can use that.\r
- If you do not have such a mathematical expression, this index table is just for you.\r
-\r
- To get the index of character 'A', you can use the following expression:\r
-\r
- const unsigned char index = index_table['A'];\r
-\r
- *******************************************************************************************/\r
-const unsigned char font_index_table[] = {\r
-/* index hexcode decimal char */\r
-/* ===== ======= ======= ==== */\r
- 0, /* 00 0 . */\r
- 0, /* 01 1 . */\r
- 0, /* 02 2 . */\r
- 0, /* 03 3 . */\r
- 0, /* 04 4 . */\r
- 0, /* 05 5 . */\r
- 0, /* 06 6 . */\r
- 0, /* 07 7 . */\r
- 0, /* 08 8 . */\r
- 0, /* 09 9 . */\r
- 0, /* 0A 10 . */\r
- 0, /* 0B 11 . */\r
- 0, /* 0C 12 . */\r
- 0, /* 0D 13 . */\r
- 0, /* 0E 14 . */\r
- 0, /* 0F 15 . */\r
- 0, /* 10 16 . */\r
- 0, /* 11 17 . */\r
- 0, /* 12 18 . */\r
- 0, /* 13 19 . */\r
- 0, /* 14 20 . */\r
- 0, /* 15 21 . */\r
- 0, /* 16 22 . */\r
- 0, /* 17 23 . */\r
- 0, /* 18 24 . */\r
- 0, /* 19 25 . */\r
- 0, /* 1A 26 . */\r
- 0, /* 1B 27 . */\r
- 0, /* 1C 28 . */\r
- 0, /* 1D 29 . */\r
- 0, /* 1E 30 . */\r
- 0, /* 1F 31 . */\r
- 0, /* 20 32 */\r
- 1, /* 21 33 ! */\r
- 2, /* 22 34 " */\r
- 3, /* 23 35 # */\r
- 4, /* 24 36 $ */\r
- 5, /* 25 37 % */\r
- 6, /* 26 38 & */\r
- 7, /* 27 39 ' */\r
- 8, /* 28 40 ( */\r
- 9, /* 29 41 ) */\r
- 10, /* 2A 42 * */\r
- 11, /* 2B 43 + */\r
- 12, /* 2C 44 , */\r
- 13, /* 2D 45 - */\r
- 14, /* 2E 46 . */\r
- 15, /* 2F 47 / */\r
- 16, /* 30 48 0 */\r
- 17, /* 31 49 1 */\r
- 18, /* 32 50 2 */\r
- 19, /* 33 51 3 */\r
- 20, /* 34 52 4 */\r
- 21, /* 35 53 5 */\r
- 22, /* 36 54 6 */\r
- 23, /* 37 55 7 */\r
- 24, /* 38 56 8 */\r
- 25, /* 39 57 9 */\r
- 26, /* 3A 58 : */\r
- 27, /* 3B 59 ; */\r
- 28, /* 3C 60 < */\r
- 29, /* 3D 61 = */\r
- 30, /* 3E 62 > */\r
- 31, /* 3F 63 ? */\r
- 32, /* 40 64 @ */\r
- 33, /* 41 65 A */\r
- 34, /* 42 66 B */\r
- 35, /* 43 67 C */\r
- 36, /* 44 68 D */\r
- 37, /* 45 69 E */\r
- 38, /* 46 70 F */\r
- 39, /* 47 71 G */\r
- 40, /* 48 72 H */\r
- 41, /* 49 73 I */\r
- 42, /* 4A 74 J */\r
- 43, /* 4B 75 K */\r
- 44, /* 4C 76 L */\r
- 45, /* 4D 77 M */\r
- 46, /* 4E 78 N */\r
- 47, /* 4F 79 O */\r
- 48, /* 50 80 P */\r
- 49, /* 51 81 Q */\r
- 50, /* 52 82 R */\r
- 51, /* 53 83 S */\r
- 52, /* 54 84 T */\r
- 53, /* 55 85 U */\r
- 54, /* 56 86 V */\r
- 55, /* 57 87 W */\r
- 56, /* 58 88 X */\r
- 57, /* 59 89 Y */\r
- 58, /* 5A 90 Z */\r
- 59, /* 5B 91 [ */\r
- 60, /* 5C 92 \ */\r
- 61, /* 5D 93 ] */\r
- 62, /* 5E 94 ^ */\r
- 63, /* 5F 95 _ */\r
- 64, /* 60 96 ` */\r
- 65, /* 61 97 a */\r
- 66, /* 62 98 b */\r
- 67, /* 63 99 c */\r
- 68, /* 64 100 d */\r
- 69, /* 65 101 e */\r
- 70, /* 66 102 f */\r
- 71, /* 67 103 g */\r
- 72, /* 68 104 h */\r
- 73, /* 69 105 i */\r
- 74, /* 6A 106 j */\r
- 75, /* 6B 107 k */\r
- 76, /* 6C 108 l */\r
- 77, /* 6D 109 m */\r
- 78, /* 6E 110 n */\r
- 79, /* 6F 111 o */\r
- 80, /* 70 112 p */\r
- 81, /* 71 113 q */\r
- 82, /* 72 114 r */\r
- 83, /* 73 115 s */\r
- 84, /* 74 116 t */\r
- 85, /* 75 117 u */\r
- 86, /* 76 118 v */\r
- 87, /* 77 119 w */\r
- 88, /* 78 120 x */\r
- 89, /* 79 121 y */\r
- 90, /* 7A 122 z */\r
- 91, /* 7B 123 { */\r
- 92, /* 7C 124 | */\r
- 93, /* 7D 125 } */\r
- 94, /* 7E 126 ~ */\r
- 95, /* 7F 127 \7f */\r
- 0, /* 80 128 ? */\r
- 0, /* 81 129 � */\r
- 0, /* 82 130 ? */\r
- 0, /* 83 131 ? */\r
- 0, /* 84 132 ? */\r
- 0, /* 85 133 ? */\r
- 0, /* 86 134 ? */\r
- 0, /* 87 135 ? */\r
- 0, /* 88 136 ? */\r
- 0, /* 89 137 ? */\r
- 0, /* 8A 138 ? */\r
- 0, /* 8B 139 ? */\r
- 0, /* 8C 140 ? */\r
- 0, /* 8D 141 � */\r
- 0, /* 8E 142 ? */\r
- 0, /* 8F 143 � */\r
- 0, /* 90 144 � */\r
- 0, /* 91 145 ? */\r
- 0, /* 92 146 ? */\r
- 0, /* 93 147 ? */\r
- 0, /* 94 148 ? */\r
- 0, /* 95 149 ? */\r
- 0, /* 96 150 ? */\r
- 0, /* 97 151 ? */\r
- 0, /* 98 152 ? */\r
- 0, /* 99 153 ? */\r
- 0, /* 9A 154 ? */\r
- 0, /* 9B 155 ? */\r
- 0, /* 9C 156 ? */\r
- 0, /* 9D 157 � */\r
- 0, /* 9E 158 ? */\r
- 0, /* 9F 159 ? */\r
- 0, /* A0 160 � */\r
- 0, /* A1 161 � */\r
- 0, /* A2 162 � */\r
- 0, /* A3 163 � */\r
- 0, /* A4 164 � */\r
- 0, /* A5 165 � */\r
- 0, /* A6 166 � */\r
- 0, /* A7 167 � */\r
- 0, /* A8 168 � */\r
- 0, /* A9 169 � */\r
- 0, /* AA 170 � */\r
- 0, /* AB 171 � */\r
- 0, /* AC 172 � */\r
- 0, /* AD 173 � */\r
- 0, /* AE 174 � */\r
- 0, /* AF 175 � */\r
- 0, /* B0 176 � */\r
- 0, /* B1 177 � */\r
- 0, /* B2 178 � */\r
- 0, /* B3 179 � */\r
- 0, /* B4 180 � */\r
- 0, /* B5 181 � */\r
- 0, /* B6 182 � */\r
- 0, /* B7 183 � */\r
- 0, /* B8 184 � */\r
- 0, /* B9 185 � */\r
- 0, /* BA 186 � */\r
- 0, /* BB 187 � */\r
- 0, /* BC 188 � */\r
- 0, /* BD 189 � */\r
- 0, /* BE 190 � */\r
- 0, /* BF 191 � */\r
- 0, /* C0 192 � */\r
- 0, /* C1 193 � */\r
- 0, /* C2 194 � */\r
- 0, /* C3 195 � */\r
- 0, /* C4 196 � */\r
- 0, /* C5 197 � */\r
- 0, /* C6 198 � */\r
- 0, /* C7 199 � */\r
- 0, /* C8 200 � */\r
- 0, /* C9 201 � */\r
- 0, /* CA 202 � */\r
- 0, /* CB 203 � */\r
- 0, /* CC 204 � */\r
- 0, /* CD 205 � */\r
- 0, /* CE 206 � */\r
- 0, /* CF 207 � */\r
- 0, /* D0 208 � */\r
- 0, /* D1 209 � */\r
- 0, /* D2 210 � */\r
- 0, /* D3 211 � */\r
- 0, /* D4 212 � */\r
- 0, /* D5 213 � */\r
- 0, /* D6 214 � */\r
- 0, /* D7 215 � */\r
- 0, /* D8 216 � */\r
- 0, /* D9 217 � */\r
- 0, /* DA 218 � */\r
- 0, /* DB 219 � */\r
- 0, /* DC 220 � */\r
- 0, /* DD 221 � */\r
- 0, /* DE 222 � */\r
- 0, /* DF 223 � */\r
- 0, /* E0 224 � */\r
- 0, /* E1 225 � */\r
- 0, /* E2 226 � */\r
- 0, /* E3 227 � */\r
- 0, /* E4 228 � */\r
- 0, /* E5 229 � */\r
- 0, /* E6 230 � */\r
- 0, /* E7 231 � */\r
- 0, /* E8 232 � */\r
- 0, /* E9 233 � */\r
- 0, /* EA 234 � */\r
- 0, /* EB 235 � */\r
- 0, /* EC 236 � */\r
- 0, /* ED 237 � */\r
- 0, /* EE 238 � */\r
- 0, /* EF 239 � */\r
- 0, /* F0 240 � */\r
- 0, /* F1 241 � */\r
- 0, /* F2 242 � */\r
- 0, /* F3 243 � */\r
- 0, /* F4 244 � */\r
- 0, /* F5 245 � */\r
- 0, /* F6 246 � */\r
- 0, /* F7 247 � */\r
- 0, /* F8 248 � */\r
- 0, /* F9 249 � */\r
- 0, /* FA 250 � */\r
- 0, /* FB 251 � */\r
- 0, /* FC 252 � */\r
- 0, /* FD 253 � */\r
- 0, /* FE 254 � */\r
- 0, /* FF 255 � */\r
-};\r
-\r
-\r
-\r