*DECK   VIA 
USETEXT TENVIRN 
USETEXT TRELTBL 
USETEXT TXSTD 
      PROC VIA;                    # VIA DIRECTIVE PROCESSING ROUTINE  #
        BEGIN 
  
#              THIS PROC LOOKS FOR A PATH NAME THAT MATCHES THE        #
#              RELATION NAME SPECIFIED ON THE VIA DIRECTIVE.  IF       #
#              A MATCH IS FOUND, -VIAPOINT- IS SET TO THE CORE ADDRESS #
#              OF THE MATCHING RELATION TABLE ENTRY AND CONTROL IS     #
#              RETURNED VIA STDYES.  OTHERWISE RETURN IS VIA STDNO.    #
  
        XREF ITEM RELATBLPTR;      # POINTER TO 1ST RELATION TBL ENTRY #
        XREF ITEM VIAPOINT;        # POINTER TO RELATION TABLE ENTRY   #
                                   # WITH VIA SPECIFIED NAME           #
  
        ITEM DUMMY;                # DUMMY INDEX VARIABLE              #
  
          IF RECORDFLAG            # IF RECORDING                      #
          THEN
            BEGIN 
            STDYES; 
            END 
        IF RELATBLPTR EQ 0 THEN    # EXIT IF NO RELATION TABLE ENTRIES #
          BEGIN 
          STDNO;                   # FAILURE RETURN                    #
          END 
        P<REL$TABLE> = RELATBLPTR; # LOOK AT FIRST RELATION TBL ENTRY  #
        FOR DUMMY = DUMMY DO       # SCAN THRU RELATION TABLE ENTRIES  #
          BEGIN 
          IF C<0,10>RT$RELNAME[0] EQ ICW[0]  # SEE IF NAMES MATCH      #
            AND C<10,10>RT$RELNAME[0] EQ ICW[1] 
            AND C<20,10>RT$RELNAME[0] EQ ICW[2] 
            AND C<30,10>RT$RELNAME[0] EQ ICW[3] 
          THEN
            BEGIN 
            VIAPOINT = P<REL$TABLE>;    # SAVE RELATION TBL ENTRY PTR  #
            STDYES;                # SUCCESS RETURN                    #
            END 
          ELSE
            BEGIN                  # LOOK FOR NEXT ENTRY               #
            IF RT$FORWARD[0] EQ 0 THEN
              BEGIN 
              STDNO;               # NOT FOUND -- FAILURE EXIT         #
              END 
            ELSE
              BEGIN 
              P<REL$TABLE> = RT$FORWARD[0];  # GET NEXT ENTRY          #
              END 
            END                    # AND TRY AGAIN...                  #
          END 
        END  # VIA #
      TERM
