*COMDECK DMSCON2
  
  
      ******************************************************************
      * 
      * CON-AREA-STC. 
      * 
      * A NEW AREA STRUCTURE LINE IS INDICATED BY A NON-BLANK CATNAME 
      * FIELD.
  
       CON-AREA-STC.
  
      * FIND FIRST VALID LINE.  DIAGNOSE ANY PREVIOUS LINE WITHOUT
      * CATNAME.
           MOVE SPACES TO CONSOLID-LINE.
           PERFORM UNTIL DATA-RETURN-CODE NOT = ZERO
             OR STC-A-RNAME NOT = SPACES
  
             MOVE IDX-700 TO MSG-IDX
             MOVE CAT-LINE TO MSG-LINE
             MOVE "AREA" TO MSG-NAME
             PERFORM ERROR-TYPE3 THRU ERROR-TYPE3-XIT 
  
             PERFORM MOVE-NEXT-LINE THRU MOVE-NEXT-LINE-XIT 
             PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT 
           END-PERFORM
  
      * IF FOUND NO VALID LINE, EXIT. 
           IF DATA-RETURN-CODE NOT = ZERO 
           THEN 
             GO TO CON-AREA-STC-XIT 
           END-IF 
  
       LOOP-AREA-STC. 
  
      * SAVE ALL VALUES GIVEN IN THIS LINE. 
           IF STC-A-RNAME NOT = SPACES
             MOVE STC-A-RNAME TO A-STC-CNAME. 
           IF STC-A-ALIAS-NO NOT = SPACES 
             MOVE STC-A-ALIAS-NO TO A-STC-ALIAS.
           IF STC-A-RC-VALUE NOT = SPACES 
             MOVE STC-A-RC-VALUE TO A-STC-RCVAL.
           IF STC-A-VAL-TYPE NOT = SPACES 
             MOVE STC-A-VAL-TYPE TO A-STC-RCTYPE. 
           IF STC-A-INCLUDE NOT = SPACES
             MOVE STC-A-INCLUDE TO A-STC-INCL.
  
      * MOVE NEXT LINE INTO "CAT-WORK" -- CHECK IF EXTENSION OF PREVIOUS
      * LINE. 
           PERFORM MOVE-NEXT-LINE THRU MOVE-NEXT-LINE-XIT.
           PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT.
           IF DATA-RETURN-CODE = ZERO 
             AND STC-A-RNAME = SPACES 
           THEN 
             GO TO LOOP-AREA-STC
           END-IF 
  
       CON-AREA-STC-XIT.
           EXIT.
  
  
      ******************************************************************
      * 
      * CON-RG-ASTC.
      * 
      * A NEW TYPE "A" RECORD STRUCTURE LINE IS INDICATED BY A NON-BLANK
      * CATNAME OR FILL-LEN FIELD.  RECORD AND GROUP STRUCTURE LINES ARE
      * FORMATTED THE SAME, SO THEY SHARE THIS ROUTINE. 
  
       CON-RG-ASTC. 
  
      * FIND FIRST VALID LINE.  DIAGNOSE ANY PREVIOUS LINE WITHOUT
      * CATNAME.
           MOVE SPACES TO CONSOLID-LINE.
           PERFORM UNTIL DATA-RETURN-CODE NOT = ZERO
             OR CAT-LINE-TYPE NOT = "A" 
             OR STC-GRP-CNAME NOT = SPACES
             OR STC-FILL-LEN NOT = SPACES 
  
             MOVE IDX-700 TO MSG-IDX
             MOVE CAT-LINE TO MSG-LINE
             MOVE "RECORD/GROUP" TO MSG-NAME
             PERFORM ERROR-TYPE3 THRU ERROR-TYPE3-XIT 
  
             PERFORM MOVE-NEXT-LINE THRU MOVE-NEXT-LINE-XIT 
             PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT 
           END-PERFORM
  
      * IF FOUND NO VALID LINE, EXIT. 
           IF DATA-RETURN-CODE NOT = ZERO 
             OR CAT-LINE-TYPE NOT = "A" 
           THEN 
             GO TO CON-RG-ASTC-XIT
           END-IF 
  
       LOOP-RG-ASTC.
  
      * SAVE ALL VALUES GIVEN IN THIS LINE. 
           IF STC-GRP-CNAME NOT = SPACES
             MOVE STC-GRP-CNAME TO RG-STC-CNAME.
           IF STC-ALY-NO NOT = SPACES 
             MOVE STC-ALY-NO TO RG-STC-ALIAS. 
           IF STC-FILL-LEN NOT = SPACES 
             MOVE STC-FILL-LEN TO RG-STC-FILL.
           IF STC-TOT-REDEFINES NOT = SPACES
             MOVE STC-TOT-REDEFINES TO RG-STC-REDEF.
           IF STC-REDEF-ALIAS NOT = SPACES
             MOVE STC-REDEF-ALIAS TO RG-STC-RALIAS. 
           IF STC-USAGE NOT = SPACES
             MOVE STC-USAGE TO RG-STC-USAGE.
           IF STC-DBD-INC NOT = SPACES
             MOVE STC-DBD-INC TO RG-STC-INCL. 
  
      * MOVE NEXT LINE INTO "CAT-WORK" -- CHECK IF EXTENSION OF PREVIOUS
      * LINE. 
           PERFORM MOVE-NEXT-LINE THRU MOVE-NEXT-LINE-XIT.
           PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT.
           IF DATA-RETURN-CODE = ZERO 
             AND CAT-LINE-TYPE = "A"
             AND STC-GRP-CNAME = SPACES 
             AND STC-FILL-LEN = SPACES
           THEN 
             GO TO LOOP-RG-ASTC 
           END-IF 
  
       CON-RG-ASTC-XIT. 
           EXIT.
  
  
      ******************************************************************
      * 
      * CON-RG-OSTC.
      * 
      * A NEW TYPE "O" RECORD STRUCTURE LINE IS INDICATED BY A NON-BLANK
      * OCCURS-TO FIELD.  RECORD AND GROUP STRUCTURE LINES ARE FORMATTED
      * THE SAME, SO THEY SHARE THIS ROUTINE. 
  
       CON-RG-OSTC. 
  
      * FIND FIRST VALID LINE.  DIAGNOSE ANY PREVIOUS LINE WITHOUT
      * CATNAME.
           MOVE SPACES TO CONSOLID-LINE.
           MOVE ZERO TO RG-STC-QCNT.
           PERFORM UNTIL DATA-RETURN-CODE NOT = ZERO
             OR CAT-LINE-TYPE NOT = "O" 
             OR STC-TO NOT = SPACES 
  
             MOVE IDX-710 TO MSG-IDX
             MOVE "REC/GRP-STRUCTURE-TO" TO MSG-NAME
             PERFORM ERROR-TYPE2 THRU ERROR-TYPE2-XIT 
  
             PERFORM MOVE-NEXT-LINE THRU MOVE-NEXT-LINE-XIT 
             PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT 
           END-PERFORM
  
      * IF FOUND NO VALID LINE, EXIT. 
           IF DATA-RETURN-CODE NOT = ZERO 
             OR CAT-LINE-TYPE NOT = "O" 
           THEN 
             GO TO CON-RG-OSTC-XIT
           END-IF 
  
       LOOP-RG-OSTC.
  
      * SAVE ALL VALUES GIVEN IN THIS LINE. 
           IF STC-FROM NOT = SPACES 
             MOVE STC-FROM TO RG-STC-FROM.
           IF STC-TO NOT = SPACES 
             MOVE STC-TO TO RG-STC-TO.
           IF STC-TO-ALIAS NOT = SPACES 
             MOVE STC-TO-ALIAS TO RG-STC-TALIAS.
           IF STC-DEPEND NOT = SPACES 
             MOVE STC-DEPEND TO RG-STC-DEPEND.
           IF STC-DEPEND-ALIAS NOT = SPACES 
             MOVE STC-DEPEND-ALIAS TO RG-STC-DALIAS.
           IF STC-DEP-QUAL-FLAG NOT = ZERO
             AND NOT = SPACES 
             MOVE STC-DEP-QUAL-FLAG TO RG-STC-QCNT. 
           IF STC-DEPEND-QUAL1 NOT = SPACES 
             MOVE STC-DEPEND-QUAL1 TO RG-STC-QUAL1. 
           IF STC-DEPEND-QUAL2 NOT = SPACES 
             MOVE STC-DEPEND-QUAL2 TO RG-STC-QUAL2. 
  
      * MOVE NEXT LINE INTO "CAT-WORK" -- CHECK IF EXTENSION OF PREVIOUS
      * LINE. 
           PERFORM MOVE-NEXT-LINE THRU MOVE-NEXT-LINE-XIT.
           PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT.
           IF DATA-RETURN-CODE = ZERO 
             AND CAT-LINE-TYPE = "O"
             AND STC-TO = SPACES
           THEN 
             GO TO LOOP-RG-OSTC 
           END-IF 
  
       CON-RG-OSTC-XIT. 
           EXIT.
  
  
      ******************************************************************
      * 
      * CON-ELEM-ATT. 
      * 
      * ALL ELEMENT ATTRIBUTE LINES ARE COMBINED INTO ONE.
  
       CON-ELEM-ATT.
           MOVE SPACES TO CONSOLID-LINE.
           IF DATA-RETURN-CODE NOT = ZERO 
           THEN 
             GO TO CON-ELEM-ATT-XIT 
           END-IF 
  
       LOOP-ELEM-ATT. 
           IF ATTR-LENGTH NOT = SPACES
             MOVE ATTR-LENGTH TO E-ATT-LENGTH.
           IF ATTR-FORMAT NOT = SPACES
             MOVE ATTR-FORMAT TO E-ATT-FORMAT.
           IF ATTR-PIC NOT = SPACES 
             MOVE ATTR-PIC TO E-ATT-PIC.
           IF ATTR-JUST NOT = SPACES
             MOVE ATTR-JUST TO E-ATT-JUST.
           IF ATTR-SYNC NOT = SPACES
             MOVE ATTR-SYNC TO E-ATT-SYNC.
  
      * MOVE NEXT LINE INTO "CAT-WORK" -- CHECK IF EXTENSION OF PREVIOUS
      * LINE. 
           PERFORM MOVE-NEXT-LINE THRU MOVE-NEXT-LINE-XIT.
           PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT.
           IF DATA-RETURN-CODE = ZERO 
           THEN 
             GO TO LOOP-ELEM-ATT
           END-IF 
  
       CON-ELEM-ATT-XIT.
           EXIT.
