000100 IDENTIFICATION DIVISION.
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 ENVIRONMENT DIVISION.
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 CONFIGURATION SECTION.
002100
002200 SPECIAL-NAMES.
002300 INPUT-OUTPUT SECTION.
002400 FILE-CONTROL.
002500 SELECT OPTIONAL POPULATION-FILE
002600 ASSIGN TO
002700 "C0001" .
002800 SELECT SOURCE-COBOL-PROGRAMS
002900 ASSIGN TO
003000 "C0002"
003100 ORGANIZATION SEQUENTIAL.
003200 SELECT UPDATED-POPULATION-FILE
003300 ASSIGN TO
003400 "C0003" .
003500 SELECT PRINT-FILE
003600 ASSIGN TO
003700 "C0085" .
003800 SELECT CONTROL-CARD-FILE
003900 ASSIGN TO
004000 "C0088" .
004100 DATA DIVISION.
004200 FILE SECTION.
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 FILLER PIC X.
005300 05 PRINT-DATA PIC X(131).
005400 FD SOURCE-COBOL-PROGRAMS
005500 BLOCK CONTAINS 1 RECORDS.
005600 01 CT-OUT.
005700 02 FILLER PIC X(72).
005800 02 FILLER PIC X(8).
005900 FD UPDATED-POPULATION-FILE
006000 RECORD CONTAINS 2400 CHARACTERS.
006100 01 UPDATED-SOURCE-OUT-2400.
006200 02 UD-SOURCE-OUT PIC X(80) OCCURS 30.
006300
006400 WORKING-STORAGE SECTION.
006500
006600 01 FILLER PIC 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 FILLER PIC X(4) VALUE SPACES.
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) VALUE SPACES.
008700 05 WA-RELEASE.
008800 07 WA-RELEASE-TEXT PIC X(14) VALUE
008900 ", RELEASED ON ".
009000 07 WA-VERSION-DATE PIC X(11) VALUE SPACES.
009100 05 FILLER PIC X(4) VALUE SPACES.
009200 05 WA-COMPANY-AND-COMPILER PIC X(30) VALUE SPACES.
009300 05 FILLER PIC X(5) VALUE SPACES.
009400 05 WA-DATE PIC XXBXXBXX.
009500 05 FILLER PIC X(4) VALUE SPACES.
009600 05 FILLER PIC X(5) VALUE "PAGE ".
009700 05 WA-PAGE-CT PIC Z(5)9.
009800
009900 01 WA-ACCT-LINE-1.
010000 05 FILLER PIC X(19) VALUE
010100 " ** END OF PROGRAM ".
010200 05 WA-CURRENT-PROG PIC X(6).
010300 05 FILLER PIC 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 FILLER PIC X(19) VALUE
010800 " ** LINES INSERTED ".
010900 05 WA-LINES-INSERTED PIC Z(5)9.
011000 05 FILLER PIC X(19) VALUE
011100 " ** LINES REPLACED ".
011200 05 WA-LINES-REPLACED PIC Z(5)9.
011300 05 FILLER PIC X(19) VALUE
011400 " ** LINES DELETED ".
011500 05 WA-LINES-DELETED PIC Z(5)9.
011600 01 WA-ACCT-LINE-3.
011700 05 FILLER PIC 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 FILLER PIC X(34) VALUE
012600 " ** END OF POPULATION FILE REACHED".
012700 05 FILLER PIC 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 FILLER PIC 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 FILLER PIC X(48) VALUE
013600 " ** NUMBER OF PROGRAMS WRITTEN TO NEW POPULATION".
013700 05 FILLER PIC 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 FILLER REDEFINES WB-FILL.
014200 10 WB-3 PIC X(3).
014300 10 FILLER PIC X(77).
014400 05 FILLER REDEFINES WB-FILL.
014500 10 WB-4 PIC X(4).
014600 10 WB-NN PIC 99.
014700 10 FILLER PIC X.
014800 10 WB-X PIC X.
014900 10 FILLER PIC X(72).
015000 05 FILLER REDEFINES WB-FILL.
015100 10 WB-6 PIC X(6).
015200 10 FILLER PIC X(74).
015300 05 FILLER REDEFINES WB-FILL.
015400 10 WB-7 PIC X(7).
015500 10 FILLER PIC X(73).
015600 05 FILLER REDEFINES WB-FILL.
015700 10 WB-8 PIC X(8).
015800 10 FILLER PIC X(72).
015900 05 FILLER REDEFINES WB-FILL.
016000 10 WB-9 PIC X(9).
016100 10 FILLER PIC X(71).
016200 05 FILLER REDEFINES WB-FILL.
016300 10 WB-10 PIC X(10).
016400 10 FILLER PIC X(70).
016500 05 FILLER REDEFINES WB-FILL.
016600 10 WB-11 PIC X(11).
016700 10 FILLER PIC X(69).
016800 05 FILLER REDEFINES WB-FILL.
016900 10 WB-12 PIC X(12).
017000 10 FILLER PIC X.
017100 10 WB-PROG PIC X(5).
017200 10 FILLER PIC X(62).
017300 05 FILLER REDEFINES WB-FILL.
017400 10 WB-13 PIC X(13).
017500 10 FILLER PIC X(67).
017600 05 FILLER REDEFINES WB-FILL.
017700 10 WB-14 PIC X(14).
017800 10 FILLER PIC X.
017900 10 WB-MODULE PIC XX.
018000 10 FILLER PIC X.
018100 10 WB-LEVEL PIC X.
018200 10 FILLER PIC X(61).
018300 05 FILLER REDEFINES WB-FILL.
018400 10 WB-15 PIC X(15).
018500 10 FILLER PIC X(65).
018600 05 FILLER REDEFINES WB-FILL.
018700 10 WB-16 PIC X(16).
018800 10 FILLER PIC 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 FILLER PIC X.
019500 10 WB-SUBS-TEXT PIC X(60).
019600 10 FILLER PIC X(12).
019700 05 WB-START-CARD REDEFINES WB-FILL.
019800 10 WB-STAR-START PIC X(6).
019900 10 FILLER PIC X.
020000 10 WB-UPDATE-PROG PIC X(6).
020100 10 FILLER PIC X.
020200 10 WB-RENUMBER PIC X.
020300 10 FILLER PIC 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 FILLER REDEFINES WB-COBOL-LINE.
020800 15 WB-COL-7 PIC X.
020900 15 FILLER PIC X(73).
021000 10 FILLER REDEFINES 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 FILLER PIC X(64).
021800 05 WC-HEADER REDEFINES WC-1.
021900 10 WC-STAR-HEADER PIC X(7).
022000 10 FILLER PIC X.
022100 10 WC-COBOL PIC X(5).
022200 10 FILLER PIC 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 FILLER PIC X.
022900 15 FILLER PIC X.
023000 12 WC-PROG-ID-6 PIC X.
023100 10 FILLER PIC X.
023200 10 WC-SUBPRG PIC X(6).
023300 10 FILLER PIC X.
023400 10 WC-PROG2ID.
023500 12 WC-PROG2ID-1-5 PIC X(5).
023600 12 FILLER PIC X.
023700 10 FILLER PIC X(46).
023800 05 FILLER REDEFINES WC-1.
023900 10 WC-1-72.
024000 15 WC-6.
024100 20 WC-STAR PIC X.
024200 20 FILLER PIC X(5).
024300 15 FILLER REDEFINES WC-6.
024400 20 WC-1-5 PIC X(5).
024500 20 FILLER PIC X.
024600 15 WC-COL-7 PIC X.
024700 15 WC-COL-8 PIC X.
024800 15 FILLER PIC X(3).
024900 15 WC-SUB-DATA.
025000 20 WC-12-15 PIC X(4).
025100 20 FILLER PIC X.
025200 20 WC-17-19 PIC 9(3).
025300 20 WC-20 PIC X.
025400 20 FILLER PIC X(52).
025500 10 WC-73-80 PIC X(8).
025600
025700 01 WD-SOURCE-REC.
025800 05 WD-1.
025900 10 FILLER PIC 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 FILLER PIC X VALUE SPACE.
026500 05 WE-X-CARD PIC X(9).
026600 05 FILLER PIC XX VALUE SPACES.
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 FILLER OCCURS 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 FILLER PIC X VALUE SPACE.
028600 10 FILLER OCCURS 26.
028700 15 WV-OPT PIC X.
028800 15 FILLER PIC 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 FILLER REDEFINES 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 FILLER PIC 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 FILLER PIC 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 FILLER PIC 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 FILLER PIC X(5).
038800 10 WZ-SAVE-12-20.
038900 15 WZ-SAVE-12-15 PIC X(4).
039000 15 FILLER PIC X(5).
039100 10 FILLER PIC 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 FILLER PIC X(55) VALUE
040300 "CCVS85 VERSION 4.2 01 OCT 1992 0032 ".
040400 01 WZ-VERSION-CONTROL REDEFINES WZ-VERSION-CARD.
040500 10 FILLER PIC X(16).
040600 10 WZ-VERSION-NUM PIC X(3).
040700 10 FILLER PIC X(3).
040800 10 WZ-VERSION-DATE PIC X(11).
040900
041000/
041100 PROCEDURE DIVISION.
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 MOVE SPACES TO WZ-MISCELLANEOUS.
044700 MOVE SPACES TO WF-PROGRAM-SELECTED-TABLE.
044800 MOVE SPACES TO WG-MODULE-SELECTED-TABLE.
044900 MOVE SPACES TO 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 MOVE ZERO TO SUB1.
045900 MOVE ZERO TO SUB6.
046000 MOVE ZERO TO SUB7.
046100 MOVE 1 TO SUB5.
046200 PERFORM B20-INIT-X-CARDS 200 TIMES.
046300 MOVE " OMITTED" TO WX-X-CARD (84).
046400 MOVE ZERO TO WZ-LINES-COBOL.
046500 MOVE ZERO TO WZ-LINES-INSERTED.
046600 MOVE ZERO TO WZ-LINES-REPLACED.
046700 MOVE ZERO TO WZ-LINES-DELETED.
046800 MOVE ZERO TO WZ-COMMENTS-DELETED.
046900 MOVE ZERO TO WZ-CODE-REMOVED.
047000 MOVE ZERO TO WZ-SOURCE-PROGS.
047100 MOVE ZERO TO WZ-NEWPOP-PROGS.
047200 MOVE ZERO TO WZ-PROGS-FOUND.
047300 MOVE ZERO TO WZ-COMMENTS-DEL.
047400 MOVE ZERO TO WZ-SEQ-NO.
047500 MOVE ZERO TO WZ-PAGE-CT.
047600 MOVE ZERO TO WZ-LINE-CT.
047700 ACCEPT WA-DATE FROM DATE.
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 MOVE ZERO TO 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 OPEN OUTPUT PRINT-FILE.
050900 MOVE SPACES TO PRINT-REC.
051000 OPEN INPUT CONTROL-CARD-FILE.
051100 READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA
051200 AT END MOVE "CONTROL-CARD-FILE IS EMPTY"
051300 TO PRINT-DATA
051400 PERFORM X20-PRINT-DETAIL
051500 STOP RUN.
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 AT END MOVE "NO BEGIN-UPDATE CARD FOUND"
052700 TO PRINT-DATA
052800 PERFORM X20-PRINT-DETAIL
052900 STOP RUN.
053000 IF WB-13 NOT = "*BEGIN-UPDATE"
053100 MOVE "*BEGIN-UPDATE CARD MISSING"
053200 TO PRINT-DATA
053300 PERFORM X20-PRINT-DETAIL
053400 STOP RUN.
053500 READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA
053600 AT END MOVE "NO END-UPDATE CARD FOUND"
053700 TO PRINT-DATA
053800 PERFORM X20-PRINT-DETAIL
053900 STOP RUN.
054000 IF WB-11 = "*END-UPDATE"
054100 MOVE "Y" TO WZ-END-OF-UPDATES
054200 GO TO 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 STOP RUN.
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 STOP RUN.
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 STOP RUN.
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 STOP RUN.
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 STOP RUN
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 STOP RUN
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 MOVE SPACES TO WB-CONTROL-DATA.
065700 READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA
065800 AT END MOVE "*END-MONITOR NOT ENCOUNTERED"
065900 TO PRINT-DATA
066000 PERFORM X20-PRINT-DETAIL
066100 STOP RUN.
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 GO TO 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 STOP RUN.
068300
068400 C30-10.
068500 IF WY-EXTRACT-ALL = SPACE
068600 GO TO 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 STOP RUN.
069200
069300 C30-20.
069400 IF WY-LIST-PROGRAMS = SPACE
069500 GO TO 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 STOP RUN.
070100
070200 C30-30.
070300 IF WY-EXTRACT-AUTO = SPACE
070400 GO TO 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 STOP RUN.
071000
071100 C30-40-CHECK-FOR-NEW-FILE.
071200 IF WY-NO-SOURCE = SPACE
071300 GO TO C30-50.
071400 IF WY-NEW-POP = "Y"
071500 GO TO C30-50.
071600 MOVE "NO SOURCE OR UPDATED POPFILE SELECTED" TO PRINT-DATA.
071700 PERFORM X20-PRINT-DETAIL
071800 STOP RUN.
071900
072000 C30-50.
072100 IF WY-EXTRACT-ALL = "Y"
072200 GO TO C30-55.
072300 IF WY-EXTRACT-MAN = "Y"
072400 GO TO C30-55.
072500 IF WY-EXTRACT-AUTO = SPACE
072600 GO TO 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 STOP RUN.
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 STOP RUN.
073800
073900 C30-60.
074000 IF WY-SELECT-PROG = SPACE
074100 GO TO 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 STOP RUN.
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 STOP RUN.
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 GO TO 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 GO TO 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 GO TO 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 AT END MOVE
080400 "*BEGIN-UPDATE AND *END-UPDATE CARDS NOT ENCOUNTERED"
080500 TO PRINT-DATA
080600 PERFORM X20-PRINT-DETAIL
080700 STOP RUN.
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 AFTER PAGE.
082500 WRITE PRINT-REC FROM WV-OPT-1 AFTER 1.
082600 WRITE PRINT-REC FROM WV-OPT-2 AFTER 1.
082700 MOVE SPACES TO WV-OPT-SWITCHES.
082800 MOVE ZERO TO SUB1.
082900 PERFORM C50-4 26 TIMES.
083000 GO TO 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.
--> --------------------
--> maximum size reached
--> --------------------
¤ Dauer der Verarbeitung: 0.72 Sekunden
(vorverarbeitet)
¤
|
Haftungshinweis
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 ist noch experimentell.
|