COMCVLC 
COMMON
          CTEXT  COMCVLC - VALIDATE SECURITY ACCESS LEVELS/CATEGORIES.
          SPACE  4,10 
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   COMCVLC
 QUAL$    ENDIF 
          BASE   D
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4,10 
***       VLC - VALIDATE ACCESS LEVELS/CATEGORIES.
*         M. S. PESCHMAN     82/08/10.
*         P. C. SMITH        83/06/27.
 VLC      SPACE  4,10 
***       *COMCVLC* WILL DETERMINE IF A SPECIFIED SECURITY ACCESS LEVEL 
*         OR ACCESS CATEGORY NAME IS VALID.  (THE POSSIBLE NAMES FOR
*         ACCESS LEVELS AND CATEGORIES ARE DEFINED IN *COMSMLS*). 
*         *COMCVLC* ALSO CONTAINS TABLES OF THE VALID ACCESS LEVEL
*         NAMES (*TALV*, LENGTH *TALVL*) AND ACCESS CATEGORY NAMES
*         (*TACT*, LENGTH *TACTL*), WHICH MAY BE USED BY OTHER
*         ROUTINES OUTSIDE *COMCVLC*. 
 VLC      SPACE  4,10 
**        VLC - VALIDATE ACCESS LEVELS/CATEGORIES.
* 
*         ENTRY  (X1) = NAME TO BE CHECKED (LEFT JUSTIFIED ZERO FILL).
*                (B2) = 0, IF ACCESS LEVEL. 
*                (B2) .NE. 0, IF ACCESS CATEGORY. 
* 
*         EXIT   (X2) = CORRESPONDING NUMERIC VALUE OF SPECIFIED
*                       ACCESS LEVEL OR CATEGORY NAME.
*                (X2) .LT. 0, IF LEVEL OR CATEGORY NOT FOUND. 
* 
*         USES   X - 2, 3.
*                A - 3. 
*                B - 3. 
* 
*         XREF   COMSMLS. 
  
  
 VLC      SUBR               ENTRY/EXIT 
          SB3    TALV        INITIALIZE TABLE POINTERS
          SX2    TALVL
          ZR     B2,VLC1     IF ACCESS LEVEL CONVERSION 
          SB3    TACT        INITIALIZE TABLE POINTERS
          SX2    TACTL
 VLC1     SX2    X2-1        DECREMENT POINTER
          NG     X2,VLCX     IF SPECIFIED NAME NOT FOUND IN TABLE 
          SA3    B3+X2       READ NEXT TABLE ENTRY
          BX3    X1-X3
          NZ     X3,VLC1     IF NOT A MATCH 
          EQ     VLCX        RETURN 
 TALV     SPACE  4,10 
**        TALV - TABLE OF ACCESS LEVELS.
* 
*T        42/ AL, 18/ 0 
* 
*         AL     ACCESS LEVEL NAME (DEFINED IN *COMSMLS*).
  
  
 TALV     BSS    0           TABLE OF ACCESS LEVELS 
          DATA   C*"ALM0"*   ACCESS LEVEL 0 
          DATA   C*"ALM1"*   ACCESS LEVEL 1 
          DATA   C*"ALM2"*   ACCESS LEVEL 2 
          DATA   C*"ALM3"*   ACCESS LEVEL 3 
          DATA   C*"ALM4"*   ACCESS LEVEL 4 
          DATA   C*"ALM5"*   ACCESS LEVEL 5 
          DATA   C*"ALM6"*   ACCESS LEVEL 6 
          DATA   C*"ALM7"*   ACCESS LEVEL 7 
  
 TALVL    EQU    *-TALV      ACCESS LEVEL TABLE LENGTH
 TACT     SPACE  4,10 
**        TACT - TABLE OF ACCESS CATEGORIES.
* 
*T        42/ AC, 18/ 0 
* 
*         AC     ACCESS CATEGORY NAME (DEFINED IN *COMSMLS*). 
  
  
 TACT     BSS    0
          DATA   C*"ACM00"*  ACCESS CATEGORY 00 
          DATA   C*"ACM01"*  ACCESS CATEGORY 01 
          DATA   C*"ACM02"*  ACCESS CATEGORY 02 
          DATA   C*"ACM03"*  ACCESS CATEGORY 03 
          DATA   C*"ACM04"*  ACCESS CATEGORY 04 
          DATA   C*"ACM05"*  ACCESS CATEGORY 05 
          DATA   C*"ACM06"*  ACCESS CATEGORY 06 
          DATA   C*"ACM07"*  ACCESS CATEGORY 07 
          DATA   C*"ACM08"*  ACCESS CATEGORY 08 
          DATA   C*"ACM09"*  ACCESS CATEGORY 09 
          DATA   C*"ACM10"*  ACCESS CATEGORY 10 
          DATA   C*"ACM11"*  ACCESS CATEGORY 11 
          DATA   C*"ACM12"*  ACCESS CATEGORY 12 
          DATA   C*"ACM13"*  ACCESS CATEGORY 13 
          DATA   C*"ACM14"*  ACCESS CATEGORY 14 
          DATA   C*"ACM15"*  ACCESS CATEGORY 15 
          DATA   C*"ACM16"*  ACCESS CATEGORY 16 
          DATA   C*"ACM17"*  ACCESS CATEGORY 17 
          DATA   C*"ACM18"*  ACCESS CATEGORY 18 
          DATA   C*"ACM19"*  ACCESS CATEGORY 19 
          DATA   C*"ACM20"*  ACCESS CATEGORY 20 
          DATA   C*"ACM21"*  ACCESS CATEGORY 21 
          DATA   C*"ACM22"*  ACCESS CATEGORY 22 
          DATA   C*"ACM23"*  ACCESS CATEGORY 23 
          DATA   C*"ACM24"*  ACCESS CATEGORY 24 
          DATA   C*"ACM25"*  ACCESS CATEGORY 25 
          DATA   C*"ACM26"*  ACCESS CATEGORY 26 
          DATA   C*"ACM27"*  ACCESS CATEGORY 27 
          DATA   C*"ACM28"*  ACCESS CATEGORY 28 
          DATA   C*"ACM29"*  ACCESS CATEGORY 29 
          DATA   C*"ACM30"*  ACCESS CATEGORY 30 
          DATA   C*"ACM31"*  ACCESS CATEGORY 31 
  
 TACTL    EQU    *-TACT      ACCESS CATEGORY TABLE LENGTH 
          SPACE  4,10 
          BASE   *
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   *
 VLC      EQU    /COMCVLC/VLC 
 TALV     EQU    /COMCVLC/TALV
 TALVL    EQU    /COMCVLC/TALVL 
 TACT     EQU    /COMCVLC/TACT
 TACTL    EQU    /COMCVLC/TACTL 
 QUAL$    ENDIF 
 VLC      ENDX
