¿ªÔÆÌåÓý


File /IND$FILE : materials for topic "Automatic generation of transcoding tables for IND$FILE"/THE1252_IND$MAP.png uploaded #file-notice

Group Notification
 

The following files and folders have been uploaded to the Files area of the [email protected] group.

By: Martin Scheffler <San-Lorenzo@...>

Description:
Work In Progress: support for THE (The Hessling Editor), first successful tests. Generated tables are identical, files differ in comments only (date/time, tools).


Re: Automatic generation of transcoding tables for IND$FILE #rexx #VMCE

 

On Sat, Sep 10, 2022 at 10:48 PM, Bob Bolch wrote:
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??
I am using the ZOC terminal emulator (https://www.emtec.com/zoc/features.html) for TN3270, EBCDIC code page 1047 is selected.
See folder for details: /g/h390-vm/files/IND$FILE%20:%20materials%20for%20topic%20%22Automatic%20generation%20of%20transcoding%20tables%20for%20IND$FILE%22/g/h390-vm/files/IND$FILE%20:%20materials%20for%20topic%20%22Automatic%20generation%20of%20transcoding%20tables%20for%20IND$FILE%22


File /IND$FILE : materials for topic "Automatic generation of transcoding tables for IND$FILE"/ZOC_1047.IND$MAP uploaded #file-notice

Group Notification
 

The following files and folders have been uploaded to the Files area of the [email protected] group.

By: Martin Scheffler <San-Lorenzo@...>

Description:
Automatically generated IND$MAP file for the ZOC terminal emulator, using EBCDIC code page 1047. Depending on your TN3270 emulator you might have to copy this file to DEFAULT IND$MAP A1, this even is true for ZOC itself where no options can be specified for downloads (host to terminal).


File /IND$FILE : materials for topic "Automatic generation of transcoding tables for IND$FILE"/EBCDIC.MEMO_good.png uploaded #file-notice

Group Notification
 

The following files and folders have been uploaded to the Files area of the [email protected] group.

By: Martin Scheffler <San-Lorenzo@...>

Description:
EBCDIC.MEMO_good : "EBCDIC MEMO Y" transferred from CMS to the PC using IND$FILE with my automatically generated IND$MAP file in effect. The mapping at position 0xDF has still to be investigated.


File /IND$FILE : materials for topic "Automatic generation of transcoding tables for IND$FILE"/EBCDIC.MEMO_bad.png uploaded #file-notice

Group Notification
 

The following files and folders have been uploaded to the Files area of the [email protected] group.

By: Martin Scheffler <San-Lorenzo@...>

Description:
EBCDIC.MEMO_bad : "EBCDIC MEMO Y" transferred from CMS to the PC using IND$FILE without any IND$MAP file. Lots of mappings are different, notably for the square brackets and the vertical bar.


File /IND$FILE : materials for topic "Automatic generation of transcoding tables for IND$FILE"/ZOC_1047.png uploaded #file-notice

Group Notification
 

The following files and folders have been uploaded to the Files area of the [email protected] group.

By: Martin Scheffler <San-Lorenzo@...>

Description:
Using the ZOC terminal emulator (https://www.emtec.com/zoc/features.html) for TN3270, EBCDIC code page 1047 is selected. The use of "EBCDIC MEMO" is documented in the MECAFF manuals.


Added Folder /IND$FILE : materials for topic "Automatic generation of transcoding tables for IND$FILE" #file-notice

Group Notification
 

Martin Scheffler <San-Lorenzo@...> added folder /IND$FILE : materials for topic "Automatic generation of transcoding tables for IND$FILE"


Re: Automatic generation of transcoding tables for IND$FILE #rexx #VMCE

 

Forgive me for the slight off-subject posting, but would like to remind people (in case anyone wasn't aware) that transferring files between a Hercules guest and host can also be accomplished via the Hercules "vmfplc2" utility, which supports using any of Hercules's pre-defined code pages ().

Use Herc's vmfplc2 utility to create your tape, attach it to Herc, and issue a few simple CMS commands and VOILA!

Going the other direction (guest --> host) is just as easy: attach tape to CMS user, DUMP, DETACH, and then on your host: vmfplc2.exe LOAD...

Oh sure, it might be *slightly* more complicated than IND$FILE, but it completely eliminates the code page issue.

AND, you can certainly "upload" or "download" (transfer) *huge* amounts of data very, VERY quickly, since you're just reading/writing [emulated] magnetic tape after all (which is *very* fast on Hercules).


Example:

From your host:

vmfplc2.exe DUMP -t -c 819/1047 C:\..(whatever)..\fishtest.ctl C:\..(whatever)..\fishtest.aws

(fishtest.ctl):

MYPROG ASSEMBLE A Fixed 80 Textual "C:\..(whatever)..\myprogram.asm"


From Hercules:

attach devnum 3420 fishtest.aws


From your CMS userid:

ATTACH devnum TO * AS 181
LOAD
DETACH 181
EDIT MYPROG ASSEMBLE A


VMFPLC2 usage instructions:




Just wanted to pass that along to anyone who wasn't familiar with it.


<shameless plug>

PLUS, on Windows, my HercGUI product, with its fill-in-the-blanks dialogs, makes using VMFPLC2 fast and easy too! :)



</shameless plug>

--
"Fish" (David B. Trout)
Software Development Laboratories

mail: fish@...


Re: Automatic generation of transcoding tables for IND$FILE #rexx #VMCE

 

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

On Sat, Sep 10, 2022, 3:44 PM Martin Scheffler <San-Lorenzo@...> wrote:
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





Re: Automatic generation of transcoding tables for IND$FILE #rexx #VMCE

 

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





Re: Automatic generation of transcoding tables for IND$FILE #rexx #VMCE

 

I am using REXX every day since VM/SP Release 3, that means almost 40 years ... and counting ;-)
According to it should be possible to build Regina on macOS but i do not have access to such a system.


No logical not (?)?
See line 41.
File: INDMAP2B IND$MAP? A1????????? RECFM: V LRECL: 125(125) Lines:?? 395 Current:??? 41
===>??????????????????????????????????????????????????????????????????????????????????? ?
??????????????????????????????????????????????????????????????????????????????????????? ?
00030 6A 47???????????????????????????????????????????????????????????????????????????? ?
00031 * ¡ì (U+00A7) SECTION SIGN???????????????????????????????????????????????????????? ?
00032 B5 48???????????????????????????????????????????????????????????????????????????? ?
00033 * ¡§ (U+00A8) DIAERESIS? <compat> SPACING DIAERESIS??????????????????????????????? ?
00034 BB 49???????????????????????????????????????????????????????????????????????????? ?
00035 * ? (U+00A9) COPYRIGHT SIGN?????????????????????????????????????????????????????? ?
00036 B4 51???????????????????????????????????????????????????????????????????????????? ?
00037 * ? (U+00AA) FEMININE ORDINAL INDICATOR?????????????????????????????????????????? ?
00038 9A 52???????????????????????????????????????????????????????????????????????????? ?
00039 * ? (U+00AB) LEFT-POINTING DOUBLE ANGLE QUOTATION MARK? LEFT POINTING GUILLEMET?? ?
00040 8A 53???????????????????????????????????????????????????????????????????????????? ?
00041 * ? (U+00AC) NOT SIGN???????????????????????????????????????????????????????????? ?
00042 B0 54???????????????????????????????????????????????????????????????????????????? ?
00043 * ? (U+00AD) SOFT HYPHEN????????????????????????????????????????????????????????? ?
00044 CA 55???????????????????????????????????????????????????????????????????????????? ?
00045 * ? (U+00AE) REGISTERED SIGN? REGISTERED TRADE MARK SIGN????????????????????????? ?
00046 AF 56???????????????????????????????????????????????????????????????????????????? ?
00047 * ? (U+00AF) MACRON? SPACING MACRON?????????????????????????????????????????????? ?
00048 BC 57???????????????????????????????????????????????????????????????????????????? ?
00049 * ¡ã (U+00B0) DEGREE SIGN????????????????????????????????????????????????????????? ?
00050 90 58???????????????????????????????????????????????????????????????????????????? ?
00051 * ¡À (U+00B1) PLUS-MINUS SIGN? PLUS-OR-MINUS SIGN????????????????????????????????? ?
02=RingNext 03=Quit 06=SpltJ 07=PgUp 08=PgDw 10=PI 11=ClrCmd 12=Recall????????????????? ?
Unchanged????????????????????????????????????????????????????????? ee V1.2.5,? 1 File(s)
3279?????????????????????????????????????????????????????????????????????????????? 02/006




Re: Automatic generation of transcoding tables for IND$FILE #rexx #VMCE

 

Would you consider making it work with ¡°Thomas Hessling Editor¡± (THE)?
Mark Hessling's editor is named "The Hessling Editor" ... i had compiled it from sources under SunOS in 1996, including X-Curses and Regina/REXX. And I *used* it ... i did never learn vi or Emacs. Actually I have only a very old binary for Microsoft Windows and I am still unsuccessful to build a stable version using Microsoft Visual Studio 2022.
However if you use ooRexx or Regina within THE then you have everything to run a stand-alone version.


Re: Automatic generation of transcoding tables for IND$FILE #rexx #VMCE

 

¿ªÔÆÌåÓý

Would you consider making it work with ¡°Thomas Hessling Editor¡± (THE)?

Dave

?

From: [email protected] <[email protected]> On Behalf Of Martin Scheffler
Sent: 07 September 2022 23:52
To: [email protected]
Subject: [h390-vm] Automatic generation of transcoding tables for IND$FILE #rexx #VMCE

?

?I am working on a small REXX program to generate transcoding tables for IND$FILE. It reads two copies of EBCDIC MEMO and writes an IND$MAP file ready for use. I am using the ZOC terminal emulator and the EBCDIC code page is set to 1047. This program does already perform real work, but actually it needs KEDIT for Windows to run. I intend to make it run under ooRexx and Regina as well.
The screen scrap below shows *real* output, and the characters (e.g. square brackets) in the comment lines are displayed correctly because I have copied a previously transferred version to DEFAULT IND$MAP A1.

File: INDMAP2B IND$MAP? A1? RECFM: V LRECL: 125(125) Lines:?? 395 Current:??? 11
===>?????????????????????????????????????????????????????????????????????????? ?
?????????????????????????????????????????????????????????????????????????????? ?
00000 * * * Top of file * * *????????????????????????????????????????????????? ?
00001 *??????????????????????????????????????????????????????????????????????? ?
00002 * IND$MAP transcoding table for the IND$FILE file transfer utility, part ?
00003 * of the MECAFF tool suite packaged with the VM/370 Community Edition??? ?
00004 *??????????????????????????????????????????????????????????????????????? ?
00005 * Generated 2022-09-07 20:56:24 by INDmap, a free program??????????????? ?
00006 * governed by the??? GNU Affero General Public License?????????????????? ?
00007 * version 3 or later (GNU AGPLv3, SPDX AGPL-3.0-or-later)??????????????? ?
00008 * Tools used: KEXX 5.62 KEDIT/WINDOWS 1.6.1 NOV 14 2012????????????????? ?
00009 * Data used: character names of (U+0000) to (U+00FF) from??????????????? ?
00010 * ????????? ?
00011 *??????????????????????????????????????????????????????????????????????? ?
00012 *??????????????????????????????????????????????????????????????????????? ?
00013 * [ (U+005B) LEFT SQUARE BRACKET? OPENING SQUARE BRACKET???????????????? ?
00014 AD 4A??????????????????????????????????????????????????????????????????? ?
00015 * ] (U+005D) RIGHT SQUARE BRACKET? CLOSING SQUARE BRACKET??????????????? ?
00016 BD 4F??????????????????????????????????????????????????????????????????? ?
00017 * | (U+007C) VERTICAL LINE? VERTICAL BAR???????????????????????????????? ?
00018 4F 6A??????????????????????????????????????????????????????????????????? ?
00019 * ? (U+00A1) INVERTED EXCLAMATION MARK?????????????????????????????????? ?
00020 AA 42??????????????????????????????????????????????????????????????????? ?
00021 * ? (U+00A2) CENT SIGN?????????????????????????????????????????????????? ?
02=RingNext 03=Quit 06=SpltJ 07=PgUp 08=PgDw 10=PI 11=ClrCmd 12=Recall???????? ?
Unchanged????????????????????????????????????????????????? ee V1.2.5,? 1 File(s)
3279?????????????????????????????????????????????????????????????????????????? ?


Re: Automatic generation of transcoding tables for IND$FILE #rexx #VMCE

 

While I love REXX & KEDIT, I'd suggest that python will play better on more host platforms (including Linux and MacOS).

No logical not (?)?

-ahd-


Re: Automatic generation of transcoding tables for IND$FILE #rexx #VMCE

 

Hoping it is better to read this way.

File: INDMAP2B IND$MAP? A1? RECFM: V LRECL: 125(125) Lines:?? 395 Current:??? 11
===>

00000 * * * Top of file * * *
00001 *
00002 * IND$MAP transcoding table for the IND$FILE file transfer utility, part
00003 * of the MECAFF tool suite packaged with the VM/370 Community Edition
00004 *
00005 * Generated 2022-09-07 20:56:24 by INDmap, a free program
00006 * governed by the??? GNU Affero General Public License
00007 * version 3 or later (GNU AGPLv3, SPDX AGPL-3.0-or-later)
00008 * Tools used: KEXX 5.62 KEDIT/WINDOWS 1.6.1 NOV 14 2012
00009 * Data used: character names of (U+0000) to (U+00FF) from
00010 * https://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt
00011 *
00012 *
00013 * [ (U+005B) LEFT SQUARE BRACKET? OPENING SQUARE BRACKET
00014 AD 4A
00015 * ] (U+005D) RIGHT SQUARE BRACKET? CLOSING SQUARE BRACKET
00016 BD 4F
00017 * | (U+007C) VERTICAL LINE? VERTICAL BAR
00018 4F 6A
00019 * ? (U+00A1) INVERTED EXCLAMATION MARK
00020 AA 42
00021 * ? (U+00A2) CENT SIGN
02=RingNext 03=Quit 06=SpltJ 07=PgUp 08=PgDw 10=PI 11=ClrCmd 12=Recall
Unchanged????????????????????????????????????????????????? ee V1.2.5,? 1 File(s)
3279???????????????????????????????????????????????????????????????????????????


Automatic generation of transcoding tables for IND$FILE #rexx #VMCE

 

?I am working on a small REXX program to generate transcoding tables for IND$FILE. It reads two copies of EBCDIC MEMO and writes an IND$MAP file ready for use. I am using the ZOC terminal emulator and the EBCDIC code page is set to 1047. This program does already perform real work, but actually it needs KEDIT for Windows to run. I intend to make it run under ooRexx and Regina as well.
The screen scrap below shows *real* output, and the characters (e.g. square brackets) in the comment lines are displayed correctly because I have copied a previously transferred version to DEFAULT IND$MAP A1.

File: INDMAP2B IND$MAP? A1? RECFM: V LRECL: 125(125) Lines:?? 395 Current:??? 11

===>?????????????????????????????????????????????????????????????????????????? ?
?????????????????????????????????????????????????????????????????????????????? ?
00000 * * * Top of file * * *????????????????????????????????????????????????? ?
00001 *??????????????????????????????????????????????????????????????????????? ?
00002 * IND$MAP transcoding table for the IND$FILE file transfer utility, part ?
00003 * of the MECAFF tool suite packaged with the VM/370 Community Edition??? ?
00004 *??????????????????????????????????????????????????????????????????????? ?
00005 * Generated 2022-09-07 20:56:24 by INDmap, a free program??????????????? ?
00006 * governed by the??? GNU Affero General Public License?????????????????? ?
00007 * version 3 or later (GNU AGPLv3, SPDX AGPL-3.0-or-later)??????????????? ?
00008 * Tools used: KEXX 5.62 KEDIT/WINDOWS 1.6.1 NOV 14 2012????????????????? ?
00009 * Data used: character names of (U+0000) to (U+00FF) from??????????????? ?
00010 * https://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt????????? ?
00011 *??????????????????????????????????????????????????????????????????????? ?
00012 *??????????????????????????????????????????????????????????????????????? ?
00013 * [ (U+005B) LEFT SQUARE BRACKET? OPENING SQUARE BRACKET???????????????? ?
00014 AD 4A??????????????????????????????????????????????????????????????????? ?
00015 * ] (U+005D) RIGHT SQUARE BRACKET? CLOSING SQUARE BRACKET??????????????? ?
00016 BD 4F??????????????????????????????????????????????????????????????????? ?
00017 * | (U+007C) VERTICAL LINE? VERTICAL BAR???????????????????????????????? ?
00018 4F 6A??????????????????????????????????????????????????????????????????? ?
00019 * ? (U+00A1) INVERTED EXCLAMATION MARK?????????????????????????????????? ?
00020 AA 42??????????????????????????????????????????????????????????????????? ?
00021 * ? (U+00A2) CENT SIGN?????????????????????????????????????????????????? ?
02=RingNext 03=Quit 06=SpltJ 07=PgUp 08=PgDw 10=PI 11=ClrCmd 12=Recall???????? ?
Unchanged????????????????????????????????????????????????? ee V1.2.5,? 1 File(s)
3279?????????????????????????????????????????????????????????????????????????? ?


Re: HELP vsus FSHELP

 

I remember VM/SP Release 1 on a 4341 in 1982. HELP was nothing else but XEDIT in disguise, wrapped into a huge XEDIT macro written in EXEC 2. I found out by myself how to cheat the command filter by something like "LOCATE 0 <any desired XEDIT subcommand>". This macro was ported to REXX in VM/SP Release 3.


Re: Accessing the Hercules Console from a web Browser

 

Edward lott wrote:

OK adding the HTTPPORT 8081 line works. In reading the
configuration file I thought that 1.) port 8081 was the
default
AFAIK, there is no default. The port number must be specified on the HTTPPORT configuration file statement itself. And as Dave pointed out, that particular statement was commented out. Thus, the Hercules HTTP Server was never started. It is the existence of the HTTPPORT statement in your configuration file that triggers the Hercules HTTP Server to start. Without it, the server will never start.


and 2.) the HTTP PORT ${HTTPPORT:=8081} line was
what enabled it.
That's a Hercules v4.x Hyperion configuration file statement, *not* a Hercules v3.x configuration file statement.

Originally, Hercules supported two "http" statements: HTTPPORT and HTTPROOT:

*

and, as just explained, it is the existence of the HTTPPORT statement which triggers the server to start.

Starting with Hercules 4.0 however, both statements were deprecated and replaced with the "HTTP" statement instead:

*

Now, with Hercules 4.x, you specify all HTTP Server configuration values via the "HTTP" statement. One specifying the server's root directory ("HTTP ROOT directory") and the other specifying the port number the server should listen for connections on ("HTTP PORT nnnn ...").

But even then (even with *both* statements specified), with Hercules 4.x, the server will not automatically start. To start the Hercules HTTP Server, with Hercules 4.x, you have to *explicitly* specify that you *want* it to be started, via either the "HTTP START" configuration file statement, or the "http start" command:

*


So in summary, the "HTTPPORT" statement is a Hercules 3.x statement, whereas the "HTTP PORT" statement is a Hercules 4.x statement, which requires a separate "http start" command (or configuration file statement).

Hope that helps!


I learn something new every day.
Indeed. The day I myself stop learning new things is the day I've died and gone to my grave. :)

--
"Fish" (David B. Trout)
Software Development Laboratories

mail: fish@...


Re: Accessing the Hercules Console from a web Browser

 

¿ªÔÆÌåÓý

Dave:

??? OK adding the HTTPPORT 8081 line works. In reading the configuration file I thought that 1.) port 8081 was the default and 2.) the HTTP PORT ${HTTPPORT:=8081} line was what enabled it. I learn something new every day.

Regards:

Ed.

# HTTP Configuration for Hercules V4.x
# ============================================================================
# ----------------------------------------------------------------------------
# Identify the port to find the the Operator Console.
# Ensure you have allowed access to this port via iptables, or firewalld.
# Default is 8081.
# ----------------------------------------------------------------------------
HTTP PORT ${HTTPPORT:=8081}

HTTPPORT 8081

Ed..

================================================

On 8/14/2022 2:02 PM, Dave Wade wrote:

Ed,

That¡¯s disabled by default. You need to remove the ¡°#¡± from the config line ?

?

#HTTPPORT?????? 8081

?

Dave

?



Re: Accessing the Hercules Console from a web Browser

 

¿ªÔÆÌåÓý

Ed,

That¡¯s disabled by default. You need to remove the ¡°#¡± from the config line ?

?

#HTTPPORT?????? 8081

?

Dave

?

From: [email protected] <[email protected]> On Behalf Of Edward lott
Sent: 14 August 2022 19:15
To: [email protected]
Subject: Re: [h390-vm] Accessing the Hercules Console from a web Browser

?

I am running Hercules R3.13 and VMCE-V1.1.2 on a Windows 11 computer (i.p. address 192.168.15.61) and would like to access the Hercules Console from my Web Browser (firefox) on that machine. I enter in the browser and the connection simply times out. I have entered the netstat -a command (see below) and it does not appear that anything is listening on port 8081. Can anyone give me some insight into what is or isn't happening.

Ed.

C:\windows\system32>netstat -a

Active Connections

? Proto? Local Address????????? Foreign Address??????? State
? TCP??? 0.0.0.0:135??????????? JOHN-52-2:0??????????? LISTENING
? TCP??? 0.0.0.0:445??????????? JOHN-52-2:0??????????? LISTENING
? TCP??? 0.0.0.0:3270?????????? JOHN-52-2:0??????????? LISTENING
? TCP??? 0.0.0.0:3389?????????? JOHN-52-2:0??????????? LISTENING
? TCP??? 0.0.0.0:5040?????????? JOHN-52-2:0??????????? LISTENING
? TCP??? 0.0.0.0:7680?????????? JOHN-52-2:0??????????? LISTENING
? TCP??? 0.0.0.0:17500????????? JOHN-52-2:0??????????? LISTENING
? TCP??? 0.0.0.0:30883????????? JOHN-52-2:0??????????? LISTENING
? TCP??? 0.0.0.0:49664????????? JOHN-52-2:0??????????? LISTENING
? TCP??? 0.0.0.0:49665????????? JOHN-52-2:0??????????? LISTENING
? TCP??? 0.0.0.0:49666????????? JOHN-52-2:0??????????? LISTENING
? TCP??? 0.0.0.0:49667????????? JOHN-52-2:0??????????? LISTENING
? TCP??? 0.0.0.0:49668????????? JOHN-52-2:0??????????? LISTENING
? TCP??? 0.0.0.0:49669????????? JOHN-52-2:0??????????? LISTENING
? TCP??? 0.0.0.0:49670????????? JOHN-52-2:0??????????? LISTENING
? TCP??? 0.0.0.0:49671????????? JOHN-52-2:0??????????? LISTENING
? TCP??? 127.0.0.1:843????????? JOHN-52-2:0??????????? LISTENING
? TCP??? 127.0.0.1:2759???????? JOHN-52-2:2760???????? ESTABLISHED
? TCP??? 127.0.0.1:2760???????? JOHN-52-2:2759???????? ESTABLISHED
? TCP??? 127.0.0.1:2761???????? JOHN-52-2:2762???????? ESTABLISHED
? TCP??? 127.0.0.1:2762???????? JOHN-52-2:2761???????? ESTABLISHED
? TCP??? 127.0.0.1:2763???????? JOHN-52-2:2764???????? ESTABLISHED
? TCP??? 127.0.0.1:2764???????? JOHN-52-2:2763???????? ESTABLISHED
? TCP??? 127.0.0.1:2765???????? JOHN-52-2:3270???????? ESTABLISHED
? TCP??? 127.0.0.1:2766???????? JOHN-52-2:3270???????? ESTABLISHED
? TCP??? 127.0.0.1:3270???????? JOHN-52-2:2765???????? ESTABLISHED
? TCP??? 127.0.0.1:3270???????? JOHN-52-2:2766???????? ESTABLISHED
? TCP??? 127.0.0.1:17600??????? JOHN-52-2:0??????????? LISTENING
? TCP??? 127.0.0.1:49737??????? JOHN-52-2:49738??????? ESTABLISHED
? TCP??? 127.0.0.1:49738??????? JOHN-52-2:49737??????? ESTABLISHED
? TCP??? 127.0.0.1:49740??????? JOHN-52-2:49741??????? ESTABLISHED
? TCP??? 127.0.0.1:49741??????? JOHN-52-2:49740??????? ESTABLISHED
? TCP??? 192.168.15.61:139????? JOHN-52-2:0??????????? LISTENING
? TCP??? 192.168.15.61:1064???? 13.64.180.106:https??? ESTABLISHED
? TCP??? 192.168.15.61:2011???? 123:https????????????? TIME_WAIT
? TCP??? 192.168.15.61:2123???? ec2-3-211-126-36:https? TIME_WAIT
? TCP??? 192.168.15.61:2127???? server-13-35-105-97:https? TIME_WAIT
? TCP??? 192.168.15.61:2147???? yq-in-f156:https?????? TIME_WAIT
? TCP??? 192.168.15.61:2238???? ec2-54-158-114-97:https? TIME_WAIT
? TCP??? 192.168.15.61:2244???? 150-232-115-208:https? TIME_WAIT
? TCP??? 192.168.15.61:2251???? ec2-18-211-164-150:https? TIME_WAIT
? TCP??? 192.168.15.61:2287???? ec2-35-174-179-18:https? TIME_WAIT
? TCP??? 192.168.15.61:2372???? ec2-44-196-88-208:https? TIME_WAIT
? TCP??? 192.168.15.61:2646???? 162.125.35.134:https?? ESTABLISHED
? TCP??? 192.168.15.61:2784???? 162.125.36.2:https???? ESTABLISHED
? TCP??? 192.168.15.61:2801???? 152.199.24.163:https?? CLOSE_WAIT
? TCP??? 192.168.15.61:2803???? yr-in-f95:https??????? TIME_WAIT
? TCP??? 192.168.15.61:2806???? yx-in-f155:https?????? TIME_WAIT
? TCP??? 192.168.15.61:2815???? server-216-137-45-77:https? TIME_WAIT
? TCP??? 192.168.15.61:2817???? 20.44.10.123:https???? TIME_WAIT
? TCP??? 192.168.15.61:2820???? 20.42.73.24:https????? ESTABLISHED
? TCP??? 192.168.15.61:2821???? 20.42.73.24:https????? ESTABLISHED
? TCP??? 192.168.15.61:2824???? atl26s29-in-f6:https?? TIME_WAIT
? TCP??? 192.168.15.61:2829???? 8:https??????????????? TIME_WAIT
? TCP??? 192.168.15.61:2833???? 52.168.117.169:https?? TIME_WAIT