HEX      TITLE 'CONVERT OBJECT DECKS TO HEX FOR NETWORK TRANSMISSION'
HEX      CSECT
         STM   14,12,12(13)            SAVE REGISTERS
         BALR  12,0                    LOAD BASE REGISTER
         USING *,12
         ST    13,SAVE+4               CHAIN SAVE AREAS
         LA    13,SAVE
         L     11,0(,1)                POINTER TO PARM FIELD
         LH    11,0(,11)               LENGTH OF PARM FIELD
         OPEN  (INPUT,(INPUT),OUTPUT,(OUTPUT))  OPEN DATA SETS
READ     GET   INPUT,INCARD            READ A CARD
         CLC   INCARD(2),=C'./'        IEBUPDTE CONTROL CARD?
         BE    ONECARD
         LTR   11,11                   WAS PARM FIELD SPECIFIED?
         BZ    DOCARD                  BR IF NOT
         CLC   INCARD(4),=AL1(X'02',C'S',C'Y',C'M')  SYM CARD
         BE    READ                    SKIP IT IF SO
DOCARD   LA    2,INCARD                SET UP HEX CONVERSION LOOP
         LA    3,OUTCARD
         LA    4,80/4
DOHEX    UNPK  0(9,3),0(5,2)           CONVERT 4 BYTES TO HEX
         LA    2,4(,2)
         LA    3,8(,3)
         BCT   4,DOHEX
         TR    OUTCARD(160),HEXTBL-C'0'  CONVERT TO PRINTABLE CHARS
         PUT   OUTPUT,OUTCARD          WRITE HEXED CARD AS 2 RECORDS
         PUT   OUTPUT,OUTCARD+80
         B     READ
*
ONECARD  PUT   OUTPUT,INCARD           COPY CARD TO OUTPUT
         B     READ
*
EOF      CLOSE (INPUT,,OUTPUT)         CLOSE DATA SETS
         L     13,SAVE+4               RESTORE SAVE AREA
         LM    14,12,12(13)            RESTORE REGISTERS
         SR    15,15                   SET RETURN CODE
         BR    14
         EJECT
SAVE     DC    18A(0)                  SAVE AREA
INCARD   DC    CL80' '                 INPUT CARD AREA
OUTCARD  DC    CL161' '                OUTPUT CARD AREA
HEXTBL   DC    C'0123456789ABCDEF'     HEX TRANSLATE TABLE
*
INPUT    DCB   DDNAME=INPUT,DSORG=PS,MACRF=(GM),RECFM=FB,LRECL=80,     *
               EODAD=EOF
*
OUTPUT   DCB   DDNAME=OUTPUT,DSORG=PS,MACRF=(PM),RECFM=FB,LRECL=80
         END
