frederic blanc / Mbed 2 deprecated sp5gfx1

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
fblanc
Date:
Wed Jul 06 12:06:40 2011 +0000
Commit message:

Changed in this revision

SPLC501C.c Show annotated file Show diff for this revision Revisions of this file
SPLC501C.h Show annotated file Show diff for this revision Revisions of this file
font10x16.h Show annotated file Show diff for this revision Revisions of this file
font5x7.h Show annotated file Show diff for this revision Revisions of this file
gfx1.cpp Show annotated file Show diff for this revision Revisions of this file
gfx1.h Show annotated file Show diff for this revision Revisions of this file
graphic.c Show annotated file Show diff for this revision Revisions of this file
graphic.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SPLC501C.c	Wed Jul 06 12:06:40 2011 +0000
@@ -0,0 +1,134 @@
+#include "gfx1.h"
+#include "SPLC501C.h"
+#include "font5x7.h"
+#include "font10x16.h"
+
+//-------------------------------------------------------------------------------------------------
+//
+//-------------------------------------------------------------------------------------------------
+void GLCD_Initialize(void) {
+    gfx1_init();
+
+    gfx1_command(SPLC501C_ADC_NORMAL);
+    gfx1_command(SPLC501C_COM63);
+
+    gfx1_command(SPLC501C_BIAS_19);
+    gfx1_command(SPLC501C_POWERON);
+//nop
+    gfx1_command(SPLC501C_VOLUME_MODE);
+    gfx1_command(SPLC501C_VOLUME_SET | 20);
+    gfx1_command(0xA4);
+    gfx1_command(SPLC501C_DISPLAY_ON);
+    gfx1_command(SPLC501C_DISPLAY_NORMAL);
+    gfx1_command(SPLC501C_PAGE_ADDRESS | 0);
+    gfx1_command(SPLC501C_COLUMN_ADDRESS_HI | 0);
+    gfx1_command(SPLC501C_COLUMN_ADDRESS_LO | 0);
+    gfx1_command(SPLC501C_START_LINE | 0);
+    gfx1_x=0;//emulation memoire ecran
+    gfx1_y=0;//emulation memoire ecran
+}
+//-------------------------------------------------------------------------------------------------
+//
+//-------------------------------------------------------------------------------------------------
+void GLCD_GoTo(unsigned char x, unsigned char y) {
+    gfx1_command(SPLC501C_COLUMN_ADDRESS_HI | (x >> 4));
+    gfx1_command(SPLC501C_COLUMN_ADDRESS_LO | (x & 0x0F));
+    gfx1_command(SPLC501C_PAGE_ADDRESS | y);
+    gfx1_x=x;//emulation memoire ecran
+    gfx1_y=y;//emulation memoire ecran
+}
+//-------------------------------------------------------------------------------------------------
+//
+//-------------------------------------------------------------------------------------------------
+void GLCD_ClearScreen(void) {
+    unsigned char x = 0, y = 0;
+    for (y = 0; y < (SCREEN_HEIGHT/PIXELS_PER_PAGE); y++) {
+        GLCD_GoTo(0,y);
+        for (x = 0; x < SCREEN_WIDTH; x++) {
+            gfx1_data(0);
+        }
+    }
+}
+//-------------------------------------------------------------------------------------------------
+// Function : GLCD_WriteChar5x7
+// Artuments : Char ASCII code
+// Return value : none
+//-------------------------------------------------------------------------------------------------
+void GLCD_WriteChar5x7(char charCode) {
+    char fontCollumn;
+
+    for (fontCollumn = 0; fontCollumn < FONT_WIDTH5x7; fontCollumn++)
+        gfx1_data(font5x7[((charCode- FONT_OFFSET5x7) * FONT_WIDTH5x7) + fontCollumn]);
+    gfx1_data(0);
+}
+//-------------------------------------------------------------------------------------------------
+// Function : GLCD_WriteChar10x16
+// Artuments : Char ASCII code
+// Return value : none
+//-------------------------------------------------------------------------------------------------
+void GLCD_WriteChar10x16(char charCode) {
+    unsigned int fontCollumn;
+    unsigned int x,y;
+
+    y=gfx1_y;
+    x=gfx1_x;
+    for (fontCollumn = 0; fontCollumn < FONT_WIDTH10x16; fontCollumn+=2) {
+        GLCD_GoTo(x,y);
+        gfx1_data(font10x16[((charCode- FONT_OFFSET10x16)  * FONT_WIDTH10x16) + fontCollumn]);
+        GLCD_GoTo(x,y+1);
+        gfx1_data(font10x16[((charCode- FONT_OFFSET10x16)  * FONT_WIDTH10x16) + fontCollumn + 1]);
+        x++;
+    }
+    gfx1_data(0);
+    GLCD_GoTo(x,y);
+}
+//-------------------------------------------------------------------------------------------------
+// Function : GLCD_WriteString10x16
+// Arguments : pointer to null-terminated ASCII string
+// Return value : none
+//-------------------------------------------------------------------------------------------------
+void GLCD_WriteString10x16(char * string) {
+    while (*string) {
+        GLCD_WriteChar10x16(*string++);
+    }
+}
+//-------------------------------------------------------------------------------------------------
+// Function : GLCD_WriteString5x7
+// Arguments : pointer to null-terminated ASCII string
+// Return value : none
+//-------------------------------------------------------------------------------------------------
+void GLCD_WriteString5x7(char * string) {
+    while (*string) {
+        GLCD_WriteChar5x7(*string++);
+    }
+}
+//-------------------------------------------------------------------------------------------------
+// Function : GLCD_SetPixel
+// Arguments : x-location, y-location, color (0 or 1)
+// Return value : None
+//-------------------------------------------------------------------------------------------------
+void GLCD_SetPixel(int x, int y, int color) {
+    unsigned char temp = 0;
+    if((x<SCREEN_WIDTH ) & (y<SCREEN_HEIGHT))
+    {
+        GLCD_GoTo(x, (y/8));
+        temp = gfx1_read();
+        if (color)
+            temp |= (1 << (y % 8));
+        else
+            temp &= ~(1 << (y % 8));
+        GLCD_GoTo(x, (y/8));
+        gfx1_data(temp);
+    }
+}
+//-------------------------------------------------------------------------------------------------
+//
+//-------------------------------------------------------------------------------------------------
+void GLCD_Bitmap(char * bitmap,unsigned char left, unsigned char top, unsigned char width, unsigned char height) {
+    unsigned char pageIndex, columnIndex;
+    for (pageIndex = 0; pageIndex < height / 8; pageIndex++) {
+        GLCD_GoTo(left, top + pageIndex);
+        for (columnIndex = 0; columnIndex < width; columnIndex++)
+            gfx1_data(*(bitmap++));
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SPLC501C.h	Wed Jul 06 12:06:40 2011 +0000
@@ -0,0 +1,61 @@
+
+#define SCREEN_WIDTH     128
+#define SCREEN_HEIGHT    64
+#define PIXELS_PER_PAGE    8
+
+
+
+#define SPLC501C_DISPLAY_ON         0xAF
+#define SPLC501C_DISPLAY_OFF        0xAE
+
+#define SPLC501C_START_LINE        0x40
+
+#define SPLC501C_PAGE_ADDRESS        0xB0
+
+#define SPLC501C_COLUMN_ADDRESS_HI    0x10
+#define SPLC501C_COLUMN_ADDRESS_LO    0x00
+
+#define SPLC501C_ADC_NORMAL        0xA0
+#define SPLC501C_ADC_REVERSE        0xA1
+
+#define SPLC501C_DISPLAY_NORMAL        0xA6
+#define SPLC501C_DISPLAY_REVERSE    0xA7
+
+#define SPLC501C_DISPLAY_ALL_ON        0xA5
+#define SPLC501C_DISPLAY_ALL_OFF    0xA4
+
+#define SPLC501C_BIAS_19        0xA2
+#define SPLC501C_BIAS_15        0xA3
+
+#define SPLC501C_RMW_START        0xE0
+#define SPLC501C_RMW_END        0xEE
+
+#define SPLC501C_RESET            0xE2
+
+#define SPLC501C_COM0            0xC0
+#define SPLC501C_COM63            0xC8
+
+#define SPLC501C_POWERON        0x2F
+
+#define SPLC501C_VOLTAGE_RATIO        0x20
+
+#define SPLC501C_VOLUME_MODE        0x81
+#define SPLC501C_VOLUME_SET        0x00
+
+#define SPLC501C_PAGE_BLINKING_MODE    0xD5
+#define SPLC501C_PAGE_BLINKING_0    0x01
+#define SPLC501C_PAGE_BLINKING_1    0x02
+#define SPLC501C_PAGE_BLINKING_2    0x04
+#define SPLC501C_PAGE_BLINKING_3    0x08
+#define SPLC501C_PAGE_BLINKING_4    0x10
+#define SPLC501C_PAGE_BLINKING_5    0x20
+#define SPLC501C_PAGE_BLINKING_6    0x40
+#define SPLC501C_PAGE_BLINKING_7    0x80
+
+void GLCD_GoTo(unsigned char, unsigned char);
+void GLCD_WriteString5x7(char *);
+void GLCD_WriteString10x16(char *);
+void GLCD_Initialize(void);
+void GLCD_ClearScreen(void);
+void GLCD_Bitmap(char *, unsigned char, unsigned char, unsigned char, unsigned char);
+void GLCD_SetPixel(int x, int y, int color);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/font10x16.h	Wed Jul 06 12:06:40 2011 +0000
@@ -0,0 +1,198 @@
+#define FONT_OFFSET10x16    32 //first code ascii
+#define FONT_WIDTH10x16    20
+static const unsigned char font10x16[] = {
+     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //  
+     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x0D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // !
+     0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // "
+     0x80,0x00,0x90,0x0C,0xD0,0x03,0xBC,0x00,0x93,0x0C,0xD0,0x03,0xBC,0x00,0x93,0x00,0x90,0x00,0x00,0x00, // #
+     0x00,0x00,0x00,0x00,0x0E,0x0C,0x13,0x08,0x21,0x08,0xFF,0x1F,0xC1,0x08,0x81,0x07,0x00,0x00,0x00,0x00, // $
+     0x0E,0x08,0x11,0x04,0x11,0x02,0x91,0x01,0x4E,0x00,0x20,0x07,0x98,0x08,0x84,0x08,0x82,0x08,0x01,0x07, // %
+     0x80,0x03,0x40,0x04,0x2E,0x08,0x31,0x08,0xD1,0x08,0x99,0x09,0x0E,0x0E,0x00,0x0C,0x00,0x0B,0xC0,0x00, // &
+     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // '
+     0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x03,0x0C,0x0C,0x06,0x18,0x02,0x10,0x01,0x20,0x01,0x20,0x00,0x00, // (
+     0x00,0x00,0x01,0x20,0x01,0x20,0x02,0x10,0x06,0x18,0x0C,0x0C,0xF0,0x03,0x00,0x00,0x00,0x00,0x00,0x00, // )
+     0x00,0x00,0x04,0x00,0x0C,0x00,0x78,0x00,0x27,0x00,0x78,0x00,0x0C,0x00,0x04,0x00,0x00,0x00,0x00,0x00, // *
+     0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0xF0,0x0F,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00, // +
+     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4C,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ,
+     0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00, // -
+     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // .
+     0x00,0x00,0x00,0x20,0x00,0x18,0x00,0x06,0x80,0x01,0x60,0x00,0x18,0x00,0x06,0x00,0x01,0x00,0x00,0x00, // /
+     0x00,0x00,0xF8,0x01,0x06,0x06,0x01,0x08,0x01,0x08,0x01,0x08,0x06,0x06,0xF8,0x01,0x00,0x00,0x00,0x00, // 0
+     0x00,0x00,0x02,0x08,0x02,0x08,0x02,0x08,0xFF,0x0F,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00, // 1
+     0x00,0x00,0x03,0x0C,0x01,0x0A,0x01,0x09,0x81,0x08,0x61,0x08,0x1E,0x08,0x00,0x00,0x00,0x00,0x00,0x00, // 2
+     0x00,0x00,0x00,0x00,0x01,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0xDE,0x07,0x00,0x00,0x00,0x00,0x00,0x00, // 3
+     0x80,0x01,0x60,0x01,0x10,0x01,0x0C,0x01,0x02,0x01,0xFF,0x0F,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00, // 4
+     0x00,0x00,0x00,0x00,0x1F,0x08,0x11,0x08,0x11,0x08,0x21,0x04,0xC1,0x03,0x00,0x00,0x00,0x00,0x00,0x00, // 5
+     0x00,0x00,0xF8,0x03,0x26,0x04,0x11,0x08,0x11,0x08,0x11,0x08,0x21,0x04,0xC0,0x03,0x00,0x00,0x00,0x00, // 6
+     0x00,0x00,0x01,0x00,0x01,0x0C,0x81,0x03,0x61,0x00,0x19,0x00,0x05,0x00,0x03,0x00,0x00,0x00,0x00,0x00, // 7
+     0x00,0x00,0x8E,0x07,0x51,0x08,0x21,0x08,0x21,0x08,0x51,0x08,0xD1,0x04,0x0E,0x03,0x00,0x00,0x00,0x00, // 8
+     0x00,0x00,0x3C,0x00,0x42,0x08,0x81,0x08,0x81,0x08,0x81,0x08,0x42,0x06,0xFC,0x01,0x00,0x00,0x00,0x00, // 9
+     0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x0C,0x30,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // :
+     0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x4C,0x30,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ;
+     0x00,0x00,0x00,0x00,0x80,0x01,0x80,0x01,0x40,0x02,0x40,0x02,0x20,0x04,0x20,0x04,0x10,0x08,0x00,0x00, // <
+     0x00,0x00,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x00,0x00, // =
+     0x00,0x00,0x10,0x08,0x20,0x04,0x20,0x04,0x40,0x02,0x40,0x02,0x80,0x01,0x80,0x01,0x00,0x00,0x00,0x00, // >
+     0x00,0x00,0x07,0x00,0x01,0x00,0x81,0x0D,0x41,0x00,0x21,0x00,0x13,0x00,0x0E,0x00,0x00,0x00,0x00,0x00, // ?
+     0xF8,0x01,0x0C,0x06,0x02,0x0C,0xF1,0x09,0x09,0x0A,0x05,0x0B,0xC5,0x0D,0xFE,0x03,0x00,0x02,0x00,0x02, // @
+     0x00,0x08,0x00,0x07,0xC0,0x01,0x38,0x01,0x0C,0x01,0x18,0x01,0x60,0x01,0x80,0x01,0x00,0x06,0x00,0x08, // A
+     0x00,0x00,0xFC,0x0F,0x44,0x08,0x44,0x08,0x44,0x08,0x44,0x08,0xA4,0x08,0x18,0x07,0x00,0x00,0x00,0x00, // B
+     0xE0,0x01,0x18,0x06,0x08,0x04,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x0C,0x08,0x00,0x00,0x00,0x00, // C
+     0x00,0x00,0xFC,0x0F,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x08,0x04,0xF0,0x03,0x00,0x00,0x00,0x00, // D
+     0x00,0x00,0xFC,0x0F,0x84,0x08,0x84,0x08,0x84,0x08,0x84,0x08,0x84,0x08,0x04,0x08,0x00,0x00,0x00,0x00, // E
+     0x00,0x00,0xFC,0x0F,0x84,0x00,0x84,0x00,0x84,0x00,0x84,0x00,0x84,0x00,0x04,0x00,0x00,0x00,0x00,0x00, // F
+     0x00,0x00,0xE0,0x01,0x18,0x06,0x08,0x04,0x04,0x08,0x04,0x08,0x84,0x08,0x84,0x08,0x8C,0x0F,0x00,0x00, // G
+     0x00,0x00,0xFC,0x0F,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00, // H
+     0x00,0x00,0x04,0x08,0x04,0x08,0x04,0x08,0xFC,0x0F,0x04,0x08,0x04,0x08,0x04,0x08,0x00,0x00,0x00,0x00, // I
+     0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0xFC,0x07,0x00,0x00,0x00,0x00,0x00,0x00, // J
+     0x00,0x00,0xFC,0x0F,0x40,0x00,0xC0,0x00,0x20,0x01,0x10,0x02,0x08,0x02,0x04,0x04,0x00,0x08,0x00,0x00, // K
+     0x00,0x00,0xFC,0x0F,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00, // L
+     0xFC,0x0F,0x1C,0x00,0xF0,0x00,0x80,0x03,0x00,0x03,0xE0,0x00,0x1C,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00, // M
+     0x00,0x00,0xFC,0x0F,0x08,0x00,0x30,0x00,0xC0,0x00,0x00,0x03,0x00,0x04,0xFC,0x0F,0x00,0x00,0x00,0x00, // N
+     0x00,0x00,0xF0,0x03,0x08,0x04,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x08,0x04,0xF0,0x03,0x00,0x00, // O
+     0x00,0x00,0xFC,0x0F,0x84,0x00,0x84,0x00,0x84,0x00,0x84,0x00,0x44,0x00,0x38,0x00,0x00,0x00,0x00,0x00, // P
+     0x00,0x00,0xF0,0x03,0x08,0x04,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x18,0x08,0x24,0xF0,0x23,0x00,0x00, // Q
+     0x00,0x00,0xFC,0x0F,0x84,0x00,0x84,0x00,0x84,0x01,0x44,0x02,0x38,0x04,0x00,0x08,0x00,0x00,0x00,0x00, // R
+     0x00,0x00,0x38,0x0C,0x24,0x08,0x44,0x08,0x44,0x08,0x84,0x08,0x84,0x04,0x0C,0x07,0x00,0x00,0x00,0x00, // S
+     0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0xFC,0x0F,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x00,0x00, // T
+     0x00,0x00,0xFC,0x03,0x00,0x0C,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x04,0xFC,0x03,0x00,0x00,0x00,0x00, // U
+     0x04,0x00,0x18,0x00,0xE0,0x00,0x00,0x03,0x00,0x0C,0x00,0x0C,0x80,0x03,0x60,0x00,0x18,0x00,0x04,0x00, // V
+     0x0C,0x00,0xF0,0x01,0x00,0x0E,0x80,0x07,0x70,0x00,0xE0,0x00,0x00,0x07,0x00,0x0E,0xF0,0x01,0x0C,0x00, // W
+     0x04,0x08,0x08,0x04,0x10,0x02,0x20,0x01,0xC0,0x00,0xC0,0x00,0x20,0x01,0x10,0x02,0x08,0x04,0x04,0x08, // X
+     0x04,0x00,0x08,0x00,0x30,0x00,0x40,0x00,0x80,0x0F,0x40,0x00,0x20,0x00,0x10,0x00,0x08,0x00,0x04,0x00, // Y
+     0x00,0x00,0x04,0x0C,0x04,0x0A,0x04,0x09,0x84,0x08,0x44,0x08,0x24,0x08,0x14,0x08,0x0C,0x08,0x00,0x00, // Z
+     0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x3F,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x00,0x00,0x00,0x00, // [
+     0x00,0x00,0x01,0x00,0x06,0x00,0x18,0x00,0x60,0x00,0x80,0x01,0x00,0x06,0x00,0x18,0x00,0x20,0x00,0x00, // \
+     0x00,0x00,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ]
+     0x00,0x00,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ] //il y a un PB
+     0x00,0x00,0x00,0x02,0x80,0x01,0x70,0x00,0x1C,0x00,0x07,0x00,0x38,0x00,0xC0,0x01,0x00,0x02,0x00,0x00, // ^
+     0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10, // _
+     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // `
+     0x00,0x00,0x00,0x06,0x10,0x09,0x90,0x08,0x90,0x08,0x90,0x04,0xE0,0x0F,0x00,0x08,0x00,0x00,0x00,0x00, // a
+     0x00,0x00,0xFF,0x0F,0x20,0x04,0x10,0x08,0x10,0x08,0x10,0x08,0x30,0x04,0xC0,0x03,0x00,0x00,0x00,0x00, // b
+     0x00,0x00,0xC0,0x03,0x20,0x04,0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x08,0x00,0x00,0x00,0x00, // c
+     0x00,0x00,0xC0,0x03,0x20,0x0C,0x10,0x08,0x10,0x08,0x10,0x08,0x20,0x04,0xFF,0x0F,0x00,0x00,0x00,0x00, // d
+     0x00,0x00,0xC0,0x03,0xA0,0x04,0x90,0x08,0x90,0x08,0x90,0x08,0x90,0x08,0xE0,0x08,0x00,0x00,0x00,0x00, // e
+     0x00,0x00,0x10,0x00,0x10,0x00,0xFE,0x0F,0x12,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x00,0x00, // f
+     0x00,0x00,0xC0,0x03,0x20,0x4C,0x10,0x48,0x10,0x48,0x10,0x48,0x20,0x24,0xF0,0x1F,0x00,0x00,0x00,0x00, // g
+     0x00,0x00,0xFF,0x0F,0x40,0x00,0x20,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0xE0,0x0F,0x00,0x00,0x00,0x00, // h
+     0x00,0x00,0x10,0x00,0x10,0x00,0x13,0x00,0xF3,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // i
+     0x00,0x00,0x00,0x40,0x10,0x40,0x10,0x40,0x13,0x40,0xF3,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // j
+     0x00,0x00,0xFF,0x0F,0x80,0x00,0x80,0x01,0x40,0x02,0x20,0x02,0x20,0x04,0x10,0x08,0x00,0x00,0x00,0x00, // k
+     0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // l
+     0xF0,0x0F,0x20,0x00,0x10,0x00,0x10,0x00,0xE0,0x0F,0x20,0x00,0x10,0x00,0x10,0x00,0xE0,0x0F,0x00,0x00, // m
+     0x00,0x00,0xF0,0x0F,0x60,0x00,0x20,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0xE0,0x0F,0x00,0x00,0x00,0x00, // n
+     0x00,0x00,0xC0,0x03,0x20,0x04,0x10,0x08,0x10,0x08,0x10,0x08,0x20,0x04,0xC0,0x03,0x00,0x00,0x00,0x00, // o
+     0x00,0x00,0xF0,0x7F,0x20,0x04,0x10,0x08,0x10,0x08,0x10,0x08,0x30,0x04,0xC0,0x03,0x00,0x00,0x00,0x00, // p
+     0x00,0x00,0xC0,0x03,0x20,0x0C,0x10,0x08,0x10,0x08,0x10,0x08,0x20,0x04,0xF0,0x7F,0x00,0x00,0x00,0x00, // q
+     0x00,0x00,0x00,0x00,0xF0,0x0F,0x40,0x00,0x20,0x00,0x10,0x00,0x10,0x00,0x70,0x00,0x00,0x00,0x00,0x00, // r
+     0x00,0x00,0x60,0x0C,0x90,0x08,0x90,0x08,0x10,0x09,0x10,0x09,0x10,0x06,0x00,0x00,0x00,0x00,0x00,0x00, // s
+     0x00,0x00,0x10,0x00,0x10,0x00,0xFC,0x07,0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x08,0x00,0x00,0x00,0x00, // t
+     0x00,0x00,0xF0,0x07,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x04,0xF0,0x0F,0x00,0x00,0x00,0x00,0x00,0x00, // u
+     0x10,0x00,0xE0,0x00,0x00,0x03,0x00,0x0C,0x00,0x08,0x00,0x06,0x80,0x01,0x60,0x00,0x10,0x00,0x00,0x00, // v
+     0x30,0x00,0xC0,0x03,0x00,0x0C,0x00,0x07,0xE0,0x00,0xC0,0x00,0x00,0x07,0x00,0x0C,0xC0,0x03,0x30,0x00, // w
+     0x00,0x00,0x10,0x08,0x20,0x04,0x40,0x02,0x80,0x01,0x80,0x01,0x40,0x02,0x20,0x04,0x10,0x08,0x00,0x00, // x
+     0x10,0x40,0x60,0x40,0x80,0x41,0x00,0x23,0x00,0x1C,0x00,0x0C,0x00,0x03,0x80,0x00,0x60,0x00,0x10,0x00, // y
+     0x00,0x00,0x10,0x08,0x10,0x0C,0x10,0x0A,0x10,0x09,0x90,0x08,0x50,0x08,0x30,0x08,0x10,0x08,0x00,0x00, // z
+     0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x7E,0x1F,0x01,0x20,0x01,0x20,0x01,0x20,0x00,0x00,0x00,0x00, // {
+     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // |
+     0x00,0x00,0x00,0x00,0x01,0x20,0x01,0x20,0x01,0x20,0x7E,0x1F,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00, // }
+     0x00,0x00,0x00,0x00,0x1E,0x00,0x21,0x00,0x21,0x00,0x21,0x00,0x21,0x00,0x1E,0x00,0x00,0x00,0x00,0x00}; // &#65533; MOD
+
+ 
+//     0x00,0x00,0x00,0x00,0xFC,0x0F,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0xFC,0x0F,0x00,0x00,0x00,0x00, // 
+//     0xE0,0x01,0x18,0x06,0x08,0x04,0x04,0x08,0x04,0x08,0x04,0x48,0x04,0x58,0x0C,0x68,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0xF0,0x07,0x02,0x08,0x00,0x08,0x00,0x08,0x02,0x04,0xF0,0x0F,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4C,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x40,0x10,0x40,0x10,0x40,0xFF,0x3F,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4C,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10, // &#65533;
+//     0x00,0x00,0x00,0x00,0x21,0x00,0x31,0x00,0x29,0x00,0x29,0x00,0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x21,0x80,0x25,0x00,0x25,0x00,0x25,0x00,0x1B,0x80,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0xC0,0x03,0xA2,0x04,0x91,0x08,0x91,0x08,0x92,0x08,0x90,0x08,0xE0,0x08,0x00,0x00,0x00,0x00, // &#65533;
+//     0x0E,0x08,0x11,0x04,0x11,0x02,0x91,0x01,0x4E,0x00,0x20,0x07,0x98,0x08,0x84,0x08,0x82,0x08,0x01,0x07, // &#65533;
+//     0x00,0x00,0x38,0x0C,0x24,0x08,0x44,0x08,0x44,0x08,0x84,0x08,0x84,0x04,0x0C,0x07,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x80,0x01,0x80,0x01,0x40,0x02,0x40,0x02,0x20,0x04,0x20,0x04,0x10,0x08,0x00,0x00, // &#65533;
+//     0x00,0x00,0xF0,0x03,0x08,0x04,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x08,0x04,0xF0,0x03,0x00,0x00, // &#65533;
+//     0x00,0x00,0x10,0x00,0x10,0x00,0x11,0x00,0xF2,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x88,0x00,0x87,0xC0,0x81,0x38,0x81,0x0C,0x81,0x18,0x81,0x60,0x81,0x80,0x81,0x00,0x86,0x00,0x88, // &#65533;
+//     0x00,0x08,0x00,0x07,0xC0,0x01,0x39,0x01,0x06,0x01,0x0E,0x01,0x79,0x01,0xC0,0x01,0x00,0x07,0x00,0x08, // &#65533;
+//     0x00,0x00,0xFC,0x0F,0x84,0x08,0x84,0x08,0x85,0x08,0x84,0x08,0x84,0x08,0x04,0x08,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0xC0,0x03,0x21,0x04,0x12,0x08,0x10,0x08,0x10,0x08,0x20,0x04,0xC0,0x03,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10, // &#65533;
+//     0x10,0x40,0x60,0x40,0x82,0x41,0x00,0x23,0x00,0x1C,0x02,0x0C,0x00,0x03,0x80,0x00,0x60,0x00,0x10,0x00, // &#65533;
+//     0x00,0x00,0xF0,0x03,0x08,0x04,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x08,0x04,0xF0,0x03,0x00,0x00, // &#65533;
+//     0x00,0x00,0x60,0x0C,0x90,0x08,0x90,0x08,0x10,0x09,0x10,0x09,0x10,0x06,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x10,0x08,0x20,0x04,0x20,0x04,0x40,0x02,0x40,0x02,0x80,0x01,0x80,0x01,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0xC0,0x03,0x20,0x04,0x10,0x08,0x10,0x08,0x10,0x08,0x20,0x04,0xC0,0x03,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0xF0,0x0B,0x08,0x06,0x04,0x0B,0x84,0x08,0x44,0x08,0x34,0x08,0x18,0x04,0xF4,0x03,0x00,0x00, // &#65533;
+//     0x00,0x00,0x10,0x08,0x20,0x04,0x40,0x02,0x80,0x01,0x80,0x01,0x40,0x02,0x20,0x04,0x10,0x08,0x00,0x00, // &#65533;
+//     0x04,0x00,0x08,0x00,0x30,0x00,0x40,0x00,0x80,0x0F,0x40,0x00,0x20,0x00,0x10,0x00,0x08,0x00,0x04,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0xB0,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0xF8,0x01,0x04,0x02,0x02,0x06,0x02,0x04,0xFF,0x8F,0x02,0x04,0x02,0x04,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x00,0x08,0x20,0x0C,0xFE,0x8B,0x21,0x88,0x21,0x08,0x01,0x08,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x04,0x02,0xF8,0x01,0x08,0x81,0x08,0x81,0x08,0x01,0x08,0x81,0xF8,0x01,0x04,0x02,0x00,0x00, // &#65533;
+//     0x01,0x00,0x02,0x00,0x4C,0x82,0x50,0x02,0xE0,0x0F,0x50,0x02,0x48,0x82,0x04,0x00,0x02,0x00,0x01,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xBE,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0xEE,0x30,0x99,0x21,0x11,0x21,0x31,0x23,0x21,0x26,0xC1,0x1D,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0xF8,0x01,0x06,0x06,0xF3,0x0C,0x99,0x09,0x09,0x89,0x09,0x09,0x0B,0x0D,0x06,0x06,0xF8,0x01,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x19,0x00,0x25,0x00,0x25,0x00,0x25,0x80,0x3E,0x00,0x20,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x80,0x00,0x40,0x01,0x20,0x02,0x10,0x84,0x80,0x80,0x40,0x01,0x20,0x02,0x10,0x04,0x00,0x00, // &#65533;
+//     0x00,0x00,0x40,0x00,0x40,0x80,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x80,0x40,0x00,0xC0,0x03,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x80,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x1C,0x00,0x22,0x00,0x5D,0x00,0x55,0x00,0x5D,0x80,0x22,0x00,0x1C,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x00,0x80,0x06,0x00,0x09,0x00,0x09,0x00,0x06,0x80,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x40,0x08,0x40,0x08,0x40,0x08,0x40,0x08,0xF0,0x09,0x40,0x08,0x40,0x08,0x40,0x08,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x21,0x00,0x31,0x80,0x29,0x80,0x29,0x00,0x26,0x80,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x21,0x00,0x25,0x80,0x25,0x00,0x25,0x00,0x1B,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0xF0,0x7F,0x00,0x04,0x00,0x08,0x00,0x88,0x00,0x88,0x00,0x04,0xF0,0x0F,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x0E,0x00,0x1F,0x00,0x3F,0x80,0xFF,0xBF,0x01,0x00,0x01,0x80,0xFF,0x3F,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x80,0x01,0x80,0x01,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x50,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x1E,0x00,0x21,0x80,0x21,0x00,0x21,0x00,0x21,0x00,0x1E,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x10,0x04,0x20,0x02,0x40,0x01,0x80,0x00,0x10,0x84,0x20,0x02,0x40,0x01,0x80,0x00,0x00,0x00, // &#65533;
+//     0x01,0x08,0x3F,0x06,0x00,0x01,0xC0,0x00,0x30,0x80,0x08,0x83,0x86,0x02,0x41,0x02,0xC0,0x0F,0x00,0x02, // &#65533;
+//     0x01,0x08,0x3F,0x06,0x00,0x81,0xC0,0x00,0x30,0x00,0x08,0x00,0x46,0x88,0x41,0x0E,0x40,0x0A,0x80,0x09, // &#65533;
+//     0x21,0x08,0x25,0x04,0x2D,0x02,0x9B,0x01,0x40,0x00,0x20,0x83,0x98,0x02,0x44,0x02,0xC2,0x0F,0x01,0x02, // &#65533;
+//     0x00,0x00,0x00,0x38,0x00,0x64,0x00,0x44,0x00,0x42,0xB0,0x41,0x00,0x40,0x00,0x70,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x08,0x00,0x07,0xC0,0x01,0x38,0x01,0x0D,0x01,0x18,0x01,0x60,0x01,0x80,0x01,0x00,0x06,0x00,0x08, // &#65533;
+//     0x00,0x08,0x00,0x07,0xC0,0x01,0x38,0x01,0x0D,0x01,0x18,0x01,0x60,0x01,0x80,0x01,0x00,0x06,0x00,0x08, // &#65533;
+//     0x00,0x08,0x00,0x07,0xC0,0x01,0x39,0x01,0x0C,0x01,0x18,0x01,0x61,0x01,0x80,0x01,0x00,0x06,0x00,0x08, // &#65533;
+//     0x00,0x08,0x00,0x07,0xC1,0x01,0x38,0x01,0x0D,0x01,0x19,0x01,0x60,0x01,0x80,0x01,0x00,0x06,0x00,0x08, // &#65533;
+//     0x00,0x08,0x00,0x07,0xC0,0x01,0x38,0x01,0x0C,0x01,0x18,0x01,0x60,0x01,0x80,0x01,0x00,0x06,0x00,0x08, // &#65533;
+//     0x00,0x08,0x00,0x07,0xC0,0x01,0x39,0x01,0x06,0x81,0x0E,0x01,0x79,0x01,0xC0,0x01,0x00,0x07,0x00,0x08, // &#65533;
+//     0x00,0x08,0x00,0x06,0xC0,0x03,0x30,0x02,0x0C,0x02,0xFC,0x0F,0x84,0x08,0x84,0x08,0x04,0x08,0x00,0x00, // &#65533;
+//     0xE0,0x01,0x18,0x06,0x08,0x04,0x04,0x08,0x04,0x08,0x04,0x48,0x04,0x58,0x0C,0x68,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0xFC,0x0F,0x84,0x08,0x84,0x08,0x84,0x08,0x85,0x08,0x84,0x08,0x04,0x08,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0xFC,0x0F,0x84,0x08,0x84,0x08,0x85,0x08,0x84,0x08,0x84,0x08,0x04,0x08,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0xFC,0x0F,0x84,0x08,0x85,0x08,0x84,0x08,0x84,0x08,0x85,0x08,0x04,0x08,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0xFC,0x0F,0x84,0x08,0x84,0x08,0x84,0x08,0x84,0x08,0x84,0x08,0x04,0x08,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x04,0x08,0x04,0x08,0x04,0x08,0xFD,0x0F,0x04,0x08,0x04,0x08,0x04,0x08,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x04,0x08,0x04,0x08,0x04,0x08,0xFD,0x0F,0x04,0x08,0x04,0x08,0x04,0x08,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x04,0x08,0x04,0x08,0x05,0x08,0xFC,0x0F,0x04,0x08,0x05,0x08,0x04,0x08,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0x04,0x08,0x04,0x08,0x04,0x08,0xFC,0x0F,0x04,0x08,0x04,0x08,0x04,0x08,0x00,0x00,0x00,0x00, // &#65533;
+//     0x40,0x00,0xFC,0x0F,0x44,0x08,0x44,0x08,0x04,0x08,0x04,0x08,0x08,0x04,0xF0,0x03,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0xFC,0x0F,0x09,0x00,0x30,0x00,0xC1,0x00,0x01,0x03,0x00,0x04,0xFC,0x0F,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0xF0,0x03,0x08,0x04,0x04,0x08,0x05,0x08,0x04,0x08,0x04,0x08,0x08,0x04,0xF0,0x03,0x00,0x00, // &#65533;
+//     0x00,0x00,0xF0,0x03,0x08,0x04,0x04,0x08,0x05,0x08,0x04,0x08,0x04,0x08,0x08,0x04,0xF0,0x03,0x00,0x00, // &#65533;
+//     0x00,0x00,0xF0,0x03,0x08,0x04,0x05,0x08,0x04,0x08,0x04,0x08,0x05,0x08,0x08,0x04,0xF0,0x03,0x00,0x00, // &#65533;
+//     0x00,0x00,0xF0,0x03,0x09,0x04,0x04,0x08,0x05,0x08,0x05,0x08,0x04,0x08,0x08,0x04,0xF0,0x03,0x00,0x00, // &#65533;
+//     0x00,0x00,0xF0,0x03,0x08,0x04,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x08,0x04,0xF0,0x03,0x00,0x00, // &#65533;
+//     0x00,0x00,0x10,0x08,0x20,0x04,0x40,0x02,0x80,0x01,0x80,0x01,0x40,0x02,0x20,0x04,0x10,0x08,0x00,0x00, // &#65533;
+//     0x00,0x00,0xF0,0x0B,0x08,0x06,0x04,0x0B,0x84,0x08,0x44,0x08,0x34,0x08,0x18,0x04,0xF4,0x03,0x00,0x00, // &#65533;
+//     0x00,0x00,0xFC,0x03,0x00,0x0C,0x00,0x08,0x01,0x08,0x00,0x08,0x00,0x04,0xFC,0x03,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0xFC,0x03,0x00,0x0C,0x00,0x08,0x01,0x08,0x00,0x08,0x00,0x04,0xFC,0x03,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0xFC,0x03,0x00,0x0C,0x01,0x08,0x00,0x08,0x00,0x08,0x01,0x04,0xFC,0x03,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0xFC,0x03,0x00,0x0C,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x04,0xFC,0x03,0x00,0x00,0x00,0x00, // &#65533;
+//     0x04,0x00,0x08,0x00,0x30,0x00,0x40,0x00,0x81,0x0F,0x40,0x00,0x20,0x00,0x10,0x00,0x08,0x00,0x04,0x00, // &#65533;
+//     0x00,0x00,0xFC,0x0F,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x01,0xE0,0x00,0x00,0x00,0x00,0x00, // &#65533;
+//     0x00,0x00,0xFE,0x0F,0x01,0x00,0x01,0x00,0x71,0x08,0x8E,0x08,0x00,0x09,0x00,0x06,0x00,0x00,0x00,0x00}; // &#65533;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/font5x7.h	Wed Jul 06 12:06:40 2011 +0000
@@ -0,0 +1,100 @@
+#define FONT_OFFSET5x7    32 //first code ascii
+#define FONT_WIDTH5x7    5
+static const unsigned char font5x7[] = {
+0x00, 0x00, 0x00, 0x00, 0x00,// (spacja)
+0x00, 0x00, 0x5F, 0x00, 0x00,// !
+0x00, 0x07, 0x00, 0x07, 0x00,// "
+0x14, 0x7F, 0x14, 0x7F, 0x14,// #
+0x24, 0x2A, 0x7F, 0x2A, 0x12,// $
+0x23, 0x13, 0x08, 0x64, 0x62,// %
+0x36, 0x49, 0x55, 0x22, 0x50,// &
+0x00, 0x05, 0x03, 0x00, 0x00,// '
+0x00, 0x1C, 0x22, 0x41, 0x00,// (
+0x00, 0x41, 0x22, 0x1C, 0x00,// )
+0x08, 0x2A, 0x1C, 0x2A, 0x08,// *
+0x08, 0x08, 0x3E, 0x08, 0x08,// +
+0x00, 0x50, 0x30, 0x00, 0x00,// ,
+0x08, 0x08, 0x08, 0x08, 0x08,// -
+0x00, 0x30, 0x30, 0x00, 0x00,// .
+0x20, 0x10, 0x08, 0x04, 0x02,// /
+0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
+0x00, 0x42, 0x7F, 0x40, 0x00,// 1
+0x42, 0x61, 0x51, 0x49, 0x46,// 2
+0x21, 0x41, 0x45, 0x4B, 0x31,// 3
+0x18, 0x14, 0x12, 0x7F, 0x10,// 4
+0x27, 0x45, 0x45, 0x45, 0x39,// 5
+0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
+0x01, 0x71, 0x09, 0x05, 0x03,// 7
+0x36, 0x49, 0x49, 0x49, 0x36,// 8
+0x06, 0x49, 0x49, 0x29, 0x1E,// 9
+0x00, 0x36, 0x36, 0x00, 0x00,// :
+0x00, 0x56, 0x36, 0x00, 0x00,// ;
+0x00, 0x08, 0x14, 0x22, 0x41,// <
+0x14, 0x14, 0x14, 0x14, 0x14,// =
+0x41, 0x22, 0x14, 0x08, 0x00,// >
+0x02, 0x01, 0x51, 0x09, 0x06,// ?
+0x32, 0x49, 0x79, 0x41, 0x3E,// @
+0x7E, 0x11, 0x11, 0x11, 0x7E,// A
+0x7F, 0x49, 0x49, 0x49, 0x36,// B
+0x3E, 0x41, 0x41, 0x41, 0x22,// C
+0x7F, 0x41, 0x41, 0x22, 0x1C,// D
+0x7F, 0x49, 0x49, 0x49, 0x41,// E
+0x7F, 0x09, 0x09, 0x01, 0x01,// F
+0x3E, 0x41, 0x41, 0x51, 0x32,// G
+0x7F, 0x08, 0x08, 0x08, 0x7F,// H
+0x00, 0x41, 0x7F, 0x41, 0x00,// I
+0x20, 0x40, 0x41, 0x3F, 0x01,// J
+0x7F, 0x08, 0x14, 0x22, 0x41,// K
+0x7F, 0x40, 0x40, 0x40, 0x40,// L
+0x7F, 0x02, 0x04, 0x02, 0x7F,// M
+0x7F, 0x04, 0x08, 0x10, 0x7F,// N
+0x3E, 0x41, 0x41, 0x41, 0x3E,// O
+0x7F, 0x09, 0x09, 0x09, 0x06,// P
+0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
+0x7F, 0x09, 0x19, 0x29, 0x46,// R
+0x46, 0x49, 0x49, 0x49, 0x31,// S
+0x01, 0x01, 0x7F, 0x01, 0x01,// T
+0x3F, 0x40, 0x40, 0x40, 0x3F,// U
+0x1F, 0x20, 0x40, 0x20, 0x1F,// V
+0x7F, 0x20, 0x18, 0x20, 0x7F,// W
+0x63, 0x14, 0x08, 0x14, 0x63,// X
+0x03, 0x04, 0x78, 0x04, 0x03,// Y
+0x61, 0x51, 0x49, 0x45, 0x43,// Z
+0x00, 0x00, 0x7F, 0x41, 0x41,// [
+0x02, 0x04, 0x08, 0x10, 0x20,// "\"
+0x41, 0x41, 0x7F, 0x00, 0x00,// ]
+0x04, 0x02, 0x01, 0x02, 0x04,// ^
+0x40, 0x40, 0x40, 0x40, 0x40,// _
+0x00, 0x01, 0x02, 0x04, 0x00,// `
+0x20, 0x54, 0x54, 0x54, 0x78,// a
+0x7F, 0x48, 0x44, 0x44, 0x38,// b
+0x38, 0x44, 0x44, 0x44, 0x20,// c
+0x38, 0x44, 0x44, 0x48, 0x7F,// d
+0x38, 0x54, 0x54, 0x54, 0x18,// e
+0x08, 0x7E, 0x09, 0x01, 0x02,// f
+0x08, 0x14, 0x54, 0x54, 0x3C,// g
+0x7F, 0x08, 0x04, 0x04, 0x78,// h
+0x00, 0x44, 0x7D, 0x40, 0x00,// i
+0x20, 0x40, 0x44, 0x3D, 0x00,// j
+0x00, 0x7F, 0x10, 0x28, 0x44,// k
+0x00, 0x41, 0x7F, 0x40, 0x00,// l
+0x7C, 0x04, 0x18, 0x04, 0x78,// m
+0x7C, 0x08, 0x04, 0x04, 0x78,// n
+0x38, 0x44, 0x44, 0x44, 0x38,// o
+0x7C, 0x14, 0x14, 0x14, 0x08,// p
+0x08, 0x14, 0x14, 0x18, 0x7C,// q
+0x7C, 0x08, 0x04, 0x04, 0x08,// r
+0x48, 0x54, 0x54, 0x54, 0x20,// s
+0x04, 0x3F, 0x44, 0x40, 0x20,// t
+0x3C, 0x40, 0x40, 0x20, 0x7C,// u
+0x1C, 0x20, 0x40, 0x20, 0x1C,// v
+0x3C, 0x40, 0x30, 0x40, 0x3C,// w
+0x44, 0x28, 0x10, 0x28, 0x44,// x
+0x0C, 0x50, 0x50, 0x50, 0x3C,// y
+0x44, 0x64, 0x54, 0x4C, 0x44,// z
+0x00, 0x08, 0x36, 0x41, 0x00,// {
+0x00, 0x00, 0x7F, 0x00, 0x00,// |
+0x00, 0x41, 0x36, 0x08, 0x00,// }
+0x08, 0x08, 0x2A, 0x1C, 0x08,// ->
+0x08, 0x1C, 0x2A, 0x08, 0x08 // <-
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gfx1.cpp	Wed Jul 06 12:06:40 2011 +0000
@@ -0,0 +1,74 @@
+/**
+* @file gfx1.cpp
+* @brief library Lascar Electronics SP 5-GFX1 DISPLAY, LCD GRAPHIC, 128 X 64 DOTS
+* @author Frederic BLANC
+*/
+#include "gfx1.h"
+SPI spi1(p5, p6, p7); //definition BUS SPI
+unsigned char gfx1[128][7]; //emulation memoire ecran
+unsigned int gfx1_x,gfx1_y;//emulation memoire ecran
+DigitalOut GFX1_CS1_PIN(p23);
+DigitalOut GFX1_RST_PIN(p22);
+DigitalOut GFX1_AOP_PIN(p21);
+
+/**
+ *     @brief init hard SPI
+ *     @date 20/06/2011
+ *
+ */
+void gfx1_init(void) {
+    spi1.format(8, 2); //spi 8bits, mode10
+    spi1.frequency(1000000); //1mhz
+    GFX1_CS1_PIN=0;
+    GFX1_RST_PIN=0;
+    wait_us(1); //1&#65533;s
+    GFX1_RST_PIN=1;
+}
+
+
+/**
+ *     @brief Write command
+ *    @param  [in] command
+ *     @date 20/06/2011
+ *
+ */
+void gfx1_command (unsigned char data ) {
+    GFX1_AOP_PIN = 0;
+    spi1.write (data);
+    
+}
+
+
+/**
+ *     @brief Write display data
+ *    @param  [in] data
+ *     @date 20/06/2011
+ *
+ */
+void gfx1_data (unsigned char data ) {
+    GFX1_AOP_PIN = 1;
+    spi1.write (data);
+    gfx1[gfx1_x][gfx1_y]=data;
+    gfx1_x++;  //emulation memoire ecran
+    if(gfx1_x>=128)
+    {
+       gfx1_x=0;
+       gfx1_y++; 
+    }
+    if(gfx1_y>=8)
+        gfx1_y=7;
+}
+
+/**
+ *     @brief Read display data
+ *    @return   data
+ *     @date 20/06/2011
+ *
+ */
+unsigned char gfx1_read(void)
+{
+unsigned char tmp;
+    tmp=gfx1[gfx1_x][gfx1_y]; //emulation memoire ecran
+
+return tmp;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gfx1.h	Wed Jul 06 12:06:40 2011 +0000
@@ -0,0 +1,8 @@
+#include "mbed.h"
+extern unsigned int gfx1_x,gfx1_y;//emulation memoire ecran
+
+
+void gfx1_init(void);
+void gfx1_command (unsigned char data );
+void gfx1_data (unsigned char data );
+unsigned char gfx1_read(void);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/graphic.c	Wed Jul 06 12:06:40 2011 +0000
@@ -0,0 +1,108 @@
+// Wy&#65533;wietlacz graficzny ze sterownikiem S6B0724
+// sterowanie w jezyku C od podstaw
+// Plik : graphic.c
+// Autor : Rados&#65533;aw Kwiecie&#65533;
+
+#include "SPLC501C.h"
+
+void GLCD_Rectangle(unsigned char x, unsigned char y, unsigned char b, unsigned char a , char color) {
+    unsigned char j; // zmienna pomocnicza
+    // rysowanie linii pionowych (boki)
+    for (j = 0; j < a; j++) {
+        GLCD_SetPixel(x, y + j, color);
+        GLCD_SetPixel(x + b - 1, y + j, color);
+    }
+    // rysowanie linii poziomych (podstawy)
+    for (j = 0; j < b; j++)    {
+        GLCD_SetPixel(x + j, y, color);
+        GLCD_SetPixel(x + j, y + a - 1, color);
+    }
+}
+
+
+void GLCD_Circle(unsigned char cx, unsigned char cy ,unsigned char radius , char color) {
+    int x, y, xchange, ychange, radiusError;
+    x = radius;
+    y = 0;
+    xchange = 1 - 2 * radius;
+    ychange = 1;
+    radiusError = 0;
+    while (x >= y) {
+        GLCD_SetPixel(cx+x, cy+y, color);
+        GLCD_SetPixel(cx-x, cy+y, color);
+        GLCD_SetPixel(cx-x, cy-y, color);
+        GLCD_SetPixel(cx+x, cy-y, color);
+        GLCD_SetPixel(cx+y, cy+x, color);
+        GLCD_SetPixel(cx-y, cy+x, color);
+        GLCD_SetPixel(cx-y, cy-x, color);
+        GLCD_SetPixel(cx+y, cy-x, color);
+        y++;
+        radiusError += ychange;
+        ychange += 2;
+        if ( 2*radiusError + xchange > 0 ) {
+            x--;
+            radiusError += xchange;
+            xchange += 2;
+        }
+    }
+}
+
+
+void GLCD_Line(int X1, int Y1,int X2,int Y2 , char color) {
+    int CurrentX, CurrentY, Xinc, Yinc,
+    Dx, Dy, TwoDx, TwoDy,
+    TwoDxAccumulatedError, TwoDyAccumulatedError;
+
+    Dx = (X2-X1); // obliczenie sk&#65533;adowej poziomej
+    Dy = (Y2-Y1); // obliczenie sk&#65533;adowej pionowej
+
+    TwoDx = Dx + Dx; // podwojona sk&#65533;adowa pozioma
+    TwoDy = Dy + Dy; // podwojona sk&#65533;adowa pionowa
+
+    CurrentX = X1; // zaczynamy od X1
+    CurrentY = Y1; // oraz Y1
+
+    Xinc = 1; // ustalamy krok zwi&#65533;kszania pozycji w poziomie
+    Yinc = 1; // ustalamy krok zwi&#65533;kszania pozycji w pionie
+
+    if (Dx < 0) { // jesli sk&#65533;adowa pozioma jest ujemna
+        Xinc = -1; // to b&#65533;dziemy si&#65533; "cofa&#65533;" (krok ujemny)
+        Dx = -Dx;  // zmieniamy znak sk&#65533;adowej na dodatni
+        TwoDx = -TwoDx; // jak r&#65533;wnie&#65533; podwojonej sk&#65533;adowej
+    }
+
+    if (Dy < 0) { // je&#65533;li sk&#65533;adowa pionowa jest ujemna
+        Yinc = -1; // to b&#65533;dziemy si&#65533; "cofa&#65533;" (krok ujemny)
+        Dy = -Dy; // zmieniamy znak sk&#65533;adowej na dodatki
+        TwoDy = -TwoDy; // jak r&#65533;wniez podwojonej sk&#65533;adowej
+    }
+
+    GLCD_SetPixel(X1,Y1, color); // stawiamy pierwszy krok (zapalamy pierwszy piksel)
+
+    if ((Dx != 0) || (Dy != 0)) { // sprawdzamy czy linia sk&#65533;ada si&#65533; z wi&#65533;cej ni&#65533; jednego punktu ;)
+        // sprawdzamy czy sk&#65533;adowa pionowa jest mniejsza lub r&#65533;wna sk&#65533;adowej poziomej
+        if (Dy <= Dx) { // je&#65533;li tak, to idziemy "po iksach"
+            TwoDxAccumulatedError = 0; // zerujemy zmienn&#65533;
+            do { // ruszamy w drog&#65533;
+                CurrentX += Xinc; // do aktualnej pozycji dodajemy krok
+                TwoDxAccumulatedError += TwoDy; // a tu dodajemy podwojon&#65533; sk&#65533;adow&#65533; pionow&#65533;
+                if (TwoDxAccumulatedError > Dx) { // je&#65533;li TwoDxAccumulatedError jest wi&#65533;kszy od Dx
+                    CurrentY += Yinc; // zwi&#65533;kszamy aktualn&#65533; pozycj&#65533; w pionie
+                    TwoDxAccumulatedError -= TwoDx; // i odejmujemy TwoDx
+                }
+                GLCD_SetPixel(CurrentX,CurrentY, color);// stawiamy nast&#65533;pny krok (zapalamy piksel)
+            } while (CurrentX != X2); // idziemy tak d&#65533;ugo, a&#65533; osi&#65533;gniemy punkt docelowy
+        } else { // w przeciwnym razie idziemy "po igrekach"
+            TwoDyAccumulatedError = 0;
+            do {
+                CurrentY += Yinc;
+                TwoDyAccumulatedError += TwoDx;
+                if (TwoDyAccumulatedError>Dy) {
+                    CurrentX += Xinc;
+                    TwoDyAccumulatedError -= TwoDy;
+                }
+                GLCD_SetPixel(CurrentX,CurrentY, color);
+            } while (CurrentY != Y2);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/graphic.h	Wed Jul 06 12:06:40 2011 +0000
@@ -0,0 +1,8 @@
+// Wy&#65533;wietlacz graficzny ze sterownikiem S6B0724
+// sterowanie w jezyku C od podstaw
+// Plik : graphic.h
+// Autor : Rados&#65533;aw Kwiecie&#65533;
+
+void GLCD_Rectangle(unsigned char x, unsigned char y, unsigned char b, unsigned char a , char color);
+void GLCD_Circle(unsigned char cx, unsigned char cy ,unsigned char radius , char color);
+void GLCD_Line(int X1, int Y1,int X2,int Y2 , char color);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Jul 06 12:06:40 2011 +0000
@@ -0,0 +1,38 @@
+#include "mbed.h"
+#include  "SPLC501C.h"
+#include  "graphic.h"
+
+int main() {
+
+    GLCD_Initialize(); //init
+    wait(0.1);
+    GLCD_ClearScreen(); //clear
+
+    char str[10]="Bonjour"; 
+    str[9]=0;
+    GLCD_GoTo(10,0); //
+    GLCD_WriteString10x16(str); //print font 10x16
+    GLCD_GoTo(10,3);
+    GLCD_WriteString5x7(str); //print font 5x7
+    
+    unsigned char i=0;
+    unsigned char r=5;
+    while (1) {
+        GLCD_GoTo(10,6);
+        sprintf(str,"%d  ",i++);
+        GLCD_WriteString10x16(str);
+        for(char j=0;j<5;j++)
+        {
+            GLCD_Circle(64, 30 ,r+j,1);
+            GLCD_Circle(64, 30 ,r-j,0);
+        }
+        r+=5;
+        wait(0.5);
+        if (r>25)
+        {
+            GLCD_ClearScreen();
+            r=5;
+        }
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Wed Jul 06 12:06:40 2011 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/e2ac27c8e93e