*DECK NVFOAPE USETEXT TEXTNVF USETEXT TEXTSS USETEXT TXCMDNV USETEXT TXTAPSS PROC NVFOAPE; # TITLE NVFOAPE - ACTION HOP PROTOCOL EVENT. # BEGIN # NVFOAPE # # ** NVFOAPE - ACTION HOP PROTOCOL EVENT. * A. LIM. 82/04/07. * * THIS PROCEDURE-S MAIN FUNCTION IS TO ACTIO THOSE HOP PROTOCOL * EVENTS THIS NVF IS SUPERVISING. * IT IS CALLED INTO EXECUTION WHENEVER THERE IS DATA IN * PROTOCOL-EVENT-QUEUE * PEQ*. * * PROC NVFOAPE * * ENTRY HOP PROTOCOL EVENTS IN * PEQ*. * * EXIT ALL PROTOCOL EVENTS IN * PEQ* PROCESSED * * METHOD INCOMING PROTOCOL EVENTS FROM THE C-LAYER ARE: * HOP/START, HOP/END-WARNING, AND HOP/END. * *SSTRQE* IS CALLED TO REMOVE AN ENTRY FROM THE QUEUE. * PROTOCOL RESPONSES: HOP/START/N AND HOP/END/N ARE * SENT BACK TO THE C-LAYER. (*NVFUMQE* IS USED TO * SEND THE RESPONSES TO THE C-LAYER, TAKING ADVANTAGE * OF THE FACT THAT *NVFUMQE* IS GOING TO STORE AN * SMID INTO THE RESPONSE.) * IT TERMINATES WHEN *PEQ* HAS BEEN EXHAUSTED. # # **** PROC NVFOAPE XREF LIST * # XREF BEGIN PROC NVFOPHC; # PROCESS HISTORY COMMAND # PROC NVFUMQE; # MAKE A QUEUE ENTRY # PROC SSTAQE; # SS- ACCEPT A QUEUE ENTRY # PROC SSTRQE; # SS- REMOVE A QUEUE ENTRY # END # **** # ITEM I I; # LOOP INDUCTION VARIABLE # ITEM SMID S:HPESTAT; # SUBSCRIPT FOR GOTO SWITCH # # THE FOLLOWING IS A SWITCH LIST OF HOP PROTOCOL EVENTS BY SMID # SWITCH HPESWT:HPESTAT LLHOPSRT : HOPSRT, # HOP/START # LLHOPENDW : HOPENDW, # HOP/END-WARNING # LLHOPEND : HOPEND; # HOP/END # CONTROL EJECT; # * PROCESS ALL ENTRIES IN *PEQ* # FOR I = 0 WHILE PEQL NQ 0 DO BEGIN SSTRQE(P,WCBUF[0],ABHBUF[0],APSM[0]); SPMSG0[1] = 0; # ZERO REST OF MESSAGE # SMID = WCB$SMID[0]; GOTO HPESWT[SMID]; # PROTOCOL EVENT SWITCH BY SMID # LLHOPSRT: # HOP/START # # * SAVE THE LEFT AND RIGHT K-DISPLAY PAGE LENGTH. SEND THE NORMAL * BACK TO THE C-LAYER. # LEFTPL = HOPLPL[0] - 1; RIGHTPL = HOPRPL[0]; PFCSFC[1] = HOPSRTN$; # SEND HOP/START/N PROTOCOL RESPONSE # NVFUMQE(P,APSM[1],APPPR$,0,1); # TO CTQ # # * TRIGGER THE LAST PAGE OF THE RECENT HISTORY BUFFER TO SEND TO * THE K-DISPLAY BY SIMULATING A "HISTORY" COMMAND I.E. BUILD * THE PARAMETER LIST, AND WC AND HEADER INFORMATION. # WCB$WORD[1] = 0; # CLEAR WC WORD 1 # HDR$WORD[1] = 0; # CLEAR HDRCMD WORD 1 # WCB$IAF[1] = FALSE; WCB$WC[1] = 2+3; HDR$SPCNT[1] = 2; HDR$APCNT[1] = 0; HDR$TXWCNT[1] = 1; HDR$VERB[1] = HIL$; HDR$TXCCNT[1] = 8; PAR$WORDC[0] = "HISTORY."; PAR$ELNAME[1] = HIL$; PAR$PCODE[1] = "VEB"; PAR$PCODE[2] = HISTORY$; NVFOPHC; # PROCESS THE HISTORY COMMAND # GOTO ENDCASE; LLHOPENDW: # HOP/END-WARNING # HOPENDWF = TRUE; # SET HOP/END-WARNING FLAG TRUE # IF CMDINPGF THEN ABORTCMDF = TRUE; # CMD IN PROGRESS, ABORT THE CMD # GOTO ENDCASE; LLHOPEND: # HOP/END # HOPENDWF = FALSE; # CLEAR HOP/END-WARNING FLAG # PFCSFC[1] = HOPENDN$; # SEND HOP/END/N PROTOCOL RESPONSE # NVFUMQE(P,APSM[1],APPPR$,0,1); # TO CTQ # ENDCASE: END END # NVFOAPE # TERM