*DECK COBINIT 
USETEXT CCTTEXT 
          PRGM  COBINIT;
 #     COBOL INITIALIZATION - FIRST THING DONE# 
  
          BEGIN 
*CALL LDSET 
*CALL TABLEDF 
*CALL TABLETYP
*CALL ASSEMOP 
*CALL OVLCOM
*CALL SYSFET
          BASED ARRAY DMYFET [0:0] S(5);
              BEGIN 
              ITEM DMYFETNAME  C(0,0,7);
              ITEM DMYFETCS    U(0,42,18);
              END 
          XREF
              BEGIN 
              PROC ASGNBUF; 
              PROC CCKRACK; 
              FUNC  GETNOST B;
            FUNC GETDBUG B; 
              PROC INITFDLT;
              PROC BLDLOF;
              PROC INITCCT; 
              PROC TABINIT; 
              PROC OVERRTN; 
              PROC PRINTOCT;
              PROC DATE;
              PROC TIME;
              FUNC VIRTUAL; 
              ITEM LIBNAME  C(10);
              ITEM LISTTYP C(20); 
              ITEM LISTDAT C(10); 
              ITEM LISTTIM C(10); 
              ITEM LISTHED  C(10);
              ITEM LISTID  C(10); 
              PROC CBLIST;
              PROC SETBFS;
              END 
          ITEM SVPID I; 
          CONTROL EJECT;
          PROC GENLDSET (LTYPE, LNAME); 
 # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *        GENLDSET - GENERATE A LDSET TABLE ENTRY 
 *
 *        INPUTS
 *            LTYPE = TABLE TYPE - STATUS LDSETVAL, OMIT, USE OR LIBRARY
 *            LNAME = NAME - 7 CHARS OR LESS
 *
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * #
  
          BEGIN 
          ITEM LTYPE S:LDSETVAL;
          ITEM LNAME C(7);
          ITEM LOCPTR I;
  
          CCTLDSETLEN = CCTLDSETLEN + 1;  # NEW ENTRY NUMBER #
          LOCPTR = VIRTUAL (TABLETYPE"LDSET$", CCTLDSETLEN);
          LDSETTYPE [LOCPTR] = LTYPE; 
          LDSETNAME [LOCPTR] = LNAME; 
          RETURN; 
          END 
          CONTROL EJECT;
  #    START OF PROCESS  #
  
          SVPID = CCTPHASEID;   # SAVE PHASE ID OVER CCTINIT #
          INITCCT;    #INITIALIZE THE CCT#
          CCTPHASEID = SVPID;  # RESTORE PHASE ID FOR INIT PHASE #
          TABINIT;   #INITIALIZE THE TABLE TABLES#
          IF CCT1STCOMPIL 
          THEN
              BEGIN   #IF THIS IS FIRST OF A STACKED COMPILE# 
              CCTIDBUG[0] = GETDBUG;
              CCKRACK;    #CALL CONTROL CARD CRACKER# 
              IF CCTIDBUG[0]
                  THEN
                  BEGIN 
                  CCTSUBSCHECK[0] = TRUE; 
                  CCTRFCHECK[0] = TRUE; 
              END 
              CCTNOSTERM[0] = GETNOST(CCTSCLISTFIL[0]); 
 #       PUT FILE NAMES FROM CCT INTO FETS FOR SYSTEM FILES # 
              P<DMYFET> = INFET1;  # INPUT #
              DMYFETNAME = CCTSOURCEFIL;
              DMYFETCS = 3;  # CODE AND STATUS TO BINARY COMPLETE # 
              P<DMYFET> = OUTFET1;  # OUTPUT #
              DMYFETNAME = CCTSCLISTFIL;
              DMYFETCS = 3; 
              $BEGIN
              P<DMYFET> = CHKFET1;  # CHK # 
              DMYFETNAME = CCTCHKOUT; 
              DMYFETCS = 3; 
              $END
              BLDLOF;  # BUILD LIST OF FILES #
              SETBFS;   # SET BUFFER SIZE # 
              CBLIST (8,0,0);   # INITIALIZE LISTING #
 #     PUT STANDARD LIBRARY NAMES INTO LDSET TABLE  # 
              GENLDSET(LDSETVAL"LIBRARY", LIBNAME);  #LDSET,LIB=LIBRARY#
              IF NOT CCTSUBPROGR
              AND NOT CCTMAINSUB
             AND NOT CCTTAF 
              THEN
                  BEGIN  # NOT SUB COMPILATION - FORCE NEEDED ROUTINES #
                  GENLDSET(LDSETVAL"USE", "C.GETBK");  #LOAD CMM IFACE# 
                  END 
              IF CCTFDL 
              THEN
                  BEGIN   # FDL DIRECTIVES PRESENT - SET UP LIST #
                  LISTTYP = "  FDL CONTROL CARD L"; 
                  LISTID = "ISTING    ";
                  END 
              END 
          ELSE
              BEGIN 
              LISTTYP = "  SOURCE LISTING OF "; 
              LISTID  = "          "; 
              CBLIST(11);    #RESET TO PAGE NUMBER ONE# 
              END 
 #     INITIALIZE CBLIST AND DEFINE HEADS AND FEET  # 
          CBLIST(8, "OUTPUT",6);
          DATE(CCTDATE,CCTDATFORMAT); 
          LISTDAT = CCTDATE;
          TIME(LISTTIM);    # GET CURRENT TIME #
          IF CCTSOURCLIST 
          THEN
              BEGIN    # IF LISTING SELECTED SET UP FEET, ETC # 
              CBLIST(4, LISTHED,110);  # CREATE NEW HEADER #
              ASGNBUF(OUTFET);   # ASSIGN BUFFER - AUTO MAY NOT WORK #
              $BEGIN
              CBLIST(3, " ", 1);  # PAGE EJECT - DEBUG ONLY # 
              $END
              IF CCTPSQ 
              THEN
                  BEGIN 
                  CBLIST(6,"COLUMN   1         2         3         4
     5         6         7         8",80);
                  CBLIST(7,"12345678901234567890123456789012345678901234
567890123456789012345678901234567890",80);
                  END 
              ELSE
                  BEGIN 
                  IF CCTNOSTERM 
                  THEN
                      BEGIN   # NOS TERMINAL FOR OUTPUT # 
                      CBLIST(6,"          COLUMN   1         2         3
         4         5         6         7         8",90);
                      CBLIST(7,"          123456789012345678901234567890
12345678901234567890123456789012345678901234567890",90);
                      END 
                  ELSE
                      BEGIN  # NORMAL LISTING # 
                      CBLIST(6,"         COLUMN   1         2         3 
        4         5         6         7         8",90); 
                      CBLIST(7,"         1234567890123456789012345678901
2345678901234567890123456789012345678901234567890",90); 
                      END 
                  END 
              END 
          ASGNBUF(INFET);  # ASSIGN INPUT BUFFER - AUTO WONT WORK # 
          P<DMYFET> = OUTFET1;
          DMYFETCS = O"17";  # SET AS WRITE TO CAUSE BUFFER FLUSH # 
          IF CCT1STCOMPIL 
          THEN
              BEGIN 
              IF CCTFDL 
              THEN
                  BEGIN 
                  INITFDLT;  # PROCESS FDL DIRECTIVES # 
                  LISTTYP = "  SOURCE LISTING OF "; 
                  LISTID = "          ";
                  END 
              END 
          ELSE
              BEGIN 
              CCT1STCOMPIL = TRUE;  # RESET STACKED COMPILE FLAG #
              IF CCTFDL 
              THEN
                  GENLDSET(LDSETVAL"LIBRARY", "SYSLIB"); #FOR CAPSULES# 
              END 
 #
 *        SET VARIOUS TABLE ATTRIBUTES WHICH DEPEND ON CONTROL CARD 
*         OPTIONS 
# 
          IF CCTDPARAM
          THEN
              BEGIN   # A SUBSCHEMA IS HERE - SAVE DNT OVER OVLAYS #
              TTABRTNOVL [TABLETYPE "DNT$"] = OVERLAY"DBTRANS"; 
              TTABGROUP1 [TABLETYPE "DNT$"] = FALSE;
              TTABRTNOVL [TABLETYPE"NAMET$"] = OVERLAY"DBTRANS";
              TTABGROUP1 [TABLETYPE"NAMET$"] = FALSE; 
              END 
          IF CCTDUMPDATA THEN 
              BEGIN 
              TTABSAVEIT [TABLETYPE"NAMET$"] = TRUE;
              TTABSAVEIT [TABLETYPE "PLT$"] = TRUE; 
              TTABSAVEIT [TABLETYPE "PLTSTR$"] = TRUE;
              TTABSAVEIT [TABLETYPE "DNAT$"] = TRUE;
              TTABSAVEIT [TABLETYPE "DNT$"] = TRUE; 
              TTABSAVEIT [TABLETYPE "FNAT$"] = TRUE;
              TTABSAVEIT [TABLETYPE "AUX$"] = TRUE; 
              END 
          IF CCTXREFLIST
          THEN
              BEGIN 
 #     IF CROSS REFERENCE THESE TABLES MUST BE SAVED #
              TTABSAVEIT [TABLETYPE"AWRT$"] = TRUE; 
              TTABSAVEIT [TABLETYPE"INT$" ] = TRUE; 
              TTABSAVEIT [TABLETYPE"DNT$" ] = TRUE; 
              TTABSAVEIT [TABLETYPE"PNT$" ] = TRUE; 
              TTABSAVEIT [TABLETYPE"INT$" ] = TRUE; 
              TTABSAVEIT [TABLETYPE"NAMET$"] = TRUE;
              END 
          IF CCTMEMORYMAP OR CCTIDBUG[0]
          THEN
              BEGIN 
 #     IF MEMORYMAP OR INTERACTIVE DEBUGGING, SAVE THESE TABLES        #
              TTABSAVEIT [TABLETYPE"DNAT$"] = TRUE; 
              TTABSAVEIT [TABLETYPE"DNT$" ] = TRUE; 
              TTABSAVEIT [TABLETYPE"NAMET$"] = TRUE;
              TTABSAVEIT [TABLETYPE"PNAT$"] = TRUE; 
              TTABSAVEIT [TABLETYPE"PNT$" ] = TRUE; 
              TTABSAVEIT [TABLETYPE "FNAT$"] = TRUE;
              TTABSAVEIT [TABLETYPE "AUX$ "] = TRUE;
              END 
          IF CCTTRACE 
          THEN
              BEGIN 
 #     IF TRACE, SAVE THESE TABLES #
              TTABSAVEIT [TABLETYPE "PNT$" ] = TRUE;
              TTABSAVEIT [TABLETYPE "NAMET$"] = TRUE; 
              END 
          IF CCTTDF 
          THEN
 #     IF TERMINAL DUMP, THESE TABLES MUST BE SAVED # 
              BEGIN 
              TTABSAVEIT [TABLETYPE "AUX$" ] = TRUE;
              TTABSAVEIT [TABLETYPE "DNAT$"] = TRUE;
              TTABSAVEIT [TABLETYPE "DNT$" ] = TRUE;
              TTABSAVEIT [TABLETYPE "FNAT$"] = TRUE;
              TTABSAVEIT [TABLETYPE"NAMET$"] = TRUE;
              END 
          OVERRTN;
          END 
          TERM
