*DECK     DCTOT300
00001  IDENTIFICATION DIVISION.                                         08/07/78
       PROGRAM-ID. TOT300.
*CALL COPYRIGHT 
00007 *    THIS MODULE CONTROLS THE CALLING OF TOTAL DBDL GENERATION       CL**2
      *    MODULES AND DOES I/O FOR THE PRINTER AND CARD OUTPUT FILE
00010  ENVIRONMENT DIVISION.                                            DCTOT300
00011  CONFIGURATION SECTION.                                           DCTOT300
       SOURCE-COMPUTER. CYBER.
       OBJECT-COMPUTER. CYBER.
*CALL OTHSN 
00014  INPUT-OUTPUT SECTION.                                            DCTOT300
00015  FILE-CONTROL.                                                    DCTOT300
           SELECT MAST1 ASSIGN TO "MAST1" 
               ACCESS MODE IS RANDOM
               ORGANIZATION IS DIRECT 
               RECORD KEY IS DATA-KEY-2.
           SELECT MAST3 ASSIGN TO "MAST3" 
               ORGANIZATION IS RELATIVE 
               ACCESS MODE IS RANDOM
               RELATIVE KEY IS CON-KEY
               USE "PRUF = YES".
           SELECT SYSPRINT ASSIGN TO "OUTPUT".
           SELECT PUNCH-FILE ASSIGN TO PNCHFIL
               USE "RT=Z".
00024  DATA DIVISION.                                                   DCTOT300
00025  FILE SECTION.                                                    DCTOT300
*CALL     MAST1FD2
*CALL     MAST3FD 
*CALL     SYSPRTFD
*CALL     SYSPUNFD
*CALL GENCS 
*CALL     WRKSTG77
*CALL     MAST3DD1
00033  01  IMSGEN-WORK-AREAS.                                              CL**2
00034      03  LINE-SUB                PICTURE S99 COMP SYNC.              CL**2
00039      03  COLUMN-LINE1.                                               CL**2
00040          05  FILLER              PICTURE X(107)                      CL**2
00041          VALUE "                                    1     1          CL**2
00042 -    "                                                7       8".    CL**2
00043      03  COLUMN-LINE2.                                               CL**2
00044          05  FILLER              PICTURE X(107)                      CL**2
00045          VALUE "          CARD IMAGE       1........0.....6.......   CL**2
00046 -    "................................................2.......0".    CL**2
00047  01  ERROR-PRINT-LINES.                                              CL**2
00048      03  CONSTANT-PRINT          PICTURE X(36).                      CL**2
00049      03  CONSTANT-NAME-PRINT     PICTURE X(32).                      CL**2
00050      03  FILLER                  PICTURE X(12).                      CL**2
00056  01  START-HOLD-NUMBER.                                              CL**2
00057      03  INCREMENT-START         PICTURE 9(6).                       CL**2
00074                                                                    DCTOT30
00075  PROCEDURE DIVISION.                                              DCTOT300
00077 ********************************************************          DCTOT300
00078 ********************************************************          DCTOT300
00079 *                                                                 DCTOT300
00080 *     INITIALIZE                                                  DCTOT300
00081 *                                                                 DCTOT300
00082 ********************************************************          DCTOT300
00083 ********************************************************          DCTOT300
00084  0000-START.                                                      DCTOT300
00085      OPEN INPUT MAST1.                                               CL**2
00086      OPEN INPUT MAST3.                                               CL**2
00087      OPEN OUTPUT SYSPRINT.                                        DCTOT300
           OPEN EXTEND PUNCH-FILE.
00089 *                                                                    CL**2
00090 *     GET DATA FILE PRIME NUMBER                                     CL**2
00091 *                                                                    CL**2
           MOVE 1 TO CON-KEY. 
00093      READ MAST3 INVALID KEY                                          CL**2
00094          GO TO 9000-MAST3-READ-ERROR.                                CL**2
00096      MOVE CTL-REV-NUM TO NUM-REV-SAVE.                               CL**2
           MOVE "N" TO FIRST-PREFIX-SW. 
00097      MOVE CTL-DATE-UPD TO DATE-SAVE.                                 CL**2
00098      MOVE GTBL-OPT-STARTSEQNO TO INCREMENT-START.                    CL**2
00099 *                                                                    CL**2
00100 *      OUTPUT HEADINGS FOR GENERATION REPORT                         CL**2
00101 *                                                                    CL**2
00102  0100-START-REQ.                                                     CL**2
00103      MOVE 99 TO LINE-CT.                                             CL**2
00104      MOVE SPACES TO STD-REPORT-REC.                                  CL**2
00105      MOVE SPACES TO PRINT-LINE.                                   DCTOT300
00106      IF GTBL-OPT-LIST EQUAL TO "Y"                                   CL**2
00107          PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                 CL**2
00108 *      INITIALIZE TABLE AND COUNT                                 DCTOT300
00109      MOVE ZERO TO GTBL-COUNT.                                        CL**2
00110      MOVE ZERO TO GTBL-MOD-REQ.                                   DCTOT300
00111      MOVE SPACES TO GTBL-OUTPUT-TABLE.                               CL**2
00112 *********************************************************         DCTOT300
00113 *********************************************************         DCTOT300
00114 *                                                                 DCTOT300
00115 *    CALL THE GENERATION MODULES AND RESPOND TO THEIR REQUESTS    DCTOT300
00116 *                                                                 DCTOT300
00117 *********************************************************         DCTOT300
00118 *********************************************************         DCTOT300
00119      IF GTBL-SEL-REQTYPE EQUAL SPACES                                CL**2
00120          GO TO 0300-CHECK-TOTAL.                                     CL**2
00121 ****************************************************************     CL**2
00122 *                                                                    CL**2
00123 *      PROCESS PROCEDURE SELECTION REQUEST                           CL**2
00124 *                                                                    CL**2
00153  0300-CHECK-TOTAL.                                                   CL**2
00154      IF GTBL-SEL-TYPE NOT EQUAL TO "32"                              CL**2
               PERFORM RETURN-CODE-00 THRU RETURN-CODE-XIT
00155          STOP RUN.                                                   CL**2
00156  0310-TOTAL-RETURN.                                                  CL**2
           CALL "TOT315". 
00161 *                                                                    CL**2
00162 *    RESPOND TO MODULE REQUESTS                                      CL**2
00163 *                                                                    CL**2
00164      IF GTBL-MOD-REQ EQUAL "9"                                       CL**2
00165          MOVE 4 TO GTBL-MOD-REQ                                      CL**2
00166          PERFORM 5000-OUTPUT-REQ THRU 5599-OUTPUT-REQ-XIT            CL**2
00167          GO TO 1000-CK-PROC-RETURN.                                  CL**2
00168      IF GTBL-MOD-REQ EQUAL 8                                         CL**2
00169          MOVE 4 TO GTBL-MOD-REQ                                      CL**2
00170          PERFORM 5000-OUTPUT-REQ THRU 5599-OUTPUT-REQ-XIT            CL**2
00171          GO TO 8000-ABORT.                                           CL**2
00172      PERFORM 5000-OUTPUT-REQ THRU 5599-OUTPUT-REQ-XIT.               CL**2
00173      GO TO 0310-TOTAL-RETURN.                                        CL**2
00174 ***************************************************************      CL**2
00175 *                                                                    CL**2
00176 *    GENERATION COMPLETE-CHECK FOR PROCEDURE SELECT                  CL**2
00177 *                                                                    CL**2
00178 ***************************************************************      CL**2
00179  1000-CK-PROC-RETURN.                                                CL**2
00180      IF GTBL-SEL-REQTYPE NOT EQUAL SPACES                            CL**2
00181          MOVE 99 TO LINE-CT                                          CL**2
00182          MOVE SPACES TO STD-REPORT-REC                               CL**2
00183          MOVE SPACES TO PRINT-LINE                                   CL**2
00184          PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT                  CL**2
               MOVE 7 TO GTBL-MOD-REQ.
00187 **************************************************                   CL**2
00188 **************************************************                   CL**2
00189 *                                                                    CL**2
00190 *     END OF REQUEST PROCESSING                                      CL**2
00191 *                                                                    CL**2
00192 ****************************************************                 CL**2
00193 ****************************************************                 CL**2
00194  1100-END-GENERATION.                                             DCTOT300
00195      CLOSE MAST1.                                                    CL**2
00196      CLOSE MAST3.                                                    CL**2
00197      CLOSE SYSPRINT.                                              DCTOT300
00198      CLOSE PUNCH-FILE.                                            DCTOT300
           EXIT PROGRAM.
00200                                                                    DCTOT30
00201 *******************************************************           DCTOT300
00202 *******************************************************           DCTOT300
00203 *                                                                 DCTOT300
00204 *                                                                    CL**2
00205 *     RESPOND TO I/O REQUESTS                                        CL**2
00206 *                                                                    CL**2
00207 *                                                                 DCTOT300
00208 *******************************************************           DCTOT300
00209 *******************************************************           DCTOT300
00210  5000-OUTPUT-REQ.                                                 DCTOT300
00211      IF GTBL-MOD-REQ EQUAL "1"                                       CL**2
00212          GO TO 5200-MAST1-READ.                                      CL**2
00213 *                                                                    CL**2
00214 *    OUTPUT COBOL STATEMENTS AND ERROR MESSAGES                      CL**2
00215 *                                                                    CL**2
00216      IF GTBL-COUNT EQUAL ZERO                                        CL**2
00217          GO TO 5599-OUTPUT-REQ-XIT.                                  CL**2
00218      MOVE 1 TO LINE-SUB.                                          DCTOT300
00219  5010-NEXT-LINE.                                                  DCTOT300
00220      IF GTBL-OUTPUT-IND (LINE-SUB) EQUAL "E"                      DCTOT300
00221          MOVE GTBL-OUTPUT-ENTRY (LINE-SUB) TO STD-REPORT-REC         CL**2
00222          PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT               DCTOT300
00223          GO TO 5100-CHECK-END.                                    DCTOT300
00224 *                                                                 DCTOT300
00225 *        OUTPUT COBOL STATMENTS                                   DCTOT300
00226 *                                                                 DCTOT300
00227      IF GTBL-OPT-LIST EQUAL "Y"                                   DCTOT300
00228          MOVE GTBL-OUTPUT-ENTRY (LINE-SUB) TO STD-REPORT-REC         CL**2
00229          PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.              DCTOT300
00230      IF GTBL-OPT-PUNCH EQUAL "Y"                                  DCTOT300
00231          MOVE GTBL-CARD-IMAGE (LINE-SUB) TO PUNCH-CARD            DCTOT300
00232          WRITE PUNCH-CARD.                                        DCTOT300
00233  5100-CHECK-END.                                                  DCTOT300
00234      IF LINE-SUB EQUAL GTBL-COUNT                                 DCTOT300
00235          GO TO 5150-OUTPUT-RESET.                                 DCTOT300
00236      ADD 1 TO LINE-SUB.                                           DCTOT300
00237      GO TO 5010-NEXT-LINE.                                        DCTOT300
00238  5150-OUTPUT-RESET.                                               DCTOT300
00239      MOVE SPACES TO GTBL-OUTPUT.                                  DCTOT300
00240      GO TO 5599-OUTPUT-REQ-XIT.                                      CL**2
00241  5200-MAST1-READ.                                                    CL**2
00242 *                                                                    CL**2
00243 *      PHYSICAL READ OF DATA FILE (PASS INFO IN LINKAGE)             CL**2
00244 *                                                                    CL**2
           MOVE DATA-KEY TO DATA-KEY-2. 
00246      READ MAST1 INVALID KEY                                          CL**2
00247          GO TO 9010-MAST1-READ-ERROR.                                CL**2
00248      MOVE MAST1-RECORD TO DATA-RECORD.                               CL**2
00249  5599-OUTPUT-REQ-XIT.                                                CL**2
00250      EXIT.                                                        DCTOT300
00251 ********************************************************             CL**2
00252 ********************************************************             CL**2
00253 *                                                                    CL**2
00254 *     ERROR ROUTINES                                                 CL**2
00255 *                                                                    CL**2
00256 ********************************************************             CL**2
00257 ********************************************************             CL**2
00258  8000-ABORT.                                                         CL**2
           PERFORM RETURN-CODE-00 THRU RETURN-CODE-XIT. 
00259      STOP RUN.                                                       CL**2
00260 *                                                                    CL**2
00261 *   CONTROL FILE READ ERROR                                          CL**2
00262 *                                                                    CL**2
00263  9000-MAST3-READ-ERROR.                                              CL**2
00264      MOVE "DCTOT-" TO ERROR-MSG-ID.                                  CL**2
00265      MOVE "950-F" TO ERROR-MSG-NUM.                                  CL**2
00266      MOVE "*ERROR" TO ERROR-MSG-WORD.                                CL**2
00267      MOVE "MAST3 READ" TO ERROR-MSG.                                 CL**2
00268      PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                     CL**2
00269      GO TO 8000-ABORT.                                               CL**2
00270 *                                                                    CL**2
00271 *   DATA FILE READ ERROR                                             CL**2
00272 *                                                                    CL**2
00273  9010-MAST1-READ-ERROR.                                              CL**2
00274      MOVE MAST1-REC-ID TO ERROR-MSG-KEY.                             CL**2
00275      MOVE "DCTOT-" TO ERROR-MSG-ID.                                  CL**2
00276      MOVE "850-S" TO ERROR-MSG-NUM.                                  CL**2
00277      MOVE "*ERROR" TO ERROR-MSG-WORD.                                CL**2
00278      MOVE "MAST1 READ" TO ERROR-MSG.                                 CL**2
00279      PERFORM DISPLAY-LINE THRU DISPLAY-LINE-XIT.                     CL**2
00280      GO TO 8000-ABORT.                                               CL**2
00281                                                                    DCTOT30
00282 *******************************************************              CL**2
00283 *******************************************************              CL**2
00284 *                                                                    CL**2
00285 *     COMMON SUBROUTINES                                             CL**2
00286 *                                                                    CL**2
00287 ********************************************************             CL**2
00288 ********************************************************             CL**2
00289 *                                                                    CL**2
00290 *   OUTPUT GENERATION CARD COLUMN SUB HEADINGS                       CL**2
00291 *      ROUTINE IS ENTERED FROM DISPLAY-LINE                          CL**2
00292 *                                                                    CL**2
00293  USER-ROUTINE.                                                       CL**2
00294      MOVE COLUMN-LINE1 TO PRINT-LINE.                                CL**2
00295      MOVE 2 TO PRT-CTL.                                              CL**2
00296      PERFORM WRITE-LINE THRU WRITE-LINE-XIT.                         CL**2
00297      MOVE COLUMN-LINE2 TO PRINT-LINE.                                CL**2
00298      MOVE 1 TO PRT-CTL.                                              CL**2
00299      PERFORM WRITE-LINE THRU WRITE-LINE-XIT.                         CL**2
00300      MOVE SPACES TO PRINT-LINE.                                      CL**2
00301      PERFORM WRITE-LINE THRU WRITE-LINE-XIT.                         CL**2
00302  USER-ROUTINE-XIT.                                                   CL**2
00303      EXIT.                                                           CL**2
*CALL     DISPLAYLN 
*CALL     WRITELN 
*CALL RETCODE 
