*DECK CSSARE USETEXT TEXTCS USETEXT TEXTSS USETEXT TXCMDCS USETEXT TXTAPSS PROC CSSARE; # TITLE - ACTION REPORT COMMAND # BEGIN # ** CSSARE - ACTION REPORT COMMAND. * * D.K. ENDO 83/02/09 * * THIS PROCEDURE PROCESSES THE REPORT COMMAND. * * PROC CSSARE * * ENTRY 1. HDRCMD = COMMAND HEADER. * 2. PARMS = PARAMETER LIST. * * EXIT 1. ENTRIES IN THE EVENT QUEUE. (CONTROL ON/OFF) * 2. MESSAGES TO THE C-LAYER. * # # **** PROC CSSARE - XREF LIST. # XREF BEGIN PROC SSBCBW; # CLEAR BIT IN WORD # PROC SSBSBW; # SET BET IN WORD # PROC SSTAQE; # ACCEPT QUEUE ENTRY # END # **** # DEF MODEIDX # HDR$TXWCNT[0]+2 #; # INDEX TO MODE (ON/OFF) WORD # DEF NORIDX # HDR$TXWCNT[0]+3 #; # INDEX TO NPUCB ORDINAL WORD # DEF NPUIDX # HDR$TXWCNT[0]+1 #; # INDEX TO NP/NPS PARAMETER WORD# ITEM I; # LOOP INDUCTION VARIABLE # # * FLG$WORD - BASED ARRAY POINTED TO A REPORT FLAG WORD IN THE * NPUCB-S. # BASED ARRAY FLG$WORD [00:00] S(1); BEGIN ITEM FW$WORD I(00,00,60); END # * CSSARE CODE BEGINS HERE # # * IF REQUEST TO RECEIVE REPORTS, THEN IF ONE NPU IS SPECIFIED, THEN * SET THE REPORT FLAG IN THE NPUCB CORRESPONDING TO THIS OPERATOR. * IF *NPUS* IS SPECIFIED, THEN SET THE REPORT FLAG IN ALL THE ACTIVE * NPUCB-S FOR THIS OPERATOR. # IF PAR$PCODE[MODEIDX] EQ "ON0" THEN BEGIN IF PAR$PCODE[NPUIDX] EQ "NP0" THEN BEGIN P = LOC(NPU$RFLGS[PAR$ORD[NORIDX]]); SSBSBW( FLG$WORD , HDR$OPORD[0] ); END ELSE BEGIN FOR I=0 STEP 1 WHILE I LS CSNPCNT DO BEGIN IF NPU$STAT[I] NQ SUPSTAT"SUPLOST" THEN BEGIN P = LOC(NPU$RFLGS[I]); SSBSBW( FLG$WORD , HDR$OPORD[0] ); END END END END # * IF REPORTS ARE TO BE TURNED OFF, THEN IF ONE NPU WAS SPECIFIED, * THEN CLEAR THE REPORT FLAG IN THE NPUCB FOR THIS OPERATOR. IF * ALL NPUS WAS SPECIFIED, THEN CLEAR THE FLAGS IN ALL THE NPUCB-S * FOR THIS OPERATOR. # ELSE BEGIN IF PAR$PCODE[NPUIDX] EQ "NP0" THEN BEGIN P = LOC(NPU$RFLGS[PAR$ORD[NORIDX]]); SSBCBW( FLG$WORD , HDR$OPORD[0]); END ELSE BEGIN FOR I=0 STEP 1 WHILE I LS CSNPCNT DO BEGIN IF NPU$STAT[I] NQ SUPSTAT"SUPLOST" THEN BEGIN P = LOC(NPU$RFLGS[I]); SSBCBW( FLG$WORD , HDR$OPORD[0] ); END END END END # * SEND AN EMPTY TERMINAL TEXT WITH THE INPUT ALLOWED FLAG SET TO * INDICATE THAT THE COMMAND IS COMPLETE. # WCB$WORD[1] = 2; WCB$SMID[1] = SMID"TTEXT"; WCB$IAF[1] = TRUE; ABHWORD[1] = 0; ABHADR[1] = HDR$OPORD[0]; SSTAQE(P,WCBUF[1],ABH[1],MSGBUF); END # CSSARE # TERM