STM R14,R12,12(R13) 00310000 BASR R12,R0 ESTABLISH 00320000 USING *,R12 ADDRESSABILITY 00330000 ST R13,SAVEAREA+4 BACKWARD CHAIN CALLER'S 00340000 LA R13,SAVEAREA ADDRESS OF MY SAVE AREA 00350000 *************************************************** 00360000 * BEGIN THE PROGRAM LOGIC. FIRST OPEN THE INPUT AND OUTPUT 00370000 * 00380000 OPEN (FILEOUT,(OUTPUT)) 00390000 OPEN (FILEIN,(INPUT)) 00400000 GET FILEIN,RECIN GET THE FIRST RECORD, IF THERE 00410000 LA R4,TABLE 00411000 * 00420000 * READ AND PRINT LOOP 00430000 * 00440000 LOOP EQU * 00450000 L R5,0(R0,R4) 00452000 A R4,FACTOR 00453000 MVC RECOUT,RECIN MOVE INPUT RECORD 00460000 PUT FILEOUT,RECOUT PRINT THE RECORD 00470000 GET FILEIN,RECIN GET THE NEXT RECORD 00480000 B LOOP GO BACK AND PROCESS 00490000 * 00500000 * END OF INPUT PROCESSING 00510000 * 00520000 A90END EQU * 00530000 CLOSE (FILEIN) CLOSE THE FILES... 00540000 CLOSE (FILEOUT) 00550000 L R13,SAVEAREA+4 POINT AT OLD SAVE AREA 00560000 LM R14,R12,12(R13) RESTORE THE REGISTERS 00570000 LA R15,0 RETURN CODE = 0 00580000 BR R14 00581000 ****************************************************************** 00590000 * * 00600000 * OUTPUT FILE - DATA CONTROL BLOCK * 00610000 * * 00620000 ****************************************************************** 00630000 FILEOUT DCB DSORG=PS, X00640000 MACRF=(PM), X00650000 DEVD=DA, X00660000 DDNAME=FILEOUT, X00670000 RECFM=FB, X00680000 LRECL=80 00690000 ****************************************************************** 00700000 * * 00710000 * INPUT FILE - DATA CONTROL BLOCK * 00720000 * * 00730000 ****************************************************************** 00740000 FILEIN DCB DSORG=PS, X00750000 MACRF=(GM), X00760000 DEVD=DA, X00770000 DDNAME=FILEIN, X00780000 EODAD=A90END, X00790000 RECFM=FB, X00800000 LRECL=80 00810000 ****************************************************************** 00820000 * 00830000 * INPUT RECORD AREA 00840000 * 00850000 ****************************************************************** 00860000 RECIN DS CL80 00870000 ****************************************************************** 00880000 * 00890000 * OUTPUT RECORD AREA 00900000 * 00910000 ****************************************************************** 00920000 RECOUT DS CL80 PRINT AREA 00930000 ****************************************************************** 00940000 * 00950000 * REGISTER SAVE AREA 00960000 * 00970000 ****************************************************************** 00980000 SAVEAREA DS 18F 00990000 TABLE DS 0F 00991000 FACTOR DC F'1000' 00992000 ****************************************************************** 01000000 * 01010000 * LITERAL POOL - THIS PROGRAM DOES NOT USE LITERALS. 01020000 * 01030000 ****************************************************************** 01040000 LTORG * 01050000 END BOMBSOC4 01060001
SOC7
BOMBSOC7 CSECT 00300004
STM R14,R12,12(R13) 00310000 BASR R12,R0 ESTABLISH 00320000 USING *,R12 ADDRESSABILITY 00330000 ST R13,SAVEAREA+4 BACKWARD CHAIN CALLER'S 00340000 LA R13,SAVEAREA ADDRESS OF MY SAVE AREA 00350000 *************************************************** 00360000 * BEGIN THE PROGRAM LOGIC. FIRST OPEN THE INPUT AND OUTPUT 00370000 * 00380000 OPEN (FILEOUT,(OUTPUT)) 00390000 OPEN (FILEIN,(INPUT)) 00400000 GET FILEIN,RECIN GET THE FIRST RECORD, IF THERE 00410000 * 00420000 * READ AND PRINT LOOP 00430000 * 00440000 LOOP EQU * 00450000 PACK APK,AFIELD PREPARE THE DATA FOR ARITH 00460000 MVC AOUT,EDWD1 00460100 ED AOUT,APK 00460200 PUT FILEOUT,RECOUT PRINT THE RECORD 00470000 AP TOTALPK,APK 00471000 GET FILEIN,RECIN GET THE NEXT RECORD 00480000 B LOOP GO BACK AND PROCESS 00490000 * 00500000 * END OF INPUT PROCESSING 00510000 * 00520000 A90END EQU * 00530000 MVC TOTALO,EDWD1 00531000 ED TOTALO,TOTALPK 00532000 PUT FILEOUT,TOTALLN 00533000 CLOSE (FILEIN) CLOSE THE FILES... 00540000 CLOSE (FILEOUT) 00550000 L R13,SAVEAREA+4 POINT AT OLD SAVE AREA 00560000 LM R14,R12,12(R13) RESTORE THE REGISTERS 00570000 LA R15,0 RETURN CODE = 0 00580000 BR R14 00581002 ****************************************************************** 00590000 * * 00600000 * OUTPUT FILE - DATA CONTROL BLOCK * 00610000 * * 00620000 ****************************************************************** 00630000 FILEOUT DCB DSORG=PS, X00640000 MACRF=(PM), X00650000 DEVD=DA, X00660000 DDNAME=FILEOUT, X00670000 RECFM=FB, X00680000 LRECL=80 00690000 ****************************************************************** 00700000 * * 00710000 * INPUT FILE - DATA CONTROL BLOCK * 00720000 * * 00730000 ****************************************************************** 00740000 FILEIN DCB DSORG=PS, X00750000 MACRF=(GM), X00760000 DEVD=DA, X00770000 DDNAME=FILEIN, X00780000 EODAD=A90END, X00790000 RECFM=FB, X00800000 LRECL=80 00810000 ****************************************************************** 00811000 * 00812000 * MISCELLANEOUS FIELDS 00813000 * 00814000 ****************************************************************** 00815000 TOTALPK DS PL3'0' 00816003 APK DS PL3 00817000 EDWD1 DC X'4020206B20212060' 00818000 ****************************************************************** 00820000 * 00830000 * INPUT RECORD AREA 00840000 * 00850000 ****************************************************************** 00860000 RECIN DS 0CL80 00870000 AFIELD DS ZL5 00871000 DS CL75 00873000 ****************************************************************** 00880000 * 00890000 * OUTPUT RECORD AREAS 00900000 * 00910000 ****************************************************************** 00920000 RECOUT DS 0CL80 PRINT AREA 00930001 AOUT DS CL8 00930101 DS CL72 00930201 TOTALLN DS 0CL80 00931000 TOTALO DS CL8 00932000 DS CL72 00933000 ****************************************************************** 00940000 * 00950000 * REGISTER SAVE AREA 00960000 * 00970000 ****************************************************************** 00980000 SAVEAREA DS 18F 00990000 ****************************************************************** 01000000 * 01010000 * LITERAL POOL - THIS PROGRAM DOES NOT USE LITERALS. 01020000 * 01030000 ****************************************************************** 01040000 * LTORG * 01050000 END BOMBSOC7 01060004
SOC7 PART2
S0C7PRT2 CSECT 00300000
STM R14,R12,12(R13) 00310000 BASR R12,R0 ESTABLISH 00320000 USING *,R12 ADDRESSABILITY 00330000 ST R13,SAVEAREA+4 BACKWARD CHAIN CALLER'S 00340000 LA R13,SAVEAREA ADDRESS OF MY SAVE AREA 00350000 *************************************************** 00360000 * BEGIN THE PROGRAM LOGIC. FIRST OPEN THE INPUT AND OUTPUT 00370000 * 00380000 OPEN (FILEOUT,(OUTPUT)) 00390000 OPEN (FILEIN,(INPUT)) 00400000 GET FILEIN,RECIN GET THE FIRST RECORD, IF THERE 00410000 * 00420000 * READ AND PRINT LOOP 00430000 * 00440000 LOOP EQU * 00450000 PACK APK,AFIELD PREPARE THE DATA FOR ARITH 00460000 PACK BPK,BFIELD PREPARE THE DATA FOR ARITH 00460100 MVC AOUT,EDWD1 00460200 ED AOUT,APK 00460300 MVC BOUT,EDWD1 00460400 ED BOUT,BPK 00460500 PUT FILEOUT,RECOUT PRINT THE RECORD 00460600 ZAP WORKA,APK 00460701 MP WORKA,=PL1'1' 00461002 GET FILEIN,RECIN GET THE NEXT RECORD 00462000 B LOOP GO BACK AND PROCESS 00463000 * 00464000 * END OF INPUT PROCESSING 00465000 * 00466000 A90END EQU * 00467000 MVC TOTALO,EDWD1 00468000 ED TOTALO,TOTALPK 00469000 PUT FILEOUT,TOTALLN 00470000 CLOSE (FILEIN) CLOSE THE FILES... 00480000 CLOSE (FILEOUT) 00490000 L R13,SAVEAREA+4 POINT AT OLD SAVE AREA 00500000 LM R14,R12,12(R13) RESTORE THE REGISTERS 00510000 LA R15,0 RETURN CODE = 0 00520000 BR R14 00530000 ****************************************************************** 00540000 * * 00550000 * OUTPUT FILE - DATA CONTROL BLOCK * 00560000 * * 00570000 ****************************************************************** 00580000 FILEOUT DCB DSORG=PS, X00590000 MACRF=(PM), X00600000 DEVD=DA, X00610000 DDNAME=FILEOUT, X00620000 RECFM=FB, X00630000 LRECL=80 00640000 ****************************************************************** 00650000 * * 00660000 * INPUT FILE - DATA CONTROL BLOCK * 00670000 * * 00680000 ****************************************************************** 00690000 FILEIN DCB DSORG=PS, X00700000 MACRF=(GM), X00710000 DEVD=DA, X00720000 DDNAME=FILEIN, X00730000 EODAD=A90END, X00740000 RECFM=FB, X00750000 LRECL=80 00760000 ****************************************************************** 00770000 * 00780000 * MISCELLANEOUS FIELDS 00790000 * 00800000 ****************************************************************** 00810000 TOTALPK DS PL3'0' 00811000 APK DS PL3 00812000 BPK DS PL3 00813000 WORKA DS PL5 00814000 WORK DS 0PL6 00815000 QUOT DS PL3 00816000 REM DS PL3 00817000 EDWD1 DC X'4020206B20212060' 00818000 ****************************************************************** 00819000 * 00820000 * INPUT RECORD AREA 00830000 * 00840000 ****************************************************************** 00850000 RECIN DS 0CL80 00860000 AFIELD DS ZL5 00870000 BFIELD DS ZL5 00871000 DS CL70 00872000 ****************************************************************** 00873000 * 00874000 * OUTPUT RECORD AREAS 00875000 * 00876000 ****************************************************************** 00877000 RECOUT DS 0CL80 PRINT AREA 00878000 AOUT DS CL8 00879000 DC CL2' ' 00880000 BOUT DS CL8 00890000 DS CL62 00900000 TOTALLN DS 0CL80 00910000 TOTALO DS CL8 00920000 DS CL72 00930000 ****************************************************************** 00940000 * 00950000 * REGISTER SAVE AREA 00960000 * 00970000 ****************************************************************** 00980000 SAVEAREA DS 18F 00990000 ****************************************************************** 01000000 * 01010000 * LITERAL POOL - THIS PROGRAM DOES NOT USE LITERALS. 01020000 * 01030000 ****************************************************************** 01040000 LTORG * 01050000 END S0C7PRT2 01060000