*DECK GETAFT
USETEXT COMCBEG 
USETEXT COMCAPR 
USETEXT COMCCAE 
USETEXT COMQDEF 
USETEXT COMQFIL 
USETEXT COMQNET 
USETEXT COMQSCH 
    FUNC GETAFT U;
      BEGIN    # GETAFT # 
# 
**    GETAFT     GET INACTIVE FILE TABLE ENTRY. 
* 
*     GETAFT IS A FUNCTION CALLED TO SEARCH FOR AND RETURN THE INDEX
*     OF A VACANT FILE TABLE ENTRY. 
* 
*     FUNC GETAFT U 
* 
*     ENTRY      NONE 
* 
*     EXIT       GETAFT = AFT INDEX OF VACANT ENTRY 
*                       = 0 IF ALL ENTRIES IN USE.
* 
*     PROCESS    SEARCH FOR VACANT ENTRY. 
# 
  
# 
****  XREF
# 
      XREF
        BEGIN 
        PROC NAME;                 # DEBUG CODE # 
        END 
  
# 
****  XREF END
# 
  
  
      ITEM I          I;           # SCRATCH #
  
        $BEGIN
        NAME("GETAFT"); 
        $END
  
      IF ACNNO GE SCHMAXCONS       # IF TOO MANY CONNECTIONS #
      THEN
        BEGIN 
        GETAFT = 0;                # NO ENTRY AVAILABLE # 
        RETURN; 
        END;
  
      SLOWFOR I = 1 STEP 1 UNTIL LACNMAX
      DO
        BEGIN 
        IF AFT[I] NE 0
        THEN
          BEGIN 
          P<FILETAB> = AFT[I];
          IF (FILEFTS EQ FTS$VACANT)
          THEN
            BEGIN 
            GETAFT = I;            # SAVE INDEX OF VACANT ENTRY # 
            RETURN; 
            END 
  
          END 
  
  
        END 
  
      GETAFT = 0;                  # NO ENTRY FOUND # 
  
      END  # GETAFT # 
    TERM
