++USERMOD(ZP60029) /* XLATE TRANSLATE TABLES */ . ++VER(Z038) FMID(EDM1102) PRE(UZ54016) /* PROBLEM DESCRIPTION: MVS TRANSLATION BETWEEN EBCDIC AND ASCII IS INADEQUATE. CHARACTER SET TRANSLATION BETWEEN EBCDIC AND ASCII CAN BE REQUESTED BY THE XLATE MACRO (SVC 103) WHICH IS USED BY THE SYSTEM WHEN PROCESSING ASCII TAPE LABLES AND WHEN OPTCD=Q IS SET IN THE DCB FOR ASCII TAPE PROCESSING. THE EBCDIC-TO-ASCII AND ASCII-TO-EBCDIC TRANSLATE TABLES ARE HARD-CODED IN SVC 103, BUT THEY TREAT ASCII AS A 7-BIT CHARACTER SET WITH ONLY 128 CODE POINTS. THIS IS INADEQUATE FOR MOST CURRENT PROCESSING NEEDS WHERE ANSI IS USUALLY USED. ANSI IS BASED ON ASCII BUT HAS 256 SINGLE-BYTE CODE POINTS (AS DOES EBCDIC). WHEN CONSTRUCTING TRANSLATE TABLES BETWEEN THE TWO CHARACTER SETS, ONE DESIGN GOAL NORMALLY ADOPTED IS THAT THE APPLICATION OF BOTH TRANSLATE TABLES (IN EITHER ORDER) WILL LEAVE ALL POSSIBLE 256 CODE POINTS UNCHANGED. SPECIAL CONDITIONS: ACTION: A "CLPA" MUST BE PERFORMED AT IPL TIME FOR THIS SYSMOD TO BECOME ACTIVE. COMMENTS: PRYCROFT SIX P/L PUBLIC DOMAIN USERMOD FOR MVS 3.8 NO. 29. THE FOLLOWING MODULES AND/OR MACROS ARE AFFECTED BY THIS USERMOD: MODULES: IGC0010C THE ORIGINAL SOURCE CODE OF THE TRANSLATE TABLES IS INCLUDED BELOW. NOTE THAT X'1A' IS THE ASCII SUBSTITUTE CHARACTER, AND X'3F' IS THE EBCDIC SUBSTITUTE CHARACTER. * * TABLE FOR TRANSLATING FROM EBCDIC TO ASCII * TABA DC X'000102031A091A7F' ASCII TABLE ENT080FA DC X'1A1A1A0B0C0D0E0F' * ENT1017A DC X'101112131A1A081A' * ENT181FA DC X'18191A1A1C1D1E1F' * ENT2027A DC X'1A1A1A1A1A0A171B' * ENT282FA DC X'1A1A1A1A1A050607' * ENT3037A DC X'1A1A161A1A1A1A04' * ENT383FA DC X'1A1A1A1A14151A1A' * ENT4047A DC X'201A1A1A1A1A1A1A' * ENT484FA DC X'1A1A5B2E3C282B21' * ENT5057A DC X'261A1A1A1A1A1A1A' * ENT585FA DC X'1A1A5D242A293B5E' * ENT6067A DC X'2D2F1A1A1A1A1A1A' * ENT686FA DC X'1A1A7C2C255F3E3F' * ENT7077A DC X'1A1A1A1A1A1A1A1A' * ENT787FA DC X'1A603A2340273D22' * ENT8087A DC X'1A61626364656667' * ENT888FA DC X'68691A1A1A1A1A1A' * ENT9097A DC X'1A6A6B6C6D6E6F70' * ENT989FA DC X'71721A1A1A1A1A1A' * ENTA0A7A DC X'1A7E737475767778' * ENTA8AFA DC X'797A1A1A1A1A1A1A' * ENTB0B7A DC X'1A1A1A1A1A1A1A1A' * ENTB8BFA DC X'1A1A1A1A1A1A1A1A' * ENTC0C7A DC X'7B41424344454647' * ENTC8CFA DC X'48491A1A1A1A1A1A' * ENTD0D7A DC X'7D4A4B4C4D4E4F50' * ENTD8DFA DC X'51521A1A1A1A1A1A' * ENTE0E7A DC X'5C1A535455565758' * ENTE8EFA DC X'595A1A1A1A1A1A1A' * ENTF0F7A DC X'3031323334353637' * ENTF8FFA DC X'38391A1A1A1A1A1A' * * * TABLE FOR TRANSLATING FROM ASCII TO EBCDIC * TABE DC X'00010203372D2E2F' EBCDIC TABLE ENT080FE DC X'1605250B0C0D0E0F' * ENT1017E DC X'101112133C3D3226' * ENT181FE DC X'18193F271C1D1E1F' * ENT2027E DC X'404F7F7B5B6C507D' * ENT282FE DC X'4D5D5C4E6B604B61' * ENT3037E DC X'F0F1F2F3F4F5F6F7' * ENT383FE DC X'F8F97A5E4C7E6E6F' * ENT4047E DC X'7CC1C2C3C4C5C6C7' * ENT484FE DC X'C8C9D1D2D3D4D5D6' * ENT5057E DC X'D7D8D9E2E3E4E5E6' * ENT585FE DC X'E7E8E9ADE0BD5F6D' * ENT6067E DC X'7981828384858687' * ENT686FE DC X'8889919293949596' * ENT7077E DC X'979899A2A3A4A5A6' * ENT787FE DC X'A7A8A9C06AD0A107' * ENT8087E DC X'3F3F3F3F3F3F3F3F' * ENT888FE DC X'3F3F3F3F3F3F3F3F' * ENT9097E DC X'3F3F3F3F3F3F3F3F' * ENT989FE DC X'3F3F3F3F3F3F3F3F' * ENTA0A7E DC X'3F3F3F3F3F3F3F3F' * ENTA8AFE DC X'3F3F3F3F3F3F3F3F' * ENTB0B7E DC X'3F3F3F3F3F3F3F3F' * ENTB8BFE DC X'3F3F3F3F3F3F3F3F' * ENTC0C7E DC X'3F3F3F3F3F3F3F3F' * ENTC8CFE DC X'3F3F3F3F3F3F3F3F' * ENTD0D7E DC X'3F3F3F3F3F3F3F3F' * ENTD8DFE DC X'3F3F3F3F3F3F3F3F' * ENTE0E7E DC X'3F3F3F3F3F3F3F3F' * ENTE8EFE DC X'3F3F3F3F3F3F3F3F' * ENTF0F7E DC X'3F3F3F3F3F3F3F3F' * ENTF8FFE DC X'3F3F3F3F3F3F3F3F' * DATA POINTS WHICH ARE EXPECTED TO BE UNCHANGED BY ANY LOCAL CUSTOMIZATION ARE USED TO VERIFY THE LOCATION OF THE TRANSLATE TABLES IN ORDER TO FACILITATE A REAPPLY WITHOUT THE NEED FOR AN ACTUAL RESTORATION OF THE ORIGINAL MODULE. */.