PUNCH 'CATALOG TRANS.OBJ R=Y' TRANS START 0 ********************************************************************** * This Subprogram Translates a String From/To ASCII/EBCDIC. * * * * Input: CL1 A - Translate from EBCDIC To ASCII. * * E - Translate from ASCII To EBCDIC. * * Input: CL1 Flag (G)ood or (B)ad. * * Input: H Length of string to translate * * Input: CL? String to translate * * * * Programmer: Bill Blasingim * * Written : December 13, 1995 * ********************************************************************** PRINT NOGEN SAVE (14,12) START BALR 12,0 USING *,12 ST R13,SAVEAREA+4 LA R13,SAVEAREA LM R4,R7,0(1) * R4 = TO (A)SCII, TO (E)BCDIC * R5 = (G)OOD OR (B)AD * R6 = LENGTH TO STRING * R7 = ADDRESS OF STRING TO TRANSLATE * LH R8,0(0,R6) STRING LENGTH MVI 0(R5),C'G' ASSUME GOOD CLI 0(R4),C'A' ASCII BNE NOTASCII EX R8,TRANA B GOBACK NOTASCII EQU * CLI 0(R4),C'E' EBCDIC BNE BADNUM EX R8,TRANE GOBACK L R13,SAVEAREA+4 RETURN (14,12) BADNUM EQU * MVI 0(R5),C'B' BAD B GOBACK TRANA TR 0(0,R7),TOASCII TRANE TR 0(0,R7),TOEBCDIC ********************************************************************** * * * S T O R A G E A R E A * * * ********************************************************************** DS 0D TR SOURCE,TOASCII TOASCII DS 0CL255 DC XL20'00010203200920202020200B0C0D0E0F10111213' 000-019 DC XL20'20200820181920202020202020201C20200A171B' 020-039 DC XL20'2020202020050607202016202020200420202020' 040-059 DC XL20'2D21201A20202020202020202020202E3C282B20' 060-079 DC XL20'2620202020202020202021242A293B5E2D2F2020' 080-099 DC XL20'2020202020207C2C255F3E3F2020202020202020' 100-119 DC XL20'20603A2340273D22206162636465666768692020' 120-139 DC XL20'20202020206A6B6C6D6E6F707172202020202020' 140-159 DC XL20'207E737475767778797A20202020202020202020' 160-179 DC XL20'2020202020202020202020207B41424344454647' 180-199 DC XL20'48492020202020207D4A4B4C4D4E4F5051522020' 200-219 DC XL20'202020205C20535455565758595A202020202020' 220-239 DC XL20'30313233343536373839202020202020' 240-255 TOEBCDIC DS 0CL255 DC XL20'00010203372D2E2F1605250B0C0D0E0F10111213' 000-019 DC XL20'3C3D322618193F2722403540405A7F7B5B6C507D' 020-039 DC XL20'4D5D5C4E6B604B61F0F1F2F3F4F5F6F7F8F97A5E' 040-059 DC XL20'4C7E6E6F7CC1C2C3C4C5C6C7C8C9D1D2D3D4D5D6' 060-079 DC XL20'D7D8D9E2E3E4E5E6E7E8E94DE05D5F6D79818283' 080-099 DC XL20'848586878889919293949596979899A2A3A4A5A6' 100-119 DC XL20'A7A8A9C06AD0A107404040404040404040404040' 120-139 DC XL20'4040404040404040404040404040404040404040' 140-159 DC XL20'4040404040404040404040404040404040404040' 160-169 DC XL20'4040404040404040404040404040404040404040' 180-179 DC XL20'4040404040404040404040404040404040404040' 200-219 DC XL20'4040404040404040404040404040404040404040' 220-239 DC XL20'40404040404040404040404040404040' 240-255 SAVEAREA DS 9D REGEQU END START