*DECK CSSCTR USETEXT TEXTCS; USETEXT TEXTSS; USETEXT TXTAPSS; USETEXT TXTSMCS; USETEXT TXTSUSS; PROC CSSCTR; # TITLE - CSSCTR - COMPLETE TEST REQUEST. # BEGIN # CSSCTR # # ** CSSCTR - COMPLETE TEST REQUEST . * * C. BRION 82/05/06. * * THIS PROCEDURE PROCESSES THE NORMAL AND ABNORMAL RESPONSES * TO THE TEST REQUEST SM. * * PROC CSSCTR * * ENTRY: * * WCBUF = WORD COUNT WORD OF RESPONSE SM ENTRY. * ABH = APPLICATION BLOCK HEADER OF RESPONSE SM. * CSSM = BODY OF RESPONSE SM ENTRY. * * EXIT: * * A SUPERVISION EVENT IS ISSUED. * THE NPUCB OVERLAY STATE IS UPDATED. * # # **** PROC CSSCTR XREF LIST. # XREF BEGIN PROC SSBCBW; # SS-CLEAR BIT IN WORD # PROC SSBTBW; # SS-TEST BIT IN WORD # PROC SSTAQE; # SS-ACCEPT QUEUE ENTRY # END # **** # ITEM FOUND B; # NPUCB FOUND FLAG # ITEM I U; # LOOP INDUCTION VAR # ITEM NORD U; # NPUCB ORDINAL # ITEM OORD I; # OPERATOR ORDINAL # ITEM RUNNING B; # ONLINE DIAG OPERATOR FLAG # # * FLG$WORD - BASED ARRAY THAT POINTS THE THE ONLINE DIAGNOSTICS * OPERATOR BIT MAP. # BASED ARRAY FLG$WORD [00:00] S(NPCBSZ$); BEGIN ITEM FW$WORD I(00,00,60); END OORD = OLDDO[0]; ABHWORD[1] = ABHWORD[0]; # SET OUTGOING SM ABH # # * FIND NPUCB WITH MATCHING NODE NUMBERS AS INCOMING RESPONSE SM. # FOR I = 0 STEP 1 WHILE (NOT FOUND AND I LS CSNPCNT) DO BEGIN IF (ABHDN[0] EQ NPU$HID[I] AND ABHSN[0] EQ NPU$NID[I]) THEN BEGIN FOUND = TRUE; NORD = I; END END # * IF NPUCB FOUND THEN CHECK IF TEST REQUEST STILL CURRENT BY CHECK- * ING THE CURRENT OVERLAY OPERATOR ORDINAL OF THE NPUCB. IF OUT OF * RANGE, MEANS THAT REQUEST CANCELED BY OPERATOR ACTION-SIMPLY * CLEAR CURRENT OVERLAY OCB ORDINAL. OTHERWISE, REQUEST STILL CUR- * RENT. # IF FOUND THEN BEGIN P = LOC(NPU$OVFLGS[NORD]); SSBTBW(FLG$WORD,OORD,RUNNING); IF RUNNING THEN BEGIN ABHDN[1] = ABHSN[1]; # SWITCH DN,SN FOR EVQ # OC$UVERB[OORD] = 0; # CLEAR OCB VERB # # * IF ABNORMAL RESPONSE, CLEAR OVERLAY OCB ORDINAL OF NPUCB AND * SET OVERLAY STATE TO IDLE. # IF EB[0] THEN BEGIN SSBCBW(FLG$WORD,OORD); END # * SEND SUPERVISION EVENT TO EVENT PROCESSOR. # SSTAQE(P,WCBUF[0],ABH[1],CSSM[0]); END # * OPERATOR MUST HAVE DISCONNECTED. SEND TERMINAL TEXT WITH THE * INPUT ALLOWED FLAG SET TO COMPLETE THE TERMINATION PROCESSING * IN THE C-LAYER. # ELSE BEGIN WCB$WORD[1] = 2; WCB$SMID[1] = SMID"TTEXT"; WCB$IAF[1] = TRUE; ABHADR[1] = OORD; SSTAQE(P,WCBUF[1],ABH[1],CSSM[1]); END END END #CSSCTR# TERM