Sample Program: Using Binary Instructions

*
* SAMPLE PROGRAM USING BINARY
* CSC233
*
BINARY   START
         SAVE  (14,12)
         BALR  12,0
         USING *,12
         OPEN  BINFILE                   OPEN FILES
         OPEN  BOUTFILE,OUTPUT
         GET   BINFILE,INREC             READ RECORD FROM INPUT
         PACK  PNUM1,INNUM1              PACK THE THREE INPUT
         PACK  PNUM2,INNUM2                  FIELDS
         PACK  PNUM3,INNUM3
         MVC   OUTNUM1,INNUM1            COPY THE THREE INPUT
         MVC   OUTNUM2,INNUM2                FIELDS TO THE
         MVC   OUTNUM3,INNUM3                    OUTPUT RECORD
         CVB   2,PNUM1                   CONVERT 1ST FIELD TO BIN
         CVB   3,PNUM2                   CONVERT 2ND FIELD TO BIN
         AR    2,3                       ADD FIRST TWO FIELDS
         S     2,BNUM                    SUBTRACT BNUM FROM RESULT
         CVD   2,PRES                    CONVERT RESULT TO DEC
         UNPK  RESULT,PRES                   THEN BIN, AND PUT IT
         OI    RESULT+4,X'F0'                    IN OUTPUT REC
         PUT   BOUTFILE,OUTREC           WRITE OUTPUT REC
EOF      CLOSE BINFILE                   CLOSE FILES AND EXIT
         CLOSE BOUTFILE
         RETURN (14,12),,0
*
* ERROR HANDLING FOR INPUT ERROR
*
INERR    WTO   'INPUT FILE BINDATIN NOT FOUND'
         RETURN (14,12),,RC=1
*
* ERROR HANDLING FOR OUTPUT ERROR
*
OUTERR   WTO   'I/O ERROR ON OUTPUT FILE BINOUT'
         RETURN (14,12),,RC=2
*
* INPUT FILE
*
BINFILE  DCB   LRECL=80,RECFM=F,MACRF=G,EODAD=EOF,SYNAD=INERR,         X
               DDNAME=BINDATIN.DAT
*
* OUTPUT FILE
*
BOUTFILE DCB   LRECL=133,RECFM=F,MACRF=P,SYNAD=OUTERR,DDNAME=BINOUT
*
* DATA AREAS
*
INREC    DS    0CL80
INNUM1   DS    CL5
INNUM2   DS    CL5
INNUM3   DS    CL5
         DS    CL65
*
OUTREC   DS    0CL133
         DS    CL5
OUTNUM1  DS    CL5
         DS    CL5
OUTNUM2  DS    CL5
         DS    CL5
OUTNUM3  DS    CL5
         DS    CL5
RESULT   DS    CL5
*
PNUM1    DS    D
PNUM2    DS    D
PNUM3    DS    D
PRES     DS    D
BNUM     DC    F'5'
BRES     DS    F
         END

Input Data:

005000008000001

Output Data:

     00500     00080     00001     00575

Email Me | Office Hours | My Home Page | Department Home | MCC Home Page

© Copyright Emmi Schatz 2003