COMPVID 
COMMON
          CTEXT  COMPVID - VALIDATE LOGICAL ID. 
          SPACE  4,10 
          IF -DEF,QUAL$,1 
          QUAL   COMPVID
          BASE   MIXED
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 VID      SPACE  4,10 
***       VID - VALIDATE LOGICAL ID.
*         C. R. LUND.        81/10/23.
*         J. HOLLISTER.      83/12/20.
 VID      SPACE  4,10 
***       *VID* VALIDATES A LOGICAL ID AND RETURNS THE ATTRIBUTES.
* 
*         ENTRY  (A) = LID. 
* 
*         EXIT   (A) = 0, IF LID NOT FOUND. 
*                (A) = 6/0,1/H,1/E,1/V,1/B,1/F,7/0 IF LID FOUND.
*                      H = HOST BIT FROM LIDS PID ENTRY.
*                      E = ENABLE BIT.
*                      V = VALIDATION BIT.
*                      B = LOOPBACK BIT.
*                      F = LID FOUND FLAG.
* 
*         USES   T0 - T7, T8, CM - CM+4, UN - UN+4. 
  
  
 VID      SUBR               ENTRY/EXIT 
          SHN    14          SAVE LID 
          STD    T7 
          SHN    -6 
          SCN    77 
          STD    T8 
          LDN    1           PRESET NEXT PID OFFSET 
          STD    T5 
          STD    T6          PRESET LID TABLE POINTER OFFSET
          LDK    LIDP        GET FWA LID TABLE
          CRD    T0 
          LDN    0           CLEAR LID ATTRIBUTES 
          STD    T4 
          SOD    T2          SUBTRACT HEADER WORD FROM TABLE LENGTH 
  
*         GET NEXT TABLE ENTRY. 
  
 VID1     LDD    T0          GET NEXT TABLE ENTRY 
          SHN    14 
          LMD    T1 
          ADD    T6 
          CRD    CM 
          ADN    1
          CRD    UN 
          LDD    T6          CHECK IF PID ENTRY 
          SBD    T5 
          ZJN    VID4        IF PID ENTRY 
  
*         PROCESS LID.
  
 VID2     LDD    CM+1        CHECK LID
          LMD    T8 
          SHN    6
          LMD    CM 
          LMD    T7 
          ZJN    VID6        IF LID FOUND 
  
*         GET NEXT LID. 
  
 VID3     AOD    T6          INCREMENT LID TABLE POINTER OFFSET 
          SOD    T2          DECREMENT COUNT OF WORDS LEFT IN TABLE 
          NJN    VID1        IF NOT END OF TABLE
 VID3.1   LDD    T4          GET ATTRIBUTES 
          SHN    6
          LJM    VIDX        RETURN 
  
*         PROCESS PID.
  
 VID4     LDD    T6          GET POINTER TO NEXT PID
          ADD    UN+4 
          STD    T5 
          LDD    CM+1        GET PID ATTRIBUTES 
          LPN    50          IGNORE PID ENABLE BIT
          STD    T3 
          LDN    2           SKIP TO END OF PID ENTRY 
          RAD    T6 
          LCN    2           DECREMENT COUNT OF WORDS LEFT IN TABLE 
          RAD    T2 
 VID5     UJN    VID3        CONTINUE 
  
*         MERGE LID ATTRIBUTES WITH PID ATTRIBUTES AND
*         PREVIOUSLY FOUND ATTRIBUTES.
  
 VID6     LDD    CM+2        CHECK LID ENABLE ATTRIBUTE 
          SHN    21-12
          PJN    VID7        IF STORE AND FORWARD BIT NOT SET 
          LDN    0           IGNORE PID HOST AND VALIDATION BITS
          STD    T3 
          LDD    CM+2        GET LID ATTRIBUTES 
          SHN    -6 
          LPN    14 
          UJN    VID8        MERGE WITH PID ATTRIBUTES
  
 VID7     SHN    -6-21+12+22 GET LID ATTRIBUTES 
          LPN    4
 VID8     RAD    T3          MERGE WITH PID ATTRIBUTES
          LDD    CM+2        MERGE LID ENABLE BIT WITH ATTRIBUTES 
          SHN    -7 
          LPN    20 
          RAD    T3 
          ADC    SCNI        MERGE ATTRIBUTES WITH PREVIOUS ATTRIBUTES
          STM    VIDA 
          LDD    T4 
 VIDA     SCN    ** 
          LMD    T3 
          SCN    2           SET LID FOUND FLAG 
          LMN    2
          STD    T4 
          UJP    VID5        PROCESS NEXT TABLE WORD
          SPACE  4,10 
          BASE   *
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   *
 VID      EQU    /COMPVID/VID 
 QUAL$    ENDIF 
          ENDX
