*DECK NVFTBRK USETEXT TEXTNVF USETEXT TXTANVF USETEXT TXTAPSS USETEXT TEXTSS PROC NVFTBRK; # TITLE NVFTBRK - PROCESS BREAK OCCURRED CONDITION (FC/BRK SM) # BEGIN # NVFTBRK # # ** NVFTBRK - PROCESS BREAK OCCURRED CONDITION (FC/BRK SM). * * E. THAVIKULWAT 81/09/21 * * THIS PROCEDURE PROCESSES THE BREAK CONDITION. IT IS CALLED INTO * EXECUTION BY PROCEDURE *NVFTDQE*. * * PROC NVFTBRK * * ENTRY: * ABH IN *ABHBUF* * INTR/USR SM IN *MSGBUF* * * EXIT: * APPROPRIATE LOGIN PROMPT REISSUED IF NECESSARY. * * NOTES: * 1) IF CTRL/RTC REQUEST FOR TERMINAL CLASS AND ECHOPLEX IS * OUTSTANDING WHEN A BREAK IS RECEIVED, THE REQUEST MIGHT * HAVE BEEN DISCARDED. IN THIS CASE, THE REQUEST MUST BE * REISSUED. * * METHOD: * SEARCH PTAC TABLE FOR ENTRY THAT MATCHES THIS TERMINAL'S ACN. * IF ENTRY FOUND AND TERMINAL IS WAITING FOR A RESPONSE TO ONE OF * IT'S LOGIN PROMPT, THEN REISSUE FAMILY OR APPLICATION PROMPT. * OTHERWISE, IGNORE THE BREAK. # # **** PROC NVFTBRK - XREF LIST. # XREF BEGIN PROC NVFTILP; # ISSUE LOGIN PROMPT # PROC NVFUMQE; # TRANSFER PROTOCOL RESPONSE TO QUEUE # END # **** # ITEM ADDR I; # ADDRESSING INFORMATION FOR ABH # ITEM MATCH B; # EXIT LOOP VARIABLE # ITEM NENTRY I; # NUMBER OF ENTRIES IN TABLE # ITEM PT I; # SUBSCRIPT FOR ARRAY PTAC # # * SEARCH PTAC TABLE FOR ENTRY THAT MATCHES THIS TERMINAL'S ACN. * IF NO MATCH, IGNORE SM. # MATCH = FALSE; NENTRY = PTALNGTH / PTACSIZ$; # CALCULATE NUMBER OF ENTRIES # FOR PT = 0 STEP 1 WHILE (NOT MATCH AND PT LS NENTRY) DO BEGIN IF PTA$ACN[PT] EQ INTRACN[0] THEN BEGIN # PTAC ENTRY FOUND # # * BUILD FC/RST PROTOCOL RESPONSE. # SPMSG0[1] = 0; PFCSFC[1] = FCRST; FCACN[1] = FCACN[0]; ADDR = ABHADR[0]; NVFUMQE(P,APSM[1],APPPR$,ADDR,LFC); # TRNSFR RSP TO Q # ADDR = PTA$ACN[PT]; # * DETERMINE PROMPT TO REISSUE. IF BREAK OCCURRED WHILE * TERMINAL WAS WAITING FOR RESPONSE TO A FAMILY, USER, PASSWORD * OR PERSONAL ID PROMPT, THE FAMILY PROMPT WILL BE REISSUED. IF * WAITING FOR PID RESPONSE, BEFORE REISSUE FAMILY PROMPT, MAKE * SURE TO DECREMENT FAMILY COUNT. IF WAITING FOR RESPONSE TO * APPLICATION PROMPT, THE APPLICATION PROMPT WILL BE REISSUED. # IF PTA$STATE[PT] EQ PTACST"AWTRSP" THEN # AWAITING RESPONSE TO PROMPT # BEGIN IF PTA$PROMPT[PT] NQ AWTAPP$ THEN BEGIN # REISSUE FAMILY PROMPT # IF (PTA$PROMPT[PT] EQ AWTPID$) AND (PTA$SCINV[PT] EQ 0) THEN # ISSUE CMP73 REQUEST TO # BEGIN # DECREMENT FAMILY COUNT # P = LOC(MSGBUF[0])+((NMSGBUF$+1)/2); CRQ$FCWORD[0] = 0; CRQ$FWORD[0] = 0; CRQ$FC[0] = CPM73B$; # DECREMENT FAMILY COUNT # CRQ$ACN[0] = 0; CRQ$FNAM[0] = PTA$FNAM[PT]; NVFUMQE(P,CRQBUF[0],APPTTX$,0,CRQDSIZ$ * 10); END PTA$PROMPT[PT] = AWTFAM$; # AWAIT FAMILY PROMPT # END NVFTILP(PT); # ISSUE NEXT PROMPT # END MATCH = TRUE; END END END # END NVFTBRK # TERM