*DECK LOCLLCB 
USETEXT NIPDEF
USETEXT TNT 
USETEXT LLCB
USETEXT PT
PROC LOCLLCB((HN),(TN),LLCBAD);  # LOCATE LLCB                         #
 STARTIMS;
 #
*1DC  LOCLLCB 
* 
*     1. PROC NAME           AUTHOR              DATE 
*        LOCLLCB             C. BITTNER          81/04/16 
* 
*     2. FUNCTIONAL DESCRIPTION 
*        LOCATE LOGICAL LINK CONTROL BLOCK. 
* 
*     3. METHOD USED
*        USING THE TERMINAL NODE, INDEX INTO THE TNT TO FIND THE
*        FIRST LLCB FOR THE LOGICAL LINK. 
*        SEARCH FOR LLCB WITH A MATCHING HOST NODE. 
* 
*     4. ENTRY PARAMETERS 
*        HN - HOST NODE 
*        TN - TERMINAL NODE 
* 
*     5. EXIT PARAMETERS
*        LLCBAD - LLCB ADDRESS
* 
*     6. SYMPL TEXTS USED 
*        NIPDEF              PT 
*        TNT                 LLCB 
* 
*     7. ROUTINES CALLED
*        XTRACE - RECORD PROCEDURE CALLS
* 
*     8. DAYFILE MESSAGES 
*        THIS PROCEDURE IS CALLED BY MANY ROUTINES. 
* 
 #
 STOPIMS; 
  
# 
      EXTERNAL VARIABLES
# 
      XREF
        BEGIN 
        PROC XTRACE;         # TRACE CALLS                             #
        END 
# 
      INPUT PARAMETERS
# 
      ITEM HN;               # HOST NODE NUMBER                        #
      ITEM TN;               # TERMINAL NODE NUMBER                    #
# 
      OUTPUT PARAMETERS 
# 
      ITEM LLCBAD;           # FWA OF LLCB FOUND                       #
# 
      LOCAL VARIABLES 
# 
      ITEM I          I;     # INDUCTION VARIABLE                      #
  
      CONTROL EJECT;
  
      BEGIN # LOCLLCB # 
  
      CONTROL IFEQ DEBUG,1; 
      XTRACE("LOCLL");       # TRACE CALL                              #
      CONTROL FI; 
  
  
      IF TN LS TNTBS[0] 
      THEN # TERMINAL NODE NUMBER WITHIN TNT RANGE                     #
        BEGIN # SEARCH FOR LLCB WITH MATCHING HOST NODE                #
        P<LLCB> = TNTLLAD[TN]; # FWA OF LLCB                           #
        FOR I=I WHILE P<LLCB> NQ 0 # LLCB EXISTS                       #
                AND HN NQ LLCBHN[0] # HOST NODE NUMBER NOT MATCH       #
        DO                   # GET NEXT LLCB IN CHAIN                  #
          BEGIN 
          P<LLCB> = LLCBFP[0]; # RESET LLCB ADDRESS                    #
          END 
        LLCBAD = P<LLCB>; 
        END 
  
      ELSE # TERMINAL NODE NON-EXISTENT, NO LLCB                       #
        LLCBAD = 0; 
  
      RETURN; 
      END # LOCLLCB # 
      TERM
