diff --git a/src/conio/sdl_con.c b/src/conio/sdl_con.c
index 9957a716c815b48d281ff222712e3f00a36d916f..a70953ecd24ca5666f604cf9ddf07c2c10072a20 100644
--- a/src/conio/sdl_con.c
+++ b/src/conio/sdl_con.c
@@ -705,7 +705,9 @@ sdl_add_keys(uint8_t *utf8s)
 	char *chars;
 	char *p;
 
+fprintf(stderr, "Got key: %c (%u)\n", utf8s[0], utf8s[0]);
 	chars = utf8_to_cp(getcodepage(), utf8s, '\x00', strlen((char *)utf8s), NULL);
+fprintf(stderr, "Xlat key: %c (%u)\n", (unsigned char)chars[0], (unsigned char)chars[0]);
 	if (chars) {
 		for (p = chars; *p; p++) {
 			sdl_add_key(*((uint8_t *)p));
diff --git a/src/conio/utf8_codepages.c b/src/conio/utf8_codepages.c
index 3bd18e7ea0d2be1461e1d7ccf594c6f96ca2d2d0..b3a9005ce40ce8b1e1deb4202e38ef0b4656e374 100644
--- a/src/conio/utf8_codepages.c
+++ b/src/conio/utf8_codepages.c
@@ -10,7 +10,7 @@ struct ciolib_cpmap {
 // Sorted by unicode codepoint...
 const static struct ciolib_cpmap cp437_table[162] = {
 	{0x0000, 0},   {0x00A0, 255}, {0x00A1, 173}, {0x00A2, 155},
-	{0x00A3, 156}, {0x00A5, 157}, {0x00A6, '|'}, {0x00A7, 21},  {0x00AA, 166},
+	{0x00A3, 156}, {0x00A5, 157}, {0x00A6, 124}, {0x00A7, 21},  {0x00AA, 166},
 	{0x00AB, 174}, {0x00AC, 170}, {0x00B0, 248}, {0x00B1, 241},
 	{0x00B2, 253}, {0x00B5, 230}, {0x00B6, 20},  {0x00B7, 250},
 	{0x00BA, 167}, {0x00BB, 175}, {0x00BC, 172}, {0x00BD, 171},
@@ -78,47 +78,46 @@ const static uint32_t cp437_unicode_table[128] = {
 	0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0
 };
 
-const static struct ciolib_cpmap cp1251_table[159] = {
-	{0x00a0, 160}, {0x00a4, 164}, {0x00a6, 166}, {0x00a7,  21},
-	{0x00a7, 167}, {0x00a9, 169}, {0x00ab, 171}, {0x00ac, 172},
-	{0x00ad, 173}, {0x00ae, 174}, {0x00b0, 176}, {0x00b1, 177},
-	{0x00b5, 181}, {0x00b6,  20}, {0x00b6, 182}, {0x00b7, 183},
-	{0x00bb, 187}, {0x0401, 168}, {0x0402, 128}, {0x0403, 129},
-	{0x0404, 170}, {0x0405, 189}, {0x0406, 178}, {0x0407, 175},
-	{0x0408, 163}, {0x0409, 138}, {0x040a, 140}, {0x040b, 142},
-	{0x040c, 141}, {0x040e, 161}, {0x040f, 143}, {0x0410, 192},
-	{0x0411, 193}, {0x0412, 194}, {0x0413, 195}, {0x0414, 196},
-	{0x0415, 197}, {0x0416, 198}, {0x0417, 199}, {0x0418, 200},
-	{0x0419, 201}, {0x041a, 202}, {0x041b, 203}, {0x041c, 204},
-	{0x041d, 205}, {0x041e, 206}, {0x041f, 207}, {0x0420, 208},
-	{0x0421, 209}, {0x0422, 210}, {0x0423, 211}, {0x0424, 212},
-	{0x0425, 213}, {0x0426, 214}, {0x0427, 215}, {0x0428, 216},
-	{0x0429, 217}, {0x042a, 218}, {0x042b, 219}, {0x042c, 220},
-	{0x042d, 221}, {0x042e, 222}, {0x042f, 223}, {0x0430, 224},
-	{0x0431, 225}, {0x0432, 226}, {0x0433, 227}, {0x0434, 228},
-	{0x0435, 229}, {0x0436, 230}, {0x0437, 231}, {0x0438, 232},
-	{0x0439, 233}, {0x043a, 234}, {0x043b, 235}, {0x043c, 236},
-	{0x043d, 237}, {0x043e, 238}, {0x043f, 239}, {0x0440, 240},
-	{0x0441, 241}, {0x0442, 242}, {0x0443, 243}, {0x0444, 244},
-	{0x0445, 245}, {0x0446, 246}, {0x0447, 247}, {0x0448, 248},
-	{0x0449, 249}, {0x044a, 250}, {0x044b, 251}, {0x044c, 252},
-	{0x044d, 253}, {0x044e, 254}, {0x044f, 255}, {0x0451, 184},
-	{0x0452, 144}, {0x0453, 131}, {0x0454, 186}, {0x0455, 190},
-	{0x0456, 179}, {0x0457, 191}, {0x0458, 188}, {0x0459, 154},
-	{0x045a, 156}, {0x045b, 158}, {0x045c, 157}, {0x045e, 162},
-	{0x045f, 159}, {0x0490, 165}, {0x0491, 180}, {0x2013, 150},
-	{0x2014, 151}, {0x2018, 145}, {0x2019, 146}, {0x201a, 130},
-	{0x201c, 147}, {0x201d, 148}, {0x201e, 132}, {0x2020, 134},
-	{0x2021, 135}, {0x2022, 149}, {0x2022,   7}, {0x2026, 133},
-	{0x2030, 137}, {0x2039, 139}, {0x203a, 155}, {0x203c,  19},
-	{0x20ac, 136}, {0x2116, 185}, {0x2122, 153}, {0x2190,  27},
-	{0x2191,  24}, {0x2192,  26}, {0x2193,  25}, {0x2194,  29},
-	{0x2195,  18}, {0x21a8,  23}, {0x221f,  28}, {0x25ac,  22},
-	{0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31}, {0x25c4,  17},
-	{0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10}, {0x263a,   1},
-	{0x263b,   2}, {0x263c,  15}, {0x2640,  12}, {0x2642,  11},
-	{0x2660,   6}, {0x2663,   5}, {0x2665,   3}, {0x2666,   4},
-	{0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
+const static struct ciolib_cpmap cp1251_table[156] = {
+	{0x00a0, 160}, {0x00a4, 164}, {0x00a6, 166}, {0x00a7, 167},
+	{0x00a9, 169}, {0x00ab, 171}, {0x00ac, 172}, {0x00ad, 173},
+	{0x00ae, 174}, {0x00b0, 176}, {0x00b1, 177}, {0x00b5, 181},
+	{0x00b6, 20}, {0x00b7, 183}, {0x00bb, 187}, {0x0401, 168},
+	{0x0402, 128}, {0x0403, 129}, {0x0404, 170}, {0x0405, 189},
+	{0x0406, 178}, {0x0407, 175}, {0x0408, 163}, {0x0409, 138},
+	{0x040a, 140}, {0x040b, 142}, {0x040c, 141}, {0x040e, 161},
+	{0x040f, 143}, {0x0410, 192}, {0x0411, 193}, {0x0412, 194},
+	{0x0413, 195}, {0x0414, 196}, {0x0415, 197}, {0x0416, 198},
+	{0x0417, 199}, {0x0418, 200}, {0x0419, 201}, {0x041a, 202},
+	{0x041b, 203}, {0x041c, 204}, {0x041d, 205}, {0x041e, 206},
+	{0x041f, 207}, {0x0420, 208}, {0x0421, 209}, {0x0422, 210},
+	{0x0423, 211}, {0x0424, 212}, {0x0425, 213}, {0x0426, 214},
+	{0x0427, 215}, {0x0428, 216}, {0x0429, 217}, {0x042a, 218},
+	{0x042b, 219}, {0x042c, 220}, {0x042d, 221}, {0x042e, 222},
+	{0x042f, 223}, {0x0430, 224}, {0x0431, 225}, {0x0432, 226},
+	{0x0433, 227}, {0x0434, 228}, {0x0435, 229}, {0x0436, 230},
+	{0x0437, 231}, {0x0438, 232}, {0x0439, 233}, {0x043a, 234},
+	{0x043b, 235}, {0x043c, 236}, {0x043d, 237}, {0x043e, 238},
+	{0x043f, 239}, {0x0440, 240}, {0x0441, 241}, {0x0442, 242},
+	{0x0443, 243}, {0x0444, 244}, {0x0445, 245}, {0x0446, 246},
+	{0x0447, 247}, {0x0448, 248}, {0x0449, 249}, {0x044a, 250},
+	{0x044b, 251}, {0x044c, 252}, {0x044d, 253}, {0x044e, 254},
+	{0x044f, 255}, {0x0451, 184}, {0x0452, 144}, {0x0453, 131},
+	{0x0454, 186}, {0x0455, 190}, {0x0456, 179}, {0x0457, 191},
+	{0x0458, 188}, {0x0459, 154}, {0x045a, 156}, {0x045b, 158},
+	{0x045c, 157}, {0x045e, 162}, {0x045f, 159}, {0x0490, 165},
+	{0x0491, 180}, {0x2013, 150}, {0x2014, 151}, {0x2018, 145},
+	{0x2019, 146}, {0x201a, 130}, {0x201c, 147}, {0x201d, 148},
+	{0x201e, 132}, {0x2020, 134}, {0x2021, 135}, {0x2022, 7},
+	{0x2026, 133}, {0x2030, 137}, {0x2039, 139}, {0x203a, 155},
+	{0x203c, 19}, {0x20ac, 136}, {0x2116, 185}, {0x2122, 153},
+	{0x2190, 27}, {0x2191, 24}, {0x2192, 26}, {0x2193, 25},
+	{0x2194, 29}, {0x2195, 18}, {0x21a8, 23}, {0x221f, 28},
+	{0x25ac, 22}, {0x25b2, 30}, {0x25ba, 16}, {0x25bc, 31},
+	{0x25c4, 17}, {0x25cb, 9}, {0x25d8, 8}, {0x25d9, 10},
+	{0x263a, 1}, {0x263b, 2}, {0x263c, 15}, {0x2640, 12},
+	{0x2642, 11}, {0x2660, 6}, {0x2663, 5}, {0x2665, 3},
+	{0x2666, 4}, {0x266a, 13}, {0x266b, 14}, {0xfffd, 63}
 };
 
 const static uint32_t cp1251_unicode_table[128] = {
@@ -209,39 +208,39 @@ const static uint32_t empty_ext_table[32] = {
 	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd
 };
 
-const static struct ciolib_cpmap iso8859_2_table[128] = {
-	{0x00a0, 160}, {0x00a4, 164}, {0x00a7, 167}, {0x00a7,  21},
-	{0x00a8, 168}, {0x00ad, 173}, {0x00b0, 176}, {0x00b4, 180},
-	{0x00b6,  20}, {0x00b8, 184}, {0x00c1, 193}, {0x00c2, 194},
-	{0x00c4, 196}, {0x00c7, 199}, {0x00c9, 201}, {0x00cb, 203},
-	{0x00cd, 205}, {0x00ce, 206}, {0x00d3, 211}, {0x00d4, 212},
-	{0x00d6, 214}, {0x00d7, 215}, {0x00da, 218}, {0x00dc, 220},
-	{0x00dd, 221}, {0x00df, 223}, {0x00e1, 225}, {0x00e2, 226},
-	{0x00e4, 228}, {0x00e7, 231}, {0x00e9, 233}, {0x00eb, 235},
-	{0x00ed, 237}, {0x00ee, 238}, {0x00f3, 243}, {0x00f4, 244},
-	{0x00f6, 246}, {0x00f7, 247}, {0x00fa, 250}, {0x00fc, 252},
-	{0x00fd, 253}, {0x0102, 195}, {0x0103, 227}, {0x0104, 161},
-	{0x0105, 177}, {0x0106, 198}, {0x0107, 230}, {0x010c, 200},
-	{0x010d, 232}, {0x010e, 207}, {0x010f, 239}, {0x0110, 208},
-	{0x0111, 240}, {0x0118, 202}, {0x0119, 234}, {0x011a, 204},
-	{0x011b, 236}, {0x0139, 197}, {0x013a, 229}, {0x013d, 165},
-	{0x013e, 181}, {0x0141, 163}, {0x0142, 179}, {0x0143, 209},
-	{0x0144, 241}, {0x0147, 210}, {0x0148, 242}, {0x0150, 213},
-	{0x0151, 245}, {0x0154, 192}, {0x0155, 224}, {0x0158, 216},
-	{0x0159, 248}, {0x015a, 166}, {0x015b, 182}, {0x015e, 170},
-	{0x015f, 186}, {0x0160, 169}, {0x0161, 185}, {0x0162, 222},
-	{0x0163, 254}, {0x0164, 171}, {0x0165, 187}, {0x016e, 217},
-	{0x016f, 249}, {0x0170, 219}, {0x0171, 251}, {0x0179, 172},
-	{0x017a, 188}, {0x017b, 175}, {0x017c, 191}, {0x017d, 174},
-	{0x017e, 190}, {0x02c7, 183}, {0x02d8, 162}, {0x02d9, 255},
-	{0x02db, 178}, {0x02dd, 189}, {0x2022,   7}, {0x203c,  19},
-	{0x2190,  27}, {0x2191,  24}, {0x2192,  26}, {0x2193,  25},
-	{0x2194,  29}, {0x2195,  18}, {0x21a8,  23}, {0x221f,  28},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd,   0}
+const static struct ciolib_cpmap iso8859_2_table[127] = {
+	{0x00a0, 160}, {0x00a4, 164}, {0x00a7, 167}, {0x00a8, 168},
+	{0x00ad, 173}, {0x00b0, 176}, {0x00b4, 180}, {0x00b6, 20},
+	{0x00b8, 184}, {0x00c1, 193}, {0x00c2, 194}, {0x00c4, 196},
+	{0x00c7, 199}, {0x00c9, 201}, {0x00cb, 203}, {0x00cd, 205},
+	{0x00ce, 206}, {0x00d3, 211}, {0x00d4, 212}, {0x00d6, 214},
+	{0x00d7, 215}, {0x00da, 218}, {0x00dc, 220}, {0x00dd, 221},
+	{0x00df, 223}, {0x00e1, 225}, {0x00e2, 226}, {0x00e4, 228},
+	{0x00e7, 231}, {0x00e9, 233}, {0x00eb, 235}, {0x00ed, 237},
+	{0x00ee, 238}, {0x00f3, 243}, {0x00f4, 244}, {0x00f6, 246},
+	{0x00f7, 247}, {0x00fa, 250}, {0x00fc, 252}, {0x00fd, 253},
+	{0x0102, 195}, {0x0103, 227}, {0x0104, 161}, {0x0105, 177},
+	{0x0106, 198}, {0x0107, 230}, {0x010c, 200}, {0x010d, 232},
+	{0x010e, 207}, {0x010f, 239}, {0x0110, 208}, {0x0111, 240},
+	{0x0118, 202}, {0x0119, 234}, {0x011a, 204}, {0x011b, 236},
+	{0x0139, 197}, {0x013a, 229}, {0x013d, 165}, {0x013e, 181},
+	{0x0141, 163}, {0x0142, 179}, {0x0143, 209}, {0x0144, 241},
+	{0x0147, 210}, {0x0148, 242}, {0x0150, 213}, {0x0151, 245},
+	{0x0154, 192}, {0x0155, 224}, {0x0158, 216}, {0x0159, 248},
+	{0x015a, 166}, {0x015b, 182}, {0x015e, 170}, {0x015f, 186},
+	{0x0160, 169}, {0x0161, 185}, {0x0162, 222}, {0x0163, 254},
+	{0x0164, 171}, {0x0165, 187}, {0x016e, 217}, {0x016f, 249},
+	{0x0170, 219}, {0x0171, 251}, {0x0179, 172}, {0x017a, 188},
+	{0x017b, 175}, {0x017c, 191}, {0x017d, 174}, {0x017e, 190},
+	{0x02c7, 183}, {0x02d8, 162}, {0x02d9, 255}, {0x02db, 178},
+	{0x02dd, 189}, {0x2022, 7}, {0x203c, 19}, {0x2190, 27},
+	{0x2191, 24}, {0x2192, 26}, {0x2193, 25}, {0x2194, 29},
+	{0x2195, 18}, {0x21a8, 23}, {0x221f, 28}, {0x25ac, 22},
+	{0x25b2, 30}, {0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17},
+	{0x25cb, 9}, {0x25d8, 8}, {0x25d9, 10}, {0x263a, 1},
+	{0x263b, 2}, {0x263c, 15}, {0x2640, 12}, {0x2642, 11},
+	{0x2660, 6}, {0x2663, 5}, {0x2665, 3}, {0x2666, 4},
+	{0x266a, 13}, {0x266b, 14}, {0xfffd, 63}
 };
 
 const static uint32_t iso8859_2_unicode_table[128] = {
@@ -263,39 +262,39 @@ const static uint32_t iso8859_2_unicode_table[128] = {
 	0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9
 };
 
-const static struct ciolib_cpmap iso8859_4_table[128] = {
-	{0x00a0, 160}, {0x00a4, 164}, {0x00a7,  21}, {0x00a7, 167},
-	{0x00a8, 168}, {0x00ad, 173}, {0x00af, 175}, {0x00b0, 176},
-	{0x00b4, 180}, {0x00b6,  20}, {0x00b8, 184}, {0x00c1, 193},
-	{0x00c2, 194}, {0x00c3, 195}, {0x00c4, 196}, {0x00c5, 197},
-	{0x00c6, 198}, {0x00c9, 201}, {0x00cb, 203}, {0x00cd, 205},
-	{0x00ce, 206}, {0x00d4, 212}, {0x00d5, 213}, {0x00d6, 214},
-	{0x00d7, 215}, {0x00d8, 216}, {0x00da, 218}, {0x00db, 219},
-	{0x00dc, 220}, {0x00df, 223}, {0x00e1, 225}, {0x00e2, 226},
-	{0x00e3, 227}, {0x00e4, 228}, {0x00e5, 229}, {0x00e6, 230},
-	{0x00e9, 233}, {0x00eb, 235}, {0x00ed, 237}, {0x00ee, 238},
-	{0x00f4, 244}, {0x00f5, 245}, {0x00f6, 246}, {0x00f7, 247},
-	{0x00f8, 248}, {0x00fa, 250}, {0x00fb, 251}, {0x00fc, 252},
-	{0x0100, 192}, {0x0101, 224}, {0x0104, 161}, {0x0105, 177},
-	{0x010c, 200}, {0x010d, 232}, {0x0110, 208}, {0x0111, 240},
-	{0x0112, 170}, {0x0113, 186}, {0x0116, 204}, {0x0117, 236},
-	{0x0118, 202}, {0x0119, 234}, {0x0122, 171}, {0x0123, 187},
-	{0x0128, 165}, {0x0129, 181}, {0x012a, 207}, {0x012b, 239},
-	{0x012e, 199}, {0x012f, 231}, {0x0136, 211}, {0x0137, 243},
-	{0x0138, 162}, {0x013b, 166}, {0x013c, 182}, {0x0145, 209},
-	{0x0146, 241}, {0x014a, 189}, {0x014b, 191}, {0x014c, 210},
-	{0x014d, 242}, {0x0156, 163}, {0x0157, 179}, {0x0160, 169},
-	{0x0161, 185}, {0x0166, 172}, {0x0167, 188}, {0x0168, 221},
-	{0x0169, 253}, {0x016a, 222}, {0x016b, 254}, {0x0172, 217},
-	{0x0173, 249}, {0x017d, 174}, {0x017e, 190}, {0x02c7, 183},
-	{0x02d9, 255}, {0x02db, 178}, {0x2022,   7}, {0x203c,  19},
-	{0x2190,  27}, {0x2191,  24}, {0x2192,  26}, {0x2193,  25},
-	{0x2194,  29}, {0x2195,  18}, {0x21a8,  23}, {0x221f,  28},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
+const static struct ciolib_cpmap iso8859_4_table[127] = {
+	{0x00a0, 160}, {0x00a4, 164}, {0x00a7, 167}, {0x00a8, 168},
+	{0x00ad, 173}, {0x00af, 175}, {0x00b0, 176}, {0x00b4, 180},
+	{0x00b6, 20}, {0x00b8, 184}, {0x00c1, 193}, {0x00c2, 194},
+	{0x00c3, 195}, {0x00c4, 196}, {0x00c5, 197}, {0x00c6, 198},
+	{0x00c9, 201}, {0x00cb, 203}, {0x00cd, 205}, {0x00ce, 206},
+	{0x00d4, 212}, {0x00d5, 213}, {0x00d6, 214}, {0x00d7, 215},
+	{0x00d8, 216}, {0x00da, 218}, {0x00db, 219}, {0x00dc, 220},
+	{0x00df, 223}, {0x00e1, 225}, {0x00e2, 226}, {0x00e3, 227},
+	{0x00e4, 228}, {0x00e5, 229}, {0x00e6, 230}, {0x00e9, 233},
+	{0x00eb, 235}, {0x00ed, 237}, {0x00ee, 238}, {0x00f4, 244},
+	{0x00f5, 245}, {0x00f6, 246}, {0x00f7, 247}, {0x00f8, 248},
+	{0x00fa, 250}, {0x00fb, 251}, {0x00fc, 252}, {0x0100, 192},
+	{0x0101, 224}, {0x0104, 161}, {0x0105, 177}, {0x010c, 200},
+	{0x010d, 232}, {0x0110, 208}, {0x0111, 240}, {0x0112, 170},
+	{0x0113, 186}, {0x0116, 204}, {0x0117, 236}, {0x0118, 202},
+	{0x0119, 234}, {0x0122, 171}, {0x0123, 187}, {0x0128, 165},
+	{0x0129, 181}, {0x012a, 207}, {0x012b, 239}, {0x012e, 199},
+	{0x012f, 231}, {0x0136, 211}, {0x0137, 243}, {0x0138, 162},
+	{0x013b, 166}, {0x013c, 182}, {0x0145, 209}, {0x0146, 241},
+	{0x014a, 189}, {0x014b, 191}, {0x014c, 210}, {0x014d, 242},
+	{0x0156, 163}, {0x0157, 179}, {0x0160, 169}, {0x0161, 185},
+	{0x0166, 172}, {0x0167, 188}, {0x0168, 221}, {0x0169, 253},
+	{0x016a, 222}, {0x016b, 254}, {0x0172, 217}, {0x0173, 249},
+	{0x017d, 174}, {0x017e, 190}, {0x02c7, 183}, {0x02d9, 255},
+	{0x02db, 178}, {0x2022, 7}, {0x203c, 19}, {0x2190, 27},
+	{0x2191, 24}, {0x2192, 26}, {0x2193, 25}, {0x2194, 29},
+	{0x2195, 18}, {0x21a8, 23}, {0x221f, 28}, {0x25ac, 22},
+	{0x25b2, 30}, {0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17},
+	{0x25cb, 9}, {0x25d8, 8}, {0x25d9, 10}, {0x263a, 1},
+	{0x263b, 2}, {0x263c, 15}, {0x2640, 12}, {0x2642, 11},
+	{0x2660, 6}, {0x2663, 5}, {0x2665, 3}, {0x2666, 4},
+	{0x266a, 13}, {0x266b, 14}, {0xfffd, 63}
 };
 
 const static uint32_t iso8859_4_unicode_table[128] = {
@@ -443,39 +442,39 @@ const static uint32_t cp866m_unicode_table[128] = {
 	0x00b0, 0x2219, 0x00b7, 0x221a, 0x045F, 0x00B2, 0x25a0, 0x00a0
 };
 
-const static struct ciolib_cpmap iso8859_9_table[128] = {
+const static struct ciolib_cpmap iso8859_9_table[126] = {
 	{0x00a0, 160}, {0x00a1, 161}, {0x00a2, 162}, {0x00a3, 163},
 	{0x00a4, 164}, {0x00a5, 165}, {0x00a6, 166}, {0x00a7, 167},
-	{0x00a7,  21}, {0x00a8, 168}, {0x00a9, 169}, {0x00aa, 170},
-	{0x00ab, 171}, {0x00ac, 172}, {0x00ad, 173}, {0x00ae, 174},
-	{0x00af, 175}, {0x00b0, 176}, {0x00b1, 177}, {0x00b2, 178},
-	{0x00b3, 179}, {0x00b4, 180}, {0x00b5, 181}, {0x00b6, 182},
-	{0x00b6,  20}, {0x00b7, 183}, {0x00b8, 184}, {0x00b9, 185},
-	{0x00ba, 186}, {0x00bb, 187}, {0x00bc, 188}, {0x00bd, 189},
-	{0x00be, 190}, {0x00bf, 191}, {0x00c0, 192}, {0x00c1, 193},
-	{0x00c2, 194}, {0x00c3, 195}, {0x00c4, 196}, {0x00c5, 197},
-	{0x00c6, 198}, {0x00c7, 199}, {0x00c8, 200}, {0x00c9, 201},
-	{0x00ca, 202}, {0x00cb, 203}, {0x00cc, 204}, {0x00cd, 205},
-	{0x00ce, 206}, {0x00cf, 207}, {0x00d1, 209}, {0x00d2, 210},
-	{0x00d3, 211}, {0x00d4, 212}, {0x00d5, 213}, {0x00d6, 214},
-	{0x00d7, 215}, {0x00d8, 216}, {0x00d9, 217}, {0x00da, 218},
-	{0x00db, 219}, {0x00dc, 220}, {0x00df, 223}, {0x00e0, 224},
-	{0x00e1, 225}, {0x00e2, 226}, {0x00e3, 227}, {0x00e4, 228},
-	{0x00e5, 229}, {0x00e6, 230}, {0x00e7, 231}, {0x00e8, 232},
-	{0x00e9, 233}, {0x00ea, 234}, {0x00eb, 235}, {0x00ec, 236},
-	{0x00ed, 237}, {0x00ee, 238}, {0x00ef, 239}, {0x00f1, 241},
-	{0x00f2, 242}, {0x00f3, 243}, {0x00f4, 244}, {0x00f5, 245},
-	{0x00f6, 246}, {0x00f7, 247}, {0x00f8, 248}, {0x00f9, 249},
-	{0x00fa, 250}, {0x00fb, 251}, {0x00fc, 252}, {0x00ff, 255},
-	{0x011e, 208}, {0x011f, 240}, {0x0130, 221}, {0x0131, 253},
-	{0x015e, 222}, {0x015f, 254}, {0x2022,   7}, {0x203c,  19},
-	{0x2190,  27}, {0x2191,  24}, {0x2192,  26}, {0x2193,  25},
-	{0x2194,  29}, {0x2195,  18}, {0x21a8,  23}, {0x221f,  28},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd, '?'},
+	{0x00a8, 168}, {0x00a9, 169}, {0x00aa, 170}, {0x00ab, 171},
+	{0x00ac, 172}, {0x00ad, 173}, {0x00ae, 174}, {0x00af, 175},
+	{0x00b0, 176}, {0x00b1, 177}, {0x00b2, 178}, {0x00b3, 179},
+	{0x00b4, 180}, {0x00b5, 181}, {0x00b6, 182}, {0x00b7, 183},
+	{0x00b8, 184}, {0x00b9, 185}, {0x00ba, 186}, {0x00bb, 187},
+	{0x00bc, 188}, {0x00bd, 189}, {0x00be, 190}, {0x00bf, 191},
+	{0x00c0, 192}, {0x00c1, 193}, {0x00c2, 194}, {0x00c3, 195},
+	{0x00c4, 196}, {0x00c5, 197}, {0x00c6, 198}, {0x00c7, 199},
+	{0x00c8, 200}, {0x00c9, 201}, {0x00ca, 202}, {0x00cb, 203},
+	{0x00cc, 204}, {0x00cd, 205}, {0x00ce, 206}, {0x00cf, 207},
+	{0x00d1, 209}, {0x00d2, 210}, {0x00d3, 211}, {0x00d4, 212},
+	{0x00d5, 213}, {0x00d6, 214}, {0x00d7, 215}, {0x00d8, 216},
+	{0x00d9, 217}, {0x00da, 218}, {0x00db, 219}, {0x00dc, 220},
+	{0x00df, 223}, {0x00e0, 224}, {0x00e1, 225}, {0x00e2, 226},
+	{0x00e3, 227}, {0x00e4, 228}, {0x00e5, 229}, {0x00e6, 230},
+	{0x00e7, 231}, {0x00e8, 232}, {0x00e9, 233}, {0x00ea, 234},
+	{0x00eb, 235}, {0x00ec, 236}, {0x00ed, 237}, {0x00ee, 238},
+	{0x00ef, 239}, {0x00f1, 241}, {0x00f2, 242}, {0x00f3, 243},
+	{0x00f4, 244}, {0x00f5, 245}, {0x00f6, 246}, {0x00f7, 247},
+	{0x00f8, 248}, {0x00f9, 249}, {0x00fa, 250}, {0x00fb, 251},
+	{0x00fc, 252}, {0x00ff, 255}, {0x011e, 208}, {0x011f, 240},
+	{0x0130, 221}, {0x0131, 253}, {0x015e, 222}, {0x015f, 254},
+	{0x2022, 7}, {0x203c, 19}, {0x2190, 27}, {0x2191, 24},
+	{0x2192, 26}, {0x2193, 25}, {0x2194, 29}, {0x2195, 18},
+	{0x21a8, 23}, {0x221f, 28}, {0x25ac, 22}, {0x25b2, 30},
+	{0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17}, {0x25cb, 9},
+	{0x25d8, 8}, {0x25d9, 10}, {0x263a, 1}, {0x263b, 2},
+	{0x263c, 15}, {0x2640, 12}, {0x2642, 11}, {0x2660, 6},
+	{0x2663, 5}, {0x2665, 3}, {0x2666, 4}, {0x266a, 13},
+	{0x266b, 14}, {0xfffd, 63}
 };
 
 const static uint32_t iso8859_9_unicode_table[128] = {
@@ -497,30 +496,30 @@ const static uint32_t iso8859_9_unicode_table[128] = {
 	0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff
 };
 
-const static struct ciolib_cpmap iso8859_8_table[92] = {
+const static struct ciolib_cpmap iso8859_8_table[90] = {
 	{0x00a0, 160}, {0x00a2, 162}, {0x00a3, 163}, {0x00a4, 164},
-	{0x00a5, 165}, {0x00a6, 166}, {0x00a7, 167}, {0x00a7,  21},
-	{0x00a8, 168}, {0x00a9, 169}, {0x00ab, 171}, {0x00ac, 172},
-	{0x00ad, 173}, {0x00ae, 174}, {0x00af, 175}, {0x00b0, 176},
-	{0x00b1, 177}, {0x00b2, 178}, {0x00b3, 179}, {0x00b4, 180},
-	{0x00b5, 181}, {0x00b6, 182}, {0x00b6,  20}, {0x00b7, 183},
-	{0x00b8, 184}, {0x00b9, 185}, {0x00bb, 187}, {0x00bc, 188},
-	{0x00bd, 189}, {0x00be, 190}, {0x00d7, 170}, {0x00f7, 186},
-	{0x05d0, 224}, {0x05d1, 225}, {0x05d2, 226}, {0x05d3, 227},
-	{0x05d4, 228}, {0x05d5, 229}, {0x05d6, 230}, {0x05d7, 231},
-	{0x05d8, 232}, {0x05d9, 233}, {0x05da, 234}, {0x05db, 235},
-	{0x05dc, 236}, {0x05dd, 237}, {0x05de, 238}, {0x05df, 239},
-	{0x05e0, 240}, {0x05e1, 241}, {0x05e2, 242}, {0x05e3, 243},
-	{0x05e4, 244}, {0x05e5, 245}, {0x05e6, 246}, {0x05e7, 247},
-	{0x05e8, 248}, {0x05e9, 249}, {0x05ea, 250}, {0x200e, 253},
-	{0x200f, 254}, {0x2017, 223}, {0x2022,   7}, {0x203c,  19},
-	{0x2190,  27}, {0x2191,  24}, {0x2192,  26}, {0x2193,  25},
-	{0x2194,  29}, {0x2195,  18}, {0x21a8,  23}, {0x221f,  28},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd, '?'},
+	{0x00a5, 165}, {0x00a6, 166}, {0x00a7, 167}, {0x00a8, 168},
+	{0x00a9, 169}, {0x00ab, 171}, {0x00ac, 172}, {0x00ad, 173},
+	{0x00ae, 174}, {0x00af, 175}, {0x00b0, 176}, {0x00b1, 177},
+	{0x00b2, 178}, {0x00b3, 179}, {0x00b4, 180}, {0x00b5, 181},
+	{0x00b6, 182}, {0x00b7, 183}, {0x00b8, 184}, {0x00b9, 185},
+	{0x00bb, 187}, {0x00bc, 188}, {0x00bd, 189}, {0x00be, 190},
+	{0x00d7, 170}, {0x00f7, 186}, {0x05d0, 224}, {0x05d1, 225},
+	{0x05d2, 226}, {0x05d3, 227}, {0x05d4, 228}, {0x05d5, 229},
+	{0x05d6, 230}, {0x05d7, 231}, {0x05d8, 232}, {0x05d9, 233},
+	{0x05da, 234}, {0x05db, 235}, {0x05dc, 236}, {0x05dd, 237},
+	{0x05de, 238}, {0x05df, 239}, {0x05e0, 240}, {0x05e1, 241},
+	{0x05e2, 242}, {0x05e3, 243}, {0x05e4, 244}, {0x05e5, 245},
+	{0x05e6, 246}, {0x05e7, 247}, {0x05e8, 248}, {0x05e9, 249},
+	{0x05ea, 250}, {0x200e, 253}, {0x200f, 254}, {0x2017, 223},
+	{0x2022, 7}, {0x203c, 19}, {0x2190, 27}, {0x2191, 24},
+	{0x2192, 26}, {0x2193, 25}, {0x2194, 29}, {0x2195, 18},
+	{0x21a8, 23}, {0x221f, 28}, {0x25ac, 22}, {0x25b2, 30},
+	{0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17}, {0x25cb, 9},
+	{0x25d8, 8}, {0x25d9, 10}, {0x263a, 1}, {0x263b, 2},
+	{0x263c, 15}, {0x2640, 12}, {0x2642, 11}, {0x2660, 6},
+	{0x2663, 5}, {0x2665, 3}, {0x2666, 4}, {0x266a, 13},
+	{0x266b, 14}, {0xfffd, 63}
 };
 
 const static uint32_t iso8859_8_unicode_table[128] = {
@@ -604,39 +603,39 @@ const static uint32_t koi8_u_unicode_table[128] = {
 	0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a
 };
 
-const static struct ciolib_cpmap iso8859_15_table[128] = {
+const static struct ciolib_cpmap iso8859_15_table[126] = {
 	{0x00a0, 160}, {0x00a1, 161}, {0x00a2, 162}, {0x00a3, 163},
-	{0x00a5, 165}, {0x00a7, 167}, {0x00a7,  21}, {0x00a9, 169},
-	{0x00aa, 170}, {0x00ab, 171}, {0x00ac, 172}, {0x00ad, 173},
-	{0x00ae, 174}, {0x00af, 175}, {0x00b0, 176}, {0x00b1, 177},
-	{0x00b2, 178}, {0x00b3, 179}, {0x00b5, 181}, {0x00b6,  20},
-	{0x00b6, 182}, {0x00b7, 183}, {0x00b9, 185}, {0x00ba, 186},
-	{0x00bb, 187}, {0x00bf, 191}, {0x00c0, 192}, {0x00c1, 193},
-	{0x00c2, 194}, {0x00c3, 195}, {0x00c4, 196}, {0x00c5, 197},
-	{0x00c6, 198}, {0x00c7, 199}, {0x00c8, 200}, {0x00c9, 201},
-	{0x00ca, 202}, {0x00cb, 203}, {0x00cc, 204}, {0x00cd, 205},
-	{0x00ce, 206}, {0x00cf, 207}, {0x00d0, 208}, {0x00d1, 209},
-	{0x00d2, 210}, {0x00d3, 211}, {0x00d4, 212}, {0x00d5, 213},
-	{0x00d6, 214}, {0x00d7, 215}, {0x00d8, 216}, {0x00d9, 217},
-	{0x00da, 218}, {0x00db, 219}, {0x00dc, 220}, {0x00dd, 221},
-	{0x00de, 222}, {0x00df, 223}, {0x00e0, 224}, {0x00e1, 225},
-	{0x00e2, 226}, {0x00e3, 227}, {0x00e4, 228}, {0x00e5, 229},
-	{0x00e6, 230}, {0x00e7, 231}, {0x00e8, 232}, {0x00e9, 233},
-	{0x00ea, 234}, {0x00eb, 235}, {0x00ec, 236}, {0x00ed, 237},
-	{0x00ee, 238}, {0x00ef, 239}, {0x00f0, 240}, {0x00f1, 241},
-	{0x00f2, 242}, {0x00f3, 243}, {0x00f4, 244}, {0x00f5, 245},
-	{0x00f6, 246}, {0x00f7, 247}, {0x00f8, 248}, {0x00f9, 249},
-	{0x00fa, 250}, {0x00fb, 251}, {0x00fc, 252}, {0x00fd, 253},
-	{0x00fe, 254}, {0x00ff, 255}, {0x0152, 188}, {0x0153, 189},
-	{0x0160, 166}, {0x0161, 168}, {0x0178, 190}, {0x017d, 180},
-	{0x017e, 184}, {0x2022,   7}, {0x203c,  19}, {0x20ac, 164},
-	{0x2190,  27}, {0x2191,  24}, {0x2192,  26}, {0x2193,  25},
-	{0x2194,  29}, {0x2195,  18}, {0x21a8,  23}, {0x221f,  28},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
+	{0x00a5, 165}, {0x00a7, 167}, {0x00a9, 169}, {0x00aa, 170},
+	{0x00ab, 171}, {0x00ac, 172}, {0x00ad, 173}, {0x00ae, 174},
+	{0x00af, 175}, {0x00b0, 176}, {0x00b1, 177}, {0x00b2, 178},
+	{0x00b3, 179}, {0x00b5, 181}, {0x00b6, 20}, {0x00b7, 183},
+	{0x00b9, 185}, {0x00ba, 186}, {0x00bb, 187}, {0x00bf, 191},
+	{0x00c0, 192}, {0x00c1, 193}, {0x00c2, 194}, {0x00c3, 195},
+	{0x00c4, 196}, {0x00c5, 197}, {0x00c6, 198}, {0x00c7, 199},
+	{0x00c8, 200}, {0x00c9, 201}, {0x00ca, 202}, {0x00cb, 203},
+	{0x00cc, 204}, {0x00cd, 205}, {0x00ce, 206}, {0x00cf, 207},
+	{0x00d0, 208}, {0x00d1, 209}, {0x00d2, 210}, {0x00d3, 211},
+	{0x00d4, 212}, {0x00d5, 213}, {0x00d6, 214}, {0x00d7, 215},
+	{0x00d8, 216}, {0x00d9, 217}, {0x00da, 218}, {0x00db, 219},
+	{0x00dc, 220}, {0x00dd, 221}, {0x00de, 222}, {0x00df, 223},
+	{0x00e0, 224}, {0x00e1, 225}, {0x00e2, 226}, {0x00e3, 227},
+	{0x00e4, 228}, {0x00e5, 229}, {0x00e6, 230}, {0x00e7, 231},
+	{0x00e8, 232}, {0x00e9, 233}, {0x00ea, 234}, {0x00eb, 235},
+	{0x00ec, 236}, {0x00ed, 237}, {0x00ee, 238}, {0x00ef, 239},
+	{0x00f0, 240}, {0x00f1, 241}, {0x00f2, 242}, {0x00f3, 243},
+	{0x00f4, 244}, {0x00f5, 245}, {0x00f6, 246}, {0x00f7, 247},
+	{0x00f8, 248}, {0x00f9, 249}, {0x00fa, 250}, {0x00fb, 251},
+	{0x00fc, 252}, {0x00fd, 253}, {0x00fe, 254}, {0x00ff, 255},
+	{0x0152, 188}, {0x0153, 189}, {0x0160, 166}, {0x0161, 168},
+	{0x0178, 190}, {0x017d, 180}, {0x017e, 184}, {0x2022, 7},
+	{0x203c, 19}, {0x20ac, 164}, {0x2190, 27}, {0x2191, 24},
+	{0x2192, 26}, {0x2193, 25}, {0x2194, 29}, {0x2195, 18},
+	{0x21a8, 23}, {0x221f, 28}, {0x25ac, 22}, {0x25b2, 30},
+	{0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17}, {0x25cb, 9},
+	{0x25d8, 8}, {0x25d9, 10}, {0x263a, 1}, {0x263b, 2},
+	{0x263c, 15}, {0x2640, 12}, {0x2642, 11}, {0x2660, 6},
+	{0x2663, 5}, {0x2665, 3}, {0x2666, 4}, {0x266a, 13},
+	{0x266b, 14}, {0xfffd, 63}
 };
 
 const static uint32_t iso8859_15_unicode_table[128] = {
@@ -658,39 +657,39 @@ const static uint32_t iso8859_15_unicode_table[128] = {
 	0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff
 };
 
-const static struct ciolib_cpmap iso8859_5_table[128] = {
-	{0x00a0, 160}, {0x00a7,  21}, {0x00a7, 253}, {0x00ad, 173},
-	{0x00b6,  20}, {0x0401, 161}, {0x0402, 162}, {0x0403, 163},
-	{0x0404, 164}, {0x0405, 165}, {0x0406, 166}, {0x0407, 167},
-	{0x0408, 168}, {0x0409, 169}, {0x040a, 170}, {0x040b, 171},
-	{0x040c, 172}, {0x040e, 174}, {0x040f, 175}, {0x0410, 176},
-	{0x0411, 177}, {0x0412, 178}, {0x0413, 179}, {0x0414, 180},
-	{0x0415, 181}, {0x0416, 182}, {0x0417, 183}, {0x0418, 184},
-	{0x0419, 185}, {0x041a, 186}, {0x041b, 187}, {0x041c, 188},
-	{0x041d, 189}, {0x041e, 190}, {0x041f, 191}, {0x0420, 192},
-	{0x0421, 193}, {0x0422, 194}, {0x0423, 195}, {0x0424, 196},
-	{0x0425, 197}, {0x0426, 198}, {0x0427, 199}, {0x0428, 200},
-	{0x0429, 201}, {0x042a, 202}, {0x042b, 203}, {0x042c, 204},
-	{0x042d, 205}, {0x042e, 206}, {0x042f, 207}, {0x0430, 208},
-	{0x0431, 209}, {0x0432, 210}, {0x0433, 211}, {0x0434, 212},
-	{0x0435, 213}, {0x0436, 214}, {0x0437, 215}, {0x0438, 216},
-	{0x0439, 217}, {0x043a, 218}, {0x043b, 219}, {0x043c, 220},
-	{0x043d, 221}, {0x043e, 222}, {0x043f, 223}, {0x0440, 224},
-	{0x0441, 225}, {0x0442, 226}, {0x0443, 227}, {0x0444, 228},
-	{0x0445, 229}, {0x0446, 230}, {0x0447, 231}, {0x0448, 232},
-	{0x0449, 233}, {0x044a, 234}, {0x044b, 235}, {0x044c, 236},
-	{0x044d, 237}, {0x044e, 238}, {0x044f, 239}, {0x0451, 241},
-	{0x0452, 242}, {0x0453, 243}, {0x0454, 244}, {0x0455, 245},
-	{0x0456, 246}, {0x0457, 247}, {0x0458, 248}, {0x0459, 249},
-	{0x045a, 250}, {0x045b, 251}, {0x045c, 252}, {0x045e, 254},
-	{0x045f, 255}, {0x2022,   7}, {0x203c,  19}, {0x2116, 240},
-	{0x2190,  27}, {0x2191,  24}, {0x2192,  26}, {0x2193,  25},
-	{0x2194,  29}, {0x2195,  18}, {0x21a8,  23}, {0x221f,  28},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
+const static struct ciolib_cpmap iso8859_5_table[127] = {
+	{0x00a0, 160}, {0x00a7, 21}, {0x00ad, 173}, {0x00b6, 20},
+	{0x0401, 161}, {0x0402, 162}, {0x0403, 163}, {0x0404, 164},
+	{0x0405, 165}, {0x0406, 166}, {0x0407, 167}, {0x0408, 168},
+	{0x0409, 169}, {0x040a, 170}, {0x040b, 171}, {0x040c, 172},
+	{0x040e, 174}, {0x040f, 175}, {0x0410, 176}, {0x0411, 177},
+	{0x0412, 178}, {0x0413, 179}, {0x0414, 180}, {0x0415, 181},
+	{0x0416, 182}, {0x0417, 183}, {0x0418, 184}, {0x0419, 185},
+	{0x041a, 186}, {0x041b, 187}, {0x041c, 188}, {0x041d, 189},
+	{0x041e, 190}, {0x041f, 191}, {0x0420, 192}, {0x0421, 193},
+	{0x0422, 194}, {0x0423, 195}, {0x0424, 196}, {0x0425, 197},
+	{0x0426, 198}, {0x0427, 199}, {0x0428, 200}, {0x0429, 201},
+	{0x042a, 202}, {0x042b, 203}, {0x042c, 204}, {0x042d, 205},
+	{0x042e, 206}, {0x042f, 207}, {0x0430, 208}, {0x0431, 209},
+	{0x0432, 210}, {0x0433, 211}, {0x0434, 212}, {0x0435, 213},
+	{0x0436, 214}, {0x0437, 215}, {0x0438, 216}, {0x0439, 217},
+	{0x043a, 218}, {0x043b, 219}, {0x043c, 220}, {0x043d, 221},
+	{0x043e, 222}, {0x043f, 223}, {0x0440, 224}, {0x0441, 225},
+	{0x0442, 226}, {0x0443, 227}, {0x0444, 228}, {0x0445, 229},
+	{0x0446, 230}, {0x0447, 231}, {0x0448, 232}, {0x0449, 233},
+	{0x044a, 234}, {0x044b, 235}, {0x044c, 236}, {0x044d, 237},
+	{0x044e, 238}, {0x044f, 239}, {0x0451, 241}, {0x0452, 242},
+	{0x0453, 243}, {0x0454, 244}, {0x0455, 245}, {0x0456, 246},
+	{0x0457, 247}, {0x0458, 248}, {0x0459, 249}, {0x045a, 250},
+	{0x045b, 251}, {0x045c, 252}, {0x045e, 254}, {0x045f, 255},
+	{0x2022, 7}, {0x203c, 19}, {0x2116, 240}, {0x2190, 27},
+	{0x2191, 24}, {0x2192, 26}, {0x2193, 25}, {0x2194, 29},
+	{0x2195, 18}, {0x21a8, 23}, {0x221f, 28}, {0x25ac, 22},
+	{0x25b2, 30}, {0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17},
+	{0x25cb, 9}, {0x25d8, 8}, {0x25d9, 10}, {0x263a, 1},
+	{0x263b, 2}, {0x263c, 15}, {0x2640, 12}, {0x2642, 11},
+	{0x2660, 6}, {0x2663, 5}, {0x2665, 3}, {0x2666, 4},
+	{0x266a, 13}, {0x266b, 14}, {0xfffd, 63}
 };
 
 const static uint32_t iso8859_5_unicode_table[128] = {
@@ -712,47 +711,47 @@ const static uint32_t iso8859_5_unicode_table[128] = {
 	0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x00a7, 0x045e, 0x045f
 };
 
-const static struct ciolib_cpmap cp850_table[160] = {
+const static struct ciolib_cpmap cp850_table[158] = {
 	{0x00a0, 255}, {0x00a1, 173}, {0x00a2, 189}, {0x00a3, 156},
-	{0x00a4, 207}, {0x00a5, 190}, {0x00a6, 221}, {0x00a7,  21},
-	{0x00a7, 245}, {0x00a8, 249}, {0x00a9, 184}, {0x00aa, 166},
-	{0x00ab, 174}, {0x00ac, 170}, {0x00ad, 240}, {0x00ae, 169},
-	{0x00af, 238}, {0x00b0, 248}, {0x00b1, 241}, {0x00b2, 253},
-	{0x00b3, 252}, {0x00b4, 239}, {0x00b5, 230}, {0x00b6,  20},
-	{0x00b6, 244}, {0x00b7, 250}, {0x00b8, 247}, {0x00b9, 251},
-	{0x00ba, 167}, {0x00bb, 175}, {0x00bc, 172}, {0x00bd, 171},
-	{0x00be, 243}, {0x00bf, 168}, {0x00c0, 183}, {0x00c1, 181},
-	{0x00c2, 182}, {0x00c3, 199}, {0x00c4, 142}, {0x00c5, 143},
-	{0x00c6, 146}, {0x00c7, 128}, {0x00c8, 212}, {0x00c9, 144},
-	{0x00ca, 210}, {0x00cb, 211}, {0x00cc, 222}, {0x00cd, 214},
-	{0x00ce, 215}, {0x00cf, 216}, {0x00d0, 209}, {0x00d1, 165},
-	{0x00d2, 227}, {0x00d3, 224}, {0x00d4, 226}, {0x00d5, 229},
-	{0x00d6, 153}, {0x00d7, 158}, {0x00d8, 157}, {0x00d9, 235},
-	{0x00da, 233}, {0x00db, 234}, {0x00dc, 154}, {0x00dd, 237},
-	{0x00de, 232}, {0x00df, 225}, {0x00e0, 133}, {0x00e1, 160},
-	{0x00e2, 131}, {0x00e3, 198}, {0x00e4, 132}, {0x00e5, 134},
-	{0x00e6, 145}, {0x00e7, 135}, {0x00e8, 138}, {0x00e9, 130},
-	{0x00ea, 136}, {0x00eb, 137}, {0x00ec, 141}, {0x00ed, 161},
-	{0x00ee, 140}, {0x00ef, 139}, {0x00f0, 208}, {0x00f1, 164},
-	{0x00f2, 149}, {0x00f3, 162}, {0x00f4, 147}, {0x00f5, 228},
-	{0x00f6, 148}, {0x00f7, 246}, {0x00f8, 155}, {0x00f9, 151},
-	{0x00fa, 163}, {0x00fb, 150}, {0x00fc, 129}, {0x00fd, 236},
-	{0x00fe, 231}, {0x00ff, 152}, {0x0131, 213}, {0x0192, 159},
-	{0x2017, 242}, {0x2022,   7}, {0x203c,  19}, {0x2190,  27},
-	{0x2191,  24}, {0x2192,  26}, {0x2193,  25}, {0x2194,  29},
-	{0x2195,  18}, {0x21a8,  23}, {0x221f,  28}, {0x2500, 196},
-	{0x2502, 179}, {0x250c, 218}, {0x2510, 191}, {0x2514, 192},
-	{0x2518, 217}, {0x251c, 195}, {0x2524, 180}, {0x252c, 194},
-	{0x2534, 193}, {0x253c, 197}, {0x2550, 205}, {0x2551, 186},
-	{0x2554, 201}, {0x2557, 187}, {0x255a, 200}, {0x255d, 188},
-	{0x2560, 204}, {0x2563, 185}, {0x2566, 203}, {0x2569, 202},
-	{0x256c, 206}, {0x2580, 223}, {0x2584, 220}, {0x2588, 219},
-	{0x2591, 176}, {0x2592, 177}, {0x2593, 178}, {0x25a0, 254},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
+	{0x00a4, 207}, {0x00a5, 190}, {0x00a6, 221}, {0x00a7, 21},
+	{0x00a8, 249}, {0x00a9, 184}, {0x00aa, 166}, {0x00ab, 174},
+	{0x00ac, 170}, {0x00ad, 240}, {0x00ae, 169}, {0x00af, 238},
+	{0x00b0, 248}, {0x00b1, 241}, {0x00b2, 253}, {0x00b3, 252},
+	{0x00b4, 239}, {0x00b5, 230}, {0x00b6, 20}, {0x00b7, 250},
+	{0x00b8, 247}, {0x00b9, 251}, {0x00ba, 167}, {0x00bb, 175},
+	{0x00bc, 172}, {0x00bd, 171}, {0x00be, 243}, {0x00bf, 168},
+	{0x00c0, 183}, {0x00c1, 181}, {0x00c2, 182}, {0x00c3, 199},
+	{0x00c4, 142}, {0x00c5, 143}, {0x00c6, 146}, {0x00c7, 128},
+	{0x00c8, 212}, {0x00c9, 144}, {0x00ca, 210}, {0x00cb, 211},
+	{0x00cc, 222}, {0x00cd, 214}, {0x00ce, 215}, {0x00cf, 216},
+	{0x00d0, 209}, {0x00d1, 165}, {0x00d2, 227}, {0x00d3, 224},
+	{0x00d4, 226}, {0x00d5, 229}, {0x00d6, 153}, {0x00d7, 158},
+	{0x00d8, 157}, {0x00d9, 235}, {0x00da, 233}, {0x00db, 234},
+	{0x00dc, 154}, {0x00dd, 237}, {0x00de, 232}, {0x00df, 225},
+	{0x00e0, 133}, {0x00e1, 160}, {0x00e2, 131}, {0x00e3, 198},
+	{0x00e4, 132}, {0x00e5, 134}, {0x00e6, 145}, {0x00e7, 135},
+	{0x00e8, 138}, {0x00e9, 130}, {0x00ea, 136}, {0x00eb, 137},
+	{0x00ec, 141}, {0x00ed, 161}, {0x00ee, 140}, {0x00ef, 139},
+	{0x00f0, 208}, {0x00f1, 164}, {0x00f2, 149}, {0x00f3, 162},
+	{0x00f4, 147}, {0x00f5, 228}, {0x00f6, 148}, {0x00f7, 246},
+	{0x00f8, 155}, {0x00f9, 151}, {0x00fa, 163}, {0x00fb, 150},
+	{0x00fc, 129}, {0x00fd, 236}, {0x00fe, 231}, {0x00ff, 152},
+	{0x0131, 213}, {0x0192, 159}, {0x2017, 242}, {0x2022, 7},
+	{0x203c, 19}, {0x2190, 27}, {0x2191, 24}, {0x2192, 26},
+	{0x2193, 25}, {0x2194, 29}, {0x2195, 18}, {0x21a8, 23},
+	{0x221f, 28}, {0x2500, 196}, {0x2502, 179}, {0x250c, 218},
+	{0x2510, 191}, {0x2514, 192}, {0x2518, 217}, {0x251c, 195},
+	{0x2524, 180}, {0x252c, 194}, {0x2534, 193}, {0x253c, 197},
+	{0x2550, 205}, {0x2551, 186}, {0x2554, 201}, {0x2557, 187},
+	{0x255a, 200}, {0x255d, 188}, {0x2560, 204}, {0x2563, 185},
+	{0x2566, 203}, {0x2569, 202}, {0x256c, 206}, {0x2580, 223},
+	{0x2584, 220}, {0x2588, 219}, {0x2591, 176}, {0x2592, 177},
+	{0x2593, 178}, {0x25a0, 254}, {0x25ac, 22}, {0x25b2, 30},
+	{0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17}, {0x25cb, 9},
+	{0x25d8, 8}, {0x25d9, 10}, {0x263a, 1}, {0x263b, 2},
+	{0x263c, 15}, {0x2640, 12}, {0x2642, 11}, {0x2660, 6},
+	{0x2663, 5}, {0x2665, 3}, {0x2666, 4}, {0x266a, 13},
+	{0x266b, 14}, {0xfffd, 63}
 };
 
 const static uint32_t cp850_unicode_table[128] = {
@@ -837,39 +836,38 @@ const static uint32_t cp865_unicode_table[128] = {
 
 };
 
-const static struct ciolib_cpmap iso8859_7_table[125] = {
-	{0x00a0, 160}, {0x00a3, 163}, {0x00a6, 166}, {0x00a7,  21},
-	{0x00a7, 167}, {0x00a8, 168}, {0x00a9, 169}, {0x00ab, 171},
-	{0x00ac, 172}, {0x00ad, 173}, {0x00b0, 176}, {0x00b1, 177},
-	{0x00b2, 178}, {0x00b3, 179}, {0x00b6,  20}, {0x00b7, 183},
-	{0x00bb, 187}, {0x00bd, 189}, {0x037a, 170}, {0x0384, 180},
-	{0x0385, 181}, {0x0386, 182}, {0x0388, 184}, {0x0389, 185},
-	{0x038a, 186}, {0x038c, 188}, {0x038e, 190}, {0x038f, 191},
-	{0x0390, 192}, {0x0391, 193}, {0x0392, 194}, {0x0393, 195},
-	{0x0394, 196}, {0x0395, 197}, {0x0396, 198}, {0x0397, 199},
-	{0x0398, 200}, {0x0399, 201}, {0x039a, 202}, {0x039b, 203},
-	{0x039c, 204}, {0x039d, 205}, {0x039e, 206}, {0x039f, 207},
-	{0x03a0, 208}, {0x03a1, 209}, {0x03a3, 211}, {0x03a4, 212},
-	{0x03a5, 213}, {0x03a6, 214}, {0x03a7, 215}, {0x03a8, 216},
-	{0x03a9, 217}, {0x03aa, 218}, {0x03ab, 219}, {0x03ac, 220},
-	{0x03ad, 221}, {0x03ae, 222}, {0x03af, 223}, {0x03b0, 224},
-	{0x03b1, 225}, {0x03b2, 226}, {0x03b3, 227}, {0x03b4, 228},
-	{0x03b5, 229}, {0x03b6, 230}, {0x03b7, 231}, {0x03b8, 232},
-	{0x03b9, 233}, {0x03ba, 234}, {0x03bb, 235}, {0x03bc, 236},
-	{0x03bd, 237}, {0x03be, 238}, {0x03bf, 239}, {0x03c0, 240},
-	{0x03c1, 241}, {0x03c2, 242}, {0x03c3, 243}, {0x03c4, 244},
-	{0x03c5, 245}, {0x03c6, 246}, {0x03c7, 247}, {0x03c8, 248},
-	{0x03c9, 249}, {0x03ca, 250}, {0x03cb, 251}, {0x03cc, 252},
-	{0x03cd, 253}, {0x03ce, 254}, {0x2015, 175}, {0x2018, 161},
-	{0x2019, 162}, {0x2022,   7}, {0x203c,  19}, {0x20ac, 164},
-	{0x20af, 165}, {0x2190,  27}, {0x2191,  24}, {0x2192,  26},
-	{0x2193,  25}, {0x2194,  29}, {0x2195,  18}, {0x21a8,  23},
-	{0x221f,  28}, {0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16},
-	{0x25bc,  31}, {0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8},
-	{0x25d9,  10}, {0x263a,   1}, {0x263b,   2}, {0x263c,  15},
-	{0x2640,  12}, {0x2642,  11}, {0x2660,   6}, {0x2663,   5},
-	{0x2665,   3}, {0x2666,   4}, {0x266a,  13}, {0x266b,  14},
-	{0xfffd, '?'}
+const static struct ciolib_cpmap iso8859_7_table[124] = {
+	{0x00a0, 160}, {0x00a3, 163}, {0x00a6, 166}, {0x00a7, 21},
+	{0x00a8, 168}, {0x00a9, 169}, {0x00ab, 171}, {0x00ac, 172},
+	{0x00ad, 173}, {0x00b0, 176}, {0x00b1, 177}, {0x00b2, 178},
+	{0x00b3, 179}, {0x00b6, 20}, {0x00b7, 183}, {0x00bb, 187},
+	{0x00bd, 189}, {0x037a, 170}, {0x0384, 180}, {0x0385, 181},
+	{0x0386, 182}, {0x0388, 184}, {0x0389, 185}, {0x038a, 186},
+	{0x038c, 188}, {0x038e, 190}, {0x038f, 191}, {0x0390, 192},
+	{0x0391, 193}, {0x0392, 194}, {0x0393, 195}, {0x0394, 196},
+	{0x0395, 197}, {0x0396, 198}, {0x0397, 199}, {0x0398, 200},
+	{0x0399, 201}, {0x039a, 202}, {0x039b, 203}, {0x039c, 204},
+	{0x039d, 205}, {0x039e, 206}, {0x039f, 207}, {0x03a0, 208},
+	{0x03a1, 209}, {0x03a3, 211}, {0x03a4, 212}, {0x03a5, 213},
+	{0x03a6, 214}, {0x03a7, 215}, {0x03a8, 216}, {0x03a9, 217},
+	{0x03aa, 218}, {0x03ab, 219}, {0x03ac, 220}, {0x03ad, 221},
+	{0x03ae, 222}, {0x03af, 223}, {0x03b0, 224}, {0x03b1, 225},
+	{0x03b2, 226}, {0x03b3, 227}, {0x03b4, 228}, {0x03b5, 229},
+	{0x03b6, 230}, {0x03b7, 231}, {0x03b8, 232}, {0x03b9, 233},
+	{0x03ba, 234}, {0x03bb, 235}, {0x03bc, 236}, {0x03bd, 237},
+	{0x03be, 238}, {0x03bf, 239}, {0x03c0, 240}, {0x03c1, 241},
+	{0x03c2, 242}, {0x03c3, 243}, {0x03c4, 244}, {0x03c5, 245},
+	{0x03c6, 246}, {0x03c7, 247}, {0x03c8, 248}, {0x03c9, 249},
+	{0x03ca, 250}, {0x03cb, 251}, {0x03cc, 252}, {0x03cd, 253},
+	{0x03ce, 254}, {0x2015, 175}, {0x2018, 161}, {0x2019, 162},
+	{0x2022, 7}, {0x203c, 19}, {0x20ac, 164}, {0x20af, 165},
+	{0x2190, 27}, {0x2191, 24}, {0x2192, 26}, {0x2193, 25},
+	{0x2194, 29}, {0x2195, 18}, {0x21a8, 23}, {0x221f, 28},
+	{0x25ac, 22}, {0x25b2, 30}, {0x25ba, 16}, {0x25bc, 31},
+	{0x25c4, 17}, {0x25cb, 9}, {0x25d8, 8}, {0x25d9, 10},
+	{0x263a, 1}, {0x263b, 2}, {0x263c, 15}, {0x2640, 12},
+	{0x2642, 11}, {0x2660, 6}, {0x2663, 5}, {0x2665, 3},
+	{0x2666, 4}, {0x266a, 13}, {0x266b, 14}, {0xfffd, 63}
 };
 
 const static uint32_t iso8859_7_unicode_table[128] = {
@@ -891,39 +889,39 @@ const static uint32_t iso8859_7_unicode_table[128] = {
 	0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0xfffd
 };
 
-const static struct ciolib_cpmap iso8859_1_table[128] = {
+const static struct ciolib_cpmap iso8859_1_table[126] = {
 	{0x00a0, 160}, {0x00a1, 161}, {0x00a2, 162}, {0x00a3, 163},
 	{0x00a4, 164}, {0x00a5, 165}, {0x00a6, 166}, {0x00a7, 167},
-	{0x00a7,  21}, {0x00a8, 168}, {0x00a9, 169}, {0x00aa, 170},
-	{0x00ab, 171}, {0x00ac, 172}, {0x00ad, 173}, {0x00ae, 174},
-	{0x00af, 175}, {0x00b0, 176}, {0x00b1, 177}, {0x00b2, 178},
-	{0x00b3, 179}, {0x00b4, 180}, {0x00b5, 181}, {0x00b6, 182},
-	{0x00b6,  20}, {0x00b7, 183}, {0x00b8, 184}, {0x00b9, 185},
-	{0x00ba, 186}, {0x00bb, 187}, {0x00bc, 188}, {0x00bd, 189},
-	{0x00be, 190}, {0x00bf, 191}, {0x00c0, 192}, {0x00c1, 193},
-	{0x00c2, 194}, {0x00c3, 195}, {0x00c4, 196}, {0x00c5, 197},
-	{0x00c6, 198}, {0x00c7, 199}, {0x00c8, 200}, {0x00c9, 201},
-	{0x00ca, 202}, {0x00cb, 203}, {0x00cc, 204}, {0x00cd, 205},
-	{0x00ce, 206}, {0x00cf, 207}, {0x00d0, 208}, {0x00d1, 209},
-	{0x00d2, 210}, {0x00d3, 211}, {0x00d4, 212}, {0x00d5, 213},
-	{0x00d6, 214}, {0x00d7, 215}, {0x00d8, 216}, {0x00d9, 217},
-	{0x00da, 218}, {0x00db, 219}, {0x00dc, 220}, {0x00dd, 221},
-	{0x00de, 222}, {0x00df, 223}, {0x00e0, 224}, {0x00e1, 225},
-	{0x00e2, 226}, {0x00e3, 227}, {0x00e4, 228}, {0x00e5, 229},
-	{0x00e6, 230}, {0x00e7, 231}, {0x00e8, 232}, {0x00e9, 233},
-	{0x00ea, 234}, {0x00eb, 235}, {0x00ec, 236}, {0x00ed, 237},
-	{0x00ee, 238}, {0x00ef, 239}, {0x00f0, 240}, {0x00f1, 241},
-	{0x00f2, 242}, {0x00f3, 243}, {0x00f4, 244}, {0x00f5, 245},
-	{0x00f6, 246}, {0x00f7, 247}, {0x00f8, 248}, {0x00f9, 249},
-	{0x00fa, 250}, {0x00fb, 251}, {0x00fc, 252}, {0x00fd, 253},
-	{0x00fe, 254}, {0x00ff, 255}, {0x2022,   7}, {0x203c,  19},
-	{0x2190,  27}, {0x2191,  24}, {0x2192,  26}, {0x2193,  25},
-	{0x2194,  29}, {0x2195,  18}, {0x21a8,  23}, {0x221f,  28},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
+	{0x00a8, 168}, {0x00a9, 169}, {0x00aa, 170}, {0x00ab, 171},
+	{0x00ac, 172}, {0x00ad, 173}, {0x00ae, 174}, {0x00af, 175},
+	{0x00b0, 176}, {0x00b1, 177}, {0x00b2, 178}, {0x00b3, 179},
+	{0x00b4, 180}, {0x00b5, 181}, {0x00b6, 182}, {0x00b7, 183},
+	{0x00b8, 184}, {0x00b9, 185}, {0x00ba, 186}, {0x00bb, 187},
+	{0x00bc, 188}, {0x00bd, 189}, {0x00be, 190}, {0x00bf, 191},
+	{0x00c0, 192}, {0x00c1, 193}, {0x00c2, 194}, {0x00c3, 195},
+	{0x00c4, 196}, {0x00c5, 197}, {0x00c6, 198}, {0x00c7, 199},
+	{0x00c8, 200}, {0x00c9, 201}, {0x00ca, 202}, {0x00cb, 203},
+	{0x00cc, 204}, {0x00cd, 205}, {0x00ce, 206}, {0x00cf, 207},
+	{0x00d0, 208}, {0x00d1, 209}, {0x00d2, 210}, {0x00d3, 211},
+	{0x00d4, 212}, {0x00d5, 213}, {0x00d6, 214}, {0x00d7, 215},
+	{0x00d8, 216}, {0x00d9, 217}, {0x00da, 218}, {0x00db, 219},
+	{0x00dc, 220}, {0x00dd, 221}, {0x00de, 222}, {0x00df, 223},
+	{0x00e0, 224}, {0x00e1, 225}, {0x00e2, 226}, {0x00e3, 227},
+	{0x00e4, 228}, {0x00e5, 229}, {0x00e6, 230}, {0x00e7, 231},
+	{0x00e8, 232}, {0x00e9, 233}, {0x00ea, 234}, {0x00eb, 235},
+	{0x00ec, 236}, {0x00ed, 237}, {0x00ee, 238}, {0x00ef, 239},
+	{0x00f0, 240}, {0x00f1, 241}, {0x00f2, 242}, {0x00f3, 243},
+	{0x00f4, 244}, {0x00f5, 245}, {0x00f6, 246}, {0x00f7, 247},
+	{0x00f8, 248}, {0x00f9, 249}, {0x00fa, 250}, {0x00fb, 251},
+	{0x00fc, 252}, {0x00fd, 253}, {0x00fe, 254}, {0x00ff, 255},
+	{0x2022, 7}, {0x203c, 19}, {0x2190, 27}, {0x2191, 24},
+	{0x2192, 26}, {0x2193, 25}, {0x2194, 29}, {0x2195, 18},
+	{0x21a8, 23}, {0x221f, 28}, {0x25ac, 22}, {0x25b2, 30},
+	{0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17}, {0x25cb, 9},
+	{0x25d8, 8}, {0x25d9, 10}, {0x263a, 1}, {0x263b, 2},
+	{0x263c, 15}, {0x2640, 12}, {0x2642, 11}, {0x2660, 6},
+	{0x2663, 5}, {0x2665, 3}, {0x2666, 4}, {0x266a, 13},
+	{0x266b, 14}, {0xfffd, 63}
 };
 
 const static uint32_t iso8859_1_unicode_table[128] = {
@@ -1131,38 +1129,38 @@ const static uint32_t cp1131_unicode_table[128] = {
 	0x0406, 0x0456, 0x00b7, 0x221a, 0x0490, 0x0491, 0x2219, 0x00a0
 };
 
-const static struct ciolib_cpmap armscii8_table[123] = {
-	{0x00a0, 160}, {0x00a7, 162}, {0x00a7,  21}, {0x00ab, 167},
-	{0x00b6,  20}, {0x00bb, 166}, {0x02bc, 254}, {0x0531, 178},
-	{0x0532, 180}, {0x0533, 182}, {0x0534, 184}, {0x0535, 186},
-	{0x0536, 188}, {0x0537, 190}, {0x0538, 192}, {0x0539, 194},
-	{0x053a, 196}, {0x053b, 198}, {0x053c, 200}, {0x053d, 202},
-	{0x053e, 204}, {0x053f, 206}, {0x0540, 208}, {0x0541, 210},
-	{0x0542, 212}, {0x0543, 214}, {0x0544, 216}, {0x0545, 218},
-	{0x0546, 220}, {0x0547, 222}, {0x0548, 224}, {0x0549, 226},
-	{0x054a, 228}, {0x054b, 230}, {0x054c, 232}, {0x054d, 234},
-	{0x054e, 236}, {0x054f, 238}, {0x0550, 240}, {0x0551, 242},
-	{0x0552, 244}, {0x0553, 246}, {0x0554, 248}, {0x0555, 250},
-	{0x0556, 252}, {0x055b, 176}, {0x055c, 175}, {0x055d, 170},
-	{0x055e, 177}, {0x0561, 179}, {0x0562, 181}, {0x0563, 183},
-	{0x0564, 185}, {0x0565, 187}, {0x0566, 189}, {0x0567, 191},
-	{0x0568, 193}, {0x0569, 195}, {0x056a, 197}, {0x056b, 199},
-	{0x056c, 201}, {0x056d, 203}, {0x056e, 205}, {0x056f, 207},
-	{0x0570, 209}, {0x0571, 211}, {0x0572, 213}, {0x0573, 215},
-	{0x0574, 217}, {0x0575, 219}, {0x0576, 221}, {0x0577, 223},
-	{0x0578, 225}, {0x0579, 227}, {0x057a, 229}, {0x057b, 231},
-	{0x057c, 233}, {0x057d, 235}, {0x057e, 237}, {0x057f, 239},
-	{0x0580, 241}, {0x0581, 243}, {0x0582, 245}, {0x0583, 247},
-	{0x0584, 249}, {0x0585, 251}, {0x0586, 253}, {0x0589, 163},
-	{0x058a, 173}, {0x058e, 161}, {0x2013, 172}, {0x2014, 168},
-	{0x2022,   7}, {0x2026, 174}, {0x203c,  19}, {0x2190,  27},
-	{0x2191,  24}, {0x2192,  26}, {0x2193,  25}, {0x2194,  29},
-	{0x2195,  18}, {0x21a8,  23}, {0x221f,  28}, {0x25ac,  22},
-	{0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31}, {0x25c4,  17},
-	{0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10}, {0x263a,   1},
-	{0x263b,   2}, {0x263c,  15}, {0x2640,  12}, {0x2642,  11},
-	{0x2660,   6}, {0x2663,   5}, {0x2665,   3}, {0x2666,   4},
-	{0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
+const static struct ciolib_cpmap armscii8_table[122] = {
+	{0x00a0, 160}, {0x00a7, 162}, {0x00ab, 167}, {0x00b6, 20},
+	{0x00bb, 166}, {0x02bc, 254}, {0x0531, 178}, {0x0532, 180},
+	{0x0533, 182}, {0x0534, 184}, {0x0535, 186}, {0x0536, 188},
+	{0x0537, 190}, {0x0538, 192}, {0x0539, 194}, {0x053a, 196},
+	{0x053b, 198}, {0x053c, 200}, {0x053d, 202}, {0x053e, 204},
+	{0x053f, 206}, {0x0540, 208}, {0x0541, 210}, {0x0542, 212},
+	{0x0543, 214}, {0x0544, 216}, {0x0545, 218}, {0x0546, 220},
+	{0x0547, 222}, {0x0548, 224}, {0x0549, 226}, {0x054a, 228},
+	{0x054b, 230}, {0x054c, 232}, {0x054d, 234}, {0x054e, 236},
+	{0x054f, 238}, {0x0550, 240}, {0x0551, 242}, {0x0552, 244},
+	{0x0553, 246}, {0x0554, 248}, {0x0555, 250}, {0x0556, 252},
+	{0x055b, 176}, {0x055c, 175}, {0x055d, 170}, {0x055e, 177},
+	{0x0561, 179}, {0x0562, 181}, {0x0563, 183}, {0x0564, 185},
+	{0x0565, 187}, {0x0566, 189}, {0x0567, 191}, {0x0568, 193},
+	{0x0569, 195}, {0x056a, 197}, {0x056b, 199}, {0x056c, 201},
+	{0x056d, 203}, {0x056e, 205}, {0x056f, 207}, {0x0570, 209},
+	{0x0571, 211}, {0x0572, 213}, {0x0573, 215}, {0x0574, 217},
+	{0x0575, 219}, {0x0576, 221}, {0x0577, 223}, {0x0578, 225},
+	{0x0579, 227}, {0x057a, 229}, {0x057b, 231}, {0x057c, 233},
+	{0x057d, 235}, {0x057e, 237}, {0x057f, 239}, {0x0580, 241},
+	{0x0581, 243}, {0x0582, 245}, {0x0583, 247}, {0x0584, 249},
+	{0x0585, 251}, {0x0586, 253}, {0x0589, 163}, {0x058a, 173},
+	{0x058e, 161}, {0x2013, 172}, {0x2014, 168}, {0x2022, 7},
+	{0x2026, 174}, {0x203c, 19}, {0x2190, 27}, {0x2191, 24},
+	{0x2192, 26}, {0x2193, 25}, {0x2194, 29}, {0x2195, 18},
+	{0x21a8, 23}, {0x221f, 28}, {0x25ac, 22}, {0x25b2, 30},
+	{0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17}, {0x25cb, 9},
+	{0x25d8, 8}, {0x25d9, 10}, {0x263a, 1}, {0x263b, 2},
+	{0x263c, 15}, {0x2640, 12}, {0x2642, 11}, {0x2660, 6},
+	{0x2663, 5}, {0x2665, 3}, {0x2666, 4}, {0x266a, 13},
+	{0x266b, 14}, {0xfffd, 63}
 };
 
 const static uint32_t armscii8_unicode_table[128] = {
@@ -1184,38 +1182,38 @@ const static uint32_t armscii8_unicode_table[128] = {
 	0x0554, 0x0584, 0x0555, 0x0585, 0x0556, 0x0586, 0x02bc, 0xfffd
 };
 
-const static struct ciolib_cpmap haik8_table[123] = {
-	{0x00a0, 128}, {0x00a7,  21}, {0x00a7, 130}, {0x00ab, 135},
-	{0x00b6,  20}, {0x00bb, 134}, {0x02bc, 254}, {0x0531, 146},
-	{0x0532, 148}, {0x0533, 150}, {0x0534, 152}, {0x0535, 154},
-	{0x0536, 156}, {0x0537, 158}, {0x0538, 160}, {0x0539, 162},
-	{0x053a, 164}, {0x053b, 166}, {0x053c, 168}, {0x053d, 170},
-	{0x053e, 172}, {0x053f, 174}, {0x0540, 176}, {0x0541, 178},
-	{0x0542, 180}, {0x0543, 182}, {0x0544, 184}, {0x0545, 186},
-	{0x0546, 188}, {0x0547, 190}, {0x0548, 224}, {0x0549, 226},
-	{0x054a, 228}, {0x054b, 230}, {0x054c, 232}, {0x054d, 234},
-	{0x054e, 236}, {0x054f, 238}, {0x0550, 240}, {0x0551, 242},
-	{0x0552, 244}, {0x0553, 246}, {0x0554, 248}, {0x0555, 250},
-	{0x0556, 252}, {0x055b, 144}, {0x055c, 143}, {0x055d, 138},
-	{0x055e, 145}, {0x0561, 147}, {0x0562, 149}, {0x0563, 151},
-	{0x0564, 153}, {0x0565, 155}, {0x0566, 157}, {0x0567, 159},
-	{0x0568, 161}, {0x0569, 163}, {0x056a, 165}, {0x056b, 167},
-	{0x056c, 169}, {0x056d, 171}, {0x056e, 173}, {0x056f, 175},
-	{0x0570, 177}, {0x0571, 179}, {0x0572, 181}, {0x0573, 183},
-	{0x0574, 185}, {0x0575, 187}, {0x0576, 189}, {0x0577, 191},
-	{0x0578, 225}, {0x0579, 227}, {0x057a, 229}, {0x057b, 231},
-	{0x057c, 233}, {0x057d, 235}, {0x057e, 237}, {0x057f, 239},
-	{0x0580, 241}, {0x0581, 243}, {0x0582, 245}, {0x0583, 247},
-	{0x0584, 249}, {0x0585, 251}, {0x0586, 253}, {0x0589, 131},
-	{0x058a, 141}, {0x058e, 129}, {0x2013, 140}, {0x2014, 136},
-	{0x2022,   7}, {0x2026, 142}, {0x203c,  19}, {0x2190,  27},
-	{0x2191,  24}, {0x2192,  26}, {0x2193,  25}, {0x2194,  29},
-	{0x2195,  18}, {0x21a8,  23}, {0x221f,  28}, {0x25ac,  22},
-	{0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31}, {0x25c4,  17},
-	{0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10}, {0x263a,   1},
-	{0x263b,   2}, {0x263c,  15}, {0x2640,  12}, {0x2642,  11},
-	{0x2660,   6}, {0x2663,   5}, {0x2665,   3}, {0x2666,   4},
-	{0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
+const static struct ciolib_cpmap haik8_table[122] = {
+	{0x00a0, 128}, {0x00a7, 21}, {0x00ab, 135}, {0x00b6, 20},
+	{0x00bb, 134}, {0x02bc, 254}, {0x0531, 146}, {0x0532, 148},
+	{0x0533, 150}, {0x0534, 152}, {0x0535, 154}, {0x0536, 156},
+	{0x0537, 158}, {0x0538, 160}, {0x0539, 162}, {0x053a, 164},
+	{0x053b, 166}, {0x053c, 168}, {0x053d, 170}, {0x053e, 172},
+	{0x053f, 174}, {0x0540, 176}, {0x0541, 178}, {0x0542, 180},
+	{0x0543, 182}, {0x0544, 184}, {0x0545, 186}, {0x0546, 188},
+	{0x0547, 190}, {0x0548, 224}, {0x0549, 226}, {0x054a, 228},
+	{0x054b, 230}, {0x054c, 232}, {0x054d, 234}, {0x054e, 236},
+	{0x054f, 238}, {0x0550, 240}, {0x0551, 242}, {0x0552, 244},
+	{0x0553, 246}, {0x0554, 248}, {0x0555, 250}, {0x0556, 252},
+	{0x055b, 144}, {0x055c, 143}, {0x055d, 138}, {0x055e, 145},
+	{0x0561, 147}, {0x0562, 149}, {0x0563, 151}, {0x0564, 153},
+	{0x0565, 155}, {0x0566, 157}, {0x0567, 159}, {0x0568, 161},
+	{0x0569, 163}, {0x056a, 165}, {0x056b, 167}, {0x056c, 169},
+	{0x056d, 171}, {0x056e, 173}, {0x056f, 175}, {0x0570, 177},
+	{0x0571, 179}, {0x0572, 181}, {0x0573, 183}, {0x0574, 185},
+	{0x0575, 187}, {0x0576, 189}, {0x0577, 191}, {0x0578, 225},
+	{0x0579, 227}, {0x057a, 229}, {0x057b, 231}, {0x057c, 233},
+	{0x057d, 235}, {0x057e, 237}, {0x057f, 239}, {0x0580, 241},
+	{0x0581, 243}, {0x0582, 245}, {0x0583, 247}, {0x0584, 249},
+	{0x0585, 251}, {0x0586, 253}, {0x0589, 131}, {0x058a, 141},
+	{0x058e, 129}, {0x2013, 140}, {0x2014, 136}, {0x2022, 7},
+	{0x2026, 142}, {0x203c, 19}, {0x2190, 27}, {0x2191, 24},
+	{0x2192, 26}, {0x2193, 25}, {0x2194, 29}, {0x2195, 18},
+	{0x21a8, 23}, {0x221f, 28}, {0x25ac, 22}, {0x25b2, 30},
+	{0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17}, {0x25cb, 9},
+	{0x25d8, 8}, {0x25d9, 10}, {0x263a, 1}, {0x263b, 2},
+	{0x263c, 15}, {0x2640, 12}, {0x2642, 11}, {0x2660, 6},
+	{0x2663, 5}, {0x2665, 3}, {0x2666, 4}, {0x266a, 13},
+	{0x266b, 14}, {0xfffd, 63}
 };
 
 const static uint32_t haik8_unicode_table[128] = {
@@ -1237,76 +1235,44 @@ const static uint32_t haik8_unicode_table[128] = {
 	0x0554, 0x0584, 0x0555, 0x0585, 0x0556, 0x0586, 0x02bc, 0xfffd
 };
 
-const static struct ciolib_cpmap atascii_table[275] = {
+const static struct ciolib_cpmap atascii_table[148] = {
 	{0x0007, 252}, {0x0008, 126}, {0x0009, 127}, {0x000d, 155},
-	{0x001b,  27}, {0x0020,  32}, {0x0020, 160}, {0x0021, 161},
-	{0x0021,  33}, {0x0022,  34}, {0x0022, 162}, {0x0023, 163},
-	{0x0023,  35}, {0x0024, 164}, {0x0024,  36}, {0x0025,  37},
-	{0x0025, 165}, {0x0026, 166}, {0x0026,  38}, {0x0027,  39},
-	{0x0027, 167}, {0x0028,  40}, {0x0028, 168}, {0x0029,  41},
-	{0x0029, 169}, {0x002a, 170}, {0x002a,  42}, {0x002b,  43},
-	{0x002b, 171}, {0x002c, 172}, {0x002c,  44}, {0x002d, 173},
-	{0x002d,  45}, {0x002e, 174}, {0x002e,  46}, {0x002f, 175},
-	{0x002f,  47}, {0x0030,  48}, {0x0030, 176}, {0x0031, 177},
-	{0x0031,  49}, {0x0032,  50}, {0x0032, 178}, {0x0033,  51},
-	{0x0033, 179}, {0x0034, 180}, {0x0034,  52}, {0x0035,  53},
-	{0x0035, 181}, {0x0036,  54}, {0x0036, 182}, {0x0037,  55},
-	{0x0037, 183}, {0x0038,  56}, {0x0038, 184}, {0x0039,  57},
-	{0x0039, 185}, {0x003a, 186}, {0x003a,  58}, {0x003b, 187},
-	{0x003b,  59}, {0x003c,  60}, {0x003c, 188}, {0x003d,  61},
-	{0x003d, 189}, {0x003e, 190}, {0x003e,  62}, {0x003f,  63},
-	{0x003f, 191}, {0x0040, 192}, {0x0040,  64}, {0x0041, 193},
-	{0x0041,  65}, {0x0042, 194}, {0x0042,  66}, {0x0043, 195},
-	{0x0043,  67}, {0x0044,  68}, {0x0044, 196}, {0x0045,  69},
-	{0x0045, 197}, {0x0046, 198}, {0x0046,  70}, {0x0047,  71},
-	{0x0047, 199}, {0x0048,  72}, {0x0048, 200}, {0x0049,  73},
-	{0x0049, 201}, {0x004a, 202}, {0x004a,  74}, {0x004b,  75},
-	{0x004b, 203}, {0x004c,  76}, {0x004c, 204}, {0x004d,  77},
-	{0x004d, 205}, {0x004e,  78}, {0x004e, 206}, {0x004f, 207},
-	{0x004f,  79}, {0x0050,  80}, {0x0050, 208}, {0x0051, 209},
-	{0x0051,  81}, {0x0052,  82}, {0x0052, 210}, {0x0053, 211},
-	{0x0053,  83}, {0x0054,  84}, {0x0054, 212}, {0x0055,  85},
-	{0x0055, 213}, {0x0056, 214}, {0x0056,  86}, {0x0057,  87},
-	{0x0057, 215}, {0x0058, 216}, {0x0058,  88}, {0x0059, 217},
-	{0x0059,  89}, {0x005a, 218}, {0x005a,  90}, {0x005b, 219},
-	{0x005b,  91}, {0x005c,  92}, {0x005c, 220}, {0x005d, 221},
-	{0x005d,  93}, {0x005e, 222}, {0x005e,  94}, {0x005f, 223},
-	{0x005f,  95}, {0x0061, 225}, {0x0061,  97}, {0x0062,  98},
-	{0x0062, 226}, {0x0063,  99}, {0x0063, 227}, {0x0064, 228},
-	{0x0064, 100}, {0x0065, 101}, {0x0065, 229}, {0x0066, 230},
-	{0x0066, 102}, {0x0067, 231}, {0x0067, 103}, {0x0068, 232},
-	{0x0068, 104}, {0x0069, 233}, {0x0069, 105}, {0x006a, 106},
-	{0x006a, 234}, {0x006b, 107}, {0x006b, 235}, {0x006c, 236},
-	{0x006c, 108}, {0x006d, 109}, {0x006d, 237}, {0x006e, 110},
-	{0x006e, 238}, {0x006f, 111}, {0x006f, 239}, {0x0070, 240},
-	{0x0070, 112}, {0x0071, 113}, {0x0071, 241}, {0x0072, 242},
-	{0x0072, 114}, {0x0073, 243}, {0x0073, 115}, {0x0074, 244},
-	{0x0074, 116}, {0x0075, 117}, {0x0075, 245}, {0x0076, 246},
-	{0x0076, 118}, {0x0077, 119}, {0x0077, 247}, {0x0078, 120},
-	{0x0078, 248}, {0x0079, 249}, {0x0079, 121}, {0x007a, 122},
-	{0x007a, 250}, {0x007c, 124}, {0x007c, 252}, {0x007f, 253},
-	{0x00a0, 155}, {0x2022, 148}, {0x2022,  20}, {0x2190,  30},
-	{0x2190, 158}, {0x2191,  28}, {0x2191, 156}, {0x2192, 159},
-	{0x2192,  31}, {0x2193, 157}, {0x2193,  29}, {0x21b0, 125},
-	{0x21b0, 253}, {0x241b,  27}, {0x2500,  18}, {0x2500, 146},
-	{0x250c, 145}, {0x250c,  17}, {0x2510,   5}, {0x2510, 133},
-	{0x2514,  26}, {0x2514, 154}, {0x2518, 131}, {0x2518,   3},
-	{0x251c, 129}, {0x251c,   1}, {0x2524, 132}, {0x2524,   4},
-	{0x252c,  23}, {0x252c, 151}, {0x2534,  24}, {0x2534, 152},
-	{0x253c, 147}, {0x253c,  19}, {0x2571,   6}, {0x2571, 134},
-	{0x2572, 135}, {0x2572,   7}, {0x2580, 149}, {0x2582, 142},
-	{0x2582,  14}, {0x2584,  21}, {0x2584, 149}, {0x2586, 141},
-	{0x2588, 160}, {0x258a, 130}, {0x258c,  25}, {0x258c, 153},
-	{0x258e, 150}, {0x258e,  22}, {0x2590, 153}, {0x2596, 143},
-	{0x2596,  15}, {0x2597, 137}, {0x2597,   9}, {0x2598, 140},
-	{0x2598,  12}, {0x2599, 139}, {0x259b, 137}, {0x259c, 143},
-	{0x259d, 139}, {0x259d,  11}, {0x259f, 140}, {0x25b6, 255},
-	{0x25b6, 127}, {0x25c0, 126}, {0x25c0, 254}, {0x25d8, 148},
-	{0x25e2, 136}, {0x25e2,   8}, {0x25e3,  10}, {0x25e3, 138},
-	{0x25e4, 136}, {0x25e5, 138}, {0x2660, 251}, {0x2660, 123},
-	{0x2663, 144}, {0x2663,  16}, {0x2665,   0}, {0x2665, 128},
-	{0x2666, 224}, {0x2666,  96},{0x1fb82,  13},{0x1fb82, 141},
-	{0x1fb87,   2},{0x1fb87, 130},{0xfffd, '?'},
+	{0x001b, 27}, {0x0020, 32}, {0x0021, 33}, {0x0022, 34},
+	{0x0023, 35}, {0x0024, 36}, {0x0025, 37}, {0x0026, 38},
+	{0x0027, 39}, {0x0028, 40}, {0x0029, 41}, {0x002a, 42},
+	{0x002b, 43}, {0x002c, 44}, {0x002d, 45}, {0x002e, 46},
+	{0x002f, 47}, {0x0030, 48}, {0x0031, 49}, {0x0032, 50},
+	{0x0033, 51}, {0x0034, 52}, {0x0035, 53}, {0x0036, 54},
+	{0x0037, 55}, {0x0038, 56}, {0x0039, 57}, {0x003a, 58},
+	{0x003b, 59}, {0x003c, 60}, {0x003d, 61}, {0x003e, 62},
+	{0x003f, 63}, {0x0040, 64}, {0x0041, 65}, {0x0042, 66},
+	{0x0043, 67}, {0x0044, 68}, {0x0045, 69}, {0x0046, 70},
+	{0x0047, 71}, {0x0048, 72}, {0x0049, 73}, {0x004a, 74},
+	{0x004b, 75}, {0x004c, 76}, {0x004d, 77}, {0x004e, 78},
+	{0x004f, 79}, {0x0050, 80}, {0x0051, 81}, {0x0052, 82},
+	{0x0053, 83}, {0x0054, 84}, {0x0055, 85}, {0x0056, 86},
+	{0x0057, 87}, {0x0058, 88}, {0x0059, 89}, {0x005a, 90},
+	{0x005b, 91}, {0x005c, 92}, {0x005d, 93}, {0x005e, 94},
+	{0x005f, 95}, {0x0061, 97}, {0x0062, 98}, {0x0063, 99},
+	{0x0064, 100}, {0x0065, 101}, {0x0066, 102}, {0x0067, 103},
+	{0x0068, 104}, {0x0069, 105}, {0x006a, 106}, {0x006b, 107},
+	{0x006c, 108}, {0x006d, 109}, {0x006e, 110}, {0x006f, 111},
+	{0x0070, 112}, {0x0071, 113}, {0x0072, 114}, {0x0073, 115},
+	{0x0074, 116}, {0x0075, 117}, {0x0076, 118}, {0x0077, 119},
+	{0x0078, 120}, {0x0079, 121}, {0x007a, 122}, {0x007c, 124},
+	{0x007f, 253}, {0x00a0, 155}, {0x2022, 148}, {0x2190, 30},
+	{0x2191, 28}, {0x2192, 159}, {0x2193, 157}, {0x21b0, 125},
+	{0x241b, 27}, {0x2500, 18}, {0x250c, 145}, {0x2510, 5},
+	{0x2514, 26}, {0x2518, 131}, {0x251c, 129}, {0x2524, 132},
+	{0x252c, 23}, {0x2534, 24}, {0x253c, 147}, {0x2571, 6},
+	{0x2572, 135}, {0x2580, 149}, {0x2582, 142}, {0x2584, 21},
+	{0x2586, 141}, {0x2588, 160}, {0x258a, 130}, {0x258c, 25},
+	{0x258e, 150}, {0x2590, 153}, {0x2596, 143}, {0x2597, 137},
+	{0x2598, 140}, {0x2599, 139}, {0x259b, 137}, {0x259c, 143},
+	{0x259d, 139}, {0x259f, 140}, {0x25b6, 127}, {0x25c0, 126},
+	{0x25d8, 148}, {0x25e2, 136}, {0x25e3, 10}, {0x25e4, 136},
+	{0x25e5, 138}, {0x2660, 123}, {0x2663, 144}, {0x2665, 63},
+	{0x2666, 96}, {0xfffd, 63}, {0x1fb82, 13}, {0x1fb87, 2}
 };
 
 const static uint32_t atascii_unicode_table[256] = {
@@ -1379,56 +1345,40 @@ const static uint32_t atascii_ext_table[256] = {
 	0x0078, 0x0079, 0x007a, 0x2660, 0x007c, 0x21b0, 0x25c0, 0x25b6
 };
 
-const static struct ciolib_cpmap petsciiu_table[193] = {
-	{0x0020,  32}, {0x0021,  33}, {0x0022,  34}, {0x0023,  35},
-	{0x0024,  36}, {0x0025,  37}, {0x0026,  38}, {0x0027,  39},
-	{0x0028,  40}, {0x0029,  41}, {0x002a,  42}, {0x002b,  43},
-	{0x002c,  44}, {0x002d,  45}, {0x002e,  46}, {0x002f,  47},
-	{0x0030,  48}, {0x0031,  49}, {0x0032,  50}, {0x0033,  51},
-	{0x0034,  52}, {0x0035,  53}, {0x0036,  54}, {0x0037,  55},
-	{0x0038,  56}, {0x0039,  57}, {0x003a,  58}, {0x003b,  59},
-	{0x003c,  60}, {0x003d,  61}, {0x003e,  62}, {0x003f,  63},
-	{0x0040,  64}, {0x0041,  65}, {0x0042,  66}, {0x0043,  67},
-	{0x0044,  68}, {0x0045,  69}, {0x0046,  70}, {0x0047,  71},
-	{0x0048,  72}, {0x0049,  73}, {0x004a,  74}, {0x004b,  75},
-	{0x004c,  76}, {0x004d,  77}, {0x004e,  78}, {0x004f,  79},
-	{0x0050,  80}, {0x0051,  81}, {0x0052,  82}, {0x0053,  83},
-	{0x0054,  84}, {0x0055,  85}, {0x0056,  86}, {0x0057,  87},
-	{0x0058,  88}, {0x0059,  89}, {0x005a,  90}, {0x005b,  91},
-	{0x005d,  93}, {0x00a0, 160}, {0x00a0, 224}, {0x00a3,  92},
-	{0x03c0, 222}, {0x03c0, 126}, {0x03c0, 255}, {0x2190,  95},
-	{0x2191,  94}, {0x2500,  96}, {0x2500, 192}, {0x2502, 125},
-	{0x2502, 221}, {0x250c, 240}, {0x250c, 176}, {0x2510, 238},
-	{0x2510, 174}, {0x2514, 237}, {0x2514, 173}, {0x2518, 253},
-	{0x2518, 189}, {0x251c, 171}, {0x251c, 235}, {0x2524, 179},
-	{0x2524, 243}, {0x252c, 242}, {0x252c, 178}, {0x2534, 241},
-	{0x2534, 177}, {0x253c, 123}, {0x253c, 219}, {0x256d, 213},
-	{0x256d, 117}, {0x256e, 105}, {0x256e, 201}, {0x256f, 203},
-	{0x256f, 107}, {0x2570, 106}, {0x2570, 202}, {0x2571, 110},
-	{0x2571, 206}, {0x2572, 109}, {0x2572, 205}, {0x2573, 214},
-	{0x2573, 118}, {0x2581, 164}, {0x2581, 228}, {0x2582, 175},
-	{0x2582, 239}, {0x2583, 185}, {0x2583, 249}, {0x2584, 162},
-	{0x2584, 226}, {0x258c, 225}, {0x258c, 161}, {0x258d, 181},
-	{0x258d, 245}, {0x258e, 244}, {0x258e, 180}, {0x258f, 229},
-	{0x258f, 165}, {0x2592, 230}, {0x2592, 166}, {0x2594, 227},
-	{0x2594, 163}, {0x2595, 167}, {0x2595, 231}, {0x2596, 251},
-	{0x2596, 187}, {0x2597, 172}, {0x2597, 236}, {0x2598, 254},
-	{0x2598, 190}, {0x259a, 191}, {0x259d, 188}, {0x259d, 252},
-	{0x25cb, 119}, {0x25cb, 215}, {0x25cf, 209}, {0x25cf, 113},
-	{0x25e4, 169}, {0x25e4, 233}, {0x25e5, 127}, {0x25e5, 223},
-	{0x2660, 193}, {0x2660,  97}, {0x2663, 216}, {0x2663, 120},
-	{0x2665, 211}, {0x2665, 115}, {0x2666, 218}, {0x2666, 122},
-	{0x1fb70, 116},{0x1fb70, 212},{0x1fb71, 103},{0x1fb71, 199},
-	{0x1fb72, 194},{0x1fb72,  98},{0x1fb74, 200},{0x1fb74, 104},
-	{0x1fb75, 121},{0x1fb75, 217},{0x1fb76, 101},{0x1fb76, 197},
-	{0x1fb77, 196},{0x1fb77, 100},{0x1fb78, 195},{0x1fb78,  99},
-	{0x1fb7a, 198},{0x1fb7a, 102},{0x1fb7b, 114},{0x1fb7b, 210},
-	{0x1fb7c, 204},{0x1fb7c, 108},{0x1fb7d, 207},{0x1fb7d, 111},
-	{0x1fb7e, 112},{0x1fb7e, 208},{0x1fb7f, 186},{0x1fb7f, 250},
-	{0x1fb82, 247},{0x1fb82, 183},{0x1fb83, 248},{0x1fb83, 184},
-	{0x1fb87, 234},{0x1fb87, 170},{0x1fb88, 246},{0x1fb88, 182},
-	{0x1fb8c, 220},{0x1fb8c, 124},{0x1fb8f, 232},{0x1fb8f, 168},
-	{0xfffd, '?'}
+const static struct ciolib_cpmap petsciiu_table[129] = {
+	{0x0020, 32}, {0x0021, 33}, {0x0022, 34}, {0x0023, 35},
+	{0x0024, 36}, {0x0025, 37}, {0x0026, 38}, {0x0027, 39},
+	{0x0028, 40}, {0x0029, 41}, {0x002a, 42}, {0x002b, 43},
+	{0x002c, 44}, {0x002d, 45}, {0x002e, 46}, {0x002f, 47},
+	{0x0030, 48}, {0x0031, 49}, {0x0032, 50}, {0x0033, 51},
+	{0x0034, 52}, {0x0035, 53}, {0x0036, 54}, {0x0037, 55},
+	{0x0038, 56}, {0x0039, 57}, {0x003a, 58}, {0x003b, 59},
+	{0x003c, 60}, {0x003d, 61}, {0x003e, 62}, {0x003f, 63},
+	{0x0040, 64}, {0x0041, 65}, {0x0042, 66}, {0x0043, 67},
+	{0x0044, 68}, {0x0045, 69}, {0x0046, 70}, {0x0047, 71},
+	{0x0048, 72}, {0x0049, 73}, {0x004a, 74}, {0x004b, 75},
+	{0x004c, 76}, {0x004d, 77}, {0x004e, 78}, {0x004f, 79},
+	{0x0050, 80}, {0x0051, 81}, {0x0052, 82}, {0x0053, 83},
+	{0x0054, 84}, {0x0055, 85}, {0x0056, 86}, {0x0057, 87},
+	{0x0058, 88}, {0x0059, 89}, {0x005a, 90}, {0x005b, 91},
+	{0x005d, 93}, {0x00a0, 160}, {0x00a3, 92}, {0x03c0, 126},
+	{0x2190, 95}, {0x2191, 94}, {0x2500, 96}, {0x2502, 125},
+	{0x250c, 176}, {0x2510, 174}, {0x2514, 173}, {0x2518, 189},
+	{0x251c, 171}, {0x2524, 179}, {0x252c, 178}, {0x2534, 177},
+	{0x253c, 123}, {0x256d, 117}, {0x256e, 105}, {0x256f, 107},
+	{0x2570, 106}, {0x2571, 110}, {0x2572, 109}, {0x2573, 118},
+	{0x2581, 164}, {0x2582, 175}, {0x2583, 185}, {0x2584, 162},
+	{0x258c, 161}, {0x258d, 181}, {0x258e, 180}, {0x258f, 165},
+	{0x2592, 166}, {0x2594, 163}, {0x2595, 167}, {0x2596, 187},
+	{0x2597, 172}, {0x2598, 190}, {0x259a, 191}, {0x259d, 188},
+	{0x25cb, 119}, {0x25cf, 113}, {0x25e4, 169}, {0x25e5, 127},
+	{0x2660, 97}, {0x2663, 120}, {0x2665, 115}, {0x2666, 122},
+	{0xfffd, 63}, {0x1fb70, 116}, {0x1fb71, 103}, {0x1fb72, 98},
+	{0x1fb74, 104}, {0x1fb75, 121}, {0x1fb76, 101}, {0x1fb77, 100},
+	{0x1fb78, 99}, {0x1fb7a, 102}, {0x1fb7b, 114}, {0x1fb7c, 108},
+	{0x1fb7d, 111}, {0x1fb7e, 112}, {0x1fb7f, 186}, {0x1fb82, 183},
+	{0x1fb83, 184}, {0x1fb87, 170}, {0x1fb88, 182}, {0x1fb8c, 124},
+	{0x1fb8f, 168}
 };
 
 const static uint32_t petsciiu_unicode_table[256] = {
@@ -1466,56 +1416,40 @@ const static uint32_t petsciiu_unicode_table[256] = {
 	0x1fb83,0x2583,0x1fb7f, 0x2596, 0x259d, 0x2518, 0x2598, 0x03c0
 };
 
-const static struct ciolib_cpmap petsciil_table[193] = {
-	{0x0020,  32}, {0x0021,  33}, {0x0022,  34}, {0x0023,  35},
-	{0x0024,  36}, {0x0025,  37}, {0x0026,  38}, {0x0027,  39},
-	{0x0028,  40}, {0x0029,  41}, {0x002a,  42}, {0x002b,  43},
-	{0x002c,  44}, {0x002d,  45}, {0x002e,  46}, {0x002f,  47},
-	{0x0030,  48}, {0x0031,  49}, {0x0032,  50}, {0x0033,  51},
-	{0x0034,  52}, {0x0035,  53}, {0x0036,  54}, {0x0037,  55},
-	{0x0038,  56}, {0x0039,  57}, {0x003a,  58}, {0x003b,  59},
-	{0x003c,  60}, {0x003d,  61}, {0x003e,  62}, {0x003f,  63},
-	{0x0040,  64}, {0x0041,  97}, {0x0041, 193}, {0x0042, 194},
-	{0x0042,  98}, {0x0043, 195}, {0x0043,  99}, {0x0044, 196},
-	{0x0044, 100}, {0x0045, 101}, {0x0045, 197}, {0x0046, 198},
-	{0x0046, 102}, {0x0047, 199}, {0x0047, 103}, {0x0048, 200},
-	{0x0048, 104}, {0x0049, 105}, {0x0049, 201}, {0x004a, 202},
-	{0x004a, 106}, {0x004b, 107}, {0x004b, 203}, {0x004c, 108},
-	{0x004c, 204}, {0x004d, 109}, {0x004d, 205}, {0x004e, 206},
-	{0x004e, 110}, {0x004f, 207}, {0x004f, 111}, {0x0050, 208},
-	{0x0050, 112}, {0x0051, 113}, {0x0051, 209}, {0x0052, 114},
-	{0x0052, 210}, {0x0053, 115}, {0x0053, 211}, {0x0054, 212},
-	{0x0054, 116}, {0x0055, 213}, {0x0055, 117}, {0x0056, 118},
-	{0x0056, 214}, {0x0057, 119}, {0x0057, 215}, {0x0058, 216},
-	{0x0058, 120}, {0x0059, 217}, {0x0059, 121}, {0x005a, 218},
-	{0x005a, 122}, {0x005b,  91}, {0x005d,  93}, {0x0061,  65},
-	{0x0062,  66}, {0x0063,  67}, {0x0064,  68}, {0x0065,  69},
-	{0x0066,  70}, {0x0067,  71}, {0x0068,  72}, {0x0069,  73},
-	{0x006a,  74}, {0x006b,  75}, {0x006c,  76}, {0x006d,  77},
-	{0x006e,  78}, {0x006f,  79}, {0x0070,  80}, {0x0071,  81},
-	{0x0072,  82}, {0x0073,  83}, {0x0074,  84}, {0x0075,  85},
-	{0x0076,  86}, {0x0077,  87}, {0x0078,  88}, {0x0079,  89},
-	{0x007a,  90}, {0x00a0, 160}, {0x00a0, 224}, {0x00a3,  92},
-	{0x2190,  95}, {0x2191,  94}, {0x2500,  96}, {0x2500, 192},
-	{0x2502, 221}, {0x2502, 125}, {0x250c, 240}, {0x250c, 176},
-	{0x2510, 174}, {0x2510, 238}, {0x2514, 237}, {0x2514, 173},
-	{0x2518, 253}, {0x2518, 189}, {0x251c, 235}, {0x251c, 171},
-	{0x2524, 179}, {0x2524, 243}, {0x252c, 242}, {0x252c, 178},
-	{0x2534, 241}, {0x2534, 177}, {0x253c, 123}, {0x253c, 219},
-	{0x2581, 164}, {0x2581, 228}, {0x2582, 175}, {0x2582, 239},
-	{0x2583, 185}, {0x2583, 249}, {0x2584, 226}, {0x2584, 162},
-	{0x258c, 225}, {0x258c, 161}, {0x258d, 181}, {0x258d, 245},
-	{0x258e, 180}, {0x258e, 244}, {0x258f, 165}, {0x258f, 229},
-	{0x2592, 230}, {0x2592, 166}, {0x2594, 227}, {0x2594, 163},
-	{0x2595, 231}, {0x2595, 167}, {0x2596, 187}, {0x2596, 251},
-	{0x2597, 236}, {0x2597, 172}, {0x2598, 254}, {0x2598, 190},
-	{0x259a, 191}, {0x259d, 188}, {0x259d, 252}, {0x2713, 186},
-	{0x2713, 250},{0x1fb82, 247},{0x1fb82, 183},{0x1fb83, 248},
-	{0x1fb83, 184},{0x1fb87, 170},{0x1fb87, 234},{0x1fb88, 246},
-	{0x1fb88, 182},{0x1fb8c, 220},{0x1fb8c, 124},{0x1fb8f, 232},
-	{0x1fb8f, 168},{0x1fb96, 255},{0x1fb96, 222},{0x1fb96, 126},
-	{0x1fb98, 127},{0x1fb98, 223},{0x1fb99, 169},{0x1fb99, 233},
-	{0xfffd, '?'}
+const static struct ciolib_cpmap petsciil_table[129] = {
+	{0x0020, 32}, {0x0021, 33}, {0x0022, 34}, {0x0023, 35},
+	{0x0024, 36}, {0x0025, 37}, {0x0026, 38}, {0x0027, 39},
+	{0x0028, 40}, {0x0029, 41}, {0x002a, 42}, {0x002b, 43},
+	{0x002c, 44}, {0x002d, 45}, {0x002e, 46}, {0x002f, 47},
+	{0x0030, 48}, {0x0031, 49}, {0x0032, 50}, {0x0033, 51},
+	{0x0034, 52}, {0x0035, 53}, {0x0036, 54}, {0x0037, 55},
+	{0x0038, 56}, {0x0039, 57}, {0x003a, 58}, {0x003b, 59},
+	{0x003c, 60}, {0x003d, 61}, {0x003e, 62}, {0x003f, 63},
+	{0x0040, 64}, {0x0041, 97}, {0x0042, 98}, {0x0043, 99},
+	{0x0044, 100}, {0x0045, 101}, {0x0046, 102}, {0x0047, 103},
+	{0x0048, 104}, {0x0049, 105}, {0x004a, 106}, {0x004b, 107},
+	{0x004c, 108}, {0x004d, 109}, {0x004e, 110}, {0x004f, 111},
+	{0x0050, 112}, {0x0051, 113}, {0x0052, 114}, {0x0053, 115},
+	{0x0054, 116}, {0x0055, 117}, {0x0056, 118}, {0x0057, 119},
+	{0x0058, 120}, {0x0059, 121}, {0x005a, 122}, {0x005b, 91},
+	{0x005d, 93}, {0x0061, 65}, {0x0062, 66}, {0x0063, 67},
+	{0x0064, 68}, {0x0065, 69}, {0x0066, 70}, {0x0067, 71},
+	{0x0068, 72}, {0x0069, 73}, {0x006a, 74}, {0x006b, 75},
+	{0x006c, 76}, {0x006d, 77}, {0x006e, 78}, {0x006f, 79},
+	{0x0070, 80}, {0x0071, 81}, {0x0072, 82}, {0x0073, 83},
+	{0x0074, 84}, {0x0075, 85}, {0x0076, 86}, {0x0077, 87},
+	{0x0078, 88}, {0x0079, 89}, {0x007a, 90}, {0x00a0, 160},
+	{0x00a3, 92}, {0x2190, 95}, {0x2191, 94}, {0x2500, 96},
+	{0x2502, 125}, {0x250c, 176}, {0x2510, 174}, {0x2514, 173},
+	{0x2518, 189}, {0x251c, 171}, {0x2524, 179}, {0x252c, 178},
+	{0x2534, 177}, {0x253c, 123}, {0x2581, 164}, {0x2582, 175},
+	{0x2583, 185}, {0x2584, 162}, {0x258c, 161}, {0x258d, 181},
+	{0x258e, 180}, {0x258f, 165}, {0x2592, 166}, {0x2594, 163},
+	{0x2595, 167}, {0x2596, 187}, {0x2597, 172}, {0x2598, 190},
+	{0x259a, 191}, {0x259d, 188}, {0x2713, 186}, {0xfffd, 63},
+	{0x1fb82, 183}, {0x1fb83, 184}, {0x1fb87, 170}, {0x1fb88, 182},
+	{0x1fb8c, 124}, {0x1fb8f, 168}, {0x1fb96, 126}, {0x1fb98, 127},
+	{0x1fb99, 169}
 };
 
 const static uint32_t petsciil_unicode_table[256] = {