*DECK     DCUTL600
00001  IDENTIFICATION DIVISION.                                         08/30/78
       PROGRAM-ID.   UTL600.
00003 ******************************************************************   LV002
00004 *                                                                *DCUTL600
00005 *        THIS MODULE IS PART OF THE DBA UTILITY                  *DCUTL600
00006 *        IT WILL RESTORE THE DATA AND/ OR RELATIONAL FILES FROM   DCUTL600
00007 *             SEQUENTIAL FILES                                   *DCUTL600
00008 *                                                                *DCUTL600
00009 ******************************************************************DCUTL600
00010  ENVIRONMENT DIVISION.                                            DCUTL600
00011  CONFIGURATION SECTION.                                           DCUTL600
       SOURCE-COMPUTER. CYBER.
       OBJECT-COMPUTER. CYBER.
00014  INPUT-OUTPUT SECTION.                                            DCUTL600
00015  FILE-CONTROL.                                                    DCUTL600
           SELECT MAST1 ASSIGN TO "MAST1" 
               ACCESS IS RANDOM 
               ORGANIZATION IS DIRECT 
               RECORD KEY IS DATA-KEY.
           SELECT MAST2 ASSIGN TO "MAST2" 
               ACCESS IS RANDOM 
               ORGANIZATION IS DIRECT 
               RECORD KEY IS REL-KEY. 
           SELECT MAST3 ASSIGN TO "MAST3" 
               ACCESS IS RANDOM 
               RELATIVE KEY IS CON-KEY
               ORGANIZATION IS RELATIVE 
               USE "PRUF=YES".
           SELECT SYSPRINT ASSIGN TO "OUTPUT".
           SELECT BUP-MAST1 ASSIGN TO "MAST1BK".
           SELECT BUP-MAST2 ASSIGN TO "MAST2BK".
           SELECT BUP-MAST3 ASSIGN TO "MAST3BK".
00028                                                                    DCUTL60
00029  DATA DIVISION.                                                   DCUTL600
00030  FILE SECTION.                                                    DCUTL600
*CALL     MAST1FD                                                          CL**3
*CALL     MAST2FD                                                          CL**3
*CALL     MAST3FD                                                          CL**3
00034  FD  BUP-MAST1                                                    DCUTL600
           LABEL RECORDS ARE OMITTED
00038      DATA RECORDS ARE BUP-DATA-RECORD.                               CL**2
00039  01  BUP-DATA-RECORD.                                             DCUTL600
00040      05  BUP-DATA-NAME           PICTURE X(32).                      CL**2
00041      05  BUP-DATA-TRLR           PICTURE 9(4).                       CL**2
           05 BUP-DATA-REST   PICTURE X(1229).
00043                                                                    DCUTL60
00044  FD  BUP-MAST2                                                    DCUTL600
           LABEL RECORDS ARE OMITTED
00048      DATA RECORDS ARE BUP-REL-RECORD.                                CL**2
00049  01  BUP-REL-RECORD.                                              DCUTL600
           05 BUP-REL-HDR.
               10 BUP-REL-NAME   PICTURE X(32). 
               10 BUP-REL-TRLR   PICTURE 9999.
               10 FILLER   PICTURE X(8).
         05 BUP-REL-DETAIL  OCCURS 16 TIMES.
00054          10  BUP-REL-DTL-CATNAME       PICTURE X(32).                CL**2
00055      10  BUP-REL-DTL-ENT-ID    PICTURE XX.                           CL**2
00056          10  BUP-REL-ENT-PTR           PICTURE X.                    CL**2
00057          10  BUP-REL-ENT-PTR-ALIAS     PICTURE X.                    CL**2
               10  BUP-REL-DTL-PTR-COUNT PICTURE 999. 
00058                                                                    DCUTL60
00059  FD  BUP-MAST3                                                       CL**2
           LABEL RECORDS ARE OMITTED
00063      DATA RECORDS ARE BUP-CTL-RECORD.                                CL**2
       01  BUP-CTL-RECORD   PICTURE X(3195).
00065                                                                    DCUTL60
*CALL     SYSPRTFD                                                         CL**3
  
  
       COMMON-STORAGE SECTION.
  
  
       77 RETURN-CODE   PICTURE 99. 
  
  
       01 WKPRINT-UTL.
*CALL WKPRINT 
               10 ERROR-LINE REDEFINES STD-REPORT-REC.
                   15 FILLER     PICTURE X(20). 
                   15 ERROR-POS1 PICTURE X(6).
               15 ERROR-POS2  PICTURE X(60).
                   15 FILLER   PICTURE X(46). 
       01 UTL-TABLE-BUP.
           05 MAST1-OPT                PICTURE X. 
           05 MAST2-OPT                PICTURE X. 
           05 MAST3-OPT                PICTURE X. 
           05 OFFCOND                  PICTURE X. 
           05 REV-SAVE   PICTURE 9(5).
           05 ENTRY-TYPES.
               10 DBPROC-TYPE          PICTURE XX.
               10 DBPROC-NAME          PICTURE X(15). 
               10 ELEMENT-TYPE         PICTURE XX.
               10 ELEMENT-NAME         PICTURE X(15). 
               10 GROUP-TYPE           PICTURE XX.
               10 GROUP-NAME           PICTURE X(15). 
               10 RECORD-TYPE          PICTURE XX.
               10 RECORD-NAME          PICTURE X(15). 
               10 FILE-TYPE            PICTURE XX.
               10 FILE-NAME            PICTURE X(15). 
               10 AREA-TYPE            PICTURE XX.
               10 AREA-NAME            PICTURE X(15). 
               10 SUBSCHEMA-TYPE       PICTURE XX.
               10 SUBSCHEMA-NAME       PICTURE X(15). 
               10 SCHEMA-TYPE          PICTURE XX.
               10 SCHEMA-NAME          PICTURE X(15). 
               10 IMSDB-TYPE           PICTURE XX.
               10 IMSDB-NAME           PICTURE X(15). 
               10 IMSPSB-TYPE          PICTURE XX.
               10 IMSPSB-NAME          PICTURE X(15). 
               10 FORM-TYPE            PICTURE XX.
               10 FORM-NAME            PICTURE X(15). 
               10 REPORT-TYPE          PICTURE XX.
               10 REPORT-NAME          PICTURE X(15). 
               10 PROGRAM-TYPE         PICTURE XX.
               10 PROGRAM-NAME         PICTURE X(15). 
               10 TASK-TYPE            PICTURE XX.
               10 TASK-NAME            PICTURE X(15). 
               10 RESOURCE-TYPE        PICTURE XX.
               10 RESOURCE-NAME        PICTURE X(15). 
               10 SYSTEM-TYPE          PICTURE XX.
               10 SYSTEM-NAME          PICTURE X(15). 
               10 MGMT-TYPE            PICTURE XX.
               10 MGMT-NAME            PICTURE X(15). 
           05 REL-NAME                 PICTURE X(15). 
           05 CTL-NAME-LINK            PICTURE X(15). 
           05 DATA-RECORD-COUNT.
               10 DBPROC-REC-COUNT       PICTURE 9(5).
               10 ELEMENT-REC-COUNT      PICTURE 9(5).
               10 GROUP-REC-COUNT        PICTURE 9(5).
               10 RECORD-REC-COUNT       PICTURE 9(5).
               10 FILE-REC-COUNT         PICTURE 9(5).
               10 AREA-REC-COUNT         PICTURE 9(5).
               10 SUBSCHEMA-REC-COUNT    PICTURE 9(5).
               10 SCHEMA-REC-COUNT       PICTURE 9(5).
               10 IMSDB-REC-COUNT        PICTURE 9(5).
               10 IMSPSB-REC-COUNT       PICTURE 9(5).
               10 FORM-REC-COUNT         PICTURE 9(5).
               10 REPORT-REC-COUNT       PICTURE 9(5).
               10 PROGRAM-REC-COUNT      PICTURE 9(5).
               10 TASK-REC-COUNT         PICTURE 9(5).
               10 RESOURCE-REC-COUNT     PICTURE 9(5).
               10 SYSTEM-REC-COUNT       PICTURE 9(5).
               10 MGMT-REC-COUNT         PICTURE 9(5).
               10 TOTAL-REC-COUNT        PICTURE 9(5).
               10 DBPROC-NAME-COUNT      PICTURE 9(5).
               10 ELEMENT-NAME-COUNT     PICTURE 9(5).
               10 GROUP-NAME-COUNT       PICTURE 9(5).
               10 RECORD-NAME-COUNT      PICTURE 9(5).
               10 FILE-NAME-COUNT        PICTURE 9(5).
               10 AREA-NAME-COUNT        PICTURE 9(5).
               10 SUBSCHEMA-NAME-COUNT   PICTURE 9(5).
               10 SCHEMA-NAME-COUNT      PICTURE 9(5).
               10 IMSDB-NAME-COUNT       PICTURE 9(5).
               10 IMSPSB-NAME-COUNT      PICTURE 9(5).
               10 FORM-NAME-COUNT        PICTURE 9(5).
               10 REPORT-NAME-COUNT      PICTURE 9(5).
               10 PROGRAM-NAME-COUNT     PICTURE 9(5).
               10 TASK-NAME-COUNT        PICTURE 9(5).
               10 RESOURCE-NAME-COUNT    PICTURE 9(5).
               10 SYSTEM-NAME-COUNT      PICTURE 9(5).
               10 MGMT-NAME-COUNT        PICTURE 9(5).
               10 TOTAL-COUNT            PICTURE 9(5).
           05 REL-RECORD-COUNT. 
               10 REL-REC-COUNT          PICTURE 9(5).
               10 REL-ENTRY-COUNT        PICTURE 9(5).
           05 CONTROL-REC-COUNT          PICTURE 9(5).
           05 CTL-LINK. 
               10 DATA-PRIME             PICTURE 9(5).
               10 REL-PRIME              PICTURE 9(5).
*CALL     WRKSTG77                                                         CL**3
00068  77  OUT-SUB                     PICTURE S99 COMP.                   CL**2
00069  77  IN-SUB                      PICTURE S99 COMP.                   CL**2
       77 CON-KEY PICTURE 999 VALUE ZEROS.
*CALL     WRKSTG01                                                         CL**3
*CALL     MAST1WS                                                          CL**3
00072  01  WORK-AREA.                                                   DCUTL600
00073      05  DISP-LINE.                                                  CL**2
00074          10   FILLER             PICTURE X  VALUE SPACE.          DCUTL600
00075          10  DISP-COUNT1         PICTURE ZZZZ9.                      CL**2
00076          10   FILLER             PICTURE X  VALUE SPACE.          DCUTL600
00077          10   FILLER             PICTURE X(21)  VALUE             DCUTL600
00078               "RECORDS REPRESENTING ".                            DCUTL600
00079          10  DISP-COUNT2         PICTURE ZZZZ9.                      CL**2
00080          10   FILLER             PICTURE X  VALUE SPACE.          DCUTL600
00081          10  DISP-NAME           PICTURE X(15).                   DCUTL600
00082          10  FILLER             PICTURE X(8) VALUE " ENTRIES".       CL**2
00083      05  HEADING-LINE.                                            DCUTL600
00084          10  FILLER              PICTURE X VALUE SPACE.           DCUTL600
00085          10  FILLER           PICTURE X(18) VALUE                    CL**2
00086              "WE HAVE RESTORED]".                                 DCUTL600
00087      05  MSG-LINES.                                                  CL**2
00088          10  DATA-MSG.                                               CL**2
00089              15  FILLER           PICTURE X(25) VALUE                CL**2
00090                  "800-S *ERROR MAST1 WRITE".                         CL**2
00091              15  DATA-MSG-KEY     PICTURE X(32).                     CL**2
00092              15  DATA-MSG-TRLR    PICTURE 9999.                      CL**2
00093          10  REL-MSG.                                                CL**2
00094              15  FILLER           PICTURE X(25) VALUE                CL**2
00095                  "805-S *ERROR MAST2 WRITE".                         CL**2
00096              15  REL-MSG-KEY     PICTURE X(32).                      CL**2
00097              15  REL-MSG-TRLR    PICTURE 9999.                       CL**2
               10 CTL-MSG.
                   15  FILLER PICTURE X(25) VALUE 
           " 815-F *ERROR MAST3 WRITE". 
                   15 FILLER   PICTURE X(45). 
           05  TOTAL-NAME         PICTURE X(15) VALUE "DATA". 
00099      05  HOLD-BUP-REL-AREA.                                          CL**2
               10 HOLD-BUP-REL-HDR. 
                   15 HOLD-BUP-REL-NAME   PICTURE X(32).
                   15 FILLER              PICTURE X(12).
               10  HOLD-BUP-REL-DETAIL    PICTURE X(39).
00103      05  HOLD-NAME                PICTURE X(32).                     CL**2
00104      05  PROG-ID                 PICTURE X(6) VALUE "DCUTL-".        CL**2
00105                                                                    DCUTL60
00193  PROCEDURE DIVISION.                                              DCUTL600
       OLD-ENTRY. 
00197      OPEN OUTPUT SYSPRINT.                                        DCUTL600
00198      MOVE 1 TO PRT-CTL.                                              CL**2
00199      MOVE SPACE TO PRINT-LINE.                                       CL**2
00200      MOVE SPACE TO STD-REPORT-REC.                                   CL**2
00201      PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                     CL**2
00202      PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                     CL**2
00203      MOVE ZERO TO TOTAL-REC-COUNT.                                   CL**2
           MOVE ZEROS TO DATA-RECORD-COUNT  REL-RECORD-COUNT
               CONTROL-REC-COUNT. 
00241      MOVE HEADING-LINE TO STD-REPORT-REC.                            CL**2
00242      PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                     CL**2
00243      PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                     CL**2
00244      IF MAST1-OPT EQUAL OFFCOND                                   DCUTL600
00245          GO TO 2000-RESMAST2.                                     DCUTL600
00246                                                                    DCUTL60
00247 ******************************************************************DCUTL600
00248 *                                                                *DCUTL600
00249 *        RESTORE THE DATA FILE                                       CL**2
00250 *                                                                *DCUTL600
00251 ******************************************************************DCUTL600
           OPEN I-O MAST1.
00253      OPEN INPUT BUP-MAST1.                                        DCUTL600
00254  0100-RESMAST1.                                                   DCUTL600
00255      READ BUP-MAST1                                               DCUTL600
00256          AT END GO TO 0900-RESMAST1.                              DCUTL600
           MOVE BUP-DATA-RECORD TO DATA-RECORD. 
00261      WRITE DATA-RECORD INVALID KEY                                   CL**2
00262          PERFORM BAD-DATA-KEY THRU BAD-DATA-KEY-XIT.                 CL**2
           IF DATA-HDR-ENT-ID IS NOT EQUAL TO DBPROC-TYPE 
              GO TO 0110-RESMAST1.
           ADD 1 TO DBPROC-REC-COUNT. 
           IF DATA-REC-ID-TRLR IS EQUAL TO ZERO 
              ADD 1 TO DBPROC-NAME-COUNT. 
           GO TO 0100-RESMAST1. 
       0110-RESMAST1. 
00265      IF DATA-HDR-ENT-ID NOT EQUAL ELEMENT-TYPE                    DCUTL600
00266          GO TO 0120-RESMAST1.                                     DCUTL600
00267      ADD 1 TO ELEMENT-REC-COUNT.                                  DCUTL600
00268      IF BUP-DATA-TRLR EQUAL ZERO                                     CL**2
00269          ADD 1 TO ELEMENT-NAME-COUNT.                             DCUTL600
00270      GO TO 0100-RESMAST1.                                         DCUTL600
00271  0120-RESMAST1.                                                   DCUTL600
00272      IF DATA-HDR-ENT-ID NOT EQUAL GROUP-TYPE                      DCUTL600
00273          GO TO 0140-RESMAST1.                                     DCUTL600
00274      ADD 1 TO GROUP-REC-COUNT.                                    DCUTL600
00275      IF BUP-DATA-TRLR EQUAL ZERO                                     CL**2
00276          ADD 1 TO GROUP-NAME-COUNT.                               DCUTL600
00277      GO TO 0100-RESMAST1.                                         DCUTL600
00278  0140-RESMAST1.                                                   DCUTL600
00279      IF DATA-HDR-ENT-ID NOT EQUAL RECORD-TYPE                     DCUTL600
00280          GO TO 0160-RESMAST1.                                     DCUTL600
00281      ADD 1 TO RECORD-REC-COUNT.                                   DCUTL600
00282      IF BUP-DATA-TRLR EQUAL ZERO                                     CL**2
00283          ADD 1 TO RECORD-NAME-COUNT.                              DCUTL600
00284      GO TO 0100-RESMAST1.                                         DCUTL600
00285  0160-RESMAST1.                                                   DCUTL600
00286      IF DATA-HDR-ENT-ID NOT EQUAL FILE-TYPE                       DCUTL600
               GO TO 0165-RESMAST1. 
00288      ADD 1 TO FILE-REC-COUNT.                                     DCUTL600
00289      IF BUP-DATA-TRLR EQUAL ZERO                                     CL**2
00290          ADD 1 TO FILE-NAME-COUNT.                                DCUTL600
00291      GO TO 0100-RESMAST1.                                         DCUTL600
       0165-RESMAST1. 
           IF DATA-HDR-ENT-ID IS NOT EQUAL TO AREA-TYPE 
              GO TO 0170-RESMAST1.
           ADD 1 TO AREA-REC-COUNT. 
           IF DATA-REC-ID-TRLR IS EQUAL TO ZERO 
              ADD 1 TO AREA-NAME-COUNT. 
           GO TO 0100-RESMAST1. 
       0170-RESMAST1. 
           IF DATA-HDR-ENT-ID IS NOT EQUAL TO SUBSCHEMA-TYPE
              GO TO 0175-RESMAST1.
           ADD 1 TO SUBSCHEMA-REC-COUNT.
           IF DATA-REC-ID-TRLR IS EQUAL TO ZERO 
              ADD 1 TO SUBSCHEMA-NAME-COUNT.
           GO TO 0100-RESMAST1. 
       0175-RESMAST1. 
           IF DATA-HDR-ENT-ID IS NOT EQUAL TO SCHEMA-TYPE 
              GO TO 0180-RESMAST1.
           ADD 1 TO SCHEMA-REC-COUNT. 
           IF DATA-REC-ID-TRLR IS EQUAL TO ZERO 
              ADD 1 TO SCHEMA-NAME-COUNT. 
           GO TO 0100-RESMAST1. 
00292  0180-RESMAST1.                                                   DCUTL600
00293      IF DATA-HDR-ENT-ID NOT EQUAL IMSDB-TYPE                      DCUTL600
00294          GO TO 0200-RESMAST1.                                     DCUTL600
00295      ADD 1 TO IMSDB-REC-COUNT.                                    DCUTL600
00296      IF BUP-DATA-TRLR EQUAL ZERO                                     CL**2
00297          ADD 1 TO IMSDB-NAME-COUNT.                               DCUTL600
00298      GO TO 0100-RESMAST1.                                         DCUTL600
00299  0200-RESMAST1.                                                   DCUTL600
00300      IF DATA-HDR-ENT-ID NOT EQUAL IMSPSB-TYPE                     DCUTL600
00301          GO TO 0220-RESMAST1.                                     DCUTL600
00302      ADD 1 TO IMSPSB-REC-COUNT.                                   DCUTL600
00303      IF BUP-DATA-TRLR EQUAL ZERO                                     CL**2
00304          ADD 1 TO IMSPSB-NAME-COUNT.                              DCUTL600
00305      GO TO 0100-RESMAST1.                                         DCUTL600
00306  0220-RESMAST1.                                                   DCUTL600
00307      IF DATA-HDR-ENT-ID NOT EQUAL FORM-TYPE                       DCUTL600
00308          GO TO 0240-RESMAST1.                                     DCUTL600
00309      ADD 1 TO FORM-REC-COUNT.                                     DCUTL600
00310      IF BUP-DATA-TRLR EQUAL ZERO                                     CL**2
00311          ADD 1 TO FORM-NAME-COUNT.                                DCUTL600
00312      GO TO 0100-RESMAST1.                                         DCUTL600
00313  0240-RESMAST1.                                                   DCUTL600
00314      IF DATA-HDR-ENT-ID NOT EQUAL REPORT-TYPE                     DCUTL600
00315          GO TO 0260-RESMAST1.                                     DCUTL600
00316      ADD 1 TO REPORT-REC-COUNT.                                   DCUTL600
00317      IF BUP-DATA-TRLR EQUAL ZERO                                     CL**2
00318          ADD 1 TO REPORT-NAME-COUNT.                              DCUTL600
00319      GO TO 0100-RESMAST1.                                         DCUTL600
00320  0260-RESMAST1.                                                   DCUTL600
00321      IF DATA-HDR-ENT-ID NOT EQUAL PROGRAM-TYPE                    DCUTL600
00322          GO TO 0280-RESMAST1.                                     DCUTL600
00323      ADD 1 TO PROGRAM-REC-COUNT.                                  DCUTL600
00324      IF BUP-DATA-TRLR EQUAL ZERO                                     CL**2
00325          ADD 1 TO PROGRAM-NAME-COUNT.                             DCUTL600
00326      GO TO 0100-RESMAST1.                                         DCUTL600
00327  0280-RESMAST1.                                                   DCUTL600
00328      IF DATA-HDR-ENT-ID NOT EQUAL TASK-TYPE                       DCUTL600
00329          GO TO 0300-RESMAST1.                                     DCUTL600
00330      ADD 1 TO TASK-REC-COUNT.                                     DCUTL600
00331      IF BUP-DATA-TRLR EQUAL ZERO                                     CL**2
00332          ADD 1 TO TASK-NAME-COUNT.                                DCUTL600
00333      GO TO 0100-RESMAST1.                                         DCUTL600
00334  0300-RESMAST1.                                                   DCUTL600
00335      IF DATA-HDR-ENT-ID NOT EQUAL RESOURCE-TYPE                   DCUTL600
00336          GO TO 0320-RESMAST1.                                     DCUTL600
00337      ADD 1 TO RESOURCE-REC-COUNT.                                 DCUTL600
00338      IF BUP-DATA-TRLR EQUAL ZERO                                     CL**2
00339          ADD 1 TO RESOURCE-NAME-COUNT.                            DCUTL600
00340      GO TO 0100-RESMAST1.                                         DCUTL600
00341  0320-RESMAST1.                                                   DCUTL600
00342      IF DATA-HDR-ENT-ID NOT EQUAL SYSTEM-TYPE                     DCUTL600
00343          GO TO 0340-RESMAST1.                                     DCUTL600
00344      ADD 1 TO SYSTEM-REC-COUNT.                                   DCUTL600
00345      IF BUP-DATA-TRLR EQUAL ZERO                                     CL**2
00346          ADD 1 TO SYSTEM-NAME-COUNT.                              DCUTL600
00347      GO TO 0100-RESMAST1.                                         DCUTL600
00348  0340-RESMAST1.                                                   DCUTL600
00349      IF DATA-HDR-ENT-ID NOT EQUAL MGMT-TYPE                       DCUTL600
               GO TO 0400-RESMAST1. 
00351      ADD 1 TO MGMT-REC-COUNT.                                        CL**2
00352      IF BUP-DATA-TRLR EQUAL ZERO                                     CL**2
00353          ADD 1 TO MGMT-NAME-COUNT.                                DCUTL600
00366  0400-RESMAST1.                                                      CL**2
00367      GO TO 0100-RESMAST1.                                            CL**2
00368                                                                    DCUTL60
00369 ******************************************************************DCUTL600
00370 *                                                                *DCUTL600
00371 *       PRINT DATA FILE TOTALS                                    DCUTL600
00372 *                                                                *DCUTL600
00373 ******************************************************************DCUTL600
00374  0900-RESMAST1.                                                   DCUTL600
           MOVE DBPROC-REC-COUNT TO DISP-COUNT1.
           MOVE DBPROC-NAME-COUNT TO DISP-COUNT2. 
           MOVE DBPROC-NAME TO DISP-NAME. 
           MOVE DISP-LINE TO STD-REPORT-REC.
           PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.
00375      MOVE ELEMENT-REC-COUNT TO DISP-COUNT1.                       DCUTL600
00376      MOVE ELEMENT-NAME-COUNT TO DISP-COUNT2.                      DCUTL600
00377      MOVE ELEMENT-NAME TO DISP-NAME.                              DCUTL600
00378      MOVE DISP-LINE TO STD-REPORT-REC.                               CL**2
00379      PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                  DCUTL600
00380      MOVE GROUP-REC-COUNT TO DISP-COUNT1.                         DCUTL600
00381      MOVE GROUP-NAME-COUNT TO DISP-COUNT2.                        DCUTL600
00382      MOVE GROUP-NAME TO DISP-NAME.                                DCUTL600
00383      MOVE DISP-LINE TO STD-REPORT-REC.                               CL**2
00384      PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                  DCUTL600
00385      MOVE RECORD-REC-COUNT TO DISP-COUNT1.                        DCUTL600
00386      MOVE RECORD-NAME-COUNT TO DISP-COUNT2.                       DCUTL600
00387      MOVE RECORD-NAME TO DISP-NAME.                               DCUTL600
00388      MOVE DISP-LINE TO STD-REPORT-REC.                               CL**2
00389      PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                  DCUTL600
00390      MOVE FILE-REC-COUNT TO DISP-COUNT1.                          DCUTL600
00391      MOVE FILE-NAME-COUNT TO DISP-COUNT2.                         DCUTL600
00392      MOVE FILE-NAME TO DISP-NAME.                                 DCUTL600
00393      MOVE DISP-LINE TO STD-REPORT-REC.                               CL**2
00394      PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                  DCUTL600
           MOVE AREA-REC-COUNT TO DISP-COUNT1.
           MOVE AREA-NAME-COUNT TO DISP-COUNT2. 
           MOVE AREA-NAME TO DISP-NAME. 
           MOVE DISP-LINE TO STD-REPORT-REC.
           PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.
           MOVE SUBSCHEMA-REC-COUNT TO DISP-COUNT1. 
           MOVE SUBSCHEMA-NAME-COUNT TO DISP-COUNT2.
           MOVE SUBSCHEMA-NAME TO DISP-NAME.
           MOVE DISP-LINE TO STD-REPORT-REC.
           PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.
           MOVE SCHEMA-REC-COUNT TO DISP-COUNT1.
           MOVE SCHEMA-NAME-COUNT TO DISP-COUNT2. 
           MOVE SCHEMA-NAME TO DISP-NAME. 
           MOVE DISP-LINE TO STD-REPORT-REC.
           PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.
00395      MOVE IMSDB-REC-COUNT TO DISP-COUNT1.                            CL**2
00396      MOVE IMSDB-NAME-COUNT TO DISP-COUNT2.                        DCUTL600
00397      MOVE IMSDB-NAME TO DISP-NAME.                                   CL**2
00398      MOVE DISP-LINE TO STD-REPORT-REC.                               CL**2
00399      PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                  DCUTL600
00400      MOVE IMSPSB-REC-COUNT TO DISP-COUNT1.                        DCUTL600
00401      MOVE IMSPSB-NAME-COUNT TO DISP-COUNT2.                       DCUTL600
00402      MOVE IMSPSB-NAME TO DISP-NAME.                               DCUTL600
00403      MOVE DISP-LINE TO STD-REPORT-REC.                               CL**2
00404      PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                  DCUTL600
00405      MOVE FORM-REC-COUNT TO DISP-COUNT1.                          DCUTL600
00406      MOVE FORM-NAME-COUNT TO DISP-COUNT2.                         DCUTL600
00407      MOVE FORM-NAME TO DISP-NAME.                                 DCUTL600
00408      MOVE DISP-LINE TO STD-REPORT-REC.                               CL**2
00409      PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                  DCUTL600
00410      MOVE REPORT-REC-COUNT TO DISP-COUNT1.                        DCUTL600
00411      MOVE REPORT-NAME-COUNT TO DISP-COUNT2.                       DCUTL600
00412      MOVE REPORT-NAME TO DISP-NAME.                               DCUTL600
00413      MOVE DISP-LINE TO STD-REPORT-REC.                               CL**2
00414      PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                  DCUTL600
00415      MOVE PROGRAM-REC-COUNT TO DISP-COUNT1.                       DCUTL600
00416      MOVE PROGRAM-NAME-COUNT TO DISP-COUNT2.                      DCUTL600
00417      MOVE PROGRAM-NAME TO DISP-NAME.                              DCUTL600
00418      MOVE DISP-LINE TO STD-REPORT-REC.                               CL**2
00419      PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                  DCUTL600
00420      MOVE TASK-REC-COUNT TO DISP-COUNT1.                          DCUTL600
00421      MOVE TASK-NAME-COUNT TO DISP-COUNT2.                         DCUTL600
00422      MOVE TASK-NAME TO DISP-NAME.                                 DCUTL600
00423      MOVE DISP-LINE TO STD-REPORT-REC.                               CL**2
00424      PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                  DCUTL600
00425      MOVE RESOURCE-REC-COUNT TO DISP-COUNT1.                      DCUTL600
00426      MOVE RESOURCE-NAME-COUNT TO DISP-COUNT2.                     DCUTL600
00427      MOVE RESOURCE-NAME TO DISP-NAME.                             DCUTL600
00428      MOVE DISP-LINE TO STD-REPORT-REC.                               CL**2
00429      PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                  DCUTL600
00430      MOVE SYSTEM-REC-COUNT TO DISP-COUNT1.                        DCUTL600
00431      MOVE SYSTEM-NAME-COUNT TO DISP-COUNT2.                          CL**2
00432      MOVE SYSTEM-NAME TO DISP-NAME.                               DCUTL600
00433      MOVE DISP-LINE TO STD-REPORT-REC.                               CL**2
00434      PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                  DCUTL600
00437      MOVE MGMT-REC-COUNT TO DISP-COUNT1.                          DCUTL600
00438      MOVE MGMT-NAME-COUNT TO DISP-COUNT2.                         DCUTL600
00439      MOVE MGMT-NAME TO DISP-NAME.                                 DCUTL600
00440      MOVE DISP-LINE TO STD-REPORT-REC.                               CL**2
00441      PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                  DCUTL600
00456  1000-RESMAST1.                                                      CL**2
           ADD DBPROC-NAME-COUNT TO TOTAL-COUNT.
00457      ADD ELEMENT-NAME-COUNT TO TOTAL-COUNT.                          CL**2
00458      ADD GROUP-NAME-COUNT TO TOTAL-COUNT.                            CL**2
00459      ADD RECORD-NAME-COUNT TO TOTAL-COUNT.                           CL**2
00460      ADD FILE-NAME-COUNT TO TOTAL-COUNT.                             CL**2
           ADD AREA-NAME-COUNT TO TOTAL-COUNT.
           ADD SUBSCHEMA-NAME-COUNT TO TOTAL-COUNT. 
           ADD SCHEMA-NAME-COUNT TO TOTAL-COUNT.
00461      ADD IMSDB-NAME-COUNT TO TOTAL-COUNT.                            CL**2
00462      ADD IMSPSB-NAME-COUNT TO TOTAL-COUNT.                           CL**2
00463      ADD FORM-NAME-COUNT TO TOTAL-COUNT.                             CL**2
00464      ADD REPORT-NAME-COUNT TO TOTAL-COUNT.                           CL**2
00465      ADD PROGRAM-NAME-COUNT TO TOTAL-COUNT.                          CL**2
00466      ADD TASK-NAME-COUNT TO TOTAL-COUNT.                             CL**2
00467      ADD RESOURCE-NAME-COUNT TO TOTAL-COUNT.                         CL**2
00468      ADD SYSTEM-NAME-COUNT TO TOTAL-COUNT.                           CL**2
00469      ADD MGMT-NAME-COUNT TO TOTAL-COUNT.                             CL**2
           ADD DBPROC-REC-COUNT TO TOTAL-REC-COUNT. 
00472      ADD ELEMENT-REC-COUNT TO TOTAL-REC-COUNT.                       CL**2
00473      ADD GROUP-REC-COUNT TO TOTAL-REC-COUNT.                         CL**2
00474      ADD RECORD-REC-COUNT TO TOTAL-REC-COUNT.                        CL**2
00475      ADD FILE-REC-COUNT TO TOTAL-REC-COUNT.                          CL**2
           ADD AREA-REC-COUNT TO TOTAL-REC-COUNT. 
           ADD SUBSCHEMA-REC-COUNT TO TOTAL-REC-COUNT.
           ADD SCHEMA-REC-COUNT TO TOTAL-REC-COUNT. 
00476      ADD IMSDB-REC-COUNT TO TOTAL-REC-COUNT.                         CL**2
00477      ADD IMSPSB-REC-COUNT TO TOTAL-REC-COUNT.                        CL**2
00478      ADD REPORT-REC-COUNT TO TOTAL-REC-COUNT.                        CL**2
00479      ADD FORM-REC-COUNT TO TOTAL-REC-COUNT.                          CL**2
00480      ADD RESOURCE-REC-COUNT TO TOTAL-REC-COUNT.                      CL**2
00481      ADD SYSTEM-REC-COUNT TO TOTAL-REC-COUNT.                        CL**2
00482      ADD MGMT-REC-COUNT TO TOTAL-REC-COUNT.                          CL**2
00483      ADD PROGRAM-REC-COUNT TO TOTAL-REC-COUNT.                       CL**2
00484      ADD TASK-REC-COUNT TO TOTAL-REC-COUNT.                          CL**2
00487      MOVE TOTAL-REC-COUNT TO DISP-COUNT1.                            CL**2
00488      MOVE TOTAL-COUNT TO DISP-COUNT2.                                CL**2
00489      MOVE TOTAL-NAME TO DISP-NAME.                                   CL**2
00490      MOVE DISP-LINE TO STD-REPORT-REC.                               CL**2
00491      PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                     CL**2
00492      CLOSE MAST1.                                                 DCUTL600
00493      CLOSE BUP-MAST1.                                                CL**2
00494                                                                    DCUTL60
00495  2000-RESMAST2.                                                   DCUTL600
00496      IF MAST2-OPT EQUAL OFFCOND                                   DCUTL600
00497      GO TO 4000-RESMAST3.                                            CL**2
00498 ******************************************************************DCUTL600
00499 *                                                                *DCUTL600
00500 *    RESTORE THE RELATIONAL FILE                                     CL**2
00501 *                                                                *DCUTL600
00502 ******************************************************************DCUTL600
           OPEN I-O MAST2.
00504      OPEN INPUT BUP-MAST2.                                           CL**2
00505  2100-RESMAST2.                                                   DCUTL600
           MOVE ALL-NAMES-LITERAL TO REL-REC-ID.
           MOVE ZEROS TO REL-REC-ID-TRLR. 
           DELETE MAST2.
00506      MOVE REL-LIMIT TO IN-SUB.                                       CL**2
00507      ADD 1 TO IN-SUB.                                                CL**2
00508      MOVE 01 TO OUT-SUB.                                             CL**2
00509      MOVE SPACES TO HOLD-NAME.                                       CL**2
00510  2200-RESMAST2.                                                      CL**2
00511      PERFORM READ-REL THRU READ-REL-XIT.                             CL**2
00514      IF BUP-REL-NAME NOT EQUAL TO HOLD-NAME                          CL**2
00515          PERFORM NAME-BREAK THRU NAME-BREAK-XIT.                     CL**2
00516      MOVE HOLD-BUP-REL-DETAIL TO REL-DETAIL (OUT-SUB).               CL**2
00517      ADD 1 TO OUT-SUB.                                               CL**2
00518      IF OUT-SUB GREATER THAN REL-LIMIT                               CL**2
00519          MOVE 1 TO REL-HDR-CONT                                      CL**2
00520          PERFORM WRITE-REL THRU WRITE-REL-XIT                        CL**2
00521          ADD 1 TO REL-NEXT-REC.                                      CL**2
00522      GO TO 2200-RESMAST2.                                            CL**2
00523                                                                    DCUTL60
00524 ****************************************************************     CL**2
00525 *                                                                    CL**2
00526 *        NAME HAS CHANGED                                            CL**2
00527 *                                                                    CL**2
00528 ****************************************************************     CL**2
00529  NAME-BREAK.                                                         CL**2
00530      ADD 1 TO REL-ENTRY-COUNT.                                       CL**2
00531      MOVE ZERO TO REL-HDR-CONT.                                      CL**2
00532      IF HOLD-NAME EQUAL SPACE                                        CL**2
00533          PERFORM WRITE-SETUP THRU WRITE-SETUP-XIT                    CL**2
00534      ELSE PERFORM WRITE-REL THRU WRITE-REL-XIT.                      CL**2
00535      MOVE BUP-REL-NAME TO HOLD-NAME.                                 CL**2
00536      MOVE ZERO TO REL-NEXT-REC.                                      CL**2
00537  NAME-BREAK-XIT.                                                     CL**2
00538      EXIT.                                                           CL**2
00539 ****************************************************************     CL**2
00540 *                                                                    CL**2
00541 *         WRITE RELATIONAL RECORD                                    CL**2
00542 *                                                                    CL**2
00543 ****************************************************************     CL**2
00544  WRITE-REL.                                                          CL**2
00545      PERFORM RELALG THRU RELALG-XIT.                                 CL**2
00546      WRITE REL-RECORD                                                CL**2
00547          INVALID KEY                                                 CL**2
00548            PERFORM BAD-REL-KEY THRU BAD-REL-KEY-XIT.                 CL**2
00549      PERFORM WRITE-SETUP THRU WRITE-SETUP-XIT.                       CL**2
00550      ADD 1 TO REL-REC-COUNT.                                         CL**2
00551  WRITE-REL-XIT.                                                      CL**2
00552      EXIT.                                                           CL**2
00553  WRITE-SETUP.                                                        CL**2
00554      MOVE 01 TO OUT-SUB.                                             CL**2
00555      MOVE SPACE TO REL-RECORD.                                       CL**2
00556      MOVE HOLD-BUP-REL-NAME TO REL-ENTRY-NAME.                       CL**2
00557      MOVE HOLD-BUP-REL-HDR TO REL-HEADER.                            CL**2
00558      MOVE ZERO TO REL-HDR-CONT.                                      CL**2
00559  WRITE-SETUP-XIT.                                                    CL**2
00560      EXIT.                                                           CL**2
00561 **********************************************************           CL**2
00562 *                                                                    CL**2
00563 *        READ RELATIONAL BACKUP FILE                                 CL**2
00564 *                                                                    CL**2
00565 **********************************************************           CL**2
00566  READ-REL.                                                           CL**2
00567      IF IN-SUB GREATER THAN REL-LIMIT                                CL**2
00568          GO TO READ-REL-300.                                         CL**2
00569  READ-REL-100.                                                       CL**2
00570      IF BUP-REL-DTL-ENT-ID (IN-SUB) EQUAL SPACE                      CL**2
00571          ADD 1 TO IN-SUB                                             CL**2
00572          GO TO READ-REL.                                             CL**2
00573  READ-REL-200.                                                       CL**2
00575      MOVE BUP-REL-HDR TO HOLD-BUP-REL-HDR.                           CL**2
00576      MOVE BUP-REL-DETAIL (IN-SUB) TO HOLD-BUP-REL-DETAIL.            CL**2
00577      ADD 1 TO IN-SUB.                                                CL**2
00578  READ-REL-XIT.                                                       CL**2
00579      EXIT.                                                           CL**2
00580  READ-REL-300.                                                       CL**2
00581      READ BUP-MAST2                                                  CL**2
           AT END GO TO 3000-RESMAST2.
00584      IF BUP-REL-DTL-ENT-ID (1) EQUAL SPACE                           CL**2
00585      AND BUP-REL-DTL-ENT-ID (2) EQUAL SPACE                          CL**2
00586      AND BUP-REL-DTL-ENT-ID (3) EQUAL SPACE                          CL**2
00587      AND BUP-REL-DTL-ENT-ID (4) EQUAL SPACE                          CL**2
00588      AND BUP-REL-DTL-ENT-ID (5) EQUAL SPACE                          CL**2
00589      AND BUP-REL-DTL-ENT-ID (6) EQUAL SPACE                          CL**2
00590      AND BUP-REL-DTL-ENT-ID (7) EQUAL SPACE                          CL**2
00591      AND BUP-REL-DTL-ENT-ID (8) EQUAL SPACE                          CL**2
00592      AND BUP-REL-DTL-ENT-ID (9) EQUAL SPACE                          CL**2
00593      AND BUP-REL-DTL-ENT-ID (10) EQUAL SPACE                         CL**2
00594      AND BUP-REL-DTL-ENT-ID (11) EQUAL SPACE                         CL**2
00595      AND BUP-REL-DTL-ENT-ID (12) EQUAL SPACE                         CL**2
00596      AND BUP-REL-DTL-ENT-ID (13) EQUAL SPACE                         CL**2
00597      AND BUP-REL-DTL-ENT-ID (14) EQUAL SPACE                         CL**2
00598      AND BUP-REL-DTL-ENT-ID (15) EQUAL SPACE                         CL**2
               AND BUP-REL-DTL-ENT-ID (16) = SPACE
00599          MOVE REL-LIMIT TO IN-SUB                                    CL**2
00600          GO TO READ-REL-200.                                         CL**2
00601      MOVE 1 TO IN-SUB.                                               CL**2
00602      GO TO READ-REL-100.                                             CL**2
00603                                                                    DCUTL60
00604 ******************************************************************DCUTL600
00605 *                                                                *DCUTL600
00606 *       PRINT RELATIONAL FILE TOTALS                              DCUTL600
00607 ******************************************************************DCUTL600
00608  3000-RESMAST2.                                                   DCUTL600
00609      PERFORM WRITE-REL THRU WRITE-REL-XIT.                           CL**2
00610      MOVE REL-REC-COUNT TO DISP-COUNT1.                           DCUTL600
00611      MOVE REL-ENTRY-COUNT TO DISP-COUNT2.                         DCUTL600
00612      MOVE REL-NAME TO DISP-NAME.                                  DCUTL600
00613      MOVE DISP-LINE TO STD-REPORT-REC.                               CL**2
00614      PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                  DCUTL600
00615      CLOSE MAST2.                                                 DCUTL600
00616      CLOSE BUP-MAST2.                                                CL**2
00617                                                                    DCUTL60
00618  4000-RESMAST3.                                                      CL**2
00619      IF MAST3-OPT EQUAL OFFCOND                                      CL**2
00620          GO TO 9000-RES.                                             CL**2
00621 ******************************************************************   CL**2
00622 *                                                                    CL**2
00623 *        RESTORE THE CONTROL FILE                                    CL**2
00624 *                                                                    CL**2
00625 ******************************************************************   CL**2
00626      OPEN INPUT BUP-MAST3.                                           CL**2
           OPEN I-O MAST3.
00628  4100-RESMAST3.                                                      CL**2
           ADD 1 TO CON-KEY.
           IF CON-KEY IS GREATER THAN CONTROL-FILE-LIMIT
              GO TO 4200-RESMAST3.
00629      READ BUP-MAST3                                                  CL**2
00630         AT END GO TO 4200-RESMAST3.                                  CL**2
00631      ADD 1 TO CONTROL-REC-COUNT.                                     CL**2
00632      MOVE BUP-CTL-RECORD TO CTL-RECORD-1.                            CL**2
           IF CON-KEY = 1 MOVE CTL-REV-NUM TO REV-SAVE. 
           REWRITE CTL-RECORD-1 INVALID KEY 
               PERFORM BAD-CTL-KEY THRU BAD-CTL-KEY-XIT.
00634      GO TO 4100-RESMAST3.                                            CL**2
00635                                                                    DCUTL60
00636 *****************************************************************    CL**2
00637 *                                                                    CL**2
00638 *        PRINT CONTROL FILE TOTALS                                   CL**2
00639 *                                                                    CL**2
00640 *****************************************************************    CL**2
00641  4200-RESMAST3.                                                      CL**2
           IF CONTROL-REC-COUNT IS NOT EQUAL TO CONTROL-FILE-LIMIT
               PERFORM BAD-CTL-KEY THRU BAD-CTL-KEY-XIT.
00642      MOVE CONTROL-REC-COUNT TO DISP-COUNT1.                          CL**2
00643      MOVE CONTROL-REC-COUNT TO DISP-COUNT2.                          CL**2
           MOVE CTL-NAME-LINK TO DISP-NAME. 
00644      MOVE DISP-LINE TO STD-REPORT-REC.                               CL**2
00645      PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                     CL**2
00646      CLOSE MAST3.                                                    CL**2
00647      CLOSE BUP-MAST3.                                                CL**2
00648  9000-RES.                                                        DCUTL600
00649      CLOSE SYSPRINT.                                              DCUTL600
           EXIT PROGRAM.
00651                                                                    DCUTL60
00652 ******************************************************************   CL**2
00653 *                                                                    CL**2
00654 *     ERROR ROUTINES                                                 CL**2
00655 *                                                                    CL**2
00656 ******************************************************************   CL**2
00657  BAD-DATA-KEY.                                                       CL**2
00658      MOVE DATA-REC-ID TO DATA-MSG-KEY.                               CL**2
00659      MOVE DATA-REC-ID-TRLR TO DATA-MSG-TRLR.                         CL**2
00660      MOVE DATA-MSG TO ERROR-POS2.                                    CL**2
00661      PERFORM PRINT-ERROR THRU PRINT-ERROR-XIT.                       CL**2
00662  BAD-DATA-KEY-XIT.                                                   CL**2
00663      EXIT.                                                           CL**2
00664                                                                      CL**2
00665                                                                      CL**2
00666                                                                      CL**2
00667  BAD-REL-KEY.                                                        CL**2
00668      MOVE REL-REC-ID TO REL-MSG-KEY.                                 CL**2
00669      MOVE REL-REC-ID-TRLR TO REL-MSG-TRLR.                           CL**2
00670      MOVE REL-MSG TO ERROR-POS2.                                     CL**2
00671      PERFORM PRINT-ERROR THRU PRINT-ERROR-XIT.                       CL**2
00672  BAD-REL-KEY-XIT.                                                    CL**2
00673      EXIT.                                                           CL**2
00674                                                                      CL**2
       BAD-CTL-KEY. 
            MOVE CTL-MSG TO ERROR-LINE. 
               PERFORM PRINT-ERROR THRU PRINT-ERROR-XIT.
       BAD-CTL-KEY-XIT. 
           EXIT.
00675                                                                      CL**2
00676                                                                      CL**2
00677  PRINT-ERROR.                                                        CL**2
00678      MOVE 12 TO RETURN-CODE.                                         CL**2
00679      MOVE PROG-ID TO ERROR-POS1.                                     CL**2
00680      PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                     CL**2
00681  PRINT-ERROR-XIT.                                                    CL**2
00682      EXIT.                                                           CL**2
00683                                                                    DCUTL60
*CALL     RELALG                                                           CL**3
*CALL     MAST1ALG                                                         CL**3
*CALL     DISPLAYLN                                                        CL**3
*CALL     WRITELN                                                          CL**3
00688  USER-ROUTINE.                                                       CL**2
00689      GO TO USER-ROUTINE-XIT.                                         CL**2
00690  USER-ROUTINE-XIT.                                                   CL**2
00691      EXIT.                                                           CL**2
