LS020.h is a MobileLCD library for the LS020 display (used in GSM Siemens S65 family). Resolution 176x132

Files at this revision

API Documentation at this revision

Comitter:
Wimpie
Date:
Mon Dec 06 20:25:44 2010 +0000
Child:
1:2269e07af50b
Commit message:

Changed in this revision

LS020LCD.cpp Show annotated file Show diff for this revision Revisions of this file
LS020LCD.h Show annotated file Show diff for this revision Revisions of this file
fonts/font_6x8.cpp Show annotated file Show diff for this revision Revisions of this file
fonts/font_6x8.h Show annotated file Show diff for this revision Revisions of this file
fonts/font_8x12.cpp Show annotated file Show diff for this revision Revisions of this file
fonts/font_8x12.h Show annotated file Show diff for this revision Revisions of this file
fonts/font_8x8.cpp Show annotated file Show diff for this revision Revisions of this file
fonts/font_8x8.h Show annotated file Show diff for this revision Revisions of this file
fonts/font_clock.cpp Show annotated file Show diff for this revision Revisions of this file
fonts/font_clock.h Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LS020LCD.cpp	Mon Dec 06 20:25:44 2010 +0000
@@ -0,0 +1,635 @@
+/* mbed LS020 Library, for driving the I2C I/O Expander
+ * Copyright (c) 2010, Wim De Roeve, port from Christian Kranz info
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include "LS020LCD.h"
+#include "mbed.h"
+
+#include "fonts/font_6x8.h"
+#include "fonts/font_8x8.h"
+#include "fonts/font_8x12.h"
+#include "fonts/font_clock.h"
+
+#define TINYFONT                       (0)   //6x8
+#define TINYFONT_NAME                  font0
+#define TINYFONT_START                 FONT0_START
+#define TINYFONT_WIDTH                 FONT0_WIDTH
+#define TINYFONT_HEIGHT                FONT0_HEIGHT
+#define SMALLFONT                      (1)  //8x8
+#define SMALLFONT_NAME                 font1
+#define SMALLFONT_START                FONT1_START
+#define SMALLFONT_WIDTH                FONT1_WIDTH
+#define SMALLFONT_HEIGHT               FONT1_HEIGHT
+#define NORMALFONT                     (2)  //8x12
+#define NORMALFONT_NAME                font2
+#define NORMALFONT_START               FONT2_START
+#define NORMALFONT_WIDTH               FONT2_WIDTH
+#define NORMALFONT_HEIGHT              FONT2_HEIGHT
+#define TIMEFONT                       (3)  //Clock
+#define TIMEFONT_NAME                  font3
+#define TIMEFONT_START                 FONT3_START
+#define TIMEFONT_WIDTH                 FONT3_WIDTH
+#define TIMEFONT_HEIGHT                FONT3_HEIGHT
+
+// colors in 8 bit mode BGR off   RRRGGGBB
+#define BLACK  0x00
+#define WHITE  0xFF
+#define RED    0xE0
+#define GREEN  0x1C
+#define BLUE   0x03
+
+using namespace mbed;
+
+unsigned int checkbit(const unsigned long *data, unsigned int nr);
+
+
+LS020LCD::LS020LCD(PinName mosi, PinName miso, PinName clk, PinName cs, PinName rst, PinName rs)
+        : _spi(mosi, miso, clk)
+        , _rst(rst)
+        , _cs(cs)
+        , _rs(rs) {
+    _rotate=false;
+    _mirror=false;
+    reset();
+}
+
+void LS020LCD::write_cmdRG(uint8_t reg, uint8_t param) {
+    _rs = 1; //cmd
+    _cs = 0;
+    _spi.write(reg);
+    _spi.write(param);
+    _cs = 1;
+}
+
+void LS020LCD::write_cmd8(uint8_t cmd8) {
+    _rs = 1; //cmd
+    _cs = 0;
+    _spi.write(cmd8);
+    _cs = 1;
+}
+
+void LS020LCD::write_cmd16(uint16_t cmd16) {
+    _rs = 1; //cmd
+    _cs = 0;
+    _spi.write((cmd16>>8)&0xFF);
+    _spi.write(cmd16&0xFF);
+    _cs = 1;
+}
+
+void LS020LCD::write_data8(char data) {
+    _rs = 0; //data
+    _cs = 0;
+    _spi.write(data);
+    _cs = 1;
+}
+
+void LS020LCD::write_data16(uint16_t cmd16) {
+    _rs = 0; //data
+    _cs = 0;
+    _spi.write((cmd16>>8)&0xFF);
+    _spi.write(cmd16&0xFF);
+    _cs = 1;
+}
+
+void LS020LCD::draw(uint16_t cmd16) {
+    _spi.write((cmd16>>8)&0xFF);
+    _spi.write(cmd16&0xFF);
+}
+
+void LS020LCD::drawstop(void) {
+    _cs = 1;
+}
+
+
+void LS020LCD::drawstart(void) {
+    _rs = 0; //data
+    _cs = 0;
+}
+
+void LS020LCD::locate(int column, int row) {
+    _row = row;
+    _column = column;
+}
+
+void LS020LCD::newline() {
+    _column = 0;
+    _row++;
+    if (_row >= _rows) {
+        _row = 0;
+    }
+}
+
+int LS020LCD::columns() {
+    return _columns;
+}
+
+int LS020LCD::rows() {
+    return _rows;
+}
+
+// ***************** Init and reset
+
+void LS020LCD::orientation(bool rotate, bool mirror) {
+    _rotate=rotate;
+    _mirror=mirror;
+
+    if (rotate==0) {  //default = 176 x 132
+        _width=132;
+        _height=176;
+    } else {          //132 x 176
+        _width=176;
+        _height=132;
+
+    }
+}
+
+void LS020LCD::reset(void) {
+
+    const unsigned char init_array_0[20]={
+        0xEF, 0x00, 0xEE, 0x04, 0x1B, 0x04, 0xFE, 0xFE,
+        0xFE, 0xFE, 0xEF, 0x90, 0x4A, 0x04, 0x7F, 0x3F,
+        0xEE, 0x04, 0x43, 0x06
+    };
+
+    const unsigned char init_array_1[46]= {
+        0xEF, 0x90, 0x09, 0x83, 0x08, 0x00, 0x0B, 0xAF,
+        0x0A, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00,
+        0xEF, 0x00, 0xEE, 0x0C, 0xEF, 0x90, 0x00, 0x80,
+        0xEF, 0xB0, 0x49, 0x02, 0xEF, 0x00, 0x7F, 0x01,
+        0xE1, 0x81, 0xE2, 0x02, 0xE2, 0x76, 0xE1, 0x83,
+        0x80, 0x01, 0xEF, 0x90, 0x00, 0x00
+    };
+
+    int i;
+
+    // Setup the spi for 8 bit data, high steady state clock,
+    // second edge capture, with a 8MHz clock rate
+
+    _spi.format(8,3);
+    _spi.frequency(8000000);
+
+    //reset
+    _cs = 1;
+    _rs = 1;
+    _rst= 0;
+
+    wait_ms(50);
+
+    _rst = 1;
+    wait_ms(50);
+    _cs = 0;
+
+    write_cmd16(0xFDFD);
+    write_cmd16(0xFDFD);
+
+    wait_ms(68);
+
+    //init part 1
+    for (i=0;i<20;i++) {
+        write_cmd8(init_array_0[i]);
+    }
+
+    //important: wait 10ms
+    wait_ms(10);
+
+    //init part 2
+    for (i=0;i<46;i++) {
+        write_cmd8(init_array_1[i]);
+    }
+
+    orientation(_rotate,_mirror);
+    set_window(0, 0, (_width-1), (_height-1));
+    
+    _foreground=BLACK;
+    _background=WHITE;
+    _row=0;
+    _column=0;
+    _font=1;
+    
+    cls();
+
+    return;
+
+};
+
+// *****************  MODE settings
+
+void LS020LCD::set_8bit_mode(char BGR) {
+    // BGR=0 - disabled, BGR=1 - enabled.
+    write_cmd16(0xE800+(BGR&0x01)*0x40);
+}
+
+void LS020LCD::set_16bit_mode(void) {
+    write_cmd16(0xE80F);
+}
+
+void LS020LCD::set_8_color_mode(void) {
+    write_cmd16(0x0401);
+    write_cmd16(0x0000);
+}
+
+void LS020LCD::set_65k_color_mode(void) {
+    write_cmd16(0x0400);
+    write_cmd16(0x0000);
+}
+
+void LS020LCD::foreground(unsigned int color) {
+    _foreground = color;
+}
+
+void LS020LCD::background(unsigned int color) {
+    _background = color;
+}
+
+// ****************
+
+void LS020LCD::set_cursor(unsigned int x, unsigned int y) {
+    write_cmd16(0xEF90);
+
+    if (_rotate) {
+        if (_mirror) {
+            write_cmdRG(0x06, (_width-1)-x);  //set x cursor pos
+            write_cmdRG(0x07, (_height-1)-y); //set y cursor pos
+        } else {
+            write_cmdRG(0x06, x);             //set x cursor pos
+            write_cmdRG(0x07, y);             //set y cursor pos
+        }
+    } else {
+        if (_mirror) {
+            write_cmdRG(0x06, (_height-1)-y); //set y cursor pos
+            write_cmdRG(0x07, x);             //set x cursor pos
+        } else {
+            write_cmdRG(0x06, y);             //set y cursor pos
+            write_cmdRG(0x07, (_width-1)-x);  //set x cursor pos
+        }
+    }
+}
+
+void LS020LCD::set_window(char x0, char y0, char x1,char y1) {
+    // write_cmd16(0x0500);// Set Direction
+    // write_cmd16(0x0A00+x1);
+    // write_cmd16(0x0B00+x2);
+    // write_cmd16(0x0800+y1);
+    // write_cmd16(0x0900+y2);
+
+    //set area
+    write_cmd16(0xEF90);
+    if (_rotate) {
+        if (_mirror) {
+            write_cmdRG(0x08, (_width-1)-x0);  //set x0
+            write_cmdRG(0x09, (_width-1)-x1);  //set x1
+            write_cmdRG(0x0A, (_height-1)-y0); //set y0
+            write_cmdRG(0x0B, (_height-1)-y1); //set y1
+        } else {
+            write_cmdRG(0x08, x0);                //set x0
+            write_cmdRG(0x09, x1);                //set x1
+            write_cmdRG(0x0A, y0);                //set y0
+            write_cmdRG(0x0B, y1);                //set y1
+        }
+    } else {
+        if (_mirror) {
+            write_cmdRG(0x08, (_height-1)-y0); //set y0
+            write_cmdRG(0x09, (_height-1)-y1); //set y1
+            write_cmdRG(0x0A, x0);                //set x0
+            write_cmdRG(0x0B, x1);                //set x1
+        } else {
+            write_cmdRG(0x08, y0);                //set y0
+            write_cmdRG(0x09, y1);                //set y1
+            write_cmdRG(0x0A, (_width-1)-x0);  //set x0
+            write_cmdRG(0x0B, (_width-1)-x1);  //set x1
+        }
+    }
+
+    //set cursor
+    set_cursor(x0, y0);
+
+}
+
+unsigned int LS020LCD::putc(unsigned int x, unsigned int y, unsigned int c, unsigned int size,unsigned int font, unsigned int color, unsigned int bgcolor) {
+    unsigned int ret, i, j, width, height, w, h, wh;
+    const unsigned long *ptr;
+
+    switch (font) {
+        case TINYFONT:
+            c     -= TINYFONT_START;
+            ptr    = (const unsigned long*)&TINYFONT_NAME[c*(TINYFONT_WIDTH*TINYFONT_HEIGHT/8)];
+            width  = TINYFONT_WIDTH;
+            height = TINYFONT_HEIGHT;
+            break;
+        case SMALLFONT:
+            c     -= SMALLFONT_START;
+            ptr    = (const unsigned long*)&SMALLFONT_NAME[c*(SMALLFONT_WIDTH*SMALLFONT_HEIGHT/8)];
+            width  = SMALLFONT_WIDTH;
+            height = SMALLFONT_HEIGHT;
+            break;
+        case NORMALFONT:
+            c     -= NORMALFONT_START;
+            ptr    = (const unsigned long*)&NORMALFONT_NAME[c*(NORMALFONT_WIDTH*NORMALFONT_HEIGHT/8)];
+            width  = NORMALFONT_WIDTH;
+            height = NORMALFONT_HEIGHT;
+            break;
+        case TIMEFONT:
+            c     -= TIMEFONT_START;
+            ptr    = (const unsigned long*)&TIMEFONT_NAME[c*(TIMEFONT_WIDTH*TIMEFONT_HEIGHT/8)];
+            width  = TIMEFONT_WIDTH;
+            height = TIMEFONT_HEIGHT;
+            break;
+    }
+
+    ret = x+(width*size);
+    if (ret > _width) {
+        return _width+1;
+    }
+
+    if (size <= 1) {
+        set_window(x, y, x+(+width-1), y+(height-1));
+        drawstart();
+
+        unsigned long data, mask;
+        for (wh=(width*height)/32; wh!=0; wh--) {
+            data = *ptr++;
+            //data = ((data&0xFF000000UL)>>24)|((data&0x00FF0000UL)>>8)|((data&0x0000FF00UL)<<8)|((data&0x000000FFUL)<<24); //swap32
+            for (mask=0x80000000UL; mask!=0UL; mask>>=1) {
+                if (data & mask) {
+                    draw(color);
+                } else {
+                    draw(bgcolor);
+                }
+            }
+        }
+
+        drawstop();
+    } else {
+        set_window(x, y, x+(width*size)-1, y+(height*size)-1);
+        drawstart();
+
+        unsigned int bit;
+        wh = (width*height);
+        for (h=0; h<wh; h+=width) {
+            for (i=size; i!=0; i--) {
+                bit = h;
+                for (w=0; w<width; w++) {
+                    if (checkbit(ptr, bit++)) {
+                        for (j=size; j!=0; j--) {
+                            draw(color);
+                        }
+                    } else {
+                        for (j=size; j!=0; j--) {
+                            draw(bgcolor);
+                        }
+                    }
+                }
+            }
+        }
+
+        drawstop();
+    }
+
+    return ret;
+}
+
+
+void LS020LCD::fillrectangle(unsigned int x0, unsigned int y0, unsigned int x1, unsigned int y1, unsigned int color) {
+    unsigned int wh, tmp;
+
+    if (x0 > x1) {
+        tmp = x0;
+        x0  = x1;
+        x1  = tmp;
+    }
+    if (y0 > y1) {
+        tmp = y0;
+        y0  = y1;
+        y1  = tmp;
+    }
+
+    if ((x1 >= _width) ||
+            (y1 >= _height)) {
+        return;
+    }
+
+    set_window(x0, y0, x1, y1);
+
+    drawstart();
+    for (wh=((1+(x1-x0))*(1+(y1-y0))); wh!=0; wh--) {
+        draw(color);
+    }
+    drawstop();
+
+    return;
+}
+
+void LS020LCD::drawpixel(unsigned int x, unsigned int y, unsigned int color) {
+    if ((x >= _width) ||
+            (y >= _height)) {
+        return;
+    }
+    set_cursor(x, y);
+    drawstart();
+    draw(color);
+    drawstop();
+
+    return;
+}
+
+void LS020LCD::drawline(unsigned int x0, unsigned int y0, unsigned int x1, unsigned int y1, unsigned int color) {
+    int dx, dy, dx2, dy2, stepx, stepy, err;
+
+    if ((x0 == x1) ||
+            (y0 == y1)) { //horizontal or vertical line
+        fillrectangle(x0, y0, x1, y1, color);
+    } else {
+        //calculate direction
+        dx = x1 - x0;
+        dy = y1 - y0;
+        if (dx < 0) {
+            dx = -dx;
+            stepx = -1;
+        } else {
+            stepx = +1;
+        }
+        if (dy < 0) {
+            dy = -dy;
+            stepy = -1;
+        } else {
+            stepy = +1;
+        }
+        dx2 = dx << 1;
+        dy2 = dy << 1;
+        //draw line
+        set_window(0, 0, (_width-1), (_height-1));
+        drawpixel(x0, y0, color);
+        if (dx > dy) {
+            err = dy2 - dx;
+            while (x0 != x1) {
+                if (err >= 0) {
+                    err -= dx2;
+                    y0  += stepy;
+                }
+                err += dy2;
+                x0  += stepx;
+                drawpixel(x0, y0, color);
+            }
+        } else {
+            err = dx2 - dy;
+            while (y0 != y1) {
+                if (err >= 0) {
+                    err -= dy2;
+                    x0  += stepx;
+                }
+                err += dx2;
+                y0  += stepy;
+                drawpixel(x0, y0, color);
+            }
+        }
+    }
+
+    return;
+}
+
+void LS020LCD::drawrectangle(unsigned int x0, unsigned int y0, unsigned int x1, unsigned int y1, unsigned int color) {
+    fillrectangle(x0, y0, x0, y1, color);
+    fillrectangle(x0, y1, x1, y1, color);
+    fillrectangle(x1, y0, x1, y1, color);
+    fillrectangle(x0, y0, x1, y0, color);
+
+    return;
+}
+
+
+void LS020LCD::fillcircle(unsigned int x0, unsigned int y0, unsigned int radius, unsigned int color) {
+    int err, x, y;
+
+    err = -radius;
+    x   = radius;
+    y   = 0;
+
+    set_window(0, 0, (_width-1), (_height-1));
+
+    while (x >= y) {
+        drawline(x0 - x, y0 + y, x0 + x, y0 + y, color);
+        drawline(x0 - x, y0 - y, x0 + x, y0 - y, color);
+        drawline(x0 - y, y0 + x, x0 + y, y0 + x, color);
+        drawline(x0 - y, y0 - x, x0 + y, y0 - x, color);
+
+        err += y;
+        y++;
+        err += y;
+        if (err >= 0) {
+            x--;
+            err -= x;
+            err -= x;
+        }
+    }
+
+    return;
+}
+
+
+void  LS020LCD::drawcircle(unsigned int x0, unsigned int y0, unsigned int radius, unsigned int color) {
+    int err, x, y;
+
+    err = -radius;
+    x   = radius;
+    y   = 0;
+
+    set_window(0, 0, (_width-1), (_height-1));
+
+    while (x >= y) {
+        drawpixel(x0 + x, y0 + y, color);
+        drawpixel(x0 - x, y0 + y, color);
+        drawpixel(x0 + x, y0 - y, color);
+        drawpixel(x0 - x, y0 - y, color);
+        drawpixel(x0 + y, y0 + x, color);
+        drawpixel(x0 - y, y0 + x, color);
+        drawpixel(x0 + y, y0 - x, color);
+        drawpixel(x0 - y, y0 - x, color);
+
+        err += y;
+        y++;
+        err += y;
+        if (err >= 0) {
+            x--;
+            err -= x;
+            err -= x;
+        }
+    }
+
+    return;
+}
+
+/*void LS020LCD::rectangle8(char x1, char y1, char x2, char y2, char color) {
+    set_window(x1,y1,x2,y2);
+    for (char y=y1;y<=y2;y++) {
+        for (char x=x1;x<=x2;x++) {
+            write_data8(color);
+        }
+    }
+}
+
+
+void LS020LCD::putpixel(unsigned char r,unsigned char g,unsigned char b, unsigned char x, unsigned char y) {
+    uint16_t data;
+    write_cmd16(0xEF90);
+    write_cmd16(0x0500);
+    write_cmd16(0x0800+ x);
+    write_cmd16(0x0A00+ y);
+    write_cmd16(0x0900+ x+1);
+    write_cmd16(0x0B00+ y+1);
+    data=0xffff-(((uint16_t)(31*b/255))*0x800)+(((uint16_t)(63*g/255))*0x20)+(((uint16_t)(31*r/255)));
+    write_data16(data);
+
+}
+void LS020LCD::put_char8(char x, char y, char symbol, char color, char bkcolor) {
+    set_window(x,y,x+5,y+7);
+    int offset=6*(symbol-0x20);
+    for (char i=0;i<6;i++) {
+        for (char j=0;j<8;j++) {
+            if (((font0[offset+i]<<j)&0x80)==0x80) {
+                write_data8(color);
+            } else {
+                write_data8(bkcolor);
+            }
+        }
+    }
+}*/
+
+void LS020LCD::drawtext(unsigned int x, unsigned int y, char* text, unsigned int size,unsigned int font, unsigned int color, unsigned int bgcolor) {
+    char i=0;
+    char x0=0;
+    
+    while (text[i]!=0) {
+        x=putc(x+x0,y,text[i],size,font,color,bgcolor);
+        i++;
+       
+    }
+}
+
+void LS020LCD::cls() {
+    fillrectangle(0, 0, _width, _height, _background);
+}
+
+void LS020LCD::scroll(char offset) {
+    write_cmd16(0x1100+offset);
+}
+
+unsigned int checkbit(const unsigned long *data, unsigned int nr) {
+    return (data[nr/32] & (0x80000000UL>>(nr&31))); // (data[nr/32] & (1<<(nr&31)))
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LS020LCD.h	Mon Dec 06 20:25:44 2010 +0000
@@ -0,0 +1,127 @@
+/* mbed LS020 Library, for driving the I2C I/O Expander
+ * Copyright (c) 2010, Wim De Roeve, port from Christian Kranz research to mbed
+
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+
+#ifndef MBED_LS020LCD_H
+#define MBED_LS020LCD_H
+
+#include "mbed.h"
+
+namespace mbed {
+/* Class: LS020LCD
+     *  An abstraction of the LS020 Mobile phone screen, used in Siemens S65 GSM
+     *
+     * Example:
+     * >
+     * > #include "mbed.h"
+     * > #include "LS020LCD.h"
+     * >
+     * >LSO20LCD S65lcd(p5,p6,p7,p8,p9);
+     * >
+     * > int main() {
+     * >     S65lcd.printf("Hello World!");
+     * > }
+*/
+
+class LS020LCD {
+public:
+    /* Constructor: LSO20LCD
+           *  Create and object for the LS020 LCD, using SPI and three DigitalOuts
+           *
+           * Variables:
+           *  mosi - SPI data out
+           *  miso - SPI data in, not used
+           *  clk  - SPI clock
+           *  cs   - Chip Select
+           *  rst  - reset
+           *  rs   - register select
+           *  rotation - orientation of the screen  0 = landscape, 1 =
+    */
+    LS020LCD(PinName mosi, PinName miso, PinName sclk, PinName cs, PinName rst, PinName rs);
+
+    virtual void orientation(bool rotate, bool mirror);
+    virtual void reset();
+    virtual void set_8bit_mode(char BGR);
+    virtual void set_16bit_mode(void);
+    virtual void set_8_color_mode(void);
+    virtual void set_65k_color_mode(void);
+
+    void fillrectangle(unsigned int x0, unsigned int y0, unsigned int x1, unsigned int y1, unsigned int color);
+    void drawpixel(unsigned int x, unsigned int y, unsigned int color);
+    void drawline(unsigned int x0, unsigned int y0, unsigned int x1, unsigned int y1, unsigned int color);
+    void drawrectangle(unsigned int x0, unsigned int y0, unsigned int x1, unsigned int y1, unsigned int color);
+    void fillcircle(unsigned int x0, unsigned int y0, unsigned int radius, unsigned int color);
+    void drawcircle(unsigned int x0, unsigned int y0, unsigned int radius, unsigned int color);
+    unsigned int putc(unsigned int x, unsigned int y, unsigned int c, unsigned int size, unsigned int font, unsigned int color, unsigned int bgcolor);
+    void drawtext(unsigned int x, unsigned int y, char* text, unsigned int size,unsigned int font, unsigned int color, unsigned int bgcolor);
+    void scroll(char offset);
+    void cls();
+
+    /** Read the IO pin level
+     *
+     * @return The byte read
+     */
+    //int read();
+
+    /** Write to the IO pins
+     *
+     * @param data The 8 bits to write to the IO port
+     */
+    //void write(int data);
+
+private:
+    SPI _spi;
+    DigitalOut _rst;
+    DigitalOut _cs;
+    DigitalOut _rs;
+
+    int _row,_column,_rows,_columns,_width, _height;
+    bool _rotate,_mirror ;
+    int _font,_foreground, _background;
+
+    void write_cmdRG(uint8_t reg, uint8_t param);
+    void write_cmd8(uint8_t cmd8);
+    void write_cmd16(uint16_t cmd16);
+    void write_data8(char data);
+    void write_data16(uint16_t cmd16);
+    void draw(uint16_t cmd16) ;
+    void drawstop(void);
+    void drawstart(void);
+
+    void foreground(unsigned int color);
+    void background(unsigned int color);
+
+    void locate(int column, int row);
+    void newline();
+    int columns();
+    int rows();
+    void set_cursor(unsigned int x, unsigned int y);
+    void set_window(char x0, char y0, char x1,char y1);
+    //void rectangle8(char x1, char y1, char x2, char y2, char color);
+    //void putpixel(unsigned char r,unsigned char g,unsigned char b, unsigned char x, unsigned char y);
+
+
+
+};
+}
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fonts/font_6x8.cpp	Mon Dec 06 20:25:44 2010 +0000
@@ -0,0 +1,99 @@
+#include "font_6x8.h"
+const unsigned char font0[576] = {
+0x00,0x00,0x00,0x00,0x00,0x00, // Symbol 20
+0x00,0x00,0x00,0x5F,0x00,0x00, // Symbol 21
+0x00,0x00,0x03,0x00,0x03,0x00, // Symbol 22
+0x22,0x7F,0x22,0x22,0x7F,0x22, // Symbol 23
+0x00,0x24,0x2A,0x6B,0x2A,0x12, // Symbol 24
+0x00,0x23,0x13,0x08,0x64,0x62, // Symbol 25
+0x00,0x3A,0x45,0x45,0x3A,0x28, // Symbol 26
+0x00,0x00,0x00,0x02,0x01,0x00, // Symbol 27
+0x00,0x00,0x3E,0x41,0x00,0x00, // Symbol 28
+0x00,0x00,0x41,0x3E,0x00,0x00, // Symbol 29
+0x00,0x2A,0x1C,0x1C,0x2A,0x00, // Symbol 2A
+0x00,0x08,0x08,0x3E,0x08,0x08, // Symbol 2B
+0x00,0x00,0x80,0x40,0x00,0x00, // Symbol 2C
+0x00,0x08,0x08,0x08,0x08,0x00, // Symbol 2D
+0x00,0x00,0x00,0x40,0x00,0x00, // Symbol 2E
+0x00,0x20,0x10,0x08,0x04,0x02, // Symbol 2F
+0x00,0x3E,0x51,0x49,0x45,0x3E, // Symbol 30
+0x00,0x00,0x42,0x7F,0x40,0x00, // Symbol 31
+0x00,0x62,0x51,0x51,0x51,0x4E, // Symbol 32
+0x00,0x21,0x41,0x45,0x45,0x3B, // Symbol 33
+0x00,0x18,0x16,0x11,0x7F,0x10, // Symbol 34
+0x00,0x27,0x45,0x45,0x45,0x39, // Symbol 35
+0x00,0x3E,0x49,0x49,0x49,0x32, // Symbol 36
+0x00,0x01,0x61,0x11,0x09,0x07, // Symbol 37
+0x00,0x36,0x49,0x49,0x49,0x36, // Symbol 38
+0x00,0x26,0x49,0x49,0x49,0x3E, // Symbol 39
+0x00,0x00,0x00,0x12,0x00,0x00, // Symbol 3A
+0x00,0x00,0x20,0x12,0x00,0x00, // Symbol 3B
+0x00,0x08,0x14,0x22,0x41,0x00, // Symbol 3C
+0x00,0x14,0x14,0x14,0x14,0x14, // Symbol 3D
+0x00,0x41,0x22,0x14,0x08,0x00, // Symbol 3E
+0x00,0x06,0x01,0x51,0x09,0x06, // Symbol 3F
+0x00,0x3E,0x41,0x4D,0x4D,0x2E, // Symbol 40
+0x00,0x78,0x16,0x11,0x16,0x78, // Symbol 41
+0x00,0x7F,0x49,0x49,0x49,0x36, // Symbol 42
+0x00,0x3E,0x41,0x41,0x41,0x22, // Symbol 43
+0x00,0x7F,0x41,0x41,0x41,0x3E, // Symbol 44
+0x00,0x7F,0x49,0x49,0x49,0x41, // Symbol 45
+0x00,0x7F,0x09,0x09,0x09,0x01, // Symbol 46
+0x00,0x3E,0x41,0x41,0x51,0x32, // Symbol 47
+0x00,0x7F,0x08,0x08,0x08,0x7F, // Symbol 48
+0x00,0x00,0x41,0x7F,0x41,0x00, // Symbol 49
+0x00,0x30,0x40,0x41,0x41,0x3F, // Symbol 4A
+0x00,0x7F,0x08,0x08,0x14,0x63, // Symbol 4B
+0x00,0x7F,0x40,0x40,0x40,0x60, // Symbol 4C
+0x00,0x7F,0x04,0x18,0x04,0x7F, // Symbol 4D
+0x00,0x7F,0x04,0x08,0x10,0x7F, // Symbol 4E
+0x00,0x3E,0x41,0x41,0x41,0x3E, // Symbol 4F
+0x00,0x7F,0x09,0x09,0x09,0x06, // Symbol 50
+0x00,0x3E,0x41,0x61,0x21,0x5E, // Symbol 51
+0x00,0x7F,0x09,0x09,0x19,0x66, // Symbol 52
+0x00,0x26,0x49,0x49,0x49,0x32, // Symbol 53
+0x00,0x01,0x01,0x7F,0x01,0x01, // Symbol 54
+0x00,0x3F,0x40,0x40,0x40,0x3F, // Symbol 55
+0x00,0x07,0x18,0x60,0x18,0x07, // Symbol 56
+0x00,0x1F,0x60,0x18,0x60,0x1F, // Symbol 57
+0x00,0x63,0x14,0x08,0x14,0x63, // Symbol 58
+0x00,0x03,0x04,0x78,0x04,0x03, // Symbol 59
+0x00,0x61,0x51,0x49,0x45,0x43, // Symbol 5A
+0x00,0x00,0x7F,0x41,0x00,0x00, // Symbol 5B
+0x00,0x02,0x04,0x08,0x10,0x20, // Symbol 5C
+0x00,0x00,0x41,0x7F,0x00,0x00, // Symbol 5D
+0x00,0x00,0x00,0x00,0x00,0x00, // Symbol 5E
+0x40,0x40,0x40,0x40,0x40,0x40, // Symbol 5F
+0x00,0x00,0x00,0x01,0x02,0x00, // Symbol 60
+0x00,0x20,0x54,0x54,0x54,0x78, // Symbol 61
+0x00,0x7E,0x48,0x48,0x48,0x30, // Symbol 62
+0x00,0x38,0x44,0x44,0x44,0x28, // Symbol 63
+0x00,0x30,0x48,0x48,0x48,0x7E, // Symbol 64
+0x00,0x38,0x54,0x54,0x54,0x18, // Symbol 65
+0x00,0x10,0x7C,0x12,0x02,0x04, // Symbol 66
+0x00,0x0C,0x52,0x52,0x3C,0x02, // Symbol 67
+0x00,0x7E,0x08,0x08,0x08,0x70, // Symbol 68
+0x00,0x00,0x00,0x74,0x00,0x00, // Symbol 69
+0x00,0x40,0x80,0x80,0x74,0x00, // Symbol 6A
+0x00,0x7E,0x10,0x10,0x10,0x6C, // Symbol 6B
+0x00,0x00,0x02,0x7E,0x00,0x00, // Symbol 6C
+0x00,0x7C,0x04,0x78,0x04,0x78, // Symbol 6D
+0x00,0x7C,0x04,0x04,0x04,0x78, // Symbol 6E
+0x00,0x38,0x44,0x44,0x44,0x38, // Symbol 6F
+0x00,0xFC,0x24,0x24,0x24,0x18, // Symbol 70
+0x00,0x18,0x24,0x24,0x24,0xFC, // Symbol 71
+0x00,0x7C,0x08,0x04,0x04,0x08, // Symbol 72
+0x00,0x48,0x54,0x54,0x54,0x20, // Symbol 73
+0x00,0x08,0x3E,0x48,0x40,0x00, // Symbol 74
+0x00,0x3C,0x40,0x40,0x40,0x3C, // Symbol 75
+0x00,0x1C,0x20,0x40,0x20,0x1C, // Symbol 76
+0x00,0x3C,0x40,0x30,0x40,0x3C, // Symbol 77
+0x00,0x44,0x28,0x10,0x28,0x44, // Symbol 78
+0x00,0x1C,0x20,0xA0,0xA0,0x7C, // Symbol 79
+0x00,0x44,0x64,0x54,0x4C,0x44, // Symbol 7A
+0x00,0x08,0x36,0x41,0x00,0x00, // Symbol 7B
+0x00,0x00,0x00,0x7F,0x00,0x00, // Symbol 7C
+0x00,0x00,0x41,0x36,0x08,0x00, // Symbol 7D
+0x02,0x01,0x01,0x02,0x02,0x01, // Symbol 7E
+0x00,0x7F,0x7F,0x7F,0x7F,0x7F  // Symbol 7F
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fonts/font_6x8.h	Mon Dec 06 20:25:44 2010 +0000
@@ -0,0 +1,15 @@
+#ifndef _FONT_6X8_H_
+#define _FONT_6X8_H_
+
+
+//----- DEFINES -----
+#define FONT0_START                    (0x20)
+#define FONT0_WIDTH                    (6)
+#define FONT0_HEIGHT                   (8)
+
+
+//----- GLOBALS -----
+extern const unsigned char font0[];
+
+
+#endif 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fonts/font_8x12.cpp	Mon Dec 06 20:25:44 2010 +0000
@@ -0,0 +1,231 @@
+#include "font_8x12.h"
+
+
+//0x20 - 0xFF
+const unsigned char font2[] = 
+{
+  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x20
+  0x78,0x78,0x30,0x00,0x00,0x30,0x30,0x78,0x00,0x00,0x30,0x30, // 0x21
+  0x66,0x66,0x66,0x00,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x00, // 0x22
+  0xfe,0x6c,0x6c,0x00,0xfe,0x6c,0x6c,0x6c,0x00,0x00,0x6c,0x6c, // 0x23
+  0xc0,0x7c,0x30,0x30,0x0c,0x0c,0x78,0xc0,0x00,0x30,0x30,0xf8, // 0x24
+  0xc4,0x00,0x00,0x00,0x60,0x30,0x18,0xcc,0x00,0x00,0x8c,0xcc, // 0x25
+  0xd8,0xd8,0x70,0x00,0xcc,0xde,0xfa,0x70,0x00,0x00,0x76,0xdc, // 0x26
+  0x30,0x30,0x30,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00, // 0x27
+  0x30,0x18,0x0c,0x00,0x30,0x60,0x60,0x60,0x00,0x00,0x0c,0x18, // 0x28
+  0x18,0x30,0x60,0x00,0x18,0x0c,0x0c,0x0c,0x00,0x00,0x60,0x30, // 0x29
+  0x66,0x00,0x00,0x00,0x66,0x3c,0xff,0x3c,0x00,0x00,0x00,0x00, // 0x2a
+  0x18,0x00,0x00,0x00,0x18,0x18,0x7e,0x18,0x00,0x00,0x00,0x00, // 0x2b
+  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x38,0x38, // 0x2c
+  0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,0x00, // 0x2d
+  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x38, // 0x2e
+  0x06,0x02,0x00,0x00,0x60,0x30,0x18,0x0c,0x00,0x00,0x80,0xc0, // 0x2f
+  0xce,0xc6,0x7c,0x00,0xe6,0xf6,0xd6,0xde,0x00,0x00,0x7c,0xc6, // 0x30
+  0xf0,0x30,0x10,0x00,0x30,0x30,0x30,0x30,0x00,0x00,0xfc,0x30, // 0x31
+  0xcc,0xcc,0x78,0x00,0x60,0x30,0x18,0x0c,0x00,0x00,0xfc,0xcc, // 0x32
+  0x0c,0xcc,0x78,0x00,0x0c,0x0c,0x38,0x0c,0x00,0x00,0x78,0xcc, // 0x33
+  0x3c,0x1c,0x0c,0x00,0x0c,0xfe,0xcc,0x6c,0x00,0x00,0x1e,0x0c, // 0x34
+  0xc0,0xc0,0xfc,0x00,0x0c,0x0c,0xf8,0xc0,0x00,0x00,0x78,0xcc, // 0x35
+  0xc0,0x60,0x38,0x00,0xcc,0xcc,0xf8,0xc0,0x00,0x00,0x78,0xcc, // 0x36
+  0xc6,0xc6,0xfe,0x00,0x30,0x18,0x0c,0x06,0x00,0x00,0x30,0x30, // 0x37
+  0xcc,0xcc,0x78,0x00,0xcc,0xcc,0x78,0xcc,0x00,0x00,0x78,0xcc, // 0x38
+  0xcc,0xcc,0x78,0x00,0x18,0x18,0x7c,0xcc,0x00,0x00,0x70,0x30, // 0x39
+  0x38,0x00,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x00,0x38, // 0x3a
+  0x38,0x00,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x30,0x18,0x38, // 0x3b
+  0x30,0x18,0x0c,0x00,0x30,0x60,0xc0,0x60,0x00,0x00,0x0c,0x18, // 0x3c
+  0x00,0x00,0x00,0x00,0x00,0x7e,0x00,0x7e,0x00,0x00,0x00,0x00, // 0x3d
+  0x18,0x30,0x60,0x00,0x18,0x0c,0x06,0x0c,0x00,0x00,0x60,0x30, // 0x3e
+  0x0c,0xcc,0x78,0x00,0x00,0x30,0x30,0x18,0x00,0x00,0x30,0x30, // 0x3f
+  0xc6,0xc6,0x7c,0x00,0xc0,0xde,0xde,0xde,0x00,0x00,0x7c,0xc0, // 0x40
+  0xcc,0x78,0x30,0x00,0xcc,0xfc,0xcc,0xcc,0x00,0x00,0xcc,0xcc, // 0x41
+  0x66,0x66,0xfc,0x00,0x66,0x66,0x7c,0x66,0x00,0x00,0xfc,0x66, // 0x42
+  0xc6,0x66,0x3c,0x00,0xc6,0xc0,0xc0,0xc0,0x00,0x00,0x3c,0x66, // 0x43
+  0x66,0x6c,0xf8,0x00,0x66,0x66,0x66,0x66,0x00,0x00,0xf8,0x6c, // 0x44
+  0x60,0x62,0xfe,0x00,0x60,0x64,0x7c,0x64,0x00,0x00,0xfe,0x62, // 0x45
+  0x62,0x66,0xfe,0x00,0x60,0x64,0x7c,0x64,0x00,0x00,0xf0,0x60, // 0x46
+  0xc6,0x66,0x3c,0x00,0xc6,0xce,0xc0,0xc0,0x00,0x00,0x3e,0x66, // 0x47
+  0xcc,0xcc,0xcc,0x00,0xcc,0xcc,0xfc,0xcc,0x00,0x00,0xcc,0xcc, // 0x48
+  0x30,0x30,0x78,0x00,0x30,0x30,0x30,0x30,0x00,0x00,0x78,0x30, // 0x49
+  0x0c,0x0c,0x1e,0x00,0xcc,0xcc,0x0c,0x0c,0x00,0x00,0x78,0xcc, // 0x4a
+  0x6c,0x66,0xe6,0x00,0x6c,0x6c,0x78,0x6c,0x00,0x00,0xe6,0x66, // 0x4b
+  0x60,0x60,0xf0,0x00,0x66,0x62,0x60,0x60,0x00,0x00,0xfe,0x66, // 0x4c
+  0xfe,0xee,0xc6,0x00,0xc6,0xc6,0xd6,0xfe,0x00,0x00,0xc6,0xc6, // 0x4d
+  0xe6,0xc6,0xc6,0x00,0xce,0xde,0xfe,0xf6,0x00,0x00,0xc6,0xc6, // 0x4e
+  0xc6,0x6c,0x38,0x00,0xc6,0xc6,0xc6,0xc6,0x00,0x00,0x38,0x6c, // 0x4f
+  0x66,0x66,0xfc,0x00,0x60,0x60,0x7c,0x66,0x00,0x00,0xf0,0x60, // 0x50
+  0xc6,0x6c,0x38,0x00,0xde,0xce,0xc6,0xc6,0x00,0x1e,0x0c,0x7c, // 0x51
+  0x66,0x66,0xfc,0x00,0x66,0x6c,0x7c,0x66,0x00,0x00,0xe6,0x66, // 0x52
+  0xcc,0xcc,0x78,0x00,0xcc,0x18,0x70,0xc0,0x00,0x00,0x78,0xcc, // 0x53
+  0x30,0xb4,0xfc,0x00,0x30,0x30,0x30,0x30,0x00,0x00,0x78,0x30, // 0x54
+  0xcc,0xcc,0xcc,0x00,0xcc,0xcc,0xcc,0xcc,0x00,0x00,0x78,0xcc, // 0x55
+  0xcc,0xcc,0xcc,0x00,0xcc,0xcc,0xcc,0xcc,0x00,0x00,0x30,0x78, // 0x56
+  0xc6,0xc6,0xc6,0x00,0x6c,0xd6,0xd6,0xc6,0x00,0x00,0x6c,0x6c, // 0x57
+  0xcc,0xcc,0xcc,0x00,0xcc,0x78,0x30,0x78,0x00,0x00,0xcc,0xcc, // 0x58
+  0xcc,0xcc,0xcc,0x00,0x30,0x30,0x78,0xcc,0x00,0x00,0x78,0x30, // 0x59
+  0x98,0xce,0xfe,0x00,0x62,0x60,0x30,0x18,0x00,0x00,0xfe,0xc6, // 0x5a
+  0x30,0x30,0x3c,0x00,0x30,0x30,0x30,0x30,0x00,0x00,0x3c,0x30, // 0x5b
+  0xc0,0x80,0x00,0x00,0x0c,0x18,0x30,0x60,0x00,0x00,0x02,0x06, // 0x5c
+  0x0c,0x0c,0x3c,0x00,0x0c,0x0c,0x0c,0x0c,0x00,0x00,0x3c,0x0c, // 0x5d
+  0xc6,0x6c,0x38,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x5e
+  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00, // 0x5f
+  0x00,0x18,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x60
+  0x00,0x00,0x00,0x00,0xcc,0x7c,0x0c,0x78,0x00,0x00,0x76,0xcc, // 0x61
+  0x60,0x60,0xe0,0x00,0x66,0x66,0x66,0x7c,0x00,0x00,0xdc,0x66, // 0x62
+  0x00,0x00,0x00,0x00,0xc0,0xc0,0xcc,0x78,0x00,0x00,0x78,0xcc, // 0x63
+  0x0c,0x0c,0x1c,0x00,0xcc,0xcc,0xcc,0x7c,0x00,0x00,0x76,0xcc, // 0x64
+  0x00,0x00,0x00,0x00,0xc0,0xfc,0xcc,0x78,0x00,0x00,0x78,0xcc, // 0x65
+  0x60,0x6c,0x38,0x00,0x60,0x60,0xf8,0x60,0x00,0x00,0xf0,0x60, // 0x66
+  0x00,0x00,0x00,0x00,0xcc,0xcc,0xcc,0x76,0x78,0xcc,0x0c,0x7c, // 0x67
+  0x60,0x60,0xe0,0x00,0x66,0x66,0x76,0x6c,0x00,0x00,0xe6,0x66, // 0x68
+  0x00,0x18,0x18,0x00,0x18,0x18,0x18,0x78,0x00,0x00,0x7e,0x18, // 0x69
+  0x00,0x0c,0x0c,0x00,0x0c,0x0c,0x0c,0x3c,0x78,0xcc,0xcc,0x0c, // 0x6a
+  0x60,0x60,0xe0,0x00,0x6c,0x78,0x6c,0x66,0x00,0x00,0xe6,0x66, // 0x6b
+  0x18,0x18,0x78,0x00,0x18,0x18,0x18,0x18,0x00,0x00,0x7e,0x18, // 0x6c
+  0x00,0x00,0x00,0x00,0xd6,0xd6,0xd6,0xfc,0x00,0x00,0xc6,0xd6, // 0x6d
+  0x00,0x00,0x00,0x00,0xcc,0xcc,0xcc,0xf8,0x00,0x00,0xcc,0xcc, // 0x6e
+  0x00,0x00,0x00,0x00,0xcc,0xcc,0xcc,0x78,0x00,0x00,0x78,0xcc, // 0x6f
+  0x00,0x00,0x00,0x00,0x66,0x66,0x66,0xdc,0xf0,0x60,0x7c,0x66, // 0x70
+  0x00,0x00,0x00,0x00,0xcc,0xcc,0xcc,0x76,0x1e,0x0c,0x7c,0xcc, // 0x71
+  0x00,0x00,0x00,0x00,0x60,0x76,0x6e,0xec,0x00,0x00,0xf0,0x60, // 0x72
+  0x00,0x00,0x00,0x00,0x18,0x60,0xcc,0x78,0x00,0x00,0x78,0xcc, // 0x73
+  0x60,0x20,0x00,0x00,0x60,0x60,0x60,0xfc,0x00,0x00,0x38,0x6c, // 0x74
+  0x00,0x00,0x00,0x00,0xcc,0xcc,0xcc,0xcc,0x00,0x00,0x76,0xcc, // 0x75
+  0x00,0x00,0x00,0x00,0xcc,0xcc,0xcc,0xcc,0x00,0x00,0x30,0x78, // 0x76
+  0x00,0x00,0x00,0x00,0xd6,0xd6,0xc6,0xc6,0x00,0x00,0x6c,0x6c, // 0x77
+  0x00,0x00,0x00,0x00,0x38,0x38,0x6c,0xc6,0x00,0x00,0xc6,0x6c, // 0x78
+  0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0xf0,0x18,0x0c,0x3c, // 0x79
+  0x00,0x00,0x00,0x00,0x60,0x18,0x8c,0xfc,0x00,0x00,0xfc,0xc4, // 0x7a
+  0x30,0x30,0x1c,0x00,0x30,0x60,0xc0,0x60,0x00,0x00,0x1c,0x30, // 0x7b
+  0x18,0x18,0x18,0x00,0x18,0x18,0x00,0x18,0x00,0x00,0x18,0x18, // 0x7c
+  0x30,0x30,0xe0,0x00,0x30,0x18,0x0c,0x18,0x00,0x00,0xe0,0x30, // 0x7d
+  0xce,0xda,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x7e
+  0x10,0x00,0x00,0x00,0xc6,0xc6,0x6c,0x38,0x00,0x00,0x00,0xfe, // 0x7f
+  0xcc,0xcc,0x78,0x00,0xcc,0xc0,0xc0,0xc0,0x60,0x30,0x78,0xcc, // 0x80
+  0x00,0xcc,0xcc,0x00,0xcc,0xcc,0xcc,0xcc,0x00,0x00,0x76,0xcc, // 0x81
+  0x00,0x30,0x18,0x0c,0xc0,0xfc,0xcc,0x78,0x00,0x00,0x78,0xcc, // 0x82
+  0x00,0xcc,0x78,0x30,0xcc,0x7c,0x0c,0x78,0x00,0x00,0x76,0xcc, // 0x83
+  0x00,0xcc,0xcc,0x00,0xcc,0x7c,0x0c,0x78,0x00,0x00,0x76,0xcc, // 0x84
+  0x00,0x30,0x60,0xc0,0xcc,0x7c,0x0c,0x78,0x00,0x00,0x76,0xcc, // 0x85
+  0x38,0x6c,0x6c,0x38,0xcc,0x7c,0x0c,0xf8,0x00,0x00,0x76,0xcc, // 0x86
+  0x00,0x00,0x00,0x00,0xc0,0xc0,0xcc,0x78,0x60,0x30,0x78,0xcc, // 0x87
+  0x00,0xcc,0x78,0x30,0xc0,0xfc,0xcc,0x78,0x00,0x00,0x7c,0xc0, // 0x88
+  0x00,0xcc,0xcc,0x00,0xc0,0xfc,0xcc,0x78,0x00,0x00,0x7c,0xc0, // 0x89
+  0x00,0x30,0x60,0xc0,0xc0,0xfc,0xcc,0x78,0x00,0x00,0x7c,0xc0, // 0x8a
+  0x00,0x6c,0x6c,0x00,0x18,0x18,0x18,0x78,0x00,0x00,0x7e,0x18, // 0x8b
+  0x00,0x6c,0x38,0x10,0x18,0x18,0x18,0x78,0x00,0x00,0x7e,0x18, // 0x8c
+  0x00,0x18,0x30,0x60,0x18,0x18,0x18,0x78,0x00,0x00,0x7e,0x18, // 0x8d
+  0x30,0x00,0xcc,0x00,0xfc,0xcc,0xcc,0x78,0x00,0x00,0xcc,0xcc, // 0x8e
+  0x78,0xcc,0xcc,0x78,0xfc,0xcc,0xcc,0x78,0x00,0x00,0xcc,0xcc, // 0x8f
+  0xfc,0x00,0x18,0x0c,0xc0,0xf8,0xc0,0xc4,0x00,0x00,0xfc,0xc4, // 0x90
+  0x00,0x00,0x00,0x00,0xd8,0x7f,0x1b,0xfe,0x00,0x00,0xef,0xd8, // 0x91
+  0xd8,0x78,0x3e,0x00,0xd8,0xd8,0xfe,0xd8,0x00,0x00,0xde,0xd8, // 0x92
+  0x00,0xcc,0x78,0x30,0xcc,0xcc,0xcc,0x78,0x00,0x00,0x78,0xcc, // 0x93
+  0x00,0xcc,0xcc,0x00,0xcc,0xcc,0xcc,0x78,0x00,0x00,0x78,0xcc, // 0x94
+  0x00,0x30,0x60,0xc0,0xcc,0xcc,0xcc,0x78,0x00,0x00,0x78,0xcc, // 0x95
+  0x00,0xcc,0x78,0x30,0xcc,0xcc,0xcc,0xcc,0x00,0x00,0x76,0xcc, // 0x96
+  0x00,0x30,0x60,0xc0,0xcc,0xcc,0xcc,0xcc,0x00,0x00,0x76,0xcc, // 0x97
+  0x00,0x66,0x66,0x00,0x66,0x66,0x66,0x66,0xf0,0x18,0x0c,0x3c, // 0x98
+  0x78,0x00,0xcc,0x00,0xcc,0xcc,0xcc,0xcc,0x00,0x00,0x78,0xcc, // 0x99
+  0xcc,0xcc,0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0x00,0x00,0x78,0xcc, // 0x9a
+  0x00,0x00,0x00,0x00,0xec,0xdc,0xcc,0x78,0x00,0x00,0x78,0xcc, // 0x9b
+  0x60,0x60,0x66,0x3c,0x60,0x60,0xfc,0x60,0x00,0x00,0xfe,0xc0, // 0x9c
+  0xce,0x6c,0x3a,0x00,0xe6,0xd6,0xd6,0xd6,0x00,0x00,0xb8,0x6c, // 0x9d
+  0x00,0x00,0x00,0x00,0x38,0x6c,0xc6,0x00,0x00,0x00,0xc6,0x6c, // 0x9e
+  0x18,0x18,0x1b,0x0e,0x18,0x18,0x18,0x7e,0x00,0x00,0x70,0xd8, // 0x9f
+  0x00,0x30,0x18,0x0c,0xcc,0x7c,0x0c,0x78,0x00,0x00,0x76,0xcc, // 0xa0
+  0x00,0x30,0x18,0x0c,0x18,0x18,0x18,0x78,0x00,0x00,0x7e,0x18, // 0xa1
+  0x00,0x30,0x18,0x0c,0xcc,0xcc,0xcc,0x78,0x00,0x00,0x78,0xcc, // 0xa2
+  0x00,0x30,0x18,0x0c,0xcc,0xcc,0xcc,0xcc,0x00,0x00,0x76,0xcc, // 0xa3
+  0x00,0xdc,0x76,0x00,0xcc,0xcc,0xcc,0xf8,0x00,0x00,0xcc,0xcc, // 0xa4
+  0xc6,0x00,0xdc,0x76,0xce,0xde,0xf6,0xe6,0x00,0x00,0xc6,0xc6, // 0xa5
+  0xcc,0xcc,0x78,0x00,0x00,0xfe,0x00,0x7e,0x00,0x00,0x00,0x00, // 0xa6
+  0xcc,0xcc,0x78,0x00,0x00,0xfe,0x00,0x78,0x00,0x00,0x00,0x00, // 0xa7
+  0x00,0x30,0x30,0x00,0xc0,0xc0,0x60,0x30,0x00,0x00,0x78,0xcc, // 0xa8
+  0xba,0x44,0x38,0x00,0xaa,0xb2,0xba,0xaa,0x00,0x00,0x38,0x44, // 0xa9
+  0x00,0x00,0x00,0x00,0x0c,0x0c,0xfc,0x00,0x00,0x00,0x00,0x0c, // 0xaa
+  0x6c,0xe6,0x62,0x00,0xc3,0x6e,0x30,0x78,0x00,0x1f,0x0c,0x86, // 0xab
+  0x6c,0xe6,0x63,0x00,0xdb,0x6f,0x37,0x78,0x00,0x03,0x3f,0xb3, // 0xac
+  0x00,0x30,0x30,0x00,0x78,0x78,0x30,0x30,0x00,0x00,0x30,0x78, // 0xad
+  0x00,0x00,0x00,0x00,0xcc,0xcc,0x66,0x33,0x00,0x00,0x33,0x66, // 0xae
+  0x00,0x00,0x00,0x00,0x33,0x33,0x66,0xcc,0x00,0x00,0xcc,0x66, // 0xaf
+  0x24,0x49,0x92,0x24,0x92,0x24,0x49,0x92,0x49,0x92,0x24,0x49, // 0xb0
+  0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55, // 0xb1
+  0x6d,0xb6,0xdb,0x6d,0xdb,0x6d,0xb6,0xdb,0xb6,0xdb,0x6d,0xb6, // 0xb2
+  0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, // 0xb3
+  0x18,0x18,0x18,0x18,0x18,0x18,0xf8,0x18,0x18,0x18,0x18,0x18, // 0xb4
+  0x30,0x00,0x18,0x0c,0xfc,0xcc,0xcc,0x78,0x00,0x00,0xcc,0xcc, // 0xb5
+  0x30,0x00,0xcc,0x78,0xfc,0xcc,0xcc,0x78,0x00,0x00,0xcc,0xcc, // 0xb6
+  0x30,0x00,0x30,0x60,0xfc,0xcc,0xcc,0x78,0x00,0x00,0xcc,0xcc, // 0xb7
+  0xba,0x44,0x38,0x00,0xba,0xa2,0xa2,0xa2,0x00,0x00,0x38,0x44, // 0xb8
+  0x66,0x66,0x66,0x66,0xe6,0x06,0x06,0xe6,0x66,0x66,0x66,0x66, // 0xb9
+  0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, // 0xba
+  0x00,0x00,0x00,0x00,0xe6,0x06,0x06,0xfe,0x66,0x66,0x66,0x66, // 0xbb
+  0x66,0x66,0x66,0x66,0xfe,0x06,0x06,0xe6,0x00,0x00,0x00,0x00, // 0xbc
+  0x78,0x30,0x30,0x00,0xcc,0xc0,0xc0,0xcc,0x00,0x30,0x30,0x78, // 0xbd
+  0xcc,0xcc,0xcc,0xcc,0xfc,0x30,0xfc,0x78,0x00,0x00,0x30,0x30, // 0xbe
+  0x00,0x00,0x00,0x00,0x18,0x18,0xf8,0x00,0x18,0x18,0x18,0x18, // 0xbf
+  0x18,0x18,0x18,0x18,0x00,0x00,0x1f,0x18,0x00,0x00,0x00,0x00, // 0xc0
+  0x18,0x18,0x18,0x18,0x00,0x00,0xff,0x18,0x00,0x00,0x00,0x00, // 0xc1
+  0x00,0x00,0x00,0x00,0x18,0x18,0xff,0x00,0x18,0x18,0x18,0x18, // 0xc2
+  0x18,0x18,0x18,0x18,0x18,0x18,0x1f,0x18,0x18,0x18,0x18,0x18, // 0xc3
+  0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00, // 0xc4
+  0x18,0x18,0x18,0x18,0x18,0x18,0xff,0x18,0x18,0x18,0x18,0x18, // 0xc5
+  0x00,0xdc,0x76,0x00,0xcc,0x7c,0x0c,0x78,0x00,0x00,0x76,0xcc, // 0xc6
+  0x30,0x00,0xdc,0x76,0xfc,0xcc,0xcc,0x78,0x00,0x00,0xcc,0xcc, // 0xc7
+  0x66,0x66,0x66,0x66,0x7f,0x60,0x60,0x67,0x00,0x00,0x00,0x00, // 0xc8
+  0x00,0x00,0x00,0x00,0x67,0x60,0x60,0x7f,0x66,0x66,0x66,0x66, // 0xc9
+  0x66,0x66,0x66,0x66,0xff,0x00,0x00,0xe7,0x00,0x00,0x00,0x00, // 0xca
+  0x00,0x00,0x00,0x00,0xe7,0x00,0x00,0xff,0x66,0x66,0x66,0x66, // 0xcb
+  0x66,0x66,0x66,0x66,0x67,0x60,0x60,0x67,0x66,0x66,0x66,0x66, // 0xcc
+  0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x00, // 0xcd
+  0x66,0x66,0x66,0x66,0xe7,0x00,0x00,0xe7,0x66,0x66,0x66,0x66, // 0xce
+  0x00,0x00,0x00,0x00,0x6c,0x7c,0xc6,0x00,0x00,0x00,0xc6,0x7c, // 0xcf
+  0x0c,0xd8,0x30,0xcc,0xc6,0xc6,0x7e,0x06,0x00,0x00,0x7c,0xc6, // 0xd0
+  0x66,0x6c,0xf8,0x00,0x66,0x66,0xf6,0x66,0x00,0x00,0xf8,0x6c, // 0xd1
+  0xfc,0x00,0xcc,0x78,0xc0,0xf8,0xc0,0xc4,0x00,0x00,0xfc,0xc4, // 0xd2
+  0xfc,0x00,0xcc,0x00,0xc0,0xf8,0xc0,0xc4,0x00,0x00,0xfc,0xc4, // 0xd3
+  0xfc,0x00,0x30,0x60,0xc0,0xf8,0xc0,0xc4,0x00,0x00,0xfc,0xc4, // 0xd4
+  0x30,0x30,0xf0,0x00,0x00,0x00,0xfc,0x30,0x00,0x00,0x00,0x00, // 0xd5
+  0x78,0x00,0x30,0x18,0x30,0x30,0x30,0x30,0x00,0x00,0x78,0x30, // 0xd6
+  0x78,0x00,0xcc,0x78,0x30,0x30,0x30,0x30,0x00,0x00,0x78,0x30, // 0xd7
+  0x78,0x00,0xcc,0x00,0x30,0x30,0x30,0x30,0x00,0x00,0x78,0x30, // 0xd8
+  0x18,0x18,0x18,0x18,0x00,0x00,0xf8,0x18,0x00,0x00,0x00,0x00, // 0xd9
+  0x00,0x00,0x00,0x00,0x18,0x18,0x1f,0x00,0x18,0x18,0x18,0x18, // 0xda
+  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, // 0xdb
+  0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff, // 0xdc
+  0x18,0x18,0x18,0x00,0x18,0x18,0x00,0x18,0x00,0x00,0x18,0x18, // 0xdd
+  0x78,0x00,0x30,0x60,0x30,0x30,0x30,0x30,0x00,0x00,0x78,0x30, // 0xde
+  0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00, // 0xdf
+  0x78,0x00,0x30,0x18,0xcc,0xcc,0xcc,0xcc,0x00,0x00,0x78,0xcc, // 0xe0
+  0xcc,0xcc,0x78,0x00,0xcc,0xcc,0xcc,0xd8,0x00,0x60,0xc0,0xf8, // 0xe1
+  0x78,0x00,0xcc,0x78,0xcc,0xcc,0xcc,0xcc,0x00,0x00,0x78,0xcc, // 0xe2
+  0x78,0x00,0x30,0x60,0xcc,0xcc,0xcc,0xcc,0x00,0x00,0x78,0xcc, // 0xe3
+  0x00,0xdc,0x76,0x00,0xcc,0xcc,0xcc,0x78,0x00,0x00,0x78,0xcc, // 0xe4
+  0x78,0x00,0xdc,0x76,0xcc,0xcc,0xcc,0xcc,0x00,0x00,0x78,0xcc, // 0xe5
+  0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0xc0,0x60,0x7b,0x66, // 0xe6
+  0x60,0xe0,0x00,0x00,0x7c,0x66,0x66,0x7c,0x00,0x00,0xf0,0x60, // 0xe7
+  0x7c,0x60,0xf0,0x00,0x7c,0x66,0x66,0x66,0x00,0x00,0xf0,0x60, // 0xe8
+  0xcc,0x00,0x30,0x18,0xcc,0xcc,0xcc,0xcc,0x00,0x00,0x78,0xcc, // 0xe9
+  0xcc,0x00,0xcc,0x78,0xcc,0xcc,0xcc,0xcc,0x00,0x00,0x78,0xcc, // 0xea
+  0xcc,0x00,0x30,0x60,0xcc,0xcc,0xcc,0xcc,0x00,0x00,0x78,0xcc, // 0xeb
+  0x00,0x18,0x0c,0x06,0x66,0x66,0x66,0x66,0xf0,0x18,0x0c,0x3c, // 0xec
+  0xcc,0x00,0x30,0x18,0x30,0x78,0xcc,0xcc,0x00,0x00,0x78,0x30, // 0xed
+  0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0xee
+  0x00,0x30,0x18,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0xef
+  0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00, // 0xf0
+  0x30,0x30,0x00,0x00,0x00,0x30,0x30,0xfc,0x00,0x00,0x00,0xfc, // 0xf1
+  0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x00,0xf8, // 0xf2
+  0x3c,0x66,0x33,0xe0,0xdb,0x6f,0x37,0xf8,0x00,0x03,0x3f,0xb3, // 0xf3
+  0xdb,0xdb,0x7f,0x00,0x1b,0x1b,0x7b,0xdb,0x00,0x00,0x1b,0x1b, // 0xf4
+  0x30,0x63,0x7e,0x00,0x3c,0x66,0x66,0x3c,0x00,0x7e,0xc6,0x0c, // 0xf5
+  0x30,0x30,0x00,0x00,0x30,0x00,0xfc,0x00,0x00,0x00,0x00,0x30, // 0xf6
+  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x30,0x00,0x00, // 0xf7
+  0x66,0x66,0x3c,0x00,0x00,0x00,0x3c,0x66,0x00,0x00,0x00,0x00, // 0xf8
+  0x00,0x00,0xcc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0xf9
+  0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00, // 0xfa
+  0x30,0x70,0x30,0x00,0x00,0x00,0x78,0x30,0x00,0x00,0x00,0x00, // 0xfb
+  0x38,0x0c,0x78,0x00,0x00,0x00,0x78,0x0c,0x00,0x00,0x00,0x00, // 0xfc
+  0x18,0x0c,0x78,0x00,0x00,0x00,0x7c,0x30,0x00,0x00,0x00,0x00, // 0xfd
+  0xfc,0x00,0x00,0x00,0xfc,0xfc,0xfc,0xfc,0x00,0x00,0x00,0xfc, // 0xfe
+  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00  // 0xff
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fonts/font_8x12.h	Mon Dec 06 20:25:44 2010 +0000
@@ -0,0 +1,15 @@
+#ifndef _FONT_8X12_H_
+#define _FONT_8X12_H_
+
+
+//----- DEFINES -----
+#define FONT2_START                    (0x20)
+#define FONT2_WIDTH                    (8)
+#define FONT2_HEIGHT                   (12)
+
+
+//----- GLOBALS -----
+extern const unsigned char font2[];
+
+
+#endif //_FONT_8X12_H_
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fonts/font_8x8.cpp	Mon Dec 06 20:25:44 2010 +0000
@@ -0,0 +1,231 @@
+#include "font_8x8.h"
+
+
+//0x20 - 0xFF
+const unsigned char font1[] = 
+{
+  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x20
+  0x30,0x78,0x78,0x30,0x00,0x30,0x00,0x30, // 0x21
+  0x00,0x6c,0x6c,0x6c,0x00,0x00,0x00,0x00, // 0x22
+  0x6c,0xfe,0x6c,0x6c,0x00,0x6c,0x6c,0xfe, // 0x23
+  0x78,0xc0,0x7c,0x30,0x00,0x30,0xf8,0x0c, // 0x24
+  0x18,0xcc,0xc6,0x00,0x00,0xc6,0x66,0x30, // 0x25
+  0x76,0x38,0x6c,0x38,0x00,0x76,0xcc,0xdc, // 0x26
+  0x00,0xc0,0x60,0x60,0x00,0x00,0x00,0x00, // 0x27
+  0x60,0x60,0x30,0x18,0x00,0x18,0x30,0x60, // 0x28
+  0x18,0x18,0x30,0x60,0x00,0x60,0x30,0x18, // 0x29
+  0xff,0x3c,0x66,0x00,0x00,0x00,0x66,0x3c, // 0x2a
+  0xfc,0x30,0x30,0x00,0x00,0x00,0x30,0x30, // 0x2b
+  0x00,0x00,0x00,0x00,0x60,0x30,0x70,0x00, // 0x2c
+  0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x2d
+  0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00, // 0x2e
+  0x30,0x18,0x0c,0x06,0x00,0x80,0xc0,0x60, // 0x2f
+  0xfc,0xdc,0xcc,0x78,0x00,0x78,0xcc,0xec, // 0x30
+  0x30,0x30,0xf0,0x30,0x00,0xfc,0x30,0x30, // 0x31
+  0x38,0x0c,0xcc,0x78,0x00,0xfc,0xcc,0x60, // 0x32
+  0x38,0x0c,0xcc,0x78,0x00,0x78,0xcc,0x0c, // 0x33
+  0xcc,0x6c,0x3c,0x1c,0x00,0x0c,0x0c,0xfe, // 0x34
+  0x0c,0xf8,0xc0,0xfc,0x00,0x78,0xcc,0x0c, // 0x35
+  0xf8,0xc0,0x60,0x38,0x00,0x78,0xcc,0xcc, // 0x36
+  0x18,0x0c,0xcc,0xfc,0x00,0x60,0x60,0x30, // 0x37
+  0x78,0xcc,0xcc,0x78,0x00,0x78,0xcc,0xcc, // 0x38
+  0x7c,0xcc,0xcc,0x78,0x00,0x70,0x18,0x0c, // 0x39
+  0x30,0x30,0x00,0x00,0x00,0x30,0x30,0x00, // 0x3a
+  0x30,0x30,0x00,0x00,0x60,0x30,0x70,0x00, // 0x3b
+  0xc0,0x60,0x30,0x18,0x00,0x18,0x30,0x60, // 0x3c
+  0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0xfc, // 0x3d
+  0x0c,0x18,0x30,0x60,0x00,0x60,0x30,0x18, // 0x3e
+  0x18,0x0c,0xcc,0x78,0x00,0x30,0x00,0x30, // 0x3f
+  0xde,0xde,0xc6,0x7c,0x00,0x78,0xc0,0xde, // 0x40
+  0xcc,0xcc,0x78,0x30,0x00,0xcc,0xcc,0xfc, // 0x41
+  0x7c,0x66,0x66,0xfc,0x00,0xfc,0x66,0x66, // 0x42
+  0xc0,0xc0,0x66,0x3c,0x00,0x3c,0x66,0xc0, // 0x43
+  0x66,0x66,0x6c,0xfc,0x00,0xfc,0x6c,0x66, // 0x44
+  0x78,0x68,0x62,0xfe,0x00,0xfe,0x62,0x68, // 0x45
+  0x78,0x68,0x62,0xfe,0x00,0xf0,0x60,0x68, // 0x46
+  0xc0,0xc0,0x66,0x3c,0x00,0x3e,0x66,0xce, // 0x47
+  0xfc,0xcc,0xcc,0xcc,0x00,0xcc,0xcc,0xcc, // 0x48
+  0x30,0x30,0x30,0x78,0x00,0x78,0x30,0x30, // 0x49
+  0x0c,0x0c,0x0c,0x1e,0x00,0x78,0xcc,0xcc, // 0x4a
+  0x78,0x6c,0x66,0xe6,0x00,0xe6,0x66,0x6c, // 0x4b
+  0x60,0x60,0x60,0xf0,0x00,0xfe,0x66,0x62, // 0x4c
+  0xd6,0xfe,0xee,0xc6,0x00,0xc6,0xc6,0xc6, // 0x4d
+  0xde,0xf6,0xe6,0xc6,0x00,0xc6,0xc6,0xce, // 0x4e
+  0xc6,0xc6,0x6c,0x38,0x00,0x38,0x6c,0xc6, // 0x4f
+  0x7c,0x66,0x66,0xfc,0x00,0xf0,0x60,0x60, // 0x50
+  0xcc,0xcc,0xcc,0x78,0x00,0x1c,0x78,0xdc, // 0x51
+  0x7c,0x66,0x66,0xfc,0x00,0xe6,0x6c,0x78, // 0x52
+  0x38,0xe0,0xcc,0x78,0x00,0x78,0xcc,0x1c, // 0x53
+  0x30,0x30,0xb4,0xfc,0x00,0x78,0x30,0x30, // 0x54
+  0xcc,0xcc,0xcc,0xcc,0x00,0xfc,0xcc,0xcc, // 0x55
+  0xcc,0xcc,0xcc,0xcc,0x00,0x30,0x78,0xcc, // 0x56
+  0xd6,0xc6,0xc6,0xc6,0x00,0xc6,0xee,0xfe, // 0x57
+  0x38,0x6c,0xc6,0xc6,0x00,0xc6,0xc6,0x6c, // 0x58
+  0x78,0xcc,0xcc,0xcc,0x00,0x78,0x30,0x30, // 0x59
+  0x30,0x98,0xcc,0xfe,0x00,0xfe,0xc6,0x62, // 0x5a
+  0x60,0x60,0x60,0x78,0x00,0x78,0x60,0x60, // 0x5b
+  0x18,0x30,0x60,0xc0,0x00,0x02,0x06,0x0c, // 0x5c
+  0x18,0x18,0x18,0x78,0x00,0x78,0x18,0x18, // 0x5d
+  0xc6,0x6c,0x38,0x10,0x00,0x00,0x00,0x00, // 0x5e
+  0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00, // 0x5f
+  0x00,0x18,0x30,0x30,0x00,0x00,0x00,0x00, // 0x60
+  0x0c,0x78,0x00,0x00,0x00,0x76,0xcc,0x7c, // 0x61
+  0x66,0x7c,0x60,0xe0,0x00,0xbc,0x66,0x66, // 0x62
+  0xcc,0x78,0x00,0x00,0x00,0x78,0xcc,0xc0, // 0x63
+  0x7c,0x0c,0x0c,0x1c,0x00,0x76,0xcc,0xcc, // 0x64
+  0xcc,0x78,0x00,0x00,0x00,0x78,0xc0,0xfc, // 0x65
+  0xf0,0x60,0x6c,0x38,0x00,0xf0,0x60,0x60, // 0x66
+  0xcc,0x76,0x00,0x00,0xf8,0x0c,0x7c,0xcc, // 0x67
+  0x76,0x6c,0x60,0xe0,0x00,0xe6,0x66,0x66, // 0x68
+  0x30,0x70,0x00,0x30,0x00,0x78,0x30,0x30, // 0x69
+  0x18,0x78,0x00,0x18,0x70,0xd8,0x18,0x18, // 0x6a
+  0x6c,0x66,0x60,0xe0,0x00,0xe6,0x6c,0x78, // 0x6b
+  0x30,0x30,0x30,0x70,0x00,0x78,0x30,0x30, // 0x6c
+  0xfe,0xec,0x00,0x00,0x00,0xc6,0xc6,0xd6, // 0x6d
+  0xcc,0xf8,0x00,0x00,0x00,0xcc,0xcc,0xcc, // 0x6e
+  0xcc,0x78,0x00,0x00,0x00,0x78,0xcc,0xcc, // 0x6f
+  0x66,0xdc,0x00,0x00,0xf0,0x60,0x7c,0x66, // 0x70
+  0xcc,0x76,0x00,0x00,0x1e,0x0c,0x7c,0xcc, // 0x71
+  0x6c,0xd8,0x00,0x00,0x00,0xf0,0x60,0x6c, // 0x72
+  0xc0,0x7c,0x00,0x00,0x00,0xf8,0x0c,0x78, // 0x73
+  0x30,0x7c,0x30,0x10,0x00,0x18,0x34,0x30, // 0x74
+  0xcc,0xcc,0x00,0x00,0x00,0x76,0xcc,0xcc, // 0x75
+  0xcc,0xcc,0x00,0x00,0x00,0x30,0x78,0xcc, // 0x76
+  0xc6,0xc6,0x00,0x00,0x00,0x6c,0xfe,0xd6, // 0x77
+  0x6c,0xc6,0x00,0x00,0x00,0xc6,0x6c,0x38, // 0x78
+  0xcc,0xcc,0x00,0x00,0xf8,0x0c,0x7c,0xcc, // 0x79
+  0x98,0xfc,0x00,0x00,0x00,0xfc,0x64,0x30, // 0x7a
+  0xe0,0x30,0x30,0x1c,0x00,0x1c,0x30,0x30, // 0x7b
+  0x00,0x18,0x18,0x18,0x00,0x18,0x18,0x18, // 0x7c
+  0x1c,0x30,0x30,0xe0,0x00,0xe0,0x30,0x30, // 0x7d
+  0x00,0x00,0xdc,0x76,0x00,0x00,0x00,0x00, // 0x7e
+  0xc6,0x6c,0x38,0x10,0x00,0xfe,0xc6,0xc6, // 0x7f
+  0xc0,0xc0,0xcc,0x78,0x60,0x30,0x78,0xcc, // 0x80
+  0xcc,0x00,0xcc,0x00,0x00,0x7e,0xcc,0xcc, // 0x81
+  0xcc,0x78,0x30,0x18,0x00,0x78,0xc0,0xfc, // 0x82
+  0x06,0x3c,0xc3,0x7e,0x00,0x3f,0x66,0x3e, // 0x83
+  0x0c,0x78,0x00,0xcc,0x00,0x7e,0xcc,0x7c, // 0x84
+  0x0c,0x78,0x30,0x60,0x00,0x7e,0xcc,0x7c, // 0x85
+  0x06,0x3c,0x66,0x3c,0x00,0x3f,0x66,0x3e, // 0x86
+  0xc0,0xcc,0x78,0x00,0x60,0x30,0x78,0xcc, // 0x87
+  0x66,0x3c,0xc3,0x7e,0x00,0x3c,0x60,0x7e, // 0x88
+  0xcc,0x78,0x00,0xcc,0x00,0x78,0xc0,0xfc, // 0x89
+  0xcc,0x78,0x30,0x60,0x00,0x78,0xc0,0xfc, // 0x8a
+  0x30,0x70,0x00,0xcc,0x00,0x78,0x30,0x30, // 0x8b
+  0x18,0x38,0xc6,0x7c,0x00,0x3c,0x18,0x18, // 0x8c
+  0x30,0x70,0x30,0x60,0x00,0x78,0x30,0x30, // 0x8d
+  0xcc,0x78,0x30,0xcc,0x00,0xcc,0xfc,0xcc, // 0x8e
+  0x78,0x30,0x48,0x30,0x00,0xcc,0xfc,0xcc, // 0x8f
+  0x60,0xfc,0x30,0x18,0x00,0xfc,0x60,0x78, // 0x90
+  0x0c,0x7f,0x00,0x00,0x00,0x7f,0xcc,0x7f, // 0x91
+  0xfe,0xcc,0x6c,0x3e,0x00,0xce,0xcc,0xcc, // 0x92
+  0x78,0x00,0xcc,0x78,0x00,0x78,0xcc,0xcc, // 0x93
+  0x78,0x00,0xcc,0x00,0x00,0x78,0xcc,0xcc, // 0x94
+  0x78,0x00,0x30,0x60,0x00,0x78,0xcc,0xcc, // 0x95
+  0xcc,0x00,0xcc,0x78,0x00,0x7e,0xcc,0xcc, // 0x96
+  0xcc,0x00,0x30,0x60,0x00,0x7e,0xcc,0xcc, // 0x97
+  0xcc,0x00,0xcc,0x00,0xf8,0x0c,0xfc,0xcc, // 0x98
+  0xc6,0x7c,0x00,0xc6,0x00,0x7c,0xc6,0xc6, // 0x99
+  0xcc,0xcc,0x00,0xcc,0x00,0x78,0xcc,0xcc, // 0x9a
+  0xce,0x7c,0x00,0x00,0x00,0x7c,0xe6,0xd6, // 0x9b
+  0xf0,0x64,0x6c,0x38,0x00,0xfc,0xe6,0x60, // 0x9c
+  0xd6,0xce,0x6c,0x3a,0x00,0xb8,0x6c,0xe6, // 0x9d
+  0x78,0xcc,0x00,0x00,0x00,0xcc,0x78,0x30, // 0x9e
+  0x7e,0x18,0x1b,0x0e,0x70,0xd8,0x18,0x18, // 0x9f
+  0x0c,0x78,0x30,0x18,0x00,0x7e,0xcc,0x7c, // 0xa0
+  0x30,0x70,0x30,0x18,0x00,0x78,0x30,0x30, // 0xa1
+  0x78,0x00,0x18,0x0c,0x00,0x78,0xcc,0xcc, // 0xa2
+  0xcc,0x00,0x18,0x0c,0x00,0x7e,0xcc,0xcc, // 0xa3
+  0xf8,0x00,0xdc,0x76,0x00,0xcc,0xcc,0xcc, // 0xa4
+  0xec,0x00,0xdc,0x76,0x00,0xcc,0xdc,0xfc, // 0xa5
+  0x3e,0x6c,0x6c,0x3c,0x00,0x00,0x7e,0x00, // 0xa6
+  0x3c,0x66,0x66,0x3c,0x00,0x00,0x7e,0x00, // 0xa7
+  0x60,0x30,0x00,0x30,0x00,0x78,0xcc,0xc0, // 0xa8
+  0xb9,0xa5,0x5a,0x3c,0x00,0x3c,0x66,0xa9, // 0xa9
+  0xfc,0x00,0x00,0x00,0x00,0x00,0x0c,0x0c, // 0xaa
+  0x7e,0x78,0x6c,0xe6,0x1f,0x98,0xce,0x63, // 0xab
+  0x73,0x78,0x6c,0xe6,0x03,0x9f,0xcd,0x67, // 0xac
+  0x18,0x00,0x18,0x00,0x18,0x3c,0x3c,0x18, // 0xad
+  0xcc,0x66,0x33,0x00,0x00,0x00,0x33,0x66, // 0xae
+  0x33,0x66,0xcc,0x00,0x00,0x00,0xcc,0x66, // 0xaf
+  0x88,0x22,0x88,0x22,0x88,0x22,0x88,0x22, // 0xb0
+  0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55, // 0xb1
+  0x77,0xdd,0x77,0xdd,0x77,0xdd,0x77,0xdd, // 0xb2
+  0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, // 0xb3
+  0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xf8, // 0xb4
+  0x78,0x30,0x18,0x0c,0x00,0xcc,0xfc,0xcc, // 0xb5
+  0x78,0x30,0x84,0x78,0x00,0xcc,0xfc,0xcc, // 0xb6
+  0x78,0x30,0x60,0xc0,0x00,0xcc,0xfc,0xcc, // 0xb7
+  0xa1,0xb9,0x42,0x3c,0x00,0x3c,0x42,0xb9, // 0xb8
+  0x06,0xf6,0x36,0x36,0x36,0x36,0x36,0xf6, // 0xb9
+  0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, // 0xba
+  0x06,0xfe,0x00,0x00,0x36,0x36,0x36,0xf6, // 0xbb
+  0x06,0xf6,0x36,0x36,0x00,0x00,0x00,0xfe, // 0xbc
+  0xc0,0x7e,0x18,0x18,0x18,0x18,0x7e,0xc0, // 0xbd
+  0xfc,0x78,0xcc,0xcc,0x30,0x30,0xfc,0x30, // 0xbe
+  0x00,0x00,0x00,0x00,0x18,0x18,0x18,0xf8, // 0xbf
+  0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x1f, // 0xc0
+  0x18,0x18,0x18,0x18,0x00,0x00,0x00,0xff, // 0xc1
+  0x00,0x00,0x00,0x00,0x18,0x18,0x18,0xff, // 0xc2
+  0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1f, // 0xc3
+  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, // 0xc4
+  0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xff, // 0xc5
+  0x0c,0x78,0xdc,0x76,0x00,0x7e,0xcc,0x7c, // 0xc6
+  0x78,0x30,0xdc,0x76,0x00,0xcc,0xfc,0xcc, // 0xc7
+  0x30,0x37,0x36,0x36,0x00,0x00,0x00,0x3f, // 0xc8
+  0x30,0x3f,0x00,0x00,0x36,0x36,0x36,0x37, // 0xc9
+  0x00,0xf7,0x36,0x36,0x00,0x00,0x00,0xff, // 0xca
+  0x00,0xff,0x00,0x00,0x36,0x36,0x36,0xf7, // 0xcb
+  0x30,0x37,0x36,0x36,0x36,0x36,0x36,0x37, // 0xcc
+  0x00,0xff,0x00,0x00,0x00,0x00,0x00,0xff, // 0xcd
+  0x00,0xf7,0x36,0x36,0x36,0x36,0x36,0xf7, // 0xce
+  0x6c,0xfe,0x82,0x00,0x00,0x82,0xfe,0x6c, // 0xcf
+  0x0c,0xd8,0x70,0xd8,0x00,0x38,0x6c,0x3c, // 0xd0
+  0xf6,0x66,0x6c,0xfc,0x00,0xfc,0x6c,0x66, // 0xd1
+  0x60,0xfc,0x84,0x78,0x00,0xfc,0x60,0x78, // 0xd2
+  0x60,0xfc,0x00,0xcc,0x00,0xfc,0x60,0x78, // 0xd3
+  0x60,0xfc,0x30,0x60,0x00,0xfc,0x60,0x78, // 0xd4
+  0xe0,0x40,0xc0,0x00,0x00,0x00,0x00,0x00, // 0xd5
+  0x30,0x78,0x30,0x18,0x00,0x78,0x30,0x30, // 0xd6
+  0x30,0x78,0x84,0x78,0x00,0x78,0x30,0x30, // 0xd7
+  0x30,0x78,0x00,0xcc,0x00,0x78,0x30,0x30, // 0xd8
+  0x18,0x18,0x18,0x18,0x00,0x00,0x00,0xf8, // 0xd9
+  0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x1f, // 0xda
+  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, // 0xdb
+  0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, // 0xdc
+  0x00,0x18,0x18,0x18,0x00,0x18,0x18,0x18, // 0xdd
+  0x30,0x78,0x30,0x60,0x00,0x78,0x30,0x30, // 0xde
+  0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00, // 0xdf
+  0xc6,0x7c,0x30,0x18,0x00,0x7c,0xc6,0xc6, // 0xe0
+  0xf8,0xcc,0x78,0x00,0xc0,0xc0,0xf8,0xcc, // 0xe1
+  0xc6,0x7c,0x82,0x7c,0x00,0x7c,0xc6,0xc6, // 0xe2
+  0xc6,0x7c,0x18,0x30,0x00,0x7c,0xc6,0xc6, // 0xe3
+  0x78,0x00,0xdc,0x76,0x00,0x78,0xcc,0xcc, // 0xe4
+  0xc6,0x7c,0xdc,0x76,0x00,0x7c,0xc6,0xc6, // 0xe5
+  0x66,0x66,0x66,0x00,0xc0,0x60,0x7c,0x66, // 0xe6
+  0x6c,0x78,0xe0,0x00,0x00,0xf0,0x60,0x78, // 0xe7
+  0x66,0x7c,0x60,0xf0,0x00,0xf0,0x60,0x7c, // 0xe8
+  0xcc,0xcc,0x30,0x18,0x00,0x78,0xcc,0xcc, // 0xe9
+  0xcc,0x00,0x84,0x78,0x00,0x78,0xcc,0xcc, // 0xea
+  0xcc,0xcc,0x30,0x60,0x00,0x78,0xcc,0xcc, // 0xeb
+  0xcc,0x00,0x30,0x18,0xf8,0x0c,0xfc,0xcc, // 0xec
+  0xcc,0xcc,0x30,0x18,0x00,0x78,0x30,0x78, // 0xed
+  0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00, // 0xee
+  0x00,0x00,0x30,0x18,0x00,0x00,0x00,0x00, // 0xef
+  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc, // 0xf0
+  0x30,0xfc,0x30,0x30,0x00,0xfc,0x00,0x30, // 0xf1
+  0xfc,0x00,0x00,0x00,0x00,0x00,0xfc,0x00, // 0xf2
+  0x33,0x78,0x2c,0xe6,0x03,0x9f,0xcd,0xe7, // 0xf3
+  0x7b,0xdb,0xdb,0x7f,0x00,0x1b,0x1b,0x1b, // 0xf4
+  0xcc,0x78,0xc3,0x7e,0xf8,0x8c,0x78,0xcc, // 0xf5
+  0xfc,0x00,0x30,0x30,0x00,0x30,0x30,0x00, // 0xf6
+  0x00,0x00,0x00,0x00,0x60,0x30,0x00,0x00, // 0xf7
+  0x38,0x6c,0x6c,0x38,0x00,0x00,0x00,0x00, // 0xf8
+  0x00,0x00,0xcc,0x00,0x00,0x00,0x00,0x00, // 0xf9
+  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18, // 0xfa
+  0x18,0x18,0x78,0x38,0x00,0x00,0x00,0x7e, // 0xfb
+  0x3c,0x38,0x30,0x00,0x00,0x30,0x38,0x3c, // 0xfc //play
+  0x66,0x66,0x66,0x00,0x00,0x66,0x66,0x66, // 0xfd //buf
+  0x7e,0x7e,0x7e,0x00,0x00,0x7e,0x7e,0x7e, // 0xfe //stop
+  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00  // 0xff
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fonts/font_8x8.h	Mon Dec 06 20:25:44 2010 +0000
@@ -0,0 +1,15 @@
+#ifndef _FONT_8X8_H_
+#define _FONT_8X8_H_
+
+
+//----- DEFINES -----
+#define FONT1_START                    (0x20)
+#define FONT1_WIDTH                    (8)
+#define FONT1_HEIGHT                   (8)
+
+
+//----- GLOBALS -----
+extern const unsigned char font1[];
+
+
+#endif //_FONT_8X8_H_
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fonts/font_clock.cpp	Mon Dec 06 20:25:44 2010 +0000
@@ -0,0 +1,29 @@
+#include "font_clock.h"
+
+
+//0x20 - 0x3A
+const unsigned char font3[] = 
+{
+  0xf4,0xbf,0xf8,0x7f,0x1c,0xe0,0xec,0xdf,0x1c,0xe0,0x1c,0xe0,0x0c,0xc0,0x1c,0xe0,0x00,0x00,0x04,0x80,
+  0x0c,0xc0,0x04,0x80,0x1c,0xe0,0x1c,0xe0,0x1c,0xe0,0x1c,0xe0,0xec,0xdf,0x1c,0xe0,0xf8,0x7f,0xf4,0xbf, // 0x30
+  0x04,0x00,0x00,0x00,0x1c,0x00,0x0c,0x00,0x1c,0x00,0x1c,0x00,0x0c,0x00,0x1c,0x00,0x00,0x00,0x04,0x00,
+  0x0c,0x00,0x04,0x00,0x1c,0x00,0x1c,0x00,0x1c,0x00,0x1c,0x00,0x0c,0x00,0x1c,0x00,0x00,0x00,0x04,0x00, // 0x31
+  0xf4,0x3f,0xf8,0x7f,0x1c,0x00,0xec,0x1f,0x1c,0x00,0x1c,0x00,0x0c,0x00,0x1c,0x00,0xf8,0x7f,0xf4,0x3f,
+  0x00,0xc0,0xf0,0xbf,0x00,0xe0,0x00,0xe0,0x00,0xe0,0x00,0xe0,0xe0,0xdf,0x00,0xe0,0xf8,0x7f,0xf0,0xbf, // 0x32
+  0xf4,0x3f,0xf8,0x7f,0x1c,0x00,0xec,0x1f,0x1c,0x00,0x1c,0x00,0x0c,0x00,0x1c,0x00,0xf8,0x7f,0xf4,0x3f,
+  0x0c,0x00,0xf4,0x3f,0x1c,0x00,0x1c,0x00,0x1c,0x00,0x1c,0x00,0xec,0x1f,0x1c,0x00,0xf8,0x7f,0xf4,0x3f, // 0x33
+  0x04,0x80,0x00,0x00,0x1c,0xe0,0x0c,0xc0,0x1c,0xe0,0x1c,0xe0,0x0c,0xc0,0x1c,0xe0,0xf8,0x7f,0xf4,0xbf,
+  0x0c,0x00,0xf4,0x3f,0x1c,0x00,0x1c,0x00,0x1c,0x00,0x1c,0x00,0x0c,0x00,0x1c,0x00,0x00,0x00,0x04,0x00, // 0x34
+  0xf0,0xbf,0xf8,0x7f,0x00,0xe0,0xe0,0xdf,0x00,0xe0,0x00,0xe0,0x00,0xc0,0x00,0xe0,0xf8,0x7f,0xf0,0xbf,
+  0x0c,0x00,0xf4,0x3f,0x1c,0x00,0x1c,0x00,0x1c,0x00,0x1c,0x00,0xec,0x1f,0x1c,0x00,0xf8,0x7f,0xf4,0x3f, // 0x35
+  0xf0,0xbf,0xf8,0x7f,0x00,0xe0,0xe0,0xdf,0x00,0xe0,0x00,0xe0,0x00,0xc0,0x00,0xe0,0xf8,0x7f,0xf0,0xbf,
+  0x0c,0xc0,0xf4,0xbf,0x1c,0xe0,0x1c,0xe0,0x1c,0xe0,0x1c,0xe0,0xec,0xdf,0x1c,0xe0,0xf8,0x7f,0xf4,0xbf, // 0x36
+  0xf4,0x3f,0xf8,0x7f,0x1c,0x00,0xec,0x1f,0x1c,0x00,0x1c,0x00,0x0c,0x00,0x1c,0x00,0x00,0x00,0x04,0x00,
+  0x0c,0x00,0x04,0x00,0x1c,0x00,0x1c,0x00,0x1c,0x00,0x1c,0x00,0x0c,0x00,0x1c,0x00,0x00,0x00,0x04,0x00, // 0x37
+  0xf4,0xbf,0xf8,0x7f,0x1c,0xe0,0xec,0xdf,0x1c,0xe0,0x1c,0xe0,0x0c,0xc0,0x1c,0xe0,0xf8,0x7f,0xf4,0xbf,
+  0x0c,0xc0,0xf4,0xbf,0x1c,0xe0,0x1c,0xe0,0x1c,0xe0,0x1c,0xe0,0xec,0xdf,0x1c,0xe0,0xf8,0x7f,0xf4,0xbf, // 0x38
+  0xf4,0xbf,0xf8,0x7f,0x1c,0xe0,0xec,0xdf,0x1c,0xe0,0x1c,0xe0,0x0c,0xc0,0x1c,0xe0,0xf8,0x7f,0xf4,0xbf,
+  0x0c,0x00,0xf4,0x3f,0x1c,0x00,0x1c,0x00,0x1c,0x00,0x1c,0x00,0x0c,0x00,0x1c,0x00,0x00,0x00,0x04,0x00, // 0x39
+  0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x80,0x0f,0x00,0x07,0x00,0x02,0x00,0x07,0x00,0x00,0x00,0x00,
+  0x00,0x02,0x00,0x00,0x80,0x0f,0x00,0x07,0x00,0x02,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00  // 0x3a
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fonts/font_clock.h	Mon Dec 06 20:25:44 2010 +0000
@@ -0,0 +1,15 @@
+#ifndef _FONT_CLOCK_H_
+#define _FONT_CLOCK_H_
+
+
+//----- DEFINES -----
+#define FONT3_START                    (0x30)
+#define FONT3_WIDTH                    (16)
+#define FONT3_HEIGHT                   (20)
+
+
+//----- GLOBALS -----
+extern const unsigned char font3[];
+
+
+#endif //_FONT_CLOCK_H_