ASSIGNMENT

This is a Mainframe COBOL forum - you can post your queries on Mainframe COBOL, VS COBOL II, COBOL/370 , Enterprise COBOL

Moderators: dbzTHEdinosauer, Moderator Group

Post Reply
breentha_d
Member
Posts: 13
Joined: Mon Dec 10, 2007 1:32 pm

ASSIGNMENT

Post by breentha_d » Sun Feb 10, 2008 2:15 pm

HI

there i am having problem solving these errors can someone help me?

thanks



LineID PL SL ----+-*A-1-B--+----2----+----3----+----4----+----5----+----6---
000001 IDENTIFICATION DIVISION.
000002 PROGRAM-ID. CBLHO403.
000003 AUTHOR. BREENTHA.
000004 DATE-WRITTEN. JANUARY 31,2008.
000005 DATE-COMPILED. 02/10/08.
000006 * REMARKS.
000007 * THIS PROGRAM GENERATES THE EMPLOYEE PAYR
000008 * LISTING AND INDIVIDUAL PAYSLIP REPORT.
000009 ENVIRONMENT DIVISION.
000010 CONFIGURATION SECTION.
000011 SOURCE-COMPUTER. ZOS.
000012 OBJECT-COMPUTER. ZOS.
000013 INPUT-OUTPUT SECTION.
000014 FILE-CONTROL.
000015 SELECT EMP-FILE ASSIGN TO CBLHO4I1.
000016 SELECT TSCAT1 ASSIGN TO CBLHO4I2.
000017 SELECT TSCAT2 ASSIGN TO CBLHO4I3.
000018 SELECT TSCAT3 ASSIGN TO CBLHO4I4.
000019 SELECT EMP-SUM ASSIGN TO CBLHO4O1.
000020 SELECT INDV-PAY-SLIP ASSIGN TO CBLHO4O2.
000021 SELECT SORT-FILE ASSIGN TO SORTWK01.
000022 DATA DIVISION.
000023 FILE SECTION.
000024 FD EMP-FILE
000025 RECORD CONTAINS 100 CHARACTERS
000026 BLOCK CONTAINS 2000 CHARACTERS
000027 RECORDING MODE IS F
000028 LABEL RECORDS STANDARD.
000029 01 EMP-REC PIC X(100).
000030 FD TSCAT1
000031 RECORD CONTAINS 20 CHARACTERS
000032 BLOCK CONTAINS 1000 CHARACTERS
000033 RECORDING MODE IS F
000034 LABEL RECORDS STANDARD.
000035 01 TSCAT1-REC PIC X(20).
000036 FD TSCAT2
000037 RECORD CONTAINS 60 CHARACTERS
000038 BLOCK CONTAINS 3000 CHARACTERS
000039 RECORDING MODE IS F
000040 LABEL RECORDS STANDARD.
000041 01 TSCAT2-REC PIC X(60).
000042 FD TSCAT3
000043 RECORD CONTAINS 60 CHARACTERS
000044 BLOCK CONTAINS 3000 CHARACTERS
000045 RECORDING MODE IS F
000046 LABEL RECORDS STANDARD.
000047 01 TSCAT3-REC PIC X(60).
000048 FD EMP-SUM
000049 RECORD CONTAINS 133 CHARACTERS
000050 RECORDING MODE IS F
000051 LABEL RECORD OMITTED.
000052 01 EMP-SUM-REC PIC X(133).
000053 FD INDV-PAY-SLIP
000054 RECORD CONTAINS 133 CHARACTERS
000055 RECORDING MODE IS F
000056 LABEL RECORDS OMITTED.
000057 01 PAY-SLIP-REC PIC X(133).
000058 SD SORT-FILE.
000059 01 S-REC.
000060 03 S-NPAY PIC 9(5)V99.
000061 03 FILLER PIC X(68).
000062 WORKING-STORAGE SECTION.
000063 01 PIC X(133) VALUE
000064 'CBLHO403 - START OF WORKING STORAGE'.
000065 01 P-CARD.
000066 03 P-DATE.
000067 05 PMM PIC 9(2).
000068 05 PIC X VALUE ' '.
000069 05 PDD PIC 9(2).
000070 05 PIC X VALUE ','.
000071 05 PIC X VALUE ' '.
000072 05 PYY PIC 9(4).
000073 03 PIC X(55) VALUE SPACES.
000074 01 WS-EMP-REC.
000075 03 EMP-NO.
000076 05 EMP-NO1 PIC 9(2).
000077 05 PIC X VALUE '-'.
000078 05 EMP-NO2 PIC 9(4).
000079 03 EMP-NAME PIC X(30).
000080 03 CAT PIC 9.
000081 03 TAX-CODE PIC 9(4).
000082 03 POST PIC X(10).
000083 03 INCOME.
000084 05 BMS PIC 9(5).
000085 05 BONUS PIC 9(5).
000086 05 PS PIC 9(5).
000087 05 TA PIC 9(3).
000088 05 MA PIC 9(3).
000089 05 SL PIC 9(5).
000090 05 AL PIC 9(5).
000091 05 CL PIC 9(5).
000092 05 STUD-L PIC 9(5).
000093 05 HL PIC 9(6).
000094 05 FILLER PIC X(2).
000095 01 WS-TSCAT1.
000096 03 WS-TSCAT1 OCCURS 401 TIMES INDEXED BY X.
000097 05 LOWER-RANGE1 PIC 9(5).
000098 05 UPPER-RANGE1 PIC 9(5).
000099 05 DEDN1 PIC 9(4).
000100 05 FILLER PIC 9(6).
000101 01 WS-TSCAT2.
000102 03 WS-TSCAT2 OCCURS 401 TIMES INDEXED BY Y.
000103 05 LOWER-RANGE2 PIC 9(5).
000104 05 UPPER-RANGE2 PIC 9(5).
000105 05 DEDN2 OCCURS 11 TIMES.
000106 07 K PIC 9(3).
000107 05 FILLER PIC 9(6).
000108 01 WS-TSCAT3.
000109 03 WS-TSCAT3 OCCURS 401 TIMES INDEXED BY Z.
000110 05 LOWER-RANGE3 PIC 9(5).
000111 05 UPPER-RANGE3 PIC 9(5).
000112 05 DEDN3 OCCURS 11 TIMES.
000113 07 B PIC 9(3).
000114 05 FILLER PIC 9(6).
000115 01 TSCAT1-TAB.
000116 03 TSCAT1-ENTRIES OCCURS 401 TIMES INDEXED BY AX.
000117 05 LOWER-RANGE1X PIC 9(5).
000118 05 UPPER-RANGE1X PIC 9(5).
000119 05 DEDN1X PIC 9(4).
000120 05 FILLER PIC 9(6).
000121 01 TSCAT2-TAB.
000122 03 TSCAT2-ENTRIES OCCURS 401 TIMES INDEXED BY BX.
000123 05 LOWER-RANGE2X PIC 9(5).
000124 05 UPPER-RANGE2X PIC 9(5).
000125 05 DEDN2 OCCURS 11 TIMES.
000126 07 KX PIC 9(3).
000127 05 FILLER PIC 9(6).
000128 01 TSCAT3-TAB.
000129 03 TSCAT3-ENTRIES OCCURS 401 TIMES INDEXED BY CX.
000130 05 LOWER-RANGE3X PIC 9(5).
000131 05 UPPER-RANGE3X PIC 9(5).
000132 05 DEDN3 OCCURS 11 TIMES.
000133 07 KV PIC 9(3).
000134 05 FILLER PIC 9(6).
000135 01 DATA-TO-BE-SENT-TO-UNSTRING.
000136 03 EMP-NAME-STR PIC X(30).
000137 03 USTR-NAME.
000138 05 FIRST-NAME PIC X(10).
000139 05 MI PIC X(10).
000140 05 LAST-NAME PIC X(10).
000141 01 NAME-OUT.
000142 03 LAST-NAME1 PIC X(10).
000143 03 FIRST-NAME1 PIC X(10).
000144 03 MI1 PIC X(10).
000145 01 H1.
000146 03 PIC X(53) VALUE
000147 ' CBLH0403'.
000148 03 PIC X(72) VALUE
000149 'ITAC MSC OUTSOURCING SDN BHD'.
000150 03 PIC X(5) VALUE
000151 'PAGE'.
000152 03 HEAD-PCTR PIC ZZ9B.
000153 03 PIC X(1) VALUE SPACE.
000154 01 H2.
000155 03 PIC X(46) VALUE SPACES.
000156 03 PIC X(87) VALUE
000157 'JALAN AMPANG 50450, KUALA LUMPUR, MALAYSIA'.
000158 01 H3.
000159 03 PIC X(55) VALUE SPACES.
000160 03 PIC X(78) VALUE
000161 'EMPLOYEE PAYROLL SUMMARY'.
000162 01 H4.
000163 03 PIC X(56) VALUE SPACES.
000164 03 PIC X(4) VALUE 'FOR'.
000165 03 PIC X VALUE ' '.
000166 03 HMM PIC X(9).
000167 03 PIC X VALUE ' '.
000168 03 HDD PIC 9(2).
000169 03 PIC X VALUE ','.
000170 03 PIC X VALUE ' '.
000171 03 HYY PIC 9(4).
000172 03 PIC X(54) VALUE SPACES.
000173 01 H5.
000174 03 PIC X(6) VALUE SPACES.
000175 03 PIC X(8) VALUE
000176 'EMPLOYEE'.
000177 03 PIC X(55) VALUE SPACES.
000178 03 PIC X(5) VALUE
000179 'OTHER'.
000180 03 PIC X(20) VALUE SPACES.
000181 03 PIC X(5) VALUE
000182 'T A X'.
000183 03 PIC X(9) VALUE SPACES.
000184 03 PIC X(5) VALUE
000185 'OTHER'.
000186 03 PIC X(20) VALUE SPACES.
000187 01 H6.
000188 03 PIC X(7) VALUE SPACES.
000189 03 PIC X(6) VALUE
000190 'NUMBER'.
000191 03 PIC X(15) VALUE SPACES.
000192 03 PIC X(10) VALUE
000193 'N A M E'.
000194 03 PIC X(9) VALUE
000195 'BASIC PAY'.
000196 03 PIC X(6) VALUE SPACES.
000197 03 PIC X(6) VALUE
000198 'INCOME'.
000199 03 PIC X(8) VALUE SPACES.
000200 03 PIC X(5) VALUE
000201 'E P F'.
000202 03 PIC X(6) VALUE SPACES.
000203 03 PIC X(8) VALUE
000204 'WITHHELD'.
000205 03 PIC X(7) VALUE SPACES.
000206 03 PIC X(5) VALUE
000207 'DEDNS'.
000208 03 PIC X(8) VALUE SPACES.
000209 03 PIC X(12) VALUE
000210 'NET PAY'.
000211 01 H7.
000212 03 FILLER PIC X(27) VALUE
000213 '*** INVALID PARAMETER CARD-'.
000214 01 F1.
000215 03 PIC X(22) VALUE SPACES.
000216 03 PIC X(23) VALUE
000217 'OVER-ALL TOTALS : '.
000218 03 D-TOT-EMP PIC ZZ9B(2).
000219 03 D-TOT-BPAY PIC Z,ZZZ,ZZ9.99B(2).
000220 03 D-TOT-OTHER-INC PIC ZZ,ZZ9.99B(5).
000221 03 D-TOT-EPF PIC ZZ9.99B(5).
000222 03 D-TOT-WHELD PIC ZZ,ZZ9.99B(5).
000223 03 D-TOT-O-DEDN PIC ZZ,ZZ9.99B(5).
000224 03 D-NET-PAY PIC ZZ,ZZ9.99B(4).
000225 01 F2.
000226 03 PIC X(38) VALUE SPACES.
000227 03 PIC X(95) VALUE
000228 '* * * T H I S I S T H E L A S T P A
000229 - '*'.
000230 * 01 H1C2.
000231 * 03 PIC X(45) VALUE
000232 * ' EMP NO:' 99-9999.
000233 * 03 PIC X(24) VALUE
000234 * ' POSITION: ' XXXXXXXXX.
000235 * 01 H2C2.
000236 * 03 PIC X(41) VALUE
000237 * ' NAME : ' XXXXXXXXXXXXXXXXXXXXXXXXXXX.
000238 * 03 PIC X(8) VALUE
000239 * 'CAT: '9.
000240 * 03 PIC X(14) VALUE
000241 * 'TAXCDE: 'XXXX.
000242 * 01 H3C2.
000243 * 03 PIC X(133) VALUE
000244 * '-----------------------------------------------
000245 * '-----------------------------------------------
000246 * '-------------------------'.
000247 * 01 H4C2.
000248 * 03 PIC X(34) VALUE
000249 * ' I N C O M E |'.
000250 * 03 PIC X(33) VALUE
000251 * ' DEDUCTIONS'.
000252 * 01 F3C2.
000253 * 03 PIC X(34) VALUE
000254 * ' TOTAL INCOME | 'ZZZ,ZZ9.99.
000255 * 03 PIC X(33) VALUE
000256 * ' TOTAL DEDUCTIONS | 'ZZZ,ZZ9.99.
000257 * 01 F4C2.
000258 * 03 PIC X(45) VALUE SPACES.
000259 * 03 PIC X(22) VALUE
000260 * 'NET PAY |' ZZZ,ZZ9.99.
000261 * 01 F5C2.
000262 * 03 PIC X(51) VALUE
000263 * '========='.
000264 01 BLNK.
000265 03 FILLER PIC X(133) VALUE SPACES.
000266 01 SYS-DATE.
000267 03 S-MM PIC 9(2).
000268 03 S-DD PIC 9(2).
000269 03 S-YY PIC 9(4).
000270 01 WORK-VAR.
000271 03 LCTR PIC 99.
000272 03 PCTR PIC 99.
000273 03 EOF PIC X VALUE 'N'.
000274 03 YR PIC 9(4).
000275 03 TOT-EMP PIC 99.
000276 03 VAL-SW PIC X VALUE 'Y'.
000277 03 RX PIC 99.
000278 03 MAX1 PIC 9(3).
000279 03 MAX2 PIC 9(3).
000280 03 MAX3 PIC 9(3).
000281 03 BMS-EPF PIC 9(3)V99.
000282 03 BMS-EPF1 PIC 9(3)V99.
000283 03 MPR PIC 9(3).
000284 03 MCR PIC 9(3).
000285 03 TAXABLE-INC PIC 9(6).
000286 03 TOT-TAXABLE-INC PIC 9(6).
000287 03 BONUS-STD PIC 9(3)V99.
000288 03 BONUS-EPF PIC 9(3)V99.
000289 03 TAXABLE-BONUS PIC 9(4).
000290 03 SV-EMP-NO1 PIC 9(7).
000291 03 SV-EMP-NO2 PIC 9(7).
000292 03 SV-EMP-NAME PIC X(30).
000293 03 STD PIC 9(4)V99.
000294 03 BMS-MTH-STD PIC 9(4)V99.
000295 03 BPAY PIC 9(5)V99.
000296 03 OTHER-INC PIC 9(5)V99.
000297 03 OTHER-INCOME PIC 9(5)V99.
000298 03 OTHER-DEDNS PIC 9(5)V99.
000299 03 EPF PIC 9(3)V99.
000300 03 EPF1 PIC 9(3)V99.
000301 03 TOTAL-INCOME PIC 9(5)V99.
000302 03 TOT-DEDNS PIC 9(5)V99.
000303 03 T-WHELD PIC 9(5)V99.
000304 03 T-WHELD1 PIC 9(5)V99.
000305 03 X PIC 9(3).
000306 03 Y PIC 9(3).
000307 03 Z PIC 9(3).
000308 03 ABC PIC 9(3).
000309 03 OTHER-DEDN PIC 9(5)V99.
000310 03 NET-PAY PIC 9(5)V99.
000311 03 NET-PAY1 PIC 9(5)V99.
000312 03 ADD-INC PIC 9(6)V99.
000313 03 ADD-INC-EPF PIC 9(6)V99.
000314 03 TAX-ADD-INC PIC 9(6)V99.
000315 03 MON-ADD-INC PIC 9(6)V99.
000316 03 AGG-INC PIC 9(6)V99.
000317 03 ADD-INC-STD PIC 9(6)V99.
000318 03 TAX-DUE PIC 9(6)V99.
000319 03 MON-TAXABLE-BONUS PIC 9(6)V99.
000320 03 TOT-EPM PIC 9(3).
000321 03 TOT-BPAY PIC 9(7)V99.
000322 03 TOT-OTHER-INC PIC 9(7)V99.
000323 03 TOT-EPF PIC 9(7)V99.
000324 03 TOT-TWHELD PIC 9(7)V99.
000325 03 TOT-OTHER-DEDN PIC 9(7)V99.
000326 03 TOT-NET-PAY PIC 9(7)V99.
000327 03 MON-VAL VALUE 'JANUARY 31FEBRUARY 2
000328 - ' 31APRIL 30MAY 31JUNE 30JULY
000329 - 'ST 31SEPTEMBER 30OCTOBER 31NOVEMBER 30D
000330 - '31'.
000331 05 MON-TAB OCCURS 12.
000332 07 LIT PIC X(9).
000333 07 NOD PIC 9(9).
000334 03 REMAIN PIC 99.
000335 01 NEW-REC.
000336 03 NEMP-NO1 PIC 99.
000337 03 NDASH PIC X VALUE '-'.
000338 03 NEMP-NO2 PIC 9(4).
000339 03 NEMP-NAME PIC X(30).
000340 03 NBPAY PIC 9(7).
000341 03 N-OTHER-INC PIC 9(7).
000342 03 N-EPF PIC 9(5).
000343 03 N-TWHELD PIC 9(7).
000344 03 N-OTHER-DEDNS PIC 9(7).
000345 03 N-NET-PAY PIC 9(7).
000346 01 DTL-LINE1.
000347 03 DEMP-NO1 PIC 99.
000348 03 DDASH PIC X.
000349 03 DEMP-NO2 PIC 9(4)B(5).
000350 03 DEMP-NAME PIC X(30)B(5).
000351 03 DBPAY PIC ZZ,ZZ9.99B(5).
000352 03 DOTHER-INC PIC ZZ,ZZ9.99B(5).
000353 03 D-EPF PIC ZZ9.99B(5).
000354 03 D-TWHELD PIC ZZ,ZZ9.99B(5).
000355 03 DOTHER-DEDN PIC ZZ,ZZ9.99B(5).
000356 03 DNET-PAY PIC ZZ,ZZ9.99B(4).
000357 PROCEDURE DIVISION.
000358 0000-MAIN SECTION.
000359 0000-MAIN-PAR.
000360 PERFORM 0100-CHK-CARD.
000361 IF VAL-SW = 'Y'
000362 1 PERFORM 1000-INIT
000363 1 PERFORM 2000-PROC
000364 1 PERFORM 2700-NAME
000365 1 PERFORM 2800-NAME2
000366 1 PERFORM 2900-MOVE-PRINT
000367 ELSE
000368 1 DISPLAY H7
000369 1 DISPLAY P-CARD
000370 END-IF.
000371 0000-STOP.
000372 STOP RUN.
000373 0100-CHK-CARD SECTION.
000374 0100-CHK-CARD-PAR.
000375 ACCEPT P-CARD.
000376 MOVE PMM TO HMM.
000377 MOVE PDD TO HDD.
000378 MOVE PYY TO HYY.
000379 IF PDD NOT NUMERIC AND PMM NOT NUMERIC AND PYY NOT N
000380 1 MOVE 'N' TO VAL-SW
000381 ELSE
000382 1 IF PMM < 1 OR PMM > 12
000383 2 MOVE 'N' TO VAL-SW
000384 1 ELSE
000385 2 MOVE PYY TO YR
000386 2 PERFORM 0110-CHK-LEAP
000387 2 IF PDD < 1 OR PDD > NOD(PMM)
000388 3 MOVE 'N' TO VAL-SW
000389 2 ELSE
000390 3 ACCEPT SYS-DATE FROM DATE YYYYMMDD
000391 3 IF PDD NOT = NOD(S-MM)
000392 4 MOVE 'N' TO VAL-SW
000393 3 ELSE
000394 4 IF PMM NOT = NOD(S-MM)
000395 5 MOVE 'N' TO VAL-SW
000396 4 ELSE
000397 5 IF PMM NOT = S-MM
000398 6 MOVE 'N' TO VAL-SW
000399 5 ELSE
000400 6 IF PYY NOT = S-YY
000401 7 MOVE 'N' TO VAL-SW.
000402 0100-EXIT.
000403 EXIT.
000404 0110-CHK-LEAP SECTION.
000405 0110-CHK-LEAP-PAR.
000406 DIVIDE PYY BY 4 GIVING REMAIN.
000407 IF REMAIN = 0
000408 1 MOVE 29 TO NOD(2)
000409 ELSE
000410 1 MOVE 28 TO NOD(2)
000411 END-IF.
000412 0110-EXIT.
000413 EXIT.
000414 1000-INIT SECTION.
000415 1000-INIT-PAR.
000416 PERFORM 1100-LOAD-TSCAT1.
000417 PERFORM 1200-LOAD-TSCAT2.
000418 PERFORM 1300-LOAD-TSCAT3.
000419 OPEN INPUT TSCAT1
000420 TSCAT2
000421 TSCAT3
000422 SORT SORT-FILE ON DESCENDING KEY S-NPAY
000423 INPUT PROCEDURE 2000-PROC
000424 OUTPUT PROCEDURE 2900-MOVE-PRINT
000425 MOVE 0 TO PCTR.
000426 MOVE 54 TO LCTR.
000427 MOVE LIT(PMM) TO HMM.
000428 MOVE PDD TO HDD.
000429 MOVE PYY TO HYY.
000430 1000-EXIT.
000431 EXIT.
000432 1100-LOAD-TSCAT1 SECTION.
000433 1100-LOAD-TSCAT1-PAR.
000434 MOVE 0 TO MAX1.
000435 MOVE 0 TO X.

==000435==> IGYPS0037-S "X" was not a uniquely defined name. The definition to
be determined from the context. The reference to the na
000436 READ TSCAT1 INTO WS-TSCAT1

==000436==> IGYPS0037-S "WS-TSCAT1" was not a uniquely defined name. The defini
could not be determined from the context. The reference
discarded.

000437 1 AT END MOVE 'Y' TO EOF
000438 END-READ.
000439 PERFORM UNTIL MAX1 >= 401
000440 1 ADD 1 TO MAX1
000441 1 ADD 1 TO X

==000441==> IGYPS0037-S "X" was not a uniquely defined name. The definition to
be determined from the context. The reference to the na

000442 1 MOVE WS-TSCAT1(X) TO TSCAT1-TAB(MAX1)

==000442==> IGYPS0037-S "WS-TSCAT1" was not a uniquely defined name. The defini
could not be determined from the context. The reference
discarded.

==000442==> IGYPS0037-S "X" was not a uniquely defined name. The definition to
be determined from the context. The reference to the na

==000442==> IGYPS2120-S Expected a reference-modification specification but foun
"MOVE" statement was discarded.

000443 1 READ TSCAT1 TO WS-TSCAT1

==000443==> IGYPS2072-S "TO" was invalid. Skipped to the next verb, period or p
definition.

000444 1 AT END MOVE 'Y' TO EOF

000445 1 END-READ

==000445==> IGYPS2113-E The explicit scope terminator "END-READ" was found witho
verb. The scope terminator was discarded.

000446 END-PERFORM.
000447 1100-EXIT.
000448 EXIT.
000449 1200-LOAD-TSCAT2 SECTION.
000450 1200-LOAD-TSCAT2-PAR.
000451 MOVE 0 TO MAX2.
000452 MOVE 0 TO Y.

==000452==> IGYPS0037-S "Y" was not a uniquely defined name. The definition to
be determined from the context. The reference to the na

000453 READ TSCAT2 INTO WS-TSCAT2

==000453==> IGYPS0037-S "WS-TSCAT2" was not a uniquely defined name. The defini
could not be determined from the context. The reference
discarded.

000454 1 AT END MOVE 'Y' TO EOF
000455 END-READ.
000456 PERFORM UNTIL MAX2 >= 401
000457 1 ADD 1 TO MAX2
000458 1 ADD 1 TO Y

==000458==> IGYPS0037-S "Y" was not a uniquely defined name. The definition to
be determined from the context. The reference to the na

000459 1 MOVE WS-TSCAT2(Y) TO TSCAT2-TAB(MAX2)

==000459==> IGYPS0037-S "WS-TSCAT2" was not a uniquely defined name. The defini
could not be determined from the context. The reference

==000459==> IGYPS0037-S "Y" was not a uniquely defined name. The definition to
be determined from the context. The reference to the na

==000459==> IGYPS2120-S Expected a reference-modification specification but foun

"MOVE" statement was discarded.

000460 1 READ TSCAT2 INTO WS-TSCAT2

==000460==> IGYPS0037-S "WS-TSCAT2" was not a uniquely defined name. The defini
could not be determined from the context. The reference
discarded.

000461 2 AT END MOVE 'Y' TO EOF
000462 1 END-READ
000463 END-PERFORM.
000464 1200-EXIT.
000465 EXIT.
000466 1300-LOAD-TSCAT3 SECTION.
000467 1300-LOAD-TSCAT3-PAR.
000468 MOVE 0 TO MAX3.
000469 MOVE 0 TO Z.

==000469==> IGYPS0037-S "Z" was not a uniquely defined name. The definition to
be determined from the context. The reference to the na

000470 READ TSCAT3 INTO WS-TSCAT3

==000470==> IGYPS0037-S "WS-TSCAT3" was not a uniquely defined name. The defini
could not be determined from the context. The reference
discarded.

000471 1 AT END MOVE 'Y' TO EOF
000472 END-READ.
000473 PERFORM UNTIL MAX3 >= 401
000474 1 ADD 1 TO MAX3
000475 1 ADD 1 TO Z

==000475==> IGYPS0037-S "Z" was not a uniquely defined name. The definition to
be determined from the context. The reference to the na

000476 1 MOVE WS-TSCAT3(Z) TO TSCAT3-TAB(MAX3)

==000476==> IGYPS0037-S "WS-TSCAT3" was not a uniquely defined name. The defini
could not be determined from the context. The reference
discarded.

==000476==> IGYPS0037-S "Z" was not a uniquely defined name. The definition to
be determined from the context. The reference to the na

==000476==> IGYPS2120-S Expected a reference-modification specification but foun
"MOVE" statement was discarded.

000477 1 READ TSCAT3 INTO WS-TSCAT3

==000477==> IGYPS0037-S "WS-TSCAT3" was not a uniquely defined name. The defini
could not be determined from the context. The reference
discarded.

000478 2 AT END MOVE 'Y' TO EOF
000479 1 END-READ
000480 END-PERFORM.
000481 1300-EXIT.
000482 EXIT.
000483 2000-PROC SECTION.
000484 2000-PROC-PAR.
000485 OPEN INPUT EMP-FILE
000486 MOVE 0 TO TOT-EMP
000487 READ EMP-FILE INTO WS-EMP-REC
000488 1 AT END MOVE 'Y' TO EOF
000489 END-READ.
000490 PERFORM UNTIL EOF = 'Y'
000491 1 MOVE 0 TO TOT-BPAY
000492 1 MOVE 0 TO TOT-OTHER-INC
000493 1 MOVE 0 TO TOT-EPF
000494 1 MOVE 0 TO TOT-TWHELD
000495 1 MOVE 0 TO TOT-OTHER-DEDN
000496 1 MOVE 0 TO TOT-NET-PAY
000497 1 PERFORM 2100-NEW-EMP
000498 1 PERFORM UNTIL SV-EMP-NO1 NOT = EMP-NO1 AND SV-E
000499 1 - OT = EMP-NO2 AND EOF = 'Y'
000500 2 PERFORM 2200-CAL
000501 2 READ EMP-FILE INTO WS-EMP-REC
000502 3 AT END MOVE 'Y' TO EOF
000503 2 END-READ
000504 1 END-PERFORM
000505 1 PERFORM 2600-EMP-BREAK
000506 1 RELEASE S-REC FROM NEW-REC
000507 END-PERFORM.
000508 CLOSE EMP-FILE.
000509 2000-EXIT.
000510 EXIT.
000511 2100-NEW-EMP SECTION.
000512 2100-NEW-EMP-PAR.
000513 MOVE EMP-NO1 TO SV-EMP-NO1
000514 MOVE EMP-NO2 TO SV-EMP-NO2
000515 MOVE EMP-NAME TO SV-EMP-NAME
000516 MOVE BMS TO BPAY
000517 MOVE OTHER-INC TO OTHER-INCOME
000518 MOVE BMS-EPF TO EPF1
000519 MOVE T-WHELD TO T-WHELD1
000520 MOVE OTHER-DEDN TO OTHER-DEDNS
000521 MOVE NET-PAY TO NET-PAY1.
000522 2200-CAL SECTION.
Display Filter View Print Options Help
-------------------------------------------------------------------------------
SDSF OUTPUT DISPLAY TEST JOB11845 DSID 101 LINE 702 COLUMNS 02- 81
COMMAND INPUT ===> SCROLL ===> CSR
000523 2200-CAL-PAR.
000524 COMPUTE TOTAL-INCOME = BMS + BONUS + PS + TA + MA.
000525 COMPUTE OTHER-INCOME = BONUS + PS + TA + MA
000526 COMPUTE OTHER-DEDNS = T-WHELD + SL + AL + CL + STUD-
000527 COMPUTE TOT-DEDNS = EPF + T-WHELD + SL + AL + CL + S
000528 - -L + HL.
000529 MULTIPLY 0.11 BY BMS GIVING BMS-EPF ROUNDED
000530 IF BMS-EPF >= 416
000531 1 MOVE 416 TO BMS-EPF
000532 END-IF.
000533 DIVIDE 9000 BY 12 GIVING MPR
000534 DIVIDE 3000 BY 12 GIVING MCR
000535 PERFORM 2200-TAX-SEARCH
000536 IF BONUS NOT = 0
000537 1 ADD BONUS TO ADD-INC

000539 1 IF PS NOT = 0
000540 2 ADD PS TO ADD-INC
000541 1 ELSE
000542 2 IF BONUS NOT = 0 AND PS NOT = 0
000543 3 COMPUTE ADD-INC = BONUS + PS
000544 3 COMPUTE ADD-INC-EPF = ADD-INC * 0.11
000545 3 COMPUTE TAX-ADD-INC = ADD-INC - ADD-I
000546 3 COMPUTE MON-ADD-INC = TAX-ADD-INC / 1
000547 3 COMPUTE AGG-INC = TAXABLE-INC + MON-AD
000548 2 END-IF
000549 1 END-IF
000550 END-IF.
000551 IF ADD-INC >= 416
000552 1 MOVE 416 TO ADD-INC
000553 END-IF.
000554 PERFORM 2300-TAX1-SEARCH
000555 COMPUTE ADD-INC-STD = (STD - BMS-MTH-STD) * 12.
000556 COMPUTE TAX-DUE = BMS-MTH-STD + ADD-INC-STD.
000557 * COMPUTE TAXABLE-BONUS = BONUS - BONUS-EPF.
000558 * DIVIDE TAXABLE-BONUS BY 12 GIVING MON-TAXABLE-BONU
000559 COMPUTE TAXABLE-INC ROUNDED = (BMS-EPF + TA + MA)-
000560 - + MPR + MCR).

==000560==> IGYPS0001-W A blank was missing before character "+" in column 14.
assumed.

000561 2100-EXIT.
000562 EXIT.
000563 2200-TAX-SEARCH SECTION.
000564 2200-TAX-SEARCH-PAR.
000565 IF CAT = 1
000566 1 PERFORM VARYING AX FROM 1 BY 1 UNTIL AX > 401
000567 2 IF TAXABLE-INC >= LOWER-RANGE1X(AX) AND UPPER-RA
000568 3 MOVE DEDN1X(AX) TO BMS-MTH-STD
000569 2 END-IF
000570 1 END-PERFORM
000571 ELSE
000572 1 IF CAT = 2
000573 2 PERFORM VARYING BX FROM 1 BY 1 UNTIL BX > 401
000574 3 PERFORM VARYING RX FROM 1 BY 1 UNTIL RX > 11
000575 4 IF TAXABLE-INC >= LOWER-RANGE2X(BX) AND UPPER-RANG
000576 5 EVALUATE TRUE
000577 6 WHEN TAX-CODE = 'K' MOVE KX(BX RX)TO BMS-MTH-STD
000578 6 WHEN TAX-CODE = 'KA1' MOVE KX(BX RX)TO BMS-MTH-ST
000579 6 WHEN TAX-CODE = 'KA2' MOVE KX(BX RX)TO BMS-MTH-ST
000580 6 WHEN TAX-CODE = 'KA3' MOVE KX(BX RX)TO BMS-MTH-ST
000581 6 WHEN TAX-CODE = 'KA4' MOVE KX(BX RX)TO BMS-MTH-ST
000582 6 WHEN TAX-CODE = 'KA5' MOVE KX(BX RX)TO BMS-MTH-ST
000583 6 WHEN TAX-CODE = 'KA6' MOVE KX(BX RX)TO BMS-MTH-ST
000584 6 WHEN TAX-CODE = 'KA7' MOVE KX(BX RX)TO BMS-MTH-ST
000585 6 WHEN TAX-CODE = 'KA8' MOVE KX(BX RX)TO BMS-MTH-ST
000586 6 WHEN TAX-CODE = 'KA9' MOVE KX(BX RX)TO BMS-MTH-ST
000587 6 WHEN TAX-CODE = 'KA10' MOVE KX(BX RX)TO BMS-MTH-S
000588 4 END-IF
000589 3 END-PERFORM
000590 2 END-PERFORM.
000591 IF CAT = 3
000592 1 PERFORM VARYING CX FROM 1 BY 1 UNTIL CX > 401
000593 2 PERFORM VARYING RX FROM 1 BY 1 UNTIL RX > 11
000594 3 IF TAXABLE-INC >= LOWER-RANGE3X(CX) AND UPPER-RA
000595 4 EVALUATE TRUE
000596 5 WHEN TAX-CODE = 'K' MOVE KV(CX RX)TO BMS-MTH-ST
000597 5 WHEN TAX-CODE = 'KA1' MOVE KV(CX RX) TO BMS-MTH
000598 5 WHEN TAX-CODE = 'KA2' MOVE KV(CX RX) TO BMS-MTH
000599 5 WHEN TAX-CODE = 'KA3' MOVE KV(CX RX) TO BMS-MTH
000600 5 WHEN TAX-CODE = 'KA4' MOVE KV(CX RX) TO BMS-MTH
000601 5 WHEN TAX-CODE = 'KA5' MOVE KV(CX RX) TO BMS-MTH
000602 5 WHEN TAX-CODE = 'KA6' MOVE KV(CX RX) TO BMS-MTH
000603 5 WHEN TAX-CODE = 'KA7' MOVE KV(CX RX) TO BMS-MTH
000604 5 WHEN TAX-CODE = 'KA8' MOVE KV(CX RX) TO BMS-MTH
000605 5 WHEN TAX-CODE = 'KA9' MOVE KV(CX RX) TO BMS-MTH
000606 5 WHEN TAX-CODE = 'KA10' MOVE KV(CX RX) TO BMS-MT
000607 3 END-IF
000608 2 END-PERFORM
000609 1 END-PERFORM.
000610 * IF CAT = 3
000611 * PERFORM VARYING CX FROM 1 BY 1 UNTIL CX > 401
000612 * IF TAXABLE-INC >= LOWER-RANGE(CX) AND UPPER-
000613 * EVALUATE TRUE
000614 * WHEN TAX-CODE = 'K' MOVE TSCAT2(CX 1) TO BSC
000615 * WHEN TAX-CODE = 'KA1' MOVE TSCAT3(CX 2) TO BS
000616 * WHEN TAX-CODE = 'KA2' MOVE TSCAT3(CX 3) TO BS
000617 * WHEN TAX-CODE = 'KA3' MOVE TSCAT3(CX 4) TO BS
000618 * WHEN TAX-CODE = 'KA4' MOVE TSCAT3(CX 5) TO BS
000619 * WHEN TAX-CODE = 'KA5' MOVE TSCAT3(CX 6) TO BS
000620 * WHEN TAX-CODE = 'KA6' MOVE TSCAT3(CX 7) TO BS
000621 * WHEN TAX-CODE = 'KA7' MOVE TSCAT3(CX 8) TO BS
000622 * WHEN TAX-CODE = 'KA8' MOVE TSCAT3(CX 9) TO BS
000623 * WHEN TAX-CODE = 'KA9' MOVE TSCAT2(CX 10)TO BS
000624 2300-TAX1-SEARCH SECTION.
000625 2300-TAX1-SEARCH-PAR.
000626 IF CAT = 1
000627 1 PERFORM VARYING AX FROM 1 BY 1 UNTIL AX > 401
000628 2 IF TAXABLE-INC >= LOWER-RANGE1X(AX) AND UPPER-RA
000629 3 MOVE DEDN1X(AX) TO STD
000630 2 END-IF
000631 1 END-PERFORM
000632 ELSE
000633 1 IF CAT = 2
000634 2 PERFORM VARYING BX FROM 1 BY 1 UNTIL BX > 401
000635 3 IF TAXABLE-INC >= LOWER-RANGE2X(BX) AND UPPER-RA
000636 4 EVALUATE TRUE
000637 5 WHEN TAX-CODE = 'K' MOVE KX(BX 1) TO STD
000638 5 WHEN TAX-CODE = 'KA1' MOVE KX(BX 2) TO STD
000639 5 WHEN TAX-CODE = 'KA2' MOVE KX(BX 3) TO STD
000640 5 WHEN TAX-CODE = 'KA3' MOVE KX(BX 4) TO STD
000641 5 WHEN TAX-CODE = 'KA4' MOVE KX(BX 5) TO STD
000642 5 WHEN TAX-CODE = 'KA5' MOVE KX(BX 6) TO STD
000643 5 WHEN TAX-CODE = 'KA6' MOVE KX(BX 7)TO STD
000644 5 WHEN TAX-CODE = 'KA7' MOVE KX(BX 8) TO STD
000645 5 WHEN TAX-CODE = 'KA8' MOVE KX(BX 9) TO STD
000646 5 WHEN TAX-CODE = 'KA9' MOVE KX(BX 10)TO STD
000647 5 WHEN TAX-CODE = 'KA10' MOVE KX(BX 11)TO STD
000648 3 END-IF
000649 2 END-PERFORM.
000650 IF CAT = 3
000651 1 PERFORM VARYING CX FROM 1 BY 1 UNTIL CX > 401
000652 2 IF TAXABLE-INC >= LOWER-RANGE3X(CX) AND UPPER-RA
000653 3 EVALUATE TRUE
000654 4 WHEN TAX-CODE = 'K' MOVE KV(CX 1) TO STD
000655 4 WHEN TAX-CODE = 'KA1' MOVE KV(CX 2) TO STD
000656 4 WHEN TAX-CODE = 'KA2' MOVE KV(CX 3) TO STD
000657 4 WHEN TAX-CODE = 'KA3' MOVE KV(CX 4) TO STD
000658 4 WHEN TAX-CODE = 'KA4' MOVE KV(CX 5) TO STD
000659 4 WHEN TAX-CODE = 'KA5' MOVE KV(CX 6) TO STD
000660 4 WHEN TAX-CODE = 'KA6' MOVE KV(CX 7) TO STD
000661 4 WHEN TAX-CODE = 'KA7' MOVE KV(CX 8) TO STD
000662 4 WHEN TAX-CODE = 'KA8' MOVE KV(CX 9) TO STD
000663 4 WHEN TAX-CODE = 'KA9' MOVE KV(CX 10) TO STD
000664 4 WHEN TAX-CODE = 'KA10' MOVE KV(CX 11) TO STD
000665 2 END-IF
000666 1 END-PERFORM
000667 END-IF.
000668 2600-EMP-BREAK SECTION.
000669 2600-EMP-BREAK-PAR.
000670 MOVE SV-EMP-NO1 TO NEMP-NO1 .
000671 MOVE SV-EMP-NO2 TO NEMP-NO2 .
000672 MOVE SV-EMP-NAME TO NEMP-NAME.
000673 MOVE BPAY TO NBPAY .
000674 MOVE OTHER-INCOME TO N-OTHER-INC .
000675 MOVE EPF1 TO N-EPF.
000676 MOVE T-WHELD1 TO N-TWHELD.
000677 MOVE OTHER-DEDNS TO N-OTHER-DEDNS.
000678 MOVE NET-PAY1 TO N-NET-PAY.
000679 2600-EXIT.
000680 EXIT.
000681 2700-NAME SECTION.
000682 2700-NAME-PAR.
000683 MOVE 0 TO ABC
000684 INSPECT EMP-NAME-STR TALLYING ABC FOR ALL '/', '*',
000685 IF ABC > 0
000686 1 PERFORM 2750-NAME1
000687 ELSE
000688 1 PERFORM 2900-MOVE-PRINT
000689 END-IF.
000690 2700-EXIT.
000691 EXIT.
000692 2750-NAME1 SECTION.
000693 2750-NAME1-PAR.
000694 UNSTRING EMP-NAME-STR
000695 DELIMITED BY '/', '*', '-'

==000695==> IGYPS0088-S The "UNSTRING" statement was invalid. Expected "INTO",
The statement was discarded.

000696 INTO FIRST-NAM

User avatar
DavidatK
Active Member
Posts: 65
Joined: Tue Mar 27, 2007 8:41 am
Location: Troy, MI USA

Post by DavidatK » Sat Feb 16, 2008 4:09 am

Please check the comments after each error. What caused the smiley faces?




LineID PL SL ----+-*A-1-B--+----2----+----3----+----4----+----5----+----6---
000001 IDENTIFICATION DIVISION.
000002 PROGRAM-ID. CBLHO403.
000003 AUTHOR. BREENTHA.
000004 DATE-WRITTEN. JANUARY 31,2008.
000005 DATE-COMPILED. 02/10/08.
000006 * REMARKS.
000007 * THIS PROGRAM GENERATES THE EMPLOYEE PAYR
000008 * LISTING AND INDIVIDUAL PAYSLIP REPORT.
000009 ENVIRONMENT DIVISION.
000010 CONFIGURATION SECTION.
000011 SOURCE-COMPUTER. ZOS.
000012 OBJECT-COMPUTER. ZOS.
000013 INPUT-OUTPUT SECTION.
000014 FILE-CONTROL.
000015 SELECT EMP-FILE ASSIGN TO CBLHO4I1.
000016 SELECT TSCAT1 ASSIGN TO CBLHO4I2.
000017 SELECT TSCAT2 ASSIGN TO CBLHO4I3.
000018 SELECT TSCAT3 ASSIGN TO CBLHO4I4.
000019 SELECT EMP-SUM ASSIGN TO CBLHO4O1.
000020 SELECT INDV-PAY-SLIP ASSIGN TO CBLHO4O2.
000021 SELECT SORT-FILE ASSIGN TO SORTWK01.
000022 DATA DIVISION.
000023 FILE SECTION.
000024 FD EMP-FILE
000025 RECORD CONTAINS 100 CHARACTERS
000026 BLOCK CONTAINS 2000 CHARACTERS
000027 RECORDING MODE IS F
000028 LABEL RECORDS STANDARD.
000029 01 EMP-REC PIC X(100).
000030 FD TSCAT1
000031 RECORD CONTAINS 20 CHARACTERS
000032 BLOCK CONTAINS 1000 CHARACTERS
000033 RECORDING MODE IS F
000034 LABEL RECORDS STANDARD.
000035 01 TSCAT1-REC PIC X(20).
000036 FD TSCAT2
000037 RECORD CONTAINS 60 CHARACTERS
000038 BLOCK CONTAINS 3000 CHARACTERS
000039 RECORDING MODE IS F
000040 LABEL RECORDS STANDARD.
000041 01 TSCAT2-REC PIC X(60).
000042 FD TSCAT3
000043 RECORD CONTAINS 60 CHARACTERS
000044 BLOCK CONTAINS 3000 CHARACTERS
000045 RECORDING MODE IS F
000046 LABEL RECORDS STANDARD.
000047 01 TSCAT3-REC PIC X(60).
000048 FD EMP-SUM
000049 RECORD CONTAINS 133 CHARACTERS
000050 RECORDING MODE IS F
000051 LABEL RECORD OMITTED.
000052 01 EMP-SUM-REC PIC X(133).
000053 FD INDV-PAY-SLIP
000054 RECORD CONTAINS 133 CHARACTERS
000055 RECORDING MODE IS F
000056 LABEL RECORDS OMITTED.
000057 01 PAY-SLIP-REC PIC X(133).
000058 SD SORT-FILE.
000059 01 S-REC.
000060 03 S-NPAY PIC 9(5)V99.
000061 03 FILLER PIC X(6 .
000062 WORKING-STORAGE SECTION.
000063 01 PIC X(133) VALUE
000064 'CBLHO403 - START OF WORKING STORAGE'.
000065 01 P-CARD.
000066 03 P-DATE.
000067 05 PMM PIC 9(2).
000068 05 PIC X VALUE ' '.
000069 05 PDD PIC 9(2).
000070 05 PIC X VALUE ','.
000071 05 PIC X VALUE ' '.
000072 05 PYY PIC 9(4).
000073 03 PIC X(55) VALUE SPACES.
000074 01 WS-EMP-REC.
000075 03 EMP-NO.
000076 05 EMP-NO1 PIC 9(2).
000077 05 PIC X VALUE '-'.
000078 05 EMP-NO2 PIC 9(4).
000079 03 EMP-NAME PIC X(30).
000080 03 CAT PIC 9.
000081 03 TAX-CODE PIC 9(4).
000082 03 POST PIC X(10).
000083 03 INCOME.
000084 05 BMS PIC 9(5).
000085 05 BONUS PIC 9(5).
000086 05 PS PIC 9(5).
000087 05 TA PIC 9(3).
000088 05 MA PIC 9(3).
000089 05 SL PIC 9(5).
000090 05 AL PIC 9(5).
000091 05 CL PIC 9(5).
000092 05 STUD-L PIC 9(5).
000093 05 HL PIC 9(6).
000094 05 FILLER PIC X(2).
000095 01 WS-TSCAT1.
000096 03 WS-TSCAT1 OCCURS 401 TIMES INDEXED BY X.
000097 05 LOWER-RANGE1 PIC 9(5).
000098 05 UPPER-RANGE1 PIC 9(5).
000099 05 DEDN1 PIC 9(4).
000100 05 FILLER PIC 9(6).
000101 01 WS-TSCAT2.
000102 03 WS-TSCAT2 OCCURS 401 TIMES INDEXED BY Y.
000103 05 LOWER-RANGE2 PIC 9(5).
000104 05 UPPER-RANGE2 PIC 9(5).
000105 05 DEDN2 OCCURS 11 TIMES.
000106 07 K PIC 9(3).
000107 05 FILLER PIC 9(6).
000108 01 WS-TSCAT3.
000109 03 WS-TSCAT3 OCCURS 401 TIMES INDEXED BY Z.
000110 05 LOWER-RANGE3 PIC 9(5).
000111 05 UPPER-RANGE3 PIC 9(5).
000112 05 DEDN3 OCCURS 11 TIMES.
000113 07 B PIC 9(3).
000114 05 FILLER PIC 9(6).
000115 01 TSCAT1-TAB.
000116 03 TSCAT1-ENTRIES OCCURS 401 TIMES INDEXED BY AX.
000117 05 LOWER-RANGE1X PIC 9(5).
000118 05 UPPER-RANGE1X PIC 9(5).
000119 05 DEDN1X PIC 9(4).
000120 05 FILLER PIC 9(6).
000121 01 TSCAT2-TAB.
000122 03 TSCAT2-ENTRIES OCCURS 401 TIMES INDEXED BY BX.
000123 05 LOWER-RANGE2X PIC 9(5).
000124 05 UPPER-RANGE2X PIC 9(5).
000125 05 DEDN2 OCCURS 11 TIMES.
000126 07 KX PIC 9(3).
000127 05 FILLER PIC 9(6).
000128 01 TSCAT3-TAB.
000129 03 TSCAT3-ENTRIES OCCURS 401 TIMES INDEXED BY CX.
000130 05 LOWER-RANGE3X PIC 9(5).
000131 05 UPPER-RANGE3X PIC 9(5).
000132 05 DEDN3 OCCURS 11 TIMES.
000133 07 KV PIC 9(3).
000134 05 FILLER PIC 9(6).
000135 01 DATA-TO-BE-SENT-TO-UNSTRING.
000136 03 EMP-NAME-STR PIC X(30).
000137 03 USTR-NAME.
000138 05 FIRST-NAME PIC X(10).
000139 05 MI PIC X(10).
000140 05 LAST-NAME PIC X(10).
000141 01 NAME-OUT.
000142 03 LAST-NAME1 PIC X(10).
000143 03 FIRST-NAME1 PIC X(10).
000144 03 MI1 PIC X(10).
000145 01 H1.
000146 03 PIC X(53) VALUE
000147 ' CBLH0403'.
000148 03 PIC X(72) VALUE
000149 'ITAC MSC OUTSOURCING SDN BHD'.
000150 03 PIC X(5) VALUE
000151 'PAGE'.
000152 03 HEAD-PCTR PIC ZZ9B.
000153 03 PIC X(1) VALUE SPACE.
000154 01 H2.
000155 03 PIC X(46) VALUE SPACES.
000156 03 PIC X(87) VALUE
000157 'JALAN AMPANG 50450, KUALA LUMPUR, MALAYSIA'.
000158 01 H3.
000159 03 PIC X(55) VALUE SPACES.
000160 03 PIC X(7 VALUE
000161 'EMPLOYEE PAYROLL SUMMARY'.
000162 01 H4.
000163 03 PIC X(56) VALUE SPACES.
000164 03 PIC X(4) VALUE 'FOR'.
000165 03 PIC X VALUE ' '.
000166 03 HMM PIC X(9).
000167 03 PIC X VALUE ' '.
000168 03 HDD PIC 9(2).
000169 03 PIC X VALUE ','.
000170 03 PIC X VALUE ' '.
000171 03 HYY PIC 9(4).
000172 03 PIC X(54) VALUE SPACES.
000173 01 H5.
000174 03 PIC X(6) VALUE SPACES.
000175 03 PIC X( VALUE
000176 'EMPLOYEE'.
000177 03 PIC X(55) VALUE SPACES.
000178 03 PIC X(5) VALUE
000179 'OTHER'.
000180 03 PIC X(20) VALUE SPACES.
000181 03 PIC X(5) VALUE
000182 'T A X'.
000183 03 PIC X(9) VALUE SPACES.
000184 03 PIC X(5) VALUE
000185 'OTHER'.
000186 03 PIC X(20) VALUE SPACES.
000187 01 H6.
000188 03 PIC X(7) VALUE SPACES.
000189 03 PIC X(6) VALUE
000190 'NUMBER'.
000191 03 PIC X(15) VALUE SPACES.
000192 03 PIC X(10) VALUE
000193 'N A M E'.
000194 03 PIC X(9) VALUE
000195 'BASIC PAY'.
000196 03 PIC X(6) VALUE SPACES.
000197 03 PIC X(6) VALUE
000198 'INCOME'.
000199 03 PIC X( VALUE SPACES.
000200 03 PIC X(5) VALUE
000201 'E P F'.
000202 03 PIC X(6) VALUE SPACES.
000203 03 PIC X( VALUE
000204 'WITHHELD'.
000205 03 PIC X(7) VALUE SPACES.
000206 03 PIC X(5) VALUE
000207 'DEDNS'.
000208 03 PIC X( VALUE SPACES.
000209 03 PIC X(12) VALUE
000210 'NET PAY'.
000211 01 H7.
000212 03 FILLER PIC X(27) VALUE
000213 '*** INVALID PARAMETER CARD-'.
000214 01 F1.
000215 03 PIC X(22) VALUE SPACES.
000216 03 PIC X(23) VALUE
000217 'OVER-ALL TOTALS : '.
000218 03 D-TOT-EMP PIC ZZ9B(2).
000219 03 D-TOT-BPAY PIC Z,ZZZ,ZZ9.99B(2).
000220 03 D-TOT-OTHER-INC PIC ZZ,ZZ9.99B(5).
000221 03 D-TOT-EPF PIC ZZ9.99B(5).
000222 03 D-TOT-WHELD PIC ZZ,ZZ9.99B(5).
000223 03 D-TOT-O-DEDN PIC ZZ,ZZ9.99B(5).
000224 03 D-NET-PAY PIC ZZ,ZZ9.99B(4).
000225 01 F2.
000226 03 PIC X(3 VALUE SPACES.
000227 03 PIC X(95) VALUE
000228 '* * * T H I S I S T H E L A S T P A
000229 - '*'.
000230 * 01 H1C2.
000231 * 03 PIC X(45) VALUE
000232 * ' EMP NO:' 99-9999.
000233 * 03 PIC X(24) VALUE
000234 * ' POSITION: ' XXXXXXXXX.
000235 * 01 H2C2.
000236 * 03 PIC X(41) VALUE
000237 * ' NAME : ' XXXXXXXXXXXXXXXXXXXXXXXXXXX.
000238 * 03 PIC X( VALUE
000239 * 'CAT: '9.
000240 * 03 PIC X(14) VALUE
000241 * 'TAXCDE: 'XXXX.
000242 * 01 H3C2.
000243 * 03 PIC X(133) VALUE
000244 * '-----------------------------------------------
000245 * '-----------------------------------------------
000246 * '-------------------------'.
000247 * 01 H4C2.
000248 * 03 PIC X(34) VALUE
000249 * ' I N C O M E |'.
000250 * 03 PIC X(33) VALUE
000251 * ' DEDUCTIONS'.
000252 * 01 F3C2.
000253 * 03 PIC X(34) VALUE
000254 * ' TOTAL INCOME | 'ZZZ,ZZ9.99.
000255 * 03 PIC X(33) VALUE
000256 * ' TOTAL DEDUCTIONS | 'ZZZ,ZZ9.99.
000257 * 01 F4C2.
000258 * 03 PIC X(45) VALUE SPACES.
000259 * 03 PIC X(22) VALUE
000260 * 'NET PAY |' ZZZ,ZZ9.99.
000261 * 01 F5C2.
000262 * 03 PIC X(51) VALUE
000263 * '========='.
000264 01 BLNK.
000265 03 FILLER PIC X(133) VALUE SPACES.
000266 01 SYS-DATE.
000267 03 S-MM PIC 9(2).
000268 03 S-DD PIC 9(2).
000269 03 S-YY PIC 9(4).
000270 01 WORK-VAR.
000271 03 LCTR PIC 99.
000272 03 PCTR PIC 99.
000273 03 EOF PIC X VALUE 'N'.
000274 03 YR PIC 9(4).
000275 03 TOT-EMP PIC 99.
000276 03 VAL-SW PIC X VALUE 'Y'.
000277 03 RX PIC 99.
000278 03 MAX1 PIC 9(3).
000279 03 MAX2 PIC 9(3).
000280 03 MAX3 PIC 9(3).
000281 03 BMS-EPF PIC 9(3)V99.
000282 03 BMS-EPF1 PIC 9(3)V99.
000283 03 MPR PIC 9(3).
000284 03 MCR PIC 9(3).
000285 03 TAXABLE-INC PIC 9(6).
000286 03 TOT-TAXABLE-INC PIC 9(6).
000287 03 BONUS-STD PIC 9(3)V99.
000288 03 BONUS-EPF PIC 9(3)V99.
000289 03 TAXABLE-BONUS PIC 9(4).
000290 03 SV-EMP-NO1 PIC 9(7).
000291 03 SV-EMP-NO2 PIC 9(7).
000292 03 SV-EMP-NAME PIC X(30).
000293 03 STD PIC 9(4)V99.
000294 03 BMS-MTH-STD PIC 9(4)V99.
000295 03 BPAY PIC 9(5)V99.
000296 03 OTHER-INC PIC 9(5)V99.
000297 03 OTHER-INCOME PIC 9(5)V99.
000298 03 OTHER-DEDNS PIC 9(5)V99.
000299 03 EPF PIC 9(3)V99.
000300 03 EPF1 PIC 9(3)V99.
000301 03 TOTAL-INCOME PIC 9(5)V99.
000302 03 TOT-DEDNS PIC 9(5)V99.
000303 03 T-WHELD PIC 9(5)V99.
000304 03 T-WHELD1 PIC 9(5)V99.
000305 03 X PIC 9(3).
000306 03 Y PIC 9(3).
000307 03 Z PIC 9(3).
000308 03 ABC PIC 9(3).
000309 03 OTHER-DEDN PIC 9(5)V99.
000310 03 NET-PAY PIC 9(5)V99.
000311 03 NET-PAY1 PIC 9(5)V99.
000312 03 ADD-INC PIC 9(6)V99.
000313 03 ADD-INC-EPF PIC 9(6)V99.
000314 03 TAX-ADD-INC PIC 9(6)V99.
000315 03 MON-ADD-INC PIC 9(6)V99.
000316 03 AGG-INC PIC 9(6)V99.
000317 03 ADD-INC-STD PIC 9(6)V99.
000318 03 TAX-DUE PIC 9(6)V99.
000319 03 MON-TAXABLE-BONUS PIC 9(6)V99.
000320 03 TOT-EPM PIC 9(3).
000321 03 TOT-BPAY PIC 9(7)V99.
000322 03 TOT-OTHER-INC PIC 9(7)V99.
000323 03 TOT-EPF PIC 9(7)V99.
000324 03 TOT-TWHELD PIC 9(7)V99.
000325 03 TOT-OTHER-DEDN PIC 9(7)V99.
000326 03 TOT-NET-PAY PIC 9(7)V99.
000327 03 MON-VAL VALUE 'JANUARY 31FEBRUARY 2
000328 - ' 31APRIL 30MAY 31JUNE 30JULY
000329 - 'ST 31SEPTEMBER 30OCTOBER 31NOVEMBER 30D
000330 - '31'.
000331 05 MON-TAB OCCURS 12.
000332 07 LIT PIC X(9).
000333 07 NOD PIC 9(9).
000334 03 REMAIN PIC 99.
000335 01 NEW-REC.
000336 03 NEMP-NO1 PIC 99.
000337 03 NDASH PIC X VALUE '-'.
000338 03 NEMP-NO2 PIC 9(4).
000339 03 NEMP-NAME PIC X(30).
000340 03 NBPAY PIC 9(7).
000341 03 N-OTHER-INC PIC 9(7).
000342 03 N-EPF PIC 9(5).
000343 03 N-TWHELD PIC 9(7).
000344 03 N-OTHER-DEDNS PIC 9(7).
000345 03 N-NET-PAY PIC 9(7).
000346 01 DTL-LINE1.
000347 03 DEMP-NO1 PIC 99.
000348 03 DDASH PIC X.
000349 03 DEMP-NO2 PIC 9(4)B(5).
000350 03 DEMP-NAME PIC X(30)B(5).
000351 03 DBPAY PIC ZZ,ZZ9.99B(5).
000352 03 DOTHER-INC PIC ZZ,ZZ9.99B(5).
000353 03 D-EPF PIC ZZ9.99B(5).
000354 03 D-TWHELD PIC ZZ,ZZ9.99B(5).
000355 03 DOTHER-DEDN PIC ZZ,ZZ9.99B(5).
000356 03 DNET-PAY PIC ZZ,ZZ9.99B(4).
000357 PROCEDURE DIVISION.
000358 0000-MAIN SECTION.
000359 0000-MAIN-PAR.
000360 PERFORM 0100-CHK-CARD.
000361 IF VAL-SW = 'Y'
000362 1 PERFORM 1000-INIT
000363 1 PERFORM 2000-PROC
000364 1 PERFORM 2700-NAME
000365 1 PERFORM 2800-NAME2
000366 1 PERFORM 2900-MOVE-PRINT
000367 ELSE
000368 1 DISPLAY H7
000369 1 DISPLAY P-CARD
000370 END-IF.
000371 0000-STOP.
000372 STOP RUN.
000373 0100-CHK-CARD SECTION.
000374 0100-CHK-CARD-PAR.
000375 ACCEPT P-CARD.
000376 MOVE PMM TO HMM.
000377 MOVE PDD TO HDD.
000378 MOVE PYY TO HYY.
000379 IF PDD NOT NUMERIC AND PMM NOT NUMERIC AND PYY NOT N
000380 1 MOVE 'N' TO VAL-SW
000381 ELSE
000382 1 IF PMM < 1 OR PMM > 12
000383 2 MOVE 'N' TO VAL-SW
000384 1 ELSE
000385 2 MOVE PYY TO YR
000386 2 PERFORM 0110-CHK-LEAP
000387 2 IF PDD < 1 OR PDD > NOD(PMM)
000388 3 MOVE 'N' TO VAL-SW
000389 2 ELSE
000390 3 ACCEPT SYS-DATE FROM DATE YYYYMMDD
000391 3 IF PDD NOT = NOD(S-MM)
000392 4 MOVE 'N' TO VAL-SW
000393 3 ELSE
000394 4 IF PMM NOT = NOD(S-MM)
000395 5 MOVE 'N' TO VAL-SW
000396 4 ELSE
000397 5 IF PMM NOT = S-MM
000398 6 MOVE 'N' TO VAL-SW
000399 5 ELSE
000400 6 IF PYY NOT = S-YY
000401 7 MOVE 'N' TO VAL-SW.
000402 0100-EXIT.
000403 EXIT.
000404 0110-CHK-LEAP SECTION.
000405 0110-CHK-LEAP-PAR.
000406 DIVIDE PYY BY 4 GIVING REMAIN.
000407 IF REMAIN = 0
000408 1 MOVE 29 TO NOD(2)
000409 ELSE
000410 1 MOVE 28 TO NOD(2)
000411 END-IF.
000412 0110-EXIT.
000413 EXIT.
000414 1000-INIT SECTION.
000415 1000-INIT-PAR.
000416 PERFORM 1100-LOAD-TSCAT1.
000417 PERFORM 1200-LOAD-TSCAT2.
000418 PERFORM 1300-LOAD-TSCAT3.
000419 OPEN INPUT TSCAT1
000420 TSCAT2
000421 TSCAT3
000422 SORT SORT-FILE ON DESCENDING KEY S-NPAY
000423 INPUT PROCEDURE 2000-PROC
000424 OUTPUT PROCEDURE 2900-MOVE-PRINT
000425 MOVE 0 TO PCTR.
000426 MOVE 54 TO LCTR.
000427 MOVE LIT(PMM) TO HMM.
000428 MOVE PDD TO HDD.
000429 MOVE PYY TO HYY.
000430 1000-EXIT.
000431 EXIT.
000432 1100-LOAD-TSCAT1 SECTION.
000433 1100-LOAD-TSCAT1-PAR.
000434 MOVE 0 TO MAX1.
000435 MOVE 0 TO X.

==000435==> IGYPS0037-S "X" was not a uniquely defined name. The definition to
be determined from the context. The reference to the na
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
X is defined on line 96 as an index and again on line 305 as a standard variable

000436 READ TSCAT1 INTO WS-TSCAT1

==000436==> IGYPS0037-S "WS-TSCAT1" was not a uniquely defined name. The defini
could not be determined from the context. The reference
discarded.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
WS-TSCAT1 is defines on Line 95 and again on line 96

000437 1 AT END MOVE 'Y' TO EOF
000438 END-READ.
000439 PERFORM UNTIL MAX1 >= 401
000440 1 ADD 1 TO MAX1
000441 1 ADD 1 TO X

==000441==> IGYPS0037-S "X" was not a uniquely defined name. The definition to
be determined from the context. The reference to the na
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Same as line 435

000442 1 MOVE WS-TSCAT1(X) TO TSCAT1-TAB(MAX1)

==000442==> IGYPS0037-S "WS-TSCAT1" was not a uniquely defined name. The defini
could not be determined from the context. The reference
discarded.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
same as Line 436

==000442==> IGYPS0037-S "X" was not a uniquely defined name. The definition to
be determined from the context. The reference to the na

==000442==> IGYPS2120-S Expected a reference-modification specification but foun
"MOVE" statement was discarded.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Idiosyncrasy of compiler, will fix itself when X and WS-TSCAT1 are corrected

000443 1 READ TSCAT1 TO WS-TSCAT1

==000443==> IGYPS2072-S "TO" was invalid. Skipped to the next verb, period or p
definition.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
It?s READ TSCAT1 INTO WS-TSCAT1

000444 1 AT END MOVE 'Y' TO EOF

000445 1 END-READ

==000445==> IGYPS2113-E The explicit scope terminator "END-READ" was found witho
verb. The scope terminator was discarded.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
because the compiler bypassed the READ

000446 END-PERFORM.
000447 1100-EXIT.
000448 EXIT.
000449 1200-LOAD-TSCAT2 SECTION.
000450 1200-LOAD-TSCAT2-PAR.
000451 MOVE 0 TO MAX2.
000452 MOVE 0 TO Y.

==000452==> IGYPS0037-S "Y" was not a uniquely defined name. The definition to
be determined from the context. The reference to the na
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Same basic problem as with ?X?

000453 READ TSCAT2 INTO WS-TSCAT2

==000453==> IGYPS0037-S "WS-TSCAT2" was not a uniquely defined name. The defini
could not be determined from the context. The reference
discarded.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Same basic problem as with ?WSTSCAT1?

000454 1 AT END MOVE 'Y' TO EOF
000455 END-READ.
000456 PERFORM UNTIL MAX2 >= 401
000457 1 ADD 1 TO MAX2
000458 1 ADD 1 TO Y

==000458==> IGYPS0037-S "Y" was not a uniquely defined name. The definition to
be determined from the context. The reference to the na
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
You know this one

000459 1 MOVE WS-TSCAT2(Y) TO TSCAT2-TAB(MAX2)

==000459==> IGYPS0037-S "WS-TSCAT2" was not a uniquely defined name. The defini
could not be determined from the context. The reference
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
You know this one

==000459==> IGYPS0037-S "Y" was not a uniquely defined name. The definition to
be determined from the context. The reference to the na
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
You know this one

==000459==> IGYPS2120-S Expected a reference-modification specification but foun
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Because WS-TSCAT2 and Y were not defined correctly

"MOVE" statement was discarded.

000460 1 READ TSCAT2 INTO WS-TSCAT2

==000460==> IGYPS0037-S "WS-TSCAT2" was not a uniquely defined name. The defini
could not be determined from the context. The reference
discarded.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
You know this one

000461 2 AT END MOVE 'Y' TO EOF
000462 1 END-READ
000463 END-PERFORM.
000464 1200-EXIT.
000465 EXIT.
000466 1300-LOAD-TSCAT3 SECTION.
000467 1300-LOAD-TSCAT3-PAR.
000468 MOVE 0 TO MAX3.
000469 MOVE 0 TO Z.

==000469==> IGYPS0037-S "Z" was not a uniquely defined name. The definition to
be determined from the context. The reference to the na
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
You know this one


000470 READ TSCAT3 INTO WS-TSCAT3

==000470==> IGYPS0037-S "WS-TSCAT3" was not a uniquely defined name. The defini
could not be determined from the context. The reference
discarded.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
You know this one

000471 1 AT END MOVE 'Y' TO EOF
000472 END-READ.
000473 PERFORM UNTIL MAX3 >= 401
000474 1 ADD 1 TO MAX3
000475 1 ADD 1 TO Z

==000475==> IGYPS0037-S "Z" was not a uniquely defined name. The definition to
be determined from the context. The reference to the na
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
You know this one

000476 1 MOVE WS-TSCAT3(Z) TO TSCAT3-TAB(MAX3)

==000476==> IGYPS0037-S "WS-TSCAT3" was not a uniquely defined name. The defini
could not be determined from the context. The reference
discarded.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
You know this one

==000476==> IGYPS0037-S "Z" was not a uniquely defined name. The definition to
be determined from the context. The reference to the na

==000476==> IGYPS2120-S Expected a reference-modification specification but foun
"MOVE" statement was discarded.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
You know this one

000477 1 READ TSCAT3 INTO WS-TSCAT3

==000477==> IGYPS0037-S "WS-TSCAT3" was not a uniquely defined name. The defini
could not be determined from the context. The reference
discarded.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
You know this one

000478 2 AT END MOVE 'Y' TO EOF
000479 1 END-READ
000480 END-PERFORM.
000481 1300-EXIT.
000482 EXIT.
000483 2000-PROC SECTION.
000484 2000-PROC-PAR.
000485 OPEN INPUT EMP-FILE
000486 MOVE 0 TO TOT-EMP
000487 READ EMP-FILE INTO WS-EMP-REC
000488 1 AT END MOVE 'Y' TO EOF
000489 END-READ.
000490 PERFORM UNTIL EOF = 'Y'
000491 1 MOVE 0 TO TOT-BPAY
000492 1 MOVE 0 TO TOT-OTHER-INC
000493 1 MOVE 0 TO TOT-EPF
000494 1 MOVE 0 TO TOT-TWHELD
000495 1 MOVE 0 TO TOT-OTHER-DEDN
000496 1 MOVE 0 TO TOT-NET-PAY
000497 1 PERFORM 2100-NEW-EMP
000498 1 PERFORM UNTIL SV-EMP-NO1 NOT = EMP-NO1 AND SV-E
000499 1 - OT = EMP-NO2 AND EOF = 'Y'
000500 2 PERFORM 2200-CAL
000501 2 READ EMP-FILE INTO WS-EMP-REC
000502 3 AT END MOVE 'Y' TO EOF
000503 2 END-READ
000504 1 END-PERFORM
000505 1 PERFORM 2600-EMP-BREAK
000506 1 RELEASE S-REC FROM NEW-REC
000507 END-PERFORM.
000508 CLOSE EMP-FILE.
000509 2000-EXIT.
000510 EXIT.
000511 2100-NEW-EMP SECTION.
000512 2100-NEW-EMP-PAR.
000513 MOVE EMP-NO1 TO SV-EMP-NO1
000514 MOVE EMP-NO2 TO SV-EMP-NO2
000515 MOVE EMP-NAME TO SV-EMP-NAME
000516 MOVE BMS TO BPAY
000517 MOVE OTHER-INC TO OTHER-INCOME
000518 MOVE BMS-EPF TO EPF1
000519 MOVE T-WHELD TO T-WHELD1
000520 MOVE OTHER-DEDN TO OTHER-DEDNS
000521 MOVE NET-PAY TO NET-PAY1.
000522 2200-CAL SECTION.
Display Filter View Print Options Help
-------------------------------------------------------------------------------
SDSF OUTPUT DISPLAY TEST JOB11845 DSID 101 LINE 702 COLUMNS 02- 81
COMMAND INPUT ===> SCROLL ===> CSR
000523 2200-CAL-PAR.
000524 COMPUTE TOTAL-INCOME = BMS + BONUS + PS + TA + MA.
000525 COMPUTE OTHER-INCOME = BONUS + PS + TA + MA
000526 COMPUTE OTHER-DEDNS = T-WHELD + SL + AL + CL + STUD-
000527 COMPUTE TOT-DEDNS = EPF + T-WHELD + SL + AL + CL + S
000528 - -L + HL.
000529 MULTIPLY 0.11 BY BMS GIVING BMS-EPF ROUNDED
000530 IF BMS-EPF >= 416
000531 1 MOVE 416 TO BMS-EPF
000532 END-IF.
000533 DIVIDE 9000 BY 12 GIVING MPR
000534 DIVIDE 3000 BY 12 GIVING MCR
000535 PERFORM 2200-TAX-SEARCH
000536 IF BONUS NOT = 0
000537 1 ADD BONUS TO ADD-INC

000539 1 IF PS NOT = 0
000540 2 ADD PS TO ADD-INC
000541 1 ELSE
000542 2 IF BONUS NOT = 0 AND PS NOT = 0
000543 3 COMPUTE ADD-INC = BONUS + PS
000544 3 COMPUTE ADD-INC-EPF = ADD-INC * 0.11
000545 3 COMPUTE TAX-ADD-INC = ADD-INC - ADD-I
000546 3 COMPUTE MON-ADD-INC = TAX-ADD-INC / 1
000547 3 COMPUTE AGG-INC = TAXABLE-INC + MON-AD
000548 2 END-IF
000549 1 END-IF
000550 END-IF.
000551 IF ADD-INC >= 416
000552 1 MOVE 416 TO ADD-INC
000553 END-IF.
000554 PERFORM 2300-TAX1-SEARCH
000555 COMPUTE ADD-INC-STD = (STD - BMS-MTH-STD) * 12.
000556 COMPUTE TAX-DUE = BMS-MTH-STD + ADD-INC-STD.
000557 * COMPUTE TAXABLE-BONUS = BONUS - BONUS-EPF.
000558 * DIVIDE TAXABLE-BONUS BY 12 GIVING MON-TAXABLE-BONU
000559 COMPUTE TAXABLE-INC ROUNDED = (BMS-EPF + TA + MA)-
000560 - + MPR + MCR).

==000560==> IGYPS0001-W A blank was missing before character "+" in column 14.
assumed.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Looks like you have ?-+? ?

000561 2100-EXIT.
000562 EXIT.
000563 2200-TAX-SEARCH SECTION.
000564 2200-TAX-SEARCH-PAR.
000565 IF CAT = 1
000566 1 PERFORM VARYING AX FROM 1 BY 1 UNTIL AX > 401
000567 2 IF TAXABLE-INC >= LOWER-RANGE1X(AX) AND UPPER-RA
000568 3 MOVE DEDN1X(AX) TO BMS-MTH-STD
000569 2 END-IF
000570 1 END-PERFORM
000571 ELSE
000572 1 IF CAT = 2
000573 2 PERFORM VARYING BX FROM 1 BY 1 UNTIL BX > 401
000574 3 PERFORM VARYING RX FROM 1 BY 1 UNTIL RX > 11
000575 4 IF TAXABLE-INC >= LOWER-RANGE2X(BX) AND UPPER-RANG
000576 5 EVALUATE TRUE
000577 6 WHEN TAX-CODE = 'K' MOVE KX(BX RX)TO BMS-MTH-STD
000578 6 WHEN TAX-CODE = 'KA1' MOVE KX(BX RX)TO BMS-MTH-ST
000579 6 WHEN TAX-CODE = 'KA2' MOVE KX(BX RX)TO BMS-MTH-ST
000580 6 WHEN TAX-CODE = 'KA3' MOVE KX(BX RX)TO BMS-MTH-ST
000581 6 WHEN TAX-CODE = 'KA4' MOVE KX(BX RX)TO BMS-MTH-ST
000582 6 WHEN TAX-CODE = 'KA5' MOVE KX(BX RX)TO BMS-MTH-ST
000583 6 WHEN TAX-CODE = 'KA6' MOVE KX(BX RX)TO BMS-MTH-ST
000584 6 WHEN TAX-CODE = 'KA7' MOVE KX(BX RX)TO BMS-MTH-ST
000585 6 WHEN TAX-CODE = 'KA8' MOVE KX(BX RX)TO BMS-MTH-ST
000586 6 WHEN TAX-CODE = 'KA9' MOVE KX(BX RX)TO BMS-MTH-ST
000587 6 WHEN TAX-CODE = 'KA10' MOVE KX(BX RX)TO BMS-MTH-S
000588 4 END-IF
000589 3 END-PERFORM
000590 2 END-PERFORM.
000591 IF CAT = 3
000592 1 PERFORM VARYING CX FROM 1 BY 1 UNTIL CX > 401
000593 2 PERFORM VARYING RX FROM 1 BY 1 UNTIL RX > 11
000594 3 IF TAXABLE-INC >= LOWER-RANGE3X(CX) AND UPPER-RA
000595 4 EVALUATE TRUE
000596 5 WHEN TAX-CODE = 'K' MOVE KV(CX RX)TO BMS-MTH-ST
000597 5 WHEN TAX-CODE = 'KA1' MOVE KV(CX RX) TO BMS-MTH
000598 5 WHEN TAX-CODE = 'KA2' MOVE KV(CX RX) TO BMS-MTH
000599 5 WHEN TAX-CODE = 'KA3' MOVE KV(CX RX) TO BMS-MTH
000600 5 WHEN TAX-CODE = 'KA4' MOVE KV(CX RX) TO BMS-MTH
000601 5 WHEN TAX-CODE = 'KA5' MOVE KV(CX RX) TO BMS-MTH
000602 5 WHEN TAX-CODE = 'KA6' MOVE KV(CX RX) TO BMS-MTH
000603 5 WHEN TAX-CODE = 'KA7' MOVE KV(CX RX) TO BMS-MTH
000604 5 WHEN TAX-CODE = 'KA8' MOVE KV(CX RX) TO BMS-MTH
000605 5 WHEN TAX-CODE = 'KA9' MOVE KV(CX RX) TO BMS-MTH
000606 5 WHEN TAX-CODE = 'KA10' MOVE KV(CX RX) TO BMS-MT
000607 3 END-IF
000608 2 END-PERFORM
000609 1 END-PERFORM.
000610 * IF CAT = 3
000611 * PERFORM VARYING CX FROM 1 BY 1 UNTIL CX > 401
000612 * IF TAXABLE-INC >= LOWER-RANGE(CX) AND UPPER-
000613 * EVALUATE TRUE
000614 * WHEN TAX-CODE = 'K' MOVE TSCAT2(CX 1) TO BSC
000615 * WHEN TAX-CODE = 'KA1' MOVE TSCAT3(CX 2) TO BS
000616 * WHEN TAX-CODE = 'KA2' MOVE TSCAT3(CX 3) TO BS
000617 * WHEN TAX-CODE = 'KA3' MOVE TSCAT3(CX 4) TO BS
000618 * WHEN TAX-CODE = 'KA4' MOVE TSCAT3(CX 5) TO BS
000619 * WHEN TAX-CODE = 'KA5' MOVE TSCAT3(CX 6) TO BS
000620 * WHEN TAX-CODE = 'KA6' MOVE TSCAT3(CX 7) TO BS
000621 * WHEN TAX-CODE = 'KA7' MOVE TSCAT3(CX TO BS
000622 * WHEN TAX-CODE = 'KA8' MOVE TSCAT3(CX 9) TO BS
000623 * WHEN TAX-CODE = 'KA9' MOVE TSCAT2(CX 10)TO BS
000624 2300-TAX1-SEARCH SECTION.
000625 2300-TAX1-SEARCH-PAR.
000626 IF CAT = 1
000627 1 PERFORM VARYING AX FROM 1 BY 1 UNTIL AX > 401
000628 2 IF TAXABLE-INC >= LOWER-RANGE1X(AX) AND UPPER-RA
000629 3 MOVE DEDN1X(AX) TO STD
000630 2 END-IF
000631 1 END-PERFORM
000632 ELSE
000633 1 IF CAT = 2
000634 2 PERFORM VARYING BX FROM 1 BY 1 UNTIL BX > 401
000635 3 IF TAXABLE-INC >= LOWER-RANGE2X(BX) AND UPPER-RA
000636 4 EVALUATE TRUE
000637 5 WHEN TAX-CODE = 'K' MOVE KX(BX 1) TO STD
000638 5 WHEN TAX-CODE = 'KA1' MOVE KX(BX 2) TO STD
000639 5 WHEN TAX-CODE = 'KA2' MOVE KX(BX 3) TO STD
000640 5 WHEN TAX-CODE = 'KA3' MOVE KX(BX 4) TO STD
000641 5 WHEN TAX-CODE = 'KA4' MOVE KX(BX 5) TO STD
000642 5 WHEN TAX-CODE = 'KA5' MOVE KX(BX 6) TO STD
000643 5 WHEN TAX-CODE = 'KA6' MOVE KX(BX 7)TO STD
000644 5 WHEN TAX-CODE = 'KA7' MOVE KX(BX TO STD
000645 5 WHEN TAX-CODE = 'KA8' MOVE KX(BX 9) TO STD
000646 5 WHEN TAX-CODE = 'KA9' MOVE KX(BX 10)TO STD
000647 5 WHEN TAX-CODE = 'KA10' MOVE KX(BX 11)TO STD
000648 3 END-IF
000649 2 END-PERFORM.
000650 IF CAT = 3
000651 1 PERFORM VARYING CX FROM 1 BY 1 UNTIL CX > 401
000652 2 IF TAXABLE-INC >= LOWER-RANGE3X(CX) AND UPPER-RA
000653 3 EVALUATE TRUE
000654 4 WHEN TAX-CODE = 'K' MOVE KV(CX 1) TO STD
000655 4 WHEN TAX-CODE = 'KA1' MOVE KV(CX 2) TO STD
000656 4 WHEN TAX-CODE = 'KA2' MOVE KV(CX 3) TO STD
000657 4 WHEN TAX-CODE = 'KA3' MOVE KV(CX 4) TO STD
000658 4 WHEN TAX-CODE = 'KA4' MOVE KV(CX 5) TO STD
000659 4 WHEN TAX-CODE = 'KA5' MOVE KV(CX 6) TO STD
000660 4 WHEN TAX-CODE = 'KA6' MOVE KV(CX 7) TO STD
000661 4 WHEN TAX-CODE = 'KA7' MOVE KV(CX TO STD
000662 4 WHEN TAX-CODE = 'KA8' MOVE KV(CX 9) TO STD
000663 4 WHEN TAX-CODE = 'KA9' MOVE KV(CX 10) TO STD
000664 4 WHEN TAX-CODE = 'KA10' MOVE KV(CX 11) TO STD
000665 2 END-IF
000666 1 END-PERFORM
000667 END-IF.
000668 2600-EMP-BREAK SECTION.
000669 2600-EMP-BREAK-PAR.
000670 MOVE SV-EMP-NO1 TO NEMP-NO1 .
000671 MOVE SV-EMP-NO2 TO NEMP-NO2 .
000672 MOVE SV-EMP-NAME TO NEMP-NAME.
000673 MOVE BPAY TO NBPAY .
000674 MOVE OTHER-INCOME TO N-OTHER-INC .
000675 MOVE EPF1 TO N-EPF.
000676 MOVE T-WHELD1 TO N-TWHELD.
000677 MOVE OTHER-DEDNS TO N-OTHER-DEDNS.
000678 MOVE NET-PAY1 TO N-NET-PAY.
000679 2600-EXIT.
000680 EXIT.
000681 2700-NAME SECTION.
000682 2700-NAME-PAR.
000683 MOVE 0 TO ABC
000684 INSPECT EMP-NAME-STR TALLYING ABC FOR ALL '/', '*',
000685 IF ABC > 0
000686 1 PERFORM 2750-NAME1
000687 ELSE
000688 1 PERFORM 2900-MOVE-PRINT
000689 END-IF.
000690 2700-EXIT.
000691 EXIT.
000692 2750-NAME1 SECTION.
000693 2750-NAME1-PAR.
000694 UNSTRING EMP-NAME-STR
000695 DELIMITED BY '/', '*', '-'

==000695==> IGYPS0088-S The "UNSTRING" statement was invalid. Expected "INTO",
The statement was discarded.

000696 INTO FIRST-NAM

Check out the COBOL manual UNSTRING

Any more question please come back

Dave

academyindia4

Topic deleted by Admin

Post by academyindia4 » Fri Jan 15, 2016 9:54 pm

<< Content deleted By Admin >>

Post Reply

FREE TUTORIALS

Tutorials
Free tutorials from mainframegurukul
  • JCL Tutorial
    Covers all important JCL concepts.
  • Cobol Tutorial
    This tutorials covers all Cobol Topics from STRING to COMP-3.
  • DB2 Tutorial
    DB2 Tutorial focuses on DB2 COBOL Programming.
  • SORT Tutorial
    This Tutorial covers all important aspects of DFSORT with examples
  • CICS Tutorial
    This CICS tutorial covers CICS concepts and CICS Basics, CICS COBOL Programming.
Interview
Mainframe Interview questions



Other References
Mainframe Tools and others