]> cloudbase.mooo.com Git - z180-stamp.git/commitdiff
Merge branch 'chan-fatfs' into fatfs-integration
authorLeo C <erbl259-lmu@yahoo.de>
Thu, 8 Sep 2016 18:59:55 +0000 (20:59 +0200)
committerLeo C <erbl259-lmu@yahoo.de>
Thu, 8 Sep 2016 18:59:55 +0000 (20:59 +0200)
# Conflicts:
# .gitignore
# fatfs/src/diskio.h
# fatfs/src/option/ccsbcs.c
# include/avr/ffconf.h
# include/integer.h

1  2 
fatfs/src/option/ccsbcs.c
include/avr/ffconf.h
include/integer.h

index 002b8034a0c4afb032e5d907e0395638923ad3d1,164caa066589c7c39965081947c61b37db71a7d0..bc39e46a51ea13486f6b2b7a5a12f45358d06aa5
  #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
-       0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192,\r
-       0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA,\r
-       0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,\r
-       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,\r
-       0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,\r
-       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,\r
-       0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,\r
-       0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,\r
-       0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,\r
-       0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4,\r
-       0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229,\r
-       0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248,\r
-       0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0\r
+       0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5,\r
+       0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192,\r
+       0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,\r
+       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,\r
+       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,\r
+       0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,\r
+       0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229,\r
+       0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0\r
  };\r
  \r
  #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
-       0x0621, 0x0622, 0x0623, 0x0624, 0x00A3, 0x0625, 0x0626, 0x0627,\r
-       0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F,\r
-       0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x00AB, 0x00BB,\r
-       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,\r
-       0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,\r
-       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,\r
-       0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,\r
-       0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,\r
-       0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,\r
-       0x0636, 0x0637, 0x0638, 0x0639, 0x063A, 0x0641, 0x00B5, 0x0642,\r
-       0x0643, 0x0644, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 0x064A,\r
-       0x2261, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F, 0x0650, 0x2248,\r
-       0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0\r
+       0x0000, 0x0000, 0x00E9, 0x00E2, 0x0000, 0x00E0, 0x0000, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0000, 0x0000, 0x0000,\r
+       0x0000, 0x0651, 0x0652, 0x00F4, 0x00A4, 0x0640, 0x00FB, 0x00F9, 0x0621, 0x0622, 0x0623, 0x0624, 0x00A3, 0x0625, 0x0626, 0x0627,\r
+       0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x00AB, 0x00BB,\r
+       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,\r
+       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,\r
+       0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,\r
+       0x0636, 0x0637, 0x0638, 0x0639, 0x063A, 0x0641, 0x00B5, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 0x064A,\r
+       0x2261, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F, 0x0650, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0\r
  };\r
  \r
  #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
-       0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8,\r
-       0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0,\r
-       0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8,\r
-       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,\r
-       0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,\r
-       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,\r
-       0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,\r
-       0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,\r
-       0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,\r
-       0x03C9, 0x03AC, 0x03AD, 0x03AE, 0x03CA, 0x03AF, 0x03CC, 0x03CD,\r
-       0x03CB, 0x03CE, 0x0386, 0x0388, 0x0389, 0x038A, 0x038C, 0x038E,\r
-       0x038F, 0x00B1, 0x2265, 0x2264, 0x03AA, 0x03AB, 0x00F7, 0x2248,\r
-       0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0\r
+       0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0,\r
+       0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8,\r
+       0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8,\r
+       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,\r
+       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,\r
+       0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,\r
+       0x03C9, 0x03AC, 0x03AD, 0x03AE, 0x03CA, 0x03AF, 0x03CC, 0x03CD, 0x03CB, 0x03CE, 0x0386, 0x0388, 0x0389, 0x038A, 0x038C, 0x038E,\r
+       0x038F, 0x00B1, 0x2265, 0x2264, 0x03AA, 0x03AB, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0\r
+ };\r
\r
+ #elif _CODE_PAGE == 771\r
+ #define _TBLDEF 1\r
+ static\r
 -const WCHAR Tbl[] = { /*  CP771(0x80-0xFF) to Unicode conversion table */\r
++const FLASH WCHAR Tbl[] = {   /*  CP771(0x80-0xFF) to Unicode conversion table */\r
+       0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,\r
+       0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,\r
+       0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,\r
+       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x2558, 0x2510,\r
+       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,\r
+       0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x0104, 0x0105, 0x010C, 0x010D,\r
+       0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F,\r
+       0x0118, 0x0119, 0x0116, 0x0117, 0x012E, 0x012F, 0x0160, 0x0161, 0x0172, 0x0173, 0x016A, 0x016B, 0x017D, 0x017E, 0x25A0, 0x00A0\r
  };\r
  \r
  #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
-       0x015B, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x00A4,\r
-       0x0100, 0x012A, 0x00F3, 0x017B, 0x017C, 0x017A, 0x201D, 0x00A6,\r
-       0x00A9, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x0141, 0x00AB, 0x00BB,\r
-       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0104, 0x010C, 0x0118,\r
-       0x0116, 0x2563, 0x2551, 0x2557, 0x255D, 0x012E, 0x0160, 0x2510,\r
-       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0172, 0x016A,\r
-       0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x017D,\r
-       0x0105, 0x010D, 0x0119, 0x0117, 0x012F, 0x0161, 0x0173, 0x016B,\r
-       0x017E, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,\r
-       0x00D3, 0x00DF, 0x014C, 0x0143, 0x00F5, 0x00D5, 0x00B5, 0x0144,\r
-       0x0136, 0x0137, 0x013B, 0x013C, 0x0146, 0x0112, 0x0145, 0x2019,\r
-       0x00AD, 0x00B1, 0x201C, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x201E,\r
-       0x00B0, 0x2219, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0\r
+       0x0106, 0x00FC, 0x00E9, 0x0101, 0x00E4, 0x0123, 0x00E5, 0x0107, 0x0142, 0x0113, 0x0156, 0x0157, 0x012B, 0x0179, 0x00C4, 0x00C5,\r
+       0x00C9, 0x00E6, 0x00C6, 0x014D, 0x00F6, 0x0122, 0x00A2, 0x015A, 0x015B, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x00A4,\r
+       0x0100, 0x012A, 0x00F3, 0x017B, 0x017C, 0x017A, 0x201D, 0x00A6, 0x00A9, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x0141, 0x00AB, 0x00BB,\r
+       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0104, 0x010C, 0x0118, 0x0116, 0x2563, 0x2551, 0x2557, 0x255D, 0x012E, 0x0160, 0x2510,\r
+       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0172, 0x016A, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x017D,\r
+       0x0105, 0x010D, 0x0119, 0x0117, 0x012F, 0x0161, 0x0173, 0x016B, 0x017E, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,\r
+       0x00D3, 0x00DF, 0x014C, 0x0143, 0x00F5, 0x00D5, 0x00B5, 0x0144, 0x0136, 0x0137, 0x013B, 0x013C, 0x0146, 0x0112, 0x0145, 0x2019,\r
+       0x00AD, 0x00B1, 0x201C, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x201E, 0x00B0, 0x2219, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0\r
  };\r
  \r
  #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
-       0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x0192,\r
-       0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA,\r
-       0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,\r
-       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0,\r
-       0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510,\r
-       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3,\r
-       0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,\r
-       0x00F0, 0x00D0, 0x00CA, 0x00CB, 0x00C8, 0x0131, 0x00CD, 0x00CE,\r
-       0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580,\r
-       0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x00FE,\r
-       0x00DE, 0x00DA, 0x00DB, 0x00D9, 0x00FD, 0x00DD, 0x00AF, 0x00B4,\r
-       0x00AD, 0x00B1, 0x2017, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8,\r
-       0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0\r
+       0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5,\r
+       0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x0192,\r
+       0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,\r
+       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0, 0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510,\r
+       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,\r
+       0x00F0, 0x00D0, 0x00CA, 0x00CB, 0x00C8, 0x0131, 0x00CD, 0x00CE, 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580,\r
+       0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x00FE, 0x00DE, 0x00DA, 0x00DB, 0x00D9, 0x00FD, 0x00DD, 0x00AF, 0x00B4,\r
+       0x00AD, 0x00B1, 0x2017, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8, 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0\r
  };\r
  \r
  #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
-       0x015B, 0x00D6, 0x00DC, 0x0164, 0x0165, 0x0141, 0x00D7, 0x010D,\r
-       0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x0104, 0x0105, 0x017D, 0x017E,\r
-       0x0118, 0x0119, 0x00AC, 0x017A, 0x010C, 0x015F, 0x00AB, 0x00BB,\r
-       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x011A,\r
-       0x015E, 0x2563, 0x2551, 0x2557, 0x255D, 0x017B, 0x017C, 0x2510,\r
-       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0102, 0x0103,\r
-       0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,\r
-       0x0111, 0x0110, 0x010E, 0x00CB, 0x010F, 0x0147, 0x00CD, 0x00CE,\r
-       0x011B, 0x2518, 0x250C, 0x2588, 0x2584, 0x0162, 0x016E, 0x2580,\r
-       0x00D3, 0x00DF, 0x00D4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161,\r
-       0x0154, 0x00DA, 0x0155, 0x0170, 0x00FD, 0x00DD, 0x0163, 0x00B4,\r
-       0x00AD, 0x02DD, 0x02DB, 0x02C7, 0x02D8, 0x00A7, 0x00F7, 0x00B8,\r
-       0x00B0, 0x00A8, 0x02D9, 0x0171, 0x0158, 0x0159, 0x25A0, 0x00A0\r
+       0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x016F, 0x0107, 0x00E7, 0x0142, 0x00EB, 0x0150, 0x0151, 0x00EE, 0x0179, 0x00C4, 0x0106,\r
+       0x00C9, 0x0139, 0x013A, 0x00F4, 0x00F6, 0x013D, 0x013E, 0x015A, 0x015B, 0x00D6, 0x00DC, 0x0164, 0x0165, 0x0141, 0x00D7, 0x010D,\r
+       0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x0104, 0x0105, 0x017D, 0x017E, 0x0118, 0x0119, 0x00AC, 0x017A, 0x010C, 0x015F, 0x00AB, 0x00BB,\r
+       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x011A, 0x015E, 0x2563, 0x2551, 0x2557, 0x255D, 0x017B, 0x017C, 0x2510,\r
+       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0102, 0x0103, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,\r
+       0x0111, 0x0110, 0x010E, 0x00CB, 0x010F, 0x0147, 0x00CD, 0x00CE, 0x011B, 0x2518, 0x250C, 0x2588, 0x2584, 0x0162, 0x016E, 0x2580,\r
+       0x00D3, 0x00DF, 0x00D4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161, 0x0154, 0x00DA, 0x0155, 0x0170, 0x00FD, 0x00DD, 0x0163, 0x00B4,\r
+       0x00AD, 0x02DD, 0x02DB, 0x02C7, 0x02D8, 0x00A7, 0x00F7, 0x00B8, 0x00B0, 0x00A8, 0x02D9, 0x0171, 0x0158, 0x0159, 0x25A0, 0x00A0\r
  };\r
  \r
  #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
-       0x045E, 0x040E, 0x045F, 0x040F, 0x044E, 0x042E, 0x044A, 0x042A,\r
-       0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414,\r
-       0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00AB, 0x00BB,\r
-       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438,\r
-       0x0418, 0x2563, 0x2551, 0x2557, 0x255D, 0x0439, 0x0419, 0x2510,\r
-       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x043A, 0x041A,\r
-       0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,\r
-       0x043B, 0x041B, 0x043C, 0x041C, 0x043D, 0x041D, 0x043E, 0x041E,\r
-       0x043F, 0x2518, 0x250C, 0x2588, 0x2584, 0x041F, 0x044F, 0x2580,\r
-       0x042F, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443,\r
-       0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044C, 0x042C, 0x2116,\r
-       0x00AD, 0x044B, 0x042B, 0x0437, 0x0417, 0x0448, 0x0428, 0x044D,\r
-       0x042D, 0x0449, 0x0429, 0x0447, 0x0427, 0x00A7, 0x25A0, 0x00A0\r
+       0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404, 0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408,\r
+       0x0459, 0x0409, 0x045A, 0x040A, 0x045B, 0x040B, 0x045C, 0x040C, 0x045E, 0x040E, 0x045F, 0x040F, 0x044E, 0x042E, 0x044A, 0x042A,\r
+       0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414, 0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00AB, 0x00BB,\r
+       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438, 0x0418, 0x2563, 0x2551, 0x2557, 0x255D, 0x0439, 0x0419, 0x2510,\r
+       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x043A, 0x041A, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,\r
+       0x043B, 0x041B, 0x043C, 0x041C, 0x043D, 0x041D, 0x043E, 0x041E, 0x043F, 0x2518, 0x250C, 0x2588, 0x2584, 0x041F, 0x044F, 0x2580,\r
+       0x042F, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443, 0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044C, 0x042C, 0x2116,\r
+       0x00AD, 0x044B, 0x042B, 0x0437, 0x0417, 0x0448, 0x0428, 0x044D, 0x042D, 0x0449, 0x0429, 0x0447, 0x0427, 0x00A7, 0x25A0, 0x00A0\r
  };\r
  \r
  #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
-       0x0130, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x015E, 0x015F,\r
-       0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x011E, 0x011F,\r
-       0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,\r
-       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0,\r
-       0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510,\r
-       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3,\r
-       0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,\r
-       0x00BA, 0x00AA, 0x00CA, 0x00CB, 0x00C8, 0x0000, 0x00CD, 0x00CE,\r
-       0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580,\r
-       0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x0000,\r
-       0x00D7, 0x00DA, 0x00DB, 0x00D9, 0x00EC, 0x00FF, 0x00AF, 0x00B4,\r
-       0x00AD, 0x00B1, 0x0000, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8,\r
-       0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0\r
+       0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0131, 0x00C4, 0x00C5,\r
+       0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x0130, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x015E, 0x015F,\r
+       0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x011E, 0x011F, 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,\r
+       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0, 0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510,\r
+       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,\r
+       0x00BA, 0x00AA, 0x00CA, 0x00CB, 0x00C8, 0x0000, 0x00CD, 0x00CE, 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580,\r
+       0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x0000, 0x00D7, 0x00DA, 0x00DB, 0x00D9, 0x00EC, 0x00FF, 0x00AF, 0x00B4,\r
+       0x00AD, 0x00B1, 0x0000, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8, 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0\r
  };\r
  \r
- #elif _CODE_PAGE == 858\r
+ #elif _CODE_PAGE == 860\r
  #define _TBLDEF 1\r
  static\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
-       0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x0192,\r
-       0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA,\r
-       0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,\r
-       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0,\r
-       0x00A9, 0x2563, 0x2551, 0x2557, 0x2550, 0x00A2, 0x00A5, 0x2510,\r
-       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3,\r
-       0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,\r
-       0x00F0, 0x00D0, 0x00CA, 0x00CB, 0x00C8, 0x20AC, 0x00CD, 0x00CE,\r
-       0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00C6, 0x00CC, 0x2580,\r
-       0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x00FE,\r
-       0x00DE, 0x00DA, 0x00DB, 0x00D9, 0x00FD, 0x00DD, 0x00AF, 0x00B4,\r
-       0x00AD, 0x00B1, 0x2017, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8,\r
-       0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0\r
+ const WCHAR Tbl[] = { /*  CP860(0x80-0xFF) to Unicode conversion table */\r
+       0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E3, 0x00E0, 0x00C1, 0x00E7, 0x00EA, 0x00CA, 0x00E8, 0x00CD, 0x00D4, 0x00EC, 0x00C3, 0x00C2,\r
+       0x00C9, 0x00C0, 0x00C8, 0x00F4, 0x00F5, 0x00F2, 0x00DA, 0x00F9, 0x00CC, 0x00D5, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x20A7, 0x00D3,\r
+       0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x00D2, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,\r
+       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x2558, 0x2510,\r
+       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,\r
+       0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,\r
+       0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229,\r
+       0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0\r
  };\r
  \r
- #elif _CODE_PAGE == 862\r
+ #elif _CODE_PAGE == 861\r
  #define _TBLDEF 1\r
  static\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
-       0x05E8, 0x05E9, 0x05EA, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192,\r
-       0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA,\r
-       0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,\r
-       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,\r
-       0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,\r
-       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,\r
-       0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,\r
-       0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,\r
-       0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,\r
-       0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4,\r
-       0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229,\r
-       0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248,\r
-       0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0\r
 -const WCHAR Tbl[] = { /*  CP861(0x80-0xFF) to Unicode conversion table */\r
++const FLASH WCHAR Tbl[] = {   /*  CP861(0x80-0xFF) to Unicode conversion table */\r
+       0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E6, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00D0, 0x00F0, 0x00DE, 0x00C4, 0x00C5,\r
+       0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00FE, 0x00FB, 0x00DD, 0x00FD, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x0192,\r
+       0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00C1, 0x00CD, 0x00D3, 0x00DA, 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,\r
+       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,\r
+       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,\r
+       0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,\r
+       0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229,\r
+       0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0\r
  };\r
  \r
- #elif _CODE_PAGE == 866\r
- #define _TBLDEF 1\r
- static\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
-       0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,\r
-       0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,\r
-       0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,\r
-       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,\r
-       0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,\r
-       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,\r
-       0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,\r
-       0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,\r
-       0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,\r
-       0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,\r
-       0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F,\r
-       0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040E, 0x045E,\r
-       0x00B0, 0x2219, 0x00B7, 0x221A, 0x2116, 0x00A4, 0x25A0, 0x00A0\r
- };\r
\r
- #elif _CODE_PAGE == 874\r
- #define _TBLDEF 1\r
- static\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
-       0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\r
-       0x00A0, 0x0E01, 0x0E02, 0x0E03, 0x0E04, 0x0E05, 0x0E06, 0x0E07,\r
-       0x0E08, 0x0E09, 0x0E0A, 0x0E0B, 0x0E0C, 0x0E0D, 0x0E0E, 0x0E0F,\r
-       0x0E10, 0x0E11, 0x0E12, 0x0E13, 0x0E14, 0x0E15, 0x0E16, 0x0E17,\r
-       0x0E18, 0x0E19, 0x0E1A, 0x0E1B, 0x0E1C, 0x0E1D, 0x0E1E, 0x0E1F,\r
-       0x0E20, 0x0E21, 0x0E22, 0x0E23, 0x0E24, 0x0E25, 0x0E26, 0x0E27,\r
-       0x0E28, 0x0E29, 0x0E2A, 0x0E2B, 0x0E2C, 0x0E2D, 0x0E2E, 0x0E2F,\r
-       0x0E30, 0x0E31, 0x0E32, 0x0E33, 0x0E34, 0x0E35, 0x0E36, 0x0E37,\r
-       0x0E38, 0x0E39, 0x0E3A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0E3F,\r
-       0x0E40, 0x0E41, 0x0E42, 0x0E43, 0x0E44, 0x0E45, 0x0E46, 0x0E47,\r
-       0x0E48, 0x0E49, 0x0E4A, 0x0E4B, 0x0E4C, 0x0E4D, 0x0E4E, 0x0E4F,\r
-       0x0E50, 0x0E51, 0x0E52, 0x0E53, 0x0E54, 0x0E55, 0x0E56, 0x0E57,\r
-       0x0E58, 0x0E59, 0x0E5A, 0x0E5B, 0x0000, 0x0000, 0x0000, 0x0000\r
- };\r
\r
- #elif _CODE_PAGE == 1250\r
- #define _TBLDEF 1\r
- static\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
-       0x0000, 0x2122, 0x0161, 0x203A, 0x015B, 0x0165, 0x017E, 0x017A,\r
-       0x00A0, 0x02C7, 0x02D8, 0x0141, 0x00A4, 0x0104, 0x00A6, 0x00A7,\r
-       0x00A8, 0x00A9, 0x015E, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x017B,\r
-       0x00B0, 0x00B1, 0x02DB, 0x0142, 0x00B4, 0x00B5, 0x00B6, 0x00B7,\r
-       0x00B8, 0x0105, 0x015F, 0x00BB, 0x013D, 0x02DD, 0x013E, 0x017C,\r
-       0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7,\r
-       0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E,\r
-       0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7,\r
-       0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF,\r
-       0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7,\r
-       0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F,\r
-       0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7,\r
-       0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9\r
- };\r
\r
- #elif _CODE_PAGE == 1251\r
- #define _TBLDEF 1\r
- static\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
-       0x0000, 0x2111, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F,\r
-       0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7,\r
-       0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407,\r
-       0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7,\r
-       0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457,\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
-       0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,\r
-       0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,\r
-       0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,\r
-       0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,\r
-       0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F\r
- };\r
\r
- #elif _CODE_PAGE == 1252\r
- #define _TBLDEF 1\r
- static\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
-       0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0x0000, 0x017E, 0x0178,\r
-       0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,\r
-       0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,\r
-       0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,\r
-       0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,\r
-       0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,\r
-       0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,\r
-       0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,\r
-       0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF,\r
-       0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,\r
-       0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,\r
-       0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,\r
-       0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF\r
- };\r
\r
- #elif _CODE_PAGE == 1253\r
+ #elif _CODE_PAGE == 862\r
  #define _TBLDEF 1\r
  static\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
-       0x0000, 0x2122, 0x0000, 0x203A, 0x0000, 0x0000, 0x0000, 0x0000,\r
-       0x00A0, 0x0385, 0x0386, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,\r
-       0x00A8, 0x00A9, 0x0000, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x2015,\r
-       0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x00B5, 0x00B6, 0x00B7,\r
-       0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F,\r
-       0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,\r
-       0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F,\r
-       0x03A0, 0x03A1, 0x0000, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7,\r
-       0x03A8, 0x03A9, 0x03AA, 0x03AD, 0x03AC, 0x03AD, 0x03AE, 0x03AF,\r
-       0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7,\r
-       0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF,\r
-       0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7,\r
-       0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0x0000\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, 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF,\r
+       0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, 0x05E8, 0x05E9, 0x05EA, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192,\r
+       0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,\r
+       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,\r
+       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,\r
+       0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,\r
+       0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229,\r
+       0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0\r
  };\r
  \r
- #elif _CODE_PAGE == 1254\r
+ #elif _CODE_PAGE == 863\r
  #define _TBLDEF 1\r
  static\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
-       0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0x0000, 0x0000, 0x0178,\r
-       0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,\r
-       0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,\r
-       0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,\r
-       0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,\r
-       0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,\r
-       0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,\r
-       0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,\r
-       0x00D8, 0x00D9, 0x00DA, 0x00BD, 0x00DC, 0x0130, 0x015E, 0x00DF,\r
-       0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,\r
-       0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,\r
-       0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,\r
-       0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF\r
+ const WCHAR Tbl[] = { /*  CP863(0x80-0xFF) to Unicode conversion table */\r
+       0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00C2, 0x00E0, 0x00B6, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x2017, 0x00C0,\r
+       0x00C9, 0x00C8, 0x00CA, 0x00F4, 0x00CB, 0x00CF, 0x00FB, 0x00F9, 0x00A4, 0x00D4, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x00DB, 0x0192,\r
+       0x00A6, 0x00B4, 0x00F3, 0x00FA, 0x00A8, 0x00BB, 0x00B3, 0x00AF, 0x00CE, 0x3210, 0x00AC, 0x00BD, 0x00BC, 0x00BE, 0x00AB, 0x00BB,\r
+       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,\r
+       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,\r
+       0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,\r
+       0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2219,\r
+       0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0\r
  };\r
  \r
- #elif _CODE_PAGE == 1255\r
+ #elif _CODE_PAGE == 864\r
  #define _TBLDEF 1\r
  static\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
-       0x02DC, 0x2122, 0x0000, 0x203A, 0x0000, 0x0000, 0x0000, 0x0000,\r
-       0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,\r
-       0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,\r
-       0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,\r
-       0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,\r
-       0x05B0, 0x05B1, 0x05B2, 0x05B3, 0x05B4, 0x05B5, 0x05B6, 0x05B7,\r
-       0x05B8, 0x05B9, 0x0000, 0x05BB, 0x05BC, 0x05BD, 0x05BE, 0x05BF,\r
-       0x05C0, 0x05C1, 0x05C2, 0x05C3, 0x05F0, 0x05F1, 0x05F2, 0x05F3,\r
-       0x05F4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\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
-       0x05E8, 0x05E9, 0x05EA, 0x0000, 0x0000, 0x200E, 0x200F, 0x0000\r
 -const WCHAR Tbl[] = { /*  CP864(0x80-0xFF) to Unicode conversion table */\r
++const FLASH WCHAR Tbl[] = {   /*  CP864(0x80-0xFF) to Unicode conversion table */\r
+       0x00B0, 0x00B7, 0x2219, 0x221A, 0x2592, 0x2500, 0x2502, 0x253C, 0x2524, 0x252C, 0x251C, 0x2534, 0x2510, 0x250C, 0x2514, 0x2518,\r
+       0x03B2, 0x221E, 0x03C6, 0x00B1, 0x00BD, 0x00BC, 0x2248, 0x00AB, 0x00BB, 0xFEF7, 0xFEF8, 0x0000, 0x0000, 0xFEFB, 0xFEFC, 0x0000,\r
+       0x00A0, 0x00AD, 0xFE82, 0x00A3, 0x00A4, 0xFE84, 0x0000, 0x20AC, 0xFE8E, 0xFE8F, 0xFE95, 0xFE99, 0x060C, 0xFE9D, 0xFEA1, 0xFEA5,\r
+       0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, 0x0668, 0x0669, 0xFED1, 0x061B, 0xFEB1, 0xFEB5, 0xFEB9, 0x061F,\r
+       0x00A2, 0xFE80, 0xFE81, 0xFE83, 0xFE85, 0xFECA, 0xFE8B, 0xFE8D, 0xFE91, 0xFE93, 0xFE97, 0xFE9B, 0xFE9F, 0xFEA3, 0xFEA7, 0xFEA9,\r
+       0xFEAB, 0xFEAD, 0xFEAF, 0xFEB3, 0xFEB7, 0xFEBB, 0xFEBF, 0xFEC1, 0xFEC5, 0xFECB, 0xFECF, 0x00A6, 0x00AC, 0x00F7, 0x00D7, 0xFEC9,\r
+       0x0640, 0xFED3, 0xFED7, 0xFEDB, 0xFEDF, 0xFEE3, 0xFEE7, 0xFEEB, 0xFEED, 0xFEEF, 0xFEF3, 0xFEBD, 0xFECC, 0xFECE, 0xFECD, 0xFEE1,\r
+       0xFE7D, 0x0651, 0xFEE5, 0xFEE9, 0xFEEC, 0xFEF0, 0xFEF2, 0xFED0, 0xFED5, 0xFEF5, 0xFEF6, 0xFEDD, 0xFED9, 0xFEF1, 0x25A0, 0x0000\r
  };\r
  \r
- #elif _CODE_PAGE == 1256\r
+ #elif _CODE_PAGE == 865\r
  #define _TBLDEF 1\r
  static\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
-       0x06A9, 0x2122, 0x0691, 0x203A, 0x0153, 0x200C, 0x200D, 0x06BA,\r
-       0x00A0, 0x060C, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,\r
-       0x00A8, 0x00A9, 0x06BE, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,\r
-       0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,\r
-       0x00B8, 0x00B9, 0x061B, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x061F,\r
-       0x06C1, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627,\r
-       0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F,\r
-       0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00D7,\r
-       0x0637, 0x0638, 0x0639, 0x063A, 0x0640, 0x0640, 0x0642, 0x0643,\r
-       0x00E0, 0x0644, 0x00E2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00E7,\r
-       0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0649, 0x064A, 0x00EE, 0x00EF,\r
-       0x064B, 0x064C, 0x064D, 0x064E, 0x00F4, 0x064F, 0x0650, 0x00F7,\r
-       0x0651, 0x00F9, 0x0652, 0x00FB, 0x00FC, 0x200E, 0x200F, 0x06D2\r
 -const WCHAR Tbl[] = { /*  CP865(0x80-0xFF) to Unicode conversion table */\r
++const FLASH WCHAR Tbl[] = {   /*  CP865(0x80-0xFF) to Unicode conversion table */\r
+       0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5,\r
+       0x00C5, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x0192,\r
+       0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00A4,\r
+       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x2558, 0x2510,\r
+       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,\r
+       0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,\r
+       0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229,\r
+       0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0\r
  };\r
  \r
- #elif _CODE_PAGE == 1257\r
+ #elif _CODE_PAGE == 866\r
  #define _TBLDEF 1\r
  static\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
-       0x0000, 0x2122, 0x0000, 0x203A, 0x0000, 0x00AF, 0x02DB, 0x0000,\r
-       0x00A0, 0x0000, 0x00A2, 0x00A3, 0x00A4, 0x0000, 0x00A6, 0x00A7,\r
-       0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,\r
-       0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,\r
-       0x00B8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6,\r
-       0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112,\r
-       0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B,\r
-       0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7,\r
-       0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF,\r
-       0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113,\r
-       0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C,\r
-       0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7,\r
-       0x0173, 0x014E, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x02D9\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, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,\r
+       0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,\r
+       0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,\r
+       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,\r
+       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,\r
+       0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,\r
+       0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F,\r
+       0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040E, 0x045E, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x2116, 0x00A4, 0x25A0, 0x00A0\r
  };\r
  \r
- #elif _CODE_PAGE == 1258\r
+ #elif _CODE_PAGE == 869\r
  #define _TBLDEF 1\r
  static\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
-       0x02DC, 0x2122, 0x0000, 0x203A, 0x0153, 0x0000, 0x0000, 0x0178,\r
-       0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,\r
-       0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,\r
-       0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,\r
-       0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,\r
-       0x00C0, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x00C5, 0x00C6, 0x00C7,\r
-       0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x0300, 0x00CD, 0x00CE, 0x00CF,\r
-       0x0110, 0x00D1, 0x0309, 0x00D3, 0x00D4, 0x01A0, 0x00D6, 0x00D7,\r
-       0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x01AF, 0x0303, 0x00DF,\r
-       0x00E0, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x00E5, 0x00E6, 0x00E7,\r
-       0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0301, 0x00ED, 0x00EE, 0x00EF,\r
-       0x0111, 0x00F1, 0x0323, 0x00F3, 0x00F4, 0x01A1, 0x00F6, 0x00F7,\r
-       0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x01B0, 0x20AB, 0x00FF\r
 -const WCHAR Tbl[] = { /*  CP869(0x80-0xFF) to Unicode conversion table */\r
++const FLASH WCHAR Tbl[] = {   /*  CP869(0x80-0xFF) to Unicode conversion table */\r
+       0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x00B7, 0x0386, 0x00B7, 0x00B7, 0x00AC, 0x00A6, 0x2018, 0x2019, 0x0388, 0x2015, 0x0389,\r
+       0x038A, 0x03AA, 0x038C, 0x00B7, 0x00B7, 0x038E, 0x03AB, 0x00A9, 0x038F, 0x00B2, 0x00B3, 0x03AC, 0x00A3, 0x03AD, 0x03AE, 0x03AF,\r
+       0x03CA, 0x0390, 0x03CC, 0x03CD, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x00BD, 0x0398, 0x0399, 0x00AB, 0x00BB,\r
+       0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039A, 0x039B, 0x039C, 0x039D, 0x2563, 0x2551, 0x2557, 0x255D, 0x039E, 0x039F, 0x2510,\r
+       0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0A30, 0x03A1, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x03A3,\r
+       0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03B1, 0x03B2, 0x03B3, 0x2518, 0x250C, 0x2588, 0x2584, 0x03B4, 0x03B5, 0x2580,\r
+       0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x0384,\r
+       0x00AD, 0x00B1, 0x03C5, 0x03C6, 0x03C7, 0x00A7, 0x03C8, 0x0385, 0x00B0, 0x00A8, 0x03C9, 0x03CB, 0x03B0, 0x03CE, 0x25A0, 0x00A0\r
  };\r
  \r
  #endif\r
@@@ -530,16 -299,90 +304,90 @@@ WCHAR ff_convert (      /* Converted charact
  }\r
  \r
  \r
- WCHAR ff_wtoupper (   /* Upper converted character */\r
-       WCHAR chr               /* Input character */\r
\r
+ WCHAR ff_wtoupper (   /* Returns upper converted character */\r
+       WCHAR chr               /* Unicode character to be upper converted (BMP only) */\r
  )\r
  {\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
-       for (i = 0; tbl_lower[i] && chr != tbl_lower[i]; i++) ;\r
+       /* Compressed upper conversion table */\r
 -      static const WCHAR cvt1[] = {   /* U+0000 - U+0FFF */\r
++      static const FLASH WCHAR cvt1[] = {     /* U+0000 - U+0FFF */\r
+               /* Basic Latin */\r
+               0x0061,0x031A,\r
+               /* Latin-1 Supplement */\r
+               0x00E0,0x0317,  0x00F8,0x0307,  0x00FF,0x0001,0x0178,\r
+               /* Latin Extended-A */\r
+               0x0100,0x0130,  0x0132,0x0106,  0x0139,0x0110,  0x014A,0x012E,  0x0179,0x0106,\r
+               /* Latin Extended-B */\r
+               0x0180,0x004D,0x0243,0x0181,0x0182,0x0182,0x0184,0x0184,0x0186,0x0187,0x0187,0x0189,0x018A,0x018B,0x018B,0x018D,0x018E,0x018F,0x0190,0x0191,0x0191,0x0193,0x0194,0x01F6,0x0196,0x0197,0x0198,0x0198,0x023D,0x019B,0x019C,0x019D,0x0220,0x019F,0x01A0,0x01A0,0x01A2,0x01A2,0x01A4,0x01A4,0x01A6,0x01A7,0x01A7,0x01A9,0x01AA,0x01AB,0x01AC,0x01AC,0x01AE,0x01AF,0x01AF,0x01B1,0x01B2,0x01B3,0x01B3,0x01B5,0x01B5,0x01B7,0x01B8,0x01B8,0x01BA,0x01BB,0x01BC,0x01BC,0x01BE,0x01F7,0x01C0,0x01C1,0x01C2,0x01C3,0x01C4,0x01C5,0x01C4,0x01C7,0x01C8,0x01C7,0x01CA,0x01CB,0x01CA,\r
+               0x01CD,0x0110,  0x01DD,0x0001,0x018E,  0x01DE,0x0112,  0x01F3,0x0003,0x01F1,0x01F4,0x01F4,  0x01F8,0x0128,\r
+               0x0222,0x0112,  0x023A,0x0009,0x2C65,0x023B,0x023B,0x023D,0x2C66,0x023F,0x0240,0x0241,0x0241,  0x0246,0x010A,\r
+               /* IPA Extensions */\r
+               0x0253,0x0040,0x0181,0x0186,0x0255,0x0189,0x018A,0x0258,0x018F,0x025A,0x0190,0x025C,0x025D,0x025E,0x025F,0x0193,0x0261,0x0262,0x0194,0x0264,0x0265,0x0266,0x0267,0x0197,0x0196,0x026A,0x2C62,0x026C,0x026D,0x026E,0x019C,0x0270,0x0271,0x019D,0x0273,0x0274,0x019F,0x0276,0x0277,0x0278,0x0279,0x027A,0x027B,0x027C,0x2C64,0x027E,0x027F,0x01A6,0x0281,0x0282,0x01A9,0x0284,0x0285,0x0286,0x0287,0x01AE,0x0244,0x01B1,0x01B2,0x0245,0x028D,0x028E,0x028F,0x0290,0x0291,0x01B7,\r
+               /* Greek, Coptic */\r
+               0x037B,0x0003,0x03FD,0x03FE,0x03FF,  0x03AC,0x0004,0x0386,0x0388,0x0389,0x038A,  0x03B1,0x0311,\r
+               0x03C2,0x0002,0x03A3,0x03A3,  0x03C4,0x0308,  0x03CC,0x0003,0x038C,0x038E,0x038F,  0x03D8,0x0118,\r
+               0x03F2,0x000A,0x03F9,0x03F3,0x03F4,0x03F5,0x03F6,0x03F7,0x03F7,0x03F9,0x03FA,0x03FA,\r
+               /* Cyrillic */\r
+               0x0430,0x0320,  0x0450,0x0710,  0x0460,0x0122,  0x048A,0x0136,  0x04C1,0x010E,  0x04CF,0x0001,0x04C0,  0x04D0,0x0144,\r
+               /* Armenian */\r
+               0x0561,0x0426,\r
\r
+               0x0000\r
+       };\r
 -      static const WCHAR cvt2[] = {   /* U+1000 - U+FFFF */\r
++      static const FLASH WCHAR cvt2[] = {     /* U+1000 - U+FFFF */\r
+               /* Phonetic Extensions */\r
+               0x1D7D,0x0001,0x2C63,\r
+               /* Latin Extended Additional */\r
+               0x1E00,0x0196,  0x1EA0,0x015A,\r
+               /* Greek Extended */\r
+               0x1F00,0x0608,  0x1F10,0x0606,  0x1F20,0x0608,  0x1F30,0x0608,  0x1F40,0x0606,\r
+               0x1F51,0x0007,0x1F59,0x1F52,0x1F5B,0x1F54,0x1F5D,0x1F56,0x1F5F,  0x1F60,0x0608,\r
+               0x1F70,0x000E,0x1FBA,0x1FBB,0x1FC8,0x1FC9,0x1FCA,0x1FCB,0x1FDA,0x1FDB,0x1FF8,0x1FF9,0x1FEA,0x1FEB,0x1FFA,0x1FFB,\r
+               0x1F80,0x0608,  0x1F90,0x0608,  0x1FA0,0x0608,  0x1FB0,0x0004,0x1FB8,0x1FB9,0x1FB2,0x1FBC,\r
+               0x1FCC,0x0001,0x1FC3,  0x1FD0,0x0602,  0x1FE0,0x0602,  0x1FE5,0x0001,0x1FEC,  0x1FF2,0x0001,0x1FFC,\r
+               /* Letterlike Symbols */\r
+               0x214E,0x0001,0x2132,\r
+               /* Number forms */\r
+               0x2170,0x0210,  0x2184,0x0001,0x2183,\r
+               /* Enclosed Alphanumerics */\r
+               0x24D0,0x051A,  0x2C30,0x042F,\r
+               /* Latin Extended-C */\r
+               0x2C60,0x0102,  0x2C67,0x0106, 0x2C75,0x0102,\r
+               /* Coptic */\r
+               0x2C80,0x0164,\r
+               /* Georgian Supplement */\r
+               0x2D00,0x0826,\r
+               /* Full-width */\r
+               0xFF41,0x031A,\r
\r
+               0x0000\r
+       };\r
+       const WCHAR *p;\r
+       WCHAR bc, nc, cmd;\r
\r
\r
+       p = chr < 0x1000 ? cvt1 : cvt2;\r
+       for (;;) {\r
+               bc = *p++;                                                              /* Get block base */\r
+               if (!bc || chr < bc) break;\r
+               nc = *p++; cmd = nc >> 8; nc &= 0xFF;   /* Get processing command and block size */\r
+               if (chr < bc + nc) {    /* In the block? */\r
+                       switch (cmd) {\r
+                       case 0: chr = p[chr - bc]; break;               /* Table conversion */\r
+                       case 1: chr -= (chr - bc) & 1; break;   /* Case pairs */\r
+                       case 2: chr -= 16; break;                               /* Shift -16 */\r
+                       case 3: chr -= 32; break;                               /* Shift -32 */\r
+                       case 4: chr -= 48; break;                               /* Shift -48 */\r
+                       case 5: chr -= 26; break;                               /* Shift -26 */\r
+                       case 6: chr += 8; break;                                /* Shift +8 */\r
+                       case 7: chr -= 80; break;                               /* Shift -80 */\r
+                       case 8: chr -= 0x1C60; break;                   /* Shift -0x1C60 */\r
+                       }\r
+                       break;\r
+               }\r
+               if (!cmd) p += nc;\r
+       }\r
  \r
-       return tbl_lower[i] ? tbl_upper[i] : chr;\r
+       return chr;\r
  }\r
\r
index da0052bade08d08233cd643b482375f0e7a7fcac,c43321f626caa48b180ae0db8b4f68dcd6a078ad..99b685c452533f5669d8a5a2439739ab2098f280
 -/*---------------------------------------------------------------------------/\r
 -/  FatFs - FAT file system module configuration file\r
 -/---------------------------------------------------------------------------*/\r
 -\r
 -#define _FFCONF 68020 /* Revision ID */\r
 -\r
 -/*---------------------------------------------------------------------------/\r
 -/ Function Configurations\r
 -/---------------------------------------------------------------------------*/\r
 -\r
 -#define _FS_READONLY  0\r
 -/* This option switches read-only configuration. (0:Read/Write or 1:Read-only)\r
 -/  Read-only configuration removes writing API functions, f_write(), f_sync(),\r
 -/  f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree()\r
 -/  and optional writing functions as well. */\r
 -\r
 -\r
 -#define _FS_MINIMIZE  0\r
 -/* This option defines minimization level to remove some basic API functions.\r
 -/\r
 -/   0: All basic functions are enabled.\r
 -/   1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()\r
 -/      are removed.\r
 -/   2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.\r
 -/   3: f_lseek() function is removed in addition to 2. */\r
 -\r
 -\r
 -#define       _USE_STRFUNC    0\r
 -/* This option switches string functions, f_gets(), f_putc(), f_puts() and\r
 -/  f_printf().\r
 -/\r
 -/  0: Disable string functions.\r
 -/  1: Enable without LF-CRLF conversion.\r
 -/  2: Enable with LF-CRLF conversion. */\r
 -\r
 -\r
 -#define _USE_FIND             0\r
 -/* This option switches filtered directory read functions, f_findfirst() and\r
 -/  f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */\r
 -\r
 -\r
 -#define       _USE_MKFS               0\r
 -/* This option switches f_mkfs() function. (0:Disable or 1:Enable) */\r
 -\r
 -\r
 -#define       _USE_FASTSEEK   0\r
 -/* This option switches fast seek function. (0:Disable or 1:Enable) */\r
 -\r
 -\r
 -#define       _USE_EXPAND             0\r
 -/* This option switches f_expand function. (0:Disable or 1:Enable) */\r
 -\r
 -\r
 -#define _USE_CHMOD            0\r
 -/* This option switches attribute manipulation functions, f_chmod() and f_utime().\r
 -/  (0:Disable or 1:Enable) Also _FS_READONLY needs to be 0 to enable this option. */\r
 -\r
 -\r
 -#define _USE_LABEL            0\r
 -/* This option switches volume label functions, f_getlabel() and f_setlabel().\r
 -/  (0:Disable or 1:Enable) */\r
 -\r
 -\r
 -#define       _USE_FORWARD    0\r
 -/* This option switches f_forward() function. (0:Disable or 1:Enable) */\r
 -\r
 -\r
 -/*---------------------------------------------------------------------------/\r
 -/ Locale and Namespace Configurations\r
 -/---------------------------------------------------------------------------*/\r
 -\r
 -#define _CODE_PAGE    932\r
 -/* This option specifies the OEM code page to be used on the target system.\r
 -/  Incorrect setting of the code page can cause a file open failure.\r
 -/\r
 -/   1   - ASCII (No extended character. Non-LFN cfg. only)\r
 -/   437 - U.S.\r
 -/   720 - Arabic\r
 -/   737 - Greek\r
 -/   771 - KBL\r
 -/   775 - Baltic\r
 -/   850 - Latin 1\r
 -/   852 - Latin 2\r
 -/   855 - Cyrillic\r
 -/   857 - Turkish\r
 -/   860 - Portuguese\r
 -/   861 - Icelandic\r
 -/   862 - Hebrew\r
 -/   863 - Canadian French\r
 -/   864 - Arabic\r
 -/   865 - Nordic\r
 -/   866 - Russian\r
 -/   869 - Greek 2\r
 -/   932 - Japanese (DBCS)\r
 -/   936 - Simplified Chinese (DBCS)\r
 -/   949 - Korean (DBCS)\r
 -/   950 - Traditional Chinese (DBCS)\r
 -*/\r
 -\r
 -\r
 -#define       _USE_LFN        0\r
 -#define       _MAX_LFN        255\r
 -/* The _USE_LFN switches the support of long file name (LFN).\r
 -/\r
 -/   0: Disable support of LFN. _MAX_LFN has no effect.\r
 -/   1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.\r
 -/   2: Enable LFN with dynamic working buffer on the STACK.\r
 -/   3: Enable LFN with dynamic working buffer on the HEAP.\r
 -/\r
 -/  To enable the LFN, Unicode handling functions (option/unicode.c) must be added\r
 -/  to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and\r
 -/  additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.\r
 -/  It should be set 255 to support full featured LFN operations.\r
 -/  When use stack for the working buffer, take care on stack overflow. When use heap\r
 -/  memory for the working buffer, memory management functions, ff_memalloc() and\r
 -/  ff_memfree(), must be added to the project. */\r
 -\r
 -\r
 -#define       _LFN_UNICODE    0\r
 -/* This option switches character encoding on the API. (0:ANSI/OEM or 1:UTF-16)\r
 -/  To use Unicode string for the path name, enable LFN and set _LFN_UNICODE = 1.\r
 -/  This option also affects behavior of string I/O functions. */\r
 -\r
 -\r
 -#define _STRF_ENCODE  3\r
 -/* When _LFN_UNICODE == 1, this option selects the character encoding ON THE FILE to\r
 -/  be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf().\r
 -/\r
 -/  0: ANSI/OEM\r
 -/  1: UTF-16LE\r
 -/  2: UTF-16BE\r
 -/  3: UTF-8\r
 -/\r
 -/  This option has no effect when _LFN_UNICODE == 0. */\r
 -\r
 -\r
 -#define _FS_RPATH     0\r
 -/* This option configures support of relative path.\r
 -/\r
 -/   0: Disable relative path and remove related functions.\r
 -/   1: Enable relative path. f_chdir() and f_chdrive() are available.\r
 -/   2: f_getcwd() function is available in addition to 1.\r
 -*/\r
 -\r
 -\r
 -/*---------------------------------------------------------------------------/\r
 -/ Drive/Volume Configurations\r
 -/---------------------------------------------------------------------------*/\r
 -\r
 -#define _VOLUMES      1\r
 -/* Number of volumes (logical drives) to be used. */\r
 -\r
 -\r
 -#define _STR_VOLUME_ID        0\r
 -#define _VOLUME_STRS  "RAM","NAND","CF","SD","SD2","USB","USB2","USB3"\r
 -/* _STR_VOLUME_ID switches string support of volume ID.\r
 -/  When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive\r
 -/  number in the path name. _VOLUME_STRS defines the drive ID strings for each\r
 -/  logical drives. Number of items must be equal to _VOLUMES. Valid characters for\r
 -/  the drive ID strings are: A-Z and 0-9. */\r
 -\r
 -\r
 -#define       _MULTI_PARTITION        0\r
 -/* This option switches support of multi-partition on a physical drive.\r
 -/  By default (0), each logical drive number is bound to the same physical drive\r
 -/  number and only an FAT volume found on the physical drive will be mounted.\r
 -/  When multi-partition is enabled (1), each logical drive number can be bound to\r
 -/  arbitrary physical drive and partition listed in the VolToPart[]. Also f_fdisk()\r
 -/  funciton will be available. */\r
 -\r
 -\r
 -#define       _MIN_SS         512\r
 -#define       _MAX_SS         512\r
 -/* These options configure the range of sector size to be supported. (512, 1024,\r
 -/  2048 or 4096) Always set both 512 for most systems, all type of memory cards and\r
 -/  harddisk. But a larger value may be required for on-board flash memory and some\r
 -/  type of optical media. When _MAX_SS is larger than _MIN_SS, FatFs is configured\r
 -/  to variable sector size and GET_SECTOR_SIZE command must be implemented to the\r
 -/  disk_ioctl() function. */\r
 -\r
 -\r
 -#define       _USE_TRIM       0\r
 -/* This option switches support of ATA-TRIM. (0:Disable or 1:Enable)\r
 -/  To enable Trim function, also CTRL_TRIM command should be implemented to the\r
 -/  disk_ioctl() function. */\r
 -\r
 -\r
 -#define _FS_NOFSINFO  0\r
 -/* If you need to know correct free space on the FAT32 volume, set bit 0 of this\r
 -/  option, and f_getfree() function at first time after volume mount will force\r
 -/  a full FAT scan. Bit 1 controls the use of last allocated cluster number.\r
 -/\r
 -/  bit0=0: Use free cluster count in the FSINFO if available.\r
 -/  bit0=1: Do not trust free cluster count in the FSINFO.\r
 -/  bit1=0: Use last allocated cluster number in the FSINFO if available.\r
 -/  bit1=1: Do not trust last allocated cluster number in the FSINFO.\r
 -*/\r
 -\r
 -\r
 -\r
 -/*---------------------------------------------------------------------------/\r
 -/ System Configurations\r
 -/---------------------------------------------------------------------------*/\r
 -\r
 -#define       _FS_TINY        0\r
 -/* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)\r
 -/  At the tiny configuration, size of file object (FIL) is reduced _MAX_SS bytes.\r
 -/  Instead of private sector buffer eliminated from the file object, common sector\r
 -/  buffer in the file system object (FATFS) is used for the file data transfer. */\r
 -\r
 -\r
 -#define _FS_EXFAT     0\r
 -/* This option switches support of exFAT file system. (0:Disable or 1:Enable)\r
 -/  When enable exFAT, also LFN needs to be enabled. (_USE_LFN >= 1)\r
 -/  Note that enabling exFAT discards C89 compatibility. */\r
 -\r
 -\r
 -#define _FS_NORTC     0\r
 -#define _NORTC_MON    1\r
 -#define _NORTC_MDAY   1\r
 -#define _NORTC_YEAR   2016\r
 -/* The option _FS_NORTC switches timestamp functiton. If the system does not have\r
 -/  any RTC function or valid timestamp is not needed, set _FS_NORTC = 1 to disable\r
 -/  the timestamp function. All objects modified by FatFs will have a fixed timestamp\r
 -/  defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR in local time.\r
 -/  To enable timestamp function (_FS_NORTC = 0), get_fattime() function need to be\r
 -/  added to the project to get current time form real-time clock. _NORTC_MON,\r
 -/  _NORTC_MDAY and _NORTC_YEAR have no effect. \r
 -/  These options have no effect at read-only configuration (_FS_READONLY = 1). */\r
 -\r
 -\r
 -#define       _FS_LOCK        0\r
 -/* The option _FS_LOCK switches file lock function to control duplicated file open\r
 -/  and illegal operation to open objects. This option must be 0 when _FS_READONLY\r
 -/  is 1.\r
 -/\r
 -/  0:  Disable file lock function. To avoid volume corruption, application program\r
 -/      should avoid illegal open, remove and rename to the open objects.\r
 -/  >0: Enable file lock function. The value defines how many files/sub-directories\r
 -/      can be opened simultaneously under file lock control. Note that the file\r
 -/      lock control is independent of re-entrancy. */\r
 -\r
 -\r
 -#define _FS_REENTRANT 0\r
 -#define _FS_TIMEOUT           1000\r
 -#define       _SYNC_t                 HANDLE\r
 -/* The option _FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs\r
 -/  module itself. Note that regardless of this option, file access to different\r
 -/  volume is always re-entrant and volume control functions, f_mount(), f_mkfs()\r
 -/  and f_fdisk() function, are always not re-entrant. Only file/directory access\r
 -/  to the same volume is under control of this function.\r
 -/\r
 -/   0: Disable re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.\r
 -/   1: Enable re-entrancy. Also user provided synchronization handlers,\r
 -/      ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()\r
 -/      function, must be added to the project. Samples are available in\r
 -/      option/syscall.c.\r
 -/\r
 -/  The _FS_TIMEOUT defines timeout period in unit of time tick.\r
 -/  The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,\r
 -/  SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be\r
 -/  included somewhere in the scope of ff.h. */\r
 -\r
 -/* #include <windows.h>       // O/S definitions  */\r
 -\r
 -\r
 -/*--- End of configuration options ---*/\r
 +/*---------------------------------------------------------------------------/
- /  FatFs - FAT file system module configuration file  R0.10c (C)ChaN, 2014
++/  FatFs - FAT file system module configuration file
 +/---------------------------------------------------------------------------*/
 +
- #define _FFCONF 80376 /* Revision ID */
++#define _FFCONF 68020 /* Revision ID */
 +
 +/*---------------------------------------------------------------------------/
- / Functions and Buffer Configurations
++/ Function Configurations
 +/---------------------------------------------------------------------------*/
 +
- #define       _FS_TINY                1
- /* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
- /  At the tiny configuration, size of the file object (FIL) is reduced _MAX_SS
- /  bytes. Instead of private sector buffer eliminated from the file object,
- /  common sector buffer in the file system object (FATFS) is used for the file
- /  data transfer. */
 +#define _FS_READONLY  0
 +/* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
- /  Read-only configuration removes basic writing API functions, f_write(),
- /  f_sync(), f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(),
- /  f_getfree() and optional writing functions as well. */
++/  Read-only configuration removes writing API functions, f_write(), f_sync(),
++/  f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree()
++/  and optional writing functions as well. */
 +
 +
 +#define _FS_MINIMIZE  0
- /* This option defines minimization level to remove some API functions.
++/* This option defines minimization level to remove some basic API functions.
 +/
 +/   0: All basic functions are enabled.
- /   1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_chmod(), f_utime(),
- /      f_truncate() and f_rename() function are removed.
++/   1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
++/      are removed.
 +/   2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
 +/   3: f_lseek() function is removed in addition to 2. */
 +
 +
- #define       _USE_STRFUNC    2
++#define       _USE_STRFUNC    0
 +/* This option switches string functions, f_gets(), f_putc(), f_puts() and
 +/  f_printf().
 +/
 +/  0: Disable string functions.
 +/  1: Enable without LF-CRLF conversion.
 +/  2: Enable with LF-CRLF conversion. */
 +
 +
++#define _USE_FIND             0
++/* This option switches filtered directory read functions, f_findfirst() and
++/  f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */
++
++
 +#define       _USE_MKFS               0
- /* This option switches f_mkfs() function. (0:Disable or 1:Enable)
- /  To enable it, also _FS_READONLY need to be set to 0. */
++/* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
 +
 +
 +#define       _USE_FASTSEEK   0
- /* This option switches fast seek feature. (0:Disable or 1:Enable) */
++/* This option switches fast seek function. (0:Disable or 1:Enable) */
++
 +
++#define       _USE_EXPAND             0
++/* This option switches f_expand function. (0:Disable or 1:Enable) */
 +
- #define _USE_LABEL            1
++
++#define _USE_CHMOD            0
++/* This option switches attribute manipulation functions, f_chmod() and f_utime().
++/  (0:Disable or 1:Enable) Also _FS_READONLY needs to be 0 to enable this option. */
++
++
++#define _USE_LABEL            0
 +/* This option switches volume label functions, f_getlabel() and f_setlabel().
 +/  (0:Disable or 1:Enable) */
 +
 +
 +#define       _USE_FORWARD    0
 +/* This option switches f_forward() function. (0:Disable or 1:Enable) */
- /* To enable it, also _FS_TINY need to be set to 1. */
 +
 +
 +/*---------------------------------------------------------------------------/
 +/ Locale and Namespace Configurations
 +/---------------------------------------------------------------------------*/
 +
- #define _CODE_PAGE    858
++#define _CODE_PAGE    850
 +/* This option specifies the OEM code page to be used on the target system.
 +/  Incorrect setting of the code page can cause a file open failure.
 +/
- /   932  - Japanese Shift_JIS (DBCS, OEM, Windows)
- /   936  - Simplified Chinese GBK (DBCS, OEM, Windows)
- /   949  - Korean (DBCS, OEM, Windows)
- /   950  - Traditional Chinese Big5 (DBCS, OEM, Windows)
- /   1250 - Central Europe (Windows)
- /   1251 - Cyrillic (Windows)
- /   1252 - Latin 1 (Windows)
- /   1253 - Greek (Windows)
- /   1254 - Turkish (Windows)
- /   1255 - Hebrew (Windows)
- /   1256 - Arabic (Windows)
- /   1257 - Baltic (Windows)
- /   1258 - Vietnam (OEM, Windows)
- /   437  - U.S. (OEM)
- /   720  - Arabic (OEM)
- /   737  - Greek (OEM)
- /   775  - Baltic (OEM)
- /   850  - Multilingual Latin 1 (OEM)
- /   858  - Multilingual Latin 1 + Euro (OEM)
- /   852  - Latin 2 (OEM)
- /   855  - Cyrillic (OEM)
- /   866  - Russian (OEM)
- /   857  - Turkish (OEM)
- /   862  - Hebrew (OEM)
- /   874  - Thai (OEM, Windows)
- /   1    - ASCII (No extended character. Valid for only non-LFN configuration.) */
++/   1   - ASCII (No extended character. Non-LFN cfg. only)
++/   437 - U.S.
++/   720 - Arabic
++/   737 - Greek
++/   771 - KBL
++/   775 - Baltic
++/   850 - Latin 1
++/   852 - Latin 2
++/   855 - Cyrillic
++/   857 - Turkish
++/   860 - Portuguese
++/   861 - Icelandic
++/   862 - Hebrew
++/   863 - Canadian French
++/   864 - Arabic
++/   865 - Nordic
++/   866 - Russian
++/   869 - Greek 2
++/   932 - Japanese (DBCS)
++/   936 - Simplified Chinese (DBCS)
++/   949 - Korean (DBCS)
++/   950 - Traditional Chinese (DBCS)
++*/
 +
 +
 +#define       _USE_LFN        1
 +#define       _MAX_LFN        128
- /* The _USE_LFN option switches the LFN feature.
++/* The _USE_LFN switches the support of long file name (LFN).
 +/
- /   0: Disable LFN feature. _MAX_LFN has no effect.
++/   0: Disable support of LFN. _MAX_LFN has no effect.
 +/   1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
 +/   2: Enable LFN with dynamic working buffer on the STACK.
 +/   3: Enable LFN with dynamic working buffer on the HEAP.
 +/
- /  When enable the LFN feature, Unicode handling functions (option/unicode.c) must
- /  be added to the project. The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes.
++/  To enable the LFN, Unicode handling functions (option/unicode.c) must be added
++/  to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
++/  additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
++/  It should be set 255 to support full featured LFN operations.
 +/  When use stack for the working buffer, take care on stack overflow. When use heap
 +/  memory for the working buffer, memory management functions, ff_memalloc() and
 +/  ff_memfree(), must be added to the project. */
 +
 +
 +#define       _LFN_UNICODE    0
- /* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
- /  To use Unicode string for the path name, enable LFN feature and set _LFN_UNICODE
- /  to 1. This option also affects behavior of string I/O functions. */
++/* This option switches character encoding on the API. (0:ANSI/OEM or 1:UTF-16)
++/  To use Unicode string for the path name, enable LFN and set _LFN_UNICODE = 1.
++/  This option also affects behavior of string I/O functions. */
 +
 +
 +#define _STRF_ENCODE  3
- /* When _LFN_UNICODE is 1, this option selects the character encoding on the file to
++/* When _LFN_UNICODE == 1, this option selects the character encoding ON THE FILE to
 +/  be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf().
 +/
 +/  0: ANSI/OEM
 +/  1: UTF-16LE
 +/  2: UTF-16BE
 +/  3: UTF-8
 +/
- /  When _LFN_UNICODE is 0, this option has no effect. */
++/  This option has no effect when _LFN_UNICODE == 0. */
 +
 +
 +#define _FS_RPATH     2
- /* This option configures relative path feature.
++/* This option configures support of relative path.
 +/
- /   0: Disable relative path feature and remove related functions.
- /   1: Enable relative path feature. f_chdir() and f_chdrive() are available.
++/   0: Disable relative path and remove related functions.
++/   1: Enable relative path. f_chdir() and f_chdrive() are available.
 +/   2: f_getcwd() function is available in addition to 1.
- /
- /  Note that directory items read via f_readdir() are affected by this option. */
++*/
 +
 +
 +/*---------------------------------------------------------------------------/
 +/ Drive/Volume Configurations
 +/---------------------------------------------------------------------------*/
 +
 +#define _VOLUMES      2
 +/* Number of volumes (logical drives) to be used. */
 +
 +
 +#define _STR_VOLUME_ID        0
- #define _VOLUME_STRS  "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
- /* _STR_VOLUME_ID option switches string volume ID feature.
++#define _VOLUME_STRS  "RAM","NAND","CF","SD","SD2","USB","USB2","USB3"
++/* _STR_VOLUME_ID switches string support of volume ID.
 +/  When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
 +/  number in the path name. _VOLUME_STRS defines the drive ID strings for each
 +/  logical drives. Number of items must be equal to _VOLUMES. Valid characters for
 +/  the drive ID strings are: A-Z and 0-9. */
 +
 +
 +#define       _MULTI_PARTITION        0
- /* This option switches multi-partition feature. By default (0), each logical drive
- /  number is bound to the same physical drive number and only an FAT volume found on
- /  the physical drive will be mounted. When multi-partition feature is enabled (1),
- /  each logical drive number is bound to arbitrary physical drive and partition
- /  listed in the VolToPart[]. Also f_fdisk() funciton will be enabled. */
++/* This option switches support of multi-partition on a physical drive.
++/  By default (0), each logical drive number is bound to the same physical drive
++/  number and only an FAT volume found on the physical drive will be mounted.
++/  When multi-partition is enabled (1), each logical drive number can be bound to
++/  arbitrary physical drive and partition listed in the VolToPart[]. Also f_fdisk()
++/  funciton will be available. */
 +
 +
 +#define       _MIN_SS         512
 +#define       _MAX_SS         512
 +/* These options configure the range of sector size to be supported. (512, 1024,
 +/  2048 or 4096) Always set both 512 for most systems, all type of memory cards and
 +/  harddisk. But a larger value may be required for on-board flash memory and some
 +/  type of optical media. When _MAX_SS is larger than _MIN_SS, FatFs is configured
 +/  to variable sector size and GET_SECTOR_SIZE command must be implemented to the
 +/  disk_ioctl() function. */
 +
 +
 +#define       _USE_TRIM       0
- /* This option switches ATA-TRIM feature. (0:Disable or 1:Enable)
- /  To enable Trim feature, also CTRL_TRIM command should be implemented to the
++/* This option switches support of ATA-TRIM. (0:Disable or 1:Enable)
++/  To enable Trim function, also CTRL_TRIM command should be implemented to the
 +/  disk_ioctl() function. */
 +
 +
 +#define _FS_NOFSINFO  0
 +/* If you need to know correct free space on the FAT32 volume, set bit 0 of this
 +/  option, and f_getfree() function at first time after volume mount will force
 +/  a full FAT scan. Bit 1 controls the use of last allocated cluster number.
 +/
 +/  bit0=0: Use free cluster count in the FSINFO if available.
 +/  bit0=1: Do not trust free cluster count in the FSINFO.
 +/  bit1=0: Use last allocated cluster number in the FSINFO if available.
 +/  bit1=1: Do not trust last allocated cluster number in the FSINFO.
 +*/
 +
 +
 +
 +/*---------------------------------------------------------------------------/
 +/ System Configurations
 +/---------------------------------------------------------------------------*/
 +
++#define       _FS_TINY        1
++/* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
++/  At the tiny configuration, size of file object (FIL) is reduced _MAX_SS bytes.
++/  Instead of private sector buffer eliminated from the file object, common sector
++/  buffer in the file system object (FATFS) is used for the file data transfer. */
++
++
++#define _FS_EXFAT     0
++/* This option switches support of exFAT file system. (0:Disable or 1:Enable)
++/  When enable exFAT, also LFN needs to be enabled. (_USE_LFN >= 1)
++/  Note that enabling exFAT discards C89 compatibility. */
++
++
 +#define _FS_NORTC     0
- #define _NORTC_MON    11
- #define _NORTC_MDAY   9
- #define _NORTC_YEAR   2014
- /* The _FS_NORTC option switches timestamp feature. If the system does not have
- /  an RTC function or valid timestamp is not needed, set _FS_NORTC to 1 to disable
- /  the timestamp feature. All objects modified by FatFs will have a fixed timestamp
- /  defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR.
- /  When timestamp feature is enabled (_FS_NORTC       == 0), get_fattime() function need
- /  to be added to the project to read current time form RTC. _NORTC_MON,
- /  _NORTC_MDAY and _NORTC_YEAR have no effect.
- /  These options have no effect at read-only configuration (_FS_READONLY == 1). */
++#define _NORTC_MON    1
++#define _NORTC_MDAY   1
++#define _NORTC_YEAR   2016
++/* The option _FS_NORTC switches timestamp functiton. If the system does not have
++/  any RTC function or valid timestamp is not needed, set _FS_NORTC = 1 to disable
++/  the timestamp function. All objects modified by FatFs will have a fixed timestamp
++/  defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR in local time.
++/  To enable timestamp function (_FS_NORTC = 0), get_fattime() function need to be
++/  added to the project to get current time form real-time clock. _NORTC_MON,
++/  _NORTC_MDAY and _NORTC_YEAR have no effect. 
++/  These options have no effect at read-only configuration (_FS_READONLY = 1). */
 +
 +
 +#define       _FS_LOCK        0
- /* The _FS_LOCK option switches file lock feature to control duplicated file open
++/* The option _FS_LOCK switches file lock function to control duplicated file open
 +/  and illegal operation to open objects. This option must be 0 when _FS_READONLY
 +/  is 1.
 +/
- /  0:  Disable file lock feature. To avoid volume corruption, application program
++/  0:  Disable file lock function. To avoid volume corruption, application program
 +/      should avoid illegal open, remove and rename to the open objects.
- /  >0: Enable file lock feature. The value defines how many files/sub-directories
++/  >0: Enable file lock function. The value defines how many files/sub-directories
 +/      can be opened simultaneously under file lock control. Note that the file
- /      lock feature is independent of re-entrancy. */
++/      lock control is independent of re-entrancy. */
 +
 +
 +#define _FS_REENTRANT 0
 +#define _FS_TIMEOUT           1000
 +#define       _SYNC_t                 HANDLE
- /* The _FS_REENTRANT option switches the re-entrancy (thread safe) of the FatFs
++/* The option _FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs
 +/  module itself. Note that regardless of this option, file access to different
 +/  volume is always re-entrant and volume control functions, f_mount(), f_mkfs()
 +/  and f_fdisk() function, are always not re-entrant. Only file/directory access
- /  to the same volume is under control of this feature.
++/  to the same volume is under control of this function.
 +/
 +/   0: Disable re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
 +/   1: Enable re-entrancy. Also user provided synchronization handlers,
 +/      ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
 +/      function, must be added to the project. Samples are available in
 +/      option/syscall.c.
 +/
 +/  The _FS_TIMEOUT defines timeout period in unit of time tick.
 +/  The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
- /  SemaphoreHandle_t and etc.. */
++/  SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
++/  included somewhere in the scope of ff.h. */
 +
++/* #include <windows.h>       // O/S definitions  */
 +
- #define _WORD_ACCESS  1       /* 0 or 1 */
- /* The _WORD_ACCESS option is an only platform dependent option. It defines
- /  which access method is used to the word data on the FAT volume.
- /
- /   0: Byte-by-byte access. Always compatible with all platforms.
- /   1: Word access. Do not choose this unless under both the following conditions.
- /
- /  * Address misaligned memory access is always allowed to ALL instructions.
- /  * Byte order on the memory is little-endian.
- /
- /  If it is the case, _WORD_ACCESS can also be set to 1 to reduce code size.
- /  Following table shows allowable settings of some processor types.
- /
- /   ARM7TDMI    0           ColdFire    0           V850E       0
- /   Cortex-M3   0           Z80         0/1         V850ES      0/1
- /   Cortex-M0   0           x86         0/1         TLCS-870    0/1
- /   AVR         0/1         RX600(LE)   0/1         TLCS-900    0/1
- /   AVR32       0           RL78        0           R32C        0
- /   PIC18       0/1         SH-2        0           M16C        0/1
- /   PIC24       0           H8S         0           MSP430      0
- /   PIC32       0           H8/300H     0           8051        0/1
- */
++
++/*--- End of configuration options ---*/
Simple merge