Advertisement
CodenameDuchess

Assign 6

Nov 25th, 2014
351
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 25.70 KB | None | 0 0
  1. //KC03Q15A JOB ,'MATTHEW ROWE',MSGCLASS=H
  2. //*
  3. //JSTEP01 EXEC PGM=IGYCRCTL,PARM='FLAG(I,I),APOST,LIB'
  4. //***************************************************************
  5. //* *
  6. //* JSTEP02 CALL COBOL COMPILER IGYCRCTL *
  7. //* TO COMPILE AN INSTREAM COBOL PROGRAM *
  8. //* *
  9. //* DDNAME FILE DESCRIPTION *
  10. //* *
  11. //* SYSIN INPUT: INSTREAM COBOL PROGRAM *
  12. //* SYSLIN OUTPUT: TEMP STORAGE FOR OBJECT MODULE *
  13. //* SYSPRINT OUTPUT: COMPILER OUTPUT *
  14. //* SYSUTN OUTPUT: SEVEN TEMP SCRATCH PADS *
  15. //* *
  16. //***************************************************************
  17. //*
  18. //SYSIN DD *
  19. ****************************************************************
  20. * PROGRAM NAME: SALESRPT *
  21. * *
  22. * FUNCTION: THIS PROGRAM READS INFORMATION FROM 3 INPUT FILES *
  23. * AND BUILDS A 2 DIMENSIONAL TABLE TO HOLD *
  24. * MUTUAL FUND DATA. *
  25. * *
  26. * THEN BUILD A SALES REPORT BASED ON TABULATED DATA *
  27. * *
  28. * INPUT: DATA5A - THE MUTUAL FUND FILE *
  29. * INPUT: DATA5B - THE CLOSING PRICE FILE *
  30. * INPUT: DATA5C - THE BROKER SALES FILE *
  31. * *
  32. * OUTPUT: THE 132 BYTE LINES OF THE OUPUT RECORD *
  33. * *
  34. ****************************************************************
  35.  
  36. IDENTIFICATION DIVISION.
  37.  
  38. PROGRAM-ID. SALESRPT
  39. AUTHOR. MATTHEW ROWE
  40. DATE-WRITTEN. 11/25/2014
  41. EJECT
  42.  
  43. ENVIRONMENT DIVISION.
  44.  
  45. INPUT-OUTPUT SECTION.
  46.  
  47. FILE-CONTROL.
  48.  
  49. SELECT IN-FUND-FILE ASSIGN TO INFILE5A.
  50. SELECT IN-DLY-FUND-PRICE-FILE ASSIGN TO INFILE5B.
  51. SELECT IN-SALES-FILE ASSIGN TO INFILE5C.
  52. SELECT PRINT-FILE ASSIGN TO PRINTER.
  53.  
  54. DATA DIVISION.
  55.  
  56. FILE SECTION.
  57.  
  58. FD IN-FUND-FILE
  59. RECORDING MODE IS F.
  60.  
  61. 01 IN-FUND-RECORD.
  62. COPY FUNDREC.
  63. 05 FILLER PIC X(53).
  64.  
  65.  
  66. FD IN-DLY-FUND-PRICE-FILE
  67. RECORDING MODE IS F.
  68.  
  69. COPY PRICEREC.
  70.  
  71. FD IN-SALES-FILE
  72. RECORDING MODE IS F.
  73.  
  74. COPY SALESREC.
  75.  
  76. FD PRINT-FILE
  77. RECORDING MODE IS F.
  78.  
  79. 01 PRINT-RECORD PIC X(132).
  80.  
  81. WORKING-STORAGE SECTION.
  82.  
  83. 01 TEMP-STORAGE.
  84. 05 TEMP-DEP PIC S9(7)V99 COMP-3 SYNC
  85. VALUE 0.
  86. 05 TEMP-PRICE PIC S9(3)V99 COMP-3 SYNC
  87. VALUE 0.
  88.  
  89. 01 SUB-PROGRAM PIC X(8) VALUE 'BUILDTBL'.
  90.  
  91. 01 FUND-TBL.
  92. 05 FUND-COUNT PIC S9(3) COMP SYNC VALUE 0.
  93. 05 FUND-ENTRY OCCURS 1 TO 100
  94. DEPENDING ON FUND-COUNT
  95. ASCENDING KEY TBL-FUND-NBR
  96. INDEXED BY TBL-FUND-NDX.
  97. 10 TBL-FUND-DEPS-TOT PIC 9(9)V99 COMP-3 VALUE 0.
  98. 10 TBL-FUND-SHRS-TOT PIC 9(9)V99 COMP-3 VALUE 0.
  99.  
  100. COPY FUNDTBL.
  101.  
  102. 01 EOF-FLAG-1 PIC X VALUE 'N'.
  103. 01 EOF-FLAG-2 PIC X VALUE 'N'.
  104. 01 EOF-FLAG-3 PIC X VALUE 'N'.
  105.  
  106. 01 CURRENT-DATE-FIELDS.
  107. 05 CURRENT-DATE.
  108. 10 CURRENT-YEAR PIC 9(4).
  109. 10 CURRENT-MONTH PIC 9(2).
  110. 10 CURRENT-DAY PIC 9(2).
  111. 05 CURRENT-TIME.
  112. 10 CURRENT-HOUR PIC 9(2).
  113. 10 CURRENT-MINUTE PIC 9(2).
  114. 10 CURRENT-SECOND PIC 9(2).
  115. 10 CURRENT-MS PIC 9(2).
  116. 05 DIFF-FROM-GMT PIC S9(4).
  117.  
  118. 01 TSUB PIC S9(5) COMP SYNC VALUE 0.
  119. 01 SALES-SUB PIC S9(5) COMP SYNC VALUE 0.
  120.  
  121. 01 TOTAL-DEPOSITS PIC 9(9)V99 COMP-3 VALUE 0.
  122.  
  123. 01 TOTAL-SHARES PIC 9(9)V99 COMP-3 VALUE 0.
  124.  
  125. 01 TEMP-SHARES PIC S9(7)V99 COMP-3 SYNC
  126. VALUE 0.
  127.  
  128. 01 LINE-COUNT PIC 99 COMP VALUE 99.
  129. 01 PAGE-NUM PIC 999 COMP VALUE 0.
  130. 01 BROKER-COUNT PIC 999 COMP VALUE 0.
  131.  
  132. 01 OUT-SALES-RECORD.
  133. 05 OUT-CITY PIC X(20).
  134. 05 FILLER PIC X(2) VALUE SPACES.
  135. 05 OUT-NAME PIC X(20).
  136. 05 FILLER PIC X(2) VALUE SPACES.
  137. 05 OUT-FUND PIC X(25).
  138. 05 FILLER PIC X(8) VALUE SPACES.
  139. 05 OUT-FUND-NBR PIC 99.
  140. 05 FILLER PIC X(7) VALUE SPACES.
  141. 05 OUT-DEPOSIT PIC $$$,$$9.99.
  142. 05 OUT-DEPOSIT-X REDEFINES OUT-DEPOSIT
  143. PIC X(10).
  144. 05 FILLER PIC X(15) VALUE SPACES.
  145. 05 OUT-PRICE-FLAG PIC 9.
  146. 05 OUT-PRICE-FLAG-X REDEFINES OUT-PRICE-FLAG
  147. PIC X.
  148. 05 FILLER PIC X(4) VALUE SPACES.
  149. 05 OUT-SHARES PIC ZZZ,ZZZ,ZZ9.9999.
  150. 05 OUT-SHARES-X REDEFINES OUT-SHARES
  151. PIC X(16).
  152. 01 OUT-SUMMARY.
  153. 05 FILLER PIC X(47) VALUE SPACES.
  154. 05 OUT-BROKER-NUM PIC ZZZ9.
  155. 05 FILLER PIC X(11) VALUE SPACES.
  156. 05 OUT-DEPOSIT-TOT PIC $$$$,$$$,$$9.99.
  157. 05 FILLER PIC X(3) VALUE SPACES.
  158. 05 OUT-SHARES-TOT PIC ZZ,ZZZ,ZZZ,ZZ9.9999.
  159. 05 FILLER PIC X(33) VALUE SPACES.
  160.  
  161. 01 PAGE-HEADER-1.
  162. 05 OUT-MONTH PIC 9(2).
  163. 05 FILLER PIC X VALUE '/'.
  164. 05 OUT-DAY PIC 9(2).
  165. 05 FILLER PIC X VALUE '/'.
  166. 05 OUT-YEAR PIC 9(4).
  167. 05 FILLER PIC X(38) VALUE SPACES.
  168. 05 OUT-FIRM PIC X(36) VALUE
  169. 'DEWEY, CHEATHAM AND HOWE MUTUAL FUND'.
  170. 05 FILLER PIC X(39) VALUE SPACES.
  171. 05 OUT-PAGE PIC X(6) VALUE 'PAGE: '.
  172. 05 OUT-PAGE-NUM PIC ZZ9.
  173.  
  174. 01 PAGE-HEADER-2.
  175. 05 OUT-TIME PIC 99B99B99.
  176. 05 FILLER PIC X(40) VALUE SPACES.
  177. 05 OUT-TITLE PIC X(36) VALUE
  178. 'MUTUAL FUND DEPOSIT AND SALES REPORT'.
  179. 05 FILLER PIC X(48) VALUE SPACES.
  180.  
  181.  
  182. 01 COLUMN-HEADER-1.
  183. 05 CITY-LBL PIC X(4) VALUE 'CITY'.
  184. 05 FILLER PIC X(18) VALUE SPACES.
  185. 05 BROKER-LBL PIC X(11) VALUE
  186. 'BROKER NAME'.
  187. 05 FILLER PIC X(11) VALUE SPACES.
  188. 05 FUND-LBL PIC X(9) VALUE 'FUND NAME'.
  189. 05 FILLER PIC X(18) VALUE SPACES.
  190. 05 NBR-LBL PIC X(8) VALUE
  191. 'FUND NBR'.
  192. 05 FILLER PIC X(3) VALUE SPACES.
  193. 05 DEPOST-LBL PIC X(14) VALUE
  194. 'DEPOSIT AMOUNT'.
  195. 05 FILLER PIC X(6) VALUE SPACES.
  196. 05 PRICE-LBL PIC X(10) VALUE 'PRICE FLAG'.
  197. 05 FILLER PIC X(9) VALUE SPACES.
  198. 05 SHARES-LBL PIC X(11) VALUE
  199. 'SHARES SOLD'.
  200.  
  201. 01 COLUMN-HEADER-2.
  202. 05 FILLER PIC X(34) VALUE SPACES.
  203. 05 BROKER-CNT-LBL PIC X(17) VALUE
  204. 'NUMBER OF BROKERS'.
  205. 05 FILLER PIC X(5) VALUE SPACES.
  206. 05 DEPOST-TOT-LBL PIC X(21) VALUE
  207. 'TOTAL OF ALL DEPOSITS'.
  208. 05 FILLER PIC X(5) VALUE SPACES.
  209. 05 SHARES-TOT-LBL PIC X(17) VALUE
  210. 'TOTAL SHARES SOLD'.
  211. 05 FILLER PIC X(33) VALUE SPACES.
  212.  
  213. 01 HYPHENS-1.
  214. 05 CITY-HYPH PIC X(20) VALUE ALL '-'.
  215. 05 FILLER PIC X(2) VALUE SPACES.
  216. 05 BROKER-HYPH PIC X(20) VALUE ALL '-'.
  217. 05 FILLER PIC X(2) VALUE SPACES.
  218. 05 FUND-HYPH PIC X(25) VALUE ALL '-'.
  219. 05 FILLER PIC X(8) VALUE SPACES.
  220. 05 NBR-HYPH PIC XX VALUE ALL '-'.
  221. 05 FILLER PIC X(6) VALUE SPACES.
  222. 05 DEPOSIT-HYPH PIC X(11) VALUE ALL '-'.
  223. 05 FILLER PIC X(15) VALUE SPACES.
  224. 05 PRICE-HYPH PIC X VALUE '-'.
  225. 05 FILLER PIC X(9) VALUE SPACES.
  226. 05 SHARES-HYPH PIC X(12) VALUE ALL '-'.
  227.  
  228. 01 HYPHENS-2.
  229. 05 FILLER PIC X(47) VALUE SPACES.
  230. 05 BROKER-NUM-HYPH PIC X(4) VALUE ALL '-'.
  231. 05 FILLER PIC X(11) VALUE SPACES.
  232. 05 DEPOSIT-TOT-HYPH PIC X(15) VALUE ALL '-'.
  233. 05 FILLER PIC X(3) VALUE SPACES.
  234. 05 SHARES-HYPH PIC X(19) VALUE ALL '-'.
  235.  
  236. EJECT
  237.  
  238. PROCEDURE DIVISION.
  239.  
  240. 0000-MAIN.
  241.  
  242. PERFORM 0800-GET-DATE-TIME.
  243.  
  244. CALL SUB-PROGRAM USING FUND-TBL.
  245.  
  246. OPEN INPUT IN-SALES-FILE
  247. OUTPUT PRINT-FILE.
  248.  
  249. READ IN-SALES-FILE
  250. AT END MOVE 'Y' TO EOF-FLAG-3
  251. END-READ.
  252.  
  253. PERFORM 0100-PROCESS-SALES-FILE
  254. UNTIL EOF-FLAG-3 = 'Y'
  255.  
  256. PERFORM 0700-PRINT-SUMMARY.
  257.  
  258. CLOSE IN-SALES-FILE
  259. PRINT-FILE.
  260.  
  261. STOP RUN.
  262.  
  263. 0000-EXIT. EXIT.
  264.  
  265. 0100-PROCESS-SALES-FILE.
  266.  
  267. MOVE IN-CITY-NAME TO OUT-CITY.
  268. MOVE IN-BROKER-NAME TO OUT-NAME.
  269.  
  270. ADD 1 TO BROKER-COUNT.
  271.  
  272. PERFORM 0200-PROCESS-SALE
  273. VARYING SALES-SUB FROM 1 BY 1
  274. UNTIL SALES-SUB > 4
  275. OR IN-FUND-NBR OF SALES-RECORD(SALES-SUB) = 0
  276.  
  277. READ IN-SALES-FILE
  278. AT END MOVE 'Y' TO EOF-FLAG-3
  279. END-READ.
  280.  
  281. 0100-EXIT. EXIT.
  282.  
  283. 0200-PROCESS-SALE.
  284.  
  285. PERFORM 0600-PRINT-HEADERS
  286.  
  287.  
  288. MOVE IN-FUND-NBR OF SALES-RECORD(SALES-SUB) TO OUT-FUND-NBR.
  289. MOVE IN-DEPOSIT-AMT(SALES-SUB) TO OUT-DEPOSIT.
  290.  
  291. ADD IN-DEPOSIT-AMT(SALES-SUB)
  292. TO TBL-FUND-DEPS-TOT(TBL-FUND-NDX).
  293. ADD IN-DEPOSIT-AMT(SALES-SUB) TO TOTAL-DEPOSITS.
  294.  
  295. SEARCH ALL FUND-ENTRY
  296. AT END
  297. PERFORM 0300-FUND-NOT-FOUND
  298. WHEN TBL-FUND-NBR(TBL-FUND-NDX)
  299. = IN-FUND-NBR OF SALES-RECORD(SALES-SUB)
  300. PERFORM 0400-FUND-FOUND
  301. END-SEARCH.
  302.  
  303. WRITE PRINT-RECORD FROM OUT-SALES-RECORD AFTER 2.
  304.  
  305. MOVE SPACES TO OUT-CITY
  306. OUT-NAME.
  307.  
  308. ADD 1 TO LINE-COUNT.
  309.  
  310. 0200-EXIT. EXIT.
  311.  
  312. 0300-FUND-NOT-FOUND.
  313.  
  314. MOVE 'MUTUAL FUND NOT FOUND' TO OUT-FUND.
  315. MOVE SPACES TO OUT-DEPOSIT-X
  316. OUT-PRICE-FLAG-X
  317. OUT-SHARES-X.
  318.  
  319. 0300-EXIT. EXIT.
  320.  
  321. 0400-FUND-FOUND.
  322.  
  323. MOVE TBL-FUND-NAME(TBL-FUND-NDX) TO OUT-FUND.
  324. MOVE IN-PRICE-FLAG(SALES-SUB) TO OUT-PRICE-FLAG.
  325.  
  326. MOVE IN-PRICE-FLAG(SALES-SUB) TO TSUB.
  327.  
  328. MOVE IN-DEPOSIT-AMT(SALES-SUB) TO TEMP-DEP.
  329. MOVE TBL-DLY-FUND-PRICE(TBL-FUND-NDX TSUB) TO TEMP-PRICE.
  330.  
  331.  
  332. CALL 'CALCSHRS' USING TEMP-DEP
  333. TEMP-PRICE
  334. TEMP-SHARES.
  335.  
  336. MOVE TEMP-SHARES TO OUT-SHARES.
  337.  
  338. ADD TEMP-SHARES TO TBL-FUND-SHRS-TOT(TBL-FUND-NDX).
  339. ADD TEMP-SHARES TO TOTAL-SHARES.
  340.  
  341. 0400-EXIT. EXIT.
  342.  
  343. 0600-PRINT-HEADERS.
  344.  
  345. IF LINE-COUNT >= 16
  346. ADD 1 TO PAGE-NUM
  347. MOVE PAGE-NUM TO OUT-PAGE-NUM
  348.  
  349. WRITE PRINT-RECORD FROM PAGE-HEADER-1 AFTER PAGE
  350. WRITE PRINT-RECORD FROM PAGE-HEADER-2 AFTER 1
  351. WRITE PRINT-RECORD FROM COLUMN-HEADER-1 AFTER 2
  352. WRITE PRINT-RECORD FROM HYPHENS-1 AFTER 1
  353.  
  354. MOVE 0 TO LINE-COUNT
  355. MOVE IN-CITY-NAME TO OUT-CITY
  356. MOVE IN-BROKER-NAME TO OUT-NAME
  357.  
  358. END-IF.
  359.  
  360. 0600-EXIT. EXIT.
  361.  
  362. 0700-PRINT-SUMMARY.
  363.  
  364. ADD 1 TO PAGE-NUM.
  365. MOVE PAGE-NUM TO OUT-PAGE-NUM.
  366. MOVE ' MUTUAL FUND SALES TOTALS' TO OUT-TITLE.
  367.  
  368. WRITE PRINT-RECORD FROM PAGE-HEADER-1 AFTER PAGE.
  369. WRITE PRINT-RECORD FROM PAGE-HEADER-2 AFTER 1.
  370. WRITE PRINT-RECORD FROM COLUMN-HEADER-2 AFTER 2.
  371. WRITE PRINT-RECORD FROM HYPHENS-2 AFTER 1.
  372.  
  373. MOVE TOTAL-DEPOSITS TO OUT-DEPOSIT-TOT.
  374. MOVE TOTAL-SHARES TO OUT-SHARES-TOT.
  375. MOVE BROKER-COUNT TO OUT-BROKER-NUM.
  376.  
  377. WRITE PRINT-RECORD FROM OUT-SUMMARY.
  378.  
  379. 0700-EXIT. EXIT.
  380.  
  381. 0800-GET-DATE-TIME.
  382.  
  383. MOVE FUNCTION CURRENT-DATE TO CURRENT-DATE-FIELDS.
  384. MOVE CURRENT-MONTH TO OUT-MONTH.
  385. MOVE CURRENT-DAY TO OUT-DAY.
  386. MOVE CURRENT-YEAR TO OUT-YEAR.
  387.  
  388. MOVE CURRENT-TIME(1:6) TO OUT-TIME.
  389. INSPECT OUT-TIME REPLACING ALL ' ' BY ':'.
  390.  
  391. 0800-EXIT. EXIT.
  392.  
  393.  
  394. //SYSLIB DD DSN=KC02322.CSCI465.COPYLIB,DISP=SHR
  395. //*
  396. //SYSLIN DD DSN=&&OBJ1,SPACE=(TRK,(3,3)),
  397. // DISP=(MOD,PASS,DELETE)
  398. //*
  399. //SYSPRINT DD SYSOUT=*
  400. //*
  401. //SYSUT1 DD SPACE=(CYL,(1,1))
  402. //SYSUT2 DD SPACE=(CYL,(1,1))
  403. //SYSUT3 DD SPACE=(CYL,(1,1))
  404. //SYSUT4 DD SPACE=(CYL,(1,1))
  405. //SYSUT5 DD SPACE=(CYL,(1,1))
  406. //SYSUT6 DD SPACE=(CYL,(1,1))
  407. //SYSUT7 DD SPACE=(CYL,(1,1))
  408. //*
  409. //JSTEP02 EXEC PGM=ASMA90,PARM='NOESD,NORLD,NOXREF,ASA'
  410. //*
  411. //***************************************************************
  412. //* *
  413. //* JSTEP02 COMPILES THE ASSEMBLER SOURCE CODE. *
  414. //* *
  415. //* DDNAME FILE DESCRIPTION *
  416. //* *
  417. //* STEPLIB INPUT: KC00NIU.SYS2.MACLIB *
  418. //* SYSIN INPUT: INSTREAM DATA FROM PROGRAM *
  419. //* SYSLIB INPUT: SYS1.MACLIB *
  420. //* *
  421. //***************************************************************
  422. //SYSLIB DD DSN=KC00NIU.SYS2.MACLIB,DISP=SHR
  423. // DD DSN=SYS1.MACLIB,DISP=SHR
  424. //SYSIN DD *
  425. CALCSHRS CSECT
  426. *
  427. PRINT NOGEN DO NOT EXPAND MACRO CALLS
  428. *
  429. STM 14,12,12(13) STORE REGISTERS
  430. LR 12,15 LOAD PARAM LIST
  431. USING CALCSHRS,12
  432. LA 14,MAINSAVE
  433. ST 14,8(13)
  434. ST 13,4(14)
  435. LR 13,14
  436. *
  437. LM 2,4,0(1)
  438. *
  439. ZAP DEPAMT,0(5,2) DEPOSIT
  440. ZAP PRICE,0(3,3) PRICE
  441. *
  442. ZAP SHRAMT(8),DEPAMT(5) PLACE DEPAMT TO GET SHRAMT
  443. SRP SHRAMT,1,0 SHIFT SHARE AMOUNT
  444. * DP SHRAMT(8),PRICE(3) DIVIDE TO GET TOTAL SHARES
  445. * SRP SHRAMT(8),64-1,5 NEXT 2 INSTRUCTS ROUNDS
  446. * SRP SHRAMT(8),1,0 3 PLACES W/ 0 IN 4TH POS
  447. * ZAP 0(0,4),SHRAMT(5)
  448. *
  449. L 13,4(13)
  450. LM 14,12,12(13) EXIT LINKAGE
  451. BR 14 BRANCH TO MAIN
  452. *
  453. LTORG
  454. ORG CALCSHRS+((*-CALCSHRS+31)/32)*32
  455. DC C'$'
  456. **********************STORAGE************************************
  457. MAINSAVE DS 8F
  458. *
  459. DEPAMT DC PL5'0'
  460. *
  461. PRICE DC PL3'0'
  462. *
  463. SHRAMT DC PL8'0'
  464. END CALCSHRS
  465. /*
  466. //*
  467. //SYSLIN DD DSN=&&OBJ2,
  468. // DISP=(NEW,PASS)
  469. //*
  470. //SYSPRINT DD SYSOUT=*
  471. //*
  472. //JSTEP03 EXEC PGM=HEWL,COND=(0,LT)
  473. //SYSLIN DD DSN=&&OBJ1,UNIT=PUB,DISP=(OLD,DELETE)
  474. // DD DSN=&&OBJ2,UNIT=PUB,DISP=(OLD,DELETE)
  475. // DD *
  476. ENTRY SALESRPT
  477. MODE AMODE(24)
  478. /*
  479. //SYSLIB DD DSN=CEE.SCEELKED,DISP=SHR
  480. //SYSLMOD DD DSN=KC03Q15.CSCI465.LOADLIB(SALESRPT),
  481. // UNIT=DISK,SPACE=(CYL,(2,2,5)),
  482. // DISP=(MOD,KEEP,KEEP)
  483. //SYSUT1 DD UNIT=PUB,SPACE=(TRK,(10,10))
  484. //SYSPRINT DD SYSOUT=*
  485. //*
  486. //JSTEP04 EXEC PGM=IGYCRCTL,PARM='FLAG(I,I),APOST,LIB'
  487. //***************************************************************
  488. //* *
  489. //* JSTEP04 CALL COBOL COMPILER IGYCRCTL *
  490. //* TO COMPILE AN INSTREAM COBOL PROGRAM *
  491. //* *
  492. //* DDNAME FILE DESCRIPTION *
  493. //* *
  494. //* SYSIN INPUT: INSTREAM COBOL PROGRAM *
  495. //* SYSLIN OUTPUT: TEMP STORAGE FOR OBJECT MODULE *
  496. //* SYSPRINT OUTPUT: COMPILER OUTPUT *
  497. //* SYSUTN OUTPUT: SEVEN TEMP SCRATCH PADS *
  498. //* *
  499. //***************************************************************
  500. //*
  501. //SYSIN DD *
  502. ****************************************************************
  503. * PROGRAM NAME: BUILDTBL *
  504. * *
  505. * FUNCTION: THIS PROGRAM READS INFORMATION FROM 2 INPUT FILES *
  506. * AND BUILDS A 2 DIMENSIONAL TABLE TO HOLD *
  507. * MUTUAL FUND DATA. *
  508. * *
  509. * INPUT: DATA5A - THE MUTUAL FUND FILE *
  510. * INPUT: DATA5B - THE CLOSING PRICE FILE *
  511. * INPUT: DATA5C - THE BROKER SALES FILE *
  512. * *
  513. ****************************************************************
  514.  
  515. IDENTIFICATION DIVISION.
  516.  
  517. PROGRAM-ID. BUILDTBL
  518. AUTHOR. MATTHEW ROWE
  519. DATE-WRITTEN. 11/25/2014.
  520. EJECT
  521.  
  522. ENVIRONMENT DIVISION.
  523.  
  524. INPUT-OUTPUT SECTION.
  525.  
  526. FILE-CONTROL.
  527.  
  528. SELECT IN-FUND-FILE ASSIGN TO INFILE5A.
  529. SELECT IN-DLY-FUND-PRICE-FILE ASSIGN TO INFILE5B.
  530. SELECT IN-SALES-FILE ASSIGN TO INFILE5C.
  531. SELECT PRINT-FILE ASSIGN TO PRINTER.
  532.  
  533. DATA DIVISION.
  534.  
  535. FILE SECTION.
  536.  
  537. FD IN-FUND-FILE
  538. RECORDING MODE IS F.
  539.  
  540. 01 IN-FUND-RECORD.
  541. COPY FUNDREC.
  542. 05 FILLER PIC X(53).
  543.  
  544.  
  545. FD IN-DLY-FUND-PRICE-FILE
  546. RECORDING MODE IS F.
  547.  
  548. COPY PRICEREC.
  549.  
  550. FD IN-SALES-FILE
  551. RECORDING MODE IS F.
  552.  
  553. COPY SALESREC.
  554.  
  555. FD PRINT-FILE
  556. RECORDING MODE IS F.
  557.  
  558. 01 PRINT-RECORD PIC X(132).
  559.  
  560. WORKING-STORAGE SECTION.
  561.  
  562. 01 EOF-FLAG-1 PIC X VALUE 'N'.
  563. 01 EOF-FLAG-2 PIC X VALUE 'N'.
  564. 01 EOF-FLAG-3 PIC X VALUE 'N'.
  565.  
  566. 01 TSUB PIC S9(5) COMP SYNC.
  567. 01 SALES-SUB PIC S9(5) COMP SYNC.
  568.  
  569. LINKAGE SECTION.
  570.  
  571. 01 FUND-TBL.
  572. 05 FUND-COUNT PIC S9(3) COMP SYNC.
  573. 05 FUND-ENTRY OCCURS 1 TO 100
  574. DEPENDING ON FUND-COUNT
  575. ASCENDING KEY TBL-FUND-NBR
  576. INDEXED BY TBL-FUND-NDX.
  577. 10 TBL-FUND-DEPS-TOT PIC 9(9)V99 COMP-3.
  578. 10 TBL-FUND-SHRS-TOT PIC 9(9)V99 COMP-3.
  579.  
  580. COPY FUNDTBL.
  581.  
  582. PROCEDURE DIVISION USING FUND-TBL.
  583.  
  584. 0000-MAIN.
  585.  
  586. OPEN INPUT IN-FUND-FILE
  587. INPUT IN-DLY-FUND-PRICE-FILE.
  588.  
  589.  
  590. READ IN-FUND-FILE
  591. AT END MOVE 'Y' TO EOF-FLAG-1
  592. END-READ.
  593.  
  594. PERFORM 0100-BUILD-TABLE
  595. VARYING TBL-FUND-NDX FROM 1 BY 1
  596. UNTIL TBL-FUND-NDX > 100 OR EOF-FLAG-1 = 'Y'
  597.  
  598. CLOSE IN-FUND-FILE
  599. IN-DLY-FUND-PRICE-FILE.
  600.  
  601. MOVE 0 TO RETURN-CODE.
  602.  
  603. GOBACK.
  604.  
  605. 0000-EXIT. EXIT.
  606.  
  607. 0100-BUILD-TABLE.
  608.  
  609. ADD 1 TO FUND-COUNT.
  610.  
  611. MOVE IN-FUND-NBR OF IN-FUND-RECORD
  612. TO TBL-FUND-NBR(TBL-FUND-NDX)
  613.  
  614. MOVE IN-FUND-NAME TO TBL-FUND-NAME(TBL-FUND-NDX).
  615.  
  616. READ IN-DLY-FUND-PRICE-FILE
  617. AT END MOVE 'Y' TO EOF-FLAG-2
  618. END-READ.
  619.  
  620. PERFORM VARYING IN-DLY-FUND-PRICE-NDX FROM 1 BY 1
  621. UNTIL IN-DLY-FUND-PRICE-NDX > 5 OR EOF-FLAG-2 = 'Y'
  622.  
  623. MOVE IN-DLY-FUND-PRICE(IN-DLY-FUND-PRICE-NDX)
  624. TO TBL-DLY-FUND-PRICE(TBL-FUND-NDX
  625. IN-DLY-FUND-PRICE-NDX)
  626. END-PERFORM.
  627.  
  628. READ IN-FUND-FILE
  629. AT END MOVE 'Y' TO EOF-FLAG-1
  630. END-READ.
  631.  
  632. 0100-EXIT. EXIT.
  633.  
  634. EJECT
  635.  
  636. //SYSLIB DD DSN=KC02322.CSCI465.COPYLIB,DISP=SHR
  637. //*
  638. //SYSLIN DD DSN=&&OBJ3,SPACE=(TRK,(3,3)),
  639. // DISP=(MOD,PASS,DELETE)
  640. //*
  641. //SYSPRINT DD SYSOUT=*
  642. //*
  643. //SYSUT1 DD SPACE=(CYL,(1,1))
  644. //SYSUT2 DD SPACE=(CYL,(1,1))
  645. //SYSUT3 DD SPACE=(CYL,(1,1))
  646. //SYSUT4 DD SPACE=(CYL,(1,1))
  647. //SYSUT5 DD SPACE=(CYL,(1,1))
  648. //SYSUT6 DD SPACE=(CYL,(1,1))
  649. //SYSUT7 DD SPACE=(CYL,(1,1))
  650. //*
  651. //JSTEP05 EXEC PGM=HEWL,COND=(0,LT)
  652. //SYSLIN DD DSN=&&OBJ3,UNIT=PUB,DISP=(OLD,DELETE)
  653. //SYSLIB DD DSN=CEE.SCEELKED,DISP=SHR
  654. //SYSLMOD DD DSN=KC03Q15.CSCI465.LOADLIB(BUILDTBL),
  655. // UNIT=DISK,SPACE=(CYL,(2,2,5)),
  656. // DISP=(MOD,KEEP,KEEP)
  657. //SYSUT1 DD UNIT=PUB,SPACE=(TRK,(10,10))
  658. //SYSPRINT DD SYSOUT=*
  659. //*
  660. //JSTEP06 EXEC PGM=SORT,PARM='CMP=CLC'
  661. //***************************************************************
  662. //* *
  663. //* JSTEP01 CALL SORT UTILITY *
  664. //* TO SORT INPUT FILE DATA5A *
  665. //* *
  666. //* DDNAME FILE DESCRIPTION *
  667. //* *
  668. //* SYSIN INPUT: INSTREAM COBOL PROGRAM *
  669. //* SORTIN INPUT: PDS POPULATED WITH UNSORTED DATA *
  670. //* SORTOUT OUTPUT: SORTED DATA IN TEMP DATA SET *
  671. //* *
  672. //***************************************************************
  673. //SORTIN DD DSN=KC02322.CSCI465.DATAFA14(DATA5A),DISP=SHR
  674. //SORTOUT DD DSN=&&SORTED,SPACE=(TRK,(1,5)),DISP=(NEW,PASS)
  675. //SYSOUT DD SYSOUT=*
  676. //SYSIN DD *
  677. SORT FIELDS=(1,2,ZD,A)
  678. /*
  679. //*
  680. //JSTEP07 EXEC PGM=SALESRPT,COND=(0,LT)
  681. //*
  682. //STEPLIB DD DSN=KC03Q15.CSCI465.LOADLIB,DISP=SHR
  683. //*
  684. //***************************************************************
  685. //* *
  686. //* JSTEP07 FETCH AND EXECUTE PROGRAM *
  687. //* *
  688. //* SYSLIB INPUT: LIBRARY MODULE LIBRARY *
  689. //* *
  690. //***************************************************************
  691. //*
  692. //INFILE5A DD DSN=&&SORTED,DISP=(OLD,DELETE)
  693. //*
  694. //INFILE5B DD DSN=KC02322.CSCI465.DATAFA14(DATA5B),DISP=SHR
  695. //*
  696. //INFILE5C DD DSN=KC02322.CSCI465.DATAFA14(DATA5C),DISP=SHR
  697. //*
  698. //PRINTER DD SYSOUT=*
  699. //*
  700. //*
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement