*DECK ACNFND
USETEXT COMCBEG 
USETEXT COMRAPL 
FUNC ACNFND B;
# TITLE ACNFND - FIND FREE ACN FOR THIS APPLICATION # 
  
      BEGIN  # ACNFND # 
  
# 
**    ACNFND - FIND FREE ACN FOR THIS APPLICATION.
* 
*     THIS FUNCTION WILL RETURN A VALUE OF TRUE IF THE APPLICATION
*     HAS AN UNASSIGNED ACN INITS CONNECTION TABLE. 
* 
*     FUNC ACNFND B.
* 
*     ENTRY   -  APL$HEADER IS BASED ARRAY FOR APPLICATION TABLE. 
* 
*     EXIT    -  FUNCTION VALUE OF TRUE RETURNED IF ACN FOUND.
*                CONNECTION IS BASED ARRAY FOR ACN THAT WAS FOUND-
* 
*     PROCESS -  FOR EACH CONNECTION TABLE ENTRY IN MIN-MAX ACN RANGE:  
*                  IF CONNECTION TABLE ENTRY(ACN) IS AVAILABLE: 
*                  THEN:  
*                    SET VALUE OF FUNCTION TRUE 
*                    EXIT LOOP..
*                IF NONE FOUND
*                THEN:  
*                  SET VALUE OF FUNCTION FALSE. 
*                RETURN.
* 
# 
  
  
      ITEM CONINDX I;                # INDEX FOR ACN SEARCH # 
      ITEM ACNRANGE I;               # RANGE- MINACN TO MAXACN #
  
CONTROL EJECT;
  
      ACNFND = FALSE; 
      P<CONNECTION> = P<APL$HEADER> + APL$LENGTH; 
      ACNRANGE = APL$MAXACN - APL$MINACN; 
  
      SLOWFOR CONINDX = 0 STEP 1 UNTIL ACNRANGE 
      DO
        BEGIN  # ACN SEARCH # 
  
        IF CON$PATHID EQ 0
        THEN
          BEGIN  # FOUND UNASSIGNED ACN # 
          ACNFND = TRUE;
          EXIT ACNSEARCH; 
          END 
  
        ELSE
          BEGIN  # CONTINUE ACN SEARCH #
          P<CONNECTION> = P<CONNECTION> + CON$LENGTH; 
          END 
        END ACNSEARCH:  
  
      RETURN; 
      END  # ACNFND # 
  
      TERM
