1 /* 1 /* 2 * linux/fs/nls/mac-centeuro.c 2 * linux/fs/nls/mac-centeuro.c 3 * 3 * 4 * Charset maccenteuro translation tables. 4 * Charset maccenteuro translation tables. 5 * Generated automatically from the Unicode an 5 * Generated automatically from the Unicode and charset 6 * tables from the Unicode Organization (www.u 6 * tables from the Unicode Organization (www.unicode.org). 7 * The Unicode to charset table has only exact 7 * The Unicode to charset table has only exact mappings. 8 */ 8 */ 9 9 10 /* 10 /* 11 * COPYRIGHT AND PERMISSION NOTICE 11 * COPYRIGHT AND PERMISSION NOTICE 12 * 12 * 13 * Copyright 1991-2012 Unicode, Inc. All righ 13 * Copyright 1991-2012 Unicode, Inc. All rights reserved. Distributed under 14 * the Terms of Use in http://www.unicode.org/ 14 * the Terms of Use in http://www.unicode.org/copyright.html. 15 * 15 * 16 * Permission is hereby granted, free of charg 16 * Permission is hereby granted, free of charge, to any person obtaining a 17 * copy of the Unicode data files and any asso 17 * copy of the Unicode data files and any associated documentation (the "Data 18 * Files") or Unicode software and any associa 18 * Files") or Unicode software and any associated documentation (the 19 * "Software") to deal in the Data Files or So 19 * "Software") to deal in the Data Files or Software without restriction, 20 * including without limitation the rights to 20 * including without limitation the rights to use, copy, modify, merge, 21 * publish, distribute, and/or sell copies of 21 * publish, distribute, and/or sell copies of the Data Files or Software, and 22 * to permit persons to whom the Data Files or 22 * to permit persons to whom the Data Files or Software are furnished to do 23 * so, provided that (a) the above copyright n 23 * so, provided that (a) the above copyright notice(s) and this permission 24 * notice appear with all copies of the Data F 24 * notice appear with all copies of the Data Files or Software, (b) both the 25 * above copyright notice(s) and this permissi 25 * above copyright notice(s) and this permission notice appear in associated 26 * documentation, and (c) there is clear notic 26 * documentation, and (c) there is clear notice in each modified Data File or 27 * in the Software as well as in the documenta 27 * in the Software as well as in the documentation associated with the Data 28 * File(s) or Software that the data or softwa 28 * File(s) or Software that the data or software has been modified. 29 * 29 * 30 * THE DATA FILES AND SOFTWARE ARE PROVIDED "A 30 * THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY 31 * KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 31 * KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 32 * MERCHANTABILITY, FITNESS FOR A PARTICULAR P 32 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF 33 * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE 33 * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS 34 * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY C 34 * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT 35 * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WH 35 * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF 36 * USE, DATA OR PROFITS, WHETHER IN AN ACTION 36 * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 37 * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 37 * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 38 * PERFORMANCE OF THE DATA FILES OR SOFTWARE. 38 * PERFORMANCE OF THE DATA FILES OR SOFTWARE. 39 * 39 * 40 * Except as contained in this notice, the nam 40 * Except as contained in this notice, the name of a copyright holder shall 41 * not be used in advertising or otherwise to 41 * not be used in advertising or otherwise to promote the sale, use or other 42 * dealings in these Data Files or Software wi 42 * dealings in these Data Files or Software without prior written 43 * authorization of the copyright holder. 43 * authorization of the copyright holder. 44 */ 44 */ 45 45 46 #include <linux/module.h> 46 #include <linux/module.h> 47 #include <linux/kernel.h> 47 #include <linux/kernel.h> 48 #include <linux/string.h> 48 #include <linux/string.h> 49 #include <linux/nls.h> 49 #include <linux/nls.h> 50 #include <linux/errno.h> 50 #include <linux/errno.h> 51 51 52 static const wchar_t charset2uni[256] = { 52 static const wchar_t charset2uni[256] = { 53 /* 0x00 */ 53 /* 0x00 */ 54 0x0000, 0x0001, 0x0002, 0x0003, 54 0x0000, 0x0001, 0x0002, 0x0003, 55 0x0004, 0x0005, 0x0006, 0x0007, 55 0x0004, 0x0005, 0x0006, 0x0007, 56 0x0008, 0x0009, 0x000a, 0x000b, 56 0x0008, 0x0009, 0x000a, 0x000b, 57 0x000c, 0x000d, 0x000e, 0x000f, 57 0x000c, 0x000d, 0x000e, 0x000f, 58 /* 0x10 */ 58 /* 0x10 */ 59 0x0010, 0x0011, 0x0012, 0x0013, 59 0x0010, 0x0011, 0x0012, 0x0013, 60 0x0014, 0x0015, 0x0016, 0x0017, 60 0x0014, 0x0015, 0x0016, 0x0017, 61 0x0018, 0x0019, 0x001a, 0x001b, 61 0x0018, 0x0019, 0x001a, 0x001b, 62 0x001c, 0x001d, 0x001e, 0x001f, 62 0x001c, 0x001d, 0x001e, 0x001f, 63 /* 0x20 */ 63 /* 0x20 */ 64 0x0020, 0x0021, 0x0022, 0x0023, 64 0x0020, 0x0021, 0x0022, 0x0023, 65 0x0024, 0x0025, 0x0026, 0x0027, 65 0x0024, 0x0025, 0x0026, 0x0027, 66 0x0028, 0x0029, 0x002a, 0x002b, 66 0x0028, 0x0029, 0x002a, 0x002b, 67 0x002c, 0x002d, 0x002e, 0x002f, 67 0x002c, 0x002d, 0x002e, 0x002f, 68 /* 0x30 */ 68 /* 0x30 */ 69 0x0030, 0x0031, 0x0032, 0x0033, 69 0x0030, 0x0031, 0x0032, 0x0033, 70 0x0034, 0x0035, 0x0036, 0x0037, 70 0x0034, 0x0035, 0x0036, 0x0037, 71 0x0038, 0x0039, 0x003a, 0x003b, 71 0x0038, 0x0039, 0x003a, 0x003b, 72 0x003c, 0x003d, 0x003e, 0x003f, 72 0x003c, 0x003d, 0x003e, 0x003f, 73 /* 0x40 */ 73 /* 0x40 */ 74 0x0040, 0x0041, 0x0042, 0x0043, 74 0x0040, 0x0041, 0x0042, 0x0043, 75 0x0044, 0x0045, 0x0046, 0x0047, 75 0x0044, 0x0045, 0x0046, 0x0047, 76 0x0048, 0x0049, 0x004a, 0x004b, 76 0x0048, 0x0049, 0x004a, 0x004b, 77 0x004c, 0x004d, 0x004e, 0x004f, 77 0x004c, 0x004d, 0x004e, 0x004f, 78 /* 0x50 */ 78 /* 0x50 */ 79 0x0050, 0x0051, 0x0052, 0x0053, 79 0x0050, 0x0051, 0x0052, 0x0053, 80 0x0054, 0x0055, 0x0056, 0x0057, 80 0x0054, 0x0055, 0x0056, 0x0057, 81 0x0058, 0x0059, 0x005a, 0x005b, 81 0x0058, 0x0059, 0x005a, 0x005b, 82 0x005c, 0x005d, 0x005e, 0x005f, 82 0x005c, 0x005d, 0x005e, 0x005f, 83 /* 0x60 */ 83 /* 0x60 */ 84 0x0060, 0x0061, 0x0062, 0x0063, 84 0x0060, 0x0061, 0x0062, 0x0063, 85 0x0064, 0x0065, 0x0066, 0x0067, 85 0x0064, 0x0065, 0x0066, 0x0067, 86 0x0068, 0x0069, 0x006a, 0x006b, 86 0x0068, 0x0069, 0x006a, 0x006b, 87 0x006c, 0x006d, 0x006e, 0x006f, 87 0x006c, 0x006d, 0x006e, 0x006f, 88 /* 0x70 */ 88 /* 0x70 */ 89 0x0070, 0x0071, 0x0072, 0x0073, 89 0x0070, 0x0071, 0x0072, 0x0073, 90 0x0074, 0x0075, 0x0076, 0x0077, 90 0x0074, 0x0075, 0x0076, 0x0077, 91 0x0078, 0x0079, 0x007a, 0x007b, 91 0x0078, 0x0079, 0x007a, 0x007b, 92 0x007c, 0x007d, 0x007e, 0x007f, 92 0x007c, 0x007d, 0x007e, 0x007f, 93 /* 0x80 */ 93 /* 0x80 */ 94 0x00c4, 0x0100, 0x0101, 0x00c9, 94 0x00c4, 0x0100, 0x0101, 0x00c9, 95 0x0104, 0x00d6, 0x00dc, 0x00e1, 95 0x0104, 0x00d6, 0x00dc, 0x00e1, 96 0x0105, 0x010c, 0x00e4, 0x010d, 96 0x0105, 0x010c, 0x00e4, 0x010d, 97 0x0106, 0x0107, 0x00e9, 0x0179, 97 0x0106, 0x0107, 0x00e9, 0x0179, 98 /* 0x90 */ 98 /* 0x90 */ 99 0x017a, 0x010e, 0x00ed, 0x010f, 99 0x017a, 0x010e, 0x00ed, 0x010f, 100 0x0112, 0x0113, 0x0116, 0x00f3, 100 0x0112, 0x0113, 0x0116, 0x00f3, 101 0x0117, 0x00f4, 0x00f6, 0x00f5, 101 0x0117, 0x00f4, 0x00f6, 0x00f5, 102 0x00fa, 0x011a, 0x011b, 0x00fc, 102 0x00fa, 0x011a, 0x011b, 0x00fc, 103 /* 0xa0 */ 103 /* 0xa0 */ 104 0x2020, 0x00b0, 0x0118, 0x00a3, 104 0x2020, 0x00b0, 0x0118, 0x00a3, 105 0x00a7, 0x2022, 0x00b6, 0x00df, 105 0x00a7, 0x2022, 0x00b6, 0x00df, 106 0x00ae, 0x00a9, 0x2122, 0x0119, 106 0x00ae, 0x00a9, 0x2122, 0x0119, 107 0x00a8, 0x2260, 0x0123, 0x012e, 107 0x00a8, 0x2260, 0x0123, 0x012e, 108 /* 0xb0 */ 108 /* 0xb0 */ 109 0x012f, 0x012a, 0x2264, 0x2265, 109 0x012f, 0x012a, 0x2264, 0x2265, 110 0x012b, 0x0136, 0x2202, 0x2211, 110 0x012b, 0x0136, 0x2202, 0x2211, 111 0x0142, 0x013b, 0x013c, 0x013d, 111 0x0142, 0x013b, 0x013c, 0x013d, 112 0x013e, 0x0139, 0x013a, 0x0145, 112 0x013e, 0x0139, 0x013a, 0x0145, 113 /* 0xc0 */ 113 /* 0xc0 */ 114 0x0146, 0x0143, 0x00ac, 0x221a, 114 0x0146, 0x0143, 0x00ac, 0x221a, 115 0x0144, 0x0147, 0x2206, 0x00ab, 115 0x0144, 0x0147, 0x2206, 0x00ab, 116 0x00bb, 0x2026, 0x00a0, 0x0148, 116 0x00bb, 0x2026, 0x00a0, 0x0148, 117 0x0150, 0x00d5, 0x0151, 0x014c, 117 0x0150, 0x00d5, 0x0151, 0x014c, 118 /* 0xd0 */ 118 /* 0xd0 */ 119 0x2013, 0x2014, 0x201c, 0x201d, 119 0x2013, 0x2014, 0x201c, 0x201d, 120 0x2018, 0x2019, 0x00f7, 0x25ca, 120 0x2018, 0x2019, 0x00f7, 0x25ca, 121 0x014d, 0x0154, 0x0155, 0x0158, 121 0x014d, 0x0154, 0x0155, 0x0158, 122 0x2039, 0x203a, 0x0159, 0x0156, 122 0x2039, 0x203a, 0x0159, 0x0156, 123 /* 0xe0 */ 123 /* 0xe0 */ 124 0x0157, 0x0160, 0x201a, 0x201e, 124 0x0157, 0x0160, 0x201a, 0x201e, 125 0x0161, 0x015a, 0x015b, 0x00c1, 125 0x0161, 0x015a, 0x015b, 0x00c1, 126 0x0164, 0x0165, 0x00cd, 0x017d, 126 0x0164, 0x0165, 0x00cd, 0x017d, 127 0x017e, 0x016a, 0x00d3, 0x00d4, 127 0x017e, 0x016a, 0x00d3, 0x00d4, 128 /* 0xf0 */ 128 /* 0xf0 */ 129 0x016b, 0x016e, 0x00da, 0x016f, 129 0x016b, 0x016e, 0x00da, 0x016f, 130 0x0170, 0x0171, 0x0172, 0x0173, 130 0x0170, 0x0171, 0x0172, 0x0173, 131 0x00dd, 0x00fd, 0x0137, 0x017b, 131 0x00dd, 0x00fd, 0x0137, 0x017b, 132 0x0141, 0x017c, 0x0122, 0x02c7, 132 0x0141, 0x017c, 0x0122, 0x02c7, 133 }; 133 }; 134 134 135 static const unsigned char page00[256] = { 135 static const unsigned char page00[256] = { 136 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x 136 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ 137 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x 137 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ 138 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x 138 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ 139 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x 139 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ 140 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x 140 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /* 0x20-0x27 */ 141 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x 141 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, /* 0x28-0x2f */ 142 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x 142 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 0x30-0x37 */ 143 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x 143 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, /* 0x38-0x3f */ 144 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x 144 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* 0x40-0x47 */ 145 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x 145 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, /* 0x48-0x4f */ 146 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x 146 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, /* 0x50-0x57 */ 147 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x 147 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, /* 0x58-0x5f */ 148 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x 148 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0x60-0x67 */ 149 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x 149 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, /* 0x68-0x6f */ 150 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x 150 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, /* 0x70-0x77 */ 151 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x 151 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, /* 0x78-0x7f */ 152 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 152 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ 153 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 153 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ 154 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 154 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ 155 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 155 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ 156 0xca, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x 156 0xca, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0xa4, /* 0xa0-0xa7 */ 157 0xac, 0xa9, 0x00, 0xc7, 0xc2, 0x00, 0x 157 0xac, 0xa9, 0x00, 0xc7, 0xc2, 0x00, 0xa8, 0x00, /* 0xa8-0xaf */ 158 0xa1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 158 0xa1, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x00, /* 0xb0-0xb7 */ 159 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x 159 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ 160 0x00, 0xe7, 0x00, 0x00, 0x80, 0x00, 0x 160 0x00, 0xe7, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ 161 0x00, 0x83, 0x00, 0x00, 0x00, 0xea, 0x 161 0x00, 0x83, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, /* 0xc8-0xcf */ 162 0x00, 0x00, 0x00, 0xee, 0xef, 0xcd, 0x 162 0x00, 0x00, 0x00, 0xee, 0xef, 0xcd, 0x85, 0x00, /* 0xd0-0xd7 */ 163 0x00, 0x00, 0xf2, 0x00, 0x86, 0xf8, 0x 163 0x00, 0x00, 0xf2, 0x00, 0x86, 0xf8, 0x00, 0xa7, /* 0xd8-0xdf */ 164 0x00, 0x87, 0x00, 0x00, 0x8a, 0x00, 0x 164 0x00, 0x87, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ 165 0x00, 0x8e, 0x00, 0x00, 0x00, 0x92, 0x 165 0x00, 0x8e, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, /* 0xe8-0xef */ 166 0x00, 0x00, 0x00, 0x97, 0x99, 0x9b, 0x 166 0x00, 0x00, 0x00, 0x97, 0x99, 0x9b, 0x9a, 0xd6, /* 0xf0-0xf7 */ 167 0x00, 0x00, 0x9c, 0x00, 0x9f, 0xf9, 0x 167 0x00, 0x00, 0x9c, 0x00, 0x9f, 0xf9, 0x00, 0x00, /* 0xf8-0xff */ 168 }; 168 }; 169 169 170 static const unsigned char page01[256] = { 170 static const unsigned char page01[256] = { 171 0x81, 0x82, 0x00, 0x00, 0x84, 0x88, 0x 171 0x81, 0x82, 0x00, 0x00, 0x84, 0x88, 0x8c, 0x8d, /* 0x00-0x07 */ 172 0x00, 0x00, 0x00, 0x00, 0x89, 0x8b, 0x 172 0x00, 0x00, 0x00, 0x00, 0x89, 0x8b, 0x91, 0x93, /* 0x08-0x0f */ 173 0x00, 0x00, 0x94, 0x95, 0x00, 0x00, 0x 173 0x00, 0x00, 0x94, 0x95, 0x00, 0x00, 0x96, 0x98, /* 0x10-0x17 */ 174 0xa2, 0xab, 0x9d, 0x9e, 0x00, 0x00, 0x 174 0xa2, 0xab, 0x9d, 0x9e, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ 175 0x00, 0x00, 0xfe, 0xae, 0x00, 0x00, 0x 175 0x00, 0x00, 0xfe, 0xae, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ 176 0x00, 0x00, 0xb1, 0xb4, 0x00, 0x00, 0x 176 0x00, 0x00, 0xb1, 0xb4, 0x00, 0x00, 0xaf, 0xb0, /* 0x28-0x2f */ 177 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 177 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0xfa, /* 0x30-0x37 */ 178 0x00, 0xbd, 0xbe, 0xb9, 0xba, 0xbb, 0x 178 0x00, 0xbd, 0xbe, 0xb9, 0xba, 0xbb, 0xbc, 0x00, /* 0x38-0x3f */ 179 0x00, 0xfc, 0xb8, 0xc1, 0xc4, 0xbf, 0x 179 0x00, 0xfc, 0xb8, 0xc1, 0xc4, 0xbf, 0xc0, 0xc5, /* 0x40-0x47 */ 180 0xcb, 0x00, 0x00, 0x00, 0xcf, 0xd8, 0x 180 0xcb, 0x00, 0x00, 0x00, 0xcf, 0xd8, 0x00, 0x00, /* 0x48-0x4f */ 181 0xcc, 0xce, 0x00, 0x00, 0xd9, 0xda, 0x 181 0xcc, 0xce, 0x00, 0x00, 0xd9, 0xda, 0xdf, 0xe0, /* 0x50-0x57 */ 182 0xdb, 0xde, 0xe5, 0xe6, 0x00, 0x00, 0x 182 0xdb, 0xde, 0xe5, 0xe6, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ 183 0xe1, 0xe4, 0x00, 0x00, 0xe8, 0xe9, 0x 183 0xe1, 0xe4, 0x00, 0x00, 0xe8, 0xe9, 0x00, 0x00, /* 0x60-0x67 */ 184 0x00, 0x00, 0xed, 0xf0, 0x00, 0x00, 0x 184 0x00, 0x00, 0xed, 0xf0, 0x00, 0x00, 0xf1, 0xf3, /* 0x68-0x6f */ 185 0xf4, 0xf5, 0xf6, 0xf7, 0x00, 0x00, 0x 185 0xf4, 0xf5, 0xf6, 0xf7, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ 186 0x00, 0x8f, 0x90, 0xfb, 0xfd, 0xeb, 0x 186 0x00, 0x8f, 0x90, 0xfb, 0xfd, 0xeb, 0xec, 0x00, /* 0x78-0x7f */ 187 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 187 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ 188 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 188 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ 189 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 189 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ 190 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 190 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ 191 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 191 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ 192 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 192 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ 193 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 193 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ 194 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 194 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ 195 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 195 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ 196 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 196 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ 197 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 197 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ 198 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 198 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ 199 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 199 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ 200 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 200 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ 201 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 201 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf0-0xf7 */ 202 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 202 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ 203 }; 203 }; 204 204 205 static const unsigned char page02[256] = { 205 static const unsigned char page02[256] = { 206 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 206 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ 207 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 207 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ 208 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 208 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ 209 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 209 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ 210 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 210 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ 211 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 211 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ 212 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 212 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ 213 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 213 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ 214 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 214 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ 215 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 215 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ 216 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 216 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ 217 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 217 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ 218 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 218 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ 219 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 219 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ 220 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 220 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ 221 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 221 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ 222 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 222 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ 223 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 223 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ 224 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 224 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ 225 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 225 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ 226 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 226 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ 227 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 227 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ 228 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 228 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ 229 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 229 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ 230 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 230 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, /* 0xc0-0xc7 */ 231 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 231 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ 232 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 232 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ 233 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 233 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ 234 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 234 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ 235 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 235 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ 236 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 236 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf0-0xf7 */ 237 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 237 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ 238 }; 238 }; 239 239 240 static const unsigned char page20[256] = { 240 static const unsigned char page20[256] = { 241 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 241 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ 242 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 242 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ 243 0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x 243 0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */ 244 0xd4, 0xd5, 0xe2, 0x00, 0xd2, 0xd3, 0x 244 0xd4, 0xd5, 0xe2, 0x00, 0xd2, 0xd3, 0xe3, 0x00, /* 0x18-0x1f */ 245 0xa0, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x 245 0xa0, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */ 246 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 246 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ 247 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 247 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ 248 0x00, 0xdc, 0xdd, 0x00, 0x00, 0x00, 0x 248 0x00, 0xdc, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ 249 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 249 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ 250 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 250 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ 251 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 251 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ 252 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 252 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ 253 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 253 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ 254 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 254 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ 255 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 255 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ 256 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 256 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ 257 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 257 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ 258 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 258 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ 259 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 259 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ 260 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 260 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ 261 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 261 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ 262 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 262 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ 263 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 263 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ 264 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 264 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ 265 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 265 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ 266 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 266 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ 267 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 267 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ 268 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 268 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ 269 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 269 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ 270 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 270 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ 271 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 271 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf0-0xf7 */ 272 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 272 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ 273 }; 273 }; 274 274 275 static const unsigned char page21[256] = { 275 static const unsigned char page21[256] = { 276 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 276 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ 277 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 277 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ 278 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 278 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ 279 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 279 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ 280 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x 280 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ 281 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 281 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ 282 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 282 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ 283 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 283 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ 284 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 284 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ 285 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 285 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ 286 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 286 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ 287 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 287 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ 288 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 288 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ 289 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 289 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ 290 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 290 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ 291 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 291 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ 292 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 292 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ 293 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 293 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ 294 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 294 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ 295 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 295 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ 296 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 296 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ 297 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 297 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ 298 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 298 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ 299 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 299 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ 300 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 300 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ 301 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 301 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ 302 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 302 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ 303 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 303 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ 304 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 304 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ 305 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 305 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ 306 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 306 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf0-0xf7 */ 307 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 307 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ 308 }; 308 }; 309 309 310 static const unsigned char page22[256] = { 310 static const unsigned char page22[256] = { 311 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0x 311 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xc6, 0x00, /* 0x00-0x07 */ 312 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 312 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ 313 0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x 313 0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ 314 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x 314 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ 315 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 315 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ 316 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 316 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ 317 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 317 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ 318 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 318 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ 319 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 319 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ 320 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 320 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ 321 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 321 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ 322 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 322 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ 323 0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x 323 0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */ 324 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 324 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ 325 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 325 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ 326 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 326 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ 327 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 327 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ 328 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 328 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ 329 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 329 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ 330 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 330 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ 331 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 331 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ 332 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 332 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ 333 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 333 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ 334 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 334 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ 335 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 335 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ 336 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 336 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ 337 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 337 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ 338 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 338 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ 339 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 339 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ 340 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 340 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ 341 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 341 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf0-0xf7 */ 342 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 342 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ 343 }; 343 }; 344 344 345 static const unsigned char page25[256] = { 345 static const unsigned char page25[256] = { 346 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 346 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ 347 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 347 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ 348 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 348 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ 349 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 349 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ 350 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 350 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ 351 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 351 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ 352 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 352 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ 353 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 353 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ 354 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 354 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ 355 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 355 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ 356 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 356 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ 357 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 357 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ 358 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 358 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ 359 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 359 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ 360 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 360 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ 361 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 361 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ 362 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 362 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ 363 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 363 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ 364 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 364 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ 365 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 365 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ 366 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 366 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ 367 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 367 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ 368 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 368 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ 369 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 369 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ 370 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 370 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ 371 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x 371 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ 372 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 372 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ 373 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 373 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ 374 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 374 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ 375 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 375 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ 376 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 376 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf0-0xf7 */ 377 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 377 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ 378 }; 378 }; 379 379 380 static const unsigned char *const page_uni2cha 380 static const unsigned char *const page_uni2charset[256] = { 381 page00, page01, page02, NULL, NULL, 381 page00, page01, page02, NULL, NULL, NULL, NULL, NULL, 382 NULL, NULL, NULL, NULL, NULL, 382 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 383 NULL, NULL, NULL, NULL, NULL, 383 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 384 NULL, NULL, NULL, NULL, NULL, 384 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 385 page20, page21, page22, NULL, NULL, 385 page20, page21, page22, NULL, NULL, page25, NULL, NULL, 386 NULL, NULL, NULL, NULL, NULL, 386 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 387 NULL, NULL, NULL, NULL, NULL, 387 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 388 NULL, NULL, NULL, NULL, NULL, 388 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 389 NULL, NULL, NULL, NULL, NULL, 389 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390 NULL, NULL, NULL, NULL, NULL, 390 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 391 NULL, NULL, NULL, NULL, NULL, 391 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 392 NULL, NULL, NULL, NULL, NULL, 392 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 393 NULL, NULL, NULL, NULL, NULL, 393 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 394 NULL, NULL, NULL, NULL, NULL, 394 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 395 NULL, NULL, NULL, NULL, NULL, 395 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 396 NULL, NULL, NULL, NULL, NULL, 396 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 397 NULL, NULL, NULL, NULL, NULL, 397 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 398 NULL, NULL, NULL, NULL, NULL, 398 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 399 NULL, NULL, NULL, NULL, NULL, 399 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 400 NULL, NULL, NULL, NULL, NULL, 400 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 401 NULL, NULL, NULL, NULL, NULL, 401 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 402 NULL, NULL, NULL, NULL, NULL, 402 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 403 NULL, NULL, NULL, NULL, NULL, 403 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 404 NULL, NULL, NULL, NULL, NULL, 404 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 405 NULL, NULL, NULL, NULL, NULL, 405 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 406 NULL, NULL, NULL, NULL, NULL, 406 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 407 NULL, NULL, NULL, NULL, NULL, 407 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 408 NULL, NULL, NULL, NULL, NULL, 408 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 409 NULL, NULL, NULL, NULL, NULL, 409 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 410 NULL, NULL, NULL, NULL, NULL, 410 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 411 NULL, NULL, NULL, NULL, NULL, 411 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 412 NULL, NULL, NULL, NULL, NULL, 412 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 413 }; 413 }; 414 414 415 static const unsigned char charset2lower[256] 415 static const unsigned char charset2lower[256] = { 416 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 416 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x00-0x07 */ 417 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 417 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x08-0x0f */ 418 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 418 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x10-0x17 */ 419 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 419 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x18-0x1f */ 420 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 420 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x20-0x27 */ 421 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 421 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x28-0x2f */ 422 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 422 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x30-0x37 */ 423 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 423 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x38-0x3f */ 424 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 424 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x40-0x47 */ 425 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 425 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x48-0x4f */ 426 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 426 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x50-0x57 */ 427 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 427 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x58-0x5f */ 428 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 428 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x60-0x67 */ 429 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 429 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x68-0x6f */ 430 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 430 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x70-0x77 */ 431 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 431 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x78-0x7f */ 432 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 432 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x80-0x87 */ 433 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 433 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x88-0x8f */ 434 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 434 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x90-0x97 */ 435 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 435 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x98-0x9f */ 436 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 436 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xa0-0xa7 */ 437 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 437 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xa8-0xaf */ 438 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 438 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xb0-0xb7 */ 439 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 439 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xb8-0xbf */ 440 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 440 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xc0-0xc7 */ 441 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 441 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xc8-0xcf */ 442 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 442 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xd0-0xd7 */ 443 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 443 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xd8-0xdf */ 444 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 444 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xe0-0xe7 */ 445 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 445 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xe8-0xef */ 446 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 446 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xf0-0xf7 */ 447 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 447 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xf8-0xff */ 448 }; 448 }; 449 449 450 static const unsigned char charset2upper[256] 450 static const unsigned char charset2upper[256] = { 451 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 451 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x00-0x07 */ 452 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 452 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x08-0x0f */ 453 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 453 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x10-0x17 */ 454 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 454 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x18-0x1f */ 455 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 455 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x20-0x27 */ 456 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 456 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x28-0x2f */ 457 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 457 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x30-0x37 */ 458 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 458 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x38-0x3f */ 459 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 459 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x40-0x47 */ 460 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 460 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x48-0x4f */ 461 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 461 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x50-0x57 */ 462 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 462 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x58-0x5f */ 463 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 463 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x60-0x67 */ 464 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 464 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x68-0x6f */ 465 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 465 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x70-0x77 */ 466 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 466 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x78-0x7f */ 467 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 467 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x80-0x87 */ 468 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 468 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x88-0x8f */ 469 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 469 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x90-0x97 */ 470 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 470 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x98-0x9f */ 471 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 471 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xa0-0xa7 */ 472 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 472 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xa8-0xaf */ 473 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 473 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xb0-0xb7 */ 474 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 474 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xb8-0xbf */ 475 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 475 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xc0-0xc7 */ 476 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 476 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xc8-0xcf */ 477 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 477 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xd0-0xd7 */ 478 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 478 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xd8-0xdf */ 479 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 479 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xe0-0xe7 */ 480 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 480 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xe8-0xef */ 481 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 481 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xf0-0xf7 */ 482 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 482 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0xf8-0xff */ 483 }; 483 }; 484 484 485 static int uni2char(wchar_t uni, unsigned char 485 static int uni2char(wchar_t uni, unsigned char *out, int boundlen) 486 { 486 { 487 const unsigned char *uni2charset; 487 const unsigned char *uni2charset; 488 unsigned char cl = uni & 0x00ff; 488 unsigned char cl = uni & 0x00ff; 489 unsigned char ch = (uni & 0xff00) >> 8 489 unsigned char ch = (uni & 0xff00) >> 8; 490 490 491 if (boundlen <= 0) 491 if (boundlen <= 0) 492 return -ENAMETOOLONG; 492 return -ENAMETOOLONG; 493 493 494 uni2charset = page_uni2charset[ch]; 494 uni2charset = page_uni2charset[ch]; 495 if (uni2charset && uni2charset[cl]) 495 if (uni2charset && uni2charset[cl]) 496 out[0] = uni2charset[cl]; 496 out[0] = uni2charset[cl]; 497 else 497 else 498 return -EINVAL; 498 return -EINVAL; 499 return 1; 499 return 1; 500 } 500 } 501 501 502 static int char2uni(const unsigned char *rawst 502 static int char2uni(const unsigned char *rawstring, int boundlen, wchar_t *uni) 503 { 503 { 504 *uni = charset2uni[*rawstring]; 504 *uni = charset2uni[*rawstring]; 505 if (*uni == 0x0000) 505 if (*uni == 0x0000) 506 return -EINVAL; 506 return -EINVAL; 507 return 1; 507 return 1; 508 } 508 } 509 509 510 static struct nls_table table = { 510 static struct nls_table table = { 511 .charset = "maccenteuro", 511 .charset = "maccenteuro", 512 .uni2char = uni2char, 512 .uni2char = uni2char, 513 .char2uni = char2uni, 513 .char2uni = char2uni, 514 .charset2lower = charset2lower, 514 .charset2lower = charset2lower, 515 .charset2upper = charset2upper, 515 .charset2upper = charset2upper, 516 }; 516 }; 517 517 518 static int __init init_nls_maccenteuro(void) 518 static int __init init_nls_maccenteuro(void) 519 { 519 { 520 return register_nls(&table); 520 return register_nls(&table); 521 } 521 } 522 522 523 static void __exit exit_nls_maccenteuro(void) 523 static void __exit exit_nls_maccenteuro(void) 524 { 524 { 525 unregister_nls(&table); 525 unregister_nls(&table); 526 } 526 } 527 527 528 module_init(init_nls_maccenteuro) 528 module_init(init_nls_maccenteuro) 529 module_exit(exit_nls_maccenteuro) 529 module_exit(exit_nls_maccenteuro) 530 530 531 MODULE_DESCRIPTION("NLS Codepage maccenteuro") << 532 MODULE_LICENSE("Dual BSD/GPL"); 531 MODULE_LICENSE("Dual BSD/GPL"); 533 532
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.