000100 IDENTIFICATIONDIVISION.
000200
000400 PROGRAM-ID.
000500 EXEC85.
000600 INSTALLATION.
000700 "ON-SITE VALIDATION, NATIONAL INSTITUTE OF STD & TECH. ".
000800 "COBOL 85 VERSION 4.2, Apr 1993 SSVG ".
000900 ENVIRONMENTDIVISION.
001000 001100**************************************************************** 001200* * 001300* VALIDATION FOR:- * 001400* * 001500* "ON-SITE VALIDATION, NATIONAL INSTITUTE OF STD & TECH. ". 001600* * 001700* "COBOL 85 VERSION 4.2, Apr 1993 SSVG ". 001800* * 001900****************************************************************
002000 CONFIGURATIONSECTION.
002100
002200 SPECIAL-NAMES.
002300 INPUT-OUTPUTSECTION.
002400 FILE-CONTROL.
002500 SELECTOPTIONAL POPULATION-FILE
002600 ASSIGNTO
002700 "C0001" .
002800 SELECT SOURCE-COBOL-PROGRAMS
002900 ASSIGNTO
003000 "C0002"
003100 ORGANIZATIONSEQUENTIAL.
003200 SELECT UPDATED-POPULATION-FILE
003300 ASSIGNTO
003400 "C0003" .
003500 SELECT PRINT-FILE
003600 ASSIGNTO
003700 "C0085" .
003800 SELECT CONTROL-CARD-FILE
003900 ASSIGNTO
004000 "C0088" .
004100 DATADIVISION.
004200 FILESECTION.
004300 FD POPULATION-FILE. 004400* RECORD CONTAINS 2400 CHARACTERS.
004500 01 SOURCE-IN-2400.
004600 02 SOURCE-IN PIC X(80). 004700* OCCURS 30.
004800 FD CONTROL-CARD-FILE.
004900 01 CONTROL-RECORD PIC X(80).
005000 FD PRINT-FILE.
005100 01 PRINT-REC.
005200 05 FILLERPIC X.
005300 05 PRINT-DATA PIC X(131).
005400 FD SOURCE-COBOL-PROGRAMS
005500 BLOCKCONTAINS 1 RECORDS.
005600 01 CT-OUT.
005700 02 FILLERPIC X(72).
005800 02 FILLERPIC X(8).
005900 FD UPDATED-POPULATION-FILE
006000 RECORDCONTAINS 2400 CHARACTERS.
006100 01 UPDATED-SOURCE-OUT-2400.
006200 02 UD-SOURCE-OUT PIC X(80) OCCURS 30.
006300
006400 WORKING-STORAGESECTION.
006500
006600 01 FILLERPIC X(40) VALUE
006700 "NEWEXEC WORKING-STORAGE STARTS HERE ==->".
006800 01 BLOCK-TYPE PIC X(5).
006900 01 SUB1 PIC S9(3) COMP.
007000 01 SUB2 PIC S9(3) COMP.
007100 01 SUB3 PIC S9(3) COMP.
007200 01 SUB4 PIC S9(3) COMP.
007300 01 SUB5 PIC S9(3) COMP.
007400 01 SUB6 PIC S9(3) COMP.
007500 01 SUB7 PIC S9(3) COMP.
007600 01 WA-ERR-IND PIC 9 VALUE ZEROES.
007700 01 WA-FIRST-IND PIC 9 VALUE ZEROES.
007800 01 WA-ZCARD-TABLE.
007900 05 WA-ZCARD OCCURS 10
008000 PIC X(60).
008100 01 WA-TOP-OF-PAGE-LINE.
008200 05 FILLERPIC X(4) VALUESPACES.
008300 05 WA-VERSION.
008400 07 WA-VERSION-TEXT PIC X(22) VALUE
008500 "CCVS85 VERSION NUMBER ".
008600 07 WA-VERSION-NUM PIC X(3) VALUESPACES.
008700 05 WA-RELEASE.
008800 07 WA-RELEASE-TEXT PIC X(14) VALUE
008900 ", RELEASED ON ".
009000 07 WA-VERSION-DATE PIC X(11) VALUESPACES.
009100 05 FILLERPIC X(4) VALUESPACES.
009200 05 WA-COMPANY-AND-COMPILER PIC X(30) VALUESPACES.
009300 05 FILLERPIC X(5) VALUESPACES.
009400 05 WA-DATE PIC XXBXXBXX.
009500 05 FILLERPIC X(4) VALUESPACES.
009600 05 FILLERPIC X(5) VALUE"PAGE ".
009700 05 WA-PAGE-CT PIC Z(5)9.
009800
009900 01 WA-ACCT-LINE-1.
010000 05 FILLERPIC X(19) VALUE
010100 " ** END OF PROGRAM ".
010200 05 WA-CURRENT-PROG PIC X(6).
010300 05 FILLERPIC X(32) VALUE
010400 " FOUND, COBOL LINES PROCESSED: ".
010500 05 WA-LINES-COBOL PIC Z(5)9.
010600 01 WA-ACCT-LINE-2.
010700 05 FILLERPIC X(19) VALUE
010800 " ** LINES INSERTED ".
010900 05 WA-LINES-INSERTED PIC Z(5)9.
011000 05 FILLERPIC X(19) VALUE
011100 " ** LINES REPLACED ".
011200 05 WA-LINES-REPLACED PIC Z(5)9.
011300 05 FILLERPIC X(19) VALUE
011400 " ** LINES DELETED ".
011500 05 WA-LINES-DELETED PIC Z(5)9.
011600 01 WA-ACCT-LINE-3.
011700 05 FILLERPIC X(18) VALUE
011800 " ** OPTIONAL CODE ".
011900 05 WA-OPTIONAL-CODE PIC X(8).
012000 05 WA-CODE-REMOVED PIC Z(5)9.
012100 05 WA-CODE-KILLED PIC X(21) VALUE
012200 " ** COMMENTS DELETED ".
012300 05 WA-COMMENTS-DEL PIC Z(5)9.
012400 01 WA-FINAL-LINE-1.
012500 05 FILLERPIC X(34) VALUE
012600 " ** END OF POPULATION FILE REACHED".
012700 05 FILLERPIC X(27) VALUE
012800 " NUMBER OF PROGRAMS FOUND: ".
012900 05 WA-PROGS-FOUND PIC Z(5)9.
013000 01 WA-FINAL-LINE-2.
013100 05 FILLERPIC X(47) VALUE
013200 " ** NUMBER OF PROGRAMS WRITTEN TO SOURCE FILE: ".
013300 05 WA-SOURCE-PROGS PIC Z(5)9.
013400 01 WA-FINAL-LINE-3.
013500 05 FILLERPIC X(48) VALUE
013600 " ** NUMBER OF PROGRAMS WRITTEN TO NEW POPULATION".
013700 05 FILLERPIC X(7) VALUE" FILE: ".
013800 05 WA-NEWPOP-PROGS PIC Z(5)9.
013900 01 WB-CONTROL-DATA.
014000 05 WB-FILL PIC X(80).
014100 05 FILLERREDEFINES WB-FILL.
014200 10 WB-3 PIC X(3).
014300 10 FILLERPIC X(77).
014400 05 FILLERREDEFINES WB-FILL.
014500 10 WB-4 PIC X(4).
014600 10 WB-NN PIC 99.
014700 10 FILLERPIC X.
014800 10 WB-X PIC X.
014900 10 FILLERPIC X(72).
015000 05 FILLERREDEFINES WB-FILL.
015100 10 WB-6 PIC X(6).
015200 10 FILLERPIC X(74).
015300 05 FILLERREDEFINES WB-FILL.
015400 10 WB-7 PIC X(7).
015500 10 FILLERPIC X(73).
015600 05 FILLERREDEFINES WB-FILL.
015700 10 WB-8 PIC X(8).
015800 10 FILLERPIC X(72).
015900 05 FILLERREDEFINES WB-FILL.
016000 10 WB-9 PIC X(9).
016100 10 FILLERPIC X(71).
016200 05 FILLERREDEFINES WB-FILL.
016300 10 WB-10 PIC X(10).
016400 10 FILLERPIC X(70).
016500 05 FILLERREDEFINES WB-FILL.
016600 10 WB-11 PIC X(11).
016700 10 FILLERPIC X(69).
016800 05 FILLERREDEFINES WB-FILL.
016900 10 WB-12 PIC X(12).
017000 10 FILLERPIC X.
017100 10 WB-PROG PIC X(5).
017200 10 FILLERPIC X(62).
017300 05 FILLERREDEFINES WB-FILL.
017400 10 WB-13 PIC X(13).
017500 10 FILLERPIC X(67).
017600 05 FILLERREDEFINES WB-FILL.
017700 10 WB-14 PIC X(14).
017800 10 FILLERPIC X.
017900 10 WB-MODULE PIC XX.
018000 10 FILLERPIC X.
018100 10 WB-LEVEL PIC X.
018200 10 FILLERPIC X(61).
018300 05 FILLERREDEFINES WB-FILL.
018400 10 WB-15 PIC X(15).
018500 10 FILLERPIC X(65).
018600 05 FILLERREDEFINES WB-FILL.
018700 10 WB-16 PIC X(16).
018800 10 FILLERPIC X(64).
018900 05 WB-X-CARD REDEFINES WB-FILL.
019000 10 WB-X-HYPHEN PIC XX.
019100 10 WB-X-CARD-NUM PIC 9(3).
019200 10 WB-PROG-POS.
019300 15 WB-PROG-POS-NUM PIC 99.
019400 10 FILLERPIC X.
019500 10 WB-SUBS-TEXT PIC X(60).
019600 10 FILLERPIC X(12).
019700 05 WB-START-CARD REDEFINES WB-FILL.
019800 10 WB-STAR-START PIC X(6).
019900 10 FILLERPIC X.
020000 10 WB-UPDATE-PROG PIC X(6).
020100 10 FILLERPIC X.
020200 10 WB-RENUMBER PIC X.
020300 10 FILLERPIC X(65).
020400 05 WB-LINE-UPDATE REDEFINES WB-FILL.
020500 10 WB-SEQ-1 PIC X(6).
020600 10 WB-COBOL-LINE PIC X(74).
020700 10 FILLERREDEFINES WB-COBOL-LINE.
020800 15 WB-COL-7 PIC X.
020900 15 FILLERPIC X(73).
021000 10 FILLERREDEFINES WB-COBOL-LINE.
021100 15 WB-CHAR PIC X.
021200 15 WB-SEQ-2 PIC X(6).
021300/
021400 01 WC-CURRENT-POP-RECORD.
021500 05 WC-1.
021600 10 WC-END-OF-POPFILE PIC X(16).
021700 10 FILLERPIC X(64).
021800 05 WC-HEADER REDEFINES WC-1.
021900 10 WC-STAR-HEADER PIC X(7).
022000 10 FILLERPIC X.
022100 10 WC-COBOL PIC X(5).
022200 10 FILLERPIC X.
022300 10 WC-PROG-ID.
022400 12 WC-PROG-ID-1-5.
022500 15 WC-PROG-ID-1-4.
022600 18 WC-MODULE PIC XX.
022700 18 WC-LEVEL PIC X.
022800 18 FILLERPIC X.
022900 15 FILLERPIC X.
023000 12 WC-PROG-ID-6 PIC X.
023100 10 FILLERPIC X.
023200 10 WC-SUBPRG PIC X(6).
023300 10 FILLERPIC X.
023400 10 WC-PROG2ID.
023500 12 WC-PROG2ID-1-5 PIC X(5).
023600 12 FILLERPIC X.
023700 10 FILLERPIC X(46).
023800 05 FILLERREDEFINES WC-1.
023900 10 WC-1-72.
024000 15 WC-6.
024100 20 WC-STAR PIC X.
024200 20 FILLERPIC X(5).
024300 15 FILLERREDEFINES WC-6.
024400 20 WC-1-5 PIC X(5).
024500 20 FILLERPIC X.
024600 15 WC-COL-7 PIC X.
024700 15 WC-COL-8 PIC X.
024800 15 FILLERPIC X(3).
024900 15 WC-SUB-DATA.
025000 20 WC-12-15 PIC X(4).
025100 20 FILLERPIC X.
025200 20 WC-17-19 PIC 9(3).
025300 20 WC-20 PIC X.
025400 20 FILLERPIC X(52).
025500 10 WC-73-80 PIC X(8).
025600
025700 01 WD-SOURCE-REC.
025800 05 WD-1.
025900 10 FILLERPIC X(6).
026000 10 WD-HEADER PIC X(74).
026100
026200 01 WE-PRINT-DATA.
026300 05 WE-COBOL-LINE PIC X(80).
026400 05 FILLERPIC X VALUESPACE.
026500 05 WE-X-CARD PIC X(9).
026600 05 FILLERPIC XX VALUESPACES.
026700 05 WE-CHANGE-TYPE PIC X(12).
026800
026900 01 WF-PROGRAM-SELECTED-TABLE.
027000 05 WF-PROGRAM-SELECTED PIC X(5) OCCURS 50.
027100
027200 01 WG-MODULE-SELECTED-TABLE.
027300 05 FILLEROCCURS 10.
027400 10 WG-MODULE-SELECTED PIC XX.
027500 10 WG-MODULE-LEVEL PIC X.
027600
027700 01 WV-PRINT-MISCELLANEOUS.
027800 05 WV-OPTION-HEADING PIC X(25) VALUE
027900 " OPTION SWITCH SETTINGS -".
028000 05 WV-OPT-1 PIC X(40) VALUE
028100 " 0 1 2".
028200 05 WV-OPT-2 PIC X(52) VALUE
028300 " 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6".
028400 05 WV-OPT-SWITCHES.
028500 10 FILLERPIC X VALUESPACE.
028600 10 FILLEROCCURS 26.
028700 15 WV-OPT PIC X.
028800 15 FILLERPIC X.
028900 01 WX-X-CARD-TABLE.
029000 05 WX-X-CARD OCCURS 200.
029100 10 WX-X-CHAR PIC X
029200 OCCURS 60.
029300 01 WX-PROG-POS-TABLE.
029400 05 WX-PROG-POS OCCURS 200
029500 PIC 99.
029600 01 WY-SWITCHES.
029700 05 WY-OPTION-SWITCHES.
029800 10 WY-OPT-SW-1 PIC X.
029900 10 WY-OPT-SW-2 PIC X.
030000 10 WY-OPT-SW-3 PIC X.
030100 10 WY-OPT-SW-4 PIC X.
030200 10 WY-OPT-SW-5 PIC X.
030300 10 WY-OPT-SW-6 PIC X.
030400 10 WY-OPT-SW-7 PIC X.
030500 10 WY-OPT-SW-8 PIC X.
030600 10 WY-OPT-SW-9 PIC X.
030700 10 WY-OPT-SW-10 PIC X.
030800 10 WY-OPT-SW-11 PIC X.
030900 10 WY-OPT-SW-12 PIC X.
031000 10 WY-OPT-SW-13 PIC X.
031100 10 WY-OPT-SW-14 PIC X.
031200 10 WY-OPT-SW-15 PIC X.
031300 10 WY-OPT-SW-16 PIC X.
031400 10 WY-OPT-SW-17 PIC X.
031500 10 WY-OPT-SW-18 PIC X.
031600 10 WY-OPT-SW-19 PIC X.
031700 10 WY-OPT-SW-20 PIC X.
031800 10 WY-OPT-SW-21 PIC X.
031900 10 WY-OPT-SW-22 PIC X.
032000 10 WY-OPT-SW-23 PIC X.
032100 10 WY-OPT-SW-24 PIC X.
032200 10 WY-OPT-SW-25 PIC X.
032300 10 WY-OPT-SW-26 PIC X.
032400 05 FILLERREDEFINES WY-OPTION-SWITCHES.
032500 10 WY-OPT-SW PIC X
032600 OCCURS 26.
032700 05 WY-PRINT-SWITCHES.
032800 10 WY-EXTRACT-ALL PIC X.
032900 10 WY-EXTRACT-AUTO PIC X.
033000 10 WY-EXTRACT-MAN PIC X.
033100 10 WY-KILL-DELETIONS PIC X.
033200 10 WY-LIST-NO-UPDATES PIC X.
033300 10 WY-LIST-X-CARDS PIC X.
033400 10 WY-LIST-PROGRAMS PIC X.
033500 10 WY-LIST-COMPACT PIC X.
033600 10 WY-NO-DATA PIC X.
033700 10 WY-NO-LIBRARY PIC X.
033800 10 WY-NO-SOURCE PIC X.
033900 10 WY-REMOVE-COMMENTS PIC X.
034000 10 WY-NEW-POP PIC X.
034100 10 WY-SELECT-PROG PIC X.
034200 10 WY-SELECT-MODULE PIC X.
034300 10 WY-SELECT-LEVEL PIC X.
034400
034500 01 WZ-MISCELLANEOUS.
034600 05 WZ-PROGRAM-SELECTED PIC X.
034700 05 WZ-END-OF-POPFILE PIC X.
034800 05 WZ-FULL-STOP PIC X.
034900 05 WZ-DONT-READ-POPFILE PIC X.
035000 05 WZ-UPDATE-THIS-PROG PIC X.
035100 05 WZ-REPLACE-FLAG PIC X.
035200 05 WZ-LINE-UPDATE PIC X.
035300 05 WZ-RESEQUENCE-THIS PIC X.
035400 05 WZ-RESEQUENCE-NEXT PIC X.
035500 05 WZ-END-OF-UPDATES PIC X.
035600 05 WZ-OPTIONAL-SELECTED PIC X.
035700 05 WZ-DELETE-FLAG PIC X.
035800 05 WZ-NOT-THIS-COMMENT PIC X.
035900 05 WZ-CURRENT-HEADER PIC X(5).
036000 05 WZ-INVALID-DATA.
036100 10 FILLERPIC X(20).
036200 10 WZ-ERROR-MESSAGE PIC X(60).
036300 05 WZ-CURRENT-UPD-PROG.
036400 10 WZ-UPD-PROG-CHAR PIC X.
036500 10 FILLERPIC X(5).
036600 05 WZ-CURRENT-MAIN-PROG.
036700 10 WZ-MAIN-PROG-CHAR PIC X OCCURS 6.
036800 05 WZ-PROG-BREAK.
036900 10 WZ-1CHAR PIC X OCCURS 6.
037000 05 WZ-CURRENT-POP-PROG.
037100 10 FILLERPIC X(5).
037200 10 WZ-PROG-ID-6 PIC X.
037300 05 WZ-MAIN-PROG-FLAG PIC X.
037400 05 WZ-LINES-COBOL PIC 9(6).
037500 05 WZ-LINES-INSERTED PIC 9(6).
037600 05 WZ-LINES-REPLACED PIC 9(6).
037700 05 WZ-LINES-DELETED PIC 9(6).
037800 05 WZ-COMMENTS-DELETED PIC 9(6).
037900 05 WZ-CODE-REMOVED PIC 9(6).
038000 05 WZ-SOURCE-PROGS PIC 9(6).
038100 05 WZ-NEWPOP-PROGS PIC 9(6).
038200 05 WZ-PROGS-FOUND PIC 9(6).
038300 05 WZ-COMMENTS-DEL PIC 9(6).
038400 05 WZ-SEQ-NO PIC 9(6).
038500 05 WZ-SAVE-POP-RECORD.
038600 10 WZ-SAVE-SEQ PIC X(6).
038700 10 FILLERPIC X(5).
038800 10 WZ-SAVE-12-20.
038900 15 WZ-SAVE-12-15 PIC X(4).
039000 15 FILLERPIC X(5).
039100 10 FILLERPIC X(60).
039200 05 WZ-PAGE-CT PIC 9(6).
039300 05 WZ-LINE-CT PIC 9(6).
039400 05 WZ-MODULE PIC XX.
039500 05 WZ-LEVEL PIC X.
039600 05 WZ-PRINT-HOLD PIC X(132).
039700 05 WZ-X-CARD.
039800 10 WZ-X-CHAR PIC X
039900 OCCURS 60.
040000 05 WZ-WITHIN-DELETE-SERIES-FLAG PIC X.
040100 01 WZ-VERSION-CARD.
040200 10 FILLERPIC X(55) VALUE
040300 "CCVS85 VERSION 4.2 01 OCT 1992 0032 ".
040400 01 WZ-VERSION-CONTROL REDEFINES WZ-VERSION-CARD.
040500 10 FILLERPIC X(16).
040600 10 WZ-VERSION-NUM PIC X(3).
040700 10 FILLERPIC X(3).
040800 10 WZ-VERSION-DATE PIC X(11).
040900
041000/
041100 PROCEDUREDIVISION. 041200*================== 041300*
041400 A10-MAIN SECTION. 041500*================ 041600* 041700**************************************************************** 041800* THIS IS THE HIGHEST LEVEL CONTROL MODULE * 041900* * 042000****************************************************************
042100 A10-1-MAIN.
042200 PERFORM B10-INITIALISE.
042300
042400 PERFORM C10-PROCESS-MONITOR.
042500
042600 PERFORM D10-MERGE-UPDATE-CARDS.
042700
042800 PERFORM E10-TERMINATE.
042900
043000 A10-EXIT.
043100 EXIT.
043200
043300/
043400 B10-INITIALISE SECTION. 043500*====================== 043600* 043700**************************************************************** 043800* THIS SECTION INITIALIZES THE OPTION SWITCH AND X-CARD FIELDS * 043900* PRIOR TO READING IN CONTROL CARD FILE. * 044000* * 044100* * 044200* * 044300* * 044400****************************************************************
044500 B10-1-INIT-OPTION-SWITCHES.
044600 MOVESPACESTO WZ-MISCELLANEOUS.
044700 MOVESPACESTO WF-PROGRAM-SELECTED-TABLE.
044800 MOVESPACESTO WG-MODULE-SELECTED-TABLE.
044900 MOVESPACESTO WY-SWITCHES.
045000 MOVE"A"TO WY-OPT-SW-1.
045100 MOVE"E"TO WY-OPT-SW-2.
045200 MOVE"H"TO WY-OPT-SW-3.
045300 MOVE"L"TO WY-OPT-SW-4.
045400 MOVE"Y"TO WY-OPT-SW-7.
045500 MOVE"T"TO WY-OPT-SW-11.
045600
045700 B10-2-INIT-X-CARDS.
045800 MOVEZEROTO SUB1.
045900 MOVEZEROTO SUB6.
046000 MOVEZEROTO SUB7.
046100 MOVE 1 TO SUB5.
046200 PERFORM B20-INIT-X-CARDS 200 TIMES.
046300 MOVE" OMITTED"TO WX-X-CARD (84).
046400 MOVEZEROTO WZ-LINES-COBOL.
046500 MOVEZEROTO WZ-LINES-INSERTED.
046600 MOVEZEROTO WZ-LINES-REPLACED.
046700 MOVEZEROTO WZ-LINES-DELETED.
046800 MOVEZEROTO WZ-COMMENTS-DELETED.
046900 MOVEZEROTO WZ-CODE-REMOVED.
047000 MOVEZEROTO WZ-SOURCE-PROGS.
047100 MOVEZEROTO WZ-NEWPOP-PROGS.
047200 MOVEZEROTO WZ-PROGS-FOUND.
047300 MOVEZEROTO WZ-COMMENTS-DEL.
047400 MOVEZEROTO WZ-SEQ-NO.
047500 MOVEZEROTO WZ-PAGE-CT.
047600 MOVEZEROTO WZ-LINE-CT.
047700 ACCEPT WA-DATE FROMDATE.
047800 B10-EXIT.
047900 EXIT.
048000
048100
048200
048300
048400 B20-INIT-X-CARDS SECTION. 048500*========================
048600 B20-1-INIT.
048700 ADD 1 TO SUB1.
048800 MOVE"**** X-CARD UNDEFINED ****"TO WX-X-CARD (SUB1).
048900 MOVEZEROTO WX-PROG-POS (SUB1).
049000
049100 B20-EXIT.
049200 EXIT.
049300/
049400 C10-PROCESS-MONITOR SECTION. 049500*===========================
049600 049700**************************************************************** 049800* THIS SECTION PROCESSES THE RECORDS COMMENCING WITH "*" * 049900* AND "X-" (THE MONITOR PART OF THE INPUT FILE ) AND READS * 050000* THE FIRST "*START" UPDATE RECORD. * 050100* * 050200* PERFORMED BY A10-MAIN * 050300* PERFORMS C20-PROCESS-STAR-CARDS * 050400* C30-CHECK-COMBINATIONS * 050500* C40-PROCESS-X-CARDS * 050600****************************************************************
050700 C10-1-OPEN-FILES.
050800 OPENOUTPUT PRINT-FILE.
050900 MOVESPACESTO PRINT-REC.
051000 OPENINPUT CONTROL-CARD-FILE.
051100 READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA
051200 ATENDMOVE"CONTROL-CARD-FILE IS EMPTY"
051300 TO PRINT-DATA
051400 PERFORM X20-PRINT-DETAIL
051500 STOPRUN.
051600 PERFORM C20-PROCESS-STAR-CARDS
051700 UNTIL WB-X-HYPHEN = "X-".
051800 PERFORM C30-CHECK-COMBINATIONS.
051900 PERFORM C40-PROCESS-X-CARDS
052000 UNTIL WB-12 = "*END-MONITOR".
052100
052200 PERFORM C50-PRINT-OPTIONS.
052300
052400 C10-10-GET-FIRST-START-CARD.
052500 READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA
052600 ATENDMOVE"NO BEGIN-UPDATE CARD FOUND"
052700 TO PRINT-DATA
052800 PERFORM X20-PRINT-DETAIL
052900 STOPRUN.
053000 IF WB-13 NOT = "*BEGIN-UPDATE"
053100 MOVE"*BEGIN-UPDATE CARD MISSING"
053200 TO PRINT-DATA
053300 PERFORM X20-PRINT-DETAIL
053400 STOPRUN.
053500 READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA
053600 ATENDMOVE"NO END-UPDATE CARD FOUND"
053700 TO PRINT-DATA
053800 PERFORM X20-PRINT-DETAIL
053900 STOPRUN.
054000 IF WB-11 = "*END-UPDATE"
054100 MOVE"Y"TO WZ-END-OF-UPDATES
054200 GOTO C10-EXIT.
054300 IF WB-STAR-START = "*START"
054400 PERFORM C60-START-CARD.
054500
054600 C10-EXIT.
054700 EXIT.
054800/
054900 C20-PROCESS-STAR-CARDS SECTION. 055000*============================== 055100* 055200**************************************************************** 055300* THIS SECTION PROCESSES THE INPUT PARAMETER FILE RECORDS * 055400* WHICH START WITH AN ASTERISK IN COLUMN 1 AND SETS VARIOUS * 055500* FLAGS WHICH CONTROL THE WAY THIS EXECUTIVE ROUTINE WORKS. * 055600* * 055700* PERFORMED BY C10-PROCESS-MONITOR * 055800* PERFORMS C25-SET-FLAGS * 055900****************************************************************
056000 C20-1-UPDATE-CHECK.
056100 IF WB-13 = "*BEGIN-UPDATE"
056200 MOVE WB-13 TO WZ-INVALID-DATA
056300 MOVE"ENCOUNTERED BEFORE *END-MONITOR CARD"
056400 TO WZ-ERROR-MESSAGE
056500 MOVE WZ-INVALID-DATA TO PRINT-DATA
056600 PERFORM X20-PRINT-DETAIL
056700 STOPRUN.
056800
056900 IF WB-6 = "*START"
057000 MOVE WB-6 TO WZ-INVALID-DATA
057100 MOVE"ENCOUNTERED BEFORE *END-MONITOR CARD"
057200 TO WZ-ERROR-MESSAGE
057300 MOVE WZ-INVALID-DATA TO PRINT-DATA
057400 PERFORM X20-PRINT-DETAIL
057500 STOPRUN.
057600
057700 IF WB-11 = "*END-UPDATE"
057800 MOVE WB-11 TO WZ-INVALID-DATA
057900 MOVE"ENCOUNTERED BEFORE *END-MONITOR CARD"
058000 TO WZ-ERROR-MESSAGE
058100 MOVE WZ-INVALID-DATA TO PRINT-DATA
058200 PERFORM X20-PRINT-DETAIL
058300 STOPRUN.
058400
058500 PERFORM C25-SET-FLAGS.
058600
058700 C20-EXIT.
058800 EXIT.
058900
059000/
059100 C25-SET-FLAGS SECTION. 059200*=====================
059300 C25-1.
059400 MOVE WB-CONTROL-DATA TO PRINT-DATA.
059500 PERFORM X20-PRINT-DETAIL.
059600 IF WB-12 = "*EXTRACT-ALL"
059700 MOVE"Y"TO WY-EXTRACT-ALL.
059800 IF WB-13 = "*EXTRACT-AUTO"
059900 MOVE"Y"TO WY-EXTRACT-AUTO.
060000 IF WB-12 = "*EXTRACT-MAN"
060100 MOVE"Y"TO WY-EXTRACT-MAN.
060200 IF WB-15 = "*KILL-DELETIONS"
060300 MOVE"Y"TO WY-KILL-DELETIONS.
060400 IF WB-16 = "*LIST NO-UPDATES"
060500 MOVE"Y"TO WY-LIST-NO-UPDATES.
060600 IF WB-13 = "*LIST X-CARDS"
060700 MOVE"Y"TO WY-LIST-X-CARDS.
060800 IF WB-14 = "*LIST PROGRAMS"
060900 MOVE"Y"TO WY-LIST-PROGRAMS.
061000 IF WB-13 = "*LIST COMPACT"
061100 MOVE"Y"TO WY-LIST-COMPACT.
061200 IF WB-8 = "*NO-DATA"
061300 MOVE"Y"TO WY-NO-DATA.
061400 IF WB-11 = "*NO-LIBRARY"
061500 MOVE"Y"TO WY-NO-LIBRARY.
061600 IF WB-10 = "*NO-SOURCE"
061700 MOVE"Y"TO WY-NO-SOURCE.
061800 IF WB-16 = "*REMOVE-COMMENTS"
061900 MOVE"Y"TO WY-REMOVE-COMMENTS.
062000 IF WB-8 = "*NEW-POP"
062100 MOVE"Y"TO WY-NEW-POP.
062200 IF WB-4 = "*OPT"
062300 MOVE WB-X TO WY-OPT-SW (WB-NN).
062400 IF WB-14 = "*SELECT-MODULE"
062500 IF WB-MODULE = SPACE
062600 MOVE"SELECTED MODULE NOT SPECIFIED"
062700 TO PRINT-DATA
062800 PERFORM X20-PRINT-DETAIL
062900 STOPRUN.
063000
063100 IF WB-14 = "*SELECT-MODULE"
063200 ADD 1 TO SUB6
063300 IF SUB6 > 10
063400 MOVE"MORE THAN 10 MODULES SELECTED"
063500 TO PRINT-DATA
063600 PERFORM X20-PRINT-DETAIL
063700 STOPRUN
063800 ELSE
063900 MOVE"Y"TO WY-SELECT-MODULE
064000 MOVE WB-MODULE
064100 TO WG-MODULE-SELECTED (SUB6)
064200 MOVE WB-LEVEL TO WG-MODULE-LEVEL (SUB6).
064300 IF WB-12 = "*SELECT-PROG"
064400 ADD 1 TO SUB7
064500 IF SUB7 > 50
064600 MOVE"MORE THAN 50 RECORDS SELECTED"
064700 TO PRINT-DATA
064800 PERFORM X20-PRINT-DETAIL
064900 STOPRUN
065000 ELSE
065100 MOVE"Y"TO WY-SELECT-PROG
065200 MOVE WB-PROG
065300 TO WF-PROGRAM-SELECTED (SUB7).
065400
065500 C25-10-READ-FILE.
065600 MOVESPACESTO WB-CONTROL-DATA.
065700 READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA
065800 ATENDMOVE"*END-MONITOR NOT ENCOUNTERED"
065900 TO PRINT-DATA
066000 PERFORM X20-PRINT-DETAIL
066100 STOPRUN.
066200 C25-EXIT.
066300 EXIT.
066400/
066500 C30-CHECK-COMBINATIONS SECTION. 066600*============================== 066700* 066800**************************************************************** 066900* THIS SECTION CHECKS FOR ANY INVALID COMBINATIONS OF * 067000* CARDS INPUT WITH AN ASTERISK IN COLUMN 1. * 067100* * 067200* PERFORMED BY C10-PROCESS-MONITOR * 067300* PERFORMS NONE * 067400****************************************************************
067500 C30-1-SELECTION-CHECK.
067600 IF WY-EXTRACT-ALL = SPACE
067700 GOTO C30-10.
067800 IF WY-EXTRACT-AUTO = "Y"
067900 MOVE"ALL AND AUTO PROGRAMS SELECTED"
068000 TO PRINT-DATA
068100 PERFORM X20-PRINT-DETAIL
068200 STOPRUN.
068300
068400 C30-10.
068500 IF WY-EXTRACT-ALL = SPACE
068600 GOTO C30-20.
068700 IF WY-EXTRACT-MAN = "Y"
068800 MOVE"ALL AND MANUAL PROGRAMS SELECTED"
068900 TO PRINT-DATA
069000 PERFORM X20-PRINT-DETAIL
069100 STOPRUN.
069200
069300 C30-20.
069400 IF WY-LIST-PROGRAMS = SPACE
069500 GOTO C30-30.
069600 IF WY-LIST-NO-UPDATES = SPACE
069700 MOVE"BOTH UPDATES AND PROGRAMS SELECTED"
069800 TO PRINT-DATA
069900 PERFORM X20-PRINT-DETAIL
070000 STOPRUN.
070100
070200 C30-30.
070300 IF WY-EXTRACT-AUTO = SPACE
070400 GOTO C30-40-CHECK-FOR-NEW-FILE.
070500 IF WY-EXTRACT-MAN = "Y"
070600 MOVE"AUTO AND MANUAL PROGRAMS SELECTED"
070700 TO PRINT-DATA
070800 PERFORM X20-PRINT-DETAIL
070900 STOPRUN.
071000
071100 C30-40-CHECK-FOR-NEW-FILE.
071200 IF WY-NO-SOURCE = SPACE
071300 GOTO C30-50.
071400 IF WY-NEW-POP = "Y"
071500 GOTO C30-50.
071600 MOVE"NO SOURCE OR UPDATED POPFILE SELECTED"TO PRINT-DATA.
071700 PERFORM X20-PRINT-DETAIL
071800 STOPRUN.
071900
072000 C30-50.
072100 IF WY-EXTRACT-ALL = "Y"
072200 GOTO C30-55.
072300 IF WY-EXTRACT-MAN = "Y"
072400 GOTO C30-55.
072500 IF WY-EXTRACT-AUTO = SPACE
072600 GOTO C30-60.
072700 C30-55.
072800 IF WY-SELECT-PROG = "Y"
072900 MOVE"SINGLE PROGRAM SELECTED WITH ALL/AUTO/MANUAL"
073000 TO PRINT-DATA
073100 PERFORM X20-PRINT-DETAIL
073200 STOPRUN.
073300 IF WY-SELECT-MODULE = "Y"
073400 MOVE"SINGLE MODULE SELECTED WITH ALL/AUTO/MANUAL"
073500 TO PRINT-DATA
073600 PERFORM X20-PRINT-DETAIL
073700 STOPRUN.
073800
073900 C30-60.
074000 IF WY-SELECT-PROG = SPACE
074100 GOTO C30-70.
074200 IF WY-SELECT-MODULE = "Y"
074300 MOVE"SINGLE MODULE AND SINGLE PROGRAM SELECTED"
074400 TO PRINT-DATA
074500 PERFORM X20-PRINT-DETAIL
074600 STOPRUN.
074700
074800
074900 C30-70.
075000 IF WY-EXTRACT-ALL = SPACE
075100 IF WY-EXTRACT-AUTO = SPACE
075200 IF WY-EXTRACT-MAN = SPACE
075300 IF WY-SELECT-PROG = SPACE
075400 IF WY-SELECT-MODULE = SPACE
075500 MOVE"NO PROGRAMS SELECTED"
075600 TO PRINT-DATA
075700 PERFORM X20-PRINT-DETAIL
075800 STOPRUN.
075900
076000 C30-EXIT.
076100 EXIT.
076200/
076300 C40-PROCESS-X-CARDS SECTION. 076400*=========================== 076500* 076600**************************************************************** 076700* THIS SECTION PROCESSES THE INPUT PARAMETER FILE RECORDS * 076800* WHICH START WITH AN "X" IN COLUMN 1 AND SETS A TABLE WHICH* 076900* CONTAINS TEXT TO BE SUBSTITUTED BY THIS EXECUTIVE ROUTINE.* 077000* * 077100* PERFORMED BY C10-PROCESS-MONITOR * 077200* PERFORMS NONE * 077300****************************************************************
077400 C40-1-PROCESS-CARD.
077500 IF WB-X-HYPHEN NOT = "X-"
077600 MOVE"INVALID X-CARD:"TO WZ-INVALID-DATA
077700 MOVE WB-CONTROL-DATA TO WZ-ERROR-MESSAGE
077800 MOVE WZ-INVALID-DATA TO PRINT-DATA
077900 PERFORM X20-PRINT-DETAIL
078000 GOTO C40-90-READ-FILE.
078100
078200 IF WB-X-CARD-NUM > 200
078300 MOVE"INVALID X-CARD:"TO WZ-INVALID-DATA
078400 MOVE WB-CONTROL-DATA TO WZ-ERROR-MESSAGE
078500 MOVE WZ-INVALID-DATA TO PRINT-DATA
078600 PERFORM X20-PRINT-DETAIL
078700 GOTO C40-90-READ-FILE.
078800
078900 C40-20-MOVE-DATA.
079000 MOVE WB-SUBS-TEXT TO WX-X-CARD (WB-X-CARD-NUM).
079100 IF WB-PROG-POS = SPACES
079200 GOTO C40-30-MOVE-DATA.
079300 IF WB-PROG-POS-NUM < 55
079400 MOVE WB-PROG-POS-NUM
079500 TO WX-PROG-POS (WB-X-CARD-NUM).
079600
079700 C40-30-MOVE-DATA.
079800 MOVE WB-CONTROL-DATA TO PRINT-DATA.
079900 PERFORM X20-PRINT-DETAIL.
080000
080100 C40-90-READ-FILE.
080200 READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA
080300 ATENDMOVE
080400 "*BEGIN-UPDATE AND *END-UPDATE CARDS NOT ENCOUNTERED"
080500 TO PRINT-DATA
080600 PERFORM X20-PRINT-DETAIL
080700 STOPRUN.
080800
080900 C40-EXIT.
081000 EXIT.
081100
081200/
081300 C50-PRINT-OPTIONS SECTION. 081400*========================= 081500* 081600**************************************************************** 081700* THIS SECTION PRINTS DETAILS OF THE PROCESSING OPTIONS * 081800* SELECTED BY THE VARIOUS CONTROL CARDS INPUT * 081900* * 082000* PERFORMED BY C10-PROCESS-MONITOR * 082100* PERFORMS NONE * 082200****************************************************************
082300 C50-1-PRINT-OPTION-SWITCHES.
082400 WRITE PRINT-REC FROM WV-OPTION-HEADING AFTERPAGE.
082500 WRITE PRINT-REC FROM WV-OPT-1 AFTER 1.
082600 WRITE PRINT-REC FROM WV-OPT-2 AFTER 1.
082700 MOVESPACESTO WV-OPT-SWITCHES.
082800 MOVEZEROTO SUB1.
082900 PERFORM C50-4 26 TIMES.
083000 GOTO C50-5.
083100 C50-4. 083200* PERFORM 26 TIMES
083300 ADD 1 TO SUB1
083400 MOVE WY-OPT-SW (SUB1) TO WV-OPT (SUB1). 083500* END-PERFORM.
083600 C50-5.
083700 WRITE PRINT-REC FROM WV-OPT-SWITCHES AFTER 1.
083800
083900 C50-20-LISTING-OPTIONS.
084000 IF WY-LIST-NO-UPDATES = "Y"
084100 MOVE"UPDATES WILL NOT BE REPORTED"TO PRINT-DATA
084200 ELSE
084300 MOVE"UPDATES WILL BE REPORTED"TO PRINT-DATA.
084400 WRITE PRINT-REC AFTER 3.
084500
084600 IF WY-LIST-X-CARDS = "Y"
084700 MOVE"X-CARD SUBSTITUTIONS WILL BE SHOWN"
084800 TO PRINT-DATA
084900 ELSE
085000 MOVE"X-CARD SUBSTITUTIONS WILL NOT BE SHOWN"
085100 TO PRINT-DATA.
085200 WRITE PRINT-REC AFTER 1.
085300
085400 IF WY-LIST-PROGRAMS = "Y"
085500 MOVE"PROGRAM LISTINGS WILL BE PRINTED"
085600 TO PRINT-DATA
085700 ELSE
085800 MOVE"PROGRAM LISTINGS WILL NOT BE PRINTED"
085900 TO PRINT-DATA.
086000 WRITE PRINT-REC AFTER 1.
086100
086200 IF WY-LIST-COMPACT = "Y"
086300 MOVE"REPORT WILL BE COMPRESSED"TO PRINT-DATA
086400 ELSE
086500 MOVE"REPORT WILL BE EXPANDED"TO PRINT-DATA.
086600 WRITE PRINT-REC AFTER 1.
086700
086800 IF WY-NO-SOURCE = "Y"
086900 MOVE"SOURCE FILE WILL BE SUPPRESSED"TO PRINT-DATA
087000 ELSE
087100 MOVE"SOURCE FILE WILL BE CREATED"TO PRINT-DATA.
087200 WRITE PRINT-REC AFTER 1.
087300
087400 IF WY-NEW-POP = "Y"
087500 MOVE"NEW POPULATION FILE WILL BE CREATED"
087600 TO PRINT-DATA
087700 ELSE
087800 MOVE"NEW POPULATION FILE WILL BE SUPPRESSED"
087900 TO PRINT-DATA.
088000 WRITE PRINT-REC AFTER 1.
088100
088200
088300 C50-30.
088400 IF WY-NO-LIBRARY = "Y"
088500 MOVE"LIBRARY NOT SELECTED"
088600 TO PRINT-DATA
088700 ELSE
088800 MOVE"LIBRARY FILES WILL BE SELECTED"
088900 TO PRINT-DATA.
089000 WRITE PRINT-REC AFTER 1.
089100
089200 C50-35.
089300 IF WY-NO-DATA = "Y"
089400 MOVE"DATA BLOCKS WILL BE IGNORED"
089500 TO PRINT-DATA
089600 ELSE
089700 MOVE"DATA BLOCKS WILL BE SENT TO SOURCE FILE"
089800 TO PRINT-DATA.
089900 WRITE PRINT-REC AFTER 1.
090000
090100 C50-40.
090200 IF WY-EXTRACT-ALL = "Y"
090300 MOVE"ALL PROGRAMS SELECTED"TO PRINT-DATA.
090400 IF WY-EXTRACT-AUTO = "Y"
090500 MOVE"ALL AUTOMATIC PROGRAMS SELECTED"
090600 TO PRINT-DATA.
090700 IF WY-EXTRACT-MAN = "Y"
090800 MOVE"ALL MANUAL PROGRAMS SELECTED"
090900 TO PRINT-DATA.
091000 IF WY-SELECT-PROG = "Y"
091100 MOVE"SEPARATE PROGRAMS SELECTED"
091200 TO PRINT-DATA.
091300 IF WY-SELECT-MODULE = "Y"
091400 MOVE"SEPARATE MODULES SELECTED"
091500 TO PRINT-DATA.
091600 WRITE PRINT-REC AFTER 1.
091700
091800 IF WY-REMOVE-COMMENTS = "Y"
091900 MOVE"COMMENT LINES WILL BE REMOVED"
092000 TO PRINT-DATA
092100 ELSE
092200 MOVE"COMMENT LINES WILL BE RETAINED"
092300 TO PRINT-DATA.
092400 WRITE PRINT-REC AFTER 1.
092500
092600
092700 IF WY-KILL-DELETIONS = "Y"
092800 MOVE"UNUSED OPTIONAL CODE WILL BE REMOVED"
092900 TO PRINT-DATA
093000 ELSE
093100 MOVE"UNUSED OPTIONAL CODE WILL BE CONVERTED TO COM
093200- "MENTS AND RETAINED"
093300 TO PRINT-DATA.
093400 WRITE PRINT-REC AFTER 1.
093500
093600 C50-EXIT.
093700 EXIT.
093800
093900/
094000 C60-START-CARD SECTION. 094100*====================== 094200* 094300**************************************************************** 094400* WHEN A "*START" CARD IS READ THIS SECTION INITIALISES * 094500* VARIOUS FIELDS AND SETS CERTAIN FLAGS. * 094600* * 094700* PERFORMED BY C10-PROCESS-MONITOR * 094800* D62-SERIES-UPDATE * 094900* D67-LINE-UPDATE * 095000* D68-LINE-EQUAL * 095100* D69-LINE-BLANK-OR-LESS * 095200* D40-ANY-UPDATES 095300* PERFORMS NONE * 095400****************************************************************
095500 C60-1.
095600
095700 MOVE WB-UPDATE-PROG TO WZ-CURRENT-UPD-PROG.
095800
095900 IF WZ-CURRENT-UPD-PROG = WZ-CURRENT-POP-PROG
096000 MOVE"Y"TO WZ-UPDATE-THIS-PROG
096100 ELSE
096200 MOVESPACETO WZ-UPDATE-THIS-PROG.
096300
096400 C60-EXIT.
096500 EXIT.
096600/
096700 D10-MERGE-UPDATE-CARDS SECTION. 096800*============================== 096900* 097000**************************************************************** 097100* THIS IS THE MAIN CONTROL SECTION FOR THE PROCESSING OF * 097200* THE POPULATION FILE. IT OBTAINS THE HEADER FOR THE FIRST * 097300* AUDIT ROUTINE IN THE POPFILE AND PROCESSES ALL RECORDS. * 097400* * 097500* PERFORMED BY A10-MAIN * 097600* PERFORMS D11-GET-NEXT-PROGRAM * 097700* D15-END-OF-POPFILE * 097800* D20-PROCESS-POPFILE * 097900****************************************************************
098000 D10-1-OPEN-FILES.
098100 IF WY-NEW-POP = "Y"
098200 OPENOUTPUT UPDATED-POPULATION-FILE.
098300
098400 IF WY-NO-SOURCE = SPACE
098500 OPENOUTPUT SOURCE-COBOL-PROGRAMS.
098600
098700 OPENINPUT POPULATION-FILE.
098800 PERFORM D10-20-GET-VERSION.
098900 MOVE WZ-VERSION-CARD TO PRINT-DATA.
099000 PERFORM X20-PRINT-DETAIL.
099100
099200 D10-10-GET-HEADER.
099300 PERFORM D11-GET-NEXT-PROGRAM.
099400
099500 PERFORM D20-PROCESS-POPFILE
099600 UNTIL WZ-END-OF-POPFILE = "Y".
099700
099800 PERFORM D15-END-OF-POPFILE.
099900
100000 D10-EXIT.
100100 EXIT.
100200/
100300 D10-20-GET-VERSION SECTION. 100400*============================ 100500*
100600 D10-20-INIT-VER.
100700 MOVE WZ-VERSION-NUM TO WA-VERSION-NUM.
100800 MOVE WZ-VERSION-DATE TO WA-VERSION-DATE.
100900
101000 D10-20-EXIT.
101100 EXIT.
101200/
101300 D11-GET-NEXT-PROGRAM SECTION. 101400*============================ 101500* 101600**************************************************************** 101700* PERFORMED BY D10-MERGE-UPDATE-CARDS * 101800* D30-PROCESS-HEADER * 101900****************************************************************
102000 D11-1-READ-POPFILE.
102100 MOVESPACESTO WC-STAR-HEADER.
102200
102300 PERFORM X30-READ-POPFILE
102400 UNTIL WC-STAR-HEADER = "*HEADER".
102500 D11-TEST-END.
102600 IF WZ-END-OF-POPFILE = "Y"
102700 GOTO D11-EXIT.
102800
102900 IF WC-COBOL NOT = "COBOL"
103000 IF WC-COBOL = "CLBRY"
103100 IF WY-NO-LIBRARY = "Y"
103200 GOTO D11-1-READ-POPFILE
103300 ELSE
103400 NEXTSENTENCE
103500 ELSE
103600 IF WC-COBOL = "DATA*"
103700 IF WY-NO-DATA = "Y"
103800 GOTO D11-1-READ-POPFILE
103900 ELSE
104000 NEXTSENTENCE
104100 ELSE
104200 GOTO D11-1-READ-POPFILE.
104300
104400 D11-EXIT.
104500 EXIT.
104600/
104700 D15-END-OF-POPFILE SECTION. 104800*========================== 104900* 105000**************************************************************** 105100* THIS SECTION PRINTS END OF RUN ACCOUNTING INFORMATION AND * 105200* FLAGS ANY OUTSTANDING *UPDATE RECORDS AS UNUSED. * 105300* * 105400* PERFORMED BY D10-MERGE-UPDATE-CARD * 105500* PERFORMS D16-FLAG-UNUSED-UPDATES * 105600* X20-PRINT-DETAIL * 105700****************************************************************
105800 D15-1-SET-UP-FIELDS.
105900 MOVE WZ-PROGS-FOUND TO WA-PROGS-FOUND.
106000 MOVE WA-FINAL-LINE-1 TO PRINT-DATA.
106100 PERFORM X20-PRINT-DETAIL.
106200
106300 IF WY-NO-SOURCE = SPACE
106400 MOVE WZ-SOURCE-PROGS TO WA-SOURCE-PROGS
106500 MOVE WA-FINAL-LINE-2 TO PRINT-DATA
106600 PERFORM X20-PRINT-DETAIL.
106700
106800 IF WY-NEW-POP = "Y"
106900 MOVE WZ-NEWPOP-PROGS TO WA-NEWPOP-PROGS
107000 MOVE WA-FINAL-LINE-3 TO PRINT-DATA
107100 PERFORM X20-PRINT-DETAIL.
107200
107300 IF WZ-END-OF-UPDATES = SPACE
107400 READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA
107500 ATENDMOVE"Y"TO WZ-END-OF-UPDATES.
107600
107700 PERFORM D16-FLAG-UNUSED-UPDATES
107800 UNTIL WZ-END-OF-UPDATES = "Y".
107900
108000 IF WY-SELECT-PROG = "Y"AND
108100 WF-PROGRAM-SELECTED-TABLE NOT = SPACES
108200 MOVE"SOME PROGRAMS NOT FOUND"TO PRINT-DATA
108300 PERFORM X20-PRINT-DETAIL
108400 PERFORMVARYING SUB7 FROM 1 BY 1 UNTIL SUB7 > 50
108500 IF WF-PROGRAM-SELECTED (SUB7) NOT = SPACE
108600 MOVE WF-PROGRAM-SELECTED (SUB7) TO PRINT-DATA
108700 PERFORM X20-PRINT-DETAIL
108800 END-IF
108900 END-PERFORM.
109000
109100 D15-EXIT.
109200 EXIT.
109300
109400
109500
109600
109700 D16-FLAG-UNUSED-UPDATES SECTION. 109800*===============================
109900 D16-1-PRINT-UPDATES.
110000 MOVE WB-CONTROL-DATA TO PRINT-DATA.
110100 PERFORM X20-PRINT-DETAIL.
110200 READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA
110300 ATENDMOVE"Y"TO WZ-END-OF-UPDATES.
110400
110500 D16-EXIT.
110600 EXIT.
110700
110800
110900/
111000 D20-PROCESS-POPFILE SECTION. 111100*=========================== 111200* 111300**************************************************************** 111400* THIS IS THE MAIN CONTROL SECTION FOR POPULATION FILE * 111500* PROCESSING. * 111600* * 111700* PERFORMED BY D10-MERGE-UPDATE-CARDS * 111800* PERFORMS D25-PRINT-REPORT * 111900* D30-PROCESS-HEADER * 112000* D90-PROCESS-END-OF * 112100* X10-WRITE-UPDATED-POPFILE * 112200* X30-READ-POPFILE * 112300* X40-WRITE-SOURCE-FILE * 112400****************************************************************
112500 D20-1-CHECK-RECORD-TYPE.
112600 MOVESPACETO WZ-NOT-THIS-COMMENT.
112700 MOVESPACETO WZ-LINE-UPDATE.
112800 MOVESPACETO WZ-REPLACE-FLAG. 112900* MOVE "Y" TO WZ-UPDATE-THIS-PROG.
113000 MOVESPACETO WZ-OPTIONAL-SELECTED.
113100 MOVESPACETO WZ-DELETE-FLAG.
113200
113300 IF WC-STAR-HEADER = "*HEADER"
113400 MOVESPACETO WZ-PROGRAM-SELECTED
113500 PERFORM D30-PROCESS-HEADER
113600 UNTIL WZ-PROGRAM-SELECTED = "Y"
113700 ELSE
113800 IF WC-STAR-HEADER = "*END-OF"
113900 PERFORM D90-PROCESS-END-OF
114000 ELSE
114100 PERFORM D50-PROCESS-COBOL-LINE.
114200
114300 PERFORM D25-PRINT-REPORT.
114400
114500 D20-10-SOURCE-CHECK.
114600 IF WY-NO-SOURCE = "Y"
114700 GOTO D20-20-UPDATED-POP-CHECK.
114800 IF WZ-DELETE-FLAG = "Y"
114900 GOTO D20-20-UPDATED-POP-CHECK.
115000 IF WZ-NOT-THIS-COMMENT = "Y"
115100 GOTO D20-20-UPDATED-POP-CHECK. 115200* IF WZ-UPDATE-THIS-PROG = SPACE 115300* GO TO D20-30-READ-FILE.
115400
115500 IF WZ-END-OF-POPFILE NOT = "Y"
115600 PERFORM X40-WRITE-SOURCE-FILE.
115700
115800 D20-20-UPDATED-POP-CHECK.
115900 IF WY-NEW-POP = "Y"
116000 PERFORM X10-WRITE-UPDATED-POPFILE.
116100 MOVE WZ-SAVE-POP-RECORD TO WC-CURRENT-POP-RECORD.
116200
116300 D20-30-READ-FILE.
116400 IF WZ-END-OF-POPFILE = "Y"
116500 GOTO D20-EXIT.
116600 IF WB-SEQ-1 = SPACES
116700 MOVE WZ-SAVE-SEQ TO WC-6
116800 GOTO D20-EXIT.
116900 PERFORM X30-READ-POPFILE.
117000
117100 D20-EXIT.
117200 EXIT.
117300
117400/
117500 D25-PRINT-REPORT SECTION. 117600*======================== 117700* 117800**************************************************************** 117900* DEPENDING ON THE PRINT OPTIONS SELECTED, THIS SECTION * 118000* PRINTS EITHER THE EXTRACTED PROGRAMS OR ANY UPDATES AND * 118100* X-CARD SUBSTITUTIONS MADE. * 118200* * 118300* PERFORMED BY D20-PROCESS-POPFILE * 118400* PERFORMS X20-PRINT-DETAIL * 118500* D27-PRINT-UPDATES * 118600****************************************************************
118700 D25-1-CHECK-LIST-PROGRAMS.
118800 IF WY-LIST-PROGRAMS = "Y"
118900 MOVE WC-CURRENT-POP-RECORD TO PRINT-DATA
119000 PERFORM X20-PRINT-DETAIL
119100 GOTO D25-EXIT.
119200
119300 D25-10-UPDATES-CHECK.
119400 IF WY-LIST-NO-UPDATES = SPACE
119500 IF WZ-LINE-UPDATE = "Y"
119600 PERFORM D27-PRINT-UPDATES
119700 GOTO D25-EXIT.
119800
119900 D25-20-X-CARD-CHECK.
120000 IF WY-LIST-X-CARDS = "Y"
120100 IF WZ-SAVE-12-15 = "XXXX"
120200 MOVE WZ-SAVE-12-20 TO WE-X-CARD
120300 MOVE"SUBSTITUTION"TO WE-CHANGE-TYPE
120400 MOVE WC-CURRENT-POP-RECORD
120500 TO WE-COBOL-LINE
120600 MOVE WE-PRINT-DATA TO PRINT-DATA
120700 PERFORM X20-PRINT-DETAIL.
120800
120900 D25-EXIT.
121000 EXIT.
121100
121200
121300
121400/
121500 D27-PRINT-UPDATES SECTION. 121600*========================= 121700* 121800**************************************************************** 121900* THIS SECTION WILL PRINT THE ORIGINAL POPULATION FILE * 122000* RECORD (IF "*LIST NO-UPDATES" HAS NOT BEEN SPECIFIED) AND,* 122100* IF A REPLACEMENT, THE NEW IMAGE OR, IF AN INSERTION, JUST * 122200* THE NEW LINE OF CODE. * 122300* * 122400* PERFORMED BY D25-PRINT-REPORT * 122500* PERFORMS X20-PRINT-DETAIL * 122600****************************************************************
122700 D27-1-PRINT-REPLACEMENTS.
122800 IF WZ-REPLACE-FLAG = "Y"
122900 MOVE WZ-SAVE-POP-RECORD TO WE-COBOL-LINE
123000 MOVESPACESTO WE-X-CARD
123100 MOVE"ORIGINAL"TO WE-CHANGE-TYPE
123200 MOVE WE-PRINT-DATA TO PRINT-DATA
123300 PERFORM X20-PRINT-DETAIL
123400 MOVE"REPLACEMENT"TO WE-CHANGE-TYPE
123500 MOVESPACESTO WE-X-CARD
123600 MOVE WC-CURRENT-POP-RECORD TO WE-COBOL-LINE
123700 MOVE WE-PRINT-DATA TO PRINT-DATA
123800 PERFORM X20-PRINT-DETAIL
123900 GOTO D27-EXIT.
124000
124100 D27-10-PRINT-NEW-DATA.
124200 IF WZ-DONT-READ-POPFILE = "Y"
124300 MOVE WC-CURRENT-POP-RECORD TO WE-COBOL-LINE
124400 MOVE WE-PRINT-DATA TO PRINT-DATA
124500 PERFORM X20-PRINT-DETAIL
124600 GOTO D27-EXIT.
124700
124800 D27-20-PRINT-DELETIONS.
124900 IF WZ-DELETE-FLAG = "Y"
125000 MOVE WZ-SAVE-POP-RECORD TO WE-COBOL-LINE
125100 MOVE WE-PRINT-DATA TO PRINT-DATA
125200 PERFORM X20-PRINT-DETAIL.
125300
125400 D27-EXIT.
125500 EXIT.
125600
125700/
125800 D30-PROCESS-HEADER SECTION. 125900*========================== 126000* 126100**************************************************************** 126200* THIS SECTION PROCESSES ANY "*HEADER" RECORDS. * 126300* * 126400* PERFORMED BY D20-PROCESS-POPFILE * 126500* PERFORMS D90-PROCESS-END-OF * 126600* D11-GET-NEXT-PROGRAM * 126700* D31-PROCESS-DATA-HEADER * 126800* D32-PROCESS-COBOL-HEADER * 126900* D40-ANY-UPDATES * 127000* X10-WRITE-UPDATED-POPFILE * 127100* D43-PROGRAM-SELECTED * 127200****************************************************************
127300 D30-1-CHECK-HEADER-TYPE.
127400 MOVE WC-COBOL TO BLOCK-TYPE
127500 IF WC-COBOL = "CLBRY"
127600 AND WY-NO-LIBRARY NOT = "Y"
127700 MOVE WC-HEADER TO PRINT-DATA
127800 MOVE WC-PROG-ID TO WZ-CURRENT-MAIN-PROG
127900 WZ-CURRENT-POP-PROG 128000***************************************************************** 128100* NOTE FOLLOWING CHANGES *** 128200***************************************************************** 128300* PERFORM D36-INITIALISE-PROGRAM-TOTALS
128400 MOVE"Y"TO WZ-PROGRAM-SELECTED
128500 PERFORM D34-PROGRAM-SELECTED.
128600
128700 IF WC-COBOL = "DATA*"
128800 PERFORM D31-PROCESS-DATA-HEADER.
128900
129000 IF WC-COBOL = "COBOL"
129100 ADD 1 TO WZ-PROGS-FOUND
129200 PERFORM D32-PROCESS-COBOL-HEADER.
129300
129400 IF WZ-PROGRAM-SELECTED = "Y"
129500 GOTO D30-20-HEADER-SELECTED.
129600
129700 PERFORM D11-GET-NEXT-PROGRAM.
129800 IF WZ-END-OF-POPFILE = "Y"
129900 MOVE"Y"TO WZ-PROGRAM-SELECTED
130000 GOTO D30-EXIT
130100 ELSE
130200 GOTO D30-1-CHECK-HEADER-TYPE.
130300
130400 D30-20-HEADER-SELECTED.
130500 MOVE WC-COBOL TO WZ-CURRENT-HEADER.
130600 IF WZ-END-OF-UPDATES = SPACE
130700 PERFORM D40-ANY-UPDATES.
130800
130900 D30-EXIT.
131000 EXIT.
131100/
131200 D31-PROCESS-DATA-HEADER SECTION. 131300*=============================== 131400*
131500 D31-1-CHECK-FOR-DATA-SELECTED.
131600 IF WY-NO-DATA = "Y"
131700 GOTO D31-EXIT.
131800
131900 IF WZ-PROG-ID-6 = "M"
132000 GOTO D31-30-MANUAL-CHECK.
132100
132200 D31-20-AUTO-CHECK.
132300 IF WY-EXTRACT-MAN = SPACE
132400 MOVE"Y"TO WZ-PROGRAM-SELECTED
132500 ELSE
132600 GOTO D31-EXIT.
132700
132800 D31-30-MANUAL-CHECK.
132900 IF WY-EXTRACT-AUTO = SPACE
133000 MOVE"Y"TO WZ-PROGRAM-SELECTED.
133100
133200
133300 D31-EXIT.
133400 EXIT.
133500
133600/
133700 D32-PROCESS-COBOL-HEADER SECTION. 133800*================================ 133900* 134000**************************************************************** 134100* THIS SECTION CHECKS TO SEE IF THE CURRENT HEADER IS * 134200* IS WITHIN THE RANGE SPECIFIED BY THE "*EXTRACT" OR * 134300* "*SELECT" RECORDS OF THE INPUT CONTROL-FILE. * 134400* * 134500* PERFORMED BY D30-PROCESS-HEADER * 134600* PERFORMS D33-MODULE-CHECK * 134700* D34-PROGRAM-SELECTED * 134800**************************************************************** 134900* * 135000**************************************************************** 135100* IF PROGRAM DOES NOT END WITH '5','A','B' OR 'M' IT * 135200* SHOULD HAVE A SPACE CHARACTER FOR POSITION 6. * 135300**************************************************************** 135400* *
135500 D32-0-CHECK-A-OR-M.
135600 IF WC-PROG-ID-6 = "A"
135700 GOTO D32-1-CHECK-FOR-ALL-SELECTED.
135800 IF WC-PROG-ID-6 = "B"
135900 GOTO D32-1-CHECK-FOR-ALL-SELECTED.
136000 IF WC-PROG-ID-6 = "M"
136100 GOTO D32-1-CHECK-FOR-ALL-SELECTED.
136200 IF WC-PROG-ID-6 = "5"
136300 GOTO D32-1-CHECK-FOR-ALL-SELECTED.
136400 MOVESPACETO WC-PROG-ID-6.
136500 D32-1-CHECK-FOR-ALL-SELECTED.
136600 IF WY-EXTRACT-ALL = "Y"
136700 MOVE"Y"TO WZ-PROGRAM-SELECTED
136800 MOVE WC-PROG-ID TO WZ-CURRENT-POP-PROG
136900 GOTO D32-50-CHECK-IF-SELECTED.
137000
137100 D32-10-MANUAL-CHECK.
137200 IF WY-EXTRACT-MAN = "Y"
137300 IF WC-PROG-ID-6 = "M"
137400 MOVE"Y"TO WZ-PROGRAM-SELECTED
137500 MOVE WC-PROG-ID TO WZ-CURRENT-POP-PROG
137600 GOTO D32-50-CHECK-IF-SELECTED.
137700
137800 D32-20-AUTO-CHECK.
137900 IF WY-EXTRACT-AUTO = "Y"
138000 IF WC-PROG-ID-6 = "A"OR"B"
138100 MOVE"Y"TO WZ-PROGRAM-SELECTED
138200 MOVE WC-PROG-ID TO WZ-CURRENT-POP-PROG
138300 GOTO D32-50-CHECK-IF-SELECTED.
138400
138500 D32-30-MODULE-CHECK.
138600 IF WY-SELECT-MODULE = "Y" 138700*THE FOLLOWING CHECK ASSUMES THAT THE FILES ON THE POPFILE 138800*ARE IN ORDER!
138900 IF WG-MODULE-SELECTED-TABLE = SPACES
139000 MOVE"Y"TO WZ-END-OF-POPFILE
139100 ELSE
139200 MOVE 1 TO SUB6
139300 PERFORM D33-MODULE-CHECK
139400 GOTO D32-50-CHECK-IF-SELECTED.
139500
139600 MOVE 1 TO SUB7.
139700 D32-40-PROGRAM-CHECK.
139800 IF WY-SELECT-PROG = "Y"
139900 IF WF-PROGRAM-SELECTED-TABLE = SPACES
140000 MOVE"Y"TO WZ-END-OF-POPFILE
140100 ELSE
140200 IF WC-PROG-ID-1-5 = WF-PROGRAM-SELECTED (SUB7)
140300 MOVESPACETO WF-PROGRAM-SELECTED (SUB7)
140400 MOVE"Y"TO WZ-PROGRAM-SELECTED
140500 MOVE WC-PROG-ID TO WZ-CURRENT-POP-PROG
140600 GOTO D32-50-CHECK-IF-SELECTED
140700 ELSE
140800 IF SUB7 < 50
140900 ADD 1 TO SUB7
141000 GOTO D32-40-PROGRAM-CHECK
141100 ELSE
141200 IF WC-SUBPRG = "SUBPRG"OR"SUBRTN"
141300 MOVE 1 TO SUB7
141400 PERFORM 50 TIMES
141500 IF WC-PROG2ID-1-5 =
141600 WF-PROGRAM-SELECTED (SUB7)
141700 MOVESPACETO
141800 WF-PROGRAM-SELECTED (SUB7)
141900 MOVE"Y"TO
142000 WZ-PROGRAM-SELECTED
142100 MOVE WC-PROG2ID TO
142200 WZ-CURRENT-POP-PROG
142300 GO D32-50-CHECK-IF-SELECTED
142400 END-IF
142500 ADD 1 TO SUB7
142600 END-PERFORM.
142700
142800 D32-50-CHECK-IF-SELECTED.
142900 IF WZ-PROGRAM-SELECTED = "Y"
143000 PERFORM D34-PROGRAM-SELECTED.
143100
143200 D32-EXIT.
143300 EXIT.
143400/
143500 D33-MODULE-CHECK SECTION. 143600*======================== 143700* 143800**************************************************************** 143900* IF ONE OR MORE MODULES HAVE BEEN SELECTED, THIS SECTION * 144000* CHECKS THAT THE CURRENT POPULATION FILE PROGRAM IS FROM * 144100* A SELECTED MODULE (AND LEVEL, IF LEVEL SELECTED). * 144200* * 144300* PERFORMED BY D32-PROCESS-COBOL-HEADER * 144400* PERFORMS NONE * 144500****************************************************************
144600 D33-1-MODULE-CHECK.
144700 IF WC-MODULE = WG-MODULE-SELECTED (SUB6)
144800 GOTO D33-10-CHECK-MODULE-LEVEL.
144900 IF WC-MODULE > WG-MODULE-SELECTED (SUB6) AND 145000*THE FOLLOWING CHECK MAKES SURE SOME FILES GET OFF
145100 WZ-SOURCE-PROGS NOT = 0
145200 MOVESPACETO WG-MODULE-SELECTED (SUB6)
145300 MOVESPACETO WG-MODULE-LEVEL (SUB6)
145400 IF SUB6 < 10
145500 ADD 1 TO SUB6
145600 GOTO D33-1-MODULE-CHECK
145700 ELSE
145800 GOTO D33-EXIT
145900 ELSE
146000 GOTO D33-EXIT.
146100
146200 D33-10-CHECK-MODULE-LEVEL.
146300 IF WG-MODULE-LEVEL (SUB6) = SPACE
146400 MOVE WC-PROG-ID TO WZ-CURRENT-POP-PROG
146500 MOVE"Y"TO WZ-PROGRAM-SELECTED
146600 GOTO D33-EXIT.
146700
146800 IF WG-MODULE-LEVEL (SUB6) = WC-LEVEL
146900 MOVE WC-PROG-ID TO WZ-CURRENT-POP-PROG
147000 MOVE"Y"TO WZ-PROGRAM-SELECTED.
147100
147200 D33-EXIT.
147300 EXIT.
147400
147500/
147600 D34-PROGRAM-SELECTED SECTION. 147700*============================ 147800* 147900**************************************************************** 148000* IF THE CURRENT POPULATION FILE PROGRAM HAS BEEN SELECTED * 148100* FOR PROCESSING, THIS SECTION UPDATES VARIOUS FIELDS. * 148200* * 148300* PERFORMED BY D32-PROCESS-COBOL-HEADER * 148400* PERFORMS NONE * 148500****************************************************************
148600 D34-1-SELECTION-CHECK.
148700 IF WZ-PROGRAM-SELECTED = SPACE
148800 GOTO D34-EXIT.
148900
149000 IF WY-NO-SOURCE = SPACE
149100 ADD 1 TO WZ-SOURCE-PROGS.
149200
149300 IF WY-NEW-POP = "Y"
149400 ADD 1 TO WZ-NEWPOP-PROGS.
149500 149600* MOVE SPACE TO WZ-CURRENT-MAIN-PROG.
149700 MOVE WZ-CURRENT-POP-PROG TO WZ-CURRENT-MAIN-PROG.
149800
149900 PERFORM D36-INITIALISE-PROGRAM-TOTALS.
150000
150100 MOVE WC-HEADER TO PRINT-DATA.
150200 IF WC-SUBPRG = "SUBPRG"
150300 MOVE WZ-CURRENT-POP-PROG TO WZ-CURRENT-MAIN-PROG 150400* MOVE WC-PROG2ID TO WZ-CURRENT-UPD-PROG
150500 MOVE WC-PROG2ID TO WZ-CURRENT-POP-PROG
150600 END-IF.
150700 IF WC-SUBPRG = "SUBRTN"
150800 MOVE WZ-CURRENT-POP-PROG TO WZ-CURRENT-MAIN-PROG 150900* MOVE WC-PROG2ID TO WZ-CURRENT-UPD-PROG
151000 MOVE WC-PROG2ID TO WZ-CURRENT-POP-PROG
151100 END-IF.
151200
151300 D34-2-OPEN-OUTPUT.
151400 IF WY-LIST-COMPACT = SPACE
151500 MOVE 51 TO WZ-LINE-CT.
151600
151700 PERFORM X20-PRINT-DETAIL.
151800 D34-EXIT.
151900 EXIT.
152000
152100 D36-INITIALISE-PROGRAM-TOTALS SECTION. 152200*===================================== 152300* 152400**************************************************************** 152500* WHEN A PROGRAM "*HEADER" IS SELECTED THIS SECTION RESETS * 152600* ALL THE VARIOUS TOTALS FOR THAT PROGRAM. * 152700* * 152800* PERFORMED BY D32-PROCESS-COBOL-HEADER * 152900* PERFORMS NONE * 153000****************************************************************
153100 D36-1-RESET-TOTALS.
153200 MOVEZEROTO WZ-LINES-COBOL.
153300 MOVEZEROTO WZ-LINES-INSERTED.
153400 MOVEZEROTO WZ-LINES-REPLACED.
153500 MOVEZEROTO WZ-LINES-DELETED.
153600 MOVEZEROTO WZ-CODE-REMOVED.
153700 MOVEZEROTO WZ-COMMENTS-DEL.
153800 MOVEZEROTO WZ-SEQ-NO.
153900
154000 D36-EXIT.
154100 EXIT.
154200/
154300 D40-ANY-UPDATES SECTION. 154400*======================= 154500* 154600**************************************************************** 154700* THIS SECTION FINDS THE FIRST UPDATE RECORD (IF ANY) FOR * 154800* THE CURRENT POPULATION FILE PROGRAM BEING PROCESSED. * 154900* * 155000* PERFORMED BY D30-PROCESS-HEADER * 155100* PERFORMS D42-READ-UPDATE * 155200****************************************************************
155300 D40-1-CHECK-UPDATE-AND-POP.
155400 MOVESPACETO WZ-UPDATE-THIS-PROG.
155500 IF WZ-CURRENT-UPD-PROG > WZ-CURRENT-POP-PROG
155600 GOTO D40-EXIT.
155700
155800 IF WZ-CURRENT-UPD-PROG = WZ-CURRENT-POP-PROG
155900 GOTO D40-20-PROGRAMS-EQUAL.
156000 156100* IF WZ-CURRENT-POP-PROG = WB-UPDATE-PROG 156200* GO TO D40-20-PROGRAMS-EQUAL.
156300
156400 IF WZ-UPD-PROG-CHAR = "A"
156500 GOTO D40-05-CHECK-LIBRARY.
156600
156700 IF WZ-UPD-PROG-CHAR = "K"
156800 GOTO D40-05-CHECK-LIBRARY
156900 ELSEGOTO D40-10-GET-NEXT-STAR-START. 157000*
157100 D40-05-CHECK-LIBRARY.
157200 IF WZ-CURRENT-POP-PROG < "SQ000"
157300 GOTO D40-EXIT.
157400
157500 D40-10-GET-NEXT-STAR-START.
157600 MOVESPACESTO WB-STAR-START.
157700 PERFORM D42-READ-UPDATE-FILE
157800 UNTIL WB-STAR-START = "*START".
157900
158000 IF WZ-END-OF-UPDATES = "Y"
158100 GOTO D40-EXIT.
158200 PERFORM C60-START-CARD.
158300
158400 GOTO D40-1-CHECK-UPDATE-AND-POP.
158500
158600 D40-20-PROGRAMS-EQUAL.
158700 MOVE"Y"TO WZ-UPDATE-THIS-PROG.
158800 IF WB-RENUMBER = "R"
158900 MOVE"Y"TO WZ-RESEQUENCE-THIS
159000 ELSE
159100 MOVESPACETO WZ-RESEQUENCE-THIS.
159200 READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA
159300 ATENDMOVE"Y"TO WZ-END-OF-UPDATES.
159400
159500 IF WB-11 = "*END-UPDATE"
159600 MOVE"Y"TO WZ-END-OF-UPDATES.
159700
159800 D40-EXIT.
159900 EXIT.
160000
160100/
160200 D42-READ-UPDATE-FILE SECTION. 160300*============================
160400 D42-1.
160500 READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA
160600 ATENDMOVE"Y"TO WZ-END-OF-UPDATES
160700 MOVE"*START"TO WB-STAR-START
160800 GOTO D42-EXIT.
160900
161000 IF WB-11 = "*END-UPDATE"
161100 MOVE"Y"TO WZ-END-OF-UPDATES
161200 MOVE"*START"TO WB-STAR-START.
161300
161400 D42-EXIT.
161500 EXIT.
161600
161700
161800
161900
162000 D50-PROCESS-COBOL-LINE SECTION. 162100*============================== 162200* 162300**************************************************************** 162400* THIS IS THE MAIN SECTION FOR PROCESSING THE COBOL SOURCE * 162500* CODE OF THE POPULATION FILE * 162600* * 162700* * 162800****************************************************************
162900 D50-1-CHECK-FOR-UPDATING.
163000
163100 IF WZ-UPDATE-THIS-PROG = "Y"
163200 PERFORM D60-PROCESS-UPDATE-CARD.
163300
163400 IF WZ-DELETE-FLAG = "Y"
163500 GOTO D50-EXIT.
163600
163700 IF WY-NO-SOURCE = SPACE
163800 IF BLOCK-TYPE NOT = "DATA*"
163900 PERFORM D80-RAW-LINE.
164000
164100
164200 D50-EXIT.
164300 EXIT.
164400/
164500 D60-PROCESS-UPDATE-CARD SECTION. 164600*=============================== 164700* 164800**************************************************************** 164900* THIS IS THE MAIN SECTION FOR PROCESSING ANY UPDATE CARDS * 165000* WHICH EXIST FOR THE CURRENT POPULATION FILE PROGRAM * 165100* BEING PROCESSED. * 165200* * 165300* PERFORMED BY D50-PROCESS-COBOL-LINE * 165400* PERFORMS D67-LINE-UPDATE * 165500* D62-SERIES-UPDATE * 165600****************************************************************
165700 D60-1-CHECK-BLOCK-INSERT.
165800 IF WB-SEQ-1 = SPACES
165900 PERFORM D67-LINE-UPDATE
166000 GOTO D60-30-CHECK-END.
166100
166200 D60-10-CHECK-FOR-SERIES-UPDATE.
166300 IF WB-SEQ-1 NOTNUMERIC
166400 GOTO D60-30-CHECK-END.
166500
166600 IF WB-SEQ-2 NUMERIC
166700 PERFORM D62-SERIES-UPDATE
166800 GOTO D60-30-CHECK-END
166900 ELSE
167000 PERFORM D67-LINE-UPDATE.
167100
167200 D60-30-CHECK-END.
167300 IF WB-11 = "*END-UPDATE"
167400 MOVE"Y"TO WZ-END-OF-UPDATES.
167500
167600
167700 D60-EXIT.
167800 EXIT.
167900/
168000 D62-SERIES-UPDATE SECTION. 168100*========================= 168200* 168300**************************************************************** 168400* THIS SECTION WILL PROCESS SERIES INSERTIONS OR DELETIONS * 168500* * 168600* PERFORMED BY D60-PROCESS-UPDATE-CARD * 168700* PERFORMS C60-START-CARD * 168800****************************************************************
168900 D62-1-CHECK-FOR-WITHIN-RANGE.
169000 IF WC-6 < WB-SEQ-1
169100 IF WZ-WITHIN-DELETE-SERIES-FLAG = "Y" 169200* ALLOWS FOR OUT-OF-SEQUENCE LINE NUMBER WITHIN DELETE RANGE
169300 GOTO D62-20-NOW-WITHIN-RANGE
169400 END-IF
169500 GOTO D62-EXIT.
169600
169700 IF WC-6 NOT > WB-SEQ-2
169800 GOTO D62-20-NOW-WITHIN-RANGE.
169900
170000 D62-10-READ-NEXT-UPDATE-CARD.
170100 MOVESPACESTO WZ-WITHIN-DELETE-SERIES-FLAG.
170200 READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA
170300 ATENDMOVE"Y"TO WZ-END-OF-UPDATES
170400 GOTO D62-EXIT.
170500
170600 IF WB-STAR-START = "*START"
170700 PERFORM C60-START-CARD
170800 GOTO D62-EXIT.
170900
171000 IF WB-11 = "*END-UPDATE"
171100 MOVE"Y"TO WZ-END-OF-UPDATES
171200 GOTO D62-EXIT.
171300
171400 IF WB-SEQ-2 NUMERIC
171500 GOTO D62-1-CHECK-FOR-WITHIN-RANGE.
171600 PERFORM D67-LINE-UPDATE.
171700 GOTO D62-EXIT.
171800
171900 D62-20-NOW-WITHIN-RANGE.
172000 MOVE"Y"TO WZ-LINE-UPDATE.
172100 IF WB-COL-7 = ","
172200 MOVE"Y"TO WZ-WITHIN-DELETE-SERIES-FLAG
172300 ADD 1 TO WZ-LINES-DELETED
172400 MOVE"Y"TO WZ-DELETE-FLAG
172500 MOVESPACESTO WE-X-CARD
172600 MOVE"DELETIONS"TO WE-CHANGE-TYPE
172700 IF WB-SEQ-1 = WB-SEQ-2
172800 MOVESPACETO WZ-WITHIN-DELETE-SERIES-FLAG
172900 END-IF
173000 GOTO D62-EXIT.
173100
173200 MOVE"Y"TO WZ-REPLACE-FLAG.
173300 MOVE WB-COL-7 TO WC-COL-7.
173400
173500 D62-EXIT.
173600 EXIT.
173700
173800/
173900 D67-LINE-UPDATE SECTION. 174000*======================= 174100* 174200**************************************************************** 174300* THIS SECTION PERFORMS SINGLE LINE AMENDMENTS OR DELETIONS * 174400* * 174500* PERFORMED BY D60-PROCESS-UPDATE-CARD * 174600* D62-SERIES-UPDATE * 174700* PERFORMS C60-START-CARD * 174800* D68-LINE-EQUAL * 174900* D69-LINE-BLANK-OR-LESS * 175000****************************************************************
175100 D67-1-CHECK-FOR-WITHIN-RANGE.
175200 IF WC-6 < WB-SEQ-1
175300 GOTO D67-EXIT.
175400
175500 D67-10-LINES-EQUAL-OR-LESS.
175600 MOVE"Y"TO WZ-LINE-UPDATE.
175700 IF WB-COL-7 = ","
175800 ADD 1 TO WZ-LINES-DELETED
175900 MOVE"Y"TO WZ-DELETE-FLAG
176000 MOVESPACESTO WE-X-CARD
176100 MOVE"DELETION"TO WE-CHANGE-TYPE
176200 GOTO D67-20-READ-CONTROL.
176300
176400 IF WC-6 = WB-SEQ-1
176500 PERFORM D68-LINE-EQUAL
176600 GOTO D67-EXIT.
176700
176800 IF WB-SEQ-1 = SPACES
176900 PERFORM D69-LINE-BLANK-OR-LESS
177000 GOTO D67-EXIT.
177100
177200 IF WC-6 > WB-SEQ-1
177300 PERFORM D69-LINE-BLANK-OR-LESS
177400 GOTO D67-EXIT.
177500
177600 D67-20-READ-CONTROL.
177700 READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA
177800 ATENDMOVE"Y"TO WZ-END-OF-UPDATES.
177900 IF WB-STAR-START = "*START"
178000 PERFORM C60-START-CARD.
178100
178200 IF WB-11 = "*END-UPDATE"
178300 MOVE"Y"TO WZ-END-OF-UPDATES.
178400
178500 D67-EXIT.
178600 EXIT.
178700/
178800 D68-LINE-EQUAL SECTION. 178900*====================== 179000* 179100**************************************************************** 179200* THIS SECTION IS PERFORMED WHEN THE SEQUENCE NUMBER OF A * 179300* SINGLE UPDATE AMEND CARD IS THE SAME AS THE SEQUENCE * 179400* NUMBER OF THE CURRENT POPULATION FILE LINE BEING PROCESSED* 179500**************************************************************** 179600*
179700 D68-1.
179800 MOVE WB-CONTROL-DATA TO WC-CURRENT-POP-RECORD.
179900 ADD 1 TO WZ-LINES-REPLACED.
180000 MOVE"Y"TO WZ-REPLACE-FLAG.
180100
180200 READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA
180300 ATENDMOVE"Y"TO WZ-END-OF-UPDATES.
180400
180500 IF WB-STAR-START = "*START"
180600 PERFORM C60-START-CARD.
180700
180800 IF WB-11 = "*END-UPDATE"
180900 MOVE"Y"TO WZ-END-OF-UPDATES.
181000
181100 D68-EXIT.
181200 EXIT.
181300
181400
181500
181600
181700 D69-LINE-BLANK-OR-LESS SECTION. 181800*==============================
181900 D69-1.
182000 MOVE WB-CONTROL-DATA TO WC-CURRENT-POP-RECORD.
182100 ADD 1 TO WZ-LINES-INSERTED.
182200 MOVE"Y"TO WZ-DONT-READ-POPFILE.
182300 MOVE"INSERTIONS"TO WE-CHANGE-TYPE.
182400 MOVESPACESTO WE-X-CARD.
182500 READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA
182600 ATENDMOVE"Y"TO WZ-END-OF-UPDATES.
182700
182800 IF WB-STAR-START = "*START"
182900 PERFORM C60-START-CARD.
183000
183100 IF WB-11 = "*END-UPDATE"
183200 MOVE"Y"TO WZ-END-OF-UPDATES.
183300
183400 D69-EXIT.
183500 EXIT.
183600
183700/
183800 D80-RAW-LINE SECTION. 183900*==================== 184000* 184100**************************************************************** 184200* IF COLUMN 7 OF THE POPULATION FILE PROGRAM CONTAINS A * 184300* SPECIAL CHARACTER OR COLS. 12-16 CONTAIN X-CARD INFO., * 184400* THIS SECTION WILL MAKE THE NECESSARY CHANGES. * 184500* * 184600* PERFORMED BY D50-PROCESS-COBOL-LINE * 184700* PERFORMS D82-OPTIONAL-LETTER * 184800* D86-X-CARD-CHECK * 184900* X40-WRITE-SOURCE-FILE * 185000****************************************************************
185100 D80-1-ASTERISK-CHECK.
185200 IF WC-COL-7 = "D"GOTO D80-30-PRINT-LINE.
185300 IF WC-COL-7 NOT = "*"
185400 GOTO D80-20-ALPHABETIC-CHECK.
185500
185600 IF WY-REMOVE-COMMENTS = "Y"
185700 ADD 1 TO WZ-COMMENTS-DELETED
185800 MOVE"Y"TO WZ-NOT-THIS-COMMENT
185900 GOTO D80-EXIT.
186000
186100 D80-20-ALPHABETIC-CHECK.
186200 IF WC-COL-7 NOTALPHABETIC
186300 GOTO D80-30-PRINT-LINE.
186400
186500 IF WC-COL-7 NOT = SPACE
186600 PERFORM D82-OPTIONAL-LETTER.
186700
186800 D80-30-PRINT-LINE.
186900 IF WZ-DELETE-FLAG = SPACE
187000 PERFORM D85-X-CARD-CHECK.
187100
187200 D80-EXIT.
187300 EXIT.
187400
187500/
187600 D82-OPTIONAL-LETTER SECTION. 187700*=========================== 187800*
187900 D82-1-SELECT-OPTIONAL.
188000 PERFORM D83-CHECK-OPTION-SWITCHES
188100 VARYING SUB4 FROM 1 BY 1
188200 UNTIL SUB4 > 26.
188300
188400 IF WZ-OPTIONAL-SELECTED = "Y"
188500 MOVESPACETO WC-COL-7
188600 GOTO D82-EXIT.
188700
188800 D82-10-SAVE-OPTIONAL.
188900 ADD 1 TO WZ-CODE-REMOVED.
189000 IF WY-KILL-DELETIONS = "Y"
189100 MOVE"Y"TO WZ-DELETE-FLAG
189200 ELSE
189300 MOVE WC-COL-7 TO WC-COL-8
189400 MOVE"*"TO WC-COL-7.
189500
189600 D82-EXIT.
189700 EXIT.
189800
189900
190000
190100
190200
190300 D83-CHECK-OPTION-SWITCHES SECTION. 190400*================================= 190500*
190600 D83-1-CHECK-SWITCH.
190700 IF WY-OPT-SW (SUB4) = WC-COL-7
190800 MOVE 99 TO SUB4
190900 MOVE"Y"TO WZ-OPTIONAL-SELECTED.
191000
191100 D83-EXIT.
191200 EXIT.
191300/
191400 D85-X-CARD-CHECK SECTION. 191500*======================== 191600* 191700**************************************************************** 191800* WHEN "XXXX" IS ENCOUNTERED IN COLUMNS 12 - 15 THIS * 191900* SECTION EITHER SUBSTITUTES THE IMPLEMENTOR ASSIGNED TEXT * 192000* OR MOVES THE PROGRAM NAME TO AN IMPLEMENTOR SPECIFIED * 192100* POSITION IN THE PROGRAM CODE. * 192200* * 192300* PERFORMED BY D80-RAW-LINE * 192400* PERFORMS D87-PROGRAM-NAME * 192500* D86-REMOVE-FULL-STOP * 192600* D86-INSERT-FULL-STOP * 192700****************************************************************
192800 D85-1-CHECK-FOR-XXXXX.
192900 IF WC-12-15 NOT = "XXXX"
193000 GOTO D85-EXIT.
193100 IF WC-17-19 NOTNUMERIC 193200* XXXXX ENTRY IN POPULATION FILE IN ERROR.
193300 GOTO D85-EXIT.
193400
193500 D85-10-SUBSTITUTION-REQUIRED.
193600 MOVE WC-17-19 TO SUB1.
193700 MOVE WX-X-CARD (SUB1) TO WZ-X-CARD.
193800 IF WX-PROG-POS (SUB1) NOT = ZERO
193900 PERFORM D88-PROGRAM-NAME
194000 GOTO D85-EXIT.
194100
194200 D85-20-TEXT-SUBSTITUTION.
194300 IF WC-20 = SPACE
194400 PERFORM D86-REMOVE-FULL-STOP
194500 VARYING SUB4 FROM 60 BY -1
194600 UNTIL SUB4 < 1
194700 MOVE WZ-X-CARD TO WC-SUB-DATA
194800 GOTO D85-EXIT.
194900
195000 IF WC-20 = "."
195100 PERFORM D87-INSERT-FULL-STOP
195200 VARYING SUB4 FROM 60 BY -1
195300 UNTIL SUB4 < 1
195400 MOVE WZ-X-CARD TO WC-SUB-DATA.
195500 D85-EXIT.
195600 EXIT.
195700
195800/
195900 D86-REMOVE-FULL-STOP SECTION. 196000*============================ 196100*
196200 D86-1.
196300 IF WZ-X-CHAR (SUB4) = SPACE
196400 GOTO D86-EXIT.
196500
196600 IF WZ-X-CHAR (SUB4) = "."
196700 MOVESPACETO WZ-X-CHAR (SUB4)
196800 MOVEZEROTO SUB4
196900 ELSE
197000 MOVEZEROTO SUB4.
197100
197200 D86-EXIT.
197300 EXIT.
197400
197500
197600
197700
197800
197900 D87-INSERT-FULL-STOP SECTION. 198000*============================ 198100*
198200 D87-1.
198300 IF WZ-X-CHAR (SUB4) = SPACE
198400 GOTO D87-EXIT.
198500
198600 IF WZ-X-CHAR (SUB4) = "."
198700 MOVEZEROTO SUB4
198800 ELSE
198900 ADD 1 TO SUB4
199000 MOVE"."TO WZ-X-CHAR (SUB4)
199100 MOVEZEROTO SUB4.
199200
199300 D87-EXIT.
199400 EXIT.
199500/
199600 D88-PROGRAM-NAME SECTION. 199700*======================== 199800*
199900 D88-1.
200000 MOVE WX-PROG-POS (SUB1) TO SUB2.
200100 MOVESPACETO WZ-MAIN-PROG-FLAG.
200200 MOVESPACETO WZ-FULL-STOP.
200300 IF WC-20 = "."
200400 MOVE"Y"TO WZ-FULL-STOP.
200500
200600 IF WX-X-CHAR (SUB1 SUB2) = "J"
200700 MOVE WZ-CURRENT-MAIN-PROG TO WZ-PROG-BREAK
200800 MOVE"Y"TO WZ-MAIN-PROG-FLAG
200900 ELSE
201000 MOVE WZ-CURRENT-POP-PROG TO WZ-PROG-BREAK.
201100
201200 IF WZ-CURRENT-MAIN-PROG = SPACE
201300 MOVESPACETO WZ-MAIN-PROG-FLAG.
201400
201500 MOVE 1 TO SUB4.
201600 PERFORM D89-MOVE-PROGRAM-NAME 6 TIMES.
201700
201800 IF WZ-FULL-STOP = "Y"
201900 PERFORM D87-INSERT-FULL-STOP
202000 VARYING SUB4 FROM 60 BY -1
202100 UNTIL SUB4 < 1
202200 ELSE
202300 PERFORM D86-REMOVE-FULL-STOP
202400 VARYING SUB4 FROM 60 BY -1
202500 UNTIL SUB4 < 1.
202600
202700 MOVE WZ-X-CARD TO WC-SUB-DATA.
202800
202900 D88-EXIT.
203000 EXIT.
203100
203200
203300
203400
203500 D89-MOVE-PROGRAM-NAME SECTION. 203600*============================= 203700*
203800 D89-1. 203900* IF WZ-MAIN-PROG-FLAG = "Y" 204000* MOVE WZ-MAIN-PROG-CHAR (SUB4) 204100* TO WZ-X-CHAR (SUB2) 204200* ELSE 204300* MOVE WZ-UPD-PROG-CHAR (SUB4) 204400* TO WZ-X-CHAR (SUB2).
204500
204600 MOVE WZ-1CHAR(SUB4) TO WZ-X-CHAR(SUB2).
204700
204800 IF SUB4 = 6 AND WZ-X-CHAR(SUB2) = SPACE
204900 ADD 1 SUB2 GIVING SUB4
205000 PERFORM D89-2-CLOSE-SPACE UNTIL WZ-X-CHAR(SUB4) =
205100 SPACE
205200 MOVESPACETO WZ-X-CHAR(SUB2).
205300
205400 ADD 1 TO SUB2.
205500 ADD 1 TO SUB4.
205600
205700 D89-EXIT.
205800 EXIT.
205900
206000 D89-2-CLOSE-SPACE SECTION.
206100 D89-2-1.
206200
206300 MOVE WZ-X-CHAR(SUB4) TO WZ-X-CHAR(SUB2).
206400 ADD 1 TO SUB2 SUB4.
206500
206600/
206700 D90-PROCESS-END-OF SECTION. 206800*========================== 206900* 207000**************************************************************** 207100* WHEN A "*END-OF"CARD IS ENCOUNTERED THIS SECTION PERFORMS * 207200* THE END-OF-PROGRAMS ACTIONS. * 207300* * 207400* PERFORMED BY D20-PROCESS-POPFILE * 207500* PERFORMS X10-WRITE-UPDATED-POP * 207600****************************************************************
207700 D90-1-CHECK-HEADER-TYPE.
207800 IF WY-KILL-DELETIONS = "Y"
207900 MOVE"DELETED"TO WA-OPTIONAL-CODE
208000 ELSE
208100 MOVE"UNUSED "TO WA-OPTIONAL-CODE.
208200
208300 MOVE WZ-CURRENT-POP-PROG TO WA-CURRENT-PROG
208400 MOVE WZ-LINES-COBOL TO WA-LINES-COBOL
208500 MOVE WZ-LINES-INSERTED TO WA-LINES-INSERTED
208600 MOVE WZ-LINES-REPLACED TO WA-LINES-REPLACED
208700 MOVE WZ-LINES-DELETED TO WA-LINES-DELETED
208800 MOVE WZ-CODE-REMOVED TO WA-CODE-REMOVED
208900 MOVE WZ-COMMENTS-DELETED TO WA-COMMENTS-DEL
209000 MOVE WA-ACCT-LINE-1 TO PRINT-DATA
209100 PERFORM X20-PRINT-DETAIL
209200 MOVE WA-ACCT-LINE-2 TO PRINT-DATA
209300 PERFORM X20-PRINT-DETAIL
209400 MOVE WA-ACCT-LINE-3 TO PRINT-DATA
209500 PERFORM X20-PRINT-DETAIL
209600
209700 MOVESPACESTO WZ-CURRENT-POP-PROG. 209800* CLOSE SOURCE-COBOL-PROGRAMS.
209900
210000 D90-EXIT.
210100 EXIT.
210200
210300
210400 D100-PROCESS-DATA.
210500 EXIT.
210600
210700/
210800 E10-TERMINATE SECTION. 210900*===================== 211000* 211100**************************************************************** 211200* THIS SECTION CLOSES ANY OPEN FILES * 211300* * 211400* * 211500****************************************************************
211600 E10-1.
211700 CLOSE PRINT-FILE.
211800
211900 CLOSE CONTROL-CARD-FILE.
212000
212100 IF WY-NEW-POP = "Y"
212200 CLOSE UPDATED-POPULATION-FILE.
212300 212400*****************************************************************
212500 IF WY-NO-SOURCE = SPACE
212600 CLOSE SOURCE-COBOL-PROGRAMS.
212700
212800 CLOSE POPULATION-FILE.
212900 STOPRUN.
213000 E20-EXIT.
213100 EXIT.
213200
213300/
213400 X10-WRITE-UPDATED-POPFILE SECTION. 213500*================================= 213600*
213700 X10-1-CHECK-FOR-NC114. 213800* N.B. 213900* NC114A HAS MISCELLANEOUS CHARACTERS IN COLUMNS 1-6 AND SO 214000* SHOULD NOT BE RESEQUENCED BY THIS EXECUTIVE.
214100
214200 IF WZ-CURRENT-POP-PROG = "NC114M"
214300 GOTO X10-30-WRITE-FILE.
214400
214500 X10-20-RENUMBER-CHECK.
214600 IF WC-STAR = "*"
214700 GOTO X10-30-WRITE-FILE.
214800 IF WZ-RESEQUENCE-THIS = "Y"
214900 ADD 100 TO WZ-SEQ-NO
215000 MOVE WZ-SEQ-NO TO WC-6.
215100
215200 X10-30-WRITE-FILE.
215300 MOVE WC-CURRENT-POP-RECORD TO UD-SOURCE-OUT (SUB5).
215400 ADD 1 TO SUB5.
215500 IF SUB5 GREATER 30
215600 WRITE UPDATED-SOURCE-OUT-2400
215700 MOVE 1 TO SUB5
215800 MOVESPACETO UPDATED-SOURCE-OUT-2400.
215900
216000
216100 X10-EXIT.
216200 EXIT.
216300
216400
216500/
216600 X20-PRINT-DETAIL SECTION. 216700*======================== 216800*
216900 X20-1.
217000
217100 IF WZ-LINE-CT > 50
217200 MOVE PRINT-REC TO WZ-PRINT-HOLD
217300 ADD 1 TO WZ-PAGE-CT
217400 MOVE WZ-PAGE-CT TO WA-PAGE-CT
217500 MOVE WA-TOP-OF-PAGE-LINE
217600 TO PRINT-REC
217700 WRITE PRINT-REC AFTERPAGE
217800 MOVESPACETO PRINT-REC
217900 WRITE PRINT-REC
218000 MOVE WZ-PRINT-HOLD TO PRINT-REC
218100 MOVEZEROTO WZ-LINE-CT.
218200 ADD 1 TO WZ-LINE-CT.
218300
218400 X20-2.
218500 WRITE PRINT-REC AFTER 1.
218600 MOVESPACETO PRINT-REC.
218700
218800 X20-EXIT.
218900 EXIT.
219000/
219100 X30-READ-POPFILE SECTION. 219200*========================
219300 X30-1.
219400 IF WZ-DONT-READ-POPFILE = "Y"
219500 MOVESPACETO WZ-DONT-READ-POPFILE
219600 GOTO X30-EXIT.
219700 219800* IF SUB1 GREATER THAN 30
219900 READ POPULATION-FILE INTO WC-CURRENT-POP-RECORD
220000 ATENDMOVE"Y"TO WZ-END-OF-POPFILE
220100 MOVE"*HEADER"TO WC-STAR-HEADER
220200 GOTO X30-EXIT.
220300 MOVE WC-CURRENT-POP-RECORD TO WZ-SAVE-POP-RECORD.
220400
220500 IF WC-STAR = "*"
220600 IF WZ-CURRENT-HEADER = "COBOL"
220700 IF WC-1-5 = "ABCDE"
220800 ADD 1 TO WZ-LINES-COBOL
220900 ELSE
221000 IF WC-1-5 = "*/+(>"
221100 ADD 1 TO WZ-LINES-COBOL
221200 ELSE
221300 IF WC-1-5 = "999-9"
221400 ADD 1 TO WZ-LINES-COBOL
221500 ELSE
221600 IF WC-1-5 = "Z=.,;"
221700 ADD 1 TO WZ-LINES-COBOL
221800 ELSE
221900 IF WC-1-5 = ")14$ "
222000 ADD 1 TO WZ-LINES-COBOL
222100 ELSE
222200 IF WC-1-5 = " 23 "
222300 ADD 1 TO WZ-LINES-COBOL
222400 ELSE
222500 NEXTSENTENCE
222600 ELSE
222700 NEXTSENTENCE
222800 ELSE
222900 IF WZ-CURRENT-HEADER = "COBOL"
223000 ADD 1 TO WZ-LINES-COBOL.
223100 223200* MOVE SOURCE-IN (SUB1) TO WC-CURRENT-POP-RECORD. 223300* ADD 1 TO SUB1.
223400
223500
223600 X30-EXIT.
223700 EXIT.
223800
223900
224000
224100
224200
224300 X40-WRITE-SOURCE-FILE SECTION. 224400*= ===========================
224500 X40-1.
224600 MOVESPACESTO WD-1. 224700* IF BLOCK-TYPE NOT = "DATA*" 224800* MOVE SPACES TO WC-73-80.
224900 IF WC-STAR = "*"
225000 IF WC-1-5 = "*/+(>"
225100 WRITE CT-OUT FROM WC-CURRENT-POP-RECORD
225200 ELSE
225300 MOVE WC-CURRENT-POP-RECORD TO WD-HEADER
225400 WRITE CT-OUT FROM WD-SOURCE-REC
225500 ELSE
225600 WRITE CT-OUT FROM WC-CURRENT-POP-RECORD.
225700
225800 X40-EXIT.
225900 EXIT.
226000
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.55Bemerkung:
(vorverarbeitet am 2026-04-30)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.