############################################################################## # # # IAR ARM ANSI C/C++ Compiler V4.41A/W32 EVALUATION 10/Feb/2008 21:38:05 # # Copyright 1999-2005 IAR Systems. All rights reserved. # # # # Cpu mode = interwork # # Endian = little # # Stack alignment = 4 # # Source file = D:\Pasha\elf\_MY_PROJECT\TextReader\strings.c # # Command line = D:\Pasha\elf\_MY_PROJECT\TextReader\strings.c -lC # # D:\Pasha\elf\_MY_PROJECT\TextReader\Release_SGOLD\Li # # st\ -o D:\Pasha\elf\_MY_PROJECT\TextReader\Release_S # # GOLD\Obj\ -s9 --cpu_mode arm --endian little --cpu # # ARM926EJ-S --stack_align 4 --interwork -e --fpu # # None --dlib_config "D:\Pasha\ARM_Embedded_Workbench\ # # Embedded Workbench 4.0 Evaluation\ARM\LIB\dl5tpainl8 # # n.h" -I "D:\Pasha\ARM_Embedded_Workbench\Embedded # # Workbench 4.0 Evaluation\ARM\INC\" # # --inline_threshold=2 # # List file = D:\Pasha\elf\_MY_PROJECT\TextReader\Release_SGOLD\Li # # st\strings.lst # # Object file = D:\Pasha\elf\_MY_PROJECT\TextReader\Release_SGOLD\Ob # # j\strings.r79 # # # # # ############################################################################## D:\Pasha\elf\_MY_PROJECT\TextReader\strings.c 1 #include "..\inc\swilib.h" 2 //#include "main.h" 3 #include "strings.h" 4 //-----------------------Edit chat--------------------------- 5 extern int total_symb; 6 typedef struct 7 { 8 unsigned short u; 9 char dos; 10 char win; 11 char koi8; 12 } TUNICODE2CHAR; 13 \ In segment DATA_C, align 4, align-sorted 14 const TUNICODE2CHAR unicode2char[]= \ unicode2char: \ 00000000 1004 DC16 1040 \ 00000002 80C0E100 DC8 128, 192, 225, 0 \ 00000006 1104 DC16 1041 \ 00000008 81C1E200 DC8 129, 193, 226, 0 \ 0000000C 1204 DC16 1042 \ 0000000E 82C2F700 DC8 130, 194, 247, 0 \ 00000012 1304 DC16 1043 \ 00000014 83C3E700 DC8 131, 195, 231, 0 \ 00000018 1404 DC16 1044 \ 0000001A 84C4E400 DC8 132, 196, 228, 0 \ 0000001E 1504 DC16 1045 \ 00000020 85C5E500 DC8 133, 197, 229, 0 \ 00000024 1604 DC16 1046 \ 00000026 86C6F600 DC8 134, 198, 246, 0 \ 0000002A 1704 DC16 1047 \ 0000002C 87C7FA00 DC8 135, 199, 250, 0 \ 00000030 1804 DC16 1048 \ 00000032 88C8E900 DC8 136, 200, 233, 0 \ 00000036 1904 DC16 1049 \ 00000038 89C9EA00 DC8 137, 201, 234, 0 \ 0000003C 1A04 DC16 1050 \ 0000003E 8ACAEB00 DC8 138, 202, 235, 0 \ 00000042 1B04 DC16 1051 \ 00000044 8BCBEC00 DC8 139, 203, 236, 0 \ 00000048 1C04 DC16 1052 \ 0000004A 8CCCED00 DC8 140, 204, 237, 0 \ 0000004E 1D04 DC16 1053 \ 00000050 8DCDEE00 DC8 141, 205, 238, 0 \ 00000054 1E04 DC16 1054 \ 00000056 8ECEEF00 DC8 142, 206, 239, 0 \ 0000005A 1F04 DC16 1055 \ 0000005C 8FCFF000 DC8 143, 207, 240, 0 \ 00000060 2004 DC16 1056 \ 00000062 90D0F200 DC8 144, 208, 242, 0 \ 00000066 2104 DC16 1057 \ 00000068 91D1F300 DC8 145, 209, 243, 0 \ 0000006C 2204 DC16 1058 \ 0000006E 92D2F400 DC8 146, 210, 244, 0 \ 00000072 2304 DC16 1059 \ 00000074 93D3F500 DC8 147, 211, 245, 0 \ 00000078 2404 DC16 1060 \ 0000007A 94D4E600 DC8 148, 212, 230, 0 \ 0000007E 2504 DC16 1061 \ 00000080 95D5E800 DC8 149, 213, 232, 0 \ 00000084 2604 DC16 1062 \ 00000086 96D6E300 DC8 150, 214, 227, 0 \ 0000008A 2704 DC16 1063 \ 0000008C 97D7FE00 DC8 151, 215, 254, 0 \ 00000090 2804 DC16 1064 \ 00000092 98D8FB00 DC8 152, 216, 251, 0 \ 00000096 2904 DC16 1065 \ 00000098 99D9FD00 DC8 153, 217, 253, 0 \ 0000009C 2A04 DC16 1066 \ 0000009E 9ADAFF00 DC8 154, 218, 255, 0 \ 000000A2 2B04 DC16 1067 \ 000000A4 9BDBF900 DC8 155, 219, 249, 0 \ 000000A8 2C04 DC16 1068 \ 000000AA 9CDCF800 DC8 156, 220, 248, 0 \ 000000AE 2D04 DC16 1069 \ 000000B0 9DDDFC00 DC8 157, 221, 252, 0 \ 000000B4 2E04 DC16 1070 \ 000000B6 9EDEE000 DC8 158, 222, 224, 0 \ 000000BA 2F04 DC16 1071 \ 000000BC 9FDFF100 DC8 159, 223, 241, 0 \ 000000C0 0204 DC16 1026 \ 000000C2 5F805F00 DC8 95, 128, 95, 0 \ 000000C6 0304 DC16 1027 \ 000000C8 5F815F00 DC8 95, 129, 95, 0 \ 000000CC 0904 DC16 1033 \ 000000CE 5F8A5F00 DC8 95, 138, 95, 0 \ 000000D2 0A04 DC16 1034 \ 000000D4 5F8C5F00 DC8 95, 140, 95, 0 \ 000000D8 0C04 DC16 1036 \ 000000DA 5F8D5F00 DC8 95, 141, 95, 0 \ 000000DE 0B04 DC16 1035 \ 000000E0 5F8E5F00 DC8 95, 142, 95, 0 \ 000000E4 0F04 DC16 1039 \ 000000E6 5F8F5F00 DC8 95, 143, 95, 0 \ 000000EA 0E04 DC16 1038 \ 000000EC F6A15F00 DC8 246, 161, 95, 0 \ 000000F0 0804 DC16 1032 \ 000000F2 4AA34A00 DC8 74, 163, 74, 0 \ 000000F6 0904 DC16 1033 \ 000000F8 83A5BD00 DC8 131, 165, 189, 0 \ 000000FC 0104 DC16 1025 \ 000000FE F0A8B300 DC8 240, 168, 179, 0 \ 00000102 0404 DC16 1028 \ 00000104 F2AAB400 DC8 242, 170, 180, 0 \ 00000108 0704 DC16 1031 \ 0000010A F4AFB700 DC8 244, 175, 183, 0 \ 0000010E 0604 DC16 1030 \ 00000110 49B2B600 DC8 73, 178, 182, 0 \ 00000114 0504 DC16 1029 \ 00000116 53BD5300 DC8 83, 189, 83, 0 \ 0000011A 3004 DC16 1072 \ 0000011C A0E0C100 DC8 160, 224, 193, 0 \ 00000120 3104 DC16 1073 \ 00000122 A1E1C200 DC8 161, 225, 194, 0 \ 00000126 3204 DC16 1074 \ 00000128 A2E2D700 DC8 162, 226, 215, 0 \ 0000012C 3304 DC16 1075 \ 0000012E A3E3C700 DC8 163, 227, 199, 0 \ 00000132 3404 DC16 1076 \ 00000134 A4E4C400 DC8 164, 228, 196, 0 \ 00000138 3504 DC16 1077 \ 0000013A A5E5C500 DC8 165, 229, 197, 0 \ 0000013E 3604 DC16 1078 \ 00000140 A6E6D600 DC8 166, 230, 214, 0 \ 00000144 3704 DC16 1079 \ 00000146 A7E7DA00 DC8 167, 231, 218, 0 \ 0000014A 3804 DC16 1080 \ 0000014C A8E8C900 DC8 168, 232, 201, 0 \ 00000150 3904 DC16 1081 \ 00000152 A9E9CA00 DC8 169, 233, 202, 0 \ 00000156 3A04 DC16 1082 \ 00000158 AAEACB00 DC8 170, 234, 203, 0 \ 0000015C 3B04 DC16 1083 \ 0000015E ABEBCC00 DC8 171, 235, 204, 0 \ 00000162 3C04 DC16 1084 \ 00000164 ACECCD00 DC8 172, 236, 205, 0 \ 00000168 3D04 DC16 1085 \ 0000016A ADEDCE00 DC8 173, 237, 206, 0 \ 0000016E 3E04 DC16 1086 \ 00000170 AEEECF00 DC8 174, 238, 207, 0 \ 00000174 3F04 DC16 1087 \ 00000176 AFEFD000 DC8 175, 239, 208, 0 \ 0000017A 4004 DC16 1088 \ 0000017C E0F0D200 DC8 224, 240, 210, 0 \ 00000180 4104 DC16 1089 \ 00000182 E1F1D300 DC8 225, 241, 211, 0 \ 00000186 4204 DC16 1090 \ 00000188 E2F2D400 DC8 226, 242, 212, 0 \ 0000018C 4304 DC16 1091 \ 0000018E E3F3D500 DC8 227, 243, 213, 0 \ 00000192 4404 DC16 1092 \ 00000194 E4F4C600 DC8 228, 244, 198, 0 \ 00000198 4504 DC16 1093 \ 0000019A E5F5C800 DC8 229, 245, 200, 0 \ 0000019E 4604 DC16 1094 \ 000001A0 E6F6C300 DC8 230, 246, 195, 0 \ 000001A4 4704 DC16 1095 \ 000001A6 E7F7DE00 DC8 231, 247, 222, 0 \ 000001AA 4804 DC16 1096 \ 000001AC E8F8DB00 DC8 232, 248, 219, 0 \ 000001B0 4904 DC16 1097 \ 000001B2 E9F9DD00 DC8 233, 249, 221, 0 \ 000001B6 4A04 DC16 1098 \ 000001B8 EAFADF00 DC8 234, 250, 223, 0 \ 000001BC 4B04 DC16 1099 \ 000001BE EBFBD900 DC8 235, 251, 217, 0 \ 000001C2 4C04 DC16 1100 \ 000001C4 ECFCD800 DC8 236, 252, 216, 0 \ 000001C8 4D04 DC16 1101 \ 000001CA EDFDDC00 DC8 237, 253, 220, 0 \ 000001CE 4E04 DC16 1102 \ 000001D0 EEFEC000 DC8 238, 254, 192, 0 \ 000001D4 4F04 DC16 1103 \ 000001D6 EFFFD100 DC8 239, 255, 209, 0 \ 000001DA 5204 DC16 1106 \ 000001DC 5F905F00 DC8 95, 144, 95, 0 \ 000001E0 5304 DC16 1107 \ 000001E2 5F835F00 DC8 95, 131, 95, 0 \ 000001E6 5904 DC16 1113 \ 000001E8 5F9A5F00 DC8 95, 154, 95, 0 \ 000001EC 5A04 DC16 1114 \ 000001EE 5F9C5F00 DC8 95, 156, 95, 0 \ 000001F2 5C04 DC16 1116 \ 000001F4 5F9D5F00 DC8 95, 157, 95, 0 \ 000001F8 5B04 DC16 1115 \ 000001FA 5F9E5F00 DC8 95, 158, 95, 0 \ 000001FE 5F04 DC16 1119 \ 00000200 5F9F5F00 DC8 95, 159, 95, 0 \ 00000204 5E04 DC16 1118 \ 00000206 F7A25F00 DC8 247, 162, 95, 0 \ 0000020A 5804 DC16 1112 \ 0000020C 6ABC6A00 DC8 106, 188, 106, 0 \ 00000210 9104 DC16 1169 \ 00000212 A3B4AD00 DC8 163, 180, 173, 0 \ 00000216 5104 DC16 1105 \ 00000218 F1B8A300 DC8 241, 184, 163, 0 \ 0000021C 5404 DC16 1108 \ 0000021E F3BAA400 DC8 243, 186, 164, 0 \ 00000222 5704 DC16 1111 \ 00000224 F5BFA700 DC8 245, 191, 167, 0 \ 00000228 5604 DC16 1110 \ 0000022A 69B3A600 DC8 105, 179, 166, 0 \ 0000022E 5504 DC16 1109 \ 00000230 73BE7300 DC8 115, 190, 115, 0 \ 00000234 A000 DC16 160 \ 00000236 5FA02000 DC8 95, 160, 32, 0 \ 0000023A A400 DC16 164 \ 0000023C 5FA4FD00 DC8 95, 164, 253, 0 \ 00000240 A600 DC16 166 \ 00000242 5FA65F00 DC8 95, 166, 95, 0 \ 00000246 B000 DC16 176 \ 00000248 F8B09C00 DC8 248, 176, 156, 0 \ 0000024C B700 DC16 183 \ 0000024E FAB79E00 DC8 250, 183, 158, 0 \ 00000252 0000 DC16 0 \ 00000254 00000000 DC8 0, 0, 0, 0 15 { 16 // CAPITAL Cyrillic letters (base) 17 0x410,0x80,0xC0,0xE1, // À 18 0x411,0x81,0xC1,0xE2, // Á 19 0x412,0x82,0xC2,0xF7, //  20 0x413,0x83,0xC3,0xE7, // à 21 0x414,0x84,0xC4,0xE4, // Ä 22 0x415,0x85,0xC5,0xE5, // Å 23 0x416,0x86,0xC6,0xF6, // Æ 24 0x417,0x87,0xC7,0xFA, // Ç 25 0x418,0x88,0xC8,0xE9, // È 26 0x419,0x89,0xC9,0xEA, // É 27 0x41A,0x8A,0xCA,0xEB, // Ê 28 0x41B,0x8B,0xCB,0xEC, // Ë 29 0x41C,0x8C,0xCC,0xED, // Ì 30 0x41D,0x8D,0xCD,0xEE, // Í 31 0x41E,0x8E,0xCE,0xEF, // Î 32 0x41F,0x8F,0xCF,0xF0, // Ï 33 0x420,0x90,0xD0,0xF2, // Ð 34 0x421,0x91,0xD1,0xF3, // Ñ 35 0x422,0x92,0xD2,0xF4, // Ò 36 0x423,0x93,0xD3,0xF5, // Ó 37 0x424,0x94,0xD4,0xE6, // Ô 38 0x425,0x95,0xD5,0xE8, // Õ 39 0x426,0x96,0xD6,0xE3, // Ö 40 0x427,0x97,0xD7,0xFE, // × 41 0x428,0x98,0xD8,0xFB, // Ø 42 0x429,0x99,0xD9,0xFD, // Ù 43 0x42A,0x9A,0xDA,0xFF, // Ú 44 0x42B,0x9B,0xDB,0xF9, // Û 45 0x42C,0x9C,0xDC,0xF8, // Ü 46 0x42D,0x9D,0xDD,0xFC, // Ý 47 0x42E,0x9E,0xDE,0xE0, // Þ 48 0x42F,0x9F,0xDF,0xF1, // ß 49 // CAPITAL Cyrillic letters (additional) 50 0x402,'_',0x80,'_', // _ .*.* 51 0x403,'_',0x81,'_', // _ .*.* 52 0x409,'_',0x8A,'_', // _ .*.* 53 0x40A,'_',0x8C,'_', // _ .*.* 54 0x40C,'_',0x8D,'_', // _ .*.* 55 0x40B,'_',0x8E,'_', // _ .*.* 56 0x40F,'_',0x8F,'_', // _ .*.* 57 0x40E,0xF6,0xA1,'_', // ¡ ...* 58 0x408,0x4A,0xA3,0x4A, // _ .*.* 59 0x409,0x83,0xA5,0xBD, // _ .*.. 60 0x401,0xF0,0xA8,0xB3, // ¨ 61 0x404,0xF2,0xAA,0xB4, // ª 62 0x407,0xF4,0xAF,0xB7, // ¯ 63 0x406,0x49,0xB2,0xB6, // _ .*.. 64 0x405,0x53,0xBD,0x53, // _ .*.* 65 // SMALL Cyrillic letters (base) 66 0x430,0xA0,0xE0,0xC1, // à 67 0x431,0xA1,0xE1,0xC2, // á 68 0x432,0xA2,0xE2,0xD7, // â 69 0x433,0xA3,0xE3,0xC7, // ã 70 0x434,0xA4,0xE4,0xC4, // ä 71 0x435,0xA5,0xE5,0xC5, // å 72 0x436,0xA6,0xE6,0xD6, // æ 73 0x437,0xA7,0xE7,0xDA, // ç 74 0x438,0xA8,0xE8,0xC9, // è 75 0x439,0xA9,0xE9,0xCA, // é 76 0x43A,0xAA,0xEA,0xCB, // ê 77 0x43B,0xAB,0xEB,0xCC, // ë 78 0x43C,0xAC,0xEC,0xCD, // ì 79 0x43D,0xAD,0xED,0xCE, // í 80 0x43E,0xAE,0xEE,0xCF, // î 81 0x43F,0xAF,0xEF,0xD0, // ï 82 0x440,0xE0,0xF0,0xD2, // ð 83 0x441,0xE1,0xF1,0xD3, // ñ 84 0x442,0xE2,0xF2,0xD4, // ò 85 0x443,0xE3,0xF3,0xD5, // ó 86 0x444,0xE4,0xF4,0xC6, // ô 87 0x445,0xE5,0xF5,0xC8, // õ 88 0x446,0xE6,0xF6,0xC3, // ö 89 0x447,0xE7,0xF7,0xDE, // ÷ 90 0x448,0xE8,0xF8,0xDB, // ø 91 0x449,0xE9,0xF9,0xDD, // ù 92 0x44A,0xEA,0xFA,0xDF, // ú 93 0x44B,0xEB,0xFB,0xD9, // û 94 0x44C,0xEC,0xFC,0xD8, // ü 95 0x44D,0xED,0xFD,0xDC, // ý 96 0x44E,0xEE,0xFE,0xC0, // þ 97 0x44F,0xEF,0xFF,0xD1, // ÿ 98 // SMALL Cyrillic letters (additional) 99 0x452,'_',0x90,'_', // _ .*.* 100 0x453,'_',0x83,'_', // _ .*.* 101 0x459,'_',0x9A,'_', // _ .*.* 102 0x45A,'_',0x9C,'_', // _ .*.* 103 0x45C,'_',0x9D,'_', // _ .*.* 104 0x45B,'_',0x9E,'_', // _ .*.* 105 0x45F,'_',0x9F,'_', // _ .*.* 106 0x45E,0xF7,0xA2,'_', // ¢ ...* 107 0x458,0x6A,0xBC,0x6A, // _ .*.* 108 0x491,0xA3,0xB4,0xAD, // _ .*.. 109 0x451,0xF1,0xB8,0xA3, // ¸ 110 0x454,0xF3,0xBA,0xA4, // º 111 0x457,0xF5,0xBF,0xA7, // ¿ 112 0x456,0x69,0xB3,0xA6, // _ .*.. 113 0x455,0x73,0xBE,0x73, // _ .*.* 114 0x0A0,'_',0xA0,0x20, // space .*.. 115 0x0A4,'_',0xA4,0xFD, // ¤ .*.. 116 0x0A6,'_',0xA6,'_', // ¦ .*.* 117 0x0B0,0xF8,0xB0,0x9C, // ° 118 0x0B7,0xFA,0xB7,0x9E, // · 119 // 0x2022,,0x95,0x95, //  .*.. 120 // 0x2116,0xFC,0xB9,0x23, // ¹ ...* 121 // 0x2219,,0xF9,0x9E, //  .*.. 122 // 0x221A,0xFB,,0x96, // v ..*. 123 // 0x25A0,0xFE,,0x94, // ¦ 124 0x0000,0,0,0 125 }; 126 \ In segment DATA_C, align 4, align-sorted 127 const char wintranslation[128]= 128 { 129 0x5F,0x5F,0x27,0x5F,0x22,0x3A,0xC5,0xD8,0x5F,0x25,0x5F,0x3C,0x5F,0x5F,0x5F,0x5F, 130 0x5F,0x27,0x27,0x22,0x22,0x07,0x2D,0x2D,0x5F,0x54,0x5F,0x3E,0x5F,0x5F,0x5F,0x5F, 131 0xFF,0xF6,0xF7,0x5F,0xFD,0x83,0xB3,0x15,0xF0,0x63,0xF2,0x3C,0xBF,0x2D,0x52,0xF4, 132 0xF8,0x2B,'I' ,'i' ,0xA3,0xE7,0x14,0xFA,0xF1,0xFC,0xF3,0x3E,0x5F,0x5F,0x5F,0xF5, 133 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, 134 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, 135 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, 136 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF 137 }; 138 const unsigned short dos2unicode[128]= \ dos2unicode: \ 00000000 100411041204 DC16 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050 \ 130414041504 \ 160417041804 \ 19041A04 \ 00000016 1B041C041D04 DC16 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061 \ 1E041F042004 \ 210422042304 \ 24042504 \ 0000002C 260427042804 DC16 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072 \ 29042A042B04 \ 2C042D042E04 \ 2F043004 \ 00000042 310432043304 DC16 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083 \ 340435043604 \ 370438043904 \ 3A043B04 \ 00000058 3C043D043E04 DC16 1084, 1085, 1086, 1087, 45, 45, 45, 166, 43, 166, 166, 172, 172 \ 3F042D002D00 \ 2D00A6002B00 \ A600A600AC00 \ AC00 \ 00000072 A600A600AC00 DC16 166, 166, 172, 45, 45, 45, 172, 76, 43, 84, 43, 45, 43, 166, 166 \ 2D002D002D00 \ AC004C002B00 \ 54002B002D00 \ 2B00A600A600 \ 00000090 4C003304A600 DC16 76, 1075, 166, 84, 166, 61, 43, 166, 166, 84, 84, 76, 76, 45, 1075 \ 5400A6003D00 \ 2B00A600A600 \ 540054004C00 \ 4C002D003304 \ 000000AE 2B002B002D00 DC16 43, 43, 45, 45, 45, 45, 166, 166, 45, 1088, 1089, 1090, 1091, 1092 \ 2D002D002D00 \ A600A6002D00 \ 400441044204 \ 43044404 \ 000000CA 450446044704 DC16 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103 \ 480449044A04 \ 4B044C044D04 \ 4E044F04 \ 000000E0 010451040404 DC16 1025, 1105, 1028, 1108, 1031, 1111, 1038, 1118, 176, 8226, 183 \ 540407045704 \ 0E045E04B000 \ 2220B700 \ 000000F6 76001621A400 DC16 118, 8470, 164, 166, 160 \ A600A000 \ wintranslation: \ 00000100 5F5F275F223A DC8 95, 95, 39, 95, 34, 58, 197, 216, 95, 37, 95, 60, 95, 95, 95, 95 \ C5D85F255F3C \ 5F5F5F5F \ 00000110 5F2727222207 DC8 95, 39, 39, 34, 34, 7, 45, 45, 95, 84, 95, 62, 95, 95, 95, 95, 255 \ 2D2D5F545F3E \ 5F5F5F5FFF \ 00000121 F6F75FFD83B3 DC8 246, 247, 95, 253, 131, 179, 21, 240, 99, 242, 60, 191, 45, 82, 244 \ 15F063F23CBF \ 2D52F4 \ 00000130 F82B4969A3E7 DC8 248, 43, 73, 105, 163, 231, 20, 250, 241, 252, 243, 62, 95, 95, 95 \ 14FAF1FCF33E \ 5F5F5F \ 0000013F F58081828384 DC8 245, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139 \ 85868788898A \ 8B \ 0000014C 8C8D8E8F9091 DC8 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152 \ 929394959697 \ 98 \ 00000159 999A9B9C9D9E DC8 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165 \ 9FA0A1A2A3A4 \ A5 \ 00000166 A6A7A8A9AAAB DC8 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 224, 225, 226 \ ACADAEAFE0E1 \ E2 \ 00000173 E3E4E5E6E7E8 DC8 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239 \ E9EAEBECEDEE \ EF 139 { 140 0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417, 141 0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F, 142 0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427, 143 0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F, 144 0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437, 145 0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F, 146 0x002D,0x002D,0x002D,0x00A6,0x002B,0x00A6,0x00A6,0x00AC, 147 0x00AC,0x00A6,0x00A6,0x00AC,0x002D,0x002D,0x002D,0x00AC, 148 0x004C,0x002B,0x0054,0x002B,0x002D,0x002B,0x00A6,0x00A6, 149 0x004C,0x0433,0x00A6,0x0054,0x00A6,0x003D,0x002B,0x00A6, 150 0x00A6,0x0054,0x0054,0x004C,0x004C,0x002D,0x0433,0x002B, 151 0x002B,0x002D,0x002D,0x002D,0x002D,0x00A6,0x00A6,0x002D, 152 0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447, 153 0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F, 154 0x0401,0x0451,0x0404,0x0454,0x0407,0x0457,0x040E,0x045E, 155 0x00B0,0x2022,0x00B7,0x0076,0x2116,0x00A4,0x00A6,0x00A0 156 }; 157 const char koi8translation[128]= \ koi8translation: \ 00000180 5F5F275F223A DC8 95, 95, 39, 95, 34, 58, 197, 216, 95, 37, 95, 60, 95, 95, 95, 95 \ C5D85F255F3C \ 5F5F5F5F \ 00000190 5F2727222207 DC8 95, 39, 39, 34, 34, 7, 45, 45, 95, 84, 95, 62, 95, 95, 95, 95, 255 \ 2D2D5F545F3E \ 5F5F5F5FFF \ 000001A1 F6F7F1F35F69 DC8 246, 247, 241, 243, 95, 105, 245, 240, 99, 242, 60, 191, 163, 82 \ F5F063F23CBF \ A352 \ 000001AF F4F82B5FF0F2 DC8 244, 248, 43, 95, 240, 242, 231, 73, 244, 241, 252, 243, 62, 95 \ E749F4F1FCF3 \ 3E5F \ 000001BD 835FF5EEA0A1 DC8 131, 95, 245, 238, 160, 161, 230, 164, 165, 228, 163, 229, 168, 169 \ E6A4A5E4A3E5 \ A8A9 \ 000001CB AAABACADAEAF DC8 170, 171, 172, 173, 174, 175, 239, 224, 225, 226, 227, 166, 162 \ EFE0E1E2E3A6 \ A2 \ 000001D8 ECEBA7E8EDE9 DC8 236, 235, 167, 232, 237, 233, 231, 234, 158, 128, 129, 150, 132 \ E7EA9E808196 \ 84 \ 000001E5 859483958889 DC8 133, 148, 131, 149, 136, 137, 138, 139, 140, 141, 142, 143, 159 \ 8A8B8C8D8E8F \ 9F \ 000001F2 909192938682 DC8 144, 145, 146, 147, 134, 130, 156, 155, 135, 152, 157, 153, 151 \ 9C9B87989D99 \ 97 \ 000001FF 9A DC8 154 158 { 159 0x5F,0x5F,0x27,0x5F,0x22,0x3A,0xC5,0xD8,0x5F,0x25,0x5F,0x3C,0x5F,0x5F,0x5F,0x5F, 160 0x5F,0x27,0x27,0x22,0x22,0x07,0x2D,0x2D,0x5F,0x54,0x5F,0x3E,0x5F,0x5F,0x5F,0x5F, 161 0xFF,0xF6,0xF7,0xF1,0xF3,0x5F,'i' ,0xF5,0xF0,0x63,0xF2,0x3C,0xBF,0xA3,0x52,0xF4, 162 0xF8,0x2B,0x5F,0xF0,0xF2,0xE7,'I' ,0xF4,0xF1,0xFC,0xF3,0x3E,0x5F,0x83,0x5F,0xF5, 163 164 0xEE,0xA0,0xA1,0xE6,0xA4,0xA5,0xE4,0xA3,0xE5,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE, 165 0xAF,0xEF,0xE0,0xE1,0xE2,0xE3,0xA6,0xA2,0xEC,0xEB,0xA7,0xE8,0xED,0xE9,0xE7,0xEA, 166 0x9E,0x80,0x81,0x96,0x84,0x85,0x94,0x83,0x95,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E, 167 0x8F,0x9F,0x90,0x91,0x92,0x93,0x86,0x82,0x9C,0x9B,0x87,0x98,0x9D,0x99,0x97,0x9A 168 }; 169 170 //#pragma inline \ In segment CODE, align 4, keep-with-next 171 unsigned int char16to8(unsigned int c) 172 { 173 const TUNICODE2CHAR *p=unicode2char; \ char16to8: \ 00000000 38109FE5 LDR R1,??char16to8_0 ;; unicode2char 174 unsigned int i; 175 if (c<128) return(c); \ 00000004 800050E3 CMP R0,#+128 \ 00000008 0100002A BCS ??char16to8_1 \ 0000000C 1EFF2FE1 BX LR 176 while((i=p->u)) 177 { 178 if (c==i) 179 { 180 return(p->win); 181 } 182 p++; \ ??char16to8_2: \ 00000010 061081E2 ADD R1,R1,#+6 \ ??char16to8_1: \ 00000014 B020D1E1 LDRH R2,[R1, #+0] \ 00000018 000052E3 CMP R2,#+0 \ 0000001C 0300000A BEQ ??char16to8_3 \ 00000020 020050E1 CMP R0,R2 \ 00000024 F9FFFF1A BNE ??char16to8_2 \ 00000028 0300D1E5 LDRB R0,[R1, #+3] \ 0000002C 1EFF2FE1 BX LR 183 } 184 c&=0xFF; \ ??char16to8_3: \ 00000030 FF0000E2 AND R0,R0,#0xFF 185 if (c<32) return(' '); \ 00000034 200050E3 CMP R0,#+32 \ 00000038 2000A033 MOVCC R0,#+32 186 return(c); \ 0000003C 1EFF2FE1 BX LR ;; return \ ??char16to8_0: \ 00000040 ........ DC32 unicode2char 187 } 188 \ In segment CODE, align 4, keep-with-next 189 unsigned int char8to16(int c, int type) 190 { 191 if (c>=128) \ char8to16: \ 00000000 800050E3 CMP R0,#+128 \ 00000004 1EFF2FB1 BXLT LR 192 { 193 switch(type) \ 00000008 30209FE5 LDR R2,??char8to16_0 ;; dos2unicode \ 0000000C 011051E2 SUBS R1,R1,#+1 \ 00000010 0300000A BEQ ??char8to16_1 \ 00000014 011051E2 SUBS R1,R1,#+1 \ 00000018 02008000 ADDEQ R0,R0,R2 \ 0000001C 0001D005 LDRBEQ R0,[R0, #+256] \ 00000020 010000EA B ??char8to16_2 194 { 195 case 1: 196 //Win->Dos 197 c=wintranslation[c-128]; \ ??char8to16_1: \ 00000024 020080E0 ADD R0,R0,R2 \ 00000028 8000D0E5 LDRB R0,[R0, #+128] 198 break; 199 case 2: 200 //Koi8->Dos 201 c=koi8translation[c-128]; 202 break; 203 } 204 if (c<128) return(c); \ ??char8to16_2: \ 0000002C 800050E3 CMP R0,#+128 205 return(dos2unicode[c-128]); \ 00000030 FF10E0A3 MVNGE R1,#+255 \ 00000034 800082A0 ADDGE R0,R2,R0, LSL #+1 \ 00000038 B00091A1 LDRHGE R0,[R1, +R0] 206 } 207 return(c); \ 0000003C 1EFF2FE1 BX LR ;; return \ ??char8to16_0: \ 00000040 ........ DC32 dos2unicode 208 } 209 210 \ In segment CODE, align 4, keep-with-next 211 void ascii2ws(WSHDR *ws, const char *s) 212 { \ ascii2ws: \ 00000000 30402DE9 PUSH {R4,R5,LR} \ 00000004 0040A0E1 MOV R4,R0 \ 00000008 0150A0E1 MOV R5,R1 213 char c; 214 CutWSTR(ws,0); \ 0000000C 0010A0E3 MOV R1,#+0 \ 00000010 260100EF SWI +294 \ 00000014 080000EA B ??ascii2ws_0 215 while((c=*s++)) 216 { 217 total_symb++; \ ??ascii2ws_1: \ 00000018 ........ LDR R1,??DataTable3 ;; total_symb \ 0000001C 002091E5 LDR R2,[R1, #+0] \ 00000020 012082E2 ADD R2,R2,#+1 \ 00000024 002081E5 STR R2,[R1, #+0] 218 wsAppendChar(ws,char8to16(c,1)); \ 00000028 0110A0E3 MOV R1,#+1 \ 0000002C ........ BL char8to16 \ 00000030 0010A0E1 MOV R1,R0 \ 00000034 0400A0E1 MOV R0,R4 \ 00000038 1C0000EF SWI +28 219 } \ ??ascii2ws_0: \ 0000003C ........ LDRB R1,[R5], #+1 \ 00000040 0100B0E1 MOVS R0,R1 \ 00000044 F3FFFF1A BNE ??ascii2ws_1 220 } \ 00000048 3080BDE8 POP {R4,R5,PC} ;; return 221 \ In segment CODE, align 4, keep-with-next 222 void koi2ws(WSHDR *ws, const char *s) 223 { \ koi2ws: \ 00000000 30402DE9 PUSH {R4,R5,LR} \ 00000004 0040A0E1 MOV R4,R0 \ 00000008 0150A0E1 MOV R5,R1 224 char c; 225 CutWSTR(ws,0); \ 0000000C 0010A0E3 MOV R1,#+0 \ 00000010 260100EF SWI +294 \ 00000014 080000EA B ??koi2ws_0 226 while((c=*s++)) 227 { 228 total_symb++; \ ??koi2ws_1: \ 00000018 ........ LDR R1,??DataTable3 ;; total_symb \ 0000001C 002091E5 LDR R2,[R1, #+0] \ 00000020 012082E2 ADD R2,R2,#+1 \ 00000024 002081E5 STR R2,[R1, #+0] 229 wsAppendChar(ws,char8to16(c,2)); \ 00000028 0210A0E3 MOV R1,#+2 \ 0000002C ........ BL char8to16 \ 00000030 0010A0E1 MOV R1,R0 \ 00000034 0400A0E1 MOV R0,R4 \ 00000038 1C0000EF SWI +28 230 } \ ??koi2ws_0: \ 0000003C ........ LDRB R1,[R5], #+1 \ 00000040 0100B0E1 MOVS R0,R1 \ 00000044 F3FFFF1A BNE ??koi2ws_1 231 } \ 00000048 3080BDE8 POP {R4,R5,PC} ;; return \ In segment CODE, align 4, keep-with-next 232 void win1251_2ws(WSHDR *ws, const char *s) 233 { \ win1251_2ws: \ 00000000 30402DE9 PUSH {R4,R5,LR} \ 00000004 0040A0E1 MOV R4,R0 \ 00000008 0150A0E1 MOV R5,R1 234 char c; 235 CutWSTR(ws,0); \ 0000000C 0010A0E3 MOV R1,#+0 \ 00000010 260100EF SWI +294 \ 00000014 070000EA B ??win1251_2ws_0 236 while((c=*s++)) 237 { 238 total_symb++; \ ??win1251_2ws_1: \ 00000018 ........ LDR R1,??DataTable3 ;; total_symb \ 0000001C 002091E5 LDR R2,[R1, #+0] \ 00000020 012082E2 ADD R2,R2,#+1 \ 00000024 002081E5 STR R2,[R1, #+0] 239 wsAppendChar(ws,char16to8(c)); \ 00000028 ........ BL char16to8 \ 0000002C 0010A0E1 MOV R1,R0 \ 00000030 0400A0E1 MOV R0,R4 \ 00000034 1C0000EF SWI +28 240 } \ ??win1251_2ws_0: \ 00000038 ........ LDRB R1,[R5], #+1 \ 0000003C 0100B0E1 MOVS R0,R1 \ 00000040 F4FFFF1A BNE ??win1251_2ws_1 241 } \ 00000044 3080BDE8 POP {R4,R5,PC} ;; return 242 243 /* ----------------------------- char16to8 CZ------------------------------------ */ 244 245 246 typedef struct 247 { 248 unsigned short u; 249 char dos; 250 } TUNICODE2CHAR_CZ; 251 \ In segment DATA_C, align 4, align-sorted 252 const TUNICODE2CHAR_CZ unicode2char_CZ[]= \ unicode2char_CZ: \ 00000000 A400 DC16 164 \ 00000002 A400 DC8 164, 0 \ 00000004 A600 DC16 166 \ 00000006 A600 DC8 166, 0 \ 00000008 A700 DC16 167 \ 0000000A A700 DC8 167, 0 \ 0000000C A800 DC16 168 \ 0000000E A800 DC8 168, 0 \ 00000010 A900 DC16 169 \ 00000012 A900 DC8 169, 0 \ 00000014 AB00 DC16 171 \ 00000016 AB00 DC8 171, 0 \ 00000018 AC00 DC16 172 \ 0000001A AC00 DC8 172, 0 \ 0000001C AD00 DC16 173 \ 0000001E 9600 DC8 150, 0 \ 00000020 AE00 DC16 174 \ 00000022 AE00 DC8 174, 0 \ 00000024 B000 DC16 176 \ 00000026 B000 DC8 176, 0 \ 00000028 B100 DC16 177 \ 0000002A B100 DC8 177, 0 \ 0000002C B400 DC16 180 \ 0000002E B400 DC8 180, 0 \ 00000030 B500 DC16 181 \ 00000032 B500 DC8 181, 0 \ 00000034 B600 DC16 182 \ 00000036 B600 DC8 182, 0 \ 00000038 B700 DC16 183 \ 0000003A B700 DC8 183, 0 \ 0000003C B800 DC16 184 \ 0000003E B800 DC8 184, 0 \ 00000040 BB00 DC16 187 \ 00000042 BB00 DC8 187, 0 \ 00000044 C100 DC16 193 \ 00000046 C100 DC8 193, 0 \ 00000048 C200 DC16 194 \ 0000004A C200 DC8 194, 0 \ 0000004C C400 DC16 196 \ 0000004E C400 DC8 196, 0 \ 00000050 C700 DC16 199 \ 00000052 C700 DC8 199, 0 \ 00000054 C900 DC16 201 \ 00000056 C900 DC8 201, 0 \ 00000058 CB00 DC16 203 \ 0000005A CB00 DC8 203, 0 \ 0000005C CE00 DC16 206 \ 0000005E CD00 DC8 205, 0 \ 00000060 CF00 DC16 207 \ 00000062 CE00 DC8 206, 0 \ 00000064 D300 DC16 211 \ 00000066 D300 DC8 211, 0 \ 00000068 D400 DC16 212 \ 0000006A D400 DC8 212, 0 \ 0000006C D500 DC16 213 \ 0000006E D500 DC8 213, 0 \ 00000070 D600 DC16 214 \ 00000072 D600 DC8 214, 0 \ 00000074 D700 DC16 215 \ 00000076 D700 DC8 215, 0 \ 00000078 DA00 DC16 218 \ 0000007A DA00 DC8 218, 0 \ 0000007C DC00 DC16 220 \ 0000007E DC00 DC8 220, 0 \ 00000080 DD00 DC16 221 \ 00000082 DD00 DC8 221, 0 \ 00000084 DF00 DC16 223 \ 00000086 DF00 DC8 223, 0 \ 00000088 E100 DC16 225 \ 0000008A E100 DC8 225, 0 \ 0000008C E200 DC16 226 \ 0000008E E200 DC8 226, 0 \ 00000090 E400 DC16 228 \ 00000092 E400 DC8 228, 0 \ 00000094 E700 DC16 231 \ 00000096 E700 DC8 231, 0 \ 00000098 E900 DC16 233 \ 0000009A E900 DC8 233, 0 \ 0000009C EB00 DC16 235 \ 0000009E EB00 DC8 235, 0 \ 000000A0 ED00 DC16 237 \ 000000A2 ED00 DC8 237, 0 \ 000000A4 EE00 DC16 238 \ 000000A6 EE00 DC8 238, 0 \ 000000A8 F300 DC16 243 \ 000000AA F300 DC8 243, 0 \ 000000AC F400 DC16 244 \ 000000AE F400 DC8 244, 0 \ 000000B0 F500 DC16 245 \ 000000B2 F500 DC8 245, 0 \ 000000B4 F600 DC16 246 \ 000000B6 F600 DC8 246, 0 \ 000000B8 F700 DC16 247 \ 000000BA F700 DC8 247, 0 \ 000000BC FA00 DC16 250 \ 000000BE FA00 DC8 250, 0 \ 000000C0 FB00 DC16 251 \ 000000C2 FB00 DC8 251, 0 \ 000000C4 FC00 DC16 252 \ 000000C6 FC00 DC8 252, 0 \ 000000C8 FD00 DC16 253 \ 000000CA FD00 DC8 253, 0 \ 000000CC 0201 DC16 258 \ 000000CE C300 DC8 195, 0 \ 000000D0 0301 DC16 259 \ 000000D2 E300 DC8 227, 0 \ 000000D4 0401 DC16 260 \ 000000D6 A500 DC8 165, 0 \ 000000D8 0501 DC16 261 \ 000000DA B900 DC8 185, 0 \ 000000DC 0601 DC16 262 \ 000000DE C600 DC8 198, 0 \ 000000E0 0701 DC16 263 \ 000000E2 E600 DC8 230, 0 \ 000000E4 0C01 DC16 268 \ 000000E6 C800 DC8 200, 0 \ 000000E8 0D01 DC16 269 \ 000000EA E800 DC8 232, 0 \ 000000EC 0E01 DC16 270 \ 000000EE CF00 DC8 207, 0 \ 000000F0 0F01 DC16 271 \ 000000F2 EF00 DC8 239, 0 \ 000000F4 1001 DC16 272 \ 000000F6 D000 DC8 208, 0 \ 000000F8 1101 DC16 273 \ 000000FA F000 DC8 240, 0 \ 000000FC 1801 DC16 280 \ 000000FE CA00 DC8 202, 0 \ 00000100 1901 DC16 281 \ 00000102 EA00 DC8 234, 0 \ 00000104 1A01 DC16 282 \ 00000106 CC00 DC8 204, 0 \ 00000108 1B01 DC16 283 \ 0000010A EC00 DC8 236, 0 \ 0000010C 3901 DC16 313 \ 0000010E C500 DC8 197, 0 \ 00000110 3A01 DC16 314 \ 00000112 E500 DC8 229, 0 \ 00000114 3D01 DC16 317 \ 00000116 BC00 DC8 188, 0 \ 00000118 3E01 DC16 318 \ 0000011A BE00 DC8 190, 0 \ 0000011C 4101 DC16 321 \ 0000011E A300 DC8 163, 0 \ 00000120 4201 DC16 322 \ 00000122 B300 DC8 179, 0 \ 00000124 4301 DC16 323 \ 00000126 D100 DC8 209, 0 \ 00000128 4401 DC16 324 \ 0000012A F100 DC8 241, 0 \ 0000012C 4701 DC16 327 \ 0000012E D200 DC8 210, 0 \ 00000130 4801 DC16 328 \ 00000132 F200 DC8 242, 0 \ 00000134 5401 DC16 340 \ 00000136 C000 DC8 192, 0 \ 00000138 5501 DC16 341 \ 0000013A E000 DC8 224, 0 \ 0000013C 5801 DC16 344 \ 0000013E D800 DC8 216, 0 \ 00000140 5A01 DC16 346 \ 00000142 8C00 DC8 140, 0 \ 00000144 5B01 DC16 347 \ 00000146 9C00 DC8 156, 0 \ 00000148 5E01 DC16 350 \ 0000014A AA00 DC8 170, 0 \ 0000014C 6001 DC16 352 \ 0000014E 8A00 DC8 138, 0 \ 00000150 6101 DC16 353 \ 00000152 9A00 DC8 154, 0 \ 00000154 6201 DC16 354 \ 00000156 DE00 DC8 222, 0 \ 00000158 6301 DC16 355 \ 0000015A FE00 DC8 254, 0 \ 0000015C 6401 DC16 356 \ 0000015E 8D00 DC8 141, 0 \ 00000160 6501 DC16 357 \ 00000162 9D00 DC8 157, 0 \ 00000164 6801 DC16 360 \ 00000166 DB00 DC8 219, 0 \ 00000168 6901 DC16 361 \ 0000016A FB00 DC8 251, 0 \ 0000016C 6E01 DC16 366 \ 0000016E D900 DC8 217, 0 \ 00000170 6F01 DC16 367 \ 00000172 F900 DC8 249, 0 \ 00000174 7901 DC16 377 \ 00000176 8F00 DC8 143, 0 \ 00000178 7A01 DC16 378 \ 0000017A 9F00 DC8 159, 0 \ 0000017C 7B01 DC16 379 \ 0000017E AF00 DC8 175, 0 \ 00000180 7C01 DC16 380 \ 00000182 BF00 DC8 191, 0 \ 00000184 7D01 DC16 381 \ 00000186 8E00 DC8 142, 0 \ 00000188 7E01 DC16 382 \ 0000018A 9E00 DC8 158, 0 \ 0000018C 0000 DC16 0 \ 0000018E 0000 DC8 0, 0 253 { 254 0x0A4, 0xA4, // 164 ¤ - // CZ/SK part 255 0x0A6, 0xA6, // 166 ¦ - 256 0x0A7, 0xA7, // 167 § - 257 0x0A8, 0xA8, // 168 ¨ - 258 0x0A9, 0xA9, // 169 © - 259 0x0AB, 0xAB, // 171 260 0x0AC, 0xAC, // 172 ¬ - 261 0x0AD, 0x96, // 150 – 262 0x0AE, 0xAE, // 174 ® - 263 0x0B0, 0xB0, // 176 ° 264 0x0B1, 0xB1, // 177 ± - 265 0x0B4, 0xB4, // 180 ´ 266 0x0B5, 0xB5, // 181 µ // 0 32 64 96 128 160 192 224 - tema zacina 267 0x0B6, 0xB6, // 182 ¶ 268 0x0B7, 0xB7, // 183 · 269 0x0B8, 0xB8, // 184 ¸ 270 0x0BB, 0xBB, // 187 » 271 0x0C1, 0xC1, // 193 Á - 272 0x0C2, 0xC2, // 194  273 0x0C4, 0xC4, // 196 Ä 274 0x0C7, 0xC7, // 199 Ç 275 0x0C9, 0xC9, // 201 É - 276 0x0CB, 0xCB, // 203 Ë 277 0x0CE, 0xCD, // 205 Í - 278 0x0CF, 0xCE, // 206 Î 279 0x0D3, 0xD3, // 211 Ó - 280 0x0D4, 0xD4, // 212 Ô 281 0x0D5, 0xD5, // 213 Õ 282 0x0D6, 0xD6, // 214 Ö 283 0x0D7, 0xD7, // 215 × - 284 0x0DA, 0xDA, // 218 Ú - 285 0x0DC, 0xDC, // 220 Ü 286 0x0DD, 0xDD, // 221 Ý - 287 0x0DF, 0xDF, // 223 ß 288 0x0E1, 0xE1, // 225 á - 289 0x0E2, 0xE2, // 226 â 290 0x0E4, 0xE4, // 228 ä 291 0x0E7, 0xE7, // 231 ç 292 0x0E9, 0xE9, // 233 é - 293 0x0EB, 0xEB, // 235 ë 294 0x0ED, 0xED, // 237 í - 295 0x0EE, 0xEE, // 238 î 296 0x0F3, 0xF3, // 243 ó - 297 0x0F4, 0xF4, // 244 ô 298 0x0F5, 0xF5, // 245 õ 299 0x0F6, 0xF6, // 246 ö 300 0x0F7, 0xF7, // 247 ÷ - 301 0x0FA, 0xFA, // 250 ú - 302 0x0FB, 0xFB, // 186 ^u 303 0x0FC, 0xFC, // 252 ü 304 0x0FD, 0xFD, // 253 ý - 305 0x102, 0xC3, // 195 à 306 0x103, 0xE3, // 227 ã 307 0x104, 0xA5, // 165 ¥ 308 0x105, 0xB9, // 185 ¹ 309 0x106, 0xC6, // 198 Æ 310 0x107, 0xE6, // 230 æ 311 0x10C, 0xC8, // 200 È - 312 0x10D, 0xE8, // 232 è - 313 0x10E, 0xCF, // 207 Ï - 314 0x10F, 0xEF, // 239 ï - 315 0x110, 0xD0, // 208 Ð 316 0x111, 0xF0, // 240 ð 317 0x118, 0xCA, // 202 Ê 318 0x119, 0xEA, // 234 ê // 319 0x11A, 0xCC, // 204 Ì - 320 0x11B, 0xEC, // 236 ì - 321 0x139, 0xC5, // 197 Å 322 0x13A, 0xE5, // 229 å 323 0x13D, 0xBC, // 188 ¾ 324 0x13E, 0xBE, // 190 ¾ 325 0x141, 0xA3, // 163 £ 326 0x142, 0xB3, // 179 ³ 327 0x143, 0xD1, // 209 Ñ 328 0x144, 0xF1, // 241 ñ 329 0x147, 0xD2, // 210 Ò - 330 0x148, 0xF2, // 242 ò - 331 0x154, 0xC0, // 192 À 332 0x155, 0xE0, // 224 à 333 0x158, 0xD8, // 216 Ø - 334 0x15A, 0x8C, // 140 Œ 335 0x15B, 0x9C, // 156 œ 336 0x15E, 0xAA, // 170 ª 337 0x160, 0x8A, // 138 Š - 338 0x161, 0x9A, // 154 š - 339 0x162, 0xDE, // 222 Þ 340 0x163, 0xFE, // 254 þ 341 0x164, 0x8D, // 141 - 342 0x165, 0x9D, // 157 - 343 0x168, 0xDB, // 219 Û 344 0x169, 0xFB, // 251 û 345 0x16E, 0xD9, // 217 Ù - 346 0x16F, 0xF9, // 249 ù - 347 0x179, 0x8F, // 143 348 0x17A, 0x9F, // 159 Ÿ 349 0x17B, 0xAF, // 175 ¯ 350 0x17C, 0xBF, // 191 ¿ 351 0x17D, 0x8E, // 142 Ž - 352 0x17E, 0x9E, // 158 ž - 353 0x000,0 354 355 }; 356 #pragma inline 357 unsigned int char16to8_CZ(unsigned int c) 358 { 359 const TUNICODE2CHAR_CZ *p=unicode2char_CZ; 360 unsigned int i; 361 if (c<12) return(c); 362 while((i=p->u)) 363 { 364 if (c==i) 365 { 366 return(p->dos); 367 } 368 p++; 369 } 370 // c&=0xFF; 371 if (c<32) return(' '); 372 return(c); 373 } \ In segment CODE, align 4, keep-with-next 374 void win1250_2ws(WSHDR *ws, const char *s) 375 { \ win1250_2ws: \ 00000000 30402DE9 PUSH {R4,R5,LR} \ 00000004 0040A0E1 MOV R4,R0 \ 00000008 0150A0E1 MOV R5,R1 376 char c; 377 CutWSTR(ws,0); \ 0000000C 0010A0E3 MOV R1,#+0 \ 00000010 260100EF SWI +294 \ 00000014 010000EA B ??win1250_2ws_0 378 while((c=*s++)) 379 { 380 total_symb++; 381 wsAppendChar(ws,char16to8_CZ(c)); \ ??win1250_2ws_1: \ 00000018 0400A0E1 MOV R0,R4 \ 0000001C 1C0000EF SWI +28 \ ??win1250_2ws_0: \ 00000020 ........ LDRB R0,[R5], #+1 \ 00000024 0010B0E1 MOVS R1,R0 \ 00000028 3080BD08 POPEQ {R4,R5,PC} \ 0000002C ........ LDR R0,??DataTable3 ;; total_symb \ 00000030 0C0051E3 CMP R1,#+12 \ 00000034 002090E5 LDR R2,[R0, #+0] \ 00000038 012082E2 ADD R2,R2,#+1 \ 0000003C 002080E5 STR R2,[R0, #+0] \ 00000040 34009FE5 LDR R0,??win1250_2ws_2 ;; unicode2char_CZ \ 00000044 0100002A BCS ??win1250_2ws_3 \ 00000048 F2FFFFEA B ??win1250_2ws_1 \ ??win1250_2ws_4: \ 0000004C 040080E2 ADD R0,R0,#+4 \ ??win1250_2ws_3: \ 00000050 B020D0E1 LDRH R2,[R0, #+0] \ 00000054 000052E3 CMP R2,#+0 \ 00000058 0300000A BEQ ??win1250_2ws_5 \ 0000005C 020051E1 CMP R1,R2 \ 00000060 F9FFFF1A BNE ??win1250_2ws_4 \ 00000064 0210D0E5 LDRB R1,[R0, #+2] \ 00000068 EAFFFFEA B ??win1250_2ws_1 \ ??win1250_2ws_5: \ 0000006C 200051E3 CMP R1,#+32 \ 00000070 E8FFFF2A BCS ??win1250_2ws_1 \ 00000074 2010A0E3 MOV R1,#+32 \ 00000078 E6FFFFEA B ??win1250_2ws_1 \ ??win1250_2ws_2: \ 0000007C ........ DC32 unicode2char_CZ 382 } 383 } \ In segment CODE, align 4, keep-with-next \ ??DataTable3: \ 00000000 ........ DC32 total_symb Maximum stack usage in bytes: Function CSTACK -------- ------ ascii2ws 12 char16to8 0 char8to16 0 koi2ws 12 win1250_2ws 12 win1251_2ws 12 Segment part sizes: Function/Label Bytes -------------- ----- unicode2char 600 dos2unicode 512 char16to8 68 char8to16 68 ascii2ws 76 koi2ws 76 win1251_2ws 72 unicode2char_CZ 400 win1250_2ws 128 ??DataTable3 4 Others 24 516 bytes in segment CODE 1 512 bytes in segment DATA_C 492 bytes of CODE memory (+ 24 bytes shared) 1 512 bytes of CONST memory Errors: none Warnings: none