Before ReSource/Recovery
{Examples Page}
Click For COBOL Example
Click For COBOL Example
After ReSource/Recovery
DEMO CSECT USING DEMO,R15 SAVE (14,12),,'SAVE REGISTERS' LR R12,R15 DROP R15 USING DEMO,R12 ST R13,SAVEAREA+4 LA R13,SAVEAREA OPEN (INFILE,INPUT) OPEN (OUTFILE,OUTPUT) OPEN (PRTFILE,OUTPUT) MAINLOOP GET INFILE,INAREA READ A RECORD AP CTR,=P'1' PUT OUTFILE,INAREA WRITE RECORD B MAINLOOP * EODAD DS 0H MVI PRTAREA,C'1' SET UP PRINT LINE AND PRINT MVC PRTAREA+10(13),=CL13'DEMO PROGRAM.' MVC PRTAREA+30(34),=CL34'NUMBER OF OUTPUT RECORDS WRITTEN =' MVC PRTAREA+64(10),EDITCTR ED PRTAREA+64(10),CTR PUT PRTFILE,PRTAREA * WTO 'IT''S THE ELEVENTH HOUR. DO YOU KNOW WHERE YOUR SOURCE * CODE IS?' * CLOSE (INFILE,REWIND) CLOSE (OUTFILE) CLOSE (PRTFILE) EXIT0 SLR R15,R15 EXITWRC RETURN (14,12),T,RC=(15) EXIT WITH RETURN CODE * INFILE DCB DDNAME=TAPE, DEFINE THE INPUT FILE * DSORG=PS, * EODAD=EODAD, * RECFM=FB, * LRECL=100, * MACRF=GM OUTFILE DCB DDNAME=DISK, DEFINE THE OUTPUT FILE * DSORG=PS, * RECFM=FB, * LRECL=100, * MACRF=PM PRTFILE DCB DDNAME=PRINT, DEFINE THE PRINT FILE * DSORG=PS, * RECFM=FBA, * LRECL=133, * MACRF=PM * SAVEAREA DC 18F'0' CONSTANTS AND WORKAREAS INAREA DS CL100 PRTAREA DC CL133' ' CTR DC PL4'0' EDITCTR DC X'40206B2020206B202120' * R0 EQU 0 REGISTER EQUATES R1 EQU 1 R2 EQU 2 R3 EQU 3 R4 EQU 4 R5 EQU 5 R6 EQU 6 R7 EQU 7 R8 EQU 8 R9 EQU 9 R10 EQU 10 R11 EQU 11 R12 EQU 12 R13 EQU 13 R14 EQU 14 R15 EQU 15 END
DEMO CSECT 00000000 *********************************************************************** ** * ** RECOVERED BY RESOURCE: (C) * ** * ** SOURCE RECOVERY DATE: JUNE 23, 1998 * ** ORIGINAL COMPILE DATE: 06/23/98 * ** * ** THE ORIGINAL MACRO LIBRARY USED WAS MVS/ESA * ** * ** NOTES: * ** * *********************************************************************** PRINT DATA 00000000 R0 EQU 0 R1 EQU 1 R2 EQU 2 R3 EQU 3 R4 EQU 4 R5 EQU 5 R6 EQU 6 R7 EQU 7 R8 EQU 8 R9 EQU 9 R10 EQU 10 R11 EQU 11 R12 EQU 12 R13 EQU 13 R14 EQU 14 R15 EQU 15 SAVE (14,12), SAVE REGISTERS 14 THROUGH 12 *00000000 , SAVE REGISTERS R14/R15 NORMALLY * 'SAVE REGISTERS' PROGRAM IDENTIFIER/EYECATCHER LR R12,R15 18CF 00000018 USING DEMO,R12 0000001A ST R13,PGM0023C 50D0 C23C 0000001A LA R13,PGM00238 41D0 C238 0000001E * OPEN A FILE OPEN (DCB1,(INPUT)), DDNAME=TAPE *00000024 MF=I MACRO FORMAT=INSTREAM PLIST * OPEN A FILE OPEN (DCB2,(OUTPUT)), DDNAME=DISK *00000030 MF=I MACRO FORMAT=INSTREAM PLIST * OPEN A FILE OPEN (DCB3,(OUTPUT)), DDNAME=PRINT *0000003C MF=I MACRO FORMAT=INSTREAM PLIST * READ RECORDS FROM A DATA FILE PGM00046 GET DCB1, READ USING DDNAME=TAPE *00000046 PGM00280 PGM00280 IS THE I/O BUFFER AP PGM00369,PGM0039A FA30 C369 C39A 00000056 * WRITE RECORDS TO A DATA FILE PUT DCB2, WRITE USING DDNAME=DISK *0000005C PGM00280 PGM00280 IS THE I/O BUFFER B PGM00046 47F0 C046 0000006C PGM00070 DS 0H 00000070 MVI PGM002E4,C'1' 92F1 C2E4 00000070 MVC PGM002EE,PGM0039B D20C C2EE C39B 00000074 MVC PGM00302,PGM00378 D221 C302 C378 0000007A MVC PGM00324,PGM0036D D209 C324 C36D 00000080 ED PGM00324,PGM00369 DE09 C324 C369 00000086 * WRITE RECORDS TO A DATA FILE PUT DCB3, WRITE USING DDNAME=PRINT *0000008C PGM002E4 PGM002E4 IS THE I/O BUFFER * DISPLAY A MESSAGE ON AN OPERATOR'S CONSOLE WTO ('IT''S THE ELEVENTH HOUR. DO YOU KNOW WHERE YOUR SOURCE*0000009C CODE IS?') TEXT TO DISPLAY * CLOSE A FILE CLOSE (DCB1,REWIND), DDNAME=TAPE *000000E4 MF=I MACRO FORMAT=INSTREAM PLIST * CLOSE A FILE CLOSE (DCB2,), DDNAME=DISK *000000F0 MF=I MACRO FORMAT=INSTREAM PLIST * CLOSE A FILE CLOSE (DCB3,), DDNAME=PRINT *000000FC MF=I MACRO FORMAT=INSTREAM PLIST SLR R15,R15 1FFF 00000106 RETURN (14,12), RESTORE REGS AND RETURN TO THE CALLER*00000108 T, MARK THE SAVE AREA NO LONGER IN USE * RC=(15) EXIT WITH RETURN CODE THAT'S IN R15 *** P R E V I O U S M A C R O R E T U R N S T O C A L L E R *** DC H'0' 00000116 * DEFINE AN INPUT FILE'S DATA CONTROL BLOCK DCB1 DCB DDNAME=TAPE, DCB LENGTH=96 (X'60') *00000118 DSORG=PS, DATA SET ORG=PHYSICAL SEQUENTIAL * EODAD=PGM00070, END OF DATA ADDRESS * LRECL=100, LOGICAL RECORD LENGTH * RECFM=FB, RECORD FORMAT=FIXED, BLOCKED * MACRF=GM MACRO FORMAT=GET MOVE * DEFINE AN OUTPUT FILE'S DATA CONTROL BLOCK DCB2 DCB DDNAME=DISK, DCB LENGTH=96 (X'60') *00000178 DSORG=PS, DATA SET ORG=PHYSICAL SEQUENTIAL * LRECL=100, LOGICAL RECORD LENGTH * RECFM=FB, RECORD FORMAT=FIXED, BLOCKED * MACRF=PM MACRO FORMAT=PUT MOVE * DEFINE AN OUTPUT FILE'S DATA CONTROL BLOCK DCB3 DCB DDNAME=PRINT, DCB LENGTH=96 (X'60') *000001D8 DSORG=PS, DATA SET ORG=PHYSICAL SEQUENTIAL * LRECL=133, LOGICAL RECORD LENGTH * RECFM=FBA, RECORD FORMAT=FIXED, BLOCKED, ASA CAR* MACRF=PM MACRO FORMAT=PUT MOVE PGM00238 DC F'0' 00000238 PGM0023C DC 3F'0' 0000023C DC XL56'00' 00000248 PGM00280 DC XL100'00' 00000280 PGM002E4 DC CL10' ' 000002E4 PGM002EE DC CL13' ' 000002EE DC CL7' ' 000002FB PGM00302 DC CL34' ' 00000302 PGM00324 DC CL10' ' 00000324 DC CL59' ' 0000032E PGM00369 DC PL4'0' 0000000C 00000369 PGM0036D DC X'40206B2020206B202120' 40206B202020 0000036D DC X'00' 00000377 PGM00378 DC C'NUMBER OF OUTPUT RECORDS WRITTEN =' D5E4D4C2C5D9 00000378 PGM0039A DC PL1'1' 1C 0000039A PGM0039B DC C'DEMO PROGRAM.' C4C5D4D640D7 0000039B LTORG , PUT LITERAL POOL HERE 0000039B END 0000039B