You are on page 1of 6

https://punctiliousprogrammer.

com/the-video-course/

SOC4

BOMBSOC4 CSECT 00300001


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

You might also like