*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,PAACSIZ$); P = 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,DUMBUF,10,VCB,0); END # NVFAPVD # TERM *ENDIF