000100IDENTIFICATIONDIVISION. 000200 000400PROGRAM-ID. 000500 EXEC85. 000600INSTALLATION. 000700"ON-SITE VALIDATION, NATIONAL INSTITUTE OF STD & TECH. ". 000800"COBOL 85 VERSION 4.2, Apr 1993 SSVG ". 000900ENVIRONMENTDIVISION. 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**************************************************************** 002000CONFIGURATIONSECTION. 002100 002200SPECIAL-NAMES. 002300INPUT-OUTPUTSECTION. 002400FILE-CONTROL. 002500SELECTOPTIONAL POPULATION-FILE 002600ASSIGNTO 002700"C0001" . 002800SELECT SOURCE-COBOL-PROGRAMS 002900ASSIGNTO 003000"C0002" 003100ORGANIZATIONSEQUENTIAL. 003200SELECT UPDATED-POPULATION-FILE 003300ASSIGNTO 003400"C0003" . 003500SELECT PRINT-FILE 003600ASSIGNTO 003700"C0085" . 003800SELECT CONTROL-CARD-FILE 003900ASSIGNTO 004000"C0088" . 004100DATADIVISION. 004200FILESECTION. 004300FD POPULATION-FILE. 004400* RECORD CONTAINS 2400 CHARACTERS. 00450001 SOURCE-IN-2400. 00460002 SOURCE-IN PIC X(80). 004700* OCCURS 30. 004800FD CONTROL-CARD-FILE. 00490001 CONTROL-RECORD PIC X(80). 005000FD PRINT-FILE. 00510001 PRINT-REC. 00520005FILLERPIC X. 00530005 PRINT-DATA PIC X(131). 005400FD SOURCE-COBOL-PROGRAMS 005500BLOCKCONTAINS1 RECORDS. 00560001 CT-OUT. 00570002FILLERPIC X(72). 00580002FILLERPIC X(8). 005900FD UPDATED-POPULATION-FILE 006000RECORDCONTAINS2400 CHARACTERS. 00610001 UPDATED-SOURCE-OUT-2400. 00620002 UD-SOURCE-OUT PIC X(80) OCCURS30. 006300 006400WORKING-STORAGESECTION. 006500 00660001FILLERPIC X(40) VALUE 006700"NEWEXEC WORKING-STORAGE STARTS HERE ==->". 00680001 BLOCK-TYPE PIC X(5). 00690001 SUB1 PIC S9(3) COMP. 00700001 SUB2 PIC S9(3) COMP. 00710001 SUB3 PIC S9(3) COMP. 00720001 SUB4 PIC S9(3) COMP. 00730001 SUB5 PIC S9(3) COMP. 00740001 SUB6 PIC S9(3) COMP. 00750001 SUB7 PIC S9(3) COMP. 00760001 WA-ERR-IND PIC9VALUE ZEROES. 00770001 WA-FIRST-IND PIC9VALUE ZEROES. 00780001 WA-ZCARD-TABLE. 00790005 WA-ZCARD OCCURS10 008000PIC X(60). 00810001 WA-TOP-OF-PAGE-LINE. 00820005FILLERPIC X(4) VALUESPACES. 00830005 WA-VERSION. 00840007 WA-VERSION-TEXT PIC X(22) VALUE 008500"CCVS85 VERSION NUMBER ". 00860007 WA-VERSION-NUM PIC X(3) VALUESPACES. 00870005 WA-RELEASE. 00880007 WA-RELEASE-TEXT PIC X(14) VALUE 008900", RELEASED ON ". 00900007 WA-VERSION-DATE PIC X(11) VALUESPACES. 00910005FILLERPIC X(4) VALUESPACES. 00920005 WA-COMPANY-AND-COMPILER PIC X(30) VALUESPACES. 00930005FILLERPIC X(5) VALUESPACES. 00940005 WA-DATE PIC XXBXXBXX. 00950005FILLERPIC X(4) VALUESPACES. 00960005FILLERPIC X(5) VALUE"PAGE ". 00970005 WA-PAGE-CT PIC Z(5)9. 009800 00990001 WA-ACCT-LINE-1. 01000005FILLERPIC X(19) VALUE 010100" ** END OF PROGRAM ". 01020005 WA-CURRENT-PROG PIC X(6). 01030005FILLERPIC X(32) VALUE 010400" FOUND, COBOL LINES PROCESSED: ". 01050005 WA-LINES-COBOL PIC Z(5)9. 01060001 WA-ACCT-LINE-2. 01070005FILLERPIC X(19) VALUE 010800" ** LINES INSERTED ". 01090005 WA-LINES-INSERTED PIC Z(5)9. 01100005FILLERPIC X(19) VALUE 011100" ** LINES REPLACED ". 01120005 WA-LINES-REPLACED PIC Z(5)9. 01130005FILLERPIC X(19) VALUE 011400" ** LINES DELETED ". 01150005 WA-LINES-DELETED PIC Z(5)9. 01160001 WA-ACCT-LINE-3. 01170005FILLERPIC X(18) VALUE 011800" ** OPTIONAL CODE ". 01190005 WA-OPTIONAL-CODE PIC X(8). 01200005 WA-CODE-REMOVED PIC Z(5)9. 01210005 WA-CODE-KILLED PIC X(21) VALUE 012200" ** COMMENTS DELETED ". 01230005 WA-COMMENTS-DEL PIC Z(5)9. 01240001 WA-FINAL-LINE-1. 01250005FILLERPIC X(34) VALUE 012600" ** END OF POPULATION FILE REACHED". 01270005FILLERPIC X(27) VALUE 012800" NUMBER OF PROGRAMS FOUND: ". 01290005 WA-PROGS-FOUND PIC Z(5)9. 01300001 WA-FINAL-LINE-2. 01310005FILLERPIC X(47) VALUE 013200" ** NUMBER OF PROGRAMS WRITTEN TO SOURCE FILE: ". 01330005 WA-SOURCE-PROGS PIC Z(5)9. 01340001 WA-FINAL-LINE-3. 01350005FILLERPIC X(48) VALUE 013600" ** NUMBER OF PROGRAMS WRITTEN TO NEW POPULATION". 01370005FILLERPIC X(7) VALUE" FILE: ". 01380005 WA-NEWPOP-PROGS PIC Z(5)9. 01390001 WB-CONTROL-DATA. 01400005 WB-FILL PIC X(80). 01410005FILLERREDEFINES WB-FILL. 01420010 WB-3 PIC X(3). 01430010FILLERPIC X(77). 01440005FILLERREDEFINES WB-FILL. 01450010 WB-4 PIC X(4). 01460010 WB-NN PIC99. 01470010FILLERPIC X. 01480010 WB-X PIC X. 01490010FILLERPIC X(72). 01500005FILLERREDEFINES WB-FILL. 01510010 WB-6 PIC X(6). 01520010FILLERPIC X(74). 01530005FILLERREDEFINES WB-FILL. 01540010 WB-7 PIC X(7). 01550010FILLERPIC X(73). 01560005FILLERREDEFINES WB-FILL. 01570010 WB-8 PIC X(8). 01580010FILLERPIC X(72). 01590005FILLERREDEFINES WB-FILL. 01600010 WB-9 PIC X(9). 01610010FILLERPIC X(71). 01620005FILLERREDEFINES WB-FILL. 01630010 WB-10 PIC X(10). 01640010FILLERPIC X(70). 01650005FILLERREDEFINES WB-FILL. 01660010 WB-11 PIC X(11). 01670010FILLERPIC X(69). 01680005FILLERREDEFINES WB-FILL. 01690010 WB-12 PIC X(12). 01700010FILLERPIC X. 01710010 WB-PROG PIC X(5). 01720010FILLERPIC X(62). 01730005FILLERREDEFINES WB-FILL. 01740010 WB-13 PIC X(13). 01750010FILLERPIC X(67). 01760005FILLERREDEFINES WB-FILL. 01770010 WB-14 PIC X(14). 01780010FILLERPIC X. 01790010 WB-MODULE PIC XX. 01800010FILLERPIC X. 01810010 WB-LEVEL PIC X. 01820010FILLERPIC X(61). 01830005FILLERREDEFINES WB-FILL. 01840010 WB-15 PIC X(15). 01850010FILLERPIC X(65). 01860005FILLERREDEFINES WB-FILL. 01870010 WB-16 PIC X(16). 01880010FILLERPIC X(64). 01890005 WB-X-CARD REDEFINES WB-FILL. 01900010 WB-X-HYPHEN PIC XX. 01910010 WB-X-CARD-NUM PIC9(3). 01920010 WB-PROG-POS. 01930015 WB-PROG-POS-NUM PIC99. 01940010FILLERPIC X. 01950010 WB-SUBS-TEXT PIC X(60). 01960010FILLERPIC X(12). 01970005 WB-START-CARD REDEFINES WB-FILL. 01980010 WB-STAR-START PIC X(6). 01990010FILLERPIC X. 02000010 WB-UPDATE-PROG PIC X(6). 02010010FILLERPIC X. 02020010 WB-RENUMBER PIC X. 02030010FILLERPIC X(65). 02040005 WB-LINE-UPDATE REDEFINES WB-FILL. 02050010 WB-SEQ-1 PIC X(6). 02060010 WB-COBOL-LINE PIC X(74). 02070010FILLERREDEFINES WB-COBOL-LINE. 02080015 WB-COL-7 PIC X. 02090015FILLERPIC X(73). 02100010FILLERREDEFINES WB-COBOL-LINE. 02110015 WB-CHAR PIC X. 02120015 WB-SEQ-2 PIC X(6). 021300/ 02140001 WC-CURRENT-POP-RECORD. 02150005 WC-1. 02160010 WC-END-OF-POPFILE PIC X(16). 02170010FILLERPIC X(64). 02180005 WC-HEADER REDEFINES WC-1. 02190010 WC-STAR-HEADER PIC X(7). 02200010FILLERPIC X. 02210010 WC-COBOL PIC X(5). 02220010FILLERPIC X. 02230010 WC-PROG-ID. 02240012 WC-PROG-ID-1-5. 02250015 WC-PROG-ID-1-4. 02260018 WC-MODULE PIC XX. 02270018 WC-LEVEL PIC X. 02280018FILLERPIC X. 02290015FILLERPIC X. 02300012 WC-PROG-ID-6 PIC X. 02310010FILLERPIC X. 02320010 WC-SUBPRG PIC X(6). 02330010FILLERPIC X. 02340010 WC-PROG2ID. 02350012 WC-PROG2ID-1-5 PIC X(5). 02360012FILLERPIC X. 02370010FILLERPIC X(46). 02380005FILLERREDEFINES WC-1. 02390010 WC-1-72. 02400015 WC-6. 02410020 WC-STAR PIC X. 02420020FILLERPIC X(5). 02430015FILLERREDEFINES WC-6. 02440020 WC-1-5 PIC X(5). 02450020FILLERPIC X. 02460015 WC-COL-7 PIC X. 02470015 WC-COL-8 PIC X. 02480015FILLERPIC X(3). 02490015 WC-SUB-DATA. 02500020 WC-12-15 PIC X(4). 02510020FILLERPIC X. 02520020 WC-17-19 PIC9(3). 02530020 WC-20 PIC X. 02540020FILLERPIC X(52). 02550010 WC-73-80 PIC X(8). 025600 02570001 WD-SOURCE-REC. 02580005 WD-1. 02590010FILLERPIC X(6). 02600010 WD-HEADER PIC X(74). 026100 02620001 WE-PRINT-DATA. 02630005 WE-COBOL-LINE PIC X(80). 02640005FILLERPIC X VALUESPACE. 02650005 WE-X-CARD PIC X(9). 02660005FILLERPIC XX VALUESPACES. 02670005 WE-CHANGE-TYPE PIC X(12). 026800 02690001 WF-PROGRAM-SELECTED-TABLE. 02700005 WF-PROGRAM-SELECTED PIC X(5) OCCURS50. 027100 02720001 WG-MODULE-SELECTED-TABLE. 02730005FILLEROCCURS10. 02740010 WG-MODULE-SELECTED PIC XX. 02750010 WG-MODULE-LEVEL PIC X. 027600 02770001 WV-PRINT-MISCELLANEOUS. 02780005 WV-OPTION-HEADING PIC X(25) VALUE 027900" OPTION SWITCH SETTINGS -". 02800005 WV-OPT-1 PIC X(40) VALUE 028100" 0 1 2". 02820005 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". 02840005 WV-OPT-SWITCHES. 02850010FILLERPIC X VALUESPACE. 02860010FILLEROCCURS26. 02870015 WV-OPT PIC X. 02880015FILLERPIC X. 02890001 WX-X-CARD-TABLE. 02900005 WX-X-CARD OCCURS200. 02910010 WX-X-CHAR PIC X 029200OCCURS60. 02930001 WX-PROG-POS-TABLE. 02940005 WX-PROG-POS OCCURS200 029500PIC99. 02960001 WY-SWITCHES. 02970005 WY-OPTION-SWITCHES. 02980010 WY-OPT-SW-1 PIC X. 02990010 WY-OPT-SW-2 PIC X. 03000010 WY-OPT-SW-3 PIC X. 03010010 WY-OPT-SW-4 PIC X. 03020010 WY-OPT-SW-5 PIC X. 03030010 WY-OPT-SW-6 PIC X. 03040010 WY-OPT-SW-7 PIC X. 03050010 WY-OPT-SW-8 PIC X. 03060010 WY-OPT-SW-9 PIC X. 03070010 WY-OPT-SW-10 PIC X. 03080010 WY-OPT-SW-11 PIC X. 03090010 WY-OPT-SW-12 PIC X. 03100010 WY-OPT-SW-13 PIC X. 03110010 WY-OPT-SW-14 PIC X. 03120010 WY-OPT-SW-15 PIC X. 03130010 WY-OPT-SW-16 PIC X. 03140010 WY-OPT-SW-17 PIC X. 03150010 WY-OPT-SW-18 PIC X. 03160010 WY-OPT-SW-19 PIC X. 03170010 WY-OPT-SW-20 PIC X. 03180010 WY-OPT-SW-21 PIC X. 03190010 WY-OPT-SW-22 PIC X. 03200010 WY-OPT-SW-23 PIC X. 03210010 WY-OPT-SW-24 PIC X. 03220010 WY-OPT-SW-25 PIC X. 03230010 WY-OPT-SW-26 PIC X. 03240005FILLERREDEFINES WY-OPTION-SWITCHES. 03250010 WY-OPT-SW PIC X 032600OCCURS26. 03270005 WY-PRINT-SWITCHES. 03280010 WY-EXTRACT-ALL PIC X. 03290010 WY-EXTRACT-AUTO PIC X. 03300010 WY-EXTRACT-MAN PIC X. 03310010 WY-KILL-DELETIONS PIC X. 03320010 WY-LIST-NO-UPDATES PIC X. 03330010 WY-LIST-X-CARDS PIC X. 03340010 WY-LIST-PROGRAMS PIC X. 03350010 WY-LIST-COMPACT PIC X. 03360010 WY-NO-DATA PIC X. 03370010 WY-NO-LIBRARY PIC X. 03380010 WY-NO-SOURCE PIC X. 03390010 WY-REMOVE-COMMENTS PIC X. 03400010 WY-NEW-POP PIC X. 03410010 WY-SELECT-PROG PIC X. 03420010 WY-SELECT-MODULE PIC X. 03430010 WY-SELECT-LEVEL PIC X. 034400 03450001 WZ-MISCELLANEOUS. 03460005 WZ-PROGRAM-SELECTED PIC X. 03470005 WZ-END-OF-POPFILE PIC X. 03480005 WZ-FULL-STOP PIC X. 03490005 WZ-DONT-READ-POPFILE PIC X. 03500005 WZ-UPDATE-THIS-PROG PIC X. 03510005 WZ-REPLACE-FLAG PIC X. 03520005 WZ-LINE-UPDATE PIC X. 03530005 WZ-RESEQUENCE-THIS PIC X. 03540005 WZ-RESEQUENCE-NEXT PIC X. 03550005 WZ-END-OF-UPDATES PIC X. 03560005 WZ-OPTIONAL-SELECTED PIC X. 03570005 WZ-DELETE-FLAG PIC X. 03580005 WZ-NOT-THIS-COMMENT PIC X. 03590005 WZ-CURRENT-HEADER PIC X(5). 03600005 WZ-INVALID-DATA. 03610010FILLERPIC X(20). 03620010 WZ-ERROR-MESSAGE PIC X(60). 03630005 WZ-CURRENT-UPD-PROG. 03640010 WZ-UPD-PROG-CHAR PIC X. 03650010FILLERPIC X(5). 03660005 WZ-CURRENT-MAIN-PROG. 03670010 WZ-MAIN-PROG-CHAR PIC X OCCURS6. 03680005 WZ-PROG-BREAK. 03690010 WZ-1CHAR PIC X OCCURS6. 03700005 WZ-CURRENT-POP-PROG. 03710010FILLERPIC X(5). 03720010 WZ-PROG-ID-6 PIC X. 03730005 WZ-MAIN-PROG-FLAG PIC X. 03740005 WZ-LINES-COBOL PIC9(6). 03750005 WZ-LINES-INSERTED PIC9(6). 03760005 WZ-LINES-REPLACED PIC9(6). 03770005 WZ-LINES-DELETED PIC9(6). 03780005 WZ-COMMENTS-DELETED PIC9(6). 03790005 WZ-CODE-REMOVED PIC9(6). 03800005 WZ-SOURCE-PROGS PIC9(6). 03810005 WZ-NEWPOP-PROGS PIC9(6). 03820005 WZ-PROGS-FOUND PIC9(6). 03830005 WZ-COMMENTS-DEL PIC9(6). 03840005 WZ-SEQ-NO PIC9(6). 03850005 WZ-SAVE-POP-RECORD. 03860010 WZ-SAVE-SEQ PIC X(6). 03870010FILLERPIC X(5). 03880010 WZ-SAVE-12-20. 03890015 WZ-SAVE-12-15 PIC X(4). 03900015FILLERPIC X(5). 03910010FILLERPIC X(60). 03920005 WZ-PAGE-CT PIC9(6). 03930005 WZ-LINE-CT PIC9(6). 03940005 WZ-MODULE PIC XX. 03950005 WZ-LEVEL PIC X. 03960005 WZ-PRINT-HOLD PIC X(132). 03970005 WZ-X-CARD. 03980010 WZ-X-CHAR PIC X 039900OCCURS60. 04000005 WZ-WITHIN-DELETE-SERIES-FLAG PIC X. 04010001 WZ-VERSION-CARD. 04020010FILLERPIC X(55) VALUE 040300"CCVS85 VERSION 4.2 01 OCT 1992 0032 ". 04040001 WZ-VERSION-CONTROL REDEFINES WZ-VERSION-CARD. 04050010FILLERPIC X(16). 04060010 WZ-VERSION-NUM PIC X(3). 04070010FILLERPIC X(3). 04080010 WZ-VERSION-DATE PIC X(11). 040900 041000/ 041100PROCEDUREDIVISION. 041200*================== 041300* 041400 A10-MAIN SECTION. 041500*================ 041600* 041700**************************************************************** 041800* THIS IS THE HIGHEST LEVEL CONTROL MODULE * 041900* * 042000**************************************************************** 042100 A10-1-MAIN. 042200PERFORM B10-INITIALISE. 042300 042400PERFORM C10-PROCESS-MONITOR. 042500 042600PERFORM D10-MERGE-UPDATE-CARDS. 042700 042800PERFORM E10-TERMINATE. 042900 043000 A10-EXIT. 043100EXIT. 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. 044600MOVESPACESTO WZ-MISCELLANEOUS. 044700MOVESPACESTO WF-PROGRAM-SELECTED-TABLE. 044800MOVESPACESTO WG-MODULE-SELECTED-TABLE. 044900MOVESPACESTO WY-SWITCHES. 045000MOVE"A"TO WY-OPT-SW-1. 045100MOVE"E"TO WY-OPT-SW-2. 045200MOVE"H"TO WY-OPT-SW-3. 045300MOVE"L"TO WY-OPT-SW-4. 045400MOVE"Y"TO WY-OPT-SW-7. 045500MOVE"T"TO WY-OPT-SW-11. 045600 045700 B10-2-INIT-X-CARDS. 045800MOVEZEROTO SUB1. 045900MOVEZEROTO SUB6. 046000MOVEZEROTO SUB7. 046100MOVE1TO SUB5. 046200PERFORM B20-INIT-X-CARDS 200 TIMES. 046300MOVE" OMITTED"TO WX-X-CARD (84). 046400MOVEZEROTO WZ-LINES-COBOL. 046500MOVEZEROTO WZ-LINES-INSERTED. 046600MOVEZEROTO WZ-LINES-REPLACED. 046700MOVEZEROTO WZ-LINES-DELETED. 046800MOVEZEROTO WZ-COMMENTS-DELETED. 046900MOVEZEROTO WZ-CODE-REMOVED. 047000MOVEZEROTO WZ-SOURCE-PROGS. 047100MOVEZEROTO WZ-NEWPOP-PROGS. 047200MOVEZEROTO WZ-PROGS-FOUND. 047300MOVEZEROTO WZ-COMMENTS-DEL. 047400MOVEZEROTO WZ-SEQ-NO. 047500MOVEZEROTO WZ-PAGE-CT. 047600MOVEZEROTO WZ-LINE-CT. 047700ACCEPT WA-DATE FROMDATE. 047800 B10-EXIT. 047900EXIT. 048000 048100 048200 048300 048400 B20-INIT-X-CARDS SECTION. 048500*======================== 048600 B20-1-INIT. 048700ADD1TO SUB1. 048800MOVE"**** X-CARD UNDEFINED ****"TO WX-X-CARD (SUB1). 048900MOVEZEROTO WX-PROG-POS (SUB1). 049000 049100 B20-EXIT. 049200EXIT. 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. 050800OPENOUTPUT PRINT-FILE. 050900MOVESPACESTO PRINT-REC. 051000OPENINPUT CONTROL-CARD-FILE. 051100READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA 051200ATENDMOVE"CONTROL-CARD-FILE IS EMPTY" 051300TO PRINT-DATA 051400PERFORM X20-PRINT-DETAIL 051500STOPRUN. 051600PERFORM C20-PROCESS-STAR-CARDS 051700UNTIL WB-X-HYPHEN = "X-". 051800PERFORM C30-CHECK-COMBINATIONS. 051900PERFORM C40-PROCESS-X-CARDS 052000UNTIL WB-12 = "*END-MONITOR". 052100 052200PERFORM C50-PRINT-OPTIONS. 052300 052400 C10-10-GET-FIRST-START-CARD. 052500READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA 052600ATENDMOVE"NO BEGIN-UPDATE CARD FOUND" 052700TO PRINT-DATA 052800PERFORM X20-PRINT-DETAIL 052900STOPRUN. 053000IF WB-13 NOT = "*BEGIN-UPDATE" 053100MOVE"*BEGIN-UPDATE CARD MISSING" 053200TO PRINT-DATA 053300PERFORM X20-PRINT-DETAIL 053400STOPRUN. 053500READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA 053600ATENDMOVE"NO END-UPDATE CARD FOUND" 053700TO PRINT-DATA 053800PERFORM X20-PRINT-DETAIL 053900STOPRUN. 054000IF WB-11 = "*END-UPDATE" 054100MOVE"Y"TO WZ-END-OF-UPDATES 054200GOTO C10-EXIT. 054300IF WB-STAR-START = "*START" 054400PERFORM C60-START-CARD. 054500 054600 C10-EXIT. 054700EXIT. 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. 056100IF WB-13 = "*BEGIN-UPDATE" 056200MOVE WB-13 TO WZ-INVALID-DATA 056300MOVE"ENCOUNTERED BEFORE *END-MONITOR CARD" 056400TO WZ-ERROR-MESSAGE 056500MOVE WZ-INVALID-DATA TO PRINT-DATA 056600PERFORM X20-PRINT-DETAIL 056700STOPRUN. 056800 056900IF WB-6 = "*START" 057000MOVE WB-6 TO WZ-INVALID-DATA 057100MOVE"ENCOUNTERED BEFORE *END-MONITOR CARD" 057200TO WZ-ERROR-MESSAGE 057300MOVE WZ-INVALID-DATA TO PRINT-DATA 057400PERFORM X20-PRINT-DETAIL 057500STOPRUN. 057600 057700IF WB-11 = "*END-UPDATE" 057800MOVE WB-11 TO WZ-INVALID-DATA 057900MOVE"ENCOUNTERED BEFORE *END-MONITOR CARD" 058000TO WZ-ERROR-MESSAGE 058100MOVE WZ-INVALID-DATA TO PRINT-DATA 058200PERFORM X20-PRINT-DETAIL 058300STOPRUN. 058400 058500PERFORM C25-SET-FLAGS. 058600 058700 C20-EXIT. 058800EXIT. 058900 059000/ 059100 C25-SET-FLAGS SECTION. 059200*===================== 059300 C25-1. 059400MOVE WB-CONTROL-DATA TO PRINT-DATA. 059500PERFORM X20-PRINT-DETAIL. 059600IF WB-12 = "*EXTRACT-ALL" 059700MOVE"Y"TO WY-EXTRACT-ALL. 059800IF WB-13 = "*EXTRACT-AUTO" 059900MOVE"Y"TO WY-EXTRACT-AUTO. 060000IF WB-12 = "*EXTRACT-MAN" 060100MOVE"Y"TO WY-EXTRACT-MAN. 060200IF WB-15 = "*KILL-DELETIONS" 060300MOVE"Y"TO WY-KILL-DELETIONS. 060400IF WB-16 = "*LIST NO-UPDATES" 060500MOVE"Y"TO WY-LIST-NO-UPDATES. 060600IF WB-13 = "*LIST X-CARDS" 060700MOVE"Y"TO WY-LIST-X-CARDS. 060800IF WB-14 = "*LIST PROGRAMS" 060900MOVE"Y"TO WY-LIST-PROGRAMS. 061000IF WB-13 = "*LIST COMPACT" 061100MOVE"Y"TO WY-LIST-COMPACT. 061200IF WB-8 = "*NO-DATA" 061300MOVE"Y"TO WY-NO-DATA. 061400IF WB-11 = "*NO-LIBRARY" 061500MOVE"Y"TO WY-NO-LIBRARY. 061600IF WB-10 = "*NO-SOURCE" 061700MOVE"Y"TO WY-NO-SOURCE. 061800IF WB-16 = "*REMOVE-COMMENTS" 061900MOVE"Y"TO WY-REMOVE-COMMENTS. 062000IF WB-8 = "*NEW-POP" 062100MOVE"Y"TO WY-NEW-POP. 062200IF WB-4 = "*OPT" 062300MOVE WB-X TO WY-OPT-SW (WB-NN). 062400IF WB-14 = "*SELECT-MODULE" 062500IF WB-MODULE = SPACE 062600MOVE"SELECTED MODULE NOT SPECIFIED" 062700TO PRINT-DATA 062800PERFORM X20-PRINT-DETAIL 062900STOPRUN. 063000 063100IF WB-14 = "*SELECT-MODULE" 063200ADD1TO SUB6 063300IF SUB6 > 10 063400MOVE"MORE THAN 10 MODULES SELECTED" 063500TO PRINT-DATA 063600PERFORM X20-PRINT-DETAIL 063700STOPRUN 063800ELSE 063900MOVE"Y"TO WY-SELECT-MODULE 064000MOVE WB-MODULE 064100TO WG-MODULE-SELECTED (SUB6) 064200MOVE WB-LEVEL TO WG-MODULE-LEVEL (SUB6). 064300IF WB-12 = "*SELECT-PROG" 064400ADD1TO SUB7 064500IF SUB7 > 50 064600MOVE"MORE THAN 50 RECORDS SELECTED" 064700TO PRINT-DATA 064800PERFORM X20-PRINT-DETAIL 064900STOPRUN 065000ELSE 065100MOVE"Y"TO WY-SELECT-PROG 065200MOVE WB-PROG 065300TO WF-PROGRAM-SELECTED (SUB7). 065400 065500 C25-10-READ-FILE. 065600MOVESPACESTO WB-CONTROL-DATA. 065700READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA 065800ATENDMOVE"*END-MONITOR NOT ENCOUNTERED" 065900TO PRINT-DATA 066000PERFORM X20-PRINT-DETAIL 066100STOPRUN. 066200 C25-EXIT. 066300EXIT. 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. 067600IF WY-EXTRACT-ALL = SPACE 067700GOTO C30-10. 067800IF WY-EXTRACT-AUTO = "Y" 067900MOVE"ALL AND AUTO PROGRAMS SELECTED" 068000TO PRINT-DATA 068100PERFORM X20-PRINT-DETAIL 068200STOPRUN. 068300 068400 C30-10. 068500IF WY-EXTRACT-ALL = SPACE 068600GOTO C30-20. 068700IF WY-EXTRACT-MAN = "Y" 068800MOVE"ALL AND MANUAL PROGRAMS SELECTED" 068900TO PRINT-DATA 069000PERFORM X20-PRINT-DETAIL 069100STOPRUN. 069200 069300 C30-20. 069400IF WY-LIST-PROGRAMS = SPACE 069500GOTO C30-30. 069600IF WY-LIST-NO-UPDATES = SPACE 069700MOVE"BOTH UPDATES AND PROGRAMS SELECTED" 069800TO PRINT-DATA 069900PERFORM X20-PRINT-DETAIL 070000STOPRUN. 070100 070200 C30-30. 070300IF WY-EXTRACT-AUTO = SPACE 070400GOTO C30-40-CHECK-FOR-NEW-FILE. 070500IF WY-EXTRACT-MAN = "Y" 070600MOVE"AUTO AND MANUAL PROGRAMS SELECTED" 070700TO PRINT-DATA 070800PERFORM X20-PRINT-DETAIL 070900STOPRUN. 071000 071100 C30-40-CHECK-FOR-NEW-FILE. 071200IF WY-NO-SOURCE = SPACE 071300GOTO C30-50. 071400IF WY-NEW-POP = "Y" 071500GOTO C30-50. 071600MOVE"NO SOURCE OR UPDATED POPFILE SELECTED"TO PRINT-DATA. 071700PERFORM X20-PRINT-DETAIL 071800STOPRUN. 071900 072000 C30-50. 072100IF WY-EXTRACT-ALL = "Y" 072200GOTO C30-55. 072300IF WY-EXTRACT-MAN = "Y" 072400GOTO C30-55. 072500IF WY-EXTRACT-AUTO = SPACE 072600GOTO C30-60. 072700 C30-55. 072800IF WY-SELECT-PROG = "Y" 072900MOVE"SINGLE PROGRAM SELECTED WITH ALL/AUTO/MANUAL" 073000TO PRINT-DATA 073100PERFORM X20-PRINT-DETAIL 073200STOPRUN. 073300IF WY-SELECT-MODULE = "Y" 073400MOVE"SINGLE MODULE SELECTED WITH ALL/AUTO/MANUAL" 073500TO PRINT-DATA 073600PERFORM X20-PRINT-DETAIL 073700STOPRUN. 073800 073900 C30-60. 074000IF WY-SELECT-PROG = SPACE 074100GOTO C30-70. 074200IF WY-SELECT-MODULE = "Y" 074300MOVE"SINGLE MODULE AND SINGLE PROGRAM SELECTED" 074400TO PRINT-DATA 074500PERFORM X20-PRINT-DETAIL 074600STOPRUN. 074700 074800 074900 C30-70. 075000IF WY-EXTRACT-ALL = SPACE 075100IF WY-EXTRACT-AUTO = SPACE 075200IF WY-EXTRACT-MAN = SPACE 075300IF WY-SELECT-PROG = SPACE 075400IF WY-SELECT-MODULE = SPACE 075500MOVE"NO PROGRAMS SELECTED" 075600TO PRINT-DATA 075700PERFORM X20-PRINT-DETAIL 075800STOPRUN. 075900 076000 C30-EXIT. 076100EXIT. 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. 077500IF WB-X-HYPHEN NOT = "X-" 077600MOVE"INVALID X-CARD:"TO WZ-INVALID-DATA 077700MOVE WB-CONTROL-DATA TO WZ-ERROR-MESSAGE 077800MOVE WZ-INVALID-DATA TO PRINT-DATA 077900PERFORM X20-PRINT-DETAIL 078000GOTO C40-90-READ-FILE. 078100 078200IF WB-X-CARD-NUM > 200 078300MOVE"INVALID X-CARD:"TO WZ-INVALID-DATA 078400MOVE WB-CONTROL-DATA TO WZ-ERROR-MESSAGE 078500MOVE WZ-INVALID-DATA TO PRINT-DATA 078600PERFORM X20-PRINT-DETAIL 078700GOTO C40-90-READ-FILE. 078800 078900 C40-20-MOVE-DATA. 079000MOVE WB-SUBS-TEXT TO WX-X-CARD (WB-X-CARD-NUM). 079100IF WB-PROG-POS = SPACES 079200GOTO C40-30-MOVE-DATA. 079300IF WB-PROG-POS-NUM < 55 079400MOVE WB-PROG-POS-NUM 079500TO WX-PROG-POS (WB-X-CARD-NUM). 079600 079700 C40-30-MOVE-DATA. 079800MOVE WB-CONTROL-DATA TO PRINT-DATA. 079900PERFORM X20-PRINT-DETAIL. 080000 080100 C40-90-READ-FILE. 080200READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA 080300ATENDMOVE 080400"*BEGIN-UPDATE AND *END-UPDATE CARDS NOT ENCOUNTERED" 080500TO PRINT-DATA 080600PERFORM X20-PRINT-DETAIL 080700STOPRUN. 080800 080900 C40-EXIT. 081000EXIT. 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. 082400WRITE PRINT-REC FROM WV-OPTION-HEADING AFTERPAGE. 082500WRITE PRINT-REC FROM WV-OPT-1 AFTER1. 082600WRITE PRINT-REC FROM WV-OPT-2 AFTER1. 082700MOVESPACESTO WV-OPT-SWITCHES. 082800MOVEZEROTO SUB1. 082900PERFORM C50-4 26 TIMES. 083000GOTO C50-5. 083100 C50-4. 083200* PERFORM 26 TIMES 083300ADD1TO SUB1 083400MOVE WY-OPT-SW (SUB1) TO WV-OPT (SUB1). 083500* END-PERFORM. 083600 C50-5. 083700WRITE PRINT-REC FROM WV-OPT-SWITCHES AFTER1. 083800 083900 C50-20-LISTING-OPTIONS. 084000IF WY-LIST-NO-UPDATES = "Y" 084100MOVE"UPDATES WILL NOT BE REPORTED"TO PRINT-DATA 084200ELSE 084300MOVE"UPDATES WILL BE REPORTED"TO PRINT-DATA. 084400WRITE PRINT-REC AFTER3. 084500 084600IF WY-LIST-X-CARDS = "Y" 084700MOVE"X-CARD SUBSTITUTIONS WILL BE SHOWN" 084800TO PRINT-DATA 084900ELSE 085000MOVE"X-CARD SUBSTITUTIONS WILL NOT BE SHOWN" 085100TO PRINT-DATA. 085200WRITE PRINT-REC AFTER1. 085300 085400IF WY-LIST-PROGRAMS = "Y" 085500MOVE"PROGRAM LISTINGS WILL BE PRINTED" 085600TO PRINT-DATA 085700ELSE 085800MOVE"PROGRAM LISTINGS WILL NOT BE PRINTED" 085900TO PRINT-DATA. 086000WRITE PRINT-REC AFTER1. 086100 086200IF WY-LIST-COMPACT = "Y" 086300MOVE"REPORT WILL BE COMPRESSED"TO PRINT-DATA 086400ELSE 086500MOVE"REPORT WILL BE EXPANDED"TO PRINT-DATA. 086600WRITE PRINT-REC AFTER1. 086700 086800IF WY-NO-SOURCE = "Y" 086900MOVE"SOURCE FILE WILL BE SUPPRESSED"TO PRINT-DATA 087000ELSE 087100MOVE"SOURCE FILE WILL BE CREATED"TO PRINT-DATA. 087200WRITE PRINT-REC AFTER1. 087300 087400IF WY-NEW-POP = "Y" 087500MOVE"NEW POPULATION FILE WILL BE CREATED" 087600TO PRINT-DATA 087700ELSE 087800MOVE"NEW POPULATION FILE WILL BE SUPPRESSED" 087900TO PRINT-DATA. 088000WRITE PRINT-REC AFTER1. 088100 088200 088300 C50-30. 088400IF WY-NO-LIBRARY = "Y" 088500MOVE"LIBRARY NOT SELECTED" 088600TO PRINT-DATA 088700ELSE 088800MOVE"LIBRARY FILES WILL BE SELECTED" 088900TO PRINT-DATA. 089000WRITE PRINT-REC AFTER1. 089100 089200 C50-35. 089300IF WY-NO-DATA = "Y" 089400MOVE"DATA BLOCKS WILL BE IGNORED" 089500TO PRINT-DATA 089600ELSE 089700MOVE"DATA BLOCKS WILL BE SENT TO SOURCE FILE" 089800TO PRINT-DATA. 089900WRITE PRINT-REC AFTER1. 090000 090100 C50-40. 090200IF WY-EXTRACT-ALL = "Y" 090300MOVE"ALL PROGRAMS SELECTED"TO PRINT-DATA. 090400IF WY-EXTRACT-AUTO = "Y" 090500MOVE"ALL AUTOMATIC PROGRAMS SELECTED" 090600TO PRINT-DATA. 090700IF WY-EXTRACT-MAN = "Y" 090800MOVE"ALL MANUAL PROGRAMS SELECTED" 090900TO PRINT-DATA. 091000IF WY-SELECT-PROG = "Y" 091100MOVE"SEPARATE PROGRAMS SELECTED" 091200TO PRINT-DATA. 091300IF WY-SELECT-MODULE = "Y" 091400MOVE"SEPARATE MODULES SELECTED" 091500TO PRINT-DATA. 091600WRITE PRINT-REC AFTER1. 091700 091800IF WY-REMOVE-COMMENTS = "Y" 091900MOVE"COMMENT LINES WILL BE REMOVED" 092000TO PRINT-DATA 092100ELSE 092200MOVE"COMMENT LINES WILL BE RETAINED" 092300TO PRINT-DATA. 092400WRITE PRINT-REC AFTER1. 092500 092600 092700IF WY-KILL-DELETIONS = "Y" 092800MOVE"UNUSED OPTIONAL CODE WILL BE REMOVED" 092900TO PRINT-DATA 093000ELSE 093100MOVE"UNUSED OPTIONAL CODE WILL BE CONVERTED TO COM 093200- "MENTS AND RETAINED" 093300TO PRINT-DATA. 093400WRITE PRINT-REC AFTER1. 093500 093600 C50-EXIT. 093700EXIT. 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 095700MOVE WB-UPDATE-PROG TO WZ-CURRENT-UPD-PROG. 095800 095900IF WZ-CURRENT-UPD-PROG = WZ-CURRENT-POP-PROG 096000MOVE"Y"TO WZ-UPDATE-THIS-PROG 096100ELSE 096200MOVESPACETO WZ-UPDATE-THIS-PROG. 096300 096400 C60-EXIT. 096500EXIT. 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. 098100IF WY-NEW-POP = "Y" 098200OPENOUTPUT UPDATED-POPULATION-FILE. 098300 098400IF WY-NO-SOURCE = SPACE 098500OPENOUTPUT SOURCE-COBOL-PROGRAMS. 098600 098700OPENINPUT POPULATION-FILE. 098800PERFORM D10-20-GET-VERSION. 098900MOVE WZ-VERSION-CARD TO PRINT-DATA. 099000PERFORM X20-PRINT-DETAIL. 099100 099200 D10-10-GET-HEADER. 099300PERFORM D11-GET-NEXT-PROGRAM. 099400 099500PERFORM D20-PROCESS-POPFILE 099600UNTIL WZ-END-OF-POPFILE = "Y". 099700 099800PERFORM D15-END-OF-POPFILE. 099900 100000 D10-EXIT. 100100EXIT. 100200/ 100300 D10-20-GET-VERSION SECTION. 100400*============================ 100500* 100600 D10-20-INIT-VER. 100700MOVE WZ-VERSION-NUM TO WA-VERSION-NUM. 100800MOVE WZ-VERSION-DATE TO WA-VERSION-DATE. 100900 101000 D10-20-EXIT. 101100EXIT. 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. 102100MOVESPACESTO WC-STAR-HEADER. 102200 102300PERFORM X30-READ-POPFILE 102400UNTIL WC-STAR-HEADER = "*HEADER". 102500 D11-TEST-END. 102600IF WZ-END-OF-POPFILE = "Y" 102700GOTO D11-EXIT. 102800 102900IF WC-COBOL NOT = "COBOL" 103000IF WC-COBOL = "CLBRY" 103100IF WY-NO-LIBRARY = "Y" 103200GOTO D11-1-READ-POPFILE 103300ELSE 103400NEXTSENTENCE 103500ELSE 103600IF WC-COBOL = "DATA*" 103700IF WY-NO-DATA = "Y" 103800GOTO D11-1-READ-POPFILE 103900ELSE 104000NEXTSENTENCE 104100ELSE 104200GOTO D11-1-READ-POPFILE. 104300 104400 D11-EXIT. 104500EXIT. 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. 105900MOVE WZ-PROGS-FOUND TO WA-PROGS-FOUND. 106000MOVE WA-FINAL-LINE-1 TO PRINT-DATA. 106100PERFORM X20-PRINT-DETAIL. 106200 106300IF WY-NO-SOURCE = SPACE 106400MOVE WZ-SOURCE-PROGS TO WA-SOURCE-PROGS 106500MOVE WA-FINAL-LINE-2 TO PRINT-DATA 106600PERFORM X20-PRINT-DETAIL. 106700 106800IF WY-NEW-POP = "Y" 106900MOVE WZ-NEWPOP-PROGS TO WA-NEWPOP-PROGS 107000MOVE WA-FINAL-LINE-3 TO PRINT-DATA 107100PERFORM X20-PRINT-DETAIL. 107200 107300IF WZ-END-OF-UPDATES = SPACE 107400READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA 107500ATENDMOVE"Y"TO WZ-END-OF-UPDATES. 107600 107700PERFORM D16-FLAG-UNUSED-UPDATES 107800UNTIL WZ-END-OF-UPDATES = "Y". 107900 108000IF WY-SELECT-PROG = "Y"AND 108100 WF-PROGRAM-SELECTED-TABLE NOT = SPACES 108200MOVE"SOME PROGRAMS NOT FOUND"TO PRINT-DATA 108300PERFORM X20-PRINT-DETAIL 108400PERFORMVARYING SUB7 FROM1BY1UNTIL SUB7 > 50 108500IF WF-PROGRAM-SELECTED (SUB7) NOT = SPACE 108600MOVE WF-PROGRAM-SELECTED (SUB7) TO PRINT-DATA 108700PERFORM X20-PRINT-DETAIL 108800END-IF 108900END-PERFORM. 109000 109100 D15-EXIT. 109200EXIT. 109300 109400 109500 109600 109700 D16-FLAG-UNUSED-UPDATES SECTION. 109800*=============================== 109900 D16-1-PRINT-UPDATES. 110000MOVE WB-CONTROL-DATA TO PRINT-DATA. 110100PERFORM X20-PRINT-DETAIL. 110200READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA 110300ATENDMOVE"Y"TO WZ-END-OF-UPDATES. 110400 110500 D16-EXIT. 110600EXIT. 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. 112600MOVESPACETO WZ-NOT-THIS-COMMENT. 112700MOVESPACETO WZ-LINE-UPDATE. 112800MOVESPACETO WZ-REPLACE-FLAG. 112900* MOVE "Y" TO WZ-UPDATE-THIS-PROG. 113000MOVESPACETO WZ-OPTIONAL-SELECTED. 113100MOVESPACETO WZ-DELETE-FLAG. 113200 113300IF WC-STAR-HEADER = "*HEADER" 113400MOVESPACETO WZ-PROGRAM-SELECTED 113500PERFORM D30-PROCESS-HEADER 113600UNTIL WZ-PROGRAM-SELECTED = "Y" 113700ELSE 113800IF WC-STAR-HEADER = "*END-OF" 113900PERFORM D90-PROCESS-END-OF 114000ELSE 114100PERFORM D50-PROCESS-COBOL-LINE. 114200 114300PERFORM D25-PRINT-REPORT. 114400 114500 D20-10-SOURCE-CHECK. 114600IF WY-NO-SOURCE = "Y" 114700GOTO D20-20-UPDATED-POP-CHECK. 114800IF WZ-DELETE-FLAG = "Y" 114900GOTO D20-20-UPDATED-POP-CHECK. 115000IF WZ-NOT-THIS-COMMENT = "Y" 115100GOTO D20-20-UPDATED-POP-CHECK. 115200* IF WZ-UPDATE-THIS-PROG = SPACE 115300* GO TO D20-30-READ-FILE. 115400 115500IF WZ-END-OF-POPFILE NOT = "Y" 115600PERFORM X40-WRITE-SOURCE-FILE. 115700 115800 D20-20-UPDATED-POP-CHECK. 115900IF WY-NEW-POP = "Y" 116000PERFORM X10-WRITE-UPDATED-POPFILE. 116100MOVE WZ-SAVE-POP-RECORD TO WC-CURRENT-POP-RECORD. 116200 116300 D20-30-READ-FILE. 116400IF WZ-END-OF-POPFILE = "Y" 116500GOTO D20-EXIT. 116600IF WB-SEQ-1 = SPACES 116700MOVE WZ-SAVE-SEQ TO WC-6 116800GOTO D20-EXIT. 116900PERFORM X30-READ-POPFILE. 117000 117100 D20-EXIT. 117200EXIT. 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. 118800IF WY-LIST-PROGRAMS = "Y" 118900MOVE WC-CURRENT-POP-RECORD TO PRINT-DATA 119000PERFORM X20-PRINT-DETAIL 119100GOTO D25-EXIT. 119200 119300 D25-10-UPDATES-CHECK. 119400IF WY-LIST-NO-UPDATES = SPACE 119500IF WZ-LINE-UPDATE = "Y" 119600PERFORM D27-PRINT-UPDATES 119700GOTO D25-EXIT. 119800 119900 D25-20-X-CARD-CHECK. 120000IF WY-LIST-X-CARDS = "Y" 120100IF WZ-SAVE-12-15 = "XXXX" 120200MOVE WZ-SAVE-12-20 TO WE-X-CARD 120300MOVE"SUBSTITUTION"TO WE-CHANGE-TYPE 120400MOVE WC-CURRENT-POP-RECORD 120500TO WE-COBOL-LINE 120600MOVE WE-PRINT-DATA TO PRINT-DATA 120700PERFORM X20-PRINT-DETAIL. 120800 120900 D25-EXIT. 121000EXIT. 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. 122800IF WZ-REPLACE-FLAG = "Y" 122900MOVE WZ-SAVE-POP-RECORD TO WE-COBOL-LINE 123000MOVESPACESTO WE-X-CARD 123100MOVE"ORIGINAL"TO WE-CHANGE-TYPE 123200MOVE WE-PRINT-DATA TO PRINT-DATA 123300PERFORM X20-PRINT-DETAIL 123400MOVE"REPLACEMENT"TO WE-CHANGE-TYPE 123500MOVESPACESTO WE-X-CARD 123600MOVE WC-CURRENT-POP-RECORD TO WE-COBOL-LINE 123700MOVE WE-PRINT-DATA TO PRINT-DATA 123800PERFORM X20-PRINT-DETAIL 123900GOTO D27-EXIT. 124000 124100 D27-10-PRINT-NEW-DATA. 124200IF WZ-DONT-READ-POPFILE = "Y" 124300MOVE WC-CURRENT-POP-RECORD TO WE-COBOL-LINE 124400MOVE WE-PRINT-DATA TO PRINT-DATA 124500PERFORM X20-PRINT-DETAIL 124600GOTO D27-EXIT. 124700 124800 D27-20-PRINT-DELETIONS. 124900IF WZ-DELETE-FLAG = "Y" 125000MOVE WZ-SAVE-POP-RECORD TO WE-COBOL-LINE 125100MOVE WE-PRINT-DATA TO PRINT-DATA 125200PERFORM X20-PRINT-DETAIL. 125300 125400 D27-EXIT. 125500EXIT. 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. 127400MOVE WC-COBOL TO BLOCK-TYPE 127500IF WC-COBOL = "CLBRY" 127600AND WY-NO-LIBRARY NOT = "Y" 127700MOVE WC-HEADER TO PRINT-DATA 127800MOVE 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 128400MOVE"Y"TO WZ-PROGRAM-SELECTED 128500PERFORM D34-PROGRAM-SELECTED. 128600 128700IF WC-COBOL = "DATA*" 128800PERFORM D31-PROCESS-DATA-HEADER. 128900 129000IF WC-COBOL = "COBOL" 129100ADD1TO WZ-PROGS-FOUND 129200PERFORM D32-PROCESS-COBOL-HEADER. 129300 129400IF WZ-PROGRAM-SELECTED = "Y" 129500GOTO D30-20-HEADER-SELECTED. 129600 129700PERFORM D11-GET-NEXT-PROGRAM. 129800IF WZ-END-OF-POPFILE = "Y" 129900MOVE"Y"TO WZ-PROGRAM-SELECTED 130000GOTO D30-EXIT 130100ELSE 130200GOTO D30-1-CHECK-HEADER-TYPE. 130300 130400 D30-20-HEADER-SELECTED. 130500MOVE WC-COBOL TO WZ-CURRENT-HEADER. 130600IF WZ-END-OF-UPDATES = SPACE 130700PERFORM D40-ANY-UPDATES. 130800 130900 D30-EXIT. 131000EXIT. 131100/ 131200 D31-PROCESS-DATA-HEADER SECTION. 131300*=============================== 131400* 131500 D31-1-CHECK-FOR-DATA-SELECTED. 131600IF WY-NO-DATA = "Y" 131700GOTO D31-EXIT. 131800 131900IF WZ-PROG-ID-6 = "M" 132000GOTO D31-30-MANUAL-CHECK. 132100 132200 D31-20-AUTO-CHECK. 132300IF WY-EXTRACT-MAN = SPACE 132400MOVE"Y"TO WZ-PROGRAM-SELECTED 132500ELSE 132600GOTO D31-EXIT. 132700 132800 D31-30-MANUAL-CHECK. 132900IF WY-EXTRACT-AUTO = SPACE 133000MOVE"Y"TO WZ-PROGRAM-SELECTED. 133100 133200 133300 D31-EXIT. 133400EXIT. 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. 135600IF WC-PROG-ID-6 = "A" 135700GOTO D32-1-CHECK-FOR-ALL-SELECTED. 135800IF WC-PROG-ID-6 = "B" 135900GOTO D32-1-CHECK-FOR-ALL-SELECTED. 136000IF WC-PROG-ID-6 = "M" 136100GOTO D32-1-CHECK-FOR-ALL-SELECTED. 136200IF WC-PROG-ID-6 = "5" 136300GOTO D32-1-CHECK-FOR-ALL-SELECTED. 136400MOVESPACETO WC-PROG-ID-6. 136500 D32-1-CHECK-FOR-ALL-SELECTED. 136600IF WY-EXTRACT-ALL = "Y" 136700MOVE"Y"TO WZ-PROGRAM-SELECTED 136800MOVE WC-PROG-ID TO WZ-CURRENT-POP-PROG 136900GOTO D32-50-CHECK-IF-SELECTED. 137000 137100 D32-10-MANUAL-CHECK. 137200IF WY-EXTRACT-MAN = "Y" 137300IF WC-PROG-ID-6 = "M" 137400MOVE"Y"TO WZ-PROGRAM-SELECTED 137500MOVE WC-PROG-ID TO WZ-CURRENT-POP-PROG 137600GOTO D32-50-CHECK-IF-SELECTED. 137700 137800 D32-20-AUTO-CHECK. 137900IF WY-EXTRACT-AUTO = "Y" 138000IF WC-PROG-ID-6 = "A"OR"B" 138100MOVE"Y"TO WZ-PROGRAM-SELECTED 138200MOVE WC-PROG-ID TO WZ-CURRENT-POP-PROG 138300GOTO D32-50-CHECK-IF-SELECTED. 138400 138500 D32-30-MODULE-CHECK. 138600IF WY-SELECT-MODULE = "Y" 138700*THE FOLLOWING CHECK ASSUMES THAT THE FILES ON THE POPFILE 138800*ARE IN ORDER! 138900IF WG-MODULE-SELECTED-TABLE = SPACES 139000MOVE"Y"TO WZ-END-OF-POPFILE 139100ELSE 139200MOVE1TO SUB6 139300PERFORM D33-MODULE-CHECK 139400GOTO D32-50-CHECK-IF-SELECTED. 139500 139600MOVE1TO SUB7. 139700 D32-40-PROGRAM-CHECK. 139800IF WY-SELECT-PROG = "Y" 139900IF WF-PROGRAM-SELECTED-TABLE = SPACES 140000MOVE"Y"TO WZ-END-OF-POPFILE 140100ELSE 140200IF WC-PROG-ID-1-5 = WF-PROGRAM-SELECTED (SUB7) 140300MOVESPACETO WF-PROGRAM-SELECTED (SUB7) 140400MOVE"Y"TO WZ-PROGRAM-SELECTED 140500MOVE WC-PROG-ID TO WZ-CURRENT-POP-PROG 140600GOTO D32-50-CHECK-IF-SELECTED 140700ELSE 140800IF SUB7 < 50 140900ADD1TO SUB7 141000GOTO D32-40-PROGRAM-CHECK 141100ELSE 141200IF WC-SUBPRG = "SUBPRG"OR"SUBRTN" 141300MOVE1TO SUB7 141400PERFORM50 TIMES 141500IF WC-PROG2ID-1-5 = 141600 WF-PROGRAM-SELECTED (SUB7) 141700MOVESPACETO 141800 WF-PROGRAM-SELECTED (SUB7) 141900MOVE"Y"TO 142000 WZ-PROGRAM-SELECTED 142100MOVE WC-PROG2ID TO 142200 WZ-CURRENT-POP-PROG 142300GO D32-50-CHECK-IF-SELECTED 142400END-IF 142500ADD1TO SUB7 142600END-PERFORM. 142700 142800 D32-50-CHECK-IF-SELECTED. 142900IF WZ-PROGRAM-SELECTED = "Y" 143000PERFORM D34-PROGRAM-SELECTED. 143100 143200 D32-EXIT. 143300EXIT. 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. 144700IF WC-MODULE = WG-MODULE-SELECTED (SUB6) 144800GOTO D33-10-CHECK-MODULE-LEVEL. 144900IF WC-MODULE > WG-MODULE-SELECTED (SUB6) AND 145000*THE FOLLOWING CHECK MAKES SURE SOME FILES GET OFF 145100 WZ-SOURCE-PROGS NOT = 0 145200MOVESPACETO WG-MODULE-SELECTED (SUB6) 145300MOVESPACETO WG-MODULE-LEVEL (SUB6) 145400IF SUB6 < 10 145500ADD1TO SUB6 145600GOTO D33-1-MODULE-CHECK 145700ELSE 145800GOTO D33-EXIT 145900ELSE 146000GOTO D33-EXIT. 146100 146200 D33-10-CHECK-MODULE-LEVEL. 146300IF WG-MODULE-LEVEL (SUB6) = SPACE 146400MOVE WC-PROG-ID TO WZ-CURRENT-POP-PROG 146500MOVE"Y"TO WZ-PROGRAM-SELECTED 146600GOTO D33-EXIT. 146700 146800IF WG-MODULE-LEVEL (SUB6) = WC-LEVEL 146900MOVE WC-PROG-ID TO WZ-CURRENT-POP-PROG 147000MOVE"Y"TO WZ-PROGRAM-SELECTED. 147100 147200 D33-EXIT. 147300EXIT. 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. 148700IF WZ-PROGRAM-SELECTED = SPACE 148800GOTO D34-EXIT. 148900 149000IF WY-NO-SOURCE = SPACE 149100ADD1TO WZ-SOURCE-PROGS. 149200 149300IF WY-NEW-POP = "Y" 149400ADD1TO WZ-NEWPOP-PROGS. 149500 149600* MOVE SPACE TO WZ-CURRENT-MAIN-PROG. 149700MOVE WZ-CURRENT-POP-PROG TO WZ-CURRENT-MAIN-PROG. 149800 149900PERFORM D36-INITIALISE-PROGRAM-TOTALS. 150000 150100MOVE WC-HEADER TO PRINT-DATA. 150200IF WC-SUBPRG = "SUBPRG" 150300MOVE WZ-CURRENT-POP-PROG TO WZ-CURRENT-MAIN-PROG 150400* MOVE WC-PROG2ID TO WZ-CURRENT-UPD-PROG 150500MOVE WC-PROG2ID TO WZ-CURRENT-POP-PROG 150600END-IF. 150700IF WC-SUBPRG = "SUBRTN" 150800MOVE WZ-CURRENT-POP-PROG TO WZ-CURRENT-MAIN-PROG 150900* MOVE WC-PROG2ID TO WZ-CURRENT-UPD-PROG 151000MOVE WC-PROG2ID TO WZ-CURRENT-POP-PROG 151100END-IF. 151200 151300 D34-2-OPEN-OUTPUT. 151400IF WY-LIST-COMPACT = SPACE 151500MOVE51TO WZ-LINE-CT. 151600 151700PERFORM X20-PRINT-DETAIL. 151800 D34-EXIT. 151900EXIT. 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. 153200MOVEZEROTO WZ-LINES-COBOL. 153300MOVEZEROTO WZ-LINES-INSERTED. 153400MOVEZEROTO WZ-LINES-REPLACED. 153500MOVEZEROTO WZ-LINES-DELETED. 153600MOVEZEROTO WZ-CODE-REMOVED. 153700MOVEZEROTO WZ-COMMENTS-DEL. 153800MOVEZEROTO WZ-SEQ-NO. 153900 154000 D36-EXIT. 154100EXIT. 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. 155400MOVESPACETO WZ-UPDATE-THIS-PROG. 155500IF WZ-CURRENT-UPD-PROG > WZ-CURRENT-POP-PROG 155600GOTO D40-EXIT. 155700 155800IF WZ-CURRENT-UPD-PROG = WZ-CURRENT-POP-PROG 155900GOTO D40-20-PROGRAMS-EQUAL. 156000 156100* IF WZ-CURRENT-POP-PROG = WB-UPDATE-PROG 156200* GO TO D40-20-PROGRAMS-EQUAL. 156300 156400IF WZ-UPD-PROG-CHAR = "A" 156500GOTO D40-05-CHECK-LIBRARY. 156600 156700IF WZ-UPD-PROG-CHAR = "K" 156800GOTO D40-05-CHECK-LIBRARY 156900ELSEGOTO D40-10-GET-NEXT-STAR-START. 157000* 157100 D40-05-CHECK-LIBRARY. 157200IF WZ-CURRENT-POP-PROG < "SQ000" 157300GOTO D40-EXIT. 157400 157500 D40-10-GET-NEXT-STAR-START. 157600MOVESPACESTO WB-STAR-START. 157700PERFORM D42-READ-UPDATE-FILE 157800UNTIL WB-STAR-START = "*START". 157900 158000IF WZ-END-OF-UPDATES = "Y" 158100GOTO D40-EXIT. 158200PERFORM C60-START-CARD. 158300 158400GOTO D40-1-CHECK-UPDATE-AND-POP. 158500 158600 D40-20-PROGRAMS-EQUAL. 158700MOVE"Y"TO WZ-UPDATE-THIS-PROG. 158800IF WB-RENUMBER = "R" 158900MOVE"Y"TO WZ-RESEQUENCE-THIS 159000ELSE 159100MOVESPACETO WZ-RESEQUENCE-THIS. 159200READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA 159300ATENDMOVE"Y"TO WZ-END-OF-UPDATES. 159400 159500IF WB-11 = "*END-UPDATE" 159600MOVE"Y"TO WZ-END-OF-UPDATES. 159700 159800 D40-EXIT. 159900EXIT. 160000 160100/ 160200 D42-READ-UPDATE-FILE SECTION. 160300*============================ 160400 D42-1. 160500READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA 160600ATENDMOVE"Y"TO WZ-END-OF-UPDATES 160700MOVE"*START"TO WB-STAR-START 160800GOTO D42-EXIT. 160900 161000IF WB-11 = "*END-UPDATE" 161100MOVE"Y"TO WZ-END-OF-UPDATES 161200MOVE"*START"TO WB-STAR-START. 161300 161400 D42-EXIT. 161500EXIT. 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 163100IF WZ-UPDATE-THIS-PROG = "Y" 163200PERFORM D60-PROCESS-UPDATE-CARD. 163300 163400IF WZ-DELETE-FLAG = "Y" 163500GOTO D50-EXIT. 163600 163700IF WY-NO-SOURCE = SPACE 163800IF BLOCK-TYPE NOT = "DATA*" 163900PERFORM D80-RAW-LINE. 164000 164100 164200 D50-EXIT. 164300EXIT. 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. 165800IF WB-SEQ-1 = SPACES 165900PERFORM D67-LINE-UPDATE 166000GOTO D60-30-CHECK-END. 166100 166200 D60-10-CHECK-FOR-SERIES-UPDATE. 166300IF WB-SEQ-1 NOTNUMERIC 166400GOTO D60-30-CHECK-END. 166500 166600IF WB-SEQ-2 NUMERIC 166700PERFORM D62-SERIES-UPDATE 166800GOTO D60-30-CHECK-END 166900ELSE 167000PERFORM D67-LINE-UPDATE. 167100 167200 D60-30-CHECK-END. 167300IF WB-11 = "*END-UPDATE" 167400MOVE"Y"TO WZ-END-OF-UPDATES. 167500 167600 167700 D60-EXIT. 167800EXIT. 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. 169000IF WC-6 < WB-SEQ-1 169100IF WZ-WITHIN-DELETE-SERIES-FLAG = "Y" 169200* ALLOWS FOR OUT-OF-SEQUENCE LINE NUMBER WITHIN DELETE RANGE 169300GOTO D62-20-NOW-WITHIN-RANGE 169400END-IF 169500GOTO D62-EXIT. 169600 169700IF WC-6 NOT > WB-SEQ-2 169800GOTO D62-20-NOW-WITHIN-RANGE. 169900 170000 D62-10-READ-NEXT-UPDATE-CARD. 170100MOVESPACESTO WZ-WITHIN-DELETE-SERIES-FLAG. 170200READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA 170300ATENDMOVE"Y"TO WZ-END-OF-UPDATES 170400GOTO D62-EXIT. 170500 170600IF WB-STAR-START = "*START" 170700PERFORM C60-START-CARD 170800GOTO D62-EXIT. 170900 171000IF WB-11 = "*END-UPDATE" 171100MOVE"Y"TO WZ-END-OF-UPDATES 171200GOTO D62-EXIT. 171300 171400IF WB-SEQ-2 NUMERIC 171500GOTO D62-1-CHECK-FOR-WITHIN-RANGE. 171600PERFORM D67-LINE-UPDATE. 171700GOTO D62-EXIT. 171800 171900 D62-20-NOW-WITHIN-RANGE. 172000MOVE"Y"TO WZ-LINE-UPDATE. 172100IF WB-COL-7 = "," 172200MOVE"Y"TO WZ-WITHIN-DELETE-SERIES-FLAG 172300ADD1TO WZ-LINES-DELETED 172400MOVE"Y"TO WZ-DELETE-FLAG 172500MOVESPACESTO WE-X-CARD 172600MOVE"DELETIONS"TO WE-CHANGE-TYPE 172700IF WB-SEQ-1 = WB-SEQ-2 172800MOVESPACETO WZ-WITHIN-DELETE-SERIES-FLAG 172900END-IF 173000GOTO D62-EXIT. 173100 173200MOVE"Y"TO WZ-REPLACE-FLAG. 173300MOVE WB-COL-7 TO WC-COL-7. 173400 173500 D62-EXIT. 173600EXIT. 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. 175200IF WC-6 < WB-SEQ-1 175300GOTO D67-EXIT. 175400 175500 D67-10-LINES-EQUAL-OR-LESS. 175600MOVE"Y"TO WZ-LINE-UPDATE. 175700IF WB-COL-7 = "," 175800ADD1TO WZ-LINES-DELETED 175900MOVE"Y"TO WZ-DELETE-FLAG 176000MOVESPACESTO WE-X-CARD 176100MOVE"DELETION"TO WE-CHANGE-TYPE 176200GOTO D67-20-READ-CONTROL. 176300 176400IF WC-6 = WB-SEQ-1 176500PERFORM D68-LINE-EQUAL 176600GOTO D67-EXIT. 176700 176800IF WB-SEQ-1 = SPACES 176900PERFORM D69-LINE-BLANK-OR-LESS 177000GOTO D67-EXIT. 177100 177200IF WC-6 > WB-SEQ-1 177300PERFORM D69-LINE-BLANK-OR-LESS 177400GOTO D67-EXIT. 177500 177600 D67-20-READ-CONTROL. 177700READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA 177800ATENDMOVE"Y"TO WZ-END-OF-UPDATES. 177900IF WB-STAR-START = "*START" 178000PERFORM C60-START-CARD. 178100 178200IF WB-11 = "*END-UPDATE" 178300MOVE"Y"TO WZ-END-OF-UPDATES. 178400 178500 D67-EXIT. 178600EXIT. 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. 179800MOVE WB-CONTROL-DATA TO WC-CURRENT-POP-RECORD. 179900ADD1TO WZ-LINES-REPLACED. 180000MOVE"Y"TO WZ-REPLACE-FLAG. 180100 180200READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA 180300ATENDMOVE"Y"TO WZ-END-OF-UPDATES. 180400 180500IF WB-STAR-START = "*START" 180600PERFORM C60-START-CARD. 180700 180800IF WB-11 = "*END-UPDATE" 180900MOVE"Y"TO WZ-END-OF-UPDATES. 181000 181100 D68-EXIT. 181200EXIT. 181300 181400 181500 181600 181700 D69-LINE-BLANK-OR-LESS SECTION. 181800*============================== 181900 D69-1. 182000MOVE WB-CONTROL-DATA TO WC-CURRENT-POP-RECORD. 182100ADD1TO WZ-LINES-INSERTED. 182200MOVE"Y"TO WZ-DONT-READ-POPFILE. 182300MOVE"INSERTIONS"TO WE-CHANGE-TYPE. 182400MOVESPACESTO WE-X-CARD. 182500READ CONTROL-CARD-FILE INTO WB-CONTROL-DATA 182600ATENDMOVE"Y"TO WZ-END-OF-UPDATES. 182700 182800IF WB-STAR-START = "*START" 182900PERFORM C60-START-CARD. 183000 183100IF WB-11 = "*END-UPDATE" 183200MOVE"Y"TO WZ-END-OF-UPDATES. 183300 183400 D69-EXIT. 183500EXIT. 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. 185200IF WC-COL-7 = "D"GOTO D80-30-PRINT-LINE. 185300IF WC-COL-7 NOT = "*" 185400GOTO D80-20-ALPHABETIC-CHECK. 185500 185600IF WY-REMOVE-COMMENTS = "Y" 185700ADD1TO WZ-COMMENTS-DELETED 185800MOVE"Y"TO WZ-NOT-THIS-COMMENT 185900GOTO D80-EXIT. 186000 186100 D80-20-ALPHABETIC-CHECK. 186200IF WC-COL-7 NOTALPHABETIC 186300GOTO D80-30-PRINT-LINE. 186400 186500IF WC-COL-7 NOT = SPACE 186600PERFORM D82-OPTIONAL-LETTER. 186700 186800 D80-30-PRINT-LINE. 186900IF WZ-DELETE-FLAG = SPACE 187000PERFORM D85-X-CARD-CHECK. 187100 187200 D80-EXIT. 187300EXIT. 187400 187500/ 187600 D82-OPTIONAL-LETTER SECTION. 187700*=========================== 187800* 187900 D82-1-SELECT-OPTIONAL. 188000PERFORM D83-CHECK-OPTION-SWITCHES 188100VARYING SUB4 FROM1BY1 188200UNTIL SUB4 > 26. 188300 188400IF WZ-OPTIONAL-SELECTED = "Y" 188500MOVESPACETO WC-COL-7 188600GOTO D82-EXIT. 188700 188800 D82-10-SAVE-OPTIONAL. 188900ADD1TO WZ-CODE-REMOVED. 189000IF WY-KILL-DELETIONS = "Y" 189100MOVE"Y"TO WZ-DELETE-FLAG 189200ELSE 189300MOVE WC-COL-7 TO WC-COL-8 189400MOVE"*"TO WC-COL-7. 189500 189600 D82-EXIT. 189700EXIT. 189800 189900 190000 190100 190200 190300 D83-CHECK-OPTION-SWITCHES SECTION. 190400*================================= 190500* 190600 D83-1-CHECK-SWITCH. 190700IF WY-OPT-SW (SUB4) = WC-COL-7 190800MOVE99TO SUB4 190900MOVE"Y"TO WZ-OPTIONAL-SELECTED. 191000 191100 D83-EXIT. 191200EXIT. 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. 192900IF WC-12-15 NOT = "XXXX" 193000GOTO D85-EXIT. 193100IF WC-17-19 NOTNUMERIC 193200* XXXXX ENTRY IN POPULATION FILE IN ERROR. 193300GOTO D85-EXIT. 193400 193500 D85-10-SUBSTITUTION-REQUIRED. 193600MOVE WC-17-19 TO SUB1. 193700MOVE WX-X-CARD (SUB1) TO WZ-X-CARD. 193800IF WX-PROG-POS (SUB1) NOT = ZERO 193900PERFORM D88-PROGRAM-NAME 194000GOTO D85-EXIT. 194100 194200 D85-20-TEXT-SUBSTITUTION. 194300IF WC-20 = SPACE 194400PERFORM D86-REMOVE-FULL-STOP 194500VARYING SUB4 FROM60BY -1 194600UNTIL SUB4 < 1 194700MOVE WZ-X-CARD TO WC-SUB-DATA 194800GOTO D85-EXIT. 194900 195000IF WC-20 = "." 195100PERFORM D87-INSERT-FULL-STOP 195200VARYING SUB4 FROM60BY -1 195300UNTIL SUB4 < 1 195400MOVE WZ-X-CARD TO WC-SUB-DATA. 195500 D85-EXIT. 195600EXIT. 195700 195800/ 195900 D86-REMOVE-FULL-STOP SECTION. 196000*============================ 196100* 196200 D86-1. 196300IF WZ-X-CHAR (SUB4) = SPACE 196400GOTO D86-EXIT. 196500 196600IF WZ-X-CHAR (SUB4) = "." 196700MOVESPACETO WZ-X-CHAR (SUB4) 196800MOVEZEROTO SUB4 196900ELSE 197000MOVEZEROTO SUB4. 197100 197200 D86-EXIT. 197300EXIT. 197400 197500 197600 197700 197800 197900 D87-INSERT-FULL-STOP SECTION. 198000*============================ 198100* 198200 D87-1. 198300IF WZ-X-CHAR (SUB4) = SPACE 198400GOTO D87-EXIT. 198500 198600IF WZ-X-CHAR (SUB4) = "." 198700MOVEZEROTO SUB4 198800ELSE 198900ADD1TO SUB4 199000MOVE"."TO WZ-X-CHAR (SUB4) 199100MOVEZEROTO SUB4. 199200 199300 D87-EXIT. 199400EXIT. 199500/ 199600 D88-PROGRAM-NAME SECTION. 199700*======================== 199800* 199900 D88-1. 200000MOVE WX-PROG-POS (SUB1) TO SUB2. 200100MOVESPACETO WZ-MAIN-PROG-FLAG. 200200MOVESPACETO WZ-FULL-STOP. 200300IF WC-20 = "." 200400MOVE"Y"TO WZ-FULL-STOP. 200500 200600IF WX-X-CHAR (SUB1 SUB2) = "J" 200700MOVE WZ-CURRENT-MAIN-PROG TO WZ-PROG-BREAK 200800MOVE"Y"TO WZ-MAIN-PROG-FLAG 200900ELSE 201000MOVE WZ-CURRENT-POP-PROG TO WZ-PROG-BREAK. 201100 201200IF WZ-CURRENT-MAIN-PROG = SPACE 201300MOVESPACETO WZ-MAIN-PROG-FLAG. 201400 201500MOVE1TO SUB4. 201600PERFORM D89-MOVE-PROGRAM-NAME 6 TIMES. 201700 201800IF WZ-FULL-STOP = "Y" 201900PERFORM D87-INSERT-FULL-STOP 202000VARYING SUB4 FROM60BY -1 202100UNTIL SUB4 < 1 202200ELSE 202300PERFORM D86-REMOVE-FULL-STOP 202400VARYING SUB4 FROM60BY -1 202500UNTIL SUB4 < 1. 202600 202700MOVE WZ-X-CARD TO WC-SUB-DATA. 202800 202900 D88-EXIT. 203000EXIT. 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 204600MOVE WZ-1CHAR(SUB4) TO WZ-X-CHAR(SUB2). 204700 204800IF SUB4 = 6AND WZ-X-CHAR(SUB2) = SPACE 204900ADD1 SUB2 GIVING SUB4 205000PERFORM D89-2-CLOSE-SPACE UNTIL WZ-X-CHAR(SUB4) = 205100SPACE 205200MOVESPACETO WZ-X-CHAR(SUB2). 205300 205400ADD1TO SUB2. 205500ADD1TO SUB4. 205600 205700 D89-EXIT. 205800EXIT. 205900 206000 D89-2-CLOSE-SPACE SECTION. 206100 D89-2-1. 206200 206300MOVE WZ-X-CHAR(SUB4) TO WZ-X-CHAR(SUB2). 206400ADD1TO 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. 207800IF WY-KILL-DELETIONS = "Y" 207900MOVE"DELETED"TO WA-OPTIONAL-CODE 208000ELSE 208100MOVE"UNUSED "TO WA-OPTIONAL-CODE. 208200 208300MOVE WZ-CURRENT-POP-PROG TO WA-CURRENT-PROG 208400MOVE WZ-LINES-COBOL TO WA-LINES-COBOL 208500MOVE WZ-LINES-INSERTED TO WA-LINES-INSERTED 208600MOVE WZ-LINES-REPLACED TO WA-LINES-REPLACED 208700MOVE WZ-LINES-DELETED TO WA-LINES-DELETED 208800MOVE WZ-CODE-REMOVED TO WA-CODE-REMOVED 208900MOVE WZ-COMMENTS-DELETED TO WA-COMMENTS-DEL 209000MOVE WA-ACCT-LINE-1 TO PRINT-DATA 209100PERFORM X20-PRINT-DETAIL 209200MOVE WA-ACCT-LINE-2 TO PRINT-DATA 209300PERFORM X20-PRINT-DETAIL 209400MOVE WA-ACCT-LINE-3 TO PRINT-DATA 209500PERFORM X20-PRINT-DETAIL 209600 209700MOVESPACESTO WZ-CURRENT-POP-PROG. 209800* CLOSE SOURCE-COBOL-PROGRAMS. 209900 210000 D90-EXIT. 210100EXIT. 210200 210300 210400 D100-PROCESS-DATA. 210500EXIT. 210600 210700/ 210800 E10-TERMINATE SECTION. 210900*===================== 211000* 211100**************************************************************** 211200* THIS SECTION CLOSES ANY OPEN FILES * 211300* * 211400* * 211500**************************************************************** 211600 E10-1. 211700CLOSE PRINT-FILE. 211800 211900CLOSE CONTROL-CARD-FILE. 212000 212100IF WY-NEW-POP = "Y" 212200CLOSE UPDATED-POPULATION-FILE. 212300 212400***************************************************************** 212500IF WY-NO-SOURCE = SPACE 212600CLOSE SOURCE-COBOL-PROGRAMS. 212700 212800CLOSE POPULATION-FILE. 212900STOPRUN. 213000 E20-EXIT. 213100EXIT. 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 214200IF WZ-CURRENT-POP-PROG = "NC114M" 214300GOTO X10-30-WRITE-FILE. 214400 214500 X10-20-RENUMBER-CHECK. 214600IF WC-STAR = "*" 214700GOTO X10-30-WRITE-FILE. 214800IF WZ-RESEQUENCE-THIS = "Y" 214900ADD100TO WZ-SEQ-NO 215000MOVE WZ-SEQ-NO TO WC-6. 215100 215200 X10-30-WRITE-FILE. 215300MOVE WC-CURRENT-POP-RECORD TO UD-SOURCE-OUT (SUB5). 215400ADD1TO SUB5. 215500IF SUB5 GREATER30 215600WRITE UPDATED-SOURCE-OUT-2400 215700MOVE1TO SUB5 215800MOVESPACETO UPDATED-SOURCE-OUT-2400. 215900 216000 216100 X10-EXIT. 216200EXIT. 216300 216400 216500/ 216600 X20-PRINT-DETAIL SECTION. 216700*======================== 216800* 216900 X20-1. 217000 217100IF WZ-LINE-CT > 50 217200MOVE PRINT-REC TO WZ-PRINT-HOLD 217300ADD1TO WZ-PAGE-CT 217400MOVE WZ-PAGE-CT TO WA-PAGE-CT 217500MOVE WA-TOP-OF-PAGE-LINE 217600TO PRINT-REC 217700WRITE PRINT-REC AFTERPAGE 217800MOVESPACETO PRINT-REC 217900WRITE PRINT-REC 218000MOVE WZ-PRINT-HOLD TO PRINT-REC 218100MOVEZEROTO WZ-LINE-CT. 218200ADD1TO WZ-LINE-CT. 218300 218400 X20-2. 218500WRITE PRINT-REC AFTER1. 218600MOVESPACETO PRINT-REC. 218700 218800 X20-EXIT. 218900EXIT. 219000/ 219100 X30-READ-POPFILE SECTION. 219200*======================== 219300 X30-1. 219400IF WZ-DONT-READ-POPFILE = "Y" 219500MOVESPACETO WZ-DONT-READ-POPFILE 219600GOTO X30-EXIT. 219700 219800* IF SUB1 GREATER THAN 30 219900READ POPULATION-FILE INTO WC-CURRENT-POP-RECORD 220000ATENDMOVE"Y"TO WZ-END-OF-POPFILE 220100MOVE"*HEADER"TO WC-STAR-HEADER 220200GOTO X30-EXIT. 220300MOVE WC-CURRENT-POP-RECORD TO WZ-SAVE-POP-RECORD. 220400 220500IF WC-STAR = "*" 220600IF WZ-CURRENT-HEADER = "COBOL" 220700IF WC-1-5 = "ABCDE" 220800ADD1TO WZ-LINES-COBOL 220900ELSE 221000IF WC-1-5 = "*/+(>" 221100ADD1TO WZ-LINES-COBOL 221200ELSE 221300IF WC-1-5 = "999-9" 221400ADD1TO WZ-LINES-COBOL 221500ELSE 221600IF WC-1-5 = "Z=.,;" 221700ADD1TO WZ-LINES-COBOL 221800ELSE 221900IF WC-1-5 = ")14$ " 222000ADD1TO WZ-LINES-COBOL 222100ELSE 222200IF WC-1-5 = " 23 " 222300ADD1TO WZ-LINES-COBOL 222400ELSE 222500NEXTSENTENCE 222600ELSE 222700NEXTSENTENCE 222800ELSE 222900IF WZ-CURRENT-HEADER = "COBOL" 223000ADD1TO WZ-LINES-COBOL. 223100 223200* MOVE SOURCE-IN (SUB1) TO WC-CURRENT-POP-RECORD. 223300* ADD 1 TO SUB1. 223400 223500 223600 X30-EXIT. 223700EXIT. 223800 223900 224000 224100 224200 224300 X40-WRITE-SOURCE-FILE SECTION. 224400*= =========================== 224500 X40-1. 224600MOVESPACESTO WD-1. 224700* IF BLOCK-TYPE NOT = "DATA*" 224800* MOVE SPACES TO WC-73-80. 224900IF WC-STAR = "*" 225000IF WC-1-5 = "*/+(>" 225100WRITE CT-OUT FROM WC-CURRENT-POP-RECORD 225200ELSE 225300MOVE WC-CURRENT-POP-RECORD TO WD-HEADER 225400WRITE CT-OUT FROM WD-SOURCE-REC 225500ELSE 225600WRITE CT-OUT FROM WC-CURRENT-POP-RECORD. 225700 225800 X40-EXIT. 225900EXIT. 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.87Bemerkung:
(vorverarbeitet am 2026-06-08)
¤
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.