*DECK NVFTDQE USETEXT TEXTNVF USETEXT TEXTSS USETEXT TXTANVF USETEXT TXTAPSS PROC NVFTDQE; # TITLE NVFTDQE - DISPATCH QUEUE ENTRIES FOR T-A PROCESS. # BEGIN # NVFTDQE # # ** NVFTDQE - DISPATCH QUEUE ENTRIES FOR T-A PROCESS. * * E. THAVIKULWAT 81/08/17 * C. BRION 83/04/11 * * THIS PROCEDURE IS THE MAIN MODULE FOR TERMINAL TO APPLICATION * PROCESSING AND IS CALLED INTO EXECUTION WHENEVER THERE IS DATA * IN ANY OF ITS INPUT QUEUE . THE PROCEDURE'S MAIN FUNCTION IS TO * ROUTE EACH ENTRY IN ITS INPUT QUEUE TO THE APPROPRIATE ROUTINES. * * PROC NVFTDQE * * ENTRY: * TAINPQ - TERMINAL TO APPLICATION INPUT QUEUE * VCBRDQ - VCB READ DATA QUEUE * VDATAQ - VALIDATION DATA QUEUE * * EXIT: * ALL DATA IN ALL QUEUES HAVE BEEN PROCESSED. * * NOTES: * THE 3 INPUT QUEUES ARE PROCESSED IN THE FOLLOWING ORDER: * 1) TAINPQ * 2) VCBRDQ * 3) VDATAQ * EACH QUEUE IS EMPTIED BEFORE THE NEXT QUEUE IS INTERROGATED. * * METHOD: * CALL *SSTRQE* TO COPY THE FIRST ENTRY FROM A SPECIFIED QUEUE * INTO THE WORKING BUFFER. EACH ENTRY IS THEN ROUTED TO THE * APPROPRIATE ROUTINE TO BE PROCESSED. # # **** PROC NVFTDQE - XREF LIST. # XREF BEGIN PROC NVFTACC; # PROCESS CR/ACC SM # PROC NVFTBRK; # PROCESS FC/BRK SM # PROC NVFTCB; # PROCESS CR/CB SM # PROC NVFTETI; # PROCESS INPUT FROM TERMINAL # PROC NVFTINA; # PROCESS FC/INACT SM - TIMER EXPIRED # PROC NVFTITE; # PROCESS CR/ITE SM # PROC NVFTRCN; # PROCESS CR/RCN SM # PROC NVFTRVD; # RECEIVE VCB DATA # PROC NVFTTCH; # PROCESS TCH/TCHAR SM # PROC NVFTVVD; # VERIFY VALIDATION DATA # PROC SSTRQE; # TRANSFER QUEUE ENTRY TO FIXED BUFFER # PROC NVFTSPC; # SWITCH PENDING CONNECTIONS # END # **** # ITEM I I; # LOOP VARIABLE # ITEM SMID S:CTQSTAT; # SUBSCRIPT FOR GOTO SWITCH # SWITCH TASWT:CTQSTAT LLCRACC : SACC, # LABEL FOR CR/ACC SM # LLCRCB : SCB, # LABEL FOR CR/CB SM # LLCRITE : SITE, # LABEL FOR CR/ITE SM # LLCRRCN : SRCN, # LABEL FOR CR/RCN SM # LLBRK : SIUSR, # LABEL FOR INTR/USR SM # LLFCINA : SINA, # LABEL FOR TIMER EXPIRED # LLTCTCH : STCHAR, # LABEL FOR TCH/TCHAR SM # LLNETN : SNETN, # LABEL FOR NET/ON/N SM # LLNETA : SNETA; # LABEL FOR NET/ON/A SM # # * DISPATCH ENTRIES FROM *TAINPQ* TO APPROPRIATE ROUTINES. # FOR I = 0 WHILE TAQLNGTH NQ 0 DO BEGIN SSTRQE(P,WCBUF,ABHBUF,MSGBUF); # TRNSFR TO FIX BUFFER # IF ABHABT[0] EQ APMSG OR ABHABT[0] EQ APPBLK THEN # MSG OR BLK DATA BLOCK # BEGIN NVFTETI; # EDIT TERMINAL INPUT # END ELSE # SUPERVISORY MESSAGE # BEGIN SMID = WCB$SMID[0]; # GET INTERNAL SM IDENTIFIER # GOTO TASWT[SMID]; LLCRACC: # CR/ACC SM # NVFTACC; # PROCESS CR/ACC SM # GOTO ENDTAS; LLCRCB: # CR/CB SM # NVFTCB; # PROCESS CR/CB SM # GOTO ENDTAS; LLCRITE: # CR/ITE SM # NVFTITE; # PROCESS CR/ITE SM # GOTO ENDTAS; LLCRRCN: # CR/RCN SM # NVFTRCN; # PROCESS CR/RCN SM # GOTO ENDTAS; LLBRK: # INTR/USR SM # NVFTBRK; # PROCESS BREAK SM # GOTO ENDTAS; LLFCINA: # FC/INACT SM - NVF TIMER EXP # NVFTINA; # PROCESS NVF TIMER EXPIRED # GOTO ENDTAS; LLTCTCH: # TCH/TCHAR SM # NVFTTCH; # PROCESS TCH/TCHAR SM # GOTO ENDTAS; LLNETN: LLNETA: NVFTSPC; # NET/ON/N AND NET/ON/A SM # GOTO ENDTAS; ENDTAS: # END OF CASE # END END # * CALL *NVFTRVD* TO PROCESS ENTRIES FROM *VCBRDQ* QUEUE. # FOR I = 0 WHILE VRDLNGTH NQ 0 DO BEGIN SSTRQE(P,WCBUF,ABHBUF,MSGBUF); # TRNSFR TO FIX BUFFER # NVFTRVD; # RECEIVE VCB DATA # END # * CALL *NVFTVVD* TO PROCESS ENTRIES FROM *VDATAQ* QUEUE. # FOR I = 0 WHILE VDQLNGTH NQ 0 DO BEGIN SSTRQE(P,WCBUF,ABHBUF,MSGBUF); # TRNSFR TO FIX BUFFER # NVFTVVD; # VERIFY VALIDATION DATA # END END # END NVFTDQE # TERM