Smart pole
Dependencies: FTPClient SDFileSystem WIZnetInterface mbed
Fork of FTP_Streaming_Music_Player_WIZwiki-W7500 by
Revision 1:c47c255fcad4, committed 2015-10-30
- Comitter:
- Ricky_Kwon
- Date:
- Fri Oct 30 03:53:23 2015 +0000
- Parent:
- 0:fa775d326f9c
- Commit message:
- Smart pole
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SSD1306.h Fri Oct 30 03:53:23 2015 +0000
@@ -0,0 +1,209 @@
+#include "data.h"
+#define addr (0x78)
+
+#if defined(TARGET_WIZwiki_W7500)
+#define SDA PA_10
+#define SCL PA_9
+#endif
+
+I2C i2c(SDA, SCL);
+
+void send_cmd(uint8_t cmd){
+ char c[2] ={0x00,cmd};
+
+ i2c.write(addr,c,2,1);
+
+}
+
+void send_data(uint8_t data){
+ char c[2] = {0x40,data};
+ i2c.write(addr,c,2,1);
+
+}
+
+void init(void)
+{
+ wait_ms(5); // TBD
+
+ send_cmd(0xae); // display off
+ send_cmd(0xd5); // display divide ratio/osc. freq. ratio
+ send_cmd(0x80);
+ send_cmd(0xa8); // multiplex ation mode: 63
+ send_cmd(0x3f);
+ send_cmd(0xd3); // set display offset
+ send_cmd(0x00);
+ send_cmd(0x40); // set display start line
+ send_cmd(0x8d); // set display offset
+ send_cmd(0x14);
+ send_cmd(0xa1); // segment remap
+ send_cmd(0xc8); // set COM output scan direction
+ send_cmd(0xda); // common pads hardware: alternative
+ send_cmd(0x12);
+ send_cmd(0x81); // contrast control
+ send_cmd(0xcf);
+ send_cmd(0xd9); // set pre-charge period
+ send_cmd(0xf1);
+ send_cmd(0xdb); // VCOM deselect level mode
+ send_cmd(0x40); // set vcomh = 0.83 * VCC
+ send_cmd(0xa4); // set entire display on/off
+ send_cmd(0xa6); // set normal display
+ send_cmd(0xaf); // set display on
+}
+
+// set position (x, 8*y)
+void locate(int x, int y){
+ send_cmd(0xb0+y);
+ send_cmd(((x&0xf0)>>4)|0x10);
+ send_cmd((x&0x0f)|0x01);
+}
+
+void cls(void){
+ int x, y;
+ for(y = 0; y < 8; y++){
+ locate(0, y);
+ for(x = 0; x < 128; x++) send_data(0x00);
+ }
+}
+
+
+
+ void OLED_ShowStr(unsigned char x, unsigned char y, char ch[], unsigned char TextSize)
+{
+ unsigned char c = 0,i = 0,j = 0;
+ switch(TextSize)
+ {
+ case 1:
+ {
+ while(ch[j] != '\0')
+ {
+ c = ch[j] - 32;
+ if(x > 126)
+ {
+ x = 0;
+ y++;
+ }
+ locate(x,y);
+ for(i=0;i<6;i++)
+ send_data(F6x8[c][i]);
+ x += 6;
+ j++;
+ }
+ }break;
+ case 2:
+ {
+ while(ch[j] != '\0')
+ {
+ c = ch[j] - 32;
+ if(x > 120)
+ {
+ x = 0;
+ y++;
+ }
+ locate(x,y);
+ for(i=0;i<8;i++)
+ send_data(F8X16[c*16+i]);
+ locate(x,y+1);
+ for(i=0;i<8;i++)
+ send_data(F8X16[c*16+i+8]);
+ x += 8;
+ j++;
+ }
+ }break;
+ }
+}
+void OLED_DrawBMP(unsigned char x0,
+ unsigned char y0,unsigned char x1,
+ unsigned char y1,unsigned char BMP[])
+{
+ unsigned int j=0;
+ unsigned char x,y;
+
+ if(y1%8==0)
+ y = y1/8;
+ else
+ y = y1/8 + 1;
+ for(y=y0;y<y1;y++)
+ {
+ locate(x0,y);
+ for(x=x0;x<x1;x++)
+ {
+ send_data(BMP[j++]);
+ }
+ }
+}
+//==========================================================//
+// Prints a display big number (96 bytes) in coordinates X Y,
+// being multiples of 8. This means we have 16 COLS (0-15)
+// and 8 ROWS (0-7).
+void printBigNumber(unsigned char s, int x, int y)
+{
+ locate(x,y);
+ int salto=0;
+ for(int i=0; i<96; i++) {
+ if(s == ' ') {
+ send_data(0);
+ } else
+ send_data(bigNumbers[s-0x30][i]);
+
+ if(salto == 23) {
+ salto = 0;
+ x++;
+ locate(x,y);
+ } else {
+ salto++;
+ }
+ }
+}
+void printBigTime(char *s)
+{
+
+ int y=0;
+ int lon = strlen(s);
+ if(lon == 6) {
+ y = 0;
+ } else if (lon == 5) {
+ y = 3;
+ } else if (lon == 4) {
+ y = 6;
+ }
+ else if(lon == 3) {
+ y = 9;
+ } else if (lon == 2) {
+ y = 12;
+ } else if (lon == 1) {
+ y = 15;
+ }
+
+ int x = 2;
+ while(*s) {
+ printBigNumber(*s, x, y);
+
+ y+=3;
+ x=2;
+ locate(x,y);
+ *s++;
+ }
+}
+void LED_P23x32Str(unsigned char x, unsigned char y, char ch[])
+{
+ unsigned char c = 0, i = 0, j = 0, k = 0;
+ while (ch[j] != '\0')
+ {
+ c = ch[j] - '0';
+ if (x > 120) {
+ x = 0;
+ y++;
+ }
+
+ for (k = 0; k < 4; k++) {
+ locate(x, y + k);
+ for (i = 0; i < 23; i++) {
+ send_data(F23x32[c * 23 * 4 + k * 23 + i]);
+ }
+ }
+ x += 25;
+ j++;
+ }
+}
+
+
--- a/TextLCD.lib Tue Sep 22 23:14:59 2015 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -http://mbed.org/users/benyun/code/TextLCD/#7dd9751172e1
--- a/VS1002.cpp Tue Sep 22 23:14:59 2015 +0000
+++ b/VS1002.cpp Fri Oct 30 03:53:23 2015 +0000
@@ -2,7 +2,6 @@
#include "mbed.h"
Serial pc(USBTX, USBRX);
-TextLCD lcd(D8, D9, D0, D1, D2, D15);
/* ==================================================================
* Constructor
@@ -185,20 +184,9 @@
unsigned char array[512]; //array for reading data from file
bool play_new=false; // Variable to see if new_song has be assigned or not
song = fopen(str, "r"); // Open the music file in read mode
- /* Printing to LCD the present status */
- lcd.cls();
- if(pause)
- lcd.printf(" Paused ");
- if(mute)
- lcd.printf("Muted");
- if(!mute && !pause)
- lcd.printf(" Playing...");
-
- lcd.printf("\n %d %s",new_song_number,song_name[new_song_number-1]);
if(!song)
{
- lcd.printf("\n \n Error!!");
new_song_number+=1; // Goto Next song on completion of one song
if(new_song_number==10)
new_song_number=1;
--- a/VS1002.h Tue Sep 22 23:14:59 2015 +0000 +++ b/VS1002.h Fri Oct 30 03:53:23 2015 +0000 @@ -5,7 +5,6 @@ #include "SDFileSystem.h" #include "string" #include "string.h" -#include "TextLCD.h" //SCI_MODE register bits as of p.26 of the datasheet
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/data.h Fri Oct 30 03:53:23 2015 +0000
@@ -0,0 +1,451 @@
+#ifndef _DATA_H_
+#define _DATA_H_
+unsigned char F16x16[] =
+{
+ 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C,
+ 0x00,0x02,0x02,0xFA,0xFA,0xAA,0xAA,0xFF,0xFF,0xAA,0xAA,0xFA,0xFA,0x02,0x02,0x00,
+ 0x00,0x42,0x72,0x72,0x3A,0x7A,0x42,0x4B,0x5B,0x52,0x62,0x62,0x13,0x77,0x66,0x00,
+
+ 0x20,0x3C,0x1C,0xFF,0xFF,0xB0,0xB4,0x24,0x24,0x3F,0x3F,0xE4,0xE4,0x24,0x24,0x20,
+ 0x02,0x02,0x03,0xFF,0xFF,0x00,0x01,0x05,0x1D,0x59,0xC1,0xFF,0x7F,0x01,0x01,0x01,
+ 0x00,0x00,0x00,0xF8,0xF8,0x48,0x4C,0x4F,0x4B,0x4A,0x48,0x48,0xF8,0xF8,0x00,0x00,
+ 0x00,0x00,0x00,0xFF,0xFF,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xFF,0xFF,0x00,0x00,
+
+ 0x20,0x24,0x24,0xE4,0xE4,0x24,0x24,0x24,0x30,0x10,0xFF,0xFF,0x10,0xF0,0xF0,0x00,
+ 0x08,0x1C,0x1F,0x0B,0x0C,0x0D,0x4F,0x6E,0x34,0x1C,0x0F,0x23,0x60,0x7F,0x3F,0x00,
+
+ 0x80,0xC0,0x60,0xF8,0xFF,0x07,0x02,0x00,0xFF,0xFF,0xE0,0x70,0x3C,0x1C,0x08,0x00,
+ 0x00,0x00,0x00,0x7F,0x7F,0x04,0x06,0x03,0x3F,0x7F,0x40,0x40,0x40,0x78,0x78,0x00,
+};
+
+/************************************6*8************************************/
+const unsigned char F6x8[][6] =
+{
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,// sp
+ 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00,// !
+ 0x00, 0x00, 0x07, 0x00, 0x07, 0x00,// "
+ 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14,// #
+ 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12,// $
+ 0x00, 0x62, 0x64, 0x08, 0x13, 0x23,// %
+ 0x00, 0x36, 0x49, 0x55, 0x22, 0x50,// &
+ 0x00, 0x00, 0x05, 0x03, 0x00, 0x00,// '
+ 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00,// (
+ 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00,// )
+ 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14,// *
+ 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08,// +
+ 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00,// ,
+ 0x00, 0x08, 0x08, 0x08, 0x08, 0x08,// -
+ 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,// .
+ 0x00, 0x20, 0x10, 0x08, 0x04, 0x02,// /
+ 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
+ 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00,// 1
+ 0x00, 0x42, 0x61, 0x51, 0x49, 0x46,// 2
+ 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31,// 3
+ 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10,// 4
+ 0x00, 0x27, 0x45, 0x45, 0x45, 0x39,// 5
+ 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
+ 0x00, 0x01, 0x71, 0x09, 0x05, 0x03,// 7
+ 0x00, 0x36, 0x49, 0x49, 0x49, 0x36,// 8
+ 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E,// 9
+ 0x00, 0x00, 0x36, 0x36, 0x00, 0x00,// :
+ 0x00, 0x00, 0x56, 0x36, 0x00, 0x00,// ;
+ 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,// <
+ 0x00, 0x14, 0x14, 0x14, 0x14, 0x14,// =
+ 0x00, 0x00, 0x41, 0x22, 0x14, 0x08,// >
+ 0x00, 0x02, 0x01, 0x51, 0x09, 0x06,// ?
+ 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E,// @
+ 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C,// A
+ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36,// B
+ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22,// C
+ 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C,// D
+ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41,// E
+ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01,// F
+ 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A,// G
+ 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F,// H
+ 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00,// I
+ 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01,// J
+ 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41,// K
+ 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40,// L
+ 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F,// M
+ 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F,// N
+ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E,// O
+ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06,// P
+ 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
+ 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46,// R
+ 0x00, 0x46, 0x49, 0x49, 0x49, 0x31,// S
+ 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01,// T
+ 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F,// U
+ 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F,// V
+ 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F,// W
+ 0x00, 0x63, 0x14, 0x08, 0x14, 0x63,// X
+ 0x00, 0x07, 0x08, 0x70, 0x08, 0x07,// Y
+ 0x00, 0x61, 0x51, 0x49, 0x45, 0x43,// Z
+ 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00,// [
+ 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55,// 55
+ 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00,// ]
+ 0x00, 0x04, 0x02, 0x01, 0x02, 0x04,// ^
+ 0x00, 0x40, 0x40, 0x40, 0x40, 0x40,// _
+ 0x00, 0x00, 0x01, 0x02, 0x04, 0x00,// '
+ 0x00, 0x20, 0x54, 0x54, 0x54, 0x78,// a
+ 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38,// b
+ 0x00, 0x38, 0x44, 0x44, 0x44, 0x20,// c
+ 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F,// d
+ 0x00, 0x38, 0x54, 0x54, 0x54, 0x18,// e
+ 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02,// f
+ 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C,// g
+ 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78,// h
+ 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00,// i
+ 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00,// j
+ 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00,// k
+ 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00,// l
+ 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78,// m
+ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78,// n
+ 0x00, 0x38, 0x44, 0x44, 0x44, 0x38,// o
+ 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18,// p
+ 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC,// q
+ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08,// r
+ 0x00, 0x48, 0x54, 0x54, 0x54, 0x20,// s
+ 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20,// t
+ 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C,// u
+ 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C,// v
+ 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C,// w
+ 0x00, 0x44, 0x28, 0x10, 0x28, 0x44,// x
+ 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C,// y
+ 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44,// z
+ 0x14, 0x14, 0x14, 0x14, 0x14, 0x14,// horiz lines
+};
+/****************************************8*16************************************/
+const unsigned char F8X16[]=
+{
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 0
+ 0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,//! 1
+ 0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//" 2
+ 0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,//# 3
+ 0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,//$ 4
+ 0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,//% 5
+ 0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,//& 6
+ 0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//' 7
+ 0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,//( 8
+ 0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,//) 9
+ 0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,//* 10
+ 0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,//+ 11
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,//, 12
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,//- 13
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,//. 14
+ 0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,/// 15
+ 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,//0 16
+ 0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//1 17
+ 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,//2 18
+ 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,//3 19
+ 0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,//4 20
+ 0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,//5 21
+ 0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,//6 22
+ 0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,//7 23
+ 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,//8 24
+ 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,//9 25
+ 0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,//: 26
+ 0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,//; 27
+ 0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,//< 28
+ 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,//= 29
+ 0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,//> 30
+ 0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,//? 31
+ 0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,//@ 32
+ 0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,//A 33
+ 0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,//B 34
+ 0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,//C 35
+ 0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,//D 36
+ 0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,//E 37
+ 0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,//F 38
+ 0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,//G 39
+ 0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,//H 40
+ 0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//I 41
+ 0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,//J 42
+ 0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,//K 43
+ 0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,//L 44
+ 0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,//M 45
+ 0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,//N 46
+ 0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,//O 47
+ 0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,//P 48
+ 0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,//Q 49
+ 0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,//R 50
+ 0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,//S 51
+ 0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//T 52
+ 0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//U 53
+ 0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,//V 54
+ 0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,//W 55
+ 0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,//X 56
+ 0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//Y 57
+ 0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,//Z 58
+ 0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,//[ 59
+ 0x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00,//\ 60
+ 0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,//] 61
+ 0x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//^ 62
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,//_ 63
+ 0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//` 64
+ 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,//a 65
+ 0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,//b 66
+ 0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,//c 67
+ 0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,//d 68
+ 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,//e 69
+ 0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//f 70
+ 0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,//g 71
+ 0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//h 72
+ 0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//i 73
+ 0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,//j 74
+ 0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,//k 75
+ 0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//l 76
+ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,//m 77
+ 0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//n 78
+ 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//o 79
+ 0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,//p 80
+ 0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,//q 81
+ 0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,//r 82
+ 0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,//s 83
+ 0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,//t 84
+ 0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,//u 85
+ 0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,//v 86
+ 0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,//w 87
+ 0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,//x 88
+ 0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,//y 89
+ 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,//z 90
+ 0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,//{ 91
+ 0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,//| 92
+ 0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00,//} 93
+ 0x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//~ 94
+};
+
+
+const unsigned char wiznet[] = {
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xC0, 0xC0, 0xE0, 0xE0, 0xF0, 0xF0, 0xF0, 0x78, 0x78, 0x78,
+0x78, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x7C, 0x7C, 0xFC, 0xF8, 0xF8, 0xF0, 0xE0,
+0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xE0, 0xF0, 0x78, 0x3C,
+0x3C, 0x1E, 0x0F, 0x0F, 0x07, 0x07, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0xFF, 0x3F,
+0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF8, 0xFC, 0x3E, 0x1F, 0x0F, 0x07, 0x03, 0x01, 0x00, 0x20, 0xE0,
+0xE0, 0xE0, 0xE0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xE0, 0xE0, 0xE0, 0xE0,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x60, 0x20, 0x10, 0x00, 0x02, 0x00, 0x00,
+0x20, 0xE0, 0xE0, 0xE0, 0xE0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x20, 0x20, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xE0, 0xE0, 0x60, 0x20, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0xF8, 0xFF, 0xFF, 0x0F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+0x3F, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x40, 0x10, 0x04, 0x03, 0x03, 0xFF, 0xFF, 0xFF,
+0xFC, 0x80, 0x00, 0x00, 0x80, 0x20, 0x08, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
+0xFC, 0xFF, 0xFF, 0x7F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
+0xC0, 0xE0, 0xF0, 0xF8, 0x3C, 0x1E, 0x0F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
+0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0x10, 0x10, 0x30, 0xF0, 0xF0, 0xE0, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x80, 0xC0, 0xE0, 0x60, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0xF0, 0xE0, 0xC0, 0x00,
+0x00, 0x00, 0x00, 0x08, 0xF8, 0xFC, 0xFE, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x03, 0x07, 0x0E, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x07, 0xFF, 0xFF, 0x3F, 0x1C, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF,
+0xFF, 0x3F, 0x0C, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF,
+0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF8, 0x7C, 0x3E, 0x1F, 0x0F,
+0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x00, 0x00, 0x00, 0xF8,
+0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00,
+0x00, 0x3E, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
+0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
+0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+char bigNumbers [][96] = {
+{0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
+0xF0, 0xF0, 0xF0, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0F, 0x0F, 0x0F,
+0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x07, 0x03, 0x00, 0x00, 0x00},
+
+{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0,
+0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+
+{0x00, 0x00, 0x00, 0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
+0xF0, 0xF0, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xC1, 0xC0, 0xC0, 0xC0,
+0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
+0x03, 0x03, 0x83, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x0F, 0x0F, 0x0F,
+0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00},
+
+{0x00, 0x00, 0x00, 0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
+0xF0, 0xF0, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xC1, 0xC0, 0xC0, 0xC0,
+0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xE1, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x81, 0x83, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x87,
+0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x0F, 0x0F, 0x0F,
+0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00},
+
+{0x00, 0x00, 0x00, 0xE0, 0xF0, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
+0xF0, 0xF0, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0,
+0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07,
+0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0F, 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00},
+
+{0x00, 0x00, 0x00, 0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
+0xF0, 0xF0, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1,
+0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC1, 0x81, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x81, 0x83, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x87,
+0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x0F, 0x0F, 0x0F,
+0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00},
+
+{0x00, 0x00, 0x00, 0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
+0xF0, 0xF0, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1,
+0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC1, 0x81, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x87,
+0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x0F, 0x0F, 0x0F,
+0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00},
+
+{0x00, 0x00, 0x00, 0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
+0xF0, 0xF0, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0F, 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00},
+
+{0x00, 0x00, 0x00, 0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
+0xF0, 0xF0, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xE1,
+0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xE1, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x87, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x87,
+0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x0F, 0x0F, 0x0F,
+0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00},
+
+{0x00, 0x00, 0x00, 0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
+0xF0, 0xF0, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1,
+0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07,
+0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0F, 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00},
+
+{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x3C, 0x7E, 0x7E, 0x7E, 0x7E, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF8, 0xF8, 0xF8, 0xF8, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+};
+const unsigned char F23x32[]=
+{
+ // 0
+ 0x00, 0x00, 0x80, 0xE0, 0xF8, 0xFC, 0xFC, 0xFE, 0x7E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x7E, 0xFE, 0xFC, 0xFC, 0xF8, 0xE0, 0x80, 0x00, 0x00,
+ 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00,
+ 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00,
+ 0x00, 0x00, 0x03, 0x0F, 0x3F, 0x7F, 0x7F, 0xFF, 0xFC, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xFC, 0xFF, 0x7F, 0x7F, 0x3F, 0x0F, 0x03, 0x00, 0x00,
+ // 1
+ 0x00, 0x00, 0xF8, 0xFC, 0xFC, 0x7C, 0x7C, 0x7E, 0x7E, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x00,
+ // 2
+ 0x00, 0xFC, 0x7C, 0x7E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x7E, 0xFE, 0xFE, 0xFC, 0xFC, 0xF8, 0xF0, 0xC0, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x0F, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xF0, 0xF8, 0xFC, 0xFE, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xF9, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x00, 0x00, 0x00,
+ // 3
+ 0x7C, 0x7C, 0x7E, 0x7E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x7E, 0xFE, 0xFC, 0xFC, 0xF8, 0xF0, 0xC0, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xF0, 0xF8, 0x7F, 0x7F, 0x3F, 0x3F, 0x1F, 0x07, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07, 0x07, 0x1F, 0xFF, 0xFF, 0xFE, 0xFE, 0xFC, 0xF0, 0x00, 0x00,
+ 0x00, 0x7C, 0xFC, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xFC, 0xFE, 0xFF, 0x7F, 0x7F, 0x3F, 0x1F, 0x07, 0x00, 0x00,
+ // 4
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xF0, 0xFC, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x80, 0xE0, 0xF0, 0xFC, 0xFE, 0x7F, 0x1F, 0x0F, 0x03, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xF7, 0xF3, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0xF0, 0xF0,
+ 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x01, 0x01, 0x01,
+ // 5
+ 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF0, 0xF0, 0xE0, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
+ 0x00, 0x7C, 0xFC, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xFC, 0xFF, 0x7F, 0x7F, 0x3F, 0x1F, 0x0F, 0x01, 0x00, 0x00,
+ // 6
+ 0x00, 0x00, 0x80, 0xE0, 0xF0, 0xF8, 0xFC, 0xFC, 0xFE, 0x7E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x7C, 0x00, 0x00, 0x00,
+ 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE3, 0xF0, 0xF0, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF0, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00,
+ 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00,
+ 0x00, 0x00, 0x07, 0x1F, 0x3F, 0x7F, 0x7F, 0xFF, 0xFC, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xFE, 0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x03, 0x00,
+ // 7
+ 0x00, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x3E, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x07, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ // 8
+ 0x00, 0x00, 0xC0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFE, 0x7E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x7E, 0xFE, 0xFE, 0xFC, 0xF8, 0xF0, 0xC0, 0x00, 0x00,
+ 0x00, 0x00, 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0xFF, 0xF8, 0xF0, 0xE0, 0xE0, 0xE0, 0xF0, 0xF8, 0xFF, 0x7F, 0x7F, 0x3F, 0x1F, 0x07, 0x00, 0x00,
+ 0x00, 0xF0, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0x0F, 0x07, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07, 0x0F, 0xFF, 0xFF, 0xFF, 0xFE, 0xFC, 0xF0, 0x00,
+ 0x00, 0x07, 0x1F, 0x3F, 0x7F, 0x7F, 0xFF, 0xFE, 0xFC, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xFC, 0xFE, 0xFF, 0x7F, 0x7F, 0x3F, 0x1F, 0x07, 0x00,
+ // 9
+ 0xE0, 0xE0, 0xF8, 0xFC, 0xFC, 0xFE, 0xFE, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x7E, 0xFE, 0xFC, 0xFC, 0xF8, 0xF0, 0xC0, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
+ 0x00, 0x01, 0x07, 0x0F, 0x0F, 0x0F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x0F, 0x0F, 0xC7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00,
+ 0x00, 0x7c, 0x7C, 0xFC, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xFC, 0xFE, 0x7F, 0x7F, 0x3F, 0x1F, 0x0F, 0x03, 0x00, 0x00, 0x00,
+ /* : */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* deg */
+ 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xF8, 0xF8, 0x7C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x7C, 0xF8, 0xF8, 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1F, 0x7F, 0xFF, 0xFF, 0xE0, 0xC0, 0x80, 0x80, 0x80, 0xC0, 0xE0, 0xFF, 0xFF, 0x7F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* C */
+ 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xF8, 0xF8, 0xFC, 0xFE, 0x7E, 0x7E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x7E, 0xFE, 0xFC, 0x00, 0x00,
+ 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x07, 0x1F, 0x3F, 0x3F, 0x7F, 0xFF, 0xFC, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xFC, 0xFE, 0x7E, 0x00, 0x00,
+ /* . */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* , */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF8, 0xFF, 0xFF, 0xFF, 0x7F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* (space) */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ /* : */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+};
+#endif
\ No newline at end of file
--- a/main.cpp Tue Sep 22 23:14:59 2015 +0000
+++ b/main.cpp Fri Oct 30 03:53:23 2015 +0000
@@ -5,43 +5,35 @@
#include <string.h>
#include "FTPClient.h"
- #include "VS1002.h"
- #include "TextLCD.h"
+#include "VS1002.h"
+#include "SSD1306.h"
#define MAC "\x00\x08\xDC\x11\x34\x78"
-#define IP "192.168.77.191"
+#define IP "192.168.0.20"
#define MASK "255.255.255.0"
-#define GATEWAY "192.168.77.1"
+#define GATEWAY "192.168.0.1"
-#define FTP_SERVER_IP "192.168.77.209"
+#define FTP_SERVER_IP "192.168.0.10"
#define _MAX_FNAME_LEN_ 127
-#define _FTP_UPDATE_TIME_ 20
+#define _FTP_UPDATE_TIME_ 10
Serial uart(USBTX, USBRX);
-
+AnalogIn ain(A5);
//SDFileSystem sd(p5, p6, p7, p8, "sd"); // LPC1768 MBD2PMD
//SDFileSystem sd(P0_18, P0_17, P0_15, P0_16, "sd"); // Seeeduino Arch Pro SPI2SD
//SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd"); // K64F
//SDFileSystem sd(PB_3, PB_2, PB_1, PB_0, "sd"); // WIZwiki-W7500
EthernetInterface eth;
-
-DigitalOut led1(LED1); //server listning status
-DigitalOut led2(LED2); //socket connecting status
-
InterruptIn K_VU(D3); // Create the interrupt receiver object on pin 26
-InterruptIn K_NT(D4); // Create the interrupt receiver object on pin 26
-InterruptIn K_PS(D5); // Create the interrupt receiver object on pin 26
-InterruptIn K_BK(D6); // Create the interrupt receiver object on pin 26
InterruptIn K_VD(D7); // Create the interrupt receiver object on pin 26
VS1002 mp3(PB_3, PB_2, PB_1, PB_0,"sdc",D11, D12 ,D13, PC_12, PC_15, PC_14, PC_13); //Setup Audio decoder. Name is VS1002 even though VS1053 is used.
-TextLCD lcd1(D8, D9, D0, D1, D2, D15); //setup lcd
FTPClient myFTP("/sdc"); // mountname in MySeeedStudioTFTv2
-Ticker ledTick;
+//Ticker ledTick;
/* Global Variables to store Status*/
int new_song_number=1; //Variable to store the Song Number
@@ -51,93 +43,33 @@
bool mute=false; //Variable to store the status of mute button
int check=0; //Capacitative touch generates interrupt on both press and release. This variable tracks this and updates only on press.
-char *song_name[9]={"Good Day","Leong","Sponsor","I'm So Sexy","My Life","Oh My god","Wonderful bar","Whale Hunting","Love"}; //Array of song names entered manually
+//char *song_name[9]={"Good Day","Leong","Sponsor","I'm So Sexy","My Life","Oh My god","Wonderful bar","Whale Hunting","Love"}; //Array of song names entered manually
uint32_t ftp_time_1s = 0;
char myfilelist[MAX_SS] = {0,};
-void ledTickfunc()
+/*void ledTickfunc()
{
- led1 = !led1;
if(ftp_time_1s)
{
+ //printf("enter ftp_time_1s:%d\r\n", ftp_time_1s);
if(ftp_time_1s++ > _FTP_UPDATE_TIME_) ftp_time_1s = 0;
}
-}
-
-void Next_Song()
-{
- new_song_number+=1; // Next Song
- if(new_song_number==10)
- new_song_number=1;
-
- lcd1.cls();
- if(pause)
- lcd1.printf(" Paused ");
- else
- lcd1.printf(" Playing...");
-
- lcd1.printf("\n %d %s",new_song_number,song_name[new_song_number-1]);
-}
-
-void Preveious_Song()
-{
- new_song_number-=1; // Preveious Song
- if(new_song_number==0)
- new_song_number=9;
-
- lcd1.cls();
- if(pause)
- lcd1.printf(" Paused ");
- else
- lcd1.printf(" Playing...");
-
- lcd1.printf("\n %d %s",new_song_number,song_name[new_song_number-1]);
-}
-
-void Pause_Song()
-{
- pause=!pause; // Pause/Play button
-
- lcd1.cls();
- if(pause)
- lcd1.printf(" Paused ");
- else
- lcd1.printf(" Playing...");
-
- lcd1.printf("\n %d %s",new_song_number,song_name[new_song_number-1]);
-}
-
+}*/
void Volume_Up()
{
volume_set+=3; // Volume Up
if(volume_set>=0)
volume_set=0;
}
-
+
void Volume_Down()
{
volume_set-=3; //Volume Down
if(volume_set<-55)
volume_set=-55;
}
-/*
-void Volume_Mute()
-{
- mute=!mute; //Mute/Unmute
-
- if(mute)
- {
- previous_volume=volume_set; // Attenuation of -55 db is small enough to not hear anything
- volume_set=-55;
- }
- else
- {
- volume_set=previous_volume;
- }
-}*/
-
int main (void)
{
*(volatile uint32_t *)(0x41001014) = 0x0060100;
@@ -147,11 +79,21 @@
*(volatile uint32_t *)(0x41003080) = 0x10;
*(volatile uint32_t *)(0x41003098) = 0x10;
- char* tok = NULL;
+ unsigned int update_count_s=6;
+ unsigned int update_count_ms=0;
+ unsigned int ain_temp=0;
+ //char* my_text = "GIF2015";
+ /*char* tok = NULL;
char* lasts = NULL;
char filename[_MAX_FNAME_LEN_];
- FILE* fp;
+ FILE* fp;*/
+ init();
+ cls();
+ //OLED_DrawBMP(0,0,128,8,(unsigned char *)GIF2015);
+ //OLED_ShowStr(0,0,my_text,2);
+ OLED_DrawBMP(0,0,128,8,(unsigned char *)wiznet);
+ //LED_P23x32Str(0, 0, my_text);
// Serial Interface eth;
uart.baud(115200);
uart.printf("Initializing\r\n");
@@ -175,53 +117,41 @@
uart.printf("SD Card Root Directory Not Found\r\n");
}
- ledTick.attach(&ledTickfunc,1);
-
+ //ledTick.attach(&ledTickfunc,2);
+ /* UI Button setup */
+ K_VU.fall(&Volume_Up);
+ K_VU.mode(PullUp);
+ K_VD.fall(&Volume_Down);
+ K_VD.mode(PullUp);
+
while(1)
{
- if(ftp_time_1s == 0)
+ update_count_ms++;
+ if(update_count_ms>5000)
+ {
+ printf("update_count_ms count : %d\r\n", update_count_s);
+ update_count_ms=0;
+ update_count_s++;
+ }
+ //printf("ftp_time_1s:%d\r\n", ftp_time_1s);
+ //if(ftp_time_1s == 0)
+ if(update_count_s>=5)
{
//Configure the display driver
- ftp_time_1s = 1;
+ update_count_s = 0;
printf(" UPDATING MP3\r\n");
printf("==================\n\r\n");
- myFTP.open("192.168.77.209", 21, "user", "pass");
- if(myFTP.open("192.168.77.209", 21, "user", "pass"))
+ if(myFTP.open("192.168.0.10", 21, "user", "pass"))
{
printf("Connect Success to FTPServer\r\n");
printf("Connected to FTP Server\r\n");
-
- myFTP.ls(myfilelist);
-
- if(*myfilelist !=0)
- {
- tok = myfilelist;
- while(tok)
- {
- tok = strtok_r(tok,"\r\n",&lasts);
- if(tok != NULL)
- {
- printf("tok=%s\r\n",tok);
- if(strstr(tok,"mp3"))
- {
- sprintf(filename,"/sdc/%s",tok);
- fp = fopen(filename, "r");
- printf("fp=%d\r\n",fp);
- if(fp==NULL)
- {
- myFTP.getfile(tok);
- printf("Get File : %s\r\n",tok);
- printf("New file : %s\r\n",tok);
- }
- else fclose(fp);
- }
- tok = lasts;
- }
- }
- }
- else printf(" Empty FTP Server\r\n");
+
+ myFTP.getfile("1.mp3");
+ myFTP.getfile("2.mp3");
+ myFTP.getfile("3.mp3");
+
printf("\n UPDATE DONE\n\r\n");
myFTP.quit();
}
@@ -244,20 +174,12 @@
mp3.sci_write(0x03, 0x9800);
mp3.sdi_initialise();
- /* UI Button setup */
- K_VU.fall(&Volume_Up);
- K_VU.mode(PullUp);
- K_VD.fall(&Volume_Down);
- K_VD.mode(PullUp);
- K_NT.fall(&Next_Song);
- K_NT.mode(PullUp);
- K_BK.fall(&Preveious_Song);
- K_BK.mode(PullUp);
- K_PS.fall(&Pause_Song);
- K_PS.mode(PullUp);
+ ain_temp = ain.read_u16();
+ //printf("normalized: %d \n\r", ain_temp);
- while(1)
+ if (ain_temp>3000)
{
+ printf("enter song\r\n");
mp3.play_song(new_song_number);
}
}
