diff --git a/src/drivers/ps2/browser.c b/src/drivers/ps2/browser.c index c71e19c..105a474 100644 --- a/src/drivers/ps2/browser.c +++ b/src/drivers/ps2/browser.c @@ -40,16 +40,23 @@ int oldselect = -1; s8 selected = 0; u8 selected_dir = 0; extern int FONT_HEIGHT; +extern int FONT_WIDTH; char path[4096] = "path"; int needed_path[2] = { -1, -1 }; char mpartitions[4][256]; u16 history[20]; // 20 levels should be enough u8 h = 0; +int first_file_index; extern int Browser_Menu(); static inline char* strzncpy(char *d, const char *s, size_t l) { d[0] = 0; return strncat(d, s, l); } +int comp_entries_by_filename(const void *elem1, const void *elem2) +{ + return strcmp(((entries*)elem1)->filename, ((entries*)elem2)->filename); +} + char* browseup(char *path) { char *temp; @@ -253,7 +260,9 @@ int listdir(char *path, entries *FileEntry, int files_too) fioDclose(dd); printf("Directory closed!\n"); } + qsort(FileEntry, n, sizeof(entries), comp_entries_by_filename); if (files_too) { + first_file_index = n; dd = 0; dd = fioDopen(path); while (fioDread(dd, &buf) > 0) { @@ -269,6 +278,7 @@ int listdir(char *path, entries *FileEntry, int files_too) fioDclose(dd); printf("Directory closed!\n"); } + qsort(FileEntry + first_file_index, n - first_file_index, sizeof(entries), comp_entries_by_filename); } } @@ -333,7 +343,9 @@ int listpfs(char *path, entries *FileEntry, int files_too) fileXioDclose(dd); printf("Directory closed!\n"); } + qsort(FileEntry, n, sizeof(entries), comp_entries_by_filename); if (files_too) { + first_file_index = n; dd = 0; dd = fileXioDopen(path); while (fileXioDread(dd, &buf) > 0) { @@ -349,6 +361,7 @@ int listpfs(char *path, entries *FileEntry, int files_too) fileXioDclose(dd); printf("Directory closed!\n"); } + qsort(FileEntry + first_file_index, n - first_file_index, sizeof(entries), comp_entries_by_filename); } } } @@ -587,6 +600,7 @@ char* Browser(int files_too, int menu_id) // List files below if (strcmp(path, oldpath) != 0) { + first_file_index = 2048; if (!strncmp(path, "hdd0:/", 6)) { if (!strcmp(path, "hdd0:/")) { // hdd0: selected so list partitions n = listpartitions(FileEntry); @@ -625,7 +639,7 @@ char* Browser(int files_too, int menu_id) if (selection != oldselect) { gsKit_clear(gsGlobal, GS_SETREG_RGBAQ(0x00, 0x00, 0x00, 0x80, 0x00)); - browser_primitive("FCEUltra PS2 B0.93 [x.2.4]", "Browser", &BG_TEX, menu_x1, menu_y1, menu_x2, menu_y2); + browser_primitive("FCEUltra PS2 B0.93 [x.3.0]", "Browser", &BG_TEX, menu_x1, menu_y1, menu_x2, menu_y2); if (selection > max_item) { list_offset = text_line - (selection - max_item) * FONT_HEIGHT; @@ -640,11 +654,22 @@ char* Browser(int files_too, int menu_id) if (i*16+list_offset < text_line) { continue; } + + // Draw folder/file icons + if (i < first_file_index) { + drawChar(0x11C, menu_x1+10, i*16+list_offset, 4, GS_SETREG_RGBA(96, 96, 0, 0)); + drawChar(0x11C + 1, menu_x1+10 + FONT_WIDTH, i*16+list_offset, 4, GS_SETREG_RGBA(96, 96, 0, 0)); + } + else { + drawChar(0x120, menu_x1+10, i*16+list_offset, 4, GS_SETREG_RGBA(224, 224, 224, 0)); + drawChar(0x120 + 1, menu_x1+10 + FONT_WIDTH, i*16+list_offset, 4, GS_SETREG_RGBA(224, 224, 224, 0)); + } + if (i == selection) { - printXY(FileEntry[i].displayname, menu_x1+10, i*16+list_offset, 2, FCEUSkin.highlight, 1, 0); + printXY(FileEntry[i].displayname, menu_x1+10 + FONT_WIDTH*2, i*16+list_offset, 2, FCEUSkin.highlight, 1, 0); } else { - printXY(FileEntry[i].displayname, menu_x1+10, i*16+list_offset, 2, FCEUSkin.textcolor, 1, 0); + printXY(FileEntry[i].displayname, menu_x1+10 + FONT_WIDTH*2, i*16+list_offset, 2, FCEUSkin.textcolor, 1, 0); } } diff --git a/src/drivers/ps2/cnfsettings.c b/src/drivers/ps2/cnfsettings.c index 7bb7126..d27b901 100644 --- a/src/drivers/ps2/cnfsettings.c +++ b/src/drivers/ps2/cnfsettings.c @@ -635,6 +635,7 @@ void Default_Global_CNF() Settings.current_palette = 0; // 0 - Default strcpy(Settings.elfpath, "mc0:/BOOT/BOOT.ELF"); strcpy(Settings.savepath, "mc0:/FCEUMM/"); + FCEUI_SetBaseDirectory(Settings.savepath); strcpy(Settings.skinpath, "mc0:/FCEUMM/skin.cnf"); int player; diff --git a/src/drivers/ps2/font_uLE.c b/src/drivers/ps2/font_uLE.c index 9be5828..b189192 100644 --- a/src/drivers/ps2/font_uLE.c +++ b/src/drivers/ps2/font_uLE.c @@ -2,623 +2,643 @@ //File name: font_uLE.c //--------------------------------------------------------------------------- unsigned char font_uLE[] = { -//Font position 0x000 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x000 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x001 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x002 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x003 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x004 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x005 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x006 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x007 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, -//Font position 0x008 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x008 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x009 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x00A == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x00B == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x00C == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x00D == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x00E == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x00F == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, -//Font position 0x010 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x010 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x011 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x012 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x013 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x014 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x015 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x016 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x017 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, -//Font position 0x018 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x018 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x019 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x01A == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x01B == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x01C == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x01D == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x01E == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x01F == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, -//Font position 0x020 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x020 == ' ' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, //char 0x021 == '!' - 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, //char 0x022 == '"' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x66, 0x66, 0xFF, 0xFF, 0x66, 0x66, //char 0x023 == '#' - 0x66, 0x66, 0xFF, 0xFF, 0x66, 0x66, 0x00, 0x00, - 0x18, 0x18, 0x3E, 0x3E, 0x60, 0x60, 0x3C, 0x3C, //char 0x024 == '$' - 0x06, 0x06, 0x7C, 0x7C, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x6C, 0x6C, 0x18, 0x18, //char 0x025 == '%' - 0x30, 0x30, 0x66, 0x66, 0x46, 0x46, 0x00, 0x00, - 0x1C, 0x1C, 0x36, 0x36, 0x1C, 0x1C, 0x38, 0x38, //char 0x026 == '&' - 0x6F, 0x6F, 0x66, 0x66, 0x3B, 0x3B, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, //char 0x027 == ''' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -//Font position 0x028 - 0x00, 0x00, 0x0E, 0x0E, 0x1C, 0x1C, 0x18, 0x18, //char 0x028 == '(' - 0x18, 0x18, 0x1C, 0x1C, 0x0E, 0x0E, 0x00, 0x00, - 0x00, 0x00, 0x70, 0x70, 0x38, 0x38, 0x18, 0x18, //char 0x029 == ')' - 0x18, 0x18, 0x38, 0x38, 0x70, 0x70, 0x00, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x3C, 0x3C, 0xFF, 0xFF, //char 0x02A == '*' - 0x3C, 0x3C, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x7E, //char 0x02B == '+' - 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x02C == ',' - 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x30, 0x30, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, //char 0x02D == '-' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x02E == '.' - 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x06, 0x0C, 0x0C, 0x18, 0x18, //char 0x02F == '/' - 0x30, 0x30, 0x60, 0x60, 0x40, 0x40, 0x00, 0x00, -//Font position 0x030 - 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, 0x6E, 0x6E, //char 0x030 == '0' - 0x76, 0x76, 0x66, 0x66, 0x3C, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x18, 0x38, 0x38, 0x18, 0x18, //char 0x031 == '1' - 0x18, 0x18, 0x18, 0x18, 0x7E, 0x7E, 0x00, 0x00, - 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, 0x0C, 0x0C, //char 0x032 == '2' - 0x18, 0x18, 0x30, 0x30, 0x7E, 0x7E, 0x00, 0x00, - 0x00, 0x00, 0x7E, 0x7E, 0x0C, 0x0C, 0x18, 0x18, //char 0x033 == '3' - 0x0C, 0x0C, 0x66, 0x66, 0x3C, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x0C, 0x0C, 0x1C, 0x1C, 0x3C, 0x3C, //char 0x034 == '4' - 0x6C, 0x6C, 0x7E, 0x7E, 0x0C, 0x0C, 0x00, 0x00, - 0x00, 0x00, 0x7E, 0x7E, 0x60, 0x60, 0x7C, 0x7C, //char 0x035 == '5' - 0x06, 0x06, 0x66, 0x66, 0x3C, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x3C, 0x3C, 0x60, 0x60, 0x7C, 0x7C, //char 0x036 == '6' - 0x66, 0x66, 0x66, 0x66, 0x3C, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x7E, 0x7E, 0x06, 0x06, 0x0C, 0x0C, //char 0x037 == '7' - 0x18, 0x18, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, -//Font position 0x038 - 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, 0x3C, 0x3C, //char 0x038 == '8' - 0x66, 0x66, 0x66, 0x66, 0x3C, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, 0x3E, 0x3E, //char 0x039 == '9' - 0x06, 0x06, 0x0C, 0x0C, 0x38, 0x38, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, //char 0x03A == ':' - 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, //char 0x03B == ';' - 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x30, 0x30, - 0x06, 0x06, 0x0C, 0x0C, 0x18, 0x18, 0x30, 0x30, //char 0x03C == '<' - 0x18, 0x18, 0x0C, 0x0C, 0x06, 0x06, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x00, 0x00, //char 0x03D == '=' - 0x00, 0x00, 0x7E, 0x7E, 0x00, 0x00, 0x00, 0x00, - 0x60, 0x60, 0x30, 0x30, 0x18, 0x18, 0x0C, 0x0C, //char 0x03E == '>' - 0x18, 0x18, 0x30, 0x30, 0x60, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, 0x0C, 0x0C, //char 0x03F == '?' - 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, -//Font position 0x040 - 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, 0x6E, 0x6E, //char 0x040 == '@' - 0x6E, 0x6E, 0x60, 0x60, 0x3E, 0x3E, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x3C, 0x66, 0x66, 0x66, 0x66, //char 0x041 == 'A' - 0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, - 0x00, 0x00, 0x7C, 0x7C, 0x66, 0x66, 0x66, 0x7C, //char 0x042 == 'B' - 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x7C, 0x00, 0x00, - 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, 0x60, 0x60, //char 0x043 == 'C' - 0x60, 0x60, 0x66, 0x66, 0x3C, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x78, 0x78, 0x6C, 0x6C, 0x66, 0x66, //char 0x044 == 'D' - 0x66, 0x66, 0x6C, 0x6C, 0x78, 0x78, 0x00, 0x00, - 0x00, 0x00, 0x7E, 0x7E, 0x60, 0x60, 0x60, 0x7C, //char 0x045 == 'E' - 0x7C, 0x60, 0x60, 0x60, 0x7E, 0x7E, 0x00, 0x00, - 0x00, 0x00, 0x7E, 0x7E, 0x60, 0x60, 0x60, 0x7C, //char 0x046 == 'F' - 0x7C, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x3E, 0x3E, 0x60, 0x60, 0x60, 0x60, //char 0x047 == 'G' - 0x6E, 0x6E, 0x66, 0x66, 0x3E, 0x3E, 0x00, 0x00, -//Font position 0x048 - 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, //char 0x048 == 'H' - 0x7E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, - 0x00, 0x00, 0x7E, 0x7E, 0x18, 0x18, 0x18, 0x18, //char 0x049 == 'I' - 0x18, 0x18, 0x18, 0x18, 0x7E, 0x7E, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, //char 0x04A == 'J' - 0x06, 0x06, 0x66, 0x66, 0x3C, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x6C, 0x6C, 0x78, 0x78, //char 0x04B == 'K' - 0x78, 0x78, 0x6C, 0x6C, 0x66, 0x66, 0x00, 0x00, - 0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, //char 0x04C == 'L' - 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E, 0x00, 0x00, - 0x00, 0x00, 0x63, 0x63, 0x77, 0x77, 0x7F, 0x7F, //char 0x04D == 'M' - 0x6B, 0x6B, 0x63, 0x63, 0x63, 0x63, 0x00, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x76, 0x76, 0x7E, 0x7E, //char 0x04E == 'N' - 0x7E, 0x7E, 0x6E, 0x6E, 0x66, 0x66, 0x00, 0x00, - 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, 0x66, 0x66, //char 0x04F == 'O' - 0x66, 0x66, 0x66, 0x66, 0x3C, 0x3C, 0x00, 0x00, -//Font position 0x050 - 0x00, 0x00, 0x7C, 0x7C, 0x66, 0x66, 0x66, 0x7C, //char 0x050 == 'P' - 0x7C, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, 0x66, 0x66, //char 0x051 == 'Q' - 0x66, 0x66, 0x6C, 0x6C, 0x36, 0x36, 0x00, 0x00, - 0x00, 0x00, 0x7C, 0x7E, 0x66, 0x66, 0x66, 0x7E, //char 0x052 == 'R' - 0x7C, 0x78, 0x68, 0x6C, 0x66, 0x66, 0x00, 0x00, - 0x00, 0x00, 0x3C, 0x3E, 0x60, 0x60, 0x60, 0x3C, //char 0x053 == 'S' - 0x3C, 0x06, 0x06, 0x06, 0x7C, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x7E, 0x7E, 0x18, 0x18, 0x18, 0x18, //char 0x054 == 'T' - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, //char 0x055 == 'U' - 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, //char 0x056 == 'V' - 0x66, 0x66, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x63, 0x63, 0x63, 0x63, 0x6B, 0x6B, //char 0x057 == 'W' - 0x7F, 0x7F, 0x77, 0x77, 0x63, 0x63, 0x00, 0x00, -//Font position 0x058 - 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x3C, //char 0x058 == 'X' - 0x3C, 0x3C, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x3C, //char 0x059 == 'Y' - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x7E, 0x7E, 0x0C, 0x0C, 0x18, 0x18, //char 0x05A == 'Z' - 0x30, 0x30, 0x60, 0x60, 0x7E, 0x7E, 0x00, 0x00, - 0x00, 0x00, 0x1E, 0x1E, 0x18, 0x18, 0x18, 0x18, //char 0x05B == '[' - 0x18, 0x18, 0x18, 0x18, 0x1E, 0x1E, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x40, 0x60, 0x60, 0x30, 0x30, //char 0x05C == '\' - 0x18, 0x18, 0x0C, 0x0C, 0x06, 0x06, 0x00, 0x00, - 0x00, 0x00, 0x78, 0x78, 0x18, 0x18, 0x18, 0x18, //char 0x05D == ']' - 0x18, 0x18, 0x18, 0x18, 0x78, 0x78, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x08, 0x1C, 0x1C, 0x36, 0x36, //char 0x05E == '^' - 0x63, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x05F == '_' - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, -//Font position 0x060 - 0x00, 0x00, 0x30, 0x18, 0x0C, 0x00, 0x00, 0x00, //char 0x060 == '`' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3C, 0x3C, 0x06, 0x06, //char 0x061 == 'a' - 0x3E, 0x3E, 0x66, 0x66, 0x3E, 0x3E, 0x00, 0x00, - 0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0x7C, 0x7C, //char 0x062 == 'b' - 0x66, 0x66, 0x66, 0x66, 0x7C, 0x7C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3C, 0x3C, 0x60, 0x60, //char 0x063 == 'c' - 0x60, 0x60, 0x60, 0x60, 0x3C, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x3E, 0x3E, //char 0x064 == 'd' - 0x66, 0x66, 0x66, 0x66, 0x3E, 0x3E, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, //char 0x065 == 'e' - 0x7E, 0x7E, 0x60, 0x60, 0x3C, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x0E, 0x0E, 0x18, 0x18, 0x3E, 0x3E, //char 0x066 == 'f' - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3E, 0x3E, 0x66, 0x66, //char 0x067 == 'g' - 0x66, 0x66, 0x3E, 0x3E, 0x06, 0x06, 0x7C, 0x7C, -//Font position 0x068 - 0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0x7C, 0x7C, //char 0x068 == 'h' - 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x38, 0x38, //char 0x069 == 'i' - 0x18, 0x18, 0x18, 0x18, 0x3C, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x06, 0x06, //char 0x06A == 'j' - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x3C, 0x3C, - 0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0x6C, 0x6C, //char 0x06B == 'k' - 0x78, 0x78, 0x6C, 0x6C, 0x66, 0x66, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x38, 0x18, 0x18, 0x18, 0x18, //char 0x06C == 'l' - 0x18, 0x18, 0x18, 0x18, 0x3C, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x7F, 0x7F, //char 0x06D == 'm' - 0x7F, 0x7F, 0x6B, 0x6B, 0x63, 0x63, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7C, 0x66, 0x66, //char 0x06E == 'n' - 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, //char 0x06F == 'o' - 0x66, 0x66, 0x66, 0x66, 0x3C, 0x3C, 0x00, 0x00, -//Font position 0x070 - 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7C, 0x66, 0x66, //char 0x070 == 'p' - 0x66, 0x66, 0x7C, 0x7C, 0x60, 0x60, 0x60, 0x60, - 0x00, 0x00, 0x00, 0x00, 0x3E, 0x3E, 0x66, 0x66, //char 0x071 == 'q' - 0x66, 0x66, 0x3E, 0x3E, 0x06, 0x06, 0x06, 0x06, - 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7C, 0x66, 0x66, //char 0x072 == 'r' - 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3E, 0x3E, 0x60, 0x60, //char 0x073 == 's' - 0x3C, 0x3C, 0x06, 0x06, 0x7C, 0x7C, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x18, 0x7E, 0x7E, 0x18, 0x18, //char 0x074 == 't' - 0x18, 0x18, 0x18, 0x18, 0x0E, 0x0E, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, //char 0x075 == 'u' - 0x66, 0x66, 0x66, 0x66, 0x3E, 0x3E, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, //char 0x076 == 'v' - 0x66, 0x66, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x6B, 0x6B, //char 0x077 == 'w' - 0x7F, 0x7F, 0x3E, 0x3E, 0x36, 0x36, 0x00, 0x00, -//Font position 0x078 - 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x3C, 0x3C, //char 0x078 == 'x' - 0x18, 0x18, 0x3C, 0x3C, 0x66, 0x66, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, //char 0x079 == 'y' - 0x66, 0x66, 0x3E, 0x3E, 0x0C, 0x0C, 0x78, 0x78, - 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x0C, 0x0C, //char 0x07A == 'z' - 0x18, 0x18, 0x30, 0x30, 0x7E, 0x7E, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x0E, 0x18, 0x18, 0x18, 0x30, //char 0x07B == '{' - 0x30, 0x18, 0x18, 0x18, 0x0E, 0x06, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, //char 0x07C == '|' - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x60, 0x70, 0x18, 0x18, 0x18, 0x0C, //char 0x07D == '}' - 0x0C, 0x18, 0x18, 0x18, 0x70, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x70, 0x52, //char 0x07E == '~' - 0x4A, 0x0E, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, //char 0x07F == '' - 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xFF, 0xFF, -//Font position 0x080 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x080 == '€' - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x081 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x082 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x083 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x084 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x085 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x086 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x087 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, -//Font position 0x088 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x088 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x089 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x08A == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x08B == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x08C == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x08D == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x08E == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x08F == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, -//Font position 0x090 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x090 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x091 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x092 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x093 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x094 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x095 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x096 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x097 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, -//Font position 0x098 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x098 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x099 == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x09A == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x09B == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x09C == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x09D == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x09E == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x09F == '_' (free for use) - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, -//Font position 0x0A0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x0A0 == ' ' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, //char 0x0A1 == '¡' - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x06, 0x7F, 0x7F, 0xCC, 0xD8, //char 0x0A2 == '¢' - 0xD8, 0xF0, 0x7F, 0x7F, 0x60, 0xC0, 0x00, 0x00, - 0x00, 0x00, 0x3C, 0x7E, 0x66, 0x66, 0x60, 0xFC, //char 0x0A3 == '£' - 0xFC, 0x60, 0x60, 0x60, 0xFE, 0xFE, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xE7, 0xFF, 0x66, //char 0x0A4 == '¤' - 0x66, 0xFF, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xC3, 0xC3, 0x66, 0x66, 0x3C, 0xFF, //char 0x0A5 == '¥' - 0xFF, 0x18, 0xFF, 0xFF, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, //char 0x0A6 == '¦' - 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x3C, 0x7E, 0x66, 0x60, 0x3C, 0x66, //char 0x0A7 == '§' - 0x66, 0x3C, 0x06, 0x66, 0x7E, 0x3C, 0x00, 0x00, -//Font position 0x0A8 - 0x00, 0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0x00, //char 0x0A8 == '¨' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x7E, 0xFF, 0xC3, 0xDB, 0xDB, 0xD3, //char 0x0A9 == '©' - 0xD3, 0xDB, 0xDB, 0xC3, 0xFF, 0x7E, 0x00, 0x00, - 0x00, 0x00, 0x3E, 0x3E, 0x06, 0x3E, 0x36, 0x3E, //char 0x0AA == 'ª' - 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1B, 0x36, 0x6C, 0x6C, 0xD8, //char 0x0AB == '«' - 0xD8, 0x6C, 0x6C, 0x36, 0x1B, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x06, //char 0x0AC == '¬' - 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, //char 0x0AD == '­' - 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x7E, 0xFF, 0xC3, 0xDD, 0xD5, 0xDD, //char 0x0AE == '®' - 0xDD, 0xD5, 0xD5, 0xC3, 0xFF, 0x7E, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x0AF == '¯' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -//Font position 0x0B0 - 0x00, 0x00, 0x08, 0x1C, 0x36, 0x36, 0x1C, 0x08, //char 0x0B0 == '°' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x18, 0x18, 0x7E, 0x7E, 0x18, //char 0x0B1 == '±' - 0x18, 0x18, 0x00, 0x00, 0x7E, 0x7E, 0x00, 0x00, - 0x00, 0x00, 0x3E, 0x3E, 0x0E, 0x0C, 0x38, 0x3E, //char 0x0B2 == '²' - 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3E, 0x3E, 0x0E, 0x1C, 0x0C, 0x3E, //char 0x0B3 == '³' - 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0E, 0x1C, 0x38, 0x00, 0x00, 0x00, //char 0x0B4 == '´' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, //char 0x0B5 == 'µ' - 0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x3F, 0x3F, 0x7F, 0x7F, 0x3B, 0x3B, //char 0x0B6 == '¶' - 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, //char 0x0B7 == '·' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -//Font position 0x0B8 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x0B8 == '¸' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0C, 0x0C, 0x1C, 0x3C, 0x3C, 0x0C, //char 0x0B9 == '¹' - 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3C, 0x7E, 0x66, 0x66, 0x66, 0x7E, //char 0x0BA == 'º' - 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xD8, 0x6C, 0x36, 0x36, 0x1B, //char 0x0BB == '»' - 0x1B, 0x36, 0x36, 0x6C, 0xD8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x60, 0xE0, 0xE3, 0x66, 0x6C, 0x18, //char 0x0BC == '¼' - 0x18, 0x33, 0x67, 0xCF, 0x1F, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x60, 0xE0, 0xE3, 0x66, 0x6C, 0x18, //char 0x0BD == '½' - 0x18, 0x37, 0x6F, 0xC7, 0x18, 0x1F, 0x00, 0x00, - 0x00, 0x00, 0xE0, 0x60, 0xE3, 0x66, 0xEC, 0x18, //char 0x0BE == '¾' - 0x18, 0x33, 0x67, 0xCF, 0x1F, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x0C, 0x0C, //char 0x0BF == '¿' - 0x18, 0x30, 0x30, 0x36, 0x3E, 0x3E, 0x00, 0x00, -//Font position 0x0C0 - 0x30, 0x18, 0x0C, 0x18, 0x3C, 0x66, 0x66, 0x66, //char 0x0C0 == 'À' - 0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, - 0x0C, 0x18, 0x30, 0x18, 0x3C, 0x66, 0x66, 0x66, //char 0x0C1 == 'Á' - 0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, - 0x18, 0x3C, 0x66, 0x18, 0x3C, 0x66, 0x66, 0x66, //char 0x0C2 == 'Â' - 0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, - 0x36, 0x7E, 0x6C, 0x00, 0x18, 0x3C, 0x66, 0x66, //char 0x0C3 == 'Ã' - 0x66, 0x7E, 0x7E, 0x66, 0x66, 0x66, 0x00, 0x00, - 0x66, 0x66, 0x00, 0x18, 0x3C, 0x66, 0x66, 0x66, //char 0x0C4 == 'Ä' - 0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, - 0x3C, 0x3C, 0x00, 0x18, 0x3C, 0x66, 0x66, 0x66, //char 0x0C5 == 'Å' - 0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x37, 0x7F, 0xCC, 0xCC, 0xCC, //char 0x0C6 == 'Æ' - 0xFF, 0xFF, 0xCC, 0xCC, 0xCF, 0xCF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, 0x60, //char 0x0C7 == 'Ç' - 0x60, 0x66, 0x66, 0x3C, 0x3C, 0x08, 0x38, 0x38, -//Font position 0x0C8 - 0x30, 0x18, 0x0C, 0x00, 0x7E, 0x7E, 0x60, 0x60, //char 0x0C8 == 'È' - 0x7C, 0x7C, 0x60, 0x60, 0x7E, 0x7E, 0x00, 0x00, - 0x0C, 0x18, 0x30, 0x00, 0x7E, 0x7E, 0x60, 0x60, //char 0x0C9 == 'É' - 0x7C, 0x7C, 0x60, 0x60, 0x7E, 0x7E, 0x00, 0x00, - 0x18, 0x3C, 0x66, 0x00, 0x7E, 0x7E, 0x60, 0x60, //char 0x0CA == 'Ê' - 0x7C, 0x7C, 0x60, 0x60, 0x7E, 0x7E, 0x00, 0x00, - 0x66, 0x66, 0x00, 0x00, 0x7E, 0x7E, 0x60, 0x60, //char 0x0CB == 'Ë' - 0x7C, 0x7C, 0x60, 0x60, 0x7E, 0x7E, 0x00, 0x00, - 0x30, 0x18, 0x0C, 0x00, 0x18, 0x18, 0x18, 0x18, //char 0x0CC == 'Ì' - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, - 0x0C, 0x18, 0x30, 0x00, 0x18, 0x18, 0x18, 0x18, //char 0x0CD == 'Í' - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, - 0x18, 0x3C, 0x66, 0x00, 0x00, 0x18, 0x18, 0x18, //char 0x0CE == 'Î' - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, - 0x66, 0x66, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, //char 0x0CF == 'Ï' - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, -//Font position 0x0D0 - 0x00, 0x00, 0x78, 0x7C, 0x66, 0x66, 0x66, 0xF6, //char 0x0D0 == 'Ð' - 0xF6, 0x66, 0x66, 0x66, 0x7C, 0x78, 0x00, 0x00, - 0x36, 0x7E, 0x6C, 0x00, 0x66, 0x66, 0x76, 0x76, //char 0x0D1 == 'Ñ' - 0x7E, 0x7E, 0x6E, 0x6E, 0x66, 0x66, 0x00, 0x00, - 0x30, 0x18, 0x0C, 0x00, 0x3C, 0x7E, 0x66, 0x66, //char 0x0D2 == 'Ò' - 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, - 0x0C, 0x18, 0x30, 0x00, 0x3C, 0x7E, 0x66, 0x66, //char 0x0D3 == 'Ó' - 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, - 0x18, 0x3C, 0x66, 0x00, 0x3C, 0x7E, 0x66, 0x66, //char 0x0D4 == 'Ô' - 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, - 0x36, 0x7E, 0x6C, 0x00, 0x3C, 0x7E, 0x66, 0x66, //char 0x0D5 == 'Õ' - 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, - 0x66, 0x66, 0x00, 0x00, 0x3C, 0x7E, 0x66, 0x66, //char 0x0D6 == 'Ö' - 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x3C, 0x3C, //char 0x0D7 == '×' - 0x18, 0x18, 0x3C, 0x66, 0x66, 0x00, 0x00, 0x00, -//Font position 0x0D8 - 0x00, 0x03, 0x06, 0x3E, 0x7E, 0x6E, 0x6E, 0x7E, //char 0x0D8 == 'Ø' - 0x7E, 0x7E, 0x76, 0x76, 0x7E, 0xFC, 0xC0, 0x00, - 0x30, 0x18, 0x0C, 0x00, 0x66, 0x66, 0x66, 0x66, //char 0x0D9 == 'Ù' - 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, - 0x0C, 0x18, 0x30, 0x00, 0x66, 0x66, 0x66, 0x66, //char 0x0DA == 'Ú' - 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, - 0x18, 0x3C, 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, //char 0x0DB == 'Û' - 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, - 0x66, 0x66, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, //char 0x0DC == 'Ü' - 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, - 0x0E, 0x38, 0x00, 0x00, 0x66, 0x66, 0x66, 0x7E, //char 0x0DD == 'Ý' - 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x60, 0x60, 0x7C, 0x7E, 0x63, //char 0x0DE == 'Þ' - 0x63, 0x63, 0x7E, 0x7C, 0x60, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1C, 0x3E, 0x66, 0x66, 0x6E, //char 0x0DF == 'ß' - 0x6C, 0x6E, 0x63, 0x63, 0x6E, 0x6C, 0x00, 0x00, -//Font position 0x0E0 - 0x30, 0x18, 0x0C, 0x00, 0x3C, 0x3E, 0x06, 0x06, //char 0x0E0 == 'à' - 0x3E, 0x7E, 0x66, 0x66, 0x7E, 0x3E, 0x00, 0x00, - 0x0C, 0x18, 0x30, 0x00, 0x3C, 0x3E, 0x06, 0x06, //char 0x0E1 == 'á' - 0x3E, 0x7E, 0x66, 0x66, 0x7E, 0x3E, 0x00, 0x00, - 0x18, 0x3C, 0x66, 0x00, 0x3C, 0x3E, 0x06, 0x06, //char 0x0E2 == 'â' - 0x3E, 0x7E, 0x66, 0x66, 0x7E, 0x3E, 0x00, 0x00, - 0x36, 0x7E, 0x6C, 0x00, 0x3C, 0x3E, 0x06, 0x06, //char 0x0E3 == 'ã' - 0x3E, 0x7E, 0x66, 0x66, 0x7E, 0x3E, 0x00, 0x00, - 0x66, 0x66, 0x00, 0x00, 0x3C, 0x3E, 0x06, 0x06, //char 0x0E4 == 'ä' - 0x3E, 0x7E, 0x66, 0x66, 0x7E, 0x3E, 0x00, 0x00, - 0x3C, 0x3C, 0x00, 0x00, 0x3C, 0x3E, 0x06, 0x06, //char 0x0E5 == 'å' - 0x3E, 0x7E, 0x66, 0x66, 0x7E, 0x3E, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x76, 0xFF, 0x1B, 0x1B, //char 0x0E6 == 'æ' - 0x7F, 0xFF, 0xD8, 0xD8, 0xFF, 0x6E, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0x66, 0x60, //char 0x0E7 == 'ç' - 0x60, 0x60, 0x66, 0x7E, 0x3C, 0x18, 0x78, 0x78, -//Font position 0x0E8 - 0x30, 0x18, 0x0C, 0x00, 0x3C, 0x7E, 0x66, 0x66, //char 0x0E8 == 'è' - 0x7E, 0x7E, 0x60, 0x60, 0x7E, 0x3C, 0x00, 0x00, - 0x0C, 0x18, 0x30, 0x00, 0x3C, 0x7E, 0x66, 0x66, //char 0x0E9 == 'é' - 0x7E, 0x7E, 0x60, 0x60, 0x7E, 0x3C, 0x00, 0x00, - 0x18, 0x3C, 0x66, 0x00, 0x3C, 0x7E, 0x66, 0x66, //char 0x0EA == 'ê' - 0x7E, 0x7E, 0x60, 0x60, 0x7E, 0x3C, 0x00, 0x00, - 0x66, 0x66, 0x00, 0x00, 0x3C, 0x7E, 0x66, 0x66, //char 0x0EB == 'ë' - 0x7E, 0x7E, 0x60, 0x60, 0x7E, 0x3C, 0x00, 0x00, - 0x30, 0x18, 0x0C, 0x00, 0x00, 0x18, 0x18, 0x18, //char 0x0EC == 'ì' - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, - 0x0C, 0x18, 0x30, 0x00, 0x00, 0x18, 0x18, 0x18, //char 0x0ED == 'í' - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, - 0x18, 0x3C, 0x66, 0x00, 0x00, 0x18, 0x18, 0x18, //char 0x0EE == 'î' - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, - 0x66, 0x66, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, //char 0x0EF == 'ï' - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, -//Font position 0x0F0 - 0x64, 0x38, 0x58, 0x0C, 0x3C, 0x7E, 0x66, 0x66, //char 0x0F0 == 'ð' - 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, - 0x36, 0x7E, 0x6C, 0x00, 0x60, 0x7E, 0x7E, 0x66, //char 0x0F1 == 'ñ' - 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, - 0x30, 0x18, 0x0C, 0x00, 0x00, 0x3C, 0x7E, 0x66, //char 0x0F2 == 'ò' - 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, - 0x0C, 0x18, 0x30, 0x00, 0x00, 0x3C, 0x7E, 0x66, //char 0x0F3 == 'ó' - 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, - 0x18, 0x3C, 0x66, 0x00, 0x00, 0x3C, 0x7E, 0x66, //char 0x0F4 == 'ô' - 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, - 0x36, 0x7E, 0x6C, 0x00, 0x00, 0x3C, 0x7E, 0x66, //char 0x0F5 == 'õ' - 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, - 0x66, 0x66, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0x66, //char 0x0F6 == 'ö' - 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x7E, //char 0x0F7 == '÷' - 0x7E, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, -//Font position 0x0F8 - 0x00, 0x00, 0x03, 0x06, 0x3E, 0x7E, 0x6E, 0x6E, //char 0x0F8 == 'ø' - 0x7E, 0x7E, 0x76, 0x76, 0x7E, 0x7C, 0xC0, 0x00, - 0x30, 0x18, 0x0C, 0x00, 0x00, 0x66, 0x66, 0x66, //char 0x0F9 == 'ù' - 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, - 0x0C, 0x18, 0x30, 0x00, 0x00, 0x66, 0x66, 0x66, //char 0x0FA == 'ú' - 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, - 0x18, 0x3C, 0x66, 0x00, 0x00, 0x66, 0x66, 0x66, //char 0x0FB == 'û' - 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, - 0x66, 0x66, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, //char 0x0FC == 'ü' - 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, - 0x0C, 0x18, 0x30, 0x00, 0x66, 0x66, 0x66, 0x66, //char 0x0FD == 'ý' - 0x7E, 0x3C, 0x18, 0x18, 0x18, 0x70, 0x70, 0x00, - 0x00, 0x00, 0x60, 0x60, 0x6C, 0x7E, 0x7E, 0x66, //char 0x0FE == 'þ' - 0x66, 0x7E, 0x7E, 0x6C, 0x60, 0x60, 0x60, 0x00, - 0x00, 0x66, 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, //char 0x0FF == 'ÿ' - 0x7E, 0x3C, 0x18, 0x18, 0x18, 0x70, 0x70, 0x00, -//Font position 0x100 - 0x00, 0x00, 0x03, 0x03, 0x0C, 0x0C, 0x18, 0x18, //char 0x100 == special for uLE - 0x18, 0x18, 0x0C, 0x0C, 0x03, 0x03, 0x00, 0x00, //Left half of Circle == SJIS 0x819B) - 0x00, 0x00, 0xC0, 0xC0, 0x30, 0x30, 0x18, 0x18, //char 0x101 == special for uLE - 0x18, 0x18, 0x30, 0x30, 0xC0, 0xC0, 0x00, 0x00, //Right half of Circle - 0x00, 0x00, 0x18, 0x18, 0x0E, 0x0E, 0x03, 0x03, //char 0x102 == special for uLE - 0x03, 0x03, 0x0E, 0x0E, 0x18, 0x18, 0x00, 0x00, //Left half of Cross == SJIS 0x817E) - 0x00, 0x00, 0x18, 0x18, 0x70, 0x70, 0xC0, 0xC0, //char 0x103 == special for uLE - 0xC0, 0xC0, 0x70, 0x70, 0x18, 0x18, 0x00, 0x00, //Right half of Cross - 0x00, 0x00, 0x1F, 0x1F, 0x18, 0x18, 0x18, 0x18, //char 0x104 == special for uLE - 0x18, 0x18, 0x18, 0x18, 0x1F, 0x1F, 0x00, 0x00, //Left half of Square == SJIS 0x81A0) - 0x00, 0x00, 0xF8, 0xF8, 0x18, 0x18, 0x18, 0x18, //char 0x105 == special for uLE - 0x18, 0x18, 0x18, 0x18, 0xF8, 0xF8, 0x00, 0x00, //Right half of Square - 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x06, 0x06, //char 0x106 == special for uLE - 0x0C, 0x0C, 0x18, 0x18, 0x1F, 0x1F, 0x00, 0x00, //Left half of Triangle == SJIS 0x81A2) - 0x00, 0x00, 0x80, 0x80, 0xC0, 0xC0, 0x60, 0x60, //char 0x107 == special for uLE - 0x30, 0x30, 0x18, 0x18, 0xF8, 0xF8, 0x00, 0x00, //Right half of Triangle -//Font position 0x108 - 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, //char 0x108 == special for uLE - 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00, //Left half of filledSq == SJIS 0x81A1) - 0x00, 0x00, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, //char 0x109 == special for uLE - 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x00, 0x00, //Right half of filledSq -//Font position 0x10A - 0x08, 0x08, 0x18, 0x18, 0x38, 0x38, 0x78, 0x78, //char 0x10A == Triangle pointing left - 0x38, 0x38, 0x18, 0x18, 0x08, 0x08, 0x00, 0x00, //--this used to be 0x07E - 0x10, 0x10, 0x18, 0x18, 0x1C, 0x1C, 0x1E, 0x1E, //char 0x10B == Triangle pointing right - 0x1C, 0x1C, 0x18, 0x18, 0x10, 0x10, 0x00, 0x00, //--this used to be 0x07F - 0x00, 0x00, 0x18, 0x18, 0x3C, 0x3C, 0x7E, 0x7E, //char 0x10C == Arrow pointing up - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, //--this used to be 0x09C - 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, //char 0x10D == Arrow pointing down - 0x7E, 0x7E, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x00, //--this used to be 0x09D - 0x00, 0x00, 0x18, 0x18, 0x30, 0x30, 0x7E, 0x7E, //char 0x10E == Arrow pointing left - 0x30, 0x30, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, //--this used to be 0x09E - 0x00, 0x00, 0x18, 0x18, 0x0C, 0x0C, 0x7E, 0x7E, //char 0x10F == Arrow pointing right - 0x0C, 0x0C, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, //--this used to be 0x09F - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, //char 0x110 == Vertical bar - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, //--this used to be 0x07C - 0x00, 0x00, 0x7E, 0x7E, 0x78, 0x78, 0x7C, 0x7C, //char 0x111 == Arrow pointing up+left - 0x6E, 0x6E, 0x66, 0x66, 0x06, 0x06, 0x00, 0x00, //--this used to be 0x07D - 0x01, 0x01, 0x03, 0x03, 0x07, 0x07, 0x0F, 0x0F, //char 0x112 == diagonal split BR-filled - 0x1F, 0x1F, 0x3F, 0x3F, 0x7F, 0x7F, 0xFF, 0xFF, //--this used to be 0x088 - 0x80, 0x80, 0xC0, 0xC0, 0xE0, 0xE0, 0xF0, 0xF0, //char 0x113 == diagonal split BL-filled - 0xF8, 0xF8, 0xFC, 0xFC, 0xFE, 0xFE, 0xFF, 0xFF, //--this used to be 0x08A -//Font position 0x114 == Fat arrow Right - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x3F, 0x30, - 0x30, 0x30, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xB0, 0x98, 0x0C, - 0x06, 0x0C, 0x98, 0xB0, 0xE0, 0xC0, 0x80, 0x00, -//Font position 0x116 == Fat arrow Down - 0x00, 0x00, 0x07, 0x07, 0x06, 0x06, 0x06, 0x06, - 0x3E, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0xF0, 0x30, 0x30, 0x30, 0x30, - 0x3E, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x80, 0x00, -//Font position 0x118 == Fat arrow Left - 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0C, 0x18, - 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x80, 0x80, 0xFE, 0xFE, 0x06, - 0x06, 0x06, 0xFE, 0xFE, 0x80, 0x80, 0x80, 0x00, -//Font position 0x11A == Fat arrow Up - 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0C, 0x18, - 0x3E, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x00, - 0x00, 0x00, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x0C, - 0x3E, 0x30, 0x30, 0x30, 0x30, 0xF0, 0xF0, 0x00, -//--------------------------------------------------------------------------- -//dlanor: The old methods of accessing these special characters all relied -//on using some character that is invisible in Windows, which is a bad idea. -//so my new routines filter some escape sequences to achieve this, using the -//visible character 0xFF ('ÿ') as escape flag, and the characters "01234" -//to select which of the five special characters to expand. Thus we get: -//"ÿ0"=>Circle "ÿ1"=>Cross "ÿ2"=>Square "ÿ3"=>Triangle "ÿ4"=>FilledBox -//An extra benefit of this is that the method can be used regardless of -//the position in the character set used for these special characters -}; //ends font_uLE + //Font position 0x000 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x000 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x001 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x002 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x003 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x004 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x005 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x006 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x007 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + //Font position 0x008 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x008 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x009 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x00A == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x00B == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x00C == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x00D == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x00E == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x00F == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + //Font position 0x010 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x010 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x011 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x012 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x013 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x014 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x015 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x016 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x017 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + //Font position 0x018 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x018 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x019 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x01A == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x01B == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x01C == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x01D == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x01E == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x01F == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + //Font position 0x020 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x020 == ' ' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, //char 0x021 == '!' + 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, //char 0x022 == '"' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x66, 0xFF, 0xFF, 0x66, 0x66, //char 0x023 == '#' + 0x66, 0x66, 0xFF, 0xFF, 0x66, 0x66, 0x00, 0x00, + 0x18, 0x18, 0x3E, 0x3E, 0x60, 0x60, 0x3C, 0x3C, //char 0x024 == '$' + 0x06, 0x06, 0x7C, 0x7C, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x6C, 0x6C, 0x18, 0x18, //char 0x025 == '%' + 0x30, 0x30, 0x66, 0x66, 0x46, 0x46, 0x00, 0x00, + 0x1C, 0x1C, 0x36, 0x36, 0x1C, 0x1C, 0x38, 0x38, //char 0x026 == '&' + 0x6F, 0x6F, 0x66, 0x66, 0x3B, 0x3B, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, //char 0x027 == ''' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //Font position 0x028 + 0x00, 0x00, 0x0E, 0x0E, 0x1C, 0x1C, 0x18, 0x18, //char 0x028 == '(' + 0x18, 0x18, 0x1C, 0x1C, 0x0E, 0x0E, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x70, 0x38, 0x38, 0x18, 0x18, //char 0x029 == ')' + 0x18, 0x18, 0x38, 0x38, 0x70, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x3C, 0x3C, 0xFF, 0xFF, //char 0x02A == '*' + 0x3C, 0x3C, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x7E, //char 0x02B == '+' + 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x02C == ',' + 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x30, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, //char 0x02D == '-' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x02E == '.' + 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x06, 0x0C, 0x0C, 0x18, 0x18, //char 0x02F == '/' + 0x30, 0x30, 0x60, 0x60, 0x40, 0x40, 0x00, 0x00, + //Font position 0x030 + 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, 0x6E, 0x6E, //char 0x030 == '0' + 0x76, 0x76, 0x66, 0x66, 0x3C, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x38, 0x38, 0x18, 0x18, //char 0x031 == '1' + 0x18, 0x18, 0x18, 0x18, 0x7E, 0x7E, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, 0x0C, 0x0C, //char 0x032 == '2' + 0x18, 0x18, 0x30, 0x30, 0x7E, 0x7E, 0x00, 0x00, + 0x00, 0x00, 0x7E, 0x7E, 0x0C, 0x0C, 0x18, 0x18, //char 0x033 == '3' + 0x0C, 0x0C, 0x66, 0x66, 0x3C, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x0C, 0x0C, 0x1C, 0x1C, 0x3C, 0x3C, //char 0x034 == '4' + 0x6C, 0x6C, 0x7E, 0x7E, 0x0C, 0x0C, 0x00, 0x00, + 0x00, 0x00, 0x7E, 0x7E, 0x60, 0x60, 0x7C, 0x7C, //char 0x035 == '5' + 0x06, 0x06, 0x66, 0x66, 0x3C, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x3C, 0x60, 0x60, 0x7C, 0x7C, //char 0x036 == '6' + 0x66, 0x66, 0x66, 0x66, 0x3C, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x7E, 0x7E, 0x06, 0x06, 0x0C, 0x0C, //char 0x037 == '7' + 0x18, 0x18, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, + //Font position 0x038 + 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, 0x3C, 0x3C, //char 0x038 == '8' + 0x66, 0x66, 0x66, 0x66, 0x3C, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, 0x3E, 0x3E, //char 0x039 == '9' + 0x06, 0x06, 0x0C, 0x0C, 0x38, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, //char 0x03A == ':' + 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, //char 0x03B == ';' + 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x30, 0x30, + 0x06, 0x06, 0x0C, 0x0C, 0x18, 0x18, 0x30, 0x30, //char 0x03C == '<' + 0x18, 0x18, 0x0C, 0x0C, 0x06, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x00, 0x00, //char 0x03D == '=' + 0x00, 0x00, 0x7E, 0x7E, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x60, 0x30, 0x30, 0x18, 0x18, 0x0C, 0x0C, //char 0x03E == '>' + 0x18, 0x18, 0x30, 0x30, 0x60, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, 0x0C, 0x0C, //char 0x03F == '?' + 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, + //Font position 0x040 + 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, 0x6E, 0x6E, //char 0x040 == '@' + 0x6E, 0x6E, 0x60, 0x60, 0x3E, 0x3E, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x3C, 0x66, 0x66, 0x66, 0x66, //char 0x041 == 'A' + 0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, + 0x00, 0x00, 0x7C, 0x7C, 0x66, 0x66, 0x66, 0x7C, //char 0x042 == 'B' + 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x7C, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, 0x60, 0x60, //char 0x043 == 'C' + 0x60, 0x60, 0x66, 0x66, 0x3C, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x78, 0x78, 0x6C, 0x6C, 0x66, 0x66, //char 0x044 == 'D' + 0x66, 0x66, 0x6C, 0x6C, 0x78, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x7E, 0x7E, 0x60, 0x60, 0x60, 0x7C, //char 0x045 == 'E' + 0x7C, 0x60, 0x60, 0x60, 0x7E, 0x7E, 0x00, 0x00, + 0x00, 0x00, 0x7E, 0x7E, 0x60, 0x60, 0x60, 0x7C, //char 0x046 == 'F' + 0x7C, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x3E, 0x3E, 0x60, 0x60, 0x60, 0x60, //char 0x047 == 'G' + 0x6E, 0x6E, 0x66, 0x66, 0x3E, 0x3E, 0x00, 0x00, + //Font position 0x048 + 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, //char 0x048 == 'H' + 0x7E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, + 0x00, 0x00, 0x7E, 0x7E, 0x18, 0x18, 0x18, 0x18, //char 0x049 == 'I' + 0x18, 0x18, 0x18, 0x18, 0x7E, 0x7E, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, //char 0x04A == 'J' + 0x06, 0x06, 0x66, 0x66, 0x3C, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x6C, 0x6C, 0x78, 0x78, //char 0x04B == 'K' + 0x78, 0x78, 0x6C, 0x6C, 0x66, 0x66, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, //char 0x04C == 'L' + 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E, 0x00, 0x00, + 0x00, 0x00, 0x63, 0x63, 0x77, 0x77, 0x7F, 0x7F, //char 0x04D == 'M' + 0x6B, 0x6B, 0x63, 0x63, 0x63, 0x63, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x76, 0x76, 0x7E, 0x7E, //char 0x04E == 'N' + 0x7E, 0x7E, 0x6E, 0x6E, 0x66, 0x66, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, 0x66, 0x66, //char 0x04F == 'O' + 0x66, 0x66, 0x66, 0x66, 0x3C, 0x3C, 0x00, 0x00, + //Font position 0x050 + 0x00, 0x00, 0x7C, 0x7C, 0x66, 0x66, 0x66, 0x7C, //char 0x050 == 'P' + 0x7C, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, 0x66, 0x66, //char 0x051 == 'Q' + 0x66, 0x66, 0x6C, 0x6C, 0x36, 0x36, 0x00, 0x00, + 0x00, 0x00, 0x7C, 0x7E, 0x66, 0x66, 0x66, 0x7E, //char 0x052 == 'R' + 0x7C, 0x78, 0x68, 0x6C, 0x66, 0x66, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x3E, 0x60, 0x60, 0x60, 0x3C, //char 0x053 == 'S' + 0x3C, 0x06, 0x06, 0x06, 0x7C, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x7E, 0x7E, 0x18, 0x18, 0x18, 0x18, //char 0x054 == 'T' + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, //char 0x055 == 'U' + 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, //char 0x056 == 'V' + 0x66, 0x66, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x63, 0x63, 0x63, 0x63, 0x6B, 0x6B, //char 0x057 == 'W' + 0x7F, 0x7F, 0x77, 0x77, 0x63, 0x63, 0x00, 0x00, + //Font position 0x058 + 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x3C, //char 0x058 == 'X' + 0x3C, 0x3C, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x3C, //char 0x059 == 'Y' + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x7E, 0x7E, 0x0C, 0x0C, 0x18, 0x18, //char 0x05A == 'Z' + 0x30, 0x30, 0x60, 0x60, 0x7E, 0x7E, 0x00, 0x00, + 0x00, 0x00, 0x1E, 0x1E, 0x18, 0x18, 0x18, 0x18, //char 0x05B == '[' + 0x18, 0x18, 0x18, 0x18, 0x1E, 0x1E, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x40, 0x60, 0x60, 0x30, 0x30, //char 0x05C == '\' + 0x18, 0x18, 0x0C, 0x0C, 0x06, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x78, 0x78, 0x18, 0x18, 0x18, 0x18, //char 0x05D == ']' + 0x18, 0x18, 0x18, 0x18, 0x78, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x08, 0x1C, 0x1C, 0x36, 0x36, //char 0x05E == '^' + 0x63, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x05F == '_' + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + //Font position 0x060 + 0x00, 0x00, 0x30, 0x18, 0x0C, 0x00, 0x00, 0x00, //char 0x060 == '`' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3C, 0x3C, 0x06, 0x06, //char 0x061 == 'a' + 0x3E, 0x3E, 0x66, 0x66, 0x3E, 0x3E, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0x7C, 0x7C, //char 0x062 == 'b' + 0x66, 0x66, 0x66, 0x66, 0x7C, 0x7C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3C, 0x3C, 0x60, 0x60, //char 0x063 == 'c' + 0x60, 0x60, 0x60, 0x60, 0x3C, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x3E, 0x3E, //char 0x064 == 'd' + 0x66, 0x66, 0x66, 0x66, 0x3E, 0x3E, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, //char 0x065 == 'e' + 0x7E, 0x7E, 0x60, 0x60, 0x3C, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x0E, 0x0E, 0x18, 0x18, 0x3E, 0x3E, //char 0x066 == 'f' + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3E, 0x3E, 0x66, 0x66, //char 0x067 == 'g' + 0x66, 0x66, 0x3E, 0x3E, 0x06, 0x06, 0x7C, 0x7C, + //Font position 0x068 + 0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0x7C, 0x7C, //char 0x068 == 'h' + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x38, 0x38, //char 0x069 == 'i' + 0x18, 0x18, 0x18, 0x18, 0x3C, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x06, 0x06, //char 0x06A == 'j' + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x3C, 0x3C, + 0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0x6C, 0x6C, //char 0x06B == 'k' + 0x78, 0x78, 0x6C, 0x6C, 0x66, 0x66, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x38, 0x18, 0x18, 0x18, 0x18, //char 0x06C == 'l' + 0x18, 0x18, 0x18, 0x18, 0x3C, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x7F, 0x7F, //char 0x06D == 'm' + 0x7F, 0x7F, 0x6B, 0x6B, 0x63, 0x63, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7C, 0x66, 0x66, //char 0x06E == 'n' + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, //char 0x06F == 'o' + 0x66, 0x66, 0x66, 0x66, 0x3C, 0x3C, 0x00, 0x00, + //Font position 0x070 + 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7C, 0x66, 0x66, //char 0x070 == 'p' + 0x66, 0x66, 0x7C, 0x7C, 0x60, 0x60, 0x60, 0x60, + 0x00, 0x00, 0x00, 0x00, 0x3E, 0x3E, 0x66, 0x66, //char 0x071 == 'q' + 0x66, 0x66, 0x3E, 0x3E, 0x06, 0x06, 0x06, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7C, 0x66, 0x66, //char 0x072 == 'r' + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3E, 0x3E, 0x60, 0x60, //char 0x073 == 's' + 0x3C, 0x3C, 0x06, 0x06, 0x7C, 0x7C, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x7E, 0x7E, 0x18, 0x18, //char 0x074 == 't' + 0x18, 0x18, 0x18, 0x18, 0x0E, 0x0E, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, //char 0x075 == 'u' + 0x66, 0x66, 0x66, 0x66, 0x3E, 0x3E, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, //char 0x076 == 'v' + 0x66, 0x66, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x6B, 0x6B, //char 0x077 == 'w' + 0x7F, 0x7F, 0x3E, 0x3E, 0x36, 0x36, 0x00, 0x00, + //Font position 0x078 + 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x3C, 0x3C, //char 0x078 == 'x' + 0x18, 0x18, 0x3C, 0x3C, 0x66, 0x66, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, //char 0x079 == 'y' + 0x66, 0x66, 0x3E, 0x3E, 0x0C, 0x0C, 0x78, 0x78, + 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x0C, 0x0C, //char 0x07A == 'z' + 0x18, 0x18, 0x30, 0x30, 0x7E, 0x7E, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x0E, 0x18, 0x18, 0x18, 0x30, //char 0x07B == '{' + 0x30, 0x18, 0x18, 0x18, 0x0E, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, //char 0x07C == '|' + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x70, 0x18, 0x18, 0x18, 0x0C, //char 0x07D == '}' + 0x0C, 0x18, 0x18, 0x18, 0x70, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x70, 0x52, //char 0x07E == '~' + 0x4A, 0x0E, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, //char 0x07F == '' + 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xFF, 0xFF, + //Font position 0x080 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x080 == '�' + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x081 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x082 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x083 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x084 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x085 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x086 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x087 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + //Font position 0x088 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x088 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x089 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x08A == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x08B == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x08C == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x08D == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x08E == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x08F == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + //Font position 0x090 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x090 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x091 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x092 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x093 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x094 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x095 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x096 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x097 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + //Font position 0x098 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x098 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x099 == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x09A == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x09B == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x09C == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x09D == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x09E == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x09F == '_' (free for use) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + //Font position 0x0A0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x0A0 == '�' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, //char 0x0A1 == '�' + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x06, 0x7F, 0x7F, 0xCC, 0xD8, //char 0x0A2 == '�' + 0xD8, 0xF0, 0x7F, 0x7F, 0x60, 0xC0, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x7E, 0x66, 0x66, 0x60, 0xFC, //char 0x0A3 == '�' + 0xFC, 0x60, 0x60, 0x60, 0xFE, 0xFE, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xE7, 0xFF, 0x66, //char 0x0A4 == '�' + 0x66, 0xFF, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xC3, 0xC3, 0x66, 0x66, 0x3C, 0xFF, //char 0x0A5 == '�' + 0xFF, 0x18, 0xFF, 0xFF, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, //char 0x0A6 == '�' + 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x7E, 0x66, 0x60, 0x3C, 0x66, //char 0x0A7 == '�' + 0x66, 0x3C, 0x06, 0x66, 0x7E, 0x3C, 0x00, 0x00, + //Font position 0x0A8 + 0x00, 0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0x00, //char 0x0A8 == '�' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7E, 0xFF, 0xC3, 0xDB, 0xDB, 0xD3, //char 0x0A9 == '�' + 0xD3, 0xDB, 0xDB, 0xC3, 0xFF, 0x7E, 0x00, 0x00, + 0x00, 0x00, 0x3E, 0x3E, 0x06, 0x3E, 0x36, 0x3E, //char 0x0AA == '�' + 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1B, 0x36, 0x6C, 0x6C, 0xD8, //char 0x0AB == '�' + 0xD8, 0x6C, 0x6C, 0x36, 0x1B, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x06, //char 0x0AC == '�' + 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, //char 0x0AD == '�' + 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7E, 0xFF, 0xC3, 0xDD, 0xD5, 0xDD, //char 0x0AE == '�' + 0xDD, 0xD5, 0xD5, 0xC3, 0xFF, 0x7E, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x0AF == '�' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //Font position 0x0B0 + 0x00, 0x00, 0x08, 0x1C, 0x36, 0x36, 0x1C, 0x08, //char 0x0B0 == '�' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x18, 0x7E, 0x7E, 0x18, //char 0x0B1 == '�' + 0x18, 0x18, 0x00, 0x00, 0x7E, 0x7E, 0x00, 0x00, + 0x00, 0x00, 0x3E, 0x3E, 0x0E, 0x0C, 0x38, 0x3E, //char 0x0B2 == '�' + 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3E, 0x3E, 0x0E, 0x1C, 0x0C, 0x3E, //char 0x0B3 == '�' + 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0E, 0x1C, 0x38, 0x00, 0x00, 0x00, //char 0x0B4 == '�' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, //char 0x0B5 == '�' + 0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x3F, 0x3F, 0x7F, 0x7F, 0x3B, 0x3B, //char 0x0B6 == '�' + 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, //char 0x0B7 == '�' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + //Font position 0x0B8 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //char 0x0B8 == '�' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0C, 0x0C, 0x1C, 0x3C, 0x3C, 0x0C, //char 0x0B9 == '�' + 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x7E, 0x66, 0x66, 0x66, 0x7E, //char 0x0BA == '�' + 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xD8, 0x6C, 0x36, 0x36, 0x1B, //char 0x0BB == '�' + 0x1B, 0x36, 0x36, 0x6C, 0xD8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x60, 0xE0, 0xE3, 0x66, 0x6C, 0x18, //char 0x0BC == '�' + 0x18, 0x33, 0x67, 0xCF, 0x1F, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x60, 0xE0, 0xE3, 0x66, 0x6C, 0x18, //char 0x0BD == '�' + 0x18, 0x37, 0x6F, 0xC7, 0x18, 0x1F, 0x00, 0x00, + 0x00, 0x00, 0xE0, 0x60, 0xE3, 0x66, 0xEC, 0x18, //char 0x0BE == '�' + 0x18, 0x33, 0x67, 0xCF, 0x1F, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x0C, 0x0C, //char 0x0BF == '�' + 0x18, 0x30, 0x30, 0x36, 0x3E, 0x3E, 0x00, 0x00, + //Font position 0x0C0 + 0x30, 0x18, 0x0C, 0x18, 0x3C, 0x66, 0x66, 0x66, //char 0x0C0 == '�' + 0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, + 0x0C, 0x18, 0x30, 0x18, 0x3C, 0x66, 0x66, 0x66, //char 0x0C1 == '�' + 0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, + 0x18, 0x3C, 0x66, 0x18, 0x3C, 0x66, 0x66, 0x66, //char 0x0C2 == '�' + 0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, + 0x36, 0x7E, 0x6C, 0x00, 0x18, 0x3C, 0x66, 0x66, //char 0x0C3 == '�' + 0x66, 0x7E, 0x7E, 0x66, 0x66, 0x66, 0x00, 0x00, + 0x66, 0x66, 0x00, 0x18, 0x3C, 0x66, 0x66, 0x66, //char 0x0C4 == '�' + 0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, + 0x3C, 0x3C, 0x00, 0x18, 0x3C, 0x66, 0x66, 0x66, //char 0x0C5 == '�' + 0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x37, 0x7F, 0xCC, 0xCC, 0xCC, //char 0x0C6 == '�' + 0xFF, 0xFF, 0xCC, 0xCC, 0xCF, 0xCF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3C, 0x3C, 0x66, 0x66, 0x60, //char 0x0C7 == '�' + 0x60, 0x66, 0x66, 0x3C, 0x3C, 0x08, 0x38, 0x38, + //Font position 0x0C8 + 0x30, 0x18, 0x0C, 0x00, 0x7E, 0x7E, 0x60, 0x60, //char 0x0C8 == '�' + 0x7C, 0x7C, 0x60, 0x60, 0x7E, 0x7E, 0x00, 0x00, + 0x0C, 0x18, 0x30, 0x00, 0x7E, 0x7E, 0x60, 0x60, //char 0x0C9 == '�' + 0x7C, 0x7C, 0x60, 0x60, 0x7E, 0x7E, 0x00, 0x00, + 0x18, 0x3C, 0x66, 0x00, 0x7E, 0x7E, 0x60, 0x60, //char 0x0CA == '�' + 0x7C, 0x7C, 0x60, 0x60, 0x7E, 0x7E, 0x00, 0x00, + 0x66, 0x66, 0x00, 0x00, 0x7E, 0x7E, 0x60, 0x60, //char 0x0CB == '�' + 0x7C, 0x7C, 0x60, 0x60, 0x7E, 0x7E, 0x00, 0x00, + 0x30, 0x18, 0x0C, 0x00, 0x18, 0x18, 0x18, 0x18, //char 0x0CC == '�' + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, + 0x0C, 0x18, 0x30, 0x00, 0x18, 0x18, 0x18, 0x18, //char 0x0CD == '�' + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, + 0x18, 0x3C, 0x66, 0x00, 0x00, 0x18, 0x18, 0x18, //char 0x0CE == '�' + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, + 0x66, 0x66, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, //char 0x0CF == '�' + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, + //Font position 0x0D0 + 0x00, 0x00, 0x78, 0x7C, 0x66, 0x66, 0x66, 0xF6, //char 0x0D0 == '�' + 0xF6, 0x66, 0x66, 0x66, 0x7C, 0x78, 0x00, 0x00, + 0x36, 0x7E, 0x6C, 0x00, 0x66, 0x66, 0x76, 0x76, //char 0x0D1 == '�' + 0x7E, 0x7E, 0x6E, 0x6E, 0x66, 0x66, 0x00, 0x00, + 0x30, 0x18, 0x0C, 0x00, 0x3C, 0x7E, 0x66, 0x66, //char 0x0D2 == '�' + 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, + 0x0C, 0x18, 0x30, 0x00, 0x3C, 0x7E, 0x66, 0x66, //char 0x0D3 == '�' + 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, + 0x18, 0x3C, 0x66, 0x00, 0x3C, 0x7E, 0x66, 0x66, //char 0x0D4 == '�' + 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, + 0x36, 0x7E, 0x6C, 0x00, 0x3C, 0x7E, 0x66, 0x66, //char 0x0D5 == '�' + 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, + 0x66, 0x66, 0x00, 0x00, 0x3C, 0x7E, 0x66, 0x66, //char 0x0D6 == '�' + 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x3C, 0x3C, //char 0x0D7 == '�' + 0x18, 0x18, 0x3C, 0x66, 0x66, 0x00, 0x00, 0x00, + //Font position 0x0D8 + 0x00, 0x03, 0x06, 0x3E, 0x7E, 0x6E, 0x6E, 0x7E, //char 0x0D8 == '�' + 0x7E, 0x7E, 0x76, 0x76, 0x7E, 0xFC, 0xC0, 0x00, + 0x30, 0x18, 0x0C, 0x00, 0x66, 0x66, 0x66, 0x66, //char 0x0D9 == '�' + 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, + 0x0C, 0x18, 0x30, 0x00, 0x66, 0x66, 0x66, 0x66, //char 0x0DA == '�' + 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, + 0x18, 0x3C, 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, //char 0x0DB == '�' + 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, + 0x66, 0x66, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, //char 0x0DC == '�' + 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, + 0x0E, 0x38, 0x00, 0x00, 0x66, 0x66, 0x66, 0x7E, //char 0x0DD == '�' + 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x60, 0x60, 0x7C, 0x7E, 0x63, //char 0x0DE == '�' + 0x63, 0x63, 0x7E, 0x7C, 0x60, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1C, 0x3E, 0x66, 0x66, 0x6E, //char 0x0DF == '�' + 0x6C, 0x6E, 0x63, 0x63, 0x6E, 0x6C, 0x00, 0x00, + //Font position 0x0E0 + 0x30, 0x18, 0x0C, 0x00, 0x3C, 0x3E, 0x06, 0x06, //char 0x0E0 == '�' + 0x3E, 0x7E, 0x66, 0x66, 0x7E, 0x3E, 0x00, 0x00, + 0x0C, 0x18, 0x30, 0x00, 0x3C, 0x3E, 0x06, 0x06, //char 0x0E1 == '�' + 0x3E, 0x7E, 0x66, 0x66, 0x7E, 0x3E, 0x00, 0x00, + 0x18, 0x3C, 0x66, 0x00, 0x3C, 0x3E, 0x06, 0x06, //char 0x0E2 == '�' + 0x3E, 0x7E, 0x66, 0x66, 0x7E, 0x3E, 0x00, 0x00, + 0x36, 0x7E, 0x6C, 0x00, 0x3C, 0x3E, 0x06, 0x06, //char 0x0E3 == '�' + 0x3E, 0x7E, 0x66, 0x66, 0x7E, 0x3E, 0x00, 0x00, + 0x66, 0x66, 0x00, 0x00, 0x3C, 0x3E, 0x06, 0x06, //char 0x0E4 == '�' + 0x3E, 0x7E, 0x66, 0x66, 0x7E, 0x3E, 0x00, 0x00, + 0x3C, 0x3C, 0x00, 0x00, 0x3C, 0x3E, 0x06, 0x06, //char 0x0E5 == '�' + 0x3E, 0x7E, 0x66, 0x66, 0x7E, 0x3E, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x76, 0xFF, 0x1B, 0x1B, //char 0x0E6 == '�' + 0x7F, 0xFF, 0xD8, 0xD8, 0xFF, 0x6E, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0x66, 0x60, //char 0x0E7 == '�' + 0x60, 0x60, 0x66, 0x7E, 0x3C, 0x18, 0x78, 0x78, + //Font position 0x0E8 + 0x30, 0x18, 0x0C, 0x00, 0x3C, 0x7E, 0x66, 0x66, //char 0x0E8 == '�' + 0x7E, 0x7E, 0x60, 0x60, 0x7E, 0x3C, 0x00, 0x00, + 0x0C, 0x18, 0x30, 0x00, 0x3C, 0x7E, 0x66, 0x66, //char 0x0E9 == '�' + 0x7E, 0x7E, 0x60, 0x60, 0x7E, 0x3C, 0x00, 0x00, + 0x18, 0x3C, 0x66, 0x00, 0x3C, 0x7E, 0x66, 0x66, //char 0x0EA == '�' + 0x7E, 0x7E, 0x60, 0x60, 0x7E, 0x3C, 0x00, 0x00, + 0x66, 0x66, 0x00, 0x00, 0x3C, 0x7E, 0x66, 0x66, //char 0x0EB == '�' + 0x7E, 0x7E, 0x60, 0x60, 0x7E, 0x3C, 0x00, 0x00, + 0x30, 0x18, 0x0C, 0x00, 0x00, 0x18, 0x18, 0x18, //char 0x0EC == '�' + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, + 0x0C, 0x18, 0x30, 0x00, 0x00, 0x18, 0x18, 0x18, //char 0x0ED == '�' + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, + 0x18, 0x3C, 0x66, 0x00, 0x00, 0x18, 0x18, 0x18, //char 0x0EE == '�' + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, + 0x66, 0x66, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, //char 0x0EF == '�' + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, + //Font position 0x0F0 + 0x64, 0x38, 0x58, 0x0C, 0x3C, 0x7E, 0x66, 0x66, //char 0x0F0 == '�' + 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, + 0x36, 0x7E, 0x6C, 0x00, 0x60, 0x7E, 0x7E, 0x66, //char 0x0F1 == '�' + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, + 0x30, 0x18, 0x0C, 0x00, 0x00, 0x3C, 0x7E, 0x66, //char 0x0F2 == '�' + 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, + 0x0C, 0x18, 0x30, 0x00, 0x00, 0x3C, 0x7E, 0x66, //char 0x0F3 == '�' + 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, + 0x18, 0x3C, 0x66, 0x00, 0x00, 0x3C, 0x7E, 0x66, //char 0x0F4 == '�' + 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, + 0x36, 0x7E, 0x6C, 0x00, 0x00, 0x3C, 0x7E, 0x66, //char 0x0F5 == '�' + 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, + 0x66, 0x66, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0x66, //char 0x0F6 == '�' + 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x7E, //char 0x0F7 == '�' + 0x7E, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, + //Font position 0x0F8 + 0x00, 0x00, 0x03, 0x06, 0x3E, 0x7E, 0x6E, 0x6E, //char 0x0F8 == '�' + 0x7E, 0x7E, 0x76, 0x76, 0x7E, 0x7C, 0xC0, 0x00, + 0x30, 0x18, 0x0C, 0x00, 0x00, 0x66, 0x66, 0x66, //char 0x0F9 == '�' + 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, + 0x0C, 0x18, 0x30, 0x00, 0x00, 0x66, 0x66, 0x66, //char 0x0FA == '�' + 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, + 0x18, 0x3C, 0x66, 0x00, 0x00, 0x66, 0x66, 0x66, //char 0x0FB == '�' + 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, + 0x66, 0x66, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, //char 0x0FC == '�' + 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, + 0x0C, 0x18, 0x30, 0x00, 0x66, 0x66, 0x66, 0x66, //char 0x0FD == '�' + 0x7E, 0x3C, 0x18, 0x18, 0x18, 0x70, 0x70, 0x00, + 0x00, 0x00, 0x60, 0x60, 0x6C, 0x7E, 0x7E, 0x66, //char 0x0FE == '�' + 0x66, 0x7E, 0x7E, 0x6C, 0x60, 0x60, 0x60, 0x00, + 0x00, 0x66, 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, //char 0x0FF == '�' + 0x7E, 0x3C, 0x18, 0x18, 0x18, 0x70, 0x70, 0x00, + //Font position 0x100 + 0x00, 0x00, 0x03, 0x03, 0x0C, 0x0C, 0x18, 0x18, //char 0x100 == special for uLE + 0x18, 0x18, 0x0C, 0x0C, 0x03, 0x03, 0x00, 0x00, //Left half of Circle == SJIS 0x819B) + 0x00, 0x00, 0xC0, 0xC0, 0x30, 0x30, 0x18, 0x18, //char 0x101 == special for uLE + 0x18, 0x18, 0x30, 0x30, 0xC0, 0xC0, 0x00, 0x00, //Right half of Circle + 0x00, 0x00, 0x18, 0x18, 0x0E, 0x0E, 0x03, 0x03, //char 0x102 == special for uLE + 0x03, 0x03, 0x0E, 0x0E, 0x18, 0x18, 0x00, 0x00, //Left half of Cross == SJIS 0x817E) + 0x00, 0x00, 0x18, 0x18, 0x70, 0x70, 0xC0, 0xC0, //char 0x103 == special for uLE + 0xC0, 0xC0, 0x70, 0x70, 0x18, 0x18, 0x00, 0x00, //Right half of Cross + 0x00, 0x00, 0x1F, 0x1F, 0x18, 0x18, 0x18, 0x18, //char 0x104 == special for uLE + 0x18, 0x18, 0x18, 0x18, 0x1F, 0x1F, 0x00, 0x00, //Left half of Square == SJIS 0x81A0) + 0x00, 0x00, 0xF8, 0xF8, 0x18, 0x18, 0x18, 0x18, //char 0x105 == special for uLE + 0x18, 0x18, 0x18, 0x18, 0xF8, 0xF8, 0x00, 0x00, //Right half of Square + 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x06, 0x06, //char 0x106 == special for uLE + 0x0C, 0x0C, 0x18, 0x18, 0x1F, 0x1F, 0x00, 0x00, //Left half of Triangle == SJIS 0x81A2) + 0x00, 0x00, 0x80, 0x80, 0xC0, 0xC0, 0x60, 0x60, //char 0x107 == special for uLE + 0x30, 0x30, 0x18, 0x18, 0xF8, 0xF8, 0x00, 0x00, //Right half of Triangle + //Font position 0x108 + 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, //char 0x108 == special for uLE + 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00, //Left half of filledSq == SJIS 0x81A1) + 0x00, 0x00, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, //char 0x109 == special for uLE + 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x00, 0x00, //Right half of filledSq + //Font position 0x10A + 0x08, 0x08, 0x18, 0x18, 0x38, 0x38, 0x78, 0x78, //char 0x10A == Triangle pointing left + 0x38, 0x38, 0x18, 0x18, 0x08, 0x08, 0x00, 0x00, //--this used to be 0x07E + 0x10, 0x10, 0x18, 0x18, 0x1C, 0x1C, 0x1E, 0x1E, //char 0x10B == Triangle pointing right + 0x1C, 0x1C, 0x18, 0x18, 0x10, 0x10, 0x00, 0x00, //--this used to be 0x07F + 0x00, 0x00, 0x18, 0x18, 0x3C, 0x3C, 0x7E, 0x7E, //char 0x10C == Arrow pointing up + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, //--this used to be 0x09C + 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, //char 0x10D == Arrow pointing down + 0x7E, 0x7E, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x00, //--this used to be 0x09D + 0x00, 0x00, 0x18, 0x18, 0x30, 0x30, 0x7E, 0x7E, //char 0x10E == Arrow pointing left + 0x30, 0x30, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, //--this used to be 0x09E + 0x00, 0x00, 0x18, 0x18, 0x0C, 0x0C, 0x7E, 0x7E, //char 0x10F == Arrow pointing right + 0x0C, 0x0C, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, //--this used to be 0x09F + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, //char 0x110 == Vertical bar + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, //--this used to be 0x07C + 0x00, 0x00, 0x7E, 0x7E, 0x78, 0x78, 0x7C, 0x7C, //char 0x111 == Arrow pointing up+left + 0x6E, 0x6E, 0x66, 0x66, 0x06, 0x06, 0x00, 0x00, //--this used to be 0x07D + 0x01, 0x01, 0x03, 0x03, 0x07, 0x07, 0x0F, 0x0F, //char 0x112 == diagonal split BR-filled + 0x1F, 0x1F, 0x3F, 0x3F, 0x7F, 0x7F, 0xFF, 0xFF, //--this used to be 0x088 + 0x80, 0x80, 0xC0, 0xC0, 0xE0, 0xE0, 0xF0, 0xF0, //char 0x113 == diagonal split BL-filled + 0xF8, 0xF8, 0xFC, 0xFC, 0xFE, 0xFE, 0xFF, 0xFF, //--this used to be 0x08A + //Font position 0x114 == Fat arrow Right + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x3F, 0x30, + 0x30, 0x30, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xB0, 0x98, 0x0C, + 0x06, 0x0C, 0x98, 0xB0, 0xE0, 0xC0, 0x80, 0x00, + //Font position 0x116 == Fat arrow Down + 0x00, 0x00, 0x07, 0x07, 0x06, 0x06, 0x06, 0x06, + 0x3E, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xF0, 0xF0, 0x30, 0x30, 0x30, 0x30, + 0x3E, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x80, 0x00, + //Font position 0x118 == Fat arrow Left + 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0C, 0x18, + 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x80, 0x80, 0xFE, 0xFE, 0x06, + 0x06, 0x06, 0xFE, 0xFE, 0x80, 0x80, 0x80, 0x00, + //Font position 0x11A == Fat arrow Up + 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0C, 0x18, + 0x3E, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x00, + 0x00, 0x00, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x0C, + 0x3E, 0x30, 0x30, 0x30, 0x30, 0xF0, 0xF0, 0x00, + //Font position 0x11C == Folder icon unselected + 0x00, 0x3C, 0x7E, 0x7F, 0x7F, 0x3F, 0x3F, 0x3F, + 0x3F, 0x3F, 0x3F, 0x1F, 0x0F, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xF0, 0xF8, 0xFC, 0xFC, 0xFC, + 0xFC, 0xFC, 0xFC, 0xF8, 0xF0, 0x00, 0x00, 0x00, + //Font position 0x11E == Folder icon selected + 0x00, 0x3C, 0x7E, 0x7F, 0x7F, 0x3E, 0x3C, 0x38, + 0x38, 0x3C, 0x3E, 0x1F, 0x0F, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xF0, 0xF8, 0x7C, 0x3C, 0x1C, + 0x1C, 0x3C, 0x7C, 0xF8, 0xF0, 0x00, 0x00, 0x00, + //Font position 0x120 == File icon unselected + 0x00, 0x00, 0x03, 0x07, 0x0F, 0x1F, 0x1F, 0x1F, + 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00, + 0x00, 0x00, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, + 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x00, 0x00, + //Font position 0x122 == File icon selected + 0x00, 0x00, 0x03, 0x07, 0x0F, 0x1E, 0x1C, 0x18, + 0x18, 0x1C, 0x1E, 0x1F, 0x1F, 0x1F, 0x00, 0x00, + 0x00, 0x00, 0xF8, 0xF8, 0xF8, 0x78, 0x38, 0x18, + 0x18, 0x38, 0x78, 0xF8, 0xF8, 0xF8, 0x00, 0x00, + //--------------------------------------------------------------------------- + //dlanor: The old methods of accessing these special characters all relied + //on using some character that is invisible in Windows, which is a bad idea. + //so my new routines filter some escape sequences to achieve this, using the + //visible character 0xFF ('�') as escape flag, and the characters "01234" + //to select which of the five special characters to expand. Thus we get: + //"�0"=>Circle "�1"=>Cross "�2"=>Square "�3"=>Triangle "�4"=>FilledBox + //An extra benefit of this is that the method can be used regardless of + //the position in the character set used for these special characters +}; //ends font_uLE //--------------------------------------------------------------------------- //End of file: font_uLE.c //--------------------------------------------------------------------------- diff --git a/src/drivers/ps2/init.c b/src/drivers/ps2/init.c index d92e8bd..1f12d24 100644 --- a/src/drivers/ps2/init.c +++ b/src/drivers/ps2/init.c @@ -29,7 +29,7 @@ extern vars Settings; int defaultx; int defaulty; -//input +// Input #define NEW_PADMAN #include #include @@ -44,7 +44,7 @@ extern unsigned int size_freemtap_irx; extern unsigned char freepad_irx; extern unsigned int size_freepad_irx; -//video +// Video GSGLOBAL *gsGlobal; extern unsigned char poweroff_irx; @@ -82,17 +82,17 @@ void SetupGSKit() /* detect and set screentype */ //gsGlobal = gsKit_init_global(GS_MODE_PAL); //gsGlobal = gsKit_init_global_custom(GS_RENDER_QUEUE_OS_POOLSIZE+GS_RENDER_QUEUE_OS_POOLSIZE/2, GS_RENDER_QUEUE_PER_POOLSIZE+GS_RENDER_QUEUE_PER_POOLSIZE/2); - if(gsGlobal!=NULL) gsKit_deinit_global(gsGlobal); - gsGlobal=gsKit_init_global(); + if (gsGlobal != NULL) gsKit_deinit_global(gsGlobal); + gsGlobal = gsKit_init_global(); - //gsGlobal->Height = 512;//no need for it + //gsGlobal->Height = 512; // No need for it defaultx = gsGlobal->StartX; defaulty = gsGlobal->StartY; /* initialize dmaKit */ - //dmaKit_init(D_CTRL_RELE_OFF,D_CTRL_MFD_OFF, D_CTRL_STS_UNSPEC, D_CTRL_STD_OFF, D_CTRL_RCYC_8); - dmaKit_init(D_CTRL_RELE_OFF,D_CTRL_MFD_OFF, D_CTRL_STS_UNSPEC, D_CTRL_STD_OFF, D_CTRL_RCYC_8, 1 << DMA_CHANNEL_GIF); + //dmaKit_init(D_CTRL_RELE_OFF, D_CTRL_MFD_OFF, D_CTRL_STS_UNSPEC, D_CTRL_STD_OFF, D_CTRL_RCYC_8); + dmaKit_init(D_CTRL_RELE_OFF, D_CTRL_MFD_OFF, D_CTRL_STS_UNSPEC, D_CTRL_STD_OFF, D_CTRL_RCYC_8, 1 << DMA_CHANNEL_GIF); dmaKit_chan_init(DMA_CHANNEL_GIF); dmaKit_chan_init(DMA_CHANNEL_FROMSPR); @@ -101,9 +101,9 @@ void SetupGSKit() gsGlobal->DoubleBuffering = GS_SETTING_OFF; gsGlobal->ZBuffering = GS_SETTING_OFF; - //640x448, ntsc, tv - //640x512, pal, tv - //gsGlobal->Width = 640;//no need for it + // 640x448, ntsc, tv + // 640x512, pal, tv + //gsGlobal->Width = 640; // No need for it } @@ -114,9 +114,9 @@ void InitPS2() static char pfsarg[] = "-m" "\0" "4" "\0" "-o" "\0" "10" "\0" "-n" "\0" "40"; SifInitRpc(0); - //Reset IOP borrowed from uLaunchelf - while(!SifIopReset(NULL, 0)){}; - while(!SifIopSync()){}; + // Reset IOP borrowed from uLaunchelf + while (!SifIopReset(NULL, 0)){}; + while (!SifIopSync()){}; SifInitRpc(0); sbv_patch_enable_lmb(); @@ -145,16 +145,16 @@ void InitPS2() SifExecModuleBuffer(&SMSUTILS_irx, size_SMSUTILS_irx, 0, NULL, NULL); SifExecModuleBuffer(&usbd_irx, size_usbd_irx, 0, NULL, NULL); SifExecModuleBuffer(&usbhdfsd_irx, size_usbhdfsd_irx, 0, NULL, NULL); - for (i = 0; i < 3; i++) { //taken from ulaunchelf + for (i = 0; i < 3; i++) { // Taken from ulaunchelf sometime = 0x01000000; - while(sometime--) asm("nop\nnop\nnop\nnop"); + while (sometime--) asm("nop\nnop\nnop\nnop"); } SifExecModuleBuffer(&poweroff_irx, size_poweroff_irx, 0, NULL, NULL); SifExecModuleBuffer(&ps2dev9_irx, size_ps2dev9_irx, 0, NULL, NULL); SifExecModuleBuffer(&ps2atad_irx, size_ps2atad_irx, 0, NULL, NULL); - SifExecModuleBuffer(&ps2hdd_irx, size_ps2hdd_irx,sizeof(hddarg), hddarg, NULL); - SifExecModuleBuffer(&ps2fs_irx, size_ps2fs_irx,sizeof(pfsarg), pfsarg, NULL); + SifExecModuleBuffer(&ps2hdd_irx, size_ps2hdd_irx, sizeof(hddarg), hddarg, NULL); + SifExecModuleBuffer(&ps2fs_irx, size_ps2fs_irx, sizeof(pfsarg), pfsarg, NULL); mcInit(MC_TYPE_XMC); @@ -193,8 +193,8 @@ void normalize_screen() void init_custom_screen() { - //init real non-interlaced mode - if(Settings.display) { + // Init real non-interlaced mode + if (Settings.display) { gsGlobal->Mode = GS_MODE_PAL; gsGlobal->Height = 512; defaulty = 72; @@ -210,15 +210,15 @@ void init_custom_screen() gsGlobal->StartX = defaultx + Settings.offset_x; gsGlobal->StartY = defaulty + Settings.offset_y; - if(!Settings.interlace) { + if (!Settings.interlace) { gsGlobal->Interlace = GS_NONINTERLACED; - gsGlobal->Height = gsGlobal->Height /2; - gsGlobal->StartY = gsGlobal->StartY/2 + 1; + gsGlobal->Height = gsGlobal->Height / 2; + gsGlobal->StartY = gsGlobal->StartY / 2 + 1; } //else if (gsGlobal->Mode == GS_MODE_NTSC) //gsGlobal->StartY = gsGlobal->StartY + 22; -// SetGsCrt(gsGlobal->Interlace,gsGlobal->Mode,gsGlobal->Field); +// SetGsCrt(gsGlobal->Interlace, gsGlobal->Mode, gsGlobal->Field); gsKit_init_screen(gsGlobal); /* Apply settings. */ gsKit_mode_switch(gsGlobal, GS_ONESHOT); @@ -231,7 +231,7 @@ void DrawScreen(GSGLOBAL *gsGlobal) int i; i = 0x10000; - while(i--) asm("nop\nnop\nnop\nnop"); + while (i--) asm("nop\nnop\nnop\nnop"); gsKit_sync_flip(gsGlobal); diff --git a/src/drivers/ps2/main.c b/src/drivers/ps2/main.c index bf1372d..3d33f5b 100644 --- a/src/drivers/ps2/main.c +++ b/src/drivers/ps2/main.c @@ -14,6 +14,7 @@ extern skin FCEUSkin; extern u8 partitions[2]; char mpartitions[4][256]; int FONT_HEIGHT = 16; +int FONT_WIDTH = 8; /************************************/ /* FCEUltra Variables */ /************************************/ diff --git a/src/drivers/ps2/menu.c b/src/drivers/ps2/menu.c index ce86de1..1fb81c6 100644 --- a/src/drivers/ps2/menu.c +++ b/src/drivers/ps2/menu.c @@ -241,10 +241,10 @@ int Browser_Menu() oldselect = -1; int option_changed = 0; - int menu_x1 = gsGlobal->Width*0.25; - int menu_y1 = gsGlobal->Height*0.15; - int menu_x2 = gsGlobal->Width*0.75; - int menu_y2 = gsGlobal->Height*0.85 + FONT_HEIGHT; + int menu_x1 = gsGlobal->Width * 0.25; + int menu_y1 = gsGlobal->Height * 0.15; + int menu_x2 = gsGlobal->Width * 0.75; + int menu_y2 = gsGlobal->Height * 0.85 + FONT_HEIGHT; int text_line = menu_y1 + 4; char options[12][32] = { @@ -515,6 +515,8 @@ extern void SetupNESClut(); extern void SND_SetNextSampleRate(); extern int SND_GetCurrSampleRate(); +void Ingame_Menu_Controls(); + void Ingame_Menu() { int i, selection = 0; @@ -522,10 +524,10 @@ void Ingame_Menu() int option_changed = 0; - int menu_x1 = gsGlobal->Width*0.25; - int menu_y1 = gsGlobal->Height*0.15; - int menu_x2 = gsGlobal->Width*0.75; - int menu_y2 = gsGlobal->Height*0.85 + FONT_HEIGHT; + int menu_x1 = gsGlobal->Width * 0.25; + int menu_y1 = gsGlobal->Height * 0.15; + int menu_x2 = gsGlobal->Width * 0.75; + int menu_y2 = gsGlobal->Height * 0.85 + FONT_HEIGHT; int text_line = menu_y1 + 4; @@ -537,7 +539,7 @@ void Ingame_Menu() { "Aspect Ratio: "}, { "Sound: " }, { "4-Players Adaptor: " }, - { "---" }, + { "Configure Input >" }, { "---" }, { "Reset Game" }, { "Exit Game" }, @@ -554,10 +556,10 @@ void Ingame_Menu() sprintf(options_state[i], "%d", statenum); break; case 3: - if (!Settings.filter) - strcpy(options_state[i], "Off"); - else + if (Settings.filter) strcpy(options_state[i], "On"); + else + strcpy(options_state[i], "Off"); break; case 4: if (Settings.aspect_ratio == 0) @@ -572,10 +574,10 @@ void Ingame_Menu() sprintf(options_state[i], "%dHz", SND_GetCurrSampleRate()); break; case 6: - if (!Settings.input_4p_adaptor) - strcpy(options_state[i], "Off"); - else + if (Settings.input_4p_adaptor) strcpy(options_state[i], "On"); + else + strcpy(options_state[i], "Off"); break; case 7: break; @@ -696,6 +698,7 @@ void Ingame_Menu() option_changed = 1; break; case 7: + Ingame_Menu_Controls(); break; case 8: break; @@ -726,3 +729,211 @@ void Ingame_Menu() } } } + +int menu_input_controls(int port, int is_changing_button, u32 *new_button) +{ + int ret[2]; + u32 paddata[2]; + u32 new_pad[2]; + u16 slot = 0; + + int change = 0; + + // Check to see if pads are disconnected + ret[port] = padGetState(0, slot); + if ((ret[port] != PAD_STATE_STABLE) && (ret[port] != PAD_STATE_FINDCTP1)) { + if (ret[port] == PAD_STATE_DISCONN) { + printf("Pad(%d, %d) is disconnected\n", 0, slot); + } + ret[port] = padGetState(0, slot); + } + ret[port] = padRead(0, slot, &buttons[port]); // port, slot, buttons + if (ret[port] != 0) { + paddata[port]= 0xffff ^ buttons[port].btns; + new_pad[port] = paddata[port] & ~old_pad[port]; // Buttons pressed AND NOT buttons previously pressed + old_pad[port] = paddata[port]; + + if (new_pad[port]) { + if (is_changing_button) { + *new_button = new_pad[port]; + selected = 1; + } + else { + if (new_pad[port] & PAD_DOWN) { + change = 1; + } + if (new_pad[port] & PAD_UP) { + change = -1; + } + if (new_pad[port] & PAD_CIRCLE) { + selected = 1; + } + if ((new_pad[port] == Settings.PlayerInput[port][0] + || new_pad[port] == PAD_TRIANGLE)) { + selected = 2; + } + } + } + } + return change; +} + +void padbuttonToStr(u16 button, char button_name[9]) +{ + if (button == 0) { + strcpy(button_name, "---"); + return; + } + int i; + for (i = 0; i < 16; i++) { + if (button & (1 << i)) { + break; + } + } + char *buttons[16] = { + "Select", "L3" , "R3" , "Start", + "Up \xFF""=", + "Right \xFF"":", + "Down \xFF"";", + "Left \xFF""<" , + "L2" , "R2" , "L1" , "R1" , + "Triangle \xFF""3", + "Circle \xFF""0", + "Cross \xFF""1", + "Square \xFF""2" + }; + strcpy(button_name, buttons[i]); +} + +#define CONTROLS_N 12 +#define CONTROLS_OFFSET 2 + +void Ingame_Menu_Controls() +{ + int i, b, selection = 0; + oldselect = -1; + + int option_changed = 0; + + int menu_x1 = gsGlobal->Width * 0.25; + int menu_y1 = gsGlobal->Height * 0.15; + int menu_x2 = gsGlobal->Width * 0.75; + int menu_y2 = gsGlobal->Height * 0.85 + FONT_HEIGHT; + + int text_line = menu_y1 + 4; + + char options[CONTROLS_N][32] = { + { "< Back" }, + { "Player: "}, + { "Joy A | " }, + { "Joy B | " }, + { "Joy Select | " }, + { "Joy Start | " }, + { "Joy Up | " }, + { "Joy Down | " }, + { "Joy Left | " }, + { "Joy Right | " }, + { "Joy Turbo A | " }, + { "Joy Turbo B | " } + }; + + char options_state[CONTROLS_N][16] = { { 0 } }; + + int player = 0; + int is_changing_button = 0; + u32 new_button = 0; + + strcpy(options_state[1], "1"); + for (i = 0; i < 10; i++) { + padbuttonToStr(Settings.PlayerInput[player][i + 5], options_state[i + CONTROLS_OFFSET]); + } + + while (1) { + selected = 0; // Clear selected flag + selection += menu_input_controls(0, is_changing_button, &new_button); + + if (selection >= CONTROLS_N) { selection = 0; } + if (selection < 0) { selection = CONTROLS_N - 1; } + + if (oldselect != selection || option_changed) { + i = 0x10000; + while (i--) asm("nop\nnop\nnop\nnop"); + gsKit_queue_reset(gsGlobal->Os_Queue); + + option_changed = 0; + + menu_primitive("Controls", &MENU_TEX, menu_x1, menu_y1, menu_x2, menu_y2); + + for (i = 0; i < CONTROLS_N; i++) { + char buffer[32+16]; + strcpy(buffer, options[i]); + strcat(buffer, options_state[i]); + if (selection == i) { + //font_print(gsGlobal, menu_x1+10.0f, text_line + i*FONT_HEIGHT, 2, DarkYellowFont, options[i]); + printXY(buffer, menu_x1+10, text_line + i*FONT_HEIGHT, 4, FCEUSkin.highlight, 1, 0); + } + else { + //font_print(gsGlobal, menu_x1+10.0f, text_line + i*FONT_HEIGHT, 2, WhiteFont, options[i]); + printXY(buffer, menu_x1+10, text_line + i*FONT_HEIGHT, 4, FCEUSkin.textcolor, 1, 0); + } + } + + DrawScreen(gsGlobal); + } + + oldselect = selection; + + if (selected) { + if (selected == 2) { // Menu combo pressed again + return; + } + i = selection; + + if (i == 0) { + return; + } + else if (i == 1) { + player++; + if (player >= 4) { + player = 0; + } + sprintf(options_state[i], "%d", player + 1); + for (b = 0; b < 10; b++) { + padbuttonToStr(Settings.PlayerInput[player][b + 5], options_state[b + CONTROLS_OFFSET]); + } + option_changed = 1; + } + else { + if (!is_changing_button) { + strcpy(options_state[i], ""); + } + else { + i -= CONTROLS_OFFSET; + + // Skip special buttons + int is_safe = 1; + for (b = 0; b < 5 && player == 0; b++) { + if (Settings.PlayerInput[0][b] == (u16)new_button) { + is_safe = 0; + break; + } + } + if (is_safe) { + Settings.PlayerInput[player][i + 5] = (u16)new_button; + // Resolve conflict + for (b = 0; b < 10; b++) { + if (b != i && Settings.PlayerInput[player][i + 5] == Settings.PlayerInput[player][b + 5]) { + Settings.PlayerInput[player][b + 5] = 0; + padbuttonToStr(0, options_state[b + CONTROLS_OFFSET]); + break; + } + } + } + padbuttonToStr(Settings.PlayerInput[player][i + 5], options_state[i + CONTROLS_OFFSET]); + } + is_changing_button ^= 1; + option_changed = 1; + } + } + } +} diff --git a/src/drivers/ps2/ps2fceu.h b/src/drivers/ps2/ps2fceu.h index 2127362..3e83221 100644 --- a/src/drivers/ps2/ps2fceu.h +++ b/src/drivers/ps2/ps2fceu.h @@ -49,6 +49,7 @@ void DrawScreen(GSGLOBAL *gsGlobal); // Text related prototypes int loadFont(char *path_arg); +void drawChar(unsigned int c, int x, int y, int z, u64 colour); int printXY(const char *s, int x, int y, int z, u64 colour, int draw, int space); // GUI related prototypes diff --git a/src/drivers/ps2/ps2font.c b/src/drivers/ps2/ps2font.c index 286f87b..0887eaf 100644 --- a/src/drivers/ps2/ps2font.c +++ b/src/drivers/ps2/ps2font.c @@ -12,21 +12,26 @@ u8 *FontBuffer; extern unsigned char font_uLE[]; enum { -//0x100-0x109 are 5 double width characters for D-Pad buttons, which are accessed as: -//"ÿ0"==Circle "ÿ1"==Cross "ÿ2"==Square "ÿ3"==Triangle "ÿ4"==filled Square - RIGHT_CUR = 0x10A, //Triangle pointing left, for use to the right of an item - LEFT_CUR = 0x10B, //Triangle pointing right, for use to the left of an item - UP_ARROW = 0x10C, //Arrow pointing up - DN_ARROW = 0x10D, //Arrow pointing up - LT_ARROW = 0x10E, //Arrow pointing up - RT_ARROW = 0x10F, //Arrow pointing up - TEXT_CUR = 0x110, //Vertical bar, for use between two text characters - UL_ARROW = 0x111, //Arrow pointing up and to the left, from a vertical start. - BR_SPLIT = 0x112, //Splits rectangle from BL to TR with BR portion filled - BL_SPLIT = 0x113, //Splits rectangle from TL to BR with BL portion filled -//0x114-0x11B are 4 double width characters for D-Pad buttons, which are accessed as: -//"ÿ:"==Right "ÿ;"==Down "ÿ<"==Left "ÿ="==Up - FONT_COUNT= 0x11C //Total number of characters in font + //0x100-0x109 are 5 double width characters for D-Pad buttons, which are accessed as: + //"�0"==Circle "�1"==Cross "�2"==Square "�3"==Triangle "�4"==filled Square + RIGHT_CUR = 0x10A, //Triangle pointing left, for use to the right of an item + LEFT_CUR = 0x10B, //Triangle pointing right, for use to the left of an item + UP_ARROW = 0x10C, //Arrow pointing up + DN_ARROW = 0x10D, //Arrow pointing up + LT_ARROW = 0x10E, //Arrow pointing up + RT_ARROW = 0x10F, //Arrow pointing up + TEXT_CUR = 0x110, //Vertical bar, for use between two text characters + UL_ARROW = 0x111, //Arrow pointing up and to the left, from a vertical start. + BR_SPLIT = 0x112, //Splits rectangle from BL to TR with BR portion filled + BL_SPLIT = 0x113, //Splits rectangle from TL to BR with BL portion filled + //0x114-0x11B are 4 double width characters for D-Pad buttons, which are accessed as: + //"�:"==Right "�;"==Down "�<"==Left "�="==Up + //0x11C-0x123 are 4 doubled characters used as normal/marked folder/file icons + ICON_FOLDER = 0x11C, + ICON_M_FOLDER = 0x11E, + ICON_FILE = 0x120, + ICON_M_FILE = 0x122, + FONT_COUNT = 0x124 //Total number of characters in font }; /*GSTEXTURE FONT_TEX; @@ -147,127 +152,132 @@ void font_print(GSGLOBAL *gsGlobal, float X, float Y, int Z, unsigned long color int loadFont(char *path_arg) { -/* int fd; +/* int fd; - if(strlen(path_arg) != 0 ){ - char FntPath[1025]; - genFixPath(path_arg, FntPath); - fd = genOpen( FntPath, O_RDONLY ); - if(fd < 0){ - genClose( fd ); - goto use_default; - } // end if failed open file - genLseek( fd, 0, SEEK_SET ); - if(genLseek( fd, 0, SEEK_END ) > 4700){ - genClose( fd ); - goto use_default; - } - genLseek( fd, 0, SEEK_SET ); - u8 FontHeader[100]; - genRead( fd, FontHeader, 100 ); - if((FontHeader[ 0]==0x00) && - (FontHeader[ 1]==0x02) && - (FontHeader[70]==0x60) && - (FontHeader[72]==0x60) && - (FontHeader[83]==0x90)){ - genLseek( fd, 1018, SEEK_SET ); - if(FontBuffer) - free(FontBuffer); - FontBuffer = malloc( 4096 + 1 ); - genRead( fd, FontBuffer+32*16, 3584 ); // First 32 Chars Are Not Present In .fnt Files - genClose( fd ); - free(FontHeader); - return 1; - }else{ // end if good fnt file - genClose( fd ); - free(FontHeader); - goto use_default; - } // end else bad fnt file - }else{ // end if external font file*/ + if(strlen(path_arg) != 0 ){ + char FntPath[1025]; + genFixPath(path_arg, FntPath); + fd = genOpen( FntPath, O_RDONLY ); + if(fd < 0){ + genClose( fd ); + goto use_default; + } // end if failed open file + genLseek( fd, 0, SEEK_SET ); + if(genLseek( fd, 0, SEEK_END ) > 4700){ + genClose( fd ); + goto use_default; + } + genLseek( fd, 0, SEEK_SET ); + u8 FontHeader[100]; + genRead( fd, FontHeader, 100 ); + if((FontHeader[ 0]==0x00) && + (FontHeader[ 1]==0x02) && + (FontHeader[70]==0x60) && + (FontHeader[72]==0x60) && + (FontHeader[83]==0x90)){ + genLseek( fd, 1018, SEEK_SET ); + if(FontBuffer) + free(FontBuffer); + FontBuffer = malloc( 4096 + 1 ); + genRead( fd, FontBuffer+32*16, 3584 ); // First 32 Chars Are Not Present In .fnt Files + genClose( fd ); + free(FontHeader); + return 1; + }else{ // end if good fnt file + genClose( fd ); + free(FontHeader); + goto use_default; + } // end else bad fnt file + }else{ // end if external font file*/ //use_default: - if(FontBuffer) - free(FontBuffer); - FontBuffer = malloc( 4096 + 1 ); - memcpy( FontBuffer, &font_uLE, 4096 ); - //} // end else build-in font - return 0; + if(FontBuffer) + free(FontBuffer); + FontBuffer = malloc(4096 + 1); + memcpy(FontBuffer, &font_uLE, 4096); + //} // end else build-in font + return 0; } void drawChar(unsigned int c, int x, int y, int z, u64 colour) { - int i, j, pixBase, pixMask; - u8 *cm; + int i, j, pixBase, pixMask; + u8 *cm; - if(!Settings.interlace){ - y = y & -2; - } + if (!Settings.interlace) { + y = y & -2; + } - if(c >= FONT_COUNT) c = '_'; - if(c > 0xFF) //if char is beyond normal ascii range - cm = &font_uLE[c*16]; // cm points to special char def in default font - else //else char is inside normal ascii range - cm = &FontBuffer[c*16]; // cm points to normal char def in active font + if (c >= FONT_COUNT) + c = '_'; + if (c > 0xFF) //if char is beyond normal ascii range + cm = &font_uLE[c * 16]; // cm points to special char def in default font + else //else char is inside normal ascii range + cm = &FontBuffer[c * 16]; // cm points to normal char def in active font - pixMask = 0x80; - for(i=0; i<8; i++){ //for i == each pixel column - pixBase = -1; - for(j=0; j<16; j++){ //for j == each pixel row - if((pixBase < 0) && (cm[j] & pixMask)){ //if start of sequence - pixBase = j; - } else if((pixBase > -1) && !(cm[j] & pixMask)){ //if end of sequence - gsKit_prim_sprite(gsGlobal, x+i, y+pixBase-1, x+i+1, y+j-1, z, colour); - pixBase = -1; - } - }//ends for j == each pixel row - if(pixBase > -1) //if end of sequence including final row - gsKit_prim_sprite(gsGlobal, x+i, y+pixBase-1, x+i+1, y+j-1, z, colour); - pixMask >>= 1; - }//ends for i == each pixel column + pixMask = 0x80; + for (i = 0; i < 8; i++) { //for i == each pixel column + pixBase = -1; + for (j = 0; j < 16; j++) { //for j == each pixel row + if ((pixBase < 0) && (cm[j] & pixMask)) { //if start of sequence + pixBase = j; + } else if ((pixBase > -1) && !(cm[j] & pixMask)) { //if end of sequence + gsKit_prim_sprite(gsGlobal, x + i, y + pixBase - 1, x + i + 1, y + j - 1, z, colour); + pixBase = -1; + } + } //ends for j == each pixel row + if (pixBase > -1) //if end of sequence including final row + gsKit_prim_sprite(gsGlobal, x + i, y + pixBase - 1, x + i + 1, y + j - 1, z, colour); + pixMask >>= 1; + } //ends for i == each pixel column } +#define SCREEN_MARGIN 6 +#define FONT_WIDTH 8 + int printXY(const char *s, int x, int y, int z, u64 colour, int draw, int space) { - unsigned int c1, c2; - int i; - int text_spacing=8; + unsigned int c1, c2; + int i; + int text_spacing = 8; - if(space>0){ - while((strlen(s)*text_spacing) > space) - if(--text_spacing<=5) - break; - }else{ - while((strlen(s)*text_spacing) > gsGlobal->Width-6-8*2) - if(--text_spacing<=5) - break; - } + if (space > 0) { + while ((strlen(s) * text_spacing) > space) + if (--text_spacing <= 5) + break; + } else { + while ((strlen(s) * text_spacing) > gsGlobal->Width - SCREEN_MARGIN - FONT_WIDTH * 2) + if (--text_spacing <= 5) + break; + } - i=0; - while((c1=s[i++])!=0) { - if(c1 != 0xFF) { // Normal character - if(draw) drawChar(c1, x, y, z, colour); - x += text_spacing; - if(x > gsGlobal->Width-6-8) - break; - continue; - } //End if for normal character - // Here we got a sequence starting with 0xFF ('ÿ') - if((c2=s[i++])==0) - break; - if((c2 < '0') || (c2 > '=')) - continue; - c1=(c2-'0')*2+0x100; - if(draw) { - //expand sequence ÿ0=Circle ÿ1=Cross ÿ2=Square ÿ3=Triangle ÿ4=FilledBox - //"ÿ:"=Pad_Right "ÿ;"=Pad_Down "ÿ<"=Pad_Left "ÿ="=Pad_Up - drawChar(c1, x, y, z, colour); - x += 8; - if(x > gsGlobal->Width-6-8) - break; - drawChar(c1+1, x, y, z, colour); - x += 8; - if(x >gsGlobal->Width-6-8) - break; - } - } // ends while(1) - return x; + i = 0; + while ((c1 = (unsigned char)s[i++]) != 0) { + if (c1 != 0xFF) { // Normal character + if (draw) + drawChar(c1, x, y, z, colour); + x += text_spacing; + if (x > gsGlobal->Width - SCREEN_MARGIN - FONT_WIDTH) + break; + continue; + } // End if for normal character + // Here we got a sequence starting with 0xFF ('�') + if ((c2 = (unsigned char)s[i++]) == 0) + break; + if ((c2 < '0') || (c2 > '=')) + continue; + c1 = (c2 - '0') * 2 + 0x100; + if (draw) { + //expand sequence �0=Circle �1=Cross �2=Square �3=Triangle �4=FilledBox + //"�:"=Pad_Right "�;"=Pad_Down "�<"=Pad_Left "�="=Pad_Up + drawChar(c1, x, y, z, colour); + x += 8; + if (x > gsGlobal->Width - SCREEN_MARGIN - FONT_WIDTH) + break; + drawChar(c1 + 1, x, y, z, colour); + x += 8; + if (x > gsGlobal->Width - SCREEN_MARGIN - FONT_WIDTH) + break; + } + } // ends while(1) + return x; }