]> cloudbase.mooo.com Git - z180-stamp.git/commitdiff
Put unicode tables in flash
authorLeo C <erbl259-lmu@yahoo.de>
Wed, 3 Dec 2014 14:53:24 +0000 (15:53 +0100)
committerLeo C <erbl259-lmu@yahoo.de>
Wed, 3 Dec 2014 14:53:24 +0000 (15:53 +0100)
fatfs/src/option/ccsbcs.c

index b16db30301834f74411d5b5692867c00bd404fc3..002b8034a0c4afb032e5d907e0395638923ad3d1 100644 (file)
 \r
 #include "../ff.h"\r
 \r
+#ifdef __FLASH\r
+#define FLASH __flash\r
+#else\r
+#define FLASH\r
+#endif\r
 \r
 #if _CODE_PAGE == 437\r
 #define _TBLDEF 1\r
 static\r
-const WCHAR Tbl[] = {  /*  CP437(0x80-0xFF) to Unicode conversion table */\r
+const FLASH WCHAR Tbl[] = {    /*  CP437(0x80-0xFF) to Unicode conversion table */\r
        0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7,\r
        0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5,\r
        0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9,\r
@@ -53,7 +58,7 @@ const WCHAR Tbl[] = { /*  CP437(0x80-0xFF) to Unicode conversion table */
 #elif _CODE_PAGE == 720\r
 #define _TBLDEF 1\r
 static\r
-const WCHAR Tbl[] = {  /*  CP720(0x80-0xFF) to Unicode conversion table */\r
+const FLASH WCHAR Tbl[] = {    /*  CP720(0x80-0xFF) to Unicode conversion table */\r
        0x0000, 0x0000, 0x00E9, 0x00E2, 0x0000, 0x00E0, 0x0000, 0x00E7,\r
        0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0000, 0x0000, 0x0000,\r
        0x0000, 0x0651, 0x0652, 0x00F4, 0x00A4, 0x0640, 0x00FB, 0x00F9,\r
@@ -75,7 +80,7 @@ const WCHAR Tbl[] = { /*  CP720(0x80-0xFF) to Unicode conversion table */
 #elif _CODE_PAGE == 737\r
 #define _TBLDEF 1\r
 static\r
-const WCHAR Tbl[] = {  /*  CP737(0x80-0xFF) to Unicode conversion table */\r
+const FLASH WCHAR Tbl[] = {    /*  CP737(0x80-0xFF) to Unicode conversion table */\r
        0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398,\r
        0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0,\r
        0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9,\r
@@ -97,7 +102,7 @@ const WCHAR Tbl[] = {        /*  CP737(0x80-0xFF) to Unicode conversion table */
 #elif _CODE_PAGE == 775\r
 #define _TBLDEF 1\r
 static\r
-const WCHAR Tbl[] = {  /*  CP775(0x80-0xFF) to Unicode conversion table */\r
+const FLASH WCHAR Tbl[] = {    /*  CP775(0x80-0xFF) to Unicode conversion table */\r
        0x0106, 0x00FC, 0x00E9, 0x0101, 0x00E4, 0x0123, 0x00E5, 0x0107,\r
        0x0142, 0x0113, 0x0156, 0x0157, 0x012B, 0x0179, 0x00C4, 0x00C5,\r
        0x00C9, 0x00E6, 0x00C6, 0x014D, 0x00F6, 0x0122, 0x00A2, 0x015A,\r
@@ -119,7 +124,7 @@ const WCHAR Tbl[] = {       /*  CP775(0x80-0xFF) to Unicode conversion table */
 #elif _CODE_PAGE == 850\r
 #define _TBLDEF 1\r
 static\r
-const WCHAR Tbl[] = {  /*  CP850(0x80-0xFF) to Unicode conversion table */\r
+const FLASH WCHAR Tbl[] = {    /*  CP850(0x80-0xFF) to Unicode conversion table */\r
        0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7,\r
        0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5,\r
        0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9,\r
@@ -141,7 +146,7 @@ const WCHAR Tbl[] = {       /*  CP850(0x80-0xFF) to Unicode conversion table */
 #elif _CODE_PAGE == 852\r
 #define _TBLDEF 1\r
 static\r
-const WCHAR Tbl[] = {  /*  CP852(0x80-0xFF) to Unicode conversion table */\r
+const FLASH WCHAR Tbl[] = {    /*  CP852(0x80-0xFF) to Unicode conversion table */\r
        0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x016F, 0x0107, 0x00E7,\r
        0x0142, 0x00EB, 0x0150, 0x0151, 0x00EE, 0x0179, 0x00C4, 0x0106,\r
        0x00C9, 0x0139, 0x013A, 0x00F4, 0x00F6, 0x013D, 0x013E, 0x015A,\r
@@ -163,7 +168,7 @@ const WCHAR Tbl[] = {       /*  CP852(0x80-0xFF) to Unicode conversion table */
 #elif _CODE_PAGE == 855\r
 #define _TBLDEF 1\r
 static\r
-const WCHAR Tbl[] = {  /*  CP855(0x80-0xFF) to Unicode conversion table */\r
+const FLASH WCHAR Tbl[] = {    /*  CP855(0x80-0xFF) to Unicode conversion table */\r
        0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404,\r
        0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408,\r
        0x0459, 0x0409, 0x045A, 0x040A, 0x045B, 0x040B, 0x045C, 0x040C,\r
@@ -185,7 +190,7 @@ const WCHAR Tbl[] = {       /*  CP855(0x80-0xFF) to Unicode conversion table */
 #elif _CODE_PAGE == 857\r
 #define _TBLDEF 1\r
 static\r
-const WCHAR Tbl[] = {  /*  CP857(0x80-0xFF) to Unicode conversion table */\r
+const FLASH WCHAR Tbl[] = {    /*  CP857(0x80-0xFF) to Unicode conversion table */\r
        0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7,\r
        0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0131, 0x00C4, 0x00C5,\r
        0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9,\r
@@ -207,7 +212,7 @@ const WCHAR Tbl[] = {       /*  CP857(0x80-0xFF) to Unicode conversion table */
 #elif _CODE_PAGE == 858\r
 #define _TBLDEF 1\r
 static\r
-const WCHAR Tbl[] = {  /*  CP858(0x80-0xFF) to Unicode conversion table */\r
+const FLASH WCHAR Tbl[] = {    /*  CP858(0x80-0xFF) to Unicode conversion table */\r
        0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7,\r
        0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5,\r
        0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9,\r
@@ -229,7 +234,7 @@ const WCHAR Tbl[] = {       /*  CP858(0x80-0xFF) to Unicode conversion table */
 #elif _CODE_PAGE == 862\r
 #define _TBLDEF 1\r
 static\r
-const WCHAR Tbl[] = {  /*  CP862(0x80-0xFF) to Unicode conversion table */\r
+const FLASH WCHAR Tbl[] = {    /*  CP862(0x80-0xFF) to Unicode conversion table */\r
        0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7,\r
        0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF,\r
        0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7,\r
@@ -251,7 +256,7 @@ const WCHAR Tbl[] = {       /*  CP862(0x80-0xFF) to Unicode conversion table */
 #elif _CODE_PAGE == 866\r
 #define _TBLDEF 1\r
 static\r
-const WCHAR Tbl[] = {  /*  CP866(0x80-0xFF) to Unicode conversion table */\r
+const FLASH WCHAR Tbl[] = {    /*  CP866(0x80-0xFF) to Unicode conversion table */\r
        0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,\r
        0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,\r
        0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,\r
@@ -273,7 +278,7 @@ const WCHAR Tbl[] = {       /*  CP866(0x80-0xFF) to Unicode conversion table */
 #elif _CODE_PAGE == 874\r
 #define _TBLDEF 1\r
 static\r
-const WCHAR Tbl[] = {  /*  CP874(0x80-0xFF) to Unicode conversion table */\r
+const FLASH WCHAR Tbl[] = {    /*  CP874(0x80-0xFF) to Unicode conversion table */\r
        0x20AC, 0x0000, 0x0000, 0x0000, 0x0000, 0x2026, 0x0000, 0x0000,\r
        0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\r
        0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,\r
@@ -295,7 +300,7 @@ const WCHAR Tbl[] = {       /*  CP874(0x80-0xFF) to Unicode conversion table */
 #elif _CODE_PAGE == 1250\r
 #define _TBLDEF 1\r
 static\r
-const WCHAR Tbl[] = {  /*  CP1250(0x80-0xFF) to Unicode conversion table */\r
+const FLASH WCHAR Tbl[] = {    /*  CP1250(0x80-0xFF) to Unicode conversion table */\r
        0x20AC, 0x0000, 0x201A, 0x0000, 0x201E, 0x2026, 0x2020, 0x2021,\r
        0x0000, 0x2030, 0x0160, 0x2039, 0x015A, 0x0164, 0x017D, 0x0179,\r
        0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,\r
@@ -317,7 +322,7 @@ const WCHAR Tbl[] = {       /*  CP1250(0x80-0xFF) to Unicode conversion table */
 #elif _CODE_PAGE == 1251\r
 #define _TBLDEF 1\r
 static\r
-const WCHAR Tbl[] = {  /*  CP1251(0x80-0xFF) to Unicode conversion table */\r
+const FLASH WCHAR Tbl[] = {    /*  CP1251(0x80-0xFF) to Unicode conversion table */\r
        0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021,\r
        0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F,\r
        0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,\r
@@ -339,7 +344,7 @@ const WCHAR Tbl[] = {       /*  CP1251(0x80-0xFF) to Unicode conversion table */
 #elif _CODE_PAGE == 1252\r
 #define _TBLDEF 1\r
 static\r
-const WCHAR Tbl[] = {  /*  CP1252(0x80-0xFF) to Unicode conversion table */\r
+const FLASH WCHAR Tbl[] = {    /*  CP1252(0x80-0xFF) to Unicode conversion table */\r
        0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,\r
        0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0x0000, 0x017D, 0x0000,\r
        0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,\r
@@ -361,7 +366,7 @@ const WCHAR Tbl[] = {       /*  CP1252(0x80-0xFF) to Unicode conversion table */
 #elif _CODE_PAGE == 1253\r
 #define _TBLDEF 1\r
 static\r
-const WCHAR Tbl[] = {  /*  CP1253(0x80-0xFF) to Unicode conversion table */\r
+const FLASH WCHAR Tbl[] = {    /*  CP1253(0x80-0xFF) to Unicode conversion table */\r
        0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,\r
        0x0000, 0x2030, 0x0000, 0x2039, 0x000C, 0x0000, 0x0000, 0x0000,\r
        0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,\r
@@ -383,7 +388,7 @@ const WCHAR Tbl[] = {       /*  CP1253(0x80-0xFF) to Unicode conversion table */
 #elif _CODE_PAGE == 1254\r
 #define _TBLDEF 1\r
 static\r
-const WCHAR Tbl[] = {  /*  CP1254(0x80-0xFF) to Unicode conversion table */\r
+const FLASH WCHAR Tbl[] = {    /*  CP1254(0x80-0xFF) to Unicode conversion table */\r
        0x20AC, 0x0000, 0x210A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,\r
        0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0x0000, 0x0000, 0x0000,\r
        0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,\r
@@ -405,7 +410,7 @@ const WCHAR Tbl[] = {       /*  CP1254(0x80-0xFF) to Unicode conversion table */
 #elif _CODE_PAGE == 1255\r
 #define _TBLDEF 1\r
 static\r
-const WCHAR Tbl[] = {  /*  CP1255(0x80-0xFF) to Unicode conversion table */\r
+const FLASH WCHAR Tbl[] = {    /*  CP1255(0x80-0xFF) to Unicode conversion table */\r
        0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,\r
        0x02C6, 0x2030, 0x0000, 0x2039, 0x0000, 0x0000, 0x0000, 0x0000,\r
        0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,\r
@@ -427,7 +432,7 @@ const WCHAR Tbl[] = {       /*  CP1255(0x80-0xFF) to Unicode conversion table */
 #elif _CODE_PAGE == 1256\r
 #define _TBLDEF 1\r
 static\r
-const WCHAR Tbl[] = {  /*  CP1256(0x80-0xFF) to Unicode conversion table */\r
+const FLASH WCHAR Tbl[] = {    /*  CP1256(0x80-0xFF) to Unicode conversion table */\r
        0x20AC, 0x067E, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,\r
        0x02C6, 0x2030, 0x0679, 0x2039, 0x0152, 0x0686, 0x0698, 0x0688,\r
        0x06AF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,\r
@@ -449,7 +454,7 @@ const WCHAR Tbl[] = {       /*  CP1256(0x80-0xFF) to Unicode conversion table */
 #elif _CODE_PAGE == 1257\r
 #define _TBLDEF 1\r
 static\r
-const WCHAR Tbl[] = {  /*  CP1257(0x80-0xFF) to Unicode conversion table */\r
+const FLASH WCHAR Tbl[] = {    /*  CP1257(0x80-0xFF) to Unicode conversion table */\r
        0x20AC, 0x0000, 0x201A, 0x0000, 0x201E, 0x2026, 0x2020, 0x2021,\r
        0x0000, 0x2030, 0x0000, 0x2039, 0x0000, 0x00A8, 0x02C7, 0x00B8,\r
        0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,\r
@@ -471,7 +476,7 @@ const WCHAR Tbl[] = {       /*  CP1257(0x80-0xFF) to Unicode conversion table */
 #elif _CODE_PAGE == 1258\r
 #define _TBLDEF 1\r
 static\r
-const WCHAR Tbl[] = {  /*  CP1258(0x80-0xFF) to Unicode conversion table */\r
+const FLASH WCHAR Tbl[] = {    /*  CP1258(0x80-0xFF) to Unicode conversion table */\r
        0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,\r
        0x02C6, 0x2030, 0x0000, 0x2039, 0x0152, 0x0000, 0x0000, 0x0000,\r
        0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,\r
@@ -529,8 +534,8 @@ WCHAR ff_wtoupper ( /* Upper converted character */
        WCHAR chr               /* Input character */\r
 )\r
 {\r
-       static const WCHAR tbl_lower[] = { 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0xA1, 0x00A2, 0x00A3, 0x00A5, 0x00AC, 0x00AF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0x0FF, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x10D, 0x10F, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11B, 0x11D, 0x11F, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12B, 0x12D, 0x12F, 0x131, 0x133, 0x135, 0x137, 0x13A, 0x13C, 0x13E, 0x140, 0x142, 0x144, 0x146, 0x148, 0x14B, 0x14D, 0x14F, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15B, 0x15D, 0x15F, 0x161, 0x163, 0x165, 0x167, 0x169, 0x16B, 0x16D, 0x16F, 0x171, 0x173, 0x175, 0x177, 0x17A, 0x17C, 0x17E, 0x192, 0x3B1, 0x3B2, 0x3B3, 0x3B4, 0x3B5, 0x3B6, 0x3B7, 0x3B8, 0x3B9, 0x3BA, 0x3BB, 0x3BC, 0x3BD, 0x3BE, 0x3BF, 0x3C0, 0x3C1, 0x3C3, 0x3C4, 0x3C5, 0x3C6, 0x3C7, 0x3C8, 0x3C9, 0x3CA, 0x430, 0x431, 0x432, 0x433, 0x434, 0x435, 0x436, 0x437, 0x438, 0x439, 0x43A, 0x43B, 0x43C, 0x43D, 0x43E, 0x43F, 0x440, 0x441, 0x442, 0x443, 0x444, 0x445, 0x446, 0x447, 0x448, 0x449, 0x44A, 0x44B, 0x44C, 0x44D, 0x44E, 0x44F, 0x451, 0x452, 0x453, 0x454, 0x455, 0x456, 0x457, 0x458, 0x459, 0x45A, 0x45B, 0x45C, 0x45E, 0x45F, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0x217A, 0x217B, 0x217C, 0x217D, 0x217E, 0x217F, 0xFF41, 0xFF42, 0xFF43, 0xFF44, 0xFF45, 0xFF46, 0xFF47, 0xFF48, 0xFF49, 0xFF4A, 0xFF4B, 0xFF4C, 0xFF4D, 0xFF4E, 0xFF4F, 0xFF50, 0xFF51, 0xFF52, 0xFF53, 0xFF54, 0xFF55, 0xFF56, 0xFF57, 0xFF58, 0xFF59, 0xFF5A, 0 };\r
-       static const WCHAR tbl_upper[] = { 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x21, 0xFFE0, 0xFFE1, 0xFFE5, 0xFFE2, 0xFFE3, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0x178, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143, 0x145, 0x147, 0x14A, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x179, 0x17B, 0x17D, 0x191, 0x391, 0x392, 0x393, 0x394, 0x395, 0x396, 0x397, 0x398, 0x399, 0x39A, 0x39B, 0x39C, 0x39D, 0x39E, 0x39F, 0x3A0, 0x3A1, 0x3A3, 0x3A4, 0x3A5, 0x3A6, 0x3A7, 0x3A8, 0x3A9, 0x3AA, 0x410, 0x411, 0x412, 0x413, 0x414, 0x415, 0x416, 0x417, 0x418, 0x419, 0x41A, 0x41B, 0x41C, 0x41D, 0x41E, 0x41F, 0x420, 0x421, 0x422, 0x423, 0x424, 0x425, 0x426, 0x427, 0x428, 0x429, 0x42A, 0x42B, 0x42C, 0x42D, 0x42E, 0x42F, 0x401, 0x402, 0x403, 0x404, 0x405, 0x406, 0x407, 0x408, 0x409, 0x40A, 0x40B, 0x40C, 0x40E, 0x40F, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, 0x216A, 0x216B, 0x216C, 0x216D, 0x216E, 0x216F, 0xFF21, 0xFF22, 0xFF23, 0xFF24, 0xFF25, 0xFF26, 0xFF27, 0xFF28, 0xFF29, 0xFF2A, 0xFF2B, 0xFF2C, 0xFF2D, 0xFF2E, 0xFF2F, 0xFF30, 0xFF31, 0xFF32, 0xFF33, 0xFF34, 0xFF35, 0xFF36, 0xFF37, 0xFF38, 0xFF39, 0xFF3A, 0 };\r
+       static const FLASH WCHAR tbl_lower[] = { 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0xA1, 0x00A2, 0x00A3, 0x00A5, 0x00AC, 0x00AF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0x0FF, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x10D, 0x10F, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11B, 0x11D, 0x11F, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12B, 0x12D, 0x12F, 0x131, 0x133, 0x135, 0x137, 0x13A, 0x13C, 0x13E, 0x140, 0x142, 0x144, 0x146, 0x148, 0x14B, 0x14D, 0x14F, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15B, 0x15D, 0x15F, 0x161, 0x163, 0x165, 0x167, 0x169, 0x16B, 0x16D, 0x16F, 0x171, 0x173, 0x175, 0x177, 0x17A, 0x17C, 0x17E, 0x192, 0x3B1, 0x3B2, 0x3B3, 0x3B4, 0x3B5, 0x3B6, 0x3B7, 0x3B8, 0x3B9, 0x3BA, 0x3BB, 0x3BC, 0x3BD, 0x3BE, 0x3BF, 0x3C0, 0x3C1, 0x3C3, 0x3C4, 0x3C5, 0x3C6, 0x3C7, 0x3C8, 0x3C9, 0x3CA, 0x430, 0x431, 0x432, 0x433, 0x434, 0x435, 0x436, 0x437, 0x438, 0x439, 0x43A, 0x43B, 0x43C, 0x43D, 0x43E, 0x43F, 0x440, 0x441, 0x442, 0x443, 0x444, 0x445, 0x446, 0x447, 0x448, 0x449, 0x44A, 0x44B, 0x44C, 0x44D, 0x44E, 0x44F, 0x451, 0x452, 0x453, 0x454, 0x455, 0x456, 0x457, 0x458, 0x459, 0x45A, 0x45B, 0x45C, 0x45E, 0x45F, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0x217A, 0x217B, 0x217C, 0x217D, 0x217E, 0x217F, 0xFF41, 0xFF42, 0xFF43, 0xFF44, 0xFF45, 0xFF46, 0xFF47, 0xFF48, 0xFF49, 0xFF4A, 0xFF4B, 0xFF4C, 0xFF4D, 0xFF4E, 0xFF4F, 0xFF50, 0xFF51, 0xFF52, 0xFF53, 0xFF54, 0xFF55, 0xFF56, 0xFF57, 0xFF58, 0xFF59, 0xFF5A, 0 };\r
+       static const FLASH WCHAR tbl_upper[] = { 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x21, 0xFFE0, 0xFFE1, 0xFFE5, 0xFFE2, 0xFFE3, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0x178, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143, 0x145, 0x147, 0x14A, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x179, 0x17B, 0x17D, 0x191, 0x391, 0x392, 0x393, 0x394, 0x395, 0x396, 0x397, 0x398, 0x399, 0x39A, 0x39B, 0x39C, 0x39D, 0x39E, 0x39F, 0x3A0, 0x3A1, 0x3A3, 0x3A4, 0x3A5, 0x3A6, 0x3A7, 0x3A8, 0x3A9, 0x3AA, 0x410, 0x411, 0x412, 0x413, 0x414, 0x415, 0x416, 0x417, 0x418, 0x419, 0x41A, 0x41B, 0x41C, 0x41D, 0x41E, 0x41F, 0x420, 0x421, 0x422, 0x423, 0x424, 0x425, 0x426, 0x427, 0x428, 0x429, 0x42A, 0x42B, 0x42C, 0x42D, 0x42E, 0x42F, 0x401, 0x402, 0x403, 0x404, 0x405, 0x406, 0x407, 0x408, 0x409, 0x40A, 0x40B, 0x40C, 0x40E, 0x40F, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, 0x216A, 0x216B, 0x216C, 0x216D, 0x216E, 0x216F, 0xFF21, 0xFF22, 0xFF23, 0xFF24, 0xFF25, 0xFF26, 0xFF27, 0xFF28, 0xFF29, 0xFF2A, 0xFF2B, 0xFF2C, 0xFF2D, 0xFF2E, 0xFF2F, 0xFF30, 0xFF31, 0xFF32, 0xFF33, 0xFF34, 0xFF35, 0xFF36, 0xFF37, 0xFF38, 0xFF39, 0xFF3A, 0 };\r
        int i;\r
 \r
 \r