*DECK     DCPLC315
00001  IDENTIFICATION DIVISION.                                         11/08/78
       PROGRAM-ID. PLC315.
00003  ENVIRONMENT DIVISION.                                               LV002
00004  CONFIGURATION SECTION.                                              CL**2
       SOURCE-COMPUTER. CYBER.
       OBJECT-COMPUTER. CYBER.
00007  DATA DIVISION.                                                      CL**2
*CALL GENCS 
*CALL     WRKSTG77
*CALL     MAST1WS 
*CALL     TESTWACOM 
*CALL     DCDWA20 
*CALL DCDWA13 
*CALL     DCDWA10 
*CALL     DCDWA05 
*CALL     ENTSAVE 
*CALL     GEN20PLC
*CALL     CBL15DAT
*CALL     GEN15DAT
*CALL     CBL10DAT
*CALL     GEN10DAT
*CALL     CBL05DAT
*CALL     GEN05DAT
           03  FOUND-STC               PICTURE X. 
*CALL     PL1DEF
00031  PROCEDURE DIVISION.                                                 CL**2
00035 *************************************************                    CL**2
00036 *************************************************                    CL**2
00037 *                                                                    CL**2
00038 *    CHECK CALLING MODULES RETURNS FROM I/O REQUESTS                 CL**2
00039 *                                                                    CL**2
00040 *************************************************                    CL**2
00041 *************************************************                    CL**2
00042  0000-BEGIN.                                                         CL**2
00043      IF GTBL-MOD-REQ EQUAL "1"                                       CL**2
00044          GO TO DATA-READ-RETURN.                                     CL**2
00045      IF GTBL-MOD-REQ EQUAL "4"                                       CL**2
00046          GO TO PLC-OUT-RETURN.                                       CL**2
00047 *****************************************************                CL**2
00048 *****************************************************                CL**2
00049 *                                                                    CL**2
00050 *      INITIALIZATION                                                CL**2
00051 *                                                                    CL**2
00052 ****************************************************                 CL**2
00053 ****************************************************                 CL**2
00054      MOVE ZERO TO FILLER-NUMBER.                                     CL**2
00055      MOVE 0 TO GROUP-SUB.                                            CL**2
00056      MOVE 0 TO GTBL-COUNT.                                           CL**2
00057      MOVE SPACES TO DATA-ARG-LIST.                                   CL**2
00058      MOVE SPACES TO DATA-LAST-ENTRY-NAME.                            CL**2
00059      MOVE "N" TO MSG-SWITCH, DES-NOTES-SWITCH, LINE-SW.              CL**2
00061      PERFORM LEVEL-INIT THRU LEVEL-INIT-XIT.                         CL**2
00062      IF GTBL-SEL-TYPE EQUAL "15" OR "13"                             CL**2
00063          MOVE GTBL-SEL-CNAME TO DATA-ENTRY-NAME                      CL**2
00064          GO TO 0075-PLC15.                                           CL**2
00065      IF GTBL-SEL-TYPE EQUAL "20" OR "19"                             CL**2
00066          GO TO 0010-PLC15.                                           CL**2
00067 ******************************************************************   CL**2
00068 *     PL1 RECORD GENERATION FROM DATABASE                            CL**2
00069 ****************************************************************     CL**2
00070      MOVE GTBL-SEL-CNAME TO DATA-ENTRY-NAME.                         CL**2
00071      MOVE STC-CAT-NO TO DATA-ENTRY-CAT.                              CL**2
00072      PERFORM READ-CATEGORY THRU READ-CATEGORY-XIT.                   CL**2
00073  0001-PLC15.                                                         CL**2
00074      PERFORM TEST-RETURN-CODE THRU TEST-RETURN-CODE-XIT.             CL**2
00075      IF DATA-RETURN-CODE NOT EQUAL 0                                 CL**2
00076          PERFORM 9010-NO-STC-MSSG THRU 9010-NO-STC-MSSG-XIT          CL**2
00077          GO TO 8000-PLC15-END.                                       CL**2
00078  0002-PLC15.                                                         CL**2
00079      MOVE DATA-SEARCH TO GEN32-SAVE-SEARCH.                          CL**2
00080      MOVE CAT-LINE TO GEN32-DATA-ENTRY-LINE.                         CL**2
00081      MOVE STC-SR-CNAME TO DATA-ENTRY-NAME.                           CL**2
00082      GO TO 0012-PLC15.                                               CL**2
00083  0003-PLC15.                                                         CL**2
00084      MOVE GEN32-SAVE-SEARCH TO DATA-SEARCH.                          CL**2
00085      PERFORM RETURN-KEY THRU RETURN-KEY-XIT.                         CL**2
00086  0005-PLC15.                                                         CL**2
00087      PERFORM READ-NEXT-DATA THRU READ-NEXT-DATA-XIT.                 CL**2
00088      PERFORM TEST-RETURN-CODE THRU TEST-RETURN-CODE-XIT.             CL**2
00089      IF DATA-RETURN-CODE NOT EQUAL 0                                 CL**2
00090          GO TO 8000-PLC15-END.                                       CL**2
00091      GO TO 0002-PLC15.                                               CL**2
00092  0012-PLC15.                                                         CL**2
00093 ****************************************************************     CL**2
00094 *     GENERATE AT FILE LEVEL     TYPE 20   19                        CL**2
00095 ****************************************************************     CL**2
00096  0010-PLC15.                                                         CL**2
00097      MOVE "N" TO COMMA-SW.                                           CL**2
00098      MOVE GTBL-SEL-CNAME TO DATA-ENTRY-NAME.                         CL**2
00099      MOVE SPACES TO PLC-CARD-IMAGE.                                  CL**2
00100      MOVE NAME-CAT-NO TO DATA-ENTRY-CAT.                             CL**2
00101      PERFORM READ-CATEGORY THRU READ-CATEGORY-XIT.                   CL**2
00102      PERFORM TEST-RETURN-CODE THRU TEST-RETURN-CODE-XIT.             CL**2
00103      IF DATA-RETURN-CODE NOT EQUAL 0                                 CL**2
00104          MOVE DATA-ENTRY-NAME TO WS-DATA-NAME                        CL**2
00105          GO TO 0012-DECLARE-FILE.                                    CL**2
00106      IF NAME-FILE-FD EQUAL SPACE                                     CL**2
00107          MOVE DATA-ENTRY-NAME TO WS-DATA-NAME                        CL**2
00108      ELSE                                                            CL**2
00109          MOVE NAME-FILE-FD TO WS-DATA-NAME.                          CL**2
00110  0012-DECLARE-FILE.                                                  CL**2
00111      MOVE SPACES TO PLC-CARD-IMAGE.                                  CL**2
00112      MOVE "DECLARE " TO DECLARE-KW.                                  CL**2
00113      PERFORM INSERT-PREFIX THRU INSERT-PREFIX-XIT.                   CL**2
00114      MOVE WORK-DATA-NAME TO PLC-FILENAME.                            CL**2
00115      MOVE " FILE" TO FILEKW.                                         CL**2
00116      MOVE " RECORD" TO RECORDKW.                                     CL**2
00117      MOVE PLC-CARD-IMAGE TO SCAN-AREA.                               CL**2
00118      PERFORM FLOAT-SEMI THRU FLOAT-SEMI-XIT.                         CL**2
00119      PERFORM CLEAR-SPACES THRU CLEAR-SPACES-XIT.                     CL**2
00120      PERFORM REMOVE-HYPHEN THRU REMOVE-HYPHEN-XIT.                   CL**2
00121      MOVE SCAN-AREA TO HOLD-CARD-IMAGE.                              CL**2
00122      PERFORM PLC-OUT THRU PLC-OUT-XIT.                               CL**2
00123 *                                                                    CL**2
00124 *    FIND STRUCTURE OF FILE                                          CL**2
00125 *                                                                    CL**2
00126      MOVE STC-CAT-NO TO DATA-ENTRY-CAT.                              CL**2
00127      PERFORM READ-CATEGORY THRU READ-CATEGORY-XIT.                   CL**2
00128  0013-PLC15.                                                         CL**2
00129      PERFORM TEST-RETURN-CODE THRU TEST-RETURN-CODE-XIT.             CL**2
00130      IF DATA-RETURN-CODE EQUAL TO 0                                  CL**2
00131          GO TO 0019-PLC15.                                           CL**2
00132      PERFORM 9010-NO-STC-MSSG THRU 9010-NO-STC-MSSG-XIT.             CL**2
00133      GO TO 0030-PLC15.                                               CL**2
00134  0017-PLC15.                                                         CL**2
00135      PERFORM READ-NEXT-DATA THRU READ-NEXT-DATA-XIT.                 CL**2
00136      GO TO 0013-PLC15.                                               CL**2
00137 *                                                                    CL**2
00138 *    CHECK FOR TYPE 15                                               CL**2
00139 *                                                                    CL**2
00140  0019-PLC15.                                                         CL**2
00141      MOVE DATA-SEARCH TO GEN20-SAVE-SEARCH.                          CL**2
00142      MOVE CAT-LINE TO SAVE-DATA-ENTRY-LINE.                          CL**2
           MOVE MINUS-ASTER TO SAVE-STC.
00144      MOVE STC-SR-CNAME TO DATA-ENTRY-NAME.                           CL**2
00145      PERFORM READ-FIRST-DATA THRU READ-FIRST-DATA-XIT.               CL**2
00146      IF DATA-HDR-ENT-ID EQUAL "15" OR "13"                           CL**2
00147          GO TO 0075-PLC15.                                           CL**2
00148      PERFORM 9040-BAD-DATA-MSSG THRU 9040-BAD-DATA-MSSG-XIT.         CL**2
00149      MOVE GEN20-SAVE-SEARCH TO DATA-SEARCH.                          CL**2
00150      PERFORM RETURN-KEY THRU RETURN-KEY-XIT.                         CL**2
00151      GO TO 0017-PLC15.                                               CL**2
00152 *                                                                    CL**2
00153 *    CHECK FOR TYPE 20                                               CL**2
00154 *                                                                    CL**2
00155  0020-PLC15.                                                         CL**2
00156      IF GTBL-SEL-TYPE EQUAL "20" OR "19" OR "32"                     CL**2
00157          NEXT SENTENCE                                               CL**2
00158      ELSE                                                            CL**2
00159          GO TO 8000-PLC15-END.                                       CL**2
00160      MOVE GEN20-SAVE-SEARCH TO DATA-SEARCH.                          CL**2
00161      PERFORM RETURN-KEY THRU RETURN-KEY-XIT.                         CL**2
00162  0025-PLC15.                                                         CL**2
00163      PERFORM READ-NEXT-DATA THRU READ-NEXT-DATA-XIT.                 CL**2
00164      PERFORM TEST-RETURN-CODE THRU TEST-RETURN-CODE-XIT.             CL**2
00165      IF DATA-RETURN-CODE EQUAL TO 0                                  CL**2
00166          GO TO 0019-PLC15.                                           CL**2
00167  0030-PLC15.                                                         CL**2
00168      IF GTBL-SEL-TYPE NOT EQUAL 32                                   CL**2
00169          GO TO 8000-PLC15-END.                                       CL**2
00170      GO TO 0003-PLC15.                                               CL**2
00172 ***************************************************************      CL**2
00173 *                                                                    CL**2
00174 *    PROCESS RECORD ENTRY                                            CL**2
00175 *                                                                    CL**2
00176 ***************************************************************      CL**2
00177  0075-PLC15.                                                         CL**2
00178 ***************************************************************      CL**2
00179 *     GET RECORD NAME                                                CL**2
00180 ***************************************************************      CL**2
00181      PERFORM CHECK-DESCRIPTION THRU CHECK-DESCRIPTION-XIT.           CL**2
00182      MOVE NAME-CAT-NO TO DATA-ENTRY-CAT.                             CL**2
00183      PERFORM READ-CATEGORY THRU READ-CATEGORY-XIT.                   CL**2
00184      PERFORM TEST-RETURN-CODE THRU TEST-RETURN-CODE-XIT.             CL**2
00185      IF DATA-RETURN-CODE NOT EQUAL 0                                 CL**2
00186          MOVE DATA-ENTRY-NAME TO WS-DATA-NAME                        CL**2
00187          GO TO 0080-PLC15.                                           CL**2
00188      IF NAME-SR-IDENTIFIER EQUAL TO SPACES                           CL**2
00189          MOVE DATA-ENTRY-NAME TO WS-DATA-NAME                        CL**2
00190      ELSE                                                            CL**2
00191          MOVE NAME-SR-IDENTIFIER TO WS-DATA-NAME.                    CL**2
00192  0080-PLC15.                                                         CL**2
00193      PERFORM INSERT-PREFIX THRU INSERT-PREFIX-XIT.                   CL**2
00194      MOVE SPACES TO LEVEL-CARD-IMAGE.                                CL**2
00195      MOVE "DECLARE " TO DECLAREKW.                                   CL**2
00196      MOVE WORK-DATA-NAME TO PLC-NAME1.                               CL**2
00197      MOVE LEVEL-1 TO PLC-01.                                         CL**2
00198      MOVE "Y" TO COMMA-SW.                                           CL**2
00199      PERFORM PERFORM-STATE THRU PERFORM-STATE-XIT.                   CL**2
00200 ***************************************************************      CL**2
00201 *    GET FIRST STRUCTURE LINE                                        CL**2
00202 ***********************************************************          CL**2
00203      MOVE STC-CAT-NO TO DATA-ENTRY-CAT.                              CL**2
00204      PERFORM READ-CATEGORY THRU READ-CATEGORY-XIT.                   CL**2
           PERFORM TEST-RETURN-CODE THRU TEST-RETURN-CODE-XIT.
           MOVE "N" TO FOUND-STC. 
  
       0100-PLC15.
      * LOOK FOR INCLUDED STRUCTURE LINE OF STANDARD TYPE.
           PERFORM UNTIL DATA-RETURN-CODE NOT = ZERO
             IF (CAT-LINE-TYPE = "A" OR SPACE)
               AND STC-DBD-INC NOT = "N"
             THEN 
               MOVE DATA-SEARCH TO GEN15-SAVE-SEARCH
               MOVE CAT-LINE TO GEN15-DATA-ENTRY-LINE 
               MOVE "Y" TO FOUND-STC
               MOVE SPACES TO SAVE-ELE-STC-CAT
               MOVE MINUS-ASTER TO SAVE-ELE-STC-A 
  
      * CHECK ALL NON-STANDARD STRUCTURE LINES BELONGING TO STANDARD ONE
               PERFORM READ-NEXT-DATA THRU READ-NEXT-DATA-XIT 
               PERFORM TEST-RETURN-CODE THRU TEST-RETURN-CODE-XIT 
               PERFORM UNTIL DATA-RETURN-CODE NOT = ZERO
                 OR (CAT-LINE-TYPE = "A" OR SPACE)
  
                 MOVE CAT-LINE TO GEN15-DATA-ENTRY-LINE 
                 IF CAT-LINE-TYPE = "O" 
                 THEN 
                   MOVE MINUS-ASTER TO SAVE-ELE-STC-O 
                 END-IF 
                 IF CAT-LINE-TYPE = "I" 
                 THEN 
                   MOVE MINUS-ASTER TO SAVE-ELE-STC-INDEX 
                 END-IF 
  
                 PERFORM READ-NEXT-DATA THRU READ-NEXT-DATA-XIT 
                 PERFORM TEST-RETURN-CODE THRU TEST-RETURN-CODE-XIT 
               END-PERFORM
  
               GO TO 0200-PLC15 
             END-IF 
  
      * IF NOT AN INCLUDED STANDARD LINE, READ NEXT LINE INTO "CAT-WORK"
             PERFORM READ-NEXT-DATA THRU READ-NEXT-DATA-XIT 
             PERFORM TEST-RETURN-CODE THRU TEST-RETURN-CODE-XIT 
           END-PERFORM
  
      * ERROR IF NO INCLUDED STRUCTURE LINE FOUND.
           IF FOUND-STC = "N" 
           THEN 
             PERFORM 9010-NO-STC-MSSG THRU 9010-NO-STC-MSSG-XIT 
           END-IF 
  
           GO TO 0020-PLC15.
  
       0200-PLC15.
           IF SAVE-ELE-STC-CNAME = FILLERKW 
           THEN 
             PERFORM PROC-FILLER THRU PROC-FILLER-XIT 
             GO TO 0500-PLC15 
           END-IF 
  
           MOVE SAVE-ELE-STC-CNAME TO DATA-ENTRY-NAME.
00227      PERFORM READ-FIRST-DATA THRU READ-FIRST-DATA-XIT.               CL**2
00228      IF DATA-RETURN-CODE NOT EQUAL ZERO                              CL**2
00229          PERFORM 9030-NO-DATA-MSSG THRU 9030-NO-DATA-MSSG-XIT        CL**2
00230          GO TO 0500-PLC15.                                           CL**2
00231      IF DATA-HDR-ENT-ID EQUAL TO "09" OR "10"                        CL**2
               MOVE SAVE-ELE-STC-CAT TO SAVE-GRP-STC-CAT
               MOVE SPACES TO SAVE-ELE-STC-CAT
00233          GO TO 5000-PLC15.                                           CL**2
00234      IF DATA-HDR-ENT-ID EQUAL "05"                                   CL**2
00236          MOVE SPACES TO SAVE-GRP-ATTR-CAT                            CL**2
00237          MOVE ZERO TO GROUP-SUB                                      CL**2
00238          GO TO 1000-PLC15.                                           CL**2
00239      PERFORM 9020-BAD-ENTITY THRU 9020-BAD-ENTITY-XIT.               CL**2
00240  0500-PLC15.                                                         CL**2
00241      MOVE GEN15-SAVE-SEARCH TO DATA-SEARCH.                          CL**2
00242      PERFORM RETURN-KEY THRU RETURN-KEY-XIT.                         CL**2
           PERFORM READ-NEXT-DATA THRU READ-NEXT-DATA-XIT.
           PERFORM TEST-RETURN-CODE THRU TEST-RETURN-CODE-XIT.
  
           IF SCAN-AREA NOT = SPACES
           THEN 
             IF DATA-RETURN-CODE NOT = ZERO 
             THEN 
               MOVE "N" TO COMMA-SW 
             END-IF 
             PERFORM FLOAT-SEMI THRU FLOAT-SEMI-XIT 
             PERFORM PERFORM-STATE4 THRU PERFORM-STATE-XIT
           END-IF 
  
           GO TO 0100-PLC15.
  
00269 *****************************************************************    CL**2
00270 *****************************************************************    CL**2
00271 *                                                                *   CL**2
00272 *     PROCESS ELEMENT                                            *   CL**2
00273 *                                                                *   CL**2
00274 *****************************************************************    CL**2
00275 *****************************************************************    CL**2
00276  1000-PLC15.                                                         CL**2
00277      PERFORM CHECK-DESCRIPTION THRU CHECK-DESCRIPTION-XIT.           CL**2
00278      MOVE SAVE-ELE-STC-CNAME TO GEN-ELEMENT-NAME.                    CL**2
00279 *****************************************************************    CL**2
00280 *     RETREIVE DATA NAME (PREFERRED)                                 CL**2
00281 *****************************************************************    CL**2
00282      MOVE NAME-CAT-NO TO DATA-ENTRY-CAT.                             CL**2
00283      PERFORM READ-CATEGORY THRU READ-CATEGORY-XIT.                   CL**2
00284      PERFORM TEST-RETURN-CODE THRU TEST-RETURN-CODE-XIT.             CL**2
00285      IF DATA-RETURN-CODE NOT EQUAL 0                                 CL**2
00286          MOVE GEN-ELEMENT-NAME TO ELE-DATA-NAME                      CL**2
00287          GO TO 1010-PLC15.                                           CL**2
00288      IF NAME-IDENTIFIER EQUAL TO SPACES                              CL**2
00289          MOVE GEN-ELEMENT-NAME TO ELE-DATA-NAME                      CL**2
00290      ELSE                                                            CL**2
00291          MOVE NAME-IDENTIFIER TO ELE-DATA-NAME.                      CL**2
00292 *****************************************************************    CL**2
00293 *     RETREIVE ATTRIBUTES CATEGORY PLACE IN ATTRIUBUTES WORK AREA*   CL**2
00294 *****************************************************************    CL**2
00295  1010-PLC15.                                                         CL**2
00296      MOVE ATTR-CAT-NO TO DATA-ENTRY-CAT.                             CL**2
00297      PERFORM READ-CATEGORY THRU READ-CATEGORY-XIT.                   CL**2
00298      PERFORM TEST-RETURN-CODE THRU TEST-RETURN-CODE-XIT.             CL**2
00299      IF DATA-RETURN-CODE EQUAL ZERO                                  CL**2
               MOVE MINUS-ASTER TO ELEMENT-ATTRIBUTES 
00301          MOVE CAT-LINE TO ELE-ATTR-LAST                              CL**2
00302          MOVE SPACE TO ELE-ALIAS-CODE                                CL**2
00303      ELSE                                                            CL**2
00304          MOVE SPACES TO ELEMENT-ATTRIBUTES.                          CL**2
00305 *****************************************************************    CL**2
00306 *     CHECK FOR ALIAS CATEGORY REFERENCE IN STRUCTURE LINE           CL**2
00307 *     USE ALIAS CATEGORY ATTRIBUTES IF SO                            CL**2
00308 ******************************************************************   CL**2
00309  1015-PLC15.                                                         CL**2
00310      IF SAVE-ELE-STC-ALY-NO EQUAL TO SPACES                          CL**2
00311          GO TO 1100-PLC15.                                           CL**2
00312      MOVE ALIAS-CAT-NO TO DATA-ENTRY-CAT.                            CL**2
00313      PERFORM READ-CATEGORY THRU READ-CATEGORY-XIT.                   CL**2
00314  1025-PLC15.                                                         CL**2
00315      IF DATA-RETURN-CODE NOT EQUAL TO ZERO                           CL**2
00316          GO TO 1100-PLC15.                                           CL**2
00317      IF CAT-LINE EQUAL SAVE-ELE-STC-ALY-NO                           CL**2
00318          GO TO 1075-PLC15.                                           CL**2
00319      PERFORM READ-NEXT-DATA THRU READ-NEXT-DATA-XIT.                 CL**2
00320      GO TO 1025-PLC15.                                               CL**2
00321  1075-PLC15.                                                         CL**2
00322      IF ALY-IDENTIFER NOT EQUAL TO SPACES                            CL**2
00323          MOVE ALY-IDENTIFER TO ELE-DATA-NAME.                        CL**2
00324      IF ALY-PIC NOT EQUAL TO SPACES                                  CL**2
00325          MOVE ALY-PIC TO ELE-PIC.                                    CL**2
00326      IF ALY-LENGTH NOT EQUAL TO SPACES                               CL**2
00327          MOVE ALY-LENGTH TO ELE-LENGTH.                              CL**2
00328      IF ALY-FORMAT NOT EQUAL TO SPACES                               CL**2
00329          MOVE ALY-FORMAT TO ELE-FORMAT.                              CL**2
00330      IF ALY-JUST NOT EQUAL TO SPACES                                 CL**2
00331          MOVE ALY-JUST TO ELE-JUST.                                  CL**2
00332      IF ALY-SYNC NOT EQUAL TO SPACES                                 CL**2
00333          MOVE ALY-SYNC TO ELE-SYNC.                                  CL**2
00334      IF ALY-INT-VALUE NOT EQUAL TO SPACES                            CL**2
00335          MOVE ALY-INT-VALUE TO ELE-INT-VALUE.                        CL**2
00336      MOVE CAT-LINE TO ELE-ATTR-LAST.                                 CL**2
00337      MOVE "Y" TO ELE-ALIAS-CODE.                                     CL**2
00338 *****************************************************************    CL**2
00339 *     CHECK TO SEE IF GROUP ATTRIBUTES ARE TO BE USED                CL**2
00340 *     THESE OVERRIDE ELEMENT ATTRIBUTES                              CL**2
00341 *****************************************************************    CL**2
00342  1100-PLC15.                                                         CL**2
00343      IF SAVE-GRP-ATTR-LENGTH NOT EQUAL TO SPACES                     CL**2
00344          MOVE SAVE-GRP-ATTR-LENGTH TO ELE-LENGTH.                    CL**2
00345      IF SAVE-GRP-ATTR-FORMAT NOT EQUAL TO SPACES                     CL**2
00346          MOVE SAVE-GRP-ATTR-FORMAT TO ELE-FORMAT.                    CL**2
00347      IF SAVE-GRP-ATTR-PICTURE NOT EQUAL TO SPACES                    CL**2
00348          MOVE SAVE-GRP-ATTR-PICTURE TO ELE-PIC.                      CL**2
00349      IF SAVE-GRP-ATTR-JUST NOT EQUAL TO SPACES                       CL**2
00350          MOVE SAVE-GRP-ATTR-JUST TO ELE-JUST.                        CL**2
00351      IF SAVE-GRP-ATTR-SYNC NOT EQUAL TO SPACES                       CL**2
00352          MOVE SAVE-GRP-ATTR-SYNC TO ELE-SYNC.                        CL**2
00353 ******************************************************************   CL**2
00354 *     GENERATE LEVEL NUMBER AND NAME                                 CL**2
00355 *****************************************************************    CL**2
00356  1125-PLC15.                                                         CL**2
00357      MOVE ELE-DATA-NAME TO WS-DATA-NAME.                             CL**2
00358      PERFORM INSERT-PREFIX THRU INSERT-PREFIX-XIT.                   CL**2
00359      PERFORM LAYOUT-PCH-CARD THRU LAYOUT-PCH-CARD-XIT.               CL**2
00360      PERFORM REMOVE-HYPHEN THRU REMOVE-HYPHEN-XIT.                   CL**2
00361      PERFORM CLEAR-LEAD-ZERO THRU CLEAR-LEAD-ZERO-XIT.               CL**2
00362 ***********************************************************          CL**2
00363 *    CHECK INDEXED BT FIELD IF PRESENT GENERATE LIKE                 CL**2
00364 ***********************************************************          CL**2
00365      IF SAVE-ELE-STC-INDEX EQUAL TO SPACES                           CL**2
00366          GO TO 1200-PLC15.                                           CL**2
00367      PERFORM GET-PIC-LENGTH THRU GET-PIC-LENGTH-XIT.                 CL**2
00368      IF LEN-P GREATER THAN 50                                        CL**2
00369          MOVE "LIKE " TO FILLER-CHAR                                 CL**2
00370      ELSE                                                            CL**2
00371          MOVE "LIKE " TO FORMAT-MOVE.                                CL**2
00372      PERFORM PERFORM-STATE4 THRU PERFORM-STATE-XIT.                  CL**2
00373      MOVE SAVE-ELE-STC-INDEX TO LIKE-NAME.                           CL**2
00374      MOVE HOLD-CARD-IMAGE TO SCAN-AREA.                              CL**2
00375      PERFORM REMOVE-HYPHEN THRU REMOVE-HYPHEN-XIT.                   CL**2
00376      GO TO 1945-PLC15.                                               CL**2
00377 **************************************************************       CL**2
00378 *    CHECK OCCURS TO AND OCCURS FROM FIELDS                          CL**2
00379 **************************************************************       CL**2
00380  1200-PLC15.                                                         CL**2
00381      IF SAVE-ELE-STC-OCC-TO EQUAL TO SPACES                          CL**2
00382          GO TO 1300-PLC15.                                           CL**2
00383      MOVE SAVE-ELE-STC-OCC-TO TO OCCURTOKW.                          CL**2
           INSPECT OCCURTOKW REPLACING LEADING ZEROS BY SPACES. 
00385      IF SAVE-ELE-STC-OCC-FROM NOT EQUAL TO SPACES                    CL**2
00386          MOVE ":" TO FILLER-COLON                                    CL**2
00387          MOVE SAVE-ELE-STC-OCC-FROM TO OCCURFROMKW                   CL**2
               INSPECT OCCURFROMKW REPLACING LEADING ZEROS BY SPACES
00389       ELSE                                                           CL**2
00390          MOVE SPACE TO FILLER-COLON  OCCURFROMKW.                    CL**2
00391      MOVE OCCURKW-TO TO CHARACTER-OUT.                               CL**2
00392      PERFORM MOVE-OCCUR THRU MOVE-OCCUR-XIT.                         CL**2
00393 *********************************************                        CL**2
00394 *    CHECK PICTURE FIELD--PRESENT USE IT IN PLACE OF LENGTH FORMAT   CL**2
00395 *********************************************                        CL**2
00396  1300-PLC15.                                                         CL**2
00397      IF ELE-PIC EQUAL TO SPACES                                      CL**2
00398          GO TO 1400-PLC15.                                           CL**2
00399      MOVE 80 TO LEN-P.                                               CL**2
00400      PERFORM GET-PIC-LENGTH THRU GET-PIC-LENGTH-XIT.                 CL**2
00401      IF LEN-P GREATER THAN 50                                        CL**2
00402          PERFORM PERFORM-STATE4 THRU PERFORM-STATE-XIT               CL**2
00403          GO TO 1375-NEW-LINE.                                        CL**2
00404      MOVE ELE-PIC TO SCAN-AREA2.                                     CL**2
00405      MOVE "Y" TO SCAN-SW.                                            CL**2
00406      MOVE 80 TO LEN-P.                                               CL**2
00407      PERFORM GET-PIC-LENGTH THRU GET-PIC-LENGTH-XIT.                 CL**2
00408      IF LEN-P GREATER THAN 18                                        CL**2
00409          PERFORM PERFORM-STATE4 THRU PERFORM-STATE-XIT               CL**2
00410          GO TO 1375-NEW-LINE.                                        CL**2
00411      MOVE ELE-PIC TO VALUE-PICTURE.                                  CL**2
00412      MOVE KW-PICTURE TO FORMAT-MOVE.                                 CL**2
00413      PERFORM FLOAT-QUOTE THRU FLOAT-QUOTE-XIT.                       CL**2
00414      GO TO 1500-TEST-INITIAL.                                        CL**2
00415 *                                                                    CL**2
00416 *    PICTURE CLAUSE WON"T FIT ON PRINT LINE CREATE ANOTHER           CL**2
00417 *                                                                    CL**2
00418  1375-NEW-LINE.                                                      CL**2
00419      MOVE ELE-PIC TO VALUE-PICTURE.                                  CL**2
00420      MOVE KW-PICTURE TO FORM-PICTURE-MOVE.                           CL**2
00421      PERFORM FLOAT-QUOTE THRU FLOAT-QUOTE-XIT.                       CL**2
00422      GO TO 1500-TEST-INITIAL.                                        CL**2
00423 ************************************************************         CL**2
00424 *                                                                    CL**2
00425 *    DEFAULT TO THIS POINT SINCE PICTURE HAS NO VALUE                CL**2
00426 *                                                                    CL**2
00427 ************************************************************         CL**2
00428 *                                                                    CL**2
00429 *    IF FORMAT OR LENGTH FIELDS MISSING USE DEFAULTS                 CL**2
00430 *                                                                    CL**2
00431  1400-PLC15.                                                         CL**2
00432      IF ELE-LENGTH EQUAL TO SPACES                                   CL**2
00433          MOVE 1 TO ELE-LENGTH                                        CL**2
00434          GO TO 1410-PLC15.                                           CL**2
00435      IF ELE-FORMAT EQUAL TO SPACE                                    CL**2
00436          MOVE "C" TO ELE-FORMAT                                      CL**2
00437          PERFORM 9050-PIC-DEFAULT THRU 9050-PIC-DEFAULT-XIT.         CL**2
00438      GO TO 1450-BEGIN-OUTPUT.                                        CL**2
00439  1410-PLC15.                                                         CL**2
00440      IF ELE-FORMAT EQUAL TO SPACE                                    CL**2
00441          MOVE "C" TO ELE-FORMAT.                                     CL**2
00442      PERFORM 9050-PIC-DEFAULT THRU 9050-PIC-DEFAULT-XIT.             CL**2
00443  1450-BEGIN-OUTPUT.                                                  CL**2
00444      MOVE 80 TO LEN-P.                                               CL**2
00445      PERFORM GET-PIC-LENGTH THRU GET-PIC-LENGTH-XIT.                 CL**2
00446      IF LEN-P GREATER THAN 50                                        CL**2
00447          PERFORM PERFORM-STATE4 THRU PERFORM-STATE-XIT.              CL**2
00448  1475-NEW-LINE.                                                      CL**2
00449      PERFORM FORMAT-FIELD THRU FORMAT-FIELD-XIT.                     CL**2
00450      PERFORM SQUEEZE-LENGTH THRU SQUEEZE-LENGTH-XIT.                 CL**2
00451 *                                                                    CL**2
00452 *    TEST IF ELEMENT HAS INITIAL VALUES                              CL**2
00453 *                                                                    CL**2
00454  1500-TEST-INITIAL.                                                  CL**2
00455      IF ELE-INT-VALUE EQUAL TO SPACES                                CL**2
00456          GO TO 1945-PLC15.                                           CL**2
00457      IF ELE-INT-VALUE EQUAL TO "HIGH-VALUE" OR "HIGH-VALUES" OR      CL**2
00458          "LOW-VALUE" OR "LOW-VALUES"                                 CL**2
00459          MOVE SPACES TO FORMAT-MOVE.                                 CL**2
00460      PERFORM PERFORM-STATE4 THRU PERFORM-STATE-XIT.                  CL**2
00461  1515-TEST-INITIAL.                                                  CL**2
00462      MOVE "N" TO INIT-SW.                                            CL**2
00463      MOVE "INITIAL(" TO INITIALKW.                                   CL**2
00464      PERFORM VALUE-CLAUSE THRU VALUE-CLAUSE-XIT.                     CL**2
00465  1945-PLC15.                                                         CL**2
00466      IF IN-GROUP-SW EQUAL "Y"                                        CL**2
00467          GO TO 6390-PLC15.                                           CL**2
00468      GO TO 0500-PLC15.                                               CL**2
00469 ******************************************************************   CL**2
00470 *    INITIAL VALUE CLAUSE CARRIED OVER FROM MANY LINES               CL**2
00471 ******************************************************************   CL**2
00472  1960-PLC15.                                                         CL**2
00473      IF ELE-ALIAS-CODE EQUAL TO "Y"                                  CL**2
00474          MOVE ALIAS-CAT-NO TO DATA-ENTRY-CAT                         CL**2
00475      ELSE                                                            CL**2
00476          MOVE ATTR-CAT-NO TO DATA-ENTRY-CAT.                         CL**2
00477      PERFORM READ-CATEGORY THRU READ-CATEGORY-XIT.                   CL**2
00478      IF CAT-LINE NOT EQUAL TO ELE-ATTR-LAST                          CL**2
00479          MOVE ELE-ATTR-LAST TO CAT-LINE.                             CL**2
00480      MOVE 1 TO SUB-Z.                                                CL**2
00481  1965-PLC15.                                                         CL**2
00482      PERFORM READ-NEXT-DATA THRU READ-NEXT-DATA-XIT.                 CL**2
00483      IF DATA-RETURN-CODE NOT EQUAL TO ZERO                           CL**2
00484          GO TO 1945-PLC15.                                           CL**2
00485          MOVE QUOTE TO QUOTE-VALUE.                                  CL**2
00486      IF ELE-ALIAS-CODE EQUAL TO "Y"                                  CL**2
00487          MOVE ALY-INT-VALUE TO VALUE-INITIAL                         CL**2
00488      ELSE                                                            CL**2
00489          MOVE ATTR-INT-VALUE TO VALUE-INITIAL.                       CL**2
00490      MOVE CARD-INIT-VALUE TO HOLD-CARD-IMAGE.                        CL**2
00491      ADD 1 TO SUB-Z.                                                 CL**2
00492      MOVE HOLD-CARD-IMAGE TO SCAN-AREA.                              CL**2
00493      PERFORM FLOAT-QUOTE THRU FLOAT-QUOTE-XIT.                       CL**2
00494      IF SUB-Z GREATER THAN WORD-2                                    CL**2
00495          GO TO SET-QUOTE-LAST.                                       CL**2
00496      MOVE SCAN-AREA TO HOLD-CARD-IMAGE.                              CL**2
00497      PERFORM PLC-OUT THRU PLC-OUT-XIT.                               CL**2
00498      GO TO 1965-PLC15.                                               CL**2
00499  SET-QUOTE-LAST.                                                     CL**2
00500      PERFORM FLOAT-PERIOD THRU FLOAT-PERIOD-XIT.                     CL**2
00501      MOVE SCAN-AREA TO HOLD-CARD-IMAGE.                              CL**2
00502      PERFORM PLC-OUT THRU PLC-OUT-XIT.                               CL**2
00503      GO TO 1945-PLC15.                                               CL**2
00505 *****************************************************************    CL**2
00506 *****************************************************************    CL**2
00507 *                                                                    CL**2
00508 *    PROCESS GROUP ENTRY                                             CL**2
00509 *                                                                    CL**2
00510 ****************************************************************     CL**2
00511 ****************************************************************     CL**2
00512  5000-PLC15.                                                         CL**2
00513 *****************************************************************    CL**2
00514 *                                                                    CL**2
00515 *    INITIALIZATION                                                  CL**2
00516 *                                                                    CL**2
00517 ***************************************************************      CL**2
00518      MOVE ZERO TO GROUP-SUB.                                         CL**2
00519 ***************************************************************      CL**2
00520 *                                                                    CL**2
00521 *     RETRIEVE CHARACTERISTICS OF THIS GROUP                         CL**2
00522 *                                                                    CL**2
00523 ***************************************************************      CL**2
00524  5100-PLC15.                                                         CL**2
00525      MOVE SAVE-GRP-STC-CNAME TO DATA-ENTRY-NAME.                     CL**2
00526      MOVE SAVE-GRP-STC-CNAME TO GEN-GROUP-NAME.                      CL**2
00527      PERFORM CHECK-DESCRIPTION THRU CHECK-DESCRIPTION-XIT.           CL**2
00528  5120-PLC15.                                                         CL**2
00529 *                                                                    CL**2
00530 *    RETRIEVE DATA NAME TO BE USED                                   CL**2
00531 *                                                                    CL**2
00532      MOVE NAME-CAT-NO TO DATA-ENTRY-CAT.                             CL**2
00533      PERFORM READ-CATEGORY THRU READ-CATEGORY-XIT.                   CL**2
00534      PERFORM TEST-RETURN-CODE THRU TEST-RETURN-CODE-XIT.             CL**2
00535      IF DATA-RETURN-CODE NOT EQUAL 0                                 CL**2
00536          MOVE GEN-GROUP-NAME TO GROUP-DATA-NAME                      CL**2
00537          GO TO 5150-PLC15.                                           CL**2
00538      IF NAME-GRP-IDENTIFIER EQUAL SPACES                             CL**2
00539          MOVE GEN-GROUP-NAME TO GROUP-DATA-NAME                      CL**2
00540      ELSE                                                            CL**2
00541          MOVE NAME-GRP-IDENTIFIER TO GROUP-DATA-NAME.                CL**2
00542 *                                                                    CL**2
00543 *    RETRIEVE ATTRIBUTES OF GROUP TO USE FOR COMPONENT ELEMENTS      CL**2
00544 *                                                                    CL**2
00545  5150-PLC15.                                                         CL**2
00546      MOVE SPACES TO SAVE-GRP-ATTR-CAT.                               CL**2
00547      MOVE ATTR-CAT-NO TO DATA-ENTRY-CAT.                             CL**2
00548      PERFORM READ-CATEGORY THRU READ-CATEGORY-XIT.                   CL**2
00549      PERFORM TEST-RETURN-CODE THRU TEST-RETURN-CODE-XIT.             CL**2
00550      IF DATA-RETURN-CODE NOT EQUAL TO 0                              CL**2
00551          GO TO 5200-PLC15.                                           CL**2
           MOVE MINUS-ASTER TO SAVE-GRP-ATTR-CAT. 
00553 ****************************************************************     CL**2
00554 *                                                                    CL**2
00555 *    GENERATE PL1 STATEMENTS FOR GROUP                               CL**2
00556 *                                                                    CL**2
00557 ***************************************************************      CL**2
00558  5200-PLC15.                                                         CL**2
00559      MOVE GROUP-DATA-NAME TO WS-DATA-NAME.                           CL**2
00560      PERFORM INSERT-PREFIX THRU INSERT-PREFIX-XIT.                   CL**2
00561      PERFORM LAYOUT-PCH-CARD THRU LAYOUT-PCH-CARD-XIT.               CL**2
00562      PERFORM REMOVE-HYPHEN THRU REMOVE-HYPHEN-XIT.                   CL**2
00563      PERFORM CLEAR-LEAD-ZERO THRU CLEAR-LEAD-ZERO-XIT.               CL**2
00566      IF SAVE-GRP-STC-INDEX EQUAL SPACES                              CL**2
00567           GO TO 5300-PLC15.                                          CL**2
00568      PERFORM GET-PIC-LENGTH THRU GET-PIC-LENGTH-XIT.                 CL**2
00569      IF LEN-P GREATER THAN 50                                        CL**2
00570          MOVE "LIKE " TO FILLER-CHAR                                 CL**2
00571      ELSE                                                            CL**2
00572          MOVE "LIKE " TO FORMAT-MOVE.                                CL**2
00573      PERFORM PERFORM-STATE4 THRU PERFORM-STATE-XIT.                  CL**2
00574      MOVE SAVE-GRP-STC-INDEX TO LIKE-NAME.                           CL**2
00575      MOVE HOLD-CARD-IMAGE TO SCAN-AREA.                              CL**2
00576      PERFORM REMOVE-HYPHEN THRU REMOVE-HYPHEN-XIT.                   CL**2
00577      GO TO 6000-PLC15.                                               CL**2
00578  5300-PLC15.                                                         CL**2
00579      IF SAVE-GRP-STC-OCC-TO EQUAL TO SPACES                          CL**2
00580          GO TO 6000-PLC15.                                           CL**2
00581      MOVE SAVE-GRP-STC-OCC-TO TO OCCURTOKW.                          CL**2
           INSPECT OCCURTOKW REPLACING LEADING ZEROS BY SPACES. 
00583      IF SAVE-GRP-STC-OCC-FROM NOT EQUAL TO SPACES                    CL**2
00584          MOVE ":" TO FILLER-COLON                                    CL**2
00585          MOVE SAVE-GRP-STC-OCC-FROM TO OCCURFROMKW                   CL**2
           INSPECT OCCURFROMKW REPLACING LEADING ZEROS BY SPACES
00587      ELSE                                                            CL**2
00588          MOVE SPACE TO FILLER-COLON  OCCURFROMKW.                    CL**2
00589      MOVE SPACES TO CHARACTER-OUT.                                   CL**2
00590      MOVE OCCURKW-TO TO CHARACTER-OUT.                               CL**2
00591      PERFORM MOVE-OCCUR THRU MOVE-OCCUR-XIT.                         CL**2
00593 ****************************************************************     CL**2
00594 *                                                                    CL**2
00595 *    PROCESS STRUCTURE OF GROUP ENTRY                                CL**2
00596 *                                                                    CL**2
00597 ****************************************************************     CL**2
00598  6000-PLC15.                                                         CL**2
00599      MOVE STC-CAT-NO TO DATA-ENTRY-CAT.                              CL**2
00600      PERFORM READ-CATEGORY THRU READ-CATEGORY-XIT.                   CL**2
           PERFORM TEST-RETURN-CODE THRU TEST-RETURN-CODE-XIT.
  
      * LOOK FOR FIRST INCLUDED STRUCTURE LINE OF STANDARD TYPE.
           PERFORM UNTIL DATA-RETURN-CODE NOT = ZERO
             IF (CAT-LINE-TYPE = "A" OR SPACE)
               AND STC-DBD-INC NOT = "N"
             THEN 
               IF SCAN-AREA NOT = SPACES
               THEN 
                 PERFORM FLOAT-SEMI THRU FLOAT-SEMI-XIT 
                 PERFORM PERFORM-STATE4 THRU PERFORM-STATE-XIT
               END-IF 
               MOVE CAT-LINE TO SAVE-LINE-NO
               MOVE SPACES TO SAVE-ELE-STC-CAT
               MOVE MINUS-ASTER TO SAVE-ELE-STC-A 
  
      * CHECK ALL NON-STANDARD STRUCTURE LINES BELONGING TO STANDARD ONE
               PERFORM READ-NEXT-DATA THRU READ-NEXT-DATA-XIT 
               PERFORM TEST-RETURN-CODE THRU TEST-RETURN-CODE-XIT 
               PERFORM UNTIL DATA-RETURN-CODE NOT = ZERO
                 OR (CAT-LINE-TYPE = "A" OR SPACE)
  
                 MOVE CAT-LINE TO SAVE-LINE-NO
                 IF CAT-LINE-TYPE = "O" 
                 THEN 
                   MOVE MINUS-ASTER TO SAVE-ELE-STC-O 
                 END-IF 
                 IF CAT-LINE-TYPE = "I" 
                 THEN 
                   MOVE MINUS-ASTER TO SAVE-ELE-STC-INDEX 
                 END-IF 
  
                 PERFORM READ-NEXT-DATA THRU READ-NEXT-DATA-XIT 
                 PERFORM TEST-RETURN-CODE THRU TEST-RETURN-CODE-XIT 
               END-PERFORM
  
               GO TO 6300-PLC15 
             END-IF 
  
      * IF NOT AN INCLUDED STANDARD LINE, READ NEXT LINE INTO "CAT-WORK"
             PERFORM READ-NEXT-DATA THRU READ-NEXT-DATA-XIT 
             PERFORM TEST-RETURN-CODE THRU TEST-RETURN-CODE-XIT 
           END-PERFORM
  
      * ERROR IF NO INCLUDED STRUCTURE LINE FOUND.
           PERFORM 9010-NO-STC-MSSG THRU 9010-NO-STC-MSSG-XIT.
           GO TO 6700-PLC15.
  
00628 *                                                                    CL**2
00629 *     PROCESS FIRST COMPONENT OF GROUP                               CL**2
00630 *        SAVE GROUP ATTRIBUTES                                       CL**2
00631 *        SAVE POSITION IN STRUCTURE LINE                             CL**2
00632 *                                                                    CL**2
00633  6300-PLC15.                                                         CL**2
00634      ADD 1 TO GROUP-SUB.                                             CL**2
00635      IF GROUP-SUB GREATER THAN 10                                    CL**2
00636          PERFORM 9060-GROUP-LIMIT THRU 9060-GROUP-LIMIT-XIT          CL**2
00637          GO TO 0500-PLC15.                                           CL**2
00638  6325-PLC15.                                                         CL**2
00639      MOVE DATA-ENTRY-NAME TO GROUP-ENTRY-NAME (GROUP-SUB).           CL**2
           MOVE SAVE-LINE-NO TO GROUP-STC-LINE (GROUP-SUB). 
00641      MOVE SAVE-GRP-ATTR-LENGTH TO GROUP-LENGTH (GROUP-SUB).          CL**2
00642      MOVE SAVE-GRP-ATTR-FORMAT TO GROUP-FORMAT (GROUP-SUB).          CL**2
00643      MOVE SAVE-GRP-ATTR-PICTURE TO GROUP-PICTURE (GROUP-SUB).        CL**2
00644      MOVE SAVE-GRP-ATTR-JUST TO GROUP-JUST (GROUP-SUB).              CL**2
00645      MOVE SAVE-GRP-ATTR-SYNC TO GROUP-SYNC (GROUP-SUB).              CL**2
  
       6350-PLC15.
           IF SAVE-ELE-STC-CNAME = FILLERKW 
           THEN 
             PERFORM PROC-FILLER THRU PROC-FILLER-XIT 
             GO TO 6500-PLC15 
           END-IF 
00653 ******************************************************************   CL**2
00654 *     RETRIEVE COMPONENT ENTRY- DETERMINE TYPE                       CL**2
00655 *****************************************************************    CL**2
           MOVE SAVE-ELE-STC-CNAME TO DATA-ENTRY-NAME.
00657      PERFORM READ-FIRST-DATA THRU READ-FIRST-DATA-XIT.               CL**2
00658      IF DATA-RETURN-CODE NOT EQUAL 0                                 CL**2
00659          PERFORM 9030-NO-DATA-MSSG THRU 9030-NO-DATA-MSSG-XIT        CL**2
00660      GO TO 6400-PLC15.                                               CL**2
00661 ******************************************************************   CL**2
00662 *     CHECK FOR GROUP COMPONENT AND PROCESS                          CL**2
00663 *****************************************************************    CL**2
00664      IF DATA-HDR-ENT-ID EQUAL TO "09" OR "10"                        CL**2
               MOVE SAVE-ELE-STC-CAT TO SAVE-GRP-STC-CAT
               MOVE SPACES TO SAVE-ELE-STC-CAT
00666          GO TO 5100-PLC15.                                           CL**2
00667 *****************************************************************    CL**2
00668 *     CHECK FOR ELEMENT COMPONENT AND PROCESS                        CL**2
00669 *****************************************************************    CL**2
00670      IF DATA-HDR-ENT-ID NOT EQUAL "05"                               CL**2
00671          PERFORM 9020-BAD-ENTITY THRU 9020-BAD-ENTITY-XIT            CL**2
00672          GO TO 8000-PLC15-END.                                       CL**2
00674      MOVE GROUP-LENGTH (GROUP-SUB) TO SAVE-GRP-ATTR-LENGTH.          CL**2
00675      MOVE GROUP-FORMAT (GROUP-SUB) TO SAVE-GRP-ATTR-FORMAT.          CL**2
00676      MOVE GROUP-PICTURE (GROUP-SUB) TO SAVE-GRP-ATTR-PICTURE.        CL**2
00677      MOVE GROUP-JUST (GROUP-SUB) TO SAVE-GRP-ATTR-JUST.              CL**2
00678      MOVE GROUP-SYNC (GROUP-SUB) TO SAVE-GRP-ATTR-SYNC.              CL**2
00679      MOVE "Y" TO IN-GROUP-SW.                                        CL**2
00680      GO TO 1000-PLC15.                                               CL**2
00681 *****************************************************************    CL**2
00682 *     AFTER ELEMENT GENERATED - CONTROL RETURNS HERE                 CL**2
00683 *****************************************************************    CL**2
00684  6390-PLC15.                                                         CL**2
00685      MOVE "N" TO IN-GROUP-SW.                                        CL**2
00686 *****************************************************************    CL**2
00687 *     RETURN FOR NEXT STRUCTURE LINE OF GROUP                        CL**2
00688 *****************************************************************    CL**2
00689  6400-PLC15.                                                         CL**2
00690      MOVE GROUP-ENTRY-NAME (GROUP-SUB) TO DATA-ENTRY-NAME.           CL**2
00691      MOVE GROUP-STC-LINE (GROUP-SUB) TO DATA-ENTRY-LINE.             CL**2
00692      MOVE STC-CAT-NO TO DATA-ENTRY-CAT.                              CL**2
00693      PERFORM RETURN-KEY THRU RETURN-KEY-XIT.                         CL**2
00694      PERFORM READ-NEXT-DATA THRU READ-NEXT-DATA-XIT.                 CL**2
           PERFORM TEST-RETURN-CODE THRU TEST-RETURN-CODE-XIT.
00695 *****************************************************************    CL**2
00696 *     HAVE RETRIEVED ANOTHER STRUCTURE LINE                          CL**2
00697 *     DETERMINE IF COMPONENT                                         CL**2
00698 ****************************************************************     CL**2
00699  6500-PLC15.                                                         CL**2
           PERFORM UNTIL DATA-RETURN-CODE NOT = ZERO
             IF (CAT-LINE-TYPE = "A" OR SPACE)
               AND STC-DBD-INC NOT = "N"
             THEN 
               IF SCAN-AREA NOT = SPACES
               THEN 
                 PERFORM FLOAT-SEMI THRU FLOAT-SEMI-XIT 
                 PERFORM PERFORM-STATE4 THRU PERFORM-STATE-XIT
               END-IF 
               MOVE CAT-LINE TO GROUP-STC-LINE (GROUP-SUB)
               MOVE SPACES TO SAVE-ELE-STC-CAT
               MOVE MINUS-ASTER TO SAVE-ELE-STC-A 
  
      * CHECK ALL NON-STANDARD STRUCTURE LINES BELONGING TO STANDARD ONE
               PERFORM READ-NEXT-DATA THRU READ-NEXT-DATA-XIT 
               PERFORM TEST-RETURN-CODE THRU TEST-RETURN-CODE-XIT 
               PERFORM UNTIL DATA-RETURN-CODE NOT = ZERO
                 OR (CAT-LINE-TYPE = "A" OR SPACE)
  
                 MOVE CAT-LINE TO GROUP-STC-LINE (GROUP-SUB)
                 IF CAT-LINE-TYPE = "O" 
                 THEN 
                   MOVE MINUS-ASTER TO SAVE-ELE-STC-O 
                 END-IF 
                 IF CAT-LINE-TYPE = "I" 
                 THEN 
                   MOVE MINUS-ASTER TO SAVE-ELE-STC-INDEX 
                 END-IF 
  
                 PERFORM READ-NEXT-DATA THRU READ-NEXT-DATA-XIT 
                 PERFORM TEST-RETURN-CODE THRU TEST-RETURN-CODE-XIT 
               END-PERFORM
  
               GO TO 6350-PLC15 
             END-IF 
  
      * IF NOT AN INCLUDED STANDARD LINE, READ NEXT LINE INTO "CAT-WORK"
             PERFORM READ-NEXT-DATA THRU READ-NEXT-DATA-XIT 
             PERFORM TEST-RETURN-CODE THRU TEST-RETURN-CODE-XIT 
           END-PERFORM
00728 *****************************************************************    CL**2
00729 *     NO MORE COMPONENTS FOR GROUP                                   CL**2
00730 *     RETURN TO PREVIOUS GROUP - IF ANY                              CL**2
00731 *****************************************************************    CL**2
00732  6700-PLC15.                                                         CL**2
00733      IF GROUP-SUB EQUAL 0                                            CL**2
00734          GO TO 0500-PLC15.                                           CL**2
00735      SUBTRACT 1 FROM GROUP-SUB.                                      CL**2
00736      IF GROUP-SUB NOT EQUAL TO 0                                     CL**2
00737          GO TO 6400-PLC15.                                           CL**2
00738      GO TO 0500-PLC15.                                               CL**2
00739 ******************************************************************   CL**2
00740 *     CLOSE FILES AND GO BACK                                        CL**2
00741 ******************************************************************   CL**2
00742  8000-PLC15-END.                                                     CL**2
00743      MOVE "9" TO GTBL-MOD-REQ.                                       CL**2
           EXIT PROGRAM.
00745 ******************************************************************   CL**2
00746 *     ERROR MESSAGES                                                 CL**2
00747 ******************************************************************   CL**2
00748  9010-NO-STC-MSSG.                                                   CL**2
00749      MOVE "Y" TO MSG-SWITCH.                                         CL**2
00750      MOVE " 600-S" TO ERROR-MSSG-NUM.                                CL**2
00751      MOVE SPACES TO ERROR-MSSG-TYPE.                                 CL**2
00752      MOVE DATA-ENTRY-NAME TO ERROR-CAT-NAME.                         CL**2
00753      MOVE NO-STC-MSSG TO MSSG-TYPE.                                  CL**2
00754      PERFORM PLC-OUT THRU PLC-OUT-XIT.                               CL**2
00755  9010-NO-STC-MSSG-XIT.                                               CL**2
00756      EXIT.                                                           CL**2
00757  9020-BAD-ENTITY.                                                    CL**2
00758      MOVE "Y" TO MSG-SWITCH.                                         CL**2
00759      MOVE " 525-S" TO ERROR-MSSG-NUM.                                CL**2
00760      MOVE SPACES TO ERROR-MSSG-TYPE.                                 CL**2
00761      MOVE DATA-ENTRY-NAME TO ERROR-CAT-NAME.                         CL**2
00762      MOVE BAD-ENTITY-MSSG TO MSSG-TYPE.                              CL**2
00763      PERFORM PLC-OUT THRU PLC-OUT-XIT.                               CL**2
00764  9020-BAD-ENTITY-XIT.                                                CL**2
00765      EXIT.                                                           CL**2
00766  9030-NO-DATA-MSSG.                                                  CL**2
00767      MOVE "Y" TO MSG-SWITCH.                                         CL**2
00768      MOVE " 500-S" TO ERROR-MSSG-NUM.                                CL**2
00769      MOVE SPACES TO ERROR-MSSG-TYPE.                                 CL**2
00770      MOVE DATA-ENTRY-NAME TO ERROR-CAT-NAME.                         CL**2
00771      MOVE NO-DATA-MSSG TO MSSG-TYPE.                                 CL**2
00772      PERFORM PLC-OUT THRU PLC-OUT-XIT.                               CL**2
00773  9030-NO-DATA-MSSG-XIT.                                              CL**2
00774      EXIT.                                                           CL**2
00775  9040-BAD-DATA-MSSG.                                                 CL**2
00776      MOVE "Y" TO MSG-SWITCH.                                         CL**2
00777      MOVE " 530-S" TO ERROR-MSSG-NUM.                                CL**2
00778      MOVE SPACES TO ERROR-MSSG-TYPE.                                 CL**2
00779      MOVE DATA-ENTRY-NAME TO ERROR-CAT-NAME.                         CL**2
00780      MOVE BAD-DATA-MSSG TO MSSG-TYPE.                                CL**2
00781      PERFORM PLC-OUT THRU PLC-OUT-XIT.                               CL**2
00782  9040-BAD-DATA-MSSG-XIT.                                             CL**2
00783      EXIT.                                                           CL**2
00784  9050-PIC-DEFAULT.                                                   CL**2
00785      MOVE "Y" TO MSG-SWITCH.                                         CL**2
00786      MOVE " 540-I" TO ERROR-MSSG-NUM.                                CL**2
00787      MOVE SPACES TO ERROR-MSSG-TYPE.                                 CL**2
00788      MOVE PICTURE-DEFAULT-MSSG TO DEFAULT-MSSG.                      CL**2
00789      PERFORM PLC-OUT THRU PLC-OUT-XIT.                               CL**2
00790  9050-PIC-DEFAULT-XIT.                                               CL**2
00791      EXIT.                                                           CL**2
00792  9060-GROUP-LIMIT.                                                   CL**2
00793      MOVE "Y" TO MSG-SWITCH.                                         CL**2
00794      MOVE " 550-S" TO ERROR-MSSG-NUM.                                CL**2
00795      MOVE SPACES TO ERROR-MSSG-TYPE.                                 CL**2
00796      MOVE GROUP-LIMIT-MSSG TO DEFAULT-MSSG.                          CL**2
00797      PERFORM PLC-OUT THRU PLC-OUT-XIT.                               CL**2
00798  9060-GROUP-LIMIT-XIT.                                               CL**2
00799      EXIT.                                                           CL**2
00800  9080-REDEFINE-MSSG.                                                 CL**2
00801      MOVE "Y" TO MSG-SWITCH.                                         CL**2
00802      MOVE " 560-S" TO ERROR-MSSG-NUM.                                CL**2
00803      MOVE SPACES TO ERROR-MSSG-TYPE.                                 CL**2
00804      MOVE REDEFINE-MSSG TO DEFAULT-MSSG.                             CL**2
00805      PERFORM PLC-OUT THRU PLC-OUT-XIT.                               CL**2
00806  9080-REDEFINE-MSSG-XIT.                                             CL**2
00807      EXIT.                                                           CL**2
00808  9070-BAD-88.                                                        CL**2
00809      MOVE "Y" TO MSG-SWITCH.                                         CL**2
00810      MOVE " 555-S" TO ERROR-MSSG-NUM.                                CL**2
00811      MOVE SPACES TO ERROR-MSSG-TYPE.                                 CL**2
00812      MOVE BAD-88-MSSG TO DEFAULT-MSSG.                               CL**2
00813      PERFORM PLC-OUT THRU PLC-OUT-XIT.                               CL**2
00814  9070-BAD-88-XIT.                                                    CL**2
00815      EXIT.                                                           CL**2
*CALL     PLCOUT
*CALL     PL1SUB
*CALL     MAST1RFC
*CALL     MAST1RNL
*CALL     MAST1RK 
*CALL     MAST1RFL
*CALL     MAST1EXT
*CALL     MAST1RDI
*CALL     MAST1ALG
