* * EMMI SCHATZ * PACKED DECIMAL EXAMPLE * PACKED CSECT STM 14,12,12(13) SAVE REGISTERS BALR 12,0 LOAD BASE ADDR IN R12 USING *,12 DESIGNATE R12 AS BASE REGISTER OPEN INFILE OPEN INPUT FILE OPEN OUTFILE,OUTPUT OPEN OUTPUT FILE * MVI OUTREC,C' ' MVC OUTREC+1(132),OUTREC CLEAR OUTPUT RECORD PUT OUTFILE,OUTREC WRITE BLANK LINE TO OUTFILE * * READ NUMS, ADD THEM UP * GET INFILE,INREC READ LINE OF INPUT PACK PNUM,NUM1 CONVERT NUM1 TO PACKED ZAP PTOT,PNUM MOVE NUM1 TO TOT PACK PNUM,NUM2 CONVERT NUM2 TO PACKED AP PTOT,PNUM ADD NUM2 TO TOT PACK PNUM,NUM3 CONVERT NUM3 TO PACKED AP PTOT,PNUM ADD NUM3 TO TOT * * OUTPUT NUMS AND TOTAL * MVC NUM1OUT,NUM1 COPY NUM1 TO OUTREC MVC NUM2OUT,NUM2 COPY NUM2 TO OUTREC MVC NUM3OUT,NUM3 COPY NUM3 TO OUTREC UNPK TOTOUT,PTOT CONVERT TOT TO EBCDIC OI TOTOUT+5,X'F0' SET ZONE FOR SIGN PUT OUTFILE,OUTREC WRITE OUTREC TO FILE * EOJ CLOSE INFILE CLOSE INPUT FILE CLOSE OUTFILE CLOSE OUTPUT FILE LM 14,12,12(13) RESTORE REGISTERS RETURN RETURN TO OS * * ERROR MESSAGE AND RETURN FOR I/O ERROR ON INPUT * *INERR WTO 'INPUT FILE NUMIN NOT FOUND' INERR LM 14,12,12(13) RETURN * * ERROR MESSAGE AND RETURN FOR I/O ERROR ON STUDENT OUTPUT * *OUTERR WTO 'I/O ERROR ON OUTPUT FILE NUMOUT' OUTERR LM 14,12,12(13) RETURN * * FILE DESCRIPTION FOR INPUT FILE * INFILE DCB LRECL=80, X RECFM=F, X MACRF=G, X EODAD=EOJ, X SYNAD=INERR, X DDNAME=NUMEB * * FILE DESCRIPTION FOR OUTPUT FILE * OUTFILE DCB LRECL=133,RECFM=F,MACRF=P,SYNAD=OUTERR, X DDNAME=NUMOUT * * DATA AREAS * * * INPUT RECORD * INREC DS 0CL80 NUM1 DS CL5 NUM2 DS CL5 NUM3 DS CL5 DS CL65 * * OUTPUT RECORD * OUTREC DS 0CL133 DS CL6 NUM1OUT DS CL5 DS CL5 NUM2OUT DS CL5 DS CL5 NUM3OUT DS CL5 DS CL5 TOTOUT DS CL6 DS CL91 * PNUM DS PL3 PTOT DS PL4 END
Email Me |
Office Hours |
My Home Page |
Department Home |
MCC Home Page
© Copyright Emmi Schatz 2003