*DECK NVFAPVD 
USETEXT TEXTNVF 
PROC NVFAPVD((VCB),(AN),PAC); 
# TITLE NVFAPVD - A-A PREPARE VCB DATA. # 
  
      BEGIN # NVFAPVD # 
  
# 
**    NVFAPVD - A-A PREPARE VCB DATA
* 
*     C. BRION          82/09/24. 83/05/09. 
* 
*     THE FUNCTION OF THIS PROCEDURE IS TO READY A PAAC ENTRY AND ISSUE 
*     A VCB READ REQUEST TO THE VCB READ REQUEST QUEUE. 
* 
*     PROC NVFAPVD((VCB,(AN),PAC) 
* 
*     ENTRY:  
* 
*       VCB - VCB ORDINAL OF NETWORK CONNECTION.
*       AN  - APPLICATION NUMBERD THAT CONNECTION BELONGED TO.
* 
*     EXIT: 
* 
*       PAC - INDEX TO PAAC TABLE ENTRY.
# 
  
# 
****  PROC NVFAPVD XREF LIST
# 
  
      XREF
        BEGIN 
        PROC NVFUMQE;                    # MAKE QUEUE ENTRY # 
        PROC SSTATS;                     # SS- ALLOCATE TABLE SPACE # 
        PROC MESSAGE;                    # DAYFILE MESSAGE SENDER # 
        END 
  
# 
****
# 
  
  
      ITEM PAC          I;               # LOCAL PAAC INDEX VAR # 
      ITEM VCB          I;               # LOCAL VCB ORDINAL #
      ITEM AN           I;               # LOCAL APPL NUMBER #
      ITEM DUMBUF       I;               # DUMMY TEXT AREA #
      ITEM AORD         I;               # AST ORDINAL, LOOP VAR# 
      ITEM ASTNUM       I;               # NUMBER AST ENTRIES # 
  
# 
*     NOASTMSG - MESSAGE WARNING OF NO AST ENTRY. 
# 
  
      ARRAY NOASTMSG [00:00] S(3);
        BEGIN 
        ITEM NOAST$TXT  C(00,00,20)=["NVFAPVD-NO AST ENTRY"]; 
        ITEM NOAST$ZBYT U(02,00,60)=[0];
        END 
  
  
  
# 
*     BPAAC - DUMMY ARRAY FOR CLEARING PAAC.
# 
  
      BASED ARRAY BPAAC [00:00] S(1); 
        BEGIN 
        ITEM BPA$WORD   U(00,00,60);
        END 
  
# 
*     **** PROC NVFAPVD ENTRY ****
# 
  
# 
      ALLOCATE PAAC ENTRY AND CLEAR IT
# 
  
      PAC = PACLNGTH / PAACSIZ$;
      SSTATS(P<PAAC>,PAACSIZ$); 
  
      P<BPAAC> = LOC(PAAC[PAC]);
      FOR AORD = 0 STEP 1 UNTIL (PAACSIZ$ - 1)
      DO
        BEGIN 
        BPA$WORD[AORD] = 0; 
        END 
  
# 
      GET AST ENTRY THAT HAS THE SAME AN AS THAT OF THE CONNECTION
      THAT HAS RETURNED TO NVF. 
# 
  
      ASTNUM = ASTLNGTH / ASTSIZ$;
  
      FOR AORD = 0 STEP 1 WHILE 
        ((AST$AN[AORD] NQ AN) AND 
         (AORD LS ASTNUM))
      DO
        BEGIN 
        END 
  
# 
      THE AST ENTRY MAY NOT BE THERE. FUTURE ENHANCEMENTS TO NVF MAY
      HAVE TO MAKE THE AST A DYNAMIC TABLE. IF NO ENTRY, SIMPLY LET 
      THE WORLD KNOW AND PROCEED. 
# 
  
      IF AORD EQ ASTNUM 
      THEN
        BEGIN 
        MESSAGE(NOASTMSG,0);
        END 
      ELSE
  
# 
      OTHERWISE, GO AHEAD AND SET THE PAAC ENTRY. 
# 
  
        BEGIN 
        PA$SWAP[PAC] = AST$ANAM[AORD];
        PA$SWAPAN[PAC] = AN;
        END 
  
# 
      MAKE A VCB READ REQUEST 
# 
  
      NVFUMQE(P<VRQ>,DUMBUF,10,VCB,0);
  
      END # NVFAPVD # 
 TERM 
*ENDIF
