COMTLAB 
COMMON
  
#     COMTLAB - COMMON DEFINITIONS FOR *SSLABEL* PROCS.               # 
                                               CONTROL NOLIST;
                                               CONTROL IFEQ LISTCON,1;
                                               CONTROL LIST;
                                               CONTROL FI;
      BEGIN  # COMTLAB #
  
# 
***   COMTLAB - COMMON DEFINITIONS FOR *SSLABEL* PROCS. 
* 
*     COMTLAB CONTAINS THE DEFINITIONS FOR ALL THE ITEMS, ARRAYS, 
*     STATUS LISTS, FETS, BUFFERS AND COMMON AREAS COMMON TO ALL
*     THE *SSLABEL* PROCS.
# 
  
  
      DEF BUFL       #O"1101"#;      # *CIO* BUFFER LENGTH #
      DEF FCTBLN     #1040#;         # *FCT* BUFFER LENGTH #
      DEF MAXNUM     #100#;          # MAXIMUM CUBE LOCATIONS HANDLED # 
      DEF SCR        #"SCR"#;        # SCRATCH FILE NAME #
  
  
# 
*     CARTRIDGE MANUFACTURER TYPE.
# 
  
      DEF IBMCART    #"A-"#;         # CARTRIDGE TYPE IS IBM #
      DEF OTHCART    #"B-"#;         # CARTRIDGE TYPE IS NOT IBM #
  
# 
*     STATUS LIST FOR THE TYPE OF CARTRIDGE LABEL.
# 
  
      STATUS LABTYPE                 # TYPE OF LABEL #
        MAN$LAB,                     # MANUFACTURERS LABEL #
        FAM$LAB,                     # FAMILY LABEL # 
        SCR$LAB,                     # SCRATCH LABEL #
        UNR$LAB,                     # UNRECOGNIZABLE LABEL # 
        LSTLABTYPE;                  # END OF STATUS LIST # 
  
# 
*     STATUS LIST FOR THE TYPE OF SEARCH TO BE
*     CONDUCTED THROUGH SMMAP.
# 
  
      STATUS SERCH$TYPE              # TYPE OF SEARCH THROUGH SMMAP # 
        LST$UNAS,                    # FOR LAST UNASSIGNED CUBE # 
        LOC,                         # FOR A LOCATION # 
        ASSIGN,                      # FOR A SPECIFIC CARTRIDGE OR CUBE 
                                       ASSIGNED TO FAMILY OR POOL # 
        CSN$MATCH,                   # FOR A MATCHING CSN # 
        CART$POOL,                   # FOR A CARTRIDGE IN THE POOL #
        ASGN$FAM,                    # FOR ANY ENTRY ASSIGNED TO A
                                       GIVEN FAMILY # 
        LST$SERCH;                   # END OF STATUS LIST # 
  
# 
*     ARRAY TO HOLD THE DIRECTIVE NAMES.  THE ORDER 
*     OF THE DIRECTIVE NAMES IS THE SAME AS THAT OF 
*     THE SWITCH SET UP IN *LBMAIN*, TO PROCESS THE 
*     DIRECTIVES. 
# 
  
      ARRAY DIR$NAME [0:9] S(1);
        BEGIN 
        ITEM DIR$NM     C(00,00,02) = [  ## 
        "AB",                        # ADDCUBE #
        "AS",                        # ADDSM #
        "AM",                        # ADDMSC # 
        "FX",                        # FIXVSN # 
        "FC",                        # FREEMSC #
        "IB",                        # FLAGMSC #
        "RS",                        # RMVSM #
        "RB",                        # RMVCUBE #
        "RM",                        # RMVMSC # 
        "RC"];                       # RSTRMSC #
        END 
  
# 
*     ARRAY TO HOLD ANY FATAL ERROR 
*     MESSAGES FROM *SSLABEL*.
# 
  
      ARRAY LBMSG [0:0] P(4); 
        BEGIN 
        ITEM LBMSG$LN   C(00,00,39);  # MESSAGE LINE #
        ITEM LBMSG$ABN  C(00,00,19) = [" SSLABEL ABNORMAL, "];
        ITEM LBMSG$PROC C(01,54,20);  # PROC NAME # 
        ITEM LBMSG$TERM U(03,48,12) = [0];  # ZERO TERMINATOR # 
        END 
  
# 
*     ARRAY TO HOLD THE MESSAGES TO BE DISPLAYED
*     IN THE DAYFILE AND AT THE CONSOLE.
# 
  
      ARRAY LBMSG$BUF [0:0] P(4);    # MESSAGE BUFFER # 
        BEGIN 
        ITEM LBMSG$LINE C(00,00,38);  # MESSAGE LINE #
        ITEM LBMSG$CSN  C(02,12,06);  # CSN # 
        ITEM LBMSG$SMID C(00,30,01);  # SM ID # 
        ITEM LBMSG$SLOT U(02,00,06);  # I/O DRAWER SLOT NUMBER #
        ITEM LBMSG$ZRO  U(03,48,12) = [0];  # ZERO BYTE TERMINATOR #
        END 
  
# 
*     COMMON AREA USED BY *SSLABEL* PROCS.
# 
  
      COMMON TLABCOM; 
  
        BEGIN  # TLABCOM #
                                     # $$ # 
        ITEM $$TLAB$$   C(20) = "****** COMTLAB *****"; 
                                     # $$ # 
        ITEM ADDRSNS    I;           # ADDRESS OF BUFFER TO HOLD THE
                                       DRAWER STATUS TABLE #
        ITEM LB$BUFP    I;           # ADDRESS OF ARRAY *LBIN$BUF* #
        ITEM NEWLABP    I;           # ADDRESS OF *NEWLABEL* ARRAY #
        ITEM NUMDONE    I;           # CUBES OR CARTIDGES PROCESSED # 
        ITEM OLDLABP    I;           # ADDRESS OF *OLDLABEL* ARRAY #
        ITEM PD$T       U;           # PACKED DATE AND TIME # 
        ITEM REQID$LB   I;           # REQUESTOR ID # 
        ITEM SSID$LB    I;           # SUBSYSTEM ID # 
        ITEM DRD$NUM    I;           # DRD NUMBER # 
  
# 
*     FET AND CIO BUFFER FOR READING THE
*     *INPUT* FILE. 
# 
  
        ARRAY LBIN$FET [0:0] S(SFETL);; 
        ARRAY LBIN$BUF [0:0]  S(FCTBLN);; 
  
# 
*     FET AND CIO BUFFER USED FOR WRITING TO
*     THE INTERMEDIATE FILE *SCR*.
# 
  
        ARRAY SCR$FET [0:0] S(SFETL);;
        ARRAY SCR$BUF [0:0] S(BUFL);; 
  
# 
*     ARRAY TO HOLD THE COORDINATE POSITIONS OF ALL THE CUBES 
*     IN AN AREA SPECIFIED ON *ADDCUBE* AND *RMVCUBE* DIRECTIVE.
# 
  
        ARRAY YZCOORD [1:MAXNUM] P(1);
          BEGIN 
          ITEM Y$COORD    U(00,00,30);  # Y COORDINATE #
          ITEM Z$COORD    U(00,30,30);  # Z COORDINATE #
          END 
  
        END  # TLABCOM #
  
      END  # COMTLAB #
  
                                               CONTROL LIST;
