Advertisement
CodenameDuchess

PROG4_THUS_FAR

Oct 27th, 2014
401
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.47 KB | None | 0 0
  1. //KC03Q15A JOB ,'MATTHEW ROWE',MSGCLASS=H
  2. //***************************************************************
  3. //* *
  4. //* CSCI 465/565 - FALL 2014 *
  5. //* *
  6. //* ASSIGNMENT 4 *
  7. //* *
  8. //* PROGRAMMER: MATTHEW ROWE *
  9. //* *
  10. //* DATE: 10/24/2014 *
  11. //* TIME: 11:59:59 PM *
  12. //* *
  13. //* THE PURPOSE OF THIS JOB IS TO COMPILE AND EXECUTE A *
  14. //* ASSEMBLER PROGRAM TO READ IN A DATA FILES CONTAINING BROKER *
  15. //* AND SHARE INFORMATION TO CONSTRUCT A DAILY SALES REPORT. *
  16. //* *
  17. //***************************************************************
  18. //JSTEP01 EXEC PGM=ASMA90,PARM=ASA
  19. //*
  20. //***************************************************************
  21. //* *
  22. //* JSTEP01 COMPILES THE ASSEMBLER SOURCE CODE. *
  23. //* *
  24. //* DDNAME FILE DESCRIPTION *
  25. //* *
  26. //* STEPLIB INPUT: KC00NIU.SYS2.MACLIB *
  27. //* SYSIN INPUT: INSTREAM DATA FROM PROGRAM *
  28. //* SYSLIB INPUT: SYS1.MACLIB *
  29. //* *
  30. //***************************************************************
  31. //SYSLIB DD DSN=KC00NIU.SYS2.MACLIB,DISP=SHR
  32. // DD DSN=SYS1.MACLIB,DISP=SHR
  33. //SYSIN DD *
  34. *************************ASMPGM CSECT*********************************
  35. * *
  36. * PROGRAM PROG4 *
  37. * AUTHOR GEOFFREY DECKER *
  38. * DATE WRITTEN 06/23/2013 *
  39. * *
  40. * FUNCTION: THIS PROGRAM READS INFORMATION FROM AN INPUT FILE *
  41. * AND SIMPLY PRINTS IT TO THE SCREEN. *
  42. * *
  43. * INPUT: INPUT FILE CONTAINING 80 BYTE BROKER RECORDS *
  44. * INPUT FILE CONTAINING DAILY CLOSE SHARE PRICE *
  45. * *
  46. * OUTPUT: ONE TEMPORARY FILE FOR HIGH SALES RECORD AND *
  47. * ORGANIZED DATA FOR DAILY SALES REPORT TO STDOUT *
  48. * *
  49. **********************************************************************
  50. PROG4 CSECT BEGIN ASMPGM
  51. PRINT NOGEN DO NOT EXPAND MACRO CALLS
  52. *
  53. XSAVE BR=12,SA=MAINSAVE,TR=NO
  54. * STANDARD ENTRY LINKAGE
  55. OPEN (SHAREDCB,(INPUT)) OPEN SHARE PRICE FILE
  56. LTR 15,15 CHECK FOR SUCCESSFUL OPEN
  57. BZ PACKSHR BRANCH IF SUCCESSFUL TO LABEL
  58. ABEND 555,DUMP ABEND IF OPEN FAILS
  59. *
  60. PACKSHR GET SHAREDCB,INBUFFER PUT SHARE PRICE IN BUFFER
  61. PACK SHRPRICE(3),INBUFFER(5) PACK BUFFER INTO STORAGE
  62. *
  63. CLOSE (SHAREDCB)
  64. *
  65. OPEN (BROKRDCB,(INPUT)) OPEN BROKER FILE FOR READING
  66. LTR 15,15 CHECK FOR SUCCESSFUL OPEN
  67. BZ OPEN2OK BRANCH IF SUCCESSFUL TO LABEL
  68. ABEND 666,DUMP ABEND IF OPEN FAILS
  69. *
  70. *OPEN1OK OPEN (LRGSLDCB,(OUTPUT)) OPEN BROKER FILE FOR READING
  71. * LTR 15,15 CHECK FOR SUCCESSFUL OPEN
  72. * BZ OPEN2OK BRANCH IF SUCCESSFUL TO LABEL
  73. * ABEND 777,DUMP ABEND IF OPEN FAILS
  74. *
  75. OPEN2OK OPEN (OUTDCB,(OUTPUT)) OPEN OUTPUT FOR PRINTING
  76. LTR 15,15 CHECK FOR SUCCESSFUL OPEN
  77. BZ OPEN3OK BRANCH IF SUCCESSFUL TO LABEL
  78. ABEND 888,DUMP ABEND IF OPEN FAILS
  79. *
  80. OPEN3OK GET BROKRDCB,INBUFFER GET THE FIRST 80 BYTES
  81. *
  82. DATIME TIME DEC,DATESTR,LINKAGE=SYSTEM,DATETYPE=MMDDYYYY
  83. *
  84. LA 5,15 SETTING R5 SO HEADER PRINTS
  85. LA 6,15 SETTING R6 AS CHECK FOR R5
  86. *
  87. LOOP1 CLI EOFFLAG1,C'Y' CHECK FOR END OF INPUT DATA
  88. *
  89. BE ENDLOOP1 BRANCH OUT OF LOOP IF EOF
  90. *
  91. CR 5,6 CHECK IF 15 RECS
  92. BE NEWPG BRANCH TO HEADER PRINT
  93. LA 5,1 USE R5 AS CNTR FOR NEW PG
  94. *
  95. MVC OUTCITY(24),INBUFFER MOVE CITY TO PRINT LINE
  96. MVC OUTBRKR(24),INBUFFER+24 MOVE BROER TO PRINT LINE
  97. *
  98. PACK DEPAMT(6),INBUFFER+48(11) PACK DEPOSIT AMOUNT
  99. *
  100. LA 1,ODEPAMT+11 POINTER IN CASE OF 0 AMOUNT
  101. MVC ODEPAMT(15),DEPPAT SET NUMERIC PATTERN FIELD
  102. EDMK ODEPAMT(15),DEPAMT MOVE DEPOSIT TO PATTERN
  103. BCTR 1,0 MOVE TO FRONT OF DEPOSIT
  104. MVI 0(1),C'$' ADD $ SIGN
  105. *
  106. ZAP SHRAMT(11),DEPAMT(6) PLACE DEPAMT TO GET SHRAMT
  107. SRP SHRAMT,4,0 SHIFT SHARE AMOUNT
  108. DP SHRAMT(11),SHRPRICE(3) DIVIDE TO GET TOTAL SHARES
  109. SRP SHRAMT(8),64-1,5 NEXT 2 INSTRUCTS ROUNDS
  110. SRP SHRAMT(8),1,0 3 PLACES W/ 0 IN 4TH POS.
  111. *
  112. MVC OSHRAMT(20),SHRPAT SET PRINT PATTERN
  113. EDMK OSHRAMT(20),SHRAMT PUT SHRAMT IN NUM EDITED FIELD
  114. CLI INBUFFER+59,C'1'
  115. BE COMRT1 IF EQUAL BRANCH TO COM RATE 1
  116. ZAP COMMISS(8),DEPAMT(6)
  117. MP COMMISS(8),COMPCT2(2)
  118. SRP COMMISS(8),1,5
  119. MVC OCOMM(13),COMPAT
  120. EDMK OCOMM(13),COMMISS
  121. BCTR 1,0 MOVE TO FRONT OF COMMISS
  122. MVI 0(1),C'$' ADD $ SIGN
  123. B PRINTRD BRANCH TO PRINT READY
  124. *
  125. COMRT1 ZAP COMMISS(8),DEPAMT(6)
  126. MP COMMISS(8),COMPCT1(2)
  127. SRP COMMISS(8),1,5
  128. MVC OCOMM(13),COMPAT
  129. EDMK OCOMM(13),COMMISS
  130. BCTR 1,0 MOVE TO FRONT OF COMMISS
  131. MVI 0(1),C'$' ADD $ SIGN
  132. *
  133. PRINTRD PUT OUTDCB,PRINTLN PUT THE DATA TO SCREEN
  134. *
  135. AP TOTDEPS(7),DEPAMT(6) ADD DEPAMT TO TOTAL
  136. AP TOTSHRS(7),SHRAMT(8) ADD SHARES SOLD TO TOTAL
  137. AP TOTCOMS(6),COMMISS(8) ADD COMMISSION TO TOTAL
  138. LA 4,1 USE R4 FOR RECS READ
  139. *
  140. GET BROKRDCB,INBUFFER GET THE NEXT RECORD
  141. *
  142. B LOOP1 BRANCH TO TOP OF LOOP
  143. *
  144. NEWPG DS 0H CLEAR COUNTER REGISTER
  145. SR 5,5
  146. AP PAGECTR(2),PAGEINC(1) INCREMENT PAGE NUMBER
  147. MVC PGNUM(3),PAGEPAT
  148. ED PGNUM(3),PAGECTR PRINT PAGE NUMBER
  149. MVC OUTDATE(13),DATEPAT MOVE DATE INTO FIELD
  150. ED OUTDATE(13),DATESTR+7
  151. PUT OUTDCB,REP1H1 PRINT HEADER LINE 1
  152. MVC OUTTIME(11),TIMEPAT MOVE TIME INTO FIELD
  153. ED OUTDATE(11),DATESTR
  154. PUT OUTDCB,REP1H2 PRINT HEADER LINE 2
  155. PUT OUTDCB,REP1H3 PRINT HEADER LINE 3
  156. PUT OUTDCB,HEADDIV DIVDER LINE OF HYPHENS
  157. B LOOP1 BRANCH TO TOP
  158. *
  159. ENDLOOP1 CLOSE (BROKRDCB) CLOSE THE 3 DCBs
  160. *
  161. LA 1,OTOTDEP+15 INCASE 0 AMOUNT
  162. MVC OTOTDEP(19),TOTDPAT MOVE TOTAL DEPOSIT TO
  163. EDMK OTOTDEP(19),TOTDEPS PRINT LINE
  164. BCTR 1,0 MOVE TO FRONT OF COMMISS
  165. MVI 0(1),C'$' ADD $ SIGN
  166. MVC OTOTSHR(17),TOTSPAT MOVE TOTAL SHARES TO
  167. EDMK OTOTSHR(17),TOTSHRS PRINT LINE
  168. LA 1,OTOTCOM+11 INCASE OF 0 AMOUNT
  169. MVC OTOTCOM(15),TOTCPAT MOVE TOTAL COMMISSION TO
  170. EDMK OTOTCOM(15),TOTCOMS PRINT LINE
  171. BCTR 1,0 MOVE TO FRONT OF COMMISS
  172. MVI 0(1),C'$' ADD $ SIGN
  173. PUT OUTDCB,EORPRINT PUT THE DATA TO SCREEN
  174. *
  175. CLOSE (OUTDCB) CLOSE OUPUT
  176. *
  177. XRETURN RC=0,TR=NO STANDARD EXIT LINKAGE
  178. *
  179. LTORG LTORG TO CLEAR LITERALS
  180. *
  181. ***************MAIN STORAGE*************************
  182. *
  183. MAINSAVE DS 18F MAINSAVE FOR STANDARD LINKAGE
  184. *
  185. INBUFFER DC 80C'$' INPUT BUFFER FILL WITH '$'
  186. *
  187. EOFFLAG1 DC C'N' EOFFLAG FOR BROKER FILE
  188. *
  189. EOFFLAG2 DC C'N' EOFFLAG FOR TEMP FILE
  190. *
  191. SHRPRICE DC PL3'0' SHARE PRICE STORAGE
  192. *
  193. DEPAMT DC PL6'0' DEPOSIT AMOUNT STORAGE
  194. *
  195. SHRAMT DC PL11'0' SHARES SOLD FIELD
  196. *
  197. TOTRECS DC F'0' TOTAL RECORDS READ
  198. *
  199. TOTDEPS DC PL7'0' TOTAL DEPOSITS FOR DAY
  200. *
  201. TOTSHRS DC PL7'0' TOTAL SHARES SOLD
  202. *
  203. TOTCOMS DC PL6'0' TOTAL COMMISSION FOR DAY
  204. *
  205. COMPCT1 DC PL2'625' 5/8% COMMISSION
  206. *
  207. COMPCT2 DC PL2'875' 7/8% COMMISSION
  208. *
  209. COMMISS DC PL8'0' COMMISSION STORAGE
  210. *
  211. DATESTR DC 4F'0' DATE-TIME STORAGE
  212. *
  213. PAGEINC DC P'1' INCREMENT PAGE
  214. *
  215. PAGECTR DC PL2'00' PAGE COUNTER
  216. *
  217. *****************PRINT PATTERNS**********************************
  218. *
  219. COMPAT DC XL13'40206B2020206B2021204B2020'
  220. *
  221. DEPPAT DC XL15'402020206B2020206B2021204B2020'
  222. *
  223. SHRPAT DC XL20'4020206B2020206B2020206B2021204B20202020'
  224. *
  225. TOTDPAT DC XL19'4020206B2020206B2020206B2021204B2020'
  226. *
  227. TOTSPAT DC XL17'402020206B2020206B2021204B20202020'
  228. *
  229. TOTCPAT DC XL15'402020206B2020206B2021204B2020'
  230. *
  231. PAGEPAT DC XL3'402020'
  232. *
  233. DATEPAT DC XL13'40202120206120206120202020'
  234. *
  235. TIMEPAT DC XL11'40202120207A20207A2020'
  236. *
  237. ******************PRINT LINES *********************************
  238. *
  239. PRINTLN DC CL1'0' HOLDS OUTPUT FOR PRINTED REPORT
  240. OUTCITY DS CL24 HOLDS BROKER CITY
  241. DC 9C' ' FILLER
  242. OUTBRKR DS CL24 HOLDS BROKER NAME
  243. DC 9C' ' FILLER
  244. ODEPAMT DS CL15 OUT DEPOSIT AMOUNT
  245. DC 9C' ' FILLER
  246. OSHRAMT DS CL20 OUT SHARE AMOUNT
  247. DC 9C' ' FILLER
  248. OCOMM DS CL13 OUT COMMISSION AMOUNT
  249. *
  250. EORPRINT DC CL1'0' HOLDS DATA FOR WND OF REPORT
  251. OTOTREC DS CL3
  252. DC 10C' ' FILLER
  253. OTOTDEP DS CL19
  254. DC 10C' ' FILLER
  255. OTOTSHR DS CL17
  256. DC 10C' ' FILLER
  257. OTOTCOM DS CL15
  258. DC 48C' ' FILLER TO END OF LINE
  259. *
  260. *****************HEADER PRINTLINES************
  261. *
  262. REP1H1 DC C'1'
  263. OUTDATE DS CL13
  264. DC 31C' ' FILLER
  265. DC CL46'DEWEY, CHEATHAM AND HOWE MUTUAL FUND WORLDWIDE'
  266. DC 33C' ' FILLER
  267. DC CL6'PAGE: '
  268. PGNUM DS CL3
  269. *
  270. REP1H2 DC C' '
  271. OUTTIME DS CL11
  272. DC 41C' ' FILLER
  273. DC CL34'BROKER SALES AND COMMISSION REPORT'
  274. DC 46C' '
  275. *
  276. REP1H3 DC C' '
  277. DC CL11'BRANCH CITY'
  278. DC 22C' '
  279. DC CL11'BROKER NAME'
  280. DC 23C' '
  281. DC CL14'DEPOSIT AMOUNT'
  282. DC 18C' '
  283. DC CL11'SHARES SOLD'
  284. DC 12C' '
  285. DC CL10'COMMISSION'
  286. HEADDIV DC C' '
  287. DC 132C'-'
  288. *
  289. *****************DCB STORAGE******************
  290. *
  291. ***INPUT DCB FOR DATA1***
  292. *
  293. SHAREDCB DCB DDNAME=SHAREPR, X
  294. DEVD=DA, X
  295. DSORG=PS, X
  296. MACRF=GM, X
  297. RECFM=FB, X
  298. LRECL=80, X
  299. BLKSIZE=800
  300. *
  301. BROKRDCB DCB DDNAME=SALESDY, X
  302. DEVD=DA, X
  303. DSORG=PS, X
  304. MACRF=GM, X
  305. RECFM=FB, X
  306. LRECL=80, X
  307. BLKSIZE=800, X
  308. EODAD=EOF1
  309.  
  310. *RGSLDCB DCB DDNAME=SALESDY,
  311. * DEVD=DA,
  312. * DSORG=PS,
  313. * MACRF=GM,
  314. * RECFM=FBA,
  315. * LRECL=80,
  316. * BLKSIZE=800,
  317. * EODAD=EOF1
  318.  
  319. *
  320. ***EOF FOR INDCB EODAD***
  321. *
  322. EOF1 MVI EOFFLAG1,C'Y'
  323. BR 14
  324. EOF2 MVI EOFFLAG2,C'Y'
  325. BR 14
  326. *
  327. ***OUTPUT DCB FOR PRINTING TO SCREEN***
  328. *
  329. OUTDCB DCB DDNAME=PRINTER, X
  330. DEVD=DA, X
  331. DSORG=PS, X
  332. MACRF=PM, X
  333. RECFM=FBA, X
  334. LRECL=133, X
  335. BLKSIZE=133
  336. *
  337. END PROG4
  338. /*
  339. //*
  340. //SYSLIN DD DSN=&&TEMP,
  341. // DISP=(NEW,PASS)
  342. //*
  343. //SYSPRINT DD SYSOUT=*
  344. //*
  345. //JSTEP02 EXEC PGM=HEWLDRGO,PARM='MAP,LET',COND=(4,LT)
  346. //*
  347. //***************************************************************
  348. //* *
  349. //* JSTEP02 CREATES A LOAD MODULE FROM THE INPUT OBJECT *
  350. //* MODULE, EXECUTES THE LOAD MODULE, AND THEN PRINTS IT. *
  351. //* *
  352. //* SYSLIN INPUT: THE OBJECT MODULE *
  353. //* SYSLIB INPUT: LOAD MODULE LIBRARIES NEEDED BY *
  354. //* THE LOADER *
  355. //* PGMINPUT INPUT: INSTREAM DATA LABEL *
  356. //* *
  357. //* PRINTER OUTPUT: lABEL FOR OUTPUT TO STDOUT *
  358. //***************************************************************
  359. //SYSLIN DD DSN=&&TEMP,DISP=(OLD,DELETE)
  360. //SHAREPR DD DSN=KC02322.CSCI465.DATAFA14(DATA3A),DISP=SHR
  361. //SALESDY DD DSN=KC02322.CSCI465.DATAFA14(DATA3B),DISP=SHR
  362. //SALESRP DD SPACE=(TRK,(3,3))
  363. //PRINTER DD SYSOUT=*
  364. //*
  365. //SYSLIB DD DSN=KC00NIU.SYS2.CALLIB,DISP=SHR
  366. //*
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement