I use MECAFF IND$FILE on VMCE all the time.
IBM never release the source to their version of IND$FILE, that I? know of .
Rather than give detailed translate table info, can you tell me what problem you are solving? Are some bytes mistranslated? Which 3270 emulator are you using??
Thanks/ Bob Bolch
toggle quoted message
Show quoted text
I have to be frank: is IND$FILE really being used for ASCII/EBCDIC transfer ? Please tell me if you are using IND$FILE sucessfully or if you have tried and given up because of the encoding trouble. If there are lots of people waiting for IND$FILE to become useful, I have some good news. I will ruggedize and beautify my small utility and publish it here. Second, I have verified how to implant a modern set of a2e/e2a tables into IND$DENC C F1 (MECAFF MCF394? 394? F/A? R/O). I have written a REXX macro for KEDIT to convert the HTML source of to C source code ready as drop-in replacement into IND$DENC C.
Does anyone know if IBM's IND$FILE works like the MECAFF IND$FILE ?
Output of processing the HTML SOURCE of :
/* internal mapping ASCII -> EBCDIC */ static unsigned char a2e_base[256] = { ??? 0x00, /* 00 (U+0000)?? <control-0000> */ ??? 0x01, /* 01 (U+0001)?? <control-0001> */ ??? 0x02, /* 02 (U+0002)?? <control-0002> */ ??? 0x03, /* 03 (U+0003)?? <control-0003> */ ??? 0x37, /* 37 (U+0004)?? <control-0004> */ ??? 0x2D, /* 2D (U+0005)?? <control-0005> */ ??? 0x2E, /* 2E (U+0006)?? <control-0006> */ ??? 0x2F, /* 2F (U+0007)?? <control-0007> */ ??? 0x16, /* 16 (U+0008)?? <control-0008> */ ??? 0x05, /* 05 (U+0009)?? <control-0009> */ ??? 0x25, /* 25 (U+000A)?? <control-000A> */ ??? 0x0B, /* 0B (U+000B)?? <control-000B> */ ??? 0x0C, /* 0C (U+000C)?? <control-000C> */ ??? 0x0D, /* 0D (U+000D)?? <control-000D> */ ??? 0x0E, /* 0E (U+000E)?? <control-000E> */ ??? 0x0F, /* 0F (U+000F)?? <control-000F> */ ??? 0x10, /* 10 (U+0010)?? <control-0010> */ ??? 0x11, /* 11 (U+0011)?? <control-0011> */ ??? 0x12, /* 12 (U+0012)?? <control-0012> */ ??? 0x13, /* 13 (U+0013)?? <control-0013> */ ??? 0x3C, /* 3C (U+0014)?? <control-0014> */ ??? 0x3D, /* 3D (U+0015)?? <control-0015> */ ??? 0x32, /* 32 (U+0016)?? <control-0016> */ ??? 0x26, /* 26 (U+0017)?? <control-0017> */ ??? 0x18, /* 18 (U+0018)?? <control-0018> */ ??? 0x19, /* 19 (U+0019)?? <control-0019> */ ??? 0x3F, /* 3F (U+001A)?? <control-001A> */ ??? 0x27, /* 27 (U+001B)?? <control-001B> */ ??? 0x1C, /* 1C (U+001C)?? <control-001C> */ ??? 0x1D, /* 1D (U+001D)?? <control-001D> */ ??? 0x1E, /* 1E (U+001E)?? <control-001E> */ ??? 0x1F, /* 1F (U+001F)?? <control-001F> */ ??? 0x40, /* 40 (U+0020)?? SPACE */ ??? 0x5A, /* 5A (U+0021) ! EXCLAMATION MARK */ ??? 0x7F, /* 7F (U+0022) " QUOTATION MARK */ ??? 0x7B, /* 7B (U+0023) # NUMBER SIGN */ ??? 0x5B, /* 5B (U+0024) $ DOLLAR SIGN */ ??? 0x6C, /* 6C (U+0025) % PERCENT SIGN */ ??? 0x50, /* 50 (U+0026) & AMPERSAND */ ??? 0x7D, /* 7D (U+0027) ' APOSTROPHE */ ??? 0x4D, /* 4D (U+0028) ( LEFT PARENTHESIS */ ??? 0x5D, /* 5D (U+0029) ) RIGHT PARENTHESIS */ ??? 0x5C, /* 5C (U+002A) * ASTERISK */ ??? 0x4E, /* 4E (U+002B) + PLUS SIGN */ ??? 0x6B, /* 6B (U+002C) , COMMA */ ??? 0x60, /* 60 (U+002D) - HYPHEN-MINUS */ ??? 0x4B, /* 4B (U+002E) . FULL STOP */ ??? 0x61, /* 61 (U+002F) / SOLIDUS */ ??? 0xF0, /* F0 (U+0030) 0 DIGIT ZERO */ ??? 0xF1, /* F1 (U+0031) 1 DIGIT ONE */ ??? 0xF2, /* F2 (U+0032) 2 DIGIT TWO */ ??? 0xF3, /* F3 (U+0033) 3 DIGIT THREE */ ??? 0xF4, /* F4 (U+0034) 4 DIGIT FOUR */ ??? 0xF5, /* F5 (U+0035) 5 DIGIT FIVE */ ??? 0xF6, /* F6 (U+0036) 6 DIGIT SIX */ ??? 0xF7, /* F7 (U+0037) 7 DIGIT SEVEN */ ??? 0xF8, /* F8 (U+0038) 8 DIGIT EIGHT */ ??? 0xF9, /* F9 (U+0039) 9 DIGIT NINE */ ??? 0x7A, /* 7A (U+003A) : COLON */ ??? 0x5E, /* 5E (U+003B) ; SEMICOLON */ ??? 0x4C, /* 4C (U+003C) < LESS-THAN SIGN */ ??? 0x7E, /* 7E (U+003D) = EQUALS SIGN */ ??? 0x6E, /* 6E (U+003E) > GREATER-THAN SIGN */ ??? 0x6F, /* 6F (U+003F) ? QUESTION MARK */ ??? 0x7C, /* 7C (U+0040) @ COMMERCIAL AT */ ??? 0xC1, /* C1 (U+0041) A LATIN CAPITAL LETTER A */ ??? 0xC2, /* C2 (U+0042) B LATIN CAPITAL LETTER B */ ??? 0xC3, /* C3 (U+0043) C LATIN CAPITAL LETTER C */ ??? 0xC4, /* C4 (U+0044) D LATIN CAPITAL LETTER D */ ??? 0xC5, /* C5 (U+0045) E LATIN CAPITAL LETTER E */ ??? 0xC6, /* C6 (U+0046) F LATIN CAPITAL LETTER F */ ??? 0xC7, /* C7 (U+0047) G LATIN CAPITAL LETTER G */ ??? 0xC8, /* C8 (U+0048) H LATIN CAPITAL LETTER H */ ??? 0xC9, /* C9 (U+0049) I LATIN CAPITAL LETTER I */ ??? 0xD1, /* D1 (U+004A) J LATIN CAPITAL LETTER J */ ??? 0xD2, /* D2 (U+004B) K LATIN CAPITAL LETTER K */ ??? 0xD3, /* D3 (U+004C) L LATIN CAPITAL LETTER L */ ??? 0xD4, /* D4 (U+004D) M LATIN CAPITAL LETTER M */ ??? 0xD5, /* D5 (U+004E) N LATIN CAPITAL LETTER N */ ??? 0xD6, /* D6 (U+004F) O LATIN CAPITAL LETTER O */ ??? 0xD7, /* D7 (U+0050) P LATIN CAPITAL LETTER P */ ??? 0xD8, /* D8 (U+0051) Q LATIN CAPITAL LETTER Q */ ??? 0xD9, /* D9 (U+0052) R LATIN CAPITAL LETTER R */ ??? 0xE2, /* E2 (U+0053) S LATIN CAPITAL LETTER S */ ??? 0xE3, /* E3 (U+0054) T LATIN CAPITAL LETTER T */ ??? 0xE4, /* E4 (U+0055) U LATIN CAPITAL LETTER U */ ??? 0xE5, /* E5 (U+0056) V LATIN CAPITAL LETTER V */ ??? 0xE6, /* E6 (U+0057) W LATIN CAPITAL LETTER W */ ??? 0xE7, /* E7 (U+0058) X LATIN CAPITAL LETTER X */ ??? 0xE8, /* E8 (U+0059) Y LATIN CAPITAL LETTER Y */ ??? 0xE9, /* E9 (U+005A) Z LATIN CAPITAL LETTER Z */ ??? 0xAD, /* AD (U+005B) [ LEFT SQUARE BRACKET */ ??? 0xE0, /* E0 (U+005C) \ REVERSE SOLIDUS */ ??? 0xBD, /* BD (U+005D) ] RIGHT SQUARE BRACKET */ ??? 0x5F, /* 5F (U+005E) ^ CIRCUMFLEX ACCENT */ ??? 0x6D, /* 6D (U+005F) _ LOW LINE */ ??? 0x79, /* 79 (U+0060) ` GRAVE ACCENT */ ??? 0x81, /* 81 (U+0061) a LATIN SMALL LETTER A */ ??? 0x82, /* 82 (U+0062) b LATIN SMALL LETTER B */ ??? 0x83, /* 83 (U+0063) c LATIN SMALL LETTER C */ ??? 0x84, /* 84 (U+0064) d LATIN SMALL LETTER D */ ??? 0x85, /* 85 (U+0065) e LATIN SMALL LETTER E */ ??? 0x86, /* 86 (U+0066) f LATIN SMALL LETTER F */ ??? 0x87, /* 87 (U+0067) g LATIN SMALL LETTER G */ ??? 0x88, /* 88 (U+0068) h LATIN SMALL LETTER H */ ??? 0x89, /* 89 (U+0069) i LATIN SMALL LETTER I */ ??? 0x91, /* 91 (U+006A) j LATIN SMALL LETTER J */ ??? 0x92, /* 92 (U+006B) k LATIN SMALL LETTER K */ ??? 0x93, /* 93 (U+006C) l LATIN SMALL LETTER L */ ??? 0x94, /* 94 (U+006D) m LATIN SMALL LETTER M */ ??? 0x95, /* 95 (U+006E) n LATIN SMALL LETTER N */ ??? 0x96, /* 96 (U+006F) o LATIN SMALL LETTER O */ ??? 0x97, /* 97 (U+0070) p LATIN SMALL LETTER P */ ??? 0x98, /* 98 (U+0071) q LATIN SMALL LETTER Q */ ??? 0x99, /* 99 (U+0072) r LATIN SMALL LETTER R */ ??? 0xA2, /* A2 (U+0073) s LATIN SMALL LETTER S */ ??? 0xA3, /* A3 (U+0074) t LATIN SMALL LETTER T */ ??? 0xA4, /* A4 (U+0075) u LATIN SMALL LETTER U */ ??? 0xA5, /* A5 (U+0076) v LATIN SMALL LETTER V */ ??? 0xA6, /* A6 (U+0077) w LATIN SMALL LETTER W */ ??? 0xA7, /* A7 (U+0078) x LATIN SMALL LETTER X */ ??? 0xA8, /* A8 (U+0079) y LATIN SMALL LETTER Y */ ??? 0xA9, /* A9 (U+007A) z LATIN SMALL LETTER Z */ ??? 0xC0, /* C0 (U+007B) { LEFT CURLY BRACKET */ ??? 0x4F, /* 4F (U+007C) | VERTICAL LINE */ ??? 0xD0, /* D0 (U+007D) } RIGHT CURLY BRACKET */ ??? 0xA1, /* A1 (U+007E) ~ TILDE */ ??? 0x07, /* 07 (U+007F)?? <control-007F> */ ??? 0x20, /* 20 (U+0080)?? <control-0080> */ ??? 0x21, /* 21 (U+0081)?? <control-0081> */ ??? 0x22, /* 22 (U+0082)?? <control-0082> */ ??? 0x23, /* 23 (U+0083)?? <control-0083> */ ??? 0x24, /* 24 (U+0084)?? <control-0084> */ ??? 0x15, /* 15 (U+0085)?? <control-0085> */ ??? 0x06, /* 06 (U+0086)?? <control-0086> */ ??? 0x17, /* 17 (U+0087)?? <control-0087> */ ??? 0x28, /* 28 (U+0088)?? <control-0088> */ ??? 0x29, /* 29 (U+0089)?? <control-0089> */ ??? 0x2A, /* 2A (U+008A)?? <control-008A> */ ??? 0x2B, /* 2B (U+008B)?? <control-008B> */ ??? 0x2C, /* 2C (U+008C)?? <control-008C> */ ??? 0x09, /* 09 (U+008D)?? <control-008D> */ ??? 0x0A, /* 0A (U+008E)?? <control-008E> */ ??? 0x1B, /* 1B (U+008F)?? <control-008F> */ ??? 0x30, /* 30 (U+0090)?? <control-0090> */ ??? 0x31, /* 31 (U+0091)?? <control-0091> */ ??? 0x1A, /* 1A (U+0092)?? <control-0092> */ ??? 0x33, /* 33 (U+0093)?? <control-0093> */ ??? 0x34, /* 34 (U+0094)?? <control-0094> */ ??? 0x35, /* 35 (U+0095)?? <control-0095> */ ??? 0x36, /* 36 (U+0096)?? <control-0096> */ ??? 0x08, /* 08 (U+0097)?? <control-0097> */ ??? 0x38, /* 38 (U+0098)?? <control-0098> */ ??? 0x39, /* 39 (U+0099)?? <control-0099> */ ??? 0x3A, /* 3A (U+009A)?? <control-009A> */ ??? 0x3B, /* 3B (U+009B)?? <control-009B> */ ??? 0x04, /* 04 (U+009C)?? <control-009C> */ ??? 0x14, /* 14 (U+009D)?? <control-009D> */ ??? 0x3E, /* 3E (U+009E)?? <control-009E> */ ??? 0xFF, /* FF (U+009F)?? <control-009F> */ ??? 0x41, /* 41 (U+00A0) ? NO-BREAK SPACE */ ??? 0xAA, /* AA (U+00A1) ? INVERTED EXCLAMATION MARK */ ??? 0x4A, /* 4A (U+00A2) ? CENT SIGN */ ??? 0xB1, /* B1 (U+00A3) ? POUND SIGN */ ??? 0x9F, /* 9F (U+00A4) ¡è CURRENCY SIGN */ ??? 0xB2, /* B2 (U+00A5) ? YEN SIGN */ ??? 0x6A, /* 6A (U+00A6) ? BROKEN BAR */ ??? 0xB5, /* B5 (U+00A7) ¡ì SECTION SIGN */ ??? 0xBB, /* BB (U+00A8) ¡§ DIAERESIS */ ??? 0xB4, /* B4 (U+00A9) ? COPYRIGHT SIGN */ ??? 0x9A, /* 9A (U+00AA) ? FEMININE ORDINAL INDICATOR */ ??? 0x8A, /* 8A (U+00AB) ? LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ ??? 0xB0, /* B0 (U+00AC) ? NOT SIGN */ ??? 0xCA, /* CA (U+00AD) ? SOFT HYPHEN */ ??? 0xAF, /* AF (U+00AE) ? REGISTERED SIGN */ ??? 0xBC, /* BC (U+00AF) ? MACRON */ ??? 0x90, /* 90 (U+00B0) ¡ã DEGREE SIGN */ ??? 0x8F, /* 8F (U+00B1) ¡À PLUS-MINUS SIGN */ ??? 0xEA, /* EA (U+00B2) ? SUPERSCRIPT TWO */ ??? 0xFA, /* FA (U+00B3) ? SUPERSCRIPT THREE */ ??? 0xBE, /* BE (U+00B4) ? ACUTE ACCENT */ ??? 0xA0, /* A0 (U+00B5) ? MICRO SIGN */ ??? 0xB6, /* B6 (U+00B6) ? PILCROW SIGN */ ??? 0xB3, /* B3 (U+00B7) ¡¤ MIDDLE DOT */ ??? 0x9D, /* 9D (U+00B8) ? CEDILLA */ ??? 0xDA, /* DA (U+00B9) ? SUPERSCRIPT ONE */ ??? 0x9B, /* 9B (U+00BA) ? MASCULINE ORDINAL INDICATOR */ ??? 0x8B, /* 8B (U+00BB) ? RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ ??? 0xB7, /* B7 (U+00BC) ? VULGAR FRACTION ONE QUARTER */ ??? 0xB8, /* B8 (U+00BD) ? VULGAR FRACTION ONE HALF */ ??? 0xB9, /* B9 (U+00BE) ? VULGAR FRACTION THREE QUARTERS */ ??? 0xAB, /* AB (U+00BF) ? INVERTED QUESTION MARK */ ??? 0x64, /* 64 (U+00C0) ? LATIN CAPITAL LETTER A WITH GRAVE */ ??? 0x65, /* 65 (U+00C1) ? LATIN CAPITAL LETTER A WITH ACUTE */ ??? 0x62, /* 62 (U+00C2) ? LATIN CAPITAL LETTER A WITH CIRCUMFLEX */ ??? 0x66, /* 66 (U+00C3) ? LATIN CAPITAL LETTER A WITH TILDE */ ??? 0x63, /* 63 (U+00C4) ? LATIN CAPITAL LETTER A WITH DIAERESIS */ ??? 0x67, /* 67 (U+00C5) ? LATIN CAPITAL LETTER A WITH RING ABOVE */ ??? 0x9E, /* 9E (U+00C6) ? LATIN CAPITAL LETTER AE */ ??? 0x68, /* 68 (U+00C7) ? LATIN CAPITAL LETTER C WITH CEDILLA */ ??? 0x74, /* 74 (U+00C8) ? LATIN CAPITAL LETTER E WITH GRAVE */ ??? 0x71, /* 71 (U+00C9) ? LATIN CAPITAL LETTER E WITH ACUTE */ ??? 0x72, /* 72 (U+00CA) ? LATIN CAPITAL LETTER E WITH CIRCUMFLEX */ ??? 0x73, /* 73 (U+00CB) ? LATIN CAPITAL LETTER E WITH DIAERESIS */ ??? 0x78, /* 78 (U+00CC) ? LATIN CAPITAL LETTER I WITH GRAVE */ ??? 0x75, /* 75 (U+00CD) ? LATIN CAPITAL LETTER I WITH ACUTE */ ??? 0x76, /* 76 (U+00CE) ? LATIN CAPITAL LETTER I WITH CIRCUMFLEX */ ??? 0x77, /* 77 (U+00CF) ? LATIN CAPITAL LETTER I WITH DIAERESIS */ ??? 0xAC, /* AC (U+00D0) ? LATIN CAPITAL LETTER ETH */ ??? 0x69, /* 69 (U+00D1) ? LATIN CAPITAL LETTER N WITH TILDE */ ??? 0xED, /* ED (U+00D2) ? LATIN CAPITAL LETTER O WITH GRAVE */ ??? 0xEE, /* EE (U+00D3) ? LATIN CAPITAL LETTER O WITH ACUTE */ ??? 0xEB, /* EB (U+00D4) ? LATIN CAPITAL LETTER O WITH CIRCUMFLEX */ ??? 0xEF, /* EF (U+00D5) ? LATIN CAPITAL LETTER O WITH TILDE */ ??? 0xEC, /* EC (U+00D6) ? LATIN CAPITAL LETTER O WITH DIAERESIS */ ??? 0xBF, /* BF (U+00D7) ¡Á MULTIPLICATION SIGN */ ??? 0x80, /* 80 (U+00D8) ? LATIN CAPITAL LETTER O WITH STROKE */ ??? 0xFD, /* FD (U+00D9) ? LATIN CAPITAL LETTER U WITH GRAVE */ ??? 0xFE, /* FE (U+00DA) ? LATIN CAPITAL LETTER U WITH ACUTE */ ??? 0xFB, /* FB (U+00DB) ? LATIN CAPITAL LETTER U WITH CIRCUMFLEX */ ??? 0xFC, /* FC (U+00DC) ? LATIN CAPITAL LETTER U WITH DIAERESIS */ ??? 0xBA, /* BA (U+00DD) ? LATIN CAPITAL LETTER Y WITH ACUTE */ ??? 0xAE, /* AE (U+00DE) ? LATIN CAPITAL LETTER THORN */ ??? 0x59, /* 59 (U+00DF) ? LATIN SMALL LETTER SHARP S */ ??? 0x44, /* 44 (U+00E0) ¨¤ LATIN SMALL LETTER A WITH GRAVE */ ??? 0x45, /* 45 (U+00E1) ¨¢ LATIN SMALL LETTER A WITH ACUTE */ ??? 0x42, /* 42 (U+00E2) ? LATIN SMALL LETTER A WITH CIRCUMFLEX */ ??? 0x46, /* 46 (U+00E3) ? LATIN SMALL LETTER A WITH TILDE */ ??? 0x43, /* 43 (U+00E4) ? LATIN SMALL LETTER A WITH DIAERESIS */ ??? 0x47, /* 47 (U+00E5) ? LATIN SMALL LETTER A WITH RING ABOVE */ ??? 0x9C, /* 9C (U+00E6) ? LATIN SMALL LETTER AE */ ??? 0x48, /* 48 (U+00E7) ? LATIN SMALL LETTER C WITH CEDILLA */ ??? 0x54, /* 54 (U+00E8) ¨¨ LATIN SMALL LETTER E WITH GRAVE */ ??? 0x51, /* 51 (U+00E9) ¨¦ LATIN SMALL LETTER E WITH ACUTE */ ??? 0x52, /* 52 (U+00EA) ¨º LATIN SMALL LETTER E WITH CIRCUMFLEX */ ??? 0x53, /* 53 (U+00EB) ? LATIN SMALL LETTER E WITH DIAERESIS */ ??? 0x58, /* 58 (U+00EC) ¨¬ LATIN SMALL LETTER I WITH GRAVE */ ??? 0x55, /* 55 (U+00ED) ¨ª LATIN SMALL LETTER I WITH ACUTE */ ??? 0x56, /* 56 (U+00EE) ? LATIN SMALL LETTER I WITH CIRCUMFLEX */ ??? 0x57, /* 57 (U+00EF) ? LATIN SMALL LETTER I WITH DIAERESIS */ ??? 0x8C, /* 8C (U+00F0) ? LATIN SMALL LETTER ETH */ ??? 0x49, /* 49 (U+00F1) ? LATIN SMALL LETTER N WITH TILDE */ ??? 0xCD, /* CD (U+00F2) ¨° LATIN SMALL LETTER O WITH GRAVE */ ??? 0xCE, /* CE (U+00F3) ¨® LATIN SMALL LETTER O WITH ACUTE */ ??? 0xCB, /* CB (U+00F4) ? LATIN SMALL LETTER O WITH CIRCUMFLEX */ ??? 0xCF, /* CF (U+00F5) ? LATIN SMALL LETTER O WITH TILDE */ ??? 0xCC, /* CC (U+00F6) ? LATIN SMALL LETTER O WITH DIAERESIS */ ??? 0xE1, /* E1 (U+00F7) ¡Â DIVISION SIGN */ ??? 0x70, /* 70 (U+00F8) ? LATIN SMALL LETTER O WITH STROKE */ ??? 0xDD, /* DD (U+00F9) ¨´ LATIN SMALL LETTER U WITH GRAVE */ ??? 0xDE, /* DE (U+00FA) ¨² LATIN SMALL LETTER U WITH ACUTE */ ??? 0xDB, /* DB (U+00FB) ? LATIN SMALL LETTER U WITH CIRCUMFLEX */ ??? 0xDC, /* DC (U+00FC) ¨¹ LATIN SMALL LETTER U WITH DIAERESIS */ ??? 0x8D, /* 8D (U+00FD) ? LATIN SMALL LETTER Y WITH ACUTE */ ??? 0x8E, /* 8E (U+00FE) ? LATIN SMALL LETTER THORN */ ??? 0xDF? /* DF (U+00FF) ? LATIN SMALL LETTER Y WITH DIAERESIS */ }; /* internal mapping EBCDIC -> ASCII */ static unsigned char e2a_base[256] = { ??? 0x00, /* 00 (U+0000)?? <control-0000> */ ??? 0x01, /* 01 (U+0001)?? <control-0001> */ ??? 0x02, /* 02 (U+0002)?? <control-0002> */ ??? 0x03, /* 03 (U+0003)?? <control-0003> */ ??? 0x9C, /* 04 (U+009C)?? <control-009C> */ ??? 0x09, /* 05 (U+0009)?? <control-0009> */ ??? 0x86, /* 06 (U+0086)?? <control-0086> */ ??? 0x7F, /* 07 (U+007F)?? <control-007F> */ ??? 0x97, /* 08 (U+0097)?? <control-0097> */ ??? 0x8D, /* 09 (U+008D)?? <control-008D> */ ??? 0x8E, /* 0A (U+008E)?? <control-008E> */ ??? 0x0B, /* 0B (U+000B)?? <control-000B> */ ??? 0x0C, /* 0C (U+000C)?? <control-000C> */ ??? 0x0D, /* 0D (U+000D)?? <control-000D> */ ??? 0x0E, /* 0E (U+000E)?? <control-000E> */ ??? 0x0F, /* 0F (U+000F)?? <control-000F> */ ??? 0x10, /* 10 (U+0010)?? <control-0010> */ ??? 0x11, /* 11 (U+0011)?? <control-0011> */ ??? 0x12, /* 12 (U+0012)?? <control-0012> */ ??? 0x13, /* 13 (U+0013)?? <control-0013> */ ??? 0x9D, /* 14 (U+009D)?? <control-009D> */ ??? 0x85, /* 15 (U+0085)?? <control-0085> */ ??? 0x08, /* 16 (U+0008)?? <control-0008> */ ??? 0x87, /* 17 (U+0087)?? <control-0087> */ ??? 0x18, /* 18 (U+0018)?? <control-0018> */ ??? 0x19, /* 19 (U+0019)?? <control-0019> */ ??? 0x92, /* 1A (U+0092)?? <control-0092> */ ??? 0x8F, /* 1B (U+008F)?? <control-008F> */ ??? 0x1C, /* 1C (U+001C)?? <control-001C> */ ??? 0x1D, /* 1D (U+001D)?? <control-001D> */ ??? 0x1E, /* 1E (U+001E)?? <control-001E> */ ??? 0x1F, /* 1F (U+001F)?? <control-001F> */ ??? 0x80, /* 20 (U+0080)?? <control-0080> */ ??? 0x81, /* 21 (U+0081)?? <control-0081> */ ??? 0x82, /* 22 (U+0082)?? <control-0082> */ ??? 0x83, /* 23 (U+0083)?? <control-0083> */ ??? 0x84, /* 24 (U+0084)?? <control-0084> */ ??? 0x0A, /* 25 (U+000A)?? <control-000A> */ ??? 0x17, /* 26 (U+0017)?? <control-0017> */ ??? 0x1B, /* 27 (U+001B)?? <control-001B> */ ??? 0x88, /* 28 (U+0088)?? <control-0088> */ ??? 0x89, /* 29 (U+0089)?? <control-0089> */ ??? 0x8A, /* 2A (U+008A)?? <control-008A> */ ??? 0x8B, /* 2B (U+008B)?? <control-008B> */ ??? 0x8C, /* 2C (U+008C)?? <control-008C> */ ??? 0x05, /* 2D (U+0005)?? <control-0005> */ ??? 0x06, /* 2E (U+0006)?? <control-0006> */ ??? 0x07, /* 2F (U+0007)?? <control-0007> */ ??? 0x90, /* 30 (U+0090)?? <control-0090> */ ??? 0x91, /* 31 (U+0091)?? <control-0091> */ ??? 0x16, /* 32 (U+0016)?? <control-0016> */ ??? 0x93, /* 33 (U+0093)?? <control-0093> */ ??? 0x94, /* 34 (U+0094)?? <control-0094> */ ??? 0x95, /* 35 (U+0095)?? <control-0095> */ ??? 0x96, /* 36 (U+0096)?? <control-0096> */ ??? 0x04, /* 37 (U+0004)?? <control-0004> */ ??? 0x98, /* 38 (U+0098)?? <control-0098> */ ??? 0x99, /* 39 (U+0099)?? <control-0099> */ ??? 0x9A, /* 3A (U+009A)?? <control-009A> */ ??? 0x9B, /* 3B (U+009B)?? <control-009B> */ ??? 0x14, /* 3C (U+0014)?? <control-0014> */ ??? 0x15, /* 3D (U+0015)?? <control-0015> */ ??? 0x9E, /* 3E (U+009E)?? <control-009E> */ ??? 0x1A, /* 3F (U+001A)?? <control-001A> */ ??? 0x20, /* 40 (U+0020)?? SPACE */ ??? 0xA0, /* 41 (U+00A0) ? NO-BREAK SPACE */ ??? 0xE2, /* 42 (U+00E2) ? LATIN SMALL LETTER A WITH CIRCUMFLEX */ ??? 0xE4, /* 43 (U+00E4) ? LATIN SMALL LETTER A WITH DIAERESIS */ ??? 0xE0, /* 44 (U+00E0) ¨¤ LATIN SMALL LETTER A WITH GRAVE */ ??? 0xE1, /* 45 (U+00E1) ¨¢ LATIN SMALL LETTER A WITH ACUTE */ ??? 0xE3, /* 46 (U+00E3) ? LATIN SMALL LETTER A WITH TILDE */ ??? 0xE5, /* 47 (U+00E5) ? LATIN SMALL LETTER A WITH RING ABOVE */ ??? 0xE7, /* 48 (U+00E7) ? LATIN SMALL LETTER C WITH CEDILLA */ ??? 0xF1, /* 49 (U+00F1) ? LATIN SMALL LETTER N WITH TILDE */ ??? 0xA2, /* 4A (U+00A2) ? CENT SIGN */ ??? 0x2E, /* 4B (U+002E) . FULL STOP */ ??? 0x3C, /* 4C (U+003C) < LESS-THAN SIGN */ ??? 0x28, /* 4D (U+0028) ( LEFT PARENTHESIS */ ??? 0x2B, /* 4E (U+002B) + PLUS SIGN */ ??? 0x7C, /* 4F (U+007C) | VERTICAL LINE */ ??? 0x26, /* 50 (U+0026) & AMPERSAND */ ??? 0xE9, /* 51 (U+00E9) ¨¦ LATIN SMALL LETTER E WITH ACUTE */ ??? 0xEA, /* 52 (U+00EA) ¨º LATIN SMALL LETTER E WITH CIRCUMFLEX */ ??? 0xEB, /* 53 (U+00EB) ? LATIN SMALL LETTER E WITH DIAERESIS */ ??? 0xE8, /* 54 (U+00E8) ¨¨ LATIN SMALL LETTER E WITH GRAVE */ ??? 0xED, /* 55 (U+00ED) ¨ª LATIN SMALL LETTER I WITH ACUTE */ ??? 0xEE, /* 56 (U+00EE) ? LATIN SMALL LETTER I WITH CIRCUMFLEX */ ??? 0xEF, /* 57 (U+00EF) ? LATIN SMALL LETTER I WITH DIAERESIS */ ??? 0xEC, /* 58 (U+00EC) ¨¬ LATIN SMALL LETTER I WITH GRAVE */ ??? 0xDF, /* 59 (U+00DF) ? LATIN SMALL LETTER SHARP S */ ??? 0x21, /* 5A (U+0021) ! EXCLAMATION MARK */ ??? 0x24, /* 5B (U+0024) $ DOLLAR SIGN */ ??? 0x2A, /* 5C (U+002A) * ASTERISK */ ??? 0x29, /* 5D (U+0029) ) RIGHT PARENTHESIS */ ??? 0x3B, /* 5E (U+003B) ; SEMICOLON */ ??? 0x5E, /* 5F (U+005E) ^ CIRCUMFLEX ACCENT */ ??? 0x2D, /* 60 (U+002D) - HYPHEN-MINUS */ ??? 0x2F, /* 61 (U+002F) / SOLIDUS */ ??? 0xC2, /* 62 (U+00C2) ? LATIN CAPITAL LETTER A WITH CIRCUMFLEX */ ??? 0xC4, /* 63 (U+00C4) ? LATIN CAPITAL LETTER A WITH DIAERESIS */ ??? 0xC0, /* 64 (U+00C0) ? LATIN CAPITAL LETTER A WITH GRAVE */ ??? 0xC1, /* 65 (U+00C1) ? LATIN CAPITAL LETTER A WITH ACUTE */ ??? 0xC3, /* 66 (U+00C3) ? LATIN CAPITAL LETTER A WITH TILDE */ ??? 0xC5, /* 67 (U+00C5) ? LATIN CAPITAL LETTER A WITH RING ABOVE */ ??? 0xC7, /* 68 (U+00C7) ? LATIN CAPITAL LETTER C WITH CEDILLA */ ??? 0xD1, /* 69 (U+00D1) ? LATIN CAPITAL LETTER N WITH TILDE */ ??? 0xA6, /* 6A (U+00A6) ? BROKEN BAR */ ??? 0x2C, /* 6B (U+002C) , COMMA */ ??? 0x25, /* 6C (U+0025) % PERCENT SIGN */ ??? 0x5F, /* 6D (U+005F) _ LOW LINE */ ??? 0x3E, /* 6E (U+003E) > GREATER-THAN SIGN */ ??? 0x3F, /* 6F (U+003F) ? QUESTION MARK */ ??? 0xF8, /* 70 (U+00F8) ? LATIN SMALL LETTER O WITH STROKE */ ??? 0xC9, /* 71 (U+00C9) ? LATIN CAPITAL LETTER E WITH ACUTE */ ??? 0xCA, /* 72 (U+00CA) ? LATIN CAPITAL LETTER E WITH CIRCUMFLEX */ ??? 0xCB, /* 73 (U+00CB) ? LATIN CAPITAL LETTER E WITH DIAERESIS */ ??? 0xC8, /* 74 (U+00C8) ? LATIN CAPITAL LETTER E WITH GRAVE */ ??? 0xCD, /* 75 (U+00CD) ? LATIN CAPITAL LETTER I WITH ACUTE */ ??? 0xCE, /* 76 (U+00CE) ? LATIN CAPITAL LETTER I WITH CIRCUMFLEX */ ??? 0xCF, /* 77 (U+00CF) ? LATIN CAPITAL LETTER I WITH DIAERESIS */ ??? 0xCC, /* 78 (U+00CC) ? LATIN CAPITAL LETTER I WITH GRAVE */ ??? 0x60, /* 79 (U+0060) ` GRAVE ACCENT */ ??? 0x3A, /* 7A (U+003A) : COLON */ ??? 0x23, /* 7B (U+0023) # NUMBER SIGN */ ??? 0x40, /* 7C (U+0040) @ COMMERCIAL AT */ ??? 0x27, /* 7D (U+0027) ' APOSTROPHE */ ??? 0x3D, /* 7E (U+003D) = EQUALS SIGN */ ??? 0x22, /* 7F (U+0022) " QUOTATION MARK */ ??? 0xD8, /* 80 (U+00D8) ? LATIN CAPITAL LETTER O WITH STROKE */ ??? 0x61, /* 81 (U+0061) a LATIN SMALL LETTER A */ ??? 0x62, /* 82 (U+0062) b LATIN SMALL LETTER B */ ??? 0x63, /* 83 (U+0063) c LATIN SMALL LETTER C */ ??? 0x64, /* 84 (U+0064) d LATIN SMALL LETTER D */ ??? 0x65, /* 85 (U+0065) e LATIN SMALL LETTER E */ ??? 0x66, /* 86 (U+0066) f LATIN SMALL LETTER F */ ??? 0x67, /* 87 (U+0067) g LATIN SMALL LETTER G */ ??? 0x68, /* 88 (U+0068) h LATIN SMALL LETTER H */ ??? 0x69, /* 89 (U+0069) i LATIN SMALL LETTER I */ ??? 0xAB, /* 8A (U+00AB) ? LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ ??? 0xBB, /* 8B (U+00BB) ? RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ ??? 0xF0, /* 8C (U+00F0) ? LATIN SMALL LETTER ETH */ ??? 0xFD, /* 8D (U+00FD) ? LATIN SMALL LETTER Y WITH ACUTE */ ??? 0xFE, /* 8E (U+00FE) ? LATIN SMALL LETTER THORN */ ??? 0xB1, /* 8F (U+00B1) ¡À PLUS-MINUS SIGN */ ??? 0xB0, /* 90 (U+00B0) ¡ã DEGREE SIGN */ ??? 0x6A, /* 91 (U+006A) j LATIN SMALL LETTER J */ ??? 0x6B, /* 92 (U+006B) k LATIN SMALL LETTER K */ ??? 0x6C, /* 93 (U+006C) l LATIN SMALL LETTER L */ ??? 0x6D, /* 94 (U+006D) m LATIN SMALL LETTER M */ ??? 0x6E, /* 95 (U+006E) n LATIN SMALL LETTER N */ ??? 0x6F, /* 96 (U+006F) o LATIN SMALL LETTER O */ ??? 0x70, /* 97 (U+0070) p LATIN SMALL LETTER P */ ??? 0x71, /* 98 (U+0071) q LATIN SMALL LETTER Q */ ??? 0x72, /* 99 (U+0072) r LATIN SMALL LETTER R */ ??? 0xAA, /* 9A (U+00AA) ? FEMININE ORDINAL INDICATOR */ ??? 0xBA, /* 9B (U+00BA) ? MASCULINE ORDINAL INDICATOR */ ??? 0xE6, /* 9C (U+00E6) ? LATIN SMALL LETTER AE */ ??? 0xB8, /* 9D (U+00B8) ? CEDILLA */ ??? 0xC6, /* 9E (U+00C6) ? LATIN CAPITAL LETTER AE */ ??? 0xA4, /* 9F (U+00A4) ¡è CURRENCY SIGN */ ??? 0xB5, /* A0 (U+00B5) ? MICRO SIGN */ ??? 0x7E, /* A1 (U+007E) ~ TILDE */ ??? 0x73, /* A2 (U+0073) s LATIN SMALL LETTER S */ ??? 0x74, /* A3 (U+0074) t LATIN SMALL LETTER T */ ??? 0x75, /* A4 (U+0075) u LATIN SMALL LETTER U */ ??? 0x76, /* A5 (U+0076) v LATIN SMALL LETTER V */ ??? 0x77, /* A6 (U+0077) w LATIN SMALL LETTER W */ ??? 0x78, /* A7 (U+0078) x LATIN SMALL LETTER X */ ??? 0x79, /* A8 (U+0079) y LATIN SMALL LETTER Y */ ??? 0x7A, /* A9 (U+007A) z LATIN SMALL LETTER Z */ ??? 0xA1, /* AA (U+00A1) ? INVERTED EXCLAMATION MARK */ ??? 0xBF, /* AB (U+00BF) ? INVERTED QUESTION MARK */ ??? 0xD0, /* AC (U+00D0) ? LATIN CAPITAL LETTER ETH */ ??? 0x5B, /* AD (U+005B) [ LEFT SQUARE BRACKET */ ??? 0xDE, /* AE (U+00DE) ? LATIN CAPITAL LETTER THORN */ ??? 0xAE, /* AF (U+00AE) ? REGISTERED SIGN */ ??? 0xAC, /* B0 (U+00AC) ? NOT SIGN */ ??? 0xA3, /* B1 (U+00A3) ? POUND SIGN */ ??? 0xA5, /* B2 (U+00A5) ? YEN SIGN */ ??? 0xB7, /* B3 (U+00B7) ¡¤ MIDDLE DOT */ ??? 0xA9, /* B4 (U+00A9) ? COPYRIGHT SIGN */ ??? 0xA7, /* B5 (U+00A7) ¡ì SECTION SIGN */ ??? 0xB6, /* B6 (U+00B6) ? PILCROW SIGN */ ??? 0xBC, /* B7 (U+00BC) ? VULGAR FRACTION ONE QUARTER */ ??? 0xBD, /* B8 (U+00BD) ? VULGAR FRACTION ONE HALF */ ??? 0xBE, /* B9 (U+00BE) ? VULGAR FRACTION THREE QUARTERS */ ??? 0xDD, /* BA (U+00DD) ? LATIN CAPITAL LETTER Y WITH ACUTE */ ??? 0xA8, /* BB (U+00A8) ¡§ DIAERESIS */ ??? 0xAF, /* BC (U+00AF) ? MACRON */ ??? 0x5D, /* BD (U+005D) ] RIGHT SQUARE BRACKET */ ??? 0xB4, /* BE (U+00B4) ? ACUTE ACCENT */ ??? 0xD7, /* BF (U+00D7) ¡Á MULTIPLICATION SIGN */ ??? 0x7B, /* C0 (U+007B) { LEFT CURLY BRACKET */ ??? 0x41, /* C1 (U+0041) A LATIN CAPITAL LETTER A */ ??? 0x42, /* C2 (U+0042) B LATIN CAPITAL LETTER B */ ??? 0x43, /* C3 (U+0043) C LATIN CAPITAL LETTER C */ ??? 0x44, /* C4 (U+0044) D LATIN CAPITAL LETTER D */ ??? 0x45, /* C5 (U+0045) E LATIN CAPITAL LETTER E */ ??? 0x46, /* C6 (U+0046) F LATIN CAPITAL LETTER F */ ??? 0x47, /* C7 (U+0047) G LATIN CAPITAL LETTER G */ ??? 0x48, /* C8 (U+0048) H LATIN CAPITAL LETTER H */ ??? 0x49, /* C9 (U+0049) I LATIN CAPITAL LETTER I */ ??? 0xAD, /* CA (U+00AD) ? SOFT HYPHEN */ ??? 0xF4, /* CB (U+00F4) ? LATIN SMALL LETTER O WITH CIRCUMFLEX */ ??? 0xF6, /* CC (U+00F6) ? LATIN SMALL LETTER O WITH DIAERESIS */ ??? 0xF2, /* CD (U+00F2) ¨° LATIN SMALL LETTER O WITH GRAVE */ ??? 0xF3, /* CE (U+00F3) ¨® LATIN SMALL LETTER O WITH ACUTE */ ??? 0xF5, /* CF (U+00F5) ? LATIN SMALL LETTER O WITH TILDE */ ??? 0x7D, /* D0 (U+007D) } RIGHT CURLY BRACKET */ ??? 0x4A, /* D1 (U+004A) J LATIN CAPITAL LETTER J */ ??? 0x4B, /* D2 (U+004B) K LATIN CAPITAL LETTER K */ ??? 0x4C, /* D3 (U+004C) L LATIN CAPITAL LETTER L */ ??? 0x4D, /* D4 (U+004D) M LATIN CAPITAL LETTER M */ ??? 0x4E, /* D5 (U+004E) N LATIN CAPITAL LETTER N */ ??? 0x4F, /* D6 (U+004F) O LATIN CAPITAL LETTER O */ ??? 0x50, /* D7 (U+0050) P LATIN CAPITAL LETTER P */ ??? 0x51, /* D8 (U+0051) Q LATIN CAPITAL LETTER Q */ ??? 0x52, /* D9 (U+0052) R LATIN CAPITAL LETTER R */ ??? 0xB9, /* DA (U+00B9) ? SUPERSCRIPT ONE */ ??? 0xFB, /* DB (U+00FB) ? LATIN SMALL LETTER U WITH CIRCUMFLEX */ ??? 0xFC, /* DC (U+00FC) ¨¹ LATIN SMALL LETTER U WITH DIAERESIS */ ??? 0xF9, /* DD (U+00F9) ¨´ LATIN SMALL LETTER U WITH GRAVE */ ??? 0xFA, /* DE (U+00FA) ¨² LATIN SMALL LETTER U WITH ACUTE */ ??? 0xFF, /* DF (U+00FF) ? LATIN SMALL LETTER Y WITH DIAERESIS */ ??? 0x5C, /* E0 (U+005C) \ REVERSE SOLIDUS */ ??? 0xF7, /* E1 (U+00F7) ¡Â DIVISION SIGN */ ??? 0x53, /* E2 (U+0053) S LATIN CAPITAL LETTER S */ ??? 0x54, /* E3 (U+0054) T LATIN CAPITAL LETTER T */ ??? 0x55, /* E4 (U+0055) U LATIN CAPITAL LETTER U */ ??? 0x56, /* E5 (U+0056) V LATIN CAPITAL LETTER V */ ??? 0x57, /* E6 (U+0057) W LATIN CAPITAL LETTER W */ ??? 0x58, /* E7 (U+0058) X LATIN CAPITAL LETTER X */ ??? 0x59, /* E8 (U+0059) Y LATIN CAPITAL LETTER Y */ ??? 0x5A, /* E9 (U+005A) Z LATIN CAPITAL LETTER Z */ ??? 0xB2, /* EA (U+00B2) ? SUPERSCRIPT TWO */ ??? 0xD4, /* EB (U+00D4) ? LATIN CAPITAL LETTER O WITH CIRCUMFLEX */ ??? 0xD6, /* EC (U+00D6) ? LATIN CAPITAL LETTER O WITH DIAERESIS */ ??? 0xD2, /* ED (U+00D2) ? LATIN CAPITAL LETTER O WITH GRAVE */ ??? 0xD3, /* EE (U+00D3) ? LATIN CAPITAL LETTER O WITH ACUTE */ ??? 0xD5, /* EF (U+00D5) ? LATIN CAPITAL LETTER O WITH TILDE */ ??? 0x30, /* F0 (U+0030) 0 DIGIT ZERO */ ??? 0x31, /* F1 (U+0031) 1 DIGIT ONE */ ??? 0x32, /* F2 (U+0032) 2 DIGIT TWO */ ??? 0x33, /* F3 (U+0033) 3 DIGIT THREE */ ??? 0x34, /* F4 (U+0034) 4 DIGIT FOUR */ ??? 0x35, /* F5 (U+0035) 5 DIGIT FIVE */ ??? 0x36, /* F6 (U+0036) 6 DIGIT SIX */ ??? 0x37, /* F7 (U+0037) 7 DIGIT SEVEN */ ??? 0x38, /* F8 (U+0038) 8 DIGIT EIGHT */ ??? 0x39, /* F9 (U+0039) 9 DIGIT NINE */ ??? 0xB3, /* FA (U+00B3) ? SUPERSCRIPT THREE */ ??? 0xDB, /* FB (U+00DB) ? LATIN CAPITAL LETTER U WITH CIRCUMFLEX */ ??? 0xDC, /* FC (U+00DC) ? LATIN CAPITAL LETTER U WITH DIAERESIS */ ??? 0xD9, /* FD (U+00D9) ? LATIN CAPITAL LETTER U WITH GRAVE */ ??? 0xDA, /* FE (U+00DA) ? LATIN CAPITAL LETTER U WITH ACUTE */ ??? 0x9F? /* FF (U+009F)?? <control-009F> */ }; 000 00 000 (U+0000)?? <control-0000> 001 01 001 (U+0001)?? <control-0001> 002 02 002 (U+0002)?? <control-0002> 003 03 003 (U+0003)?? <control-0003> 004 04 156 (U+009C)?? <control-009C> 005 05 009 (U+0009)?? <control-0009> 006 06 134 (U+0086)?? <control-0086> 007 07 127 (U+007F)?? <control-007F> 008 08 151 (U+0097)?? <control-0097> 009 09 141 (U+008D)?? <control-008D> 010 0A 142 (U+008E)?? <control-008E> 011 0B 011 (U+000B)?? <control-000B> 012 0C 012 (U+000C)?? <control-000C> 013 0D 013 (U+000D)?? <control-000D> 014 0E 014 (U+000E)?? <control-000E> 015 0F 015 (U+000F)?? <control-000F> 016 10 016 (U+0010)?? <control-0010> 017 11 017 (U+0011)?? <control-0011> 018 12 018 (U+0012)?? <control-0012> 019 13 019 (U+0013)?? <control-0013> 020 14 157 (U+009D)?? <control-009D> 021 15 133 (U+0085)?? <control-0085> 022 16 008 (U+0008)?? <control-0008> 023 17 135 (U+0087)?? <control-0087> 024 18 024 (U+0018)?? <control-0018> 025 19 025 (U+0019)?? <control-0019> 026 1A 146 (U+0092)?? <control-0092> 027 1B 143 (U+008F)?? <control-008F> 028 1C 028 (U+001C)?? <control-001C> 029 1D 029 (U+001D)?? <control-001D> 030 1E 030 (U+001E)?? <control-001E> 031 1F 031 (U+001F)?? <control-001F> 032 20 128 (U+0080)?? <control-0080> 033 21 129 (U+0081)?? <control-0081> 034 22 130 (U+0082)?? <control-0082> 035 23 131 (U+0083)?? <control-0083> 036 24 132 (U+0084)?? <control-0084> 037 25 010 (U+000A)?? <control-000A> 038 26 023 (U+0017)?? <control-0017> 039 27 027 (U+001B)?? <control-001B> 040 28 136 (U+0088)?? <control-0088> 041 29 137 (U+0089)?? <control-0089> 042 2A 138 (U+008A)?? <control-008A> 043 2B 139 (U+008B)?? <control-008B> 044 2C 140 (U+008C)?? <control-008C> 045 2D 005 (U+0005)?? <control-0005> 046 2E 006 (U+0006)?? <control-0006> 047 2F 007 (U+0007)?? <control-0007> 048 30 144 (U+0090)?? <control-0090> 049 31 145 (U+0091)?? <control-0091> 050 32 022 (U+0016)?? <control-0016> 051 33 147 (U+0093)?? <control-0093> 052 34 148 (U+0094)?? <control-0094> 053 35 149 (U+0095)?? <control-0095> 054 36 150 (U+0096)?? <control-0096> 055 37 004 (U+0004)?? <control-0004> 056 38 152 (U+0098)?? <control-0098> 057 39 153 (U+0099)?? <control-0099> 058 3A 154 (U+009A)?? <control-009A> 059 3B 155 (U+009B)?? <control-009B> 060 3C 020 (U+0014)?? <control-0014> 061 3D 021 (U+0015)?? <control-0015> 062 3E 158 (U+009E)?? <control-009E> 063 3F 026 (U+001A)?? <control-001A> 064 40 032 (U+0020)?? SPACE 065 41 160 (U+00A0) ? NO-BREAK SPACE 066 42 226 (U+00E2) ? LATIN SMALL LETTER A WITH CIRCUMFLEX 067 43 228 (U+00E4) ? LATIN SMALL LETTER A WITH DIAERESIS 068 44 224 (U+00E0) ¨¤ LATIN SMALL LETTER A WITH GRAVE 069 45 225 (U+00E1) ¨¢ LATIN SMALL LETTER A WITH ACUTE 070 46 227 (U+00E3) ? LATIN SMALL LETTER A WITH TILDE 071 47 229 (U+00E5) ? LATIN SMALL LETTER A WITH RING ABOVE 072 48 231 (U+00E7) ? LATIN SMALL LETTER C WITH CEDILLA 073 49 241 (U+00F1) ? LATIN SMALL LETTER N WITH TILDE 074 4A 162 (U+00A2) ? CENT SIGN 075 4B 046 (U+002E) . FULL STOP 076 4C 060 (U+003C) < LESS-THAN SIGN 077 4D 040 (U+0028) ( LEFT PARENTHESIS 078 4E 043 (U+002B) + PLUS SIGN 079 4F 124 (U+007C) | VERTICAL LINE 080 50 038 (U+0026) & AMPERSAND 081 51 233 (U+00E9) ¨¦ LATIN SMALL LETTER E WITH ACUTE 082 52 234 (U+00EA) ¨º LATIN SMALL LETTER E WITH CIRCUMFLEX 083 53 235 (U+00EB) ? LATIN SMALL LETTER E WITH DIAERESIS 084 54 232 (U+00E8) ¨¨ LATIN SMALL LETTER E WITH GRAVE 085 55 237 (U+00ED) ¨ª LATIN SMALL LETTER I WITH ACUTE 086 56 238 (U+00EE) ? LATIN SMALL LETTER I WITH CIRCUMFLEX 087 57 239 (U+00EF) ? LATIN SMALL LETTER I WITH DIAERESIS 088 58 236 (U+00EC) ¨¬ LATIN SMALL LETTER I WITH GRAVE 089 59 223 (U+00DF) ? LATIN SMALL LETTER SHARP S 090 5A 033 (U+0021) ! EXCLAMATION MARK 091 5B 036 (U+0024) $ DOLLAR SIGN 092 5C 042 (U+002A) * ASTERISK 093 5D 041 (U+0029) ) RIGHT PARENTHESIS 094 5E 059 (U+003B) ; SEMICOLON 095 5F 094 (U+005E) ^ CIRCUMFLEX ACCENT 096 60 045 (U+002D) - HYPHEN-MINUS 097 61 047 (U+002F) / SOLIDUS 098 62 194 (U+00C2) ? LATIN CAPITAL LETTER A WITH CIRCUMFLEX 099 63 196 (U+00C4) ? LATIN CAPITAL LETTER A WITH DIAERESIS 100 64 192 (U+00C0) ? LATIN CAPITAL LETTER A WITH GRAVE 101 65 193 (U+00C1) ? LATIN CAPITAL LETTER A WITH ACUTE 102 66 195 (U+00C3) ? LATIN CAPITAL LETTER A WITH TILDE 103 67 197 (U+00C5) ? LATIN CAPITAL LETTER A WITH RING ABOVE 104 68 199 (U+00C7) ? LATIN CAPITAL LETTER C WITH CEDILLA 105 69 209 (U+00D1) ? LATIN CAPITAL LETTER N WITH TILDE 106 6A 166 (U+00A6) ? BROKEN BAR 107 6B 044 (U+002C) , COMMA 108 6C 037 (U+0025) % PERCENT SIGN 109 6D 095 (U+005F) _ LOW LINE 110 6E 062 (U+003E) > GREATER-THAN SIGN 111 6F 063 (U+003F) ? QUESTION MARK 112 70 248 (U+00F8) ? LATIN SMALL LETTER O WITH STROKE 113 71 201 (U+00C9) ? LATIN CAPITAL LETTER E WITH ACUTE 114 72 202 (U+00CA) ? LATIN CAPITAL LETTER E WITH CIRCUMFLEX 115 73 203 (U+00CB) ? LATIN CAPITAL LETTER E WITH DIAERESIS 116 74 200 (U+00C8) ? LATIN CAPITAL LETTER E WITH GRAVE 117 75 205 (U+00CD) ? LATIN CAPITAL LETTER I WITH ACUTE 118 76 206 (U+00CE) ? LATIN CAPITAL LETTER I WITH CIRCUMFLEX 119 77 207 (U+00CF) ? LATIN CAPITAL LETTER I WITH DIAERESIS 120 78 204 (U+00CC) ? LATIN CAPITAL LETTER I WITH GRAVE 121 79 096 (U+0060) ` GRAVE ACCENT 122 7A 058 (U+003A) : COLON 123 7B 035 (U+0023) # NUMBER SIGN 124 7C 064 (U+0040) @ COMMERCIAL AT 125 7D 039 (U+0027) ' APOSTROPHE 126 7E 061 (U+003D) = EQUALS SIGN 127 7F 034 (U+0022) " QUOTATION MARK 128 80 216 (U+00D8) ? LATIN CAPITAL LETTER O WITH STROKE 129 81 097 (U+0061) a LATIN SMALL LETTER A 130 82 098 (U+0062) b LATIN SMALL LETTER B 131 83 099 (U+0063) c LATIN SMALL LETTER C 132 84 100 (U+0064) d LATIN SMALL LETTER D 133 85 101 (U+0065) e LATIN SMALL LETTER E 134 86 102 (U+0066) f LATIN SMALL LETTER F 135 87 103 (U+0067) g LATIN SMALL LETTER G 136 88 104 (U+0068) h LATIN SMALL LETTER H 137 89 105 (U+0069) i LATIN SMALL LETTER I 138 8A 171 (U+00AB) ? LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 139 8B 187 (U+00BB) ? RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 140 8C 240 (U+00F0) ? LATIN SMALL LETTER ETH 141 8D 253 (U+00FD) ? LATIN SMALL LETTER Y WITH ACUTE 142 8E 254 (U+00FE) ? LATIN SMALL LETTER THORN 143 8F 177 (U+00B1) ¡À PLUS-MINUS SIGN 144 90 176 (U+00B0) ¡ã DEGREE SIGN 145 91 106 (U+006A) j LATIN SMALL LETTER J 146 92 107 (U+006B) k LATIN SMALL LETTER K 147 93 108 (U+006C) l LATIN SMALL LETTER L 148 94 109 (U+006D) m LATIN SMALL LETTER M 149 95 110 (U+006E) n LATIN SMALL LETTER N 150 96 111 (U+006F) o LATIN SMALL LETTER O 151 97 112 (U+0070) p LATIN SMALL LETTER P 152 98 113 (U+0071) q LATIN SMALL LETTER Q 153 99 114 (U+0072) r LATIN SMALL LETTER R 154 9A 170 (U+00AA) ? FEMININE ORDINAL INDICATOR 155 9B 186 (U+00BA) ? MASCULINE ORDINAL INDICATOR 156 9C 230 (U+00E6) ? LATIN SMALL LETTER AE 157 9D 184 (U+00B8) ? CEDILLA 158 9E 198 (U+00C6) ? LATIN CAPITAL LETTER AE 159 9F 164 (U+00A4) ¡è CURRENCY SIGN 160 A0 181 (U+00B5) ? MICRO SIGN 161 A1 126 (U+007E) ~ TILDE 162 A2 115 (U+0073) s LATIN SMALL LETTER S 163 A3 116 (U+0074) t LATIN SMALL LETTER T 164 A4 117 (U+0075) u LATIN SMALL LETTER U 165 A5 118 (U+0076) v LATIN SMALL LETTER V 166 A6 119 (U+0077) w LATIN SMALL LETTER W 167 A7 120 (U+0078) x LATIN SMALL LETTER X 168 A8 121 (U+0079) y LATIN SMALL LETTER Y 169 A9 122 (U+007A) z LATIN SMALL LETTER Z 170 AA 161 (U+00A1) ? INVERTED EXCLAMATION MARK 171 AB 191 (U+00BF) ? INVERTED QUESTION MARK 172 AC 208 (U+00D0) ? LATIN CAPITAL LETTER ETH 173 AD 091 (U+005B) [ LEFT SQUARE BRACKET 174 AE 222 (U+00DE) ? LATIN CAPITAL LETTER THORN 175 AF 174 (U+00AE) ? REGISTERED SIGN 176 B0 172 (U+00AC) ? NOT SIGN 177 B1 163 (U+00A3) ? POUND SIGN 178 B2 165 (U+00A5) ? YEN SIGN 179 B3 183 (U+00B7) ¡¤ MIDDLE DOT 180 B4 169 (U+00A9) ? COPYRIGHT SIGN 181 B5 167 (U+00A7) ¡ì SECTION SIGN 182 B6 182 (U+00B6) ? PILCROW SIGN 183 B7 188 (U+00BC) ? VULGAR FRACTION ONE QUARTER 184 B8 189 (U+00BD) ? VULGAR FRACTION ONE HALF 185 B9 190 (U+00BE) ? VULGAR FRACTION THREE QUARTERS 186 BA 221 (U+00DD) ? LATIN CAPITAL LETTER Y WITH ACUTE 187 BB 168 (U+00A8) ¡§ DIAERESIS 188 BC 175 (U+00AF) ? MACRON 189 BD 093 (U+005D) ] RIGHT SQUARE BRACKET 190 BE 180 (U+00B4) ? ACUTE ACCENT 191 BF 215 (U+00D7) ¡Á MULTIPLICATION SIGN 192 C0 123 (U+007B) { LEFT CURLY BRACKET 193 C1 065 (U+0041) A LATIN CAPITAL LETTER A 194 C2 066 (U+0042) B LATIN CAPITAL LETTER B 195 C3 067 (U+0043) C LATIN CAPITAL LETTER C 196 C4 068 (U+0044) D LATIN CAPITAL LETTER D 197 C5 069 (U+0045) E LATIN CAPITAL LETTER E 198 C6 070 (U+0046) F LATIN CAPITAL LETTER F 199 C7 071 (U+0047) G LATIN CAPITAL LETTER G 200 C8 072 (U+0048) H LATIN CAPITAL LETTER H 201 C9 073 (U+0049) I LATIN CAPITAL LETTER I 202 CA 173 (U+00AD) ? SOFT HYPHEN 203 CB 244 (U+00F4) ? LATIN SMALL LETTER O WITH CIRCUMFLEX 204 CC 246 (U+00F6) ? LATIN SMALL LETTER O WITH DIAERESIS 205 CD 242 (U+00F2) ¨° LATIN SMALL LETTER O WITH GRAVE 206 CE 243 (U+00F3) ¨® LATIN SMALL LETTER O WITH ACUTE 207 CF 245 (U+00F5) ? LATIN SMALL LETTER O WITH TILDE 208 D0 125 (U+007D) } RIGHT CURLY BRACKET 209 D1 074 (U+004A) J LATIN CAPITAL LETTER J 210 D2 075 (U+004B) K LATIN CAPITAL LETTER K 211 D3 076 (U+004C) L LATIN CAPITAL LETTER L 212 D4 077 (U+004D) M LATIN CAPITAL LETTER M 213 D5 078 (U+004E) N LATIN CAPITAL LETTER N 214 D6 079 (U+004F) O LATIN CAPITAL LETTER O 215 D7 080 (U+0050) P LATIN CAPITAL LETTER P 216 D8 081 (U+0051) Q LATIN CAPITAL LETTER Q 217 D9 082 (U+0052) R LATIN CAPITAL LETTER R 218 DA 185 (U+00B9) ? SUPERSCRIPT ONE 219 DB 251 (U+00FB) ? LATIN SMALL LETTER U WITH CIRCUMFLEX 220 DC 252 (U+00FC) ¨¹ LATIN SMALL LETTER U WITH DIAERESIS 221 DD 249 (U+00F9) ¨´ LATIN SMALL LETTER U WITH GRAVE 222 DE 250 (U+00FA) ¨² LATIN SMALL LETTER U WITH ACUTE 223 DF 255 (U+00FF) ? LATIN SMALL LETTER Y WITH DIAERESIS 224 E0 092 (U+005C) \ REVERSE SOLIDUS 225 E1 247 (U+00F7) ¡Â DIVISION SIGN 226 E2 083 (U+0053) S LATIN CAPITAL LETTER S 227 E3 084 (U+0054) T LATIN CAPITAL LETTER T 228 E4 085 (U+0055) U LATIN CAPITAL LETTER U 229 E5 086 (U+0056) V LATIN CAPITAL LETTER V 230 E6 087 (U+0057) W LATIN CAPITAL LETTER W 231 E7 088 (U+0058) X LATIN CAPITAL LETTER X 232 E8 089 (U+0059) Y LATIN CAPITAL LETTER Y 233 E9 090 (U+005A) Z LATIN CAPITAL LETTER Z 234 EA 178 (U+00B2) ? SUPERSCRIPT TWO 235 EB 212 (U+00D4) ? LATIN CAPITAL LETTER O WITH CIRCUMFLEX 236 EC 214 (U+00D6) ? LATIN CAPITAL LETTER O WITH DIAERESIS 237 ED 210 (U+00D2) ? LATIN CAPITAL LETTER O WITH GRAVE 238 EE 211 (U+00D3) ? LATIN CAPITAL LETTER O WITH ACUTE 239 EF 213 (U+00D5) ? LATIN CAPITAL LETTER O WITH TILDE 240 F0 048 (U+0030) 0 DIGIT ZERO 241 F1 049 (U+0031) 1 DIGIT ONE 242 F2 050 (U+0032) 2 DIGIT TWO 243 F3 051 (U+0033) 3 DIGIT THREE 244 F4 052 (U+0034) 4 DIGIT FOUR 245 F5 053 (U+0035) 5 DIGIT FIVE 246 F6 054 (U+0036) 6 DIGIT SIX 247 F7 055 (U+0037) 7 DIGIT SEVEN 248 F8 056 (U+0038) 8 DIGIT EIGHT 249 F9 057 (U+0039) 9 DIGIT NINE 250 FA 179 (U+00B3) ? SUPERSCRIPT THREE 251 FB 219 (U+00DB) ? LATIN CAPITAL LETTER U WITH CIRCUMFLEX 252 FC 220 (U+00DC) ? LATIN CAPITAL LETTER U WITH DIAERESIS 253 FD 217 (U+00D9) ? LATIN CAPITAL LETTER U WITH GRAVE 254 FE 218 (U+00DA) ? LATIN CAPITAL LETTER U WITH ACUTE 255 FF 159 (U+009F)?? <control-009F>
/* REXX */
l = '<span class="small">' r = '</span>'
i = 0 out_queue. = "" a2e. = "" e2a. = "" unicode_name. = ""
"top"
do forever ? "nomsg locate /"l"/" ? if rc <> 0 then leave
? parse value curline.3() with (l) unicode_x (r) ? unicode_d = x2d(unicode_x)
? e2a.i = unicode_d ? a2e.unicode_d = i ? parse value curline.3() with 'title="' unicode_name.unicode_d '"'
? i = i + 1 ? out_queue.i = unicode_x end
if i > 0 then do ? "xedit (UNTITLED" ? do j = 1 to i ??? e = j-1 ??? a = e2a.e ??? if left(unicode_name.a,9) = "<control-" then c = " "; else c = d2c(a) ??? "input" right("000"||(j-1),3) right("00"d2x(j-1),2) right("000"x2d(out_queue.j),3) "(U+"out_queue.j")" c unicode_name.a ? end ? "top" end else exit 28
"input" "/* internal mapping ASCII -> EBCDIC */" "input" "static unsigned char a2e_base[256] = {" ? do a = 0 to 255 ??? e = a2e.a ??? if left(unicode_name.a,9) = "<control-" then c = " "; else c = d2c(a) ??? str = "0x"right("00"d2x(e),2) ??? if a < 255 then str = str","; else str = str" " ??? str = str "/*" right("00"d2x(e),2) "(U+00"right("00"d2x(a),2)")" c unicode_name.a "*/" ??? "input??? " str ? end "input" "};"
"input" "/* internal mapping EBCDIC -> ASCII */" "input" "static unsigned char e2a_base[256] = {" ? do e = 0 to 255 ??? a = e2a.e ??? if left(unicode_name.a,9) = "<control-" then c = " "; else c = d2c(a) ??? str = "0x"right("00"d2x(a),2) ??? if e < 255 then str = str","; else str = str" " ??? str = str "/*" right("00"d2x(e),2) "(U+00"right("00"d2x(a),2)")" c unicode_name.a "*/" ??? "input??? " str ? end "input" "};" "top" exit
|