COMBCMD 
COMMON
#     COMBCMD - CATALOG AND MAP ACCESS DECLARATIONS.                  # 
                                               CONTROL NOLIST;
                                               CONTROL IFEQ LISTCON,1;
                                               CONTROL LIST;
                                               CONTROL FI;
      BEGIN  # COMBCMD #
  
# 
***   COMBCMD - CATALOG AND MAP ACCESS DECLARATIONS.
* 
*     COMBCMD DEFINES SYMBOLS, BUFFERS, AND TABLES USED BY
*     THE M860 CATALOG AND SMMAP ACCESS SUBROUTINES.
* 
*     NOTE - SPACE FOR THE BUFFERS, FETS AND TABLES IS ALLOCATED
*     OR ASSIGNED AT INITIALIZATION TIME.  THE POINTERS TO THE
*     BASED ARRAYS ARE SET AT THIS TIME.  COMDECK *COMBFAS* MUST BE 
*     CALLED PRIOR TO *COMBCMD*.
# 
  
      DEF ABUFLEN    #O"1300"#;      # *AST* BUFFER LENGTH #
      DEF FCTBL      #1025#;         # *FCT* BUFFER LENGTH #
      DEF MAPBUFL    #O"301"#;       # MAP BUFFER LENGTH #
      DEF OCTENTL    #3#;            # *OCT* ENTRY LENGTH # 
      DEF OMTENTL    #1#;            # *OMT* ENTRY LENGTH # 
      DEF PRMTLEN    #(MAXSM+1)#;    # PREMABLE TABLE LENGTH #
      DEF RANBL      #1025#;         # RANDOM ACCESS BUFFER LENGTH #
      DEF SEQBL      #1025#;         # SEQUENTIAL BUFFER LENGTH # 
      DEF TBUFL      #O"1001"#;      # TEMPORARY FILE BUFFER LENGTH # 
      DEF WBUFL      #O"100"#;       # WORKING BUFFER LENGTH #
  
# 
*     M860 CATALOG AND SMMAP ERROR MESSAGES.
# 
  
      DEF CMSGCLOSE  #" SFMCATN FOR FAMILY FFFFFFF CLOSED."#; 
      DEF CMSG1      #" DEVICE UNAVAILABLE ON 7990 CATALOG ACCESS. "#;
      DEF CMSG2      #" SFM CATALOG REPLACE ERROR. "#;
      DEF CMSG3      #" UNABLE TO REATTACH 7990 CATALOG. "#;
      DEF MMSGCLOSE  #" SMMAPX CLOSED."#; 
      DEF MMSG1      #" UNABLE TO REATTACH SM MAP. "#;
  
      ARRAY CMSGAREA [0:0] P(5);     # CLOSE CATALOG AND MAP MESSAGES # 
        BEGIN 
        ITEM CMSGLINE   C(00,00,48);  # MESSAGE LINE #
        ITEM CMSGMAPID  U(00,36,06);  # SM MAP ID # 
        ITEM CMSGCSUBF  C(00,42,01);  # SFM CATALOG SUBFAMILY ID #
        ITEM CMSGCFAM   C(02,00,07);  # SFM CATALOG FAMILY NAME # 
        ITEM CMSGTERM   U(04,48,12) = [0];  # MESSAGE TERMINATOR #
        END 
  
      COMMON BCMDCOM; 
  
        BEGIN  # BCMDCOM #
                                     # $$ # 
        ITEM $$BCMD$$   C(20) = "****** COMBCMD *****"; 
                                     # $$ # 
  
        ITEM EXEC       B;           # SSEXECUTIVE FLAG # 
  
        ARRAY CMAMSG [0:0] P(3);     # M860 CATALOG AND SMMAP ACCESS
                                       FATAL ERROR MESSAGE #
          BEGIN 
          ITEM CMA$MSG    C(00,00,20) = [" PROGRAM ABNORMAL,  "]; 
          ITEM CMA$RTN    C(02,00,08);  # ROUTINE NAME #
          ITEM CMA$ZBYTE  U(02,48,12) = [0];  # ZERO BYTE TERMINATOR #
          END 
  
        ARRAY KDISBLK [0:0] P(2); ;  # K-DISPLAY REQUEST BLOCK #
  
        ITEM ASTBADR    U;           # *AST* BUFFER ADDRESS # 
        ITEM FCTBADR    U;           # *FCT* BUFFER ADDRESS # 
        ITEM FCTFADR    U;           # *FCT* FET ADDRESS #
        ITEM MAPBADR    U;           # MAP BUFFER ADDRESS # 
        ITEM MAPFADR    U;           # MAP FET ADDRESS #
        ITEM OCTADR     U;           # OPEN CATALOG TABLE ADDRESS # 
        ITEM OCTLEN     I;           # OPEN CATALOG TABLE LENGTH #
        ITEM OMTADR     U;           # OPEN MAP TABLE ADDRESS # 
        ITEM PRMBADR    U;           # PREAMBLE TABLE BUFFER ADDRESS #
        ITEM TBUFADR    U;           # TEMPORARY FILE BUFFER ADDRESS #
        ITEM TFETADR    U;           # TEMPORARY FILE FET ADDRESS # 
        ITEM WBUFADR    U;           # WORKING BUFFER ADDRESS # 
  
  
# 
*     FETS. 
# 
  
        BASED 
        ARRAY FCTFET [0:0] S(RFETL); ;  # *FCT* FET # 
  
        BASED 
        ARRAY MAPFET [0:0] S(RFETL); ;  # MAP FET # 
  
        BASED 
        ARRAY TFET [0:1] S(RFETL); ;  # TEMPORARY FILE FET #
  
# 
*     I/O BUFFERS.
# 
  
        BASED 
        ARRAY FCTBUF [1:FCTBL]  P(1);  # *FCT* BUFFER # 
          BEGIN 
          ITEM FCTB$WRD   I(00,00,60);  # *FCT* BUFFER WORD # 
          END 
  
        ARRAY FCTBUFCW [0:0] P(1);   # *FCT* BUFFER CONTROL WORD #
          BEGIN 
          ITEM FB$CWRD    I(00,00,60);  # *FCT* BUFFER CONTROL WORD # 
          ITEM FB$BMF     B(00,00,01);  # BUFFER MODIFIED FLAG #
          ITEM FB$PRUCNT  U(00,30,06);  # NUMBER OF PRU-S IN BUFFER # 
          ITEM FB$PRUNUM  U(00,36,15);  # BEGINNING PRU NUMBER #
          ITEM FB$ORD     U(00,51,09);  # ORDINAL OF ENTRY IN *OCT* # 
          END 
  
        BASED 
        ARRAY MAPBUF [1:MAPBUFL] P(1);  # MAP BUFFER #
          BEGIN 
          ITEM MAPB$W     I(00,00,60);  # MAP BUFFER WORD # 
          END 
  
        ARRAY MBUFCW [0:0] P(1);     # MAP BUFFER CONTROL WORD #
          BEGIN 
          ITEM MB$CWRD    I(00,00,60);  # MAP BUFFER CONTROL WORD # 
          ITEM MB$BMF     B(00,00,01);  # BUFFER MODIFIED FLAG #
          ITEM MB$PRUNUM  U(00,03,09);  # PRU NUMBER #
          ITEM MB$SMID    U(00,12,06);  # CSU-ID #
          ITEM MB$LFN     C(00,18,07);  # LOCAL FILE NAME # 
          END 
  
        BASED 
        ARRAY TBUF [1:TBUFL] S(3);   # TEMPORARY FILE BUFFER #
          BEGIN 
          ITEM TBUF$W     I(00,00,60);  # TEMPORARY FILE BUFFER WORD #
          ITEM TBUF$W1    I(01,00,60);  # TEMPORARY BUFFER WORD 1 # 
          ITEM TBUF$W2    I(02,00,60);  # TEMPORARY BUFFER WORD 2 # 
          END 
  
        BASED 
        ARRAY WBUF [1:WBUFL] P(1);   # WORKING BUFFER # 
          BEGIN 
          ITEM WBUF$W     I(00,00,60);  # WORKING BUFFER WORD # 
          END 
  
# 
*     TABLES. 
# 
  
        BASED 
        ARRAY OCT [1:1] S(OCTENTL);  # OPEN CATALOG TABLE # 
          BEGIN 
          ITEM OCT$W1     I(00,00,60);  # *OCT* WORD 1 #
          ITEM OCT$INTLK  B(00,00,01);  # CATALOG FILE INTERLOCKED #
          ITEM OCT$FAM    C(00,12,07);  # FAMILY NAME # 
          ITEM OCT$SUBF   U(00,54,06);  # SUBFAMILY DESIGNATOR #
          ITEM OCT$W2     I(01,00,60);  # *OCT* WORD 2 #
          ITEM OCT$LFN    C(01,00,07);  # LOCAL FILE NAME # 
          ITEM OCT$PRMA   I(01,42,18);  # PREAMBLE TABLE ADDRESS #
          ITEM OCT$W3     I(02,00,60);  # *OCT* WORD 3 #
          ITEM OCT$ATTM   C(02,00,02);  # CATALOG ATTACH MODE # 
          ITEM OCT$BUFL   U(02,30,12);  # I/O BUFFER LENGTH # 
          ITEM OCT$LINK   I(02,42,18);  # REQUEST LINK #
          END 
  
        BASED 
        ARRAY OMT [1:MAXSM] S(OMTENTL);  # OPEN MAP TABLE # 
          BEGIN 
          ITEM OMT$W1     I(00,00,60);  # *OMT* WORD 1 #
          ITEM OMT$OPEN   B(00,00,01);  # MAP OPEN BIT #
          ITEM OMT$INTLK  B(00,01,01);  # MAP FILE INTERLOCKED #
          ITEM OMT$ATTM   C(00,06,02);  # MAP FILE ATTACH MODE #
          ITEM OMT$LFN    C(00,18,07);  # LOCAL FILE NAME # 
          ITEM OMT$ZER    U(00,54,06);  # ZERO FILE NAME #
          END 
  
        BASED 
        ARRAY PRMBUF;;               # PREAMBLE TABLE # 
  
        END  # BCMDCOM #
  
      END  # COMBCMD #
  
                                               CONTROL LIST;
