*DECK CSSAIN USETEXT TEXTCS; USETEXT TXCMDCS; USETEXT TEXTSS; USETEXT TXTAPSS; USETEXT TXTSMCS; USETEXT TXTSUSS; PROC CSSAIN; # TITLE CSSAIN - ACTION INFO COMMAND # BEGIN # CSSAIN # # ** CSSAIN - ACTION INFO COMMAND. * * C. BRION 82/06/15. * * THIS PROCEDURE PERFORMS THE PROCESSING FOR THE INFO COMMAND. * * PROC CSSAIN * * ENTRY: * * HDRCMD = THE COMMAND HEADER WORD. * PARMS = ARRAY THAT HOLDS THE COMMAND TEXT, THE SYNTAX PARAMETER * LIST AND THE ADDRESS PARAMETER LIST. * * EXIT: * * A STATUS LINE FOR EACH NPU AND OPERATOR CURRENTLY ACTIVE TO * CS IS ISSUED TO THE ORIGIN OPERATOR VIA AN ENTRY TO THE * CONNECTION TRAFFIC QUEUE. * # # **** PROC CSSAIN XREF LIST # XREF BEGIN PROC SSBSBF; # SS-STORE BIT FIELD # PROC SSTAQE; # SS-ACCEPT QUEUE ENTRY # FUNC XCDD; # MACREL-DCD INTEGER TO CHAR# END # **** # # * PROC CSSAIN ITEM DEFS # ITEM CNST1 I; # CONSTANT 1 # ITEM CNST2 I; # CONSTANT 2 # ITEM CNST3 I; # CONSTANT 3 # ITEM NPUORD I; # NPU ORDINAL # ITEM OCBORD I; # OCB ORDINAL # ITEM I I; # * PROC CSSAIN ARRAY DEFS # # * BLANKLINE - BLANK LINE FOR DISPLAY. # ARRAY BLANKLINE [00:00] S(1); BEGIN ITEM BLA$TXT0 C(00,00,01) = [" "]; ITEM BLA$ZERO U(00,06,54) = [0]; END # * NPLINE - MSG ARRAY FOR NPU INFO LINE. # ARRAY NPLINE [00:00] S(4); BEGIN ITEM NPL$TXT0 C(00,00,04) = ["NPU:"]; ITEM NPL$NPNAME C(00,24,07); # NPU NAME # ITEM NPL$TXT1 C(01,06,01) = [","]; ITEM NPL$NID C(01,12,03); # NPU NODE ID # ITEM NPL$TXT2 C(01,30,01) = [","]; ITEM NPL$STATE C(01,36,02); # NPU STATE # ITEM NPL$TXT3 C(01,48,01) = [","]; ITEM NPL$NGO C(01,54,06); # NEED GO STATE # ITEM NPL$TXT4 C(02,30,01) = [","]; ITEM NPL$TNAM C(02,36,07); # TERM NAME # ITEM NPL$ZBYT U(03,18,42) = [0]; END # * OPLINE - MSG ARRAY FOR OPERATOR INFO LINE. # ARRAY OPLINE[00:00] S(4); BEGIN ITEM OPL$TXT0 C(00,00,04) = ["NOP:"]; ITEM OPL$TNAM C(00,24,07); # OP TERMINAL NAME # ITEM OPL$TXT1 C(01,06,01) = [","]; ITEM OPL$UNAM C(01,12,07); # USER NAME # ITEM OPL$TXT2 C(01,54,02) = [", "]; ITEM OPL$ACN U(02,06,18); # ACN VALUE # ITEM OPL$CTL C(02,24,05); # CONTROL TEXT # ITEM OPL$ZERO U(02,54,06) = [0]; ITEM OPL$ZERO2 I(03,00,60) = [0]; END # * TN - TERMINAL NAME BUFFER TO MAKE THE NAME RIGHT JUSTIFIED IN * THE CM WORD. # ARRAY TN [00:00] S(1); BEGIN ITEM TN$NAME C(00,18,07); END # * PROC CSSAIN START # # * INITIALIZE OUTGOING ENTRY AND LOCAL BIT MOVE VARIABLES. # WCB$WORD[1] = 0; ABHWORD[1] = 0; ABHADR[1] = HDR$OPORD[0]; # OCB ORD FIELD # WCB$SMID[1] = SMID"TTEXT"; OCBORD = ABHADR[1]; # * SET UP DISPLAY STARTING WITH BLANK LINE. # WCB$WC[1] = 3; SSTAQE(P,WCBUF[1],ABH[1],BLANKLINE[0]); WCB$WC[1] = 6; FOR NPUORD = 0 STEP 1 WHILE NPUORD LS CSNPCNT DO BEGIN IF NPU$STAT[NPUORD] NQ SUPSTAT"SUPLOST" THEN BEGIN NPL$NPNAME[0] = NPU$NAME[NPUORD]; NPL$NID[0] = NPU$DNID[NPUORD]; IF NPU$CNOP[NPUORD] NQ 0 THEN BEGIN NPL$TXT4[0] = ","; TN$NAME[0] = OC$TNAM[NPU$CNOP[NPUORD]]; CNST1 = 2; CNST2 = 36; CNST3 = 42; SSBSBF(NPLINE,CNST1,CNST2,CNST3,TN); END ELSE BEGIN CNST1 = 2; CNST2 = 30; CNST3 = 48; SSBSBF(NPLINE,CNST1,CNST2,CNST3," "); END IF NPU$STAT[NPUORD] EQ SUPSTAT"SUP" THEN NPL$STATE[0] = "AC"; ELSE NPL$STATE[0] = "MI"; CNST1 = 1; CNST2 = 54; CNST3 = 36; IF NPU$GFLAG[NPUORD] THEN BEGIN TN$NAME[0] = " NEEDGO"; SSBSBF(NPLINE,CNST1,CNST2,CNST3,TN); END ELSE BEGIN SSBSBF(NPLINE,CNST1,CNST2,CNST3," "); END SSTAQE(P,WCBUF[1],ABH[1],NPLINE[0]); END END # FOR NPUORD # WCB$WC[1] = 6; FOR OCBORD = HOPORD$ STEP 1 WHILE OCBORD LQ MAXACN$ DO BEGIN IF OC$STATE[OCBORD] THEN BEGIN IF OC$TYPE[OCBORD] EQ OPTYP"HOP" THEN BEGIN OPL$TXT0[0] = "HOP:"; END ELSE IF OC$TYPE[OCBORD] EQ OPTYP"NOP" THEN BEGIN OPL$TXT0[0] = "NOP:"; END ELSE BEGIN OPL$TXT0[0] = "DOP:"; END TN$NAME[0] = OC$TNAM[OCBORD]; CNST1 = 0; CNST2 = 24; CNST3 = 42; SSBSBF(OPLINE,CNST1,CNST2,CNST3,TN); OPL$UNAM[0] = OC$UNAM[OCBORD]; OPL$ACN[0] = XCDD(OC$ACN[OCBORD]); # CONVERT ACN TO CHARS # IF OCBORD EQ CSACNOP # IF CONTROL OP # THEN OPL$CTL[0] = ",AUTO"; ELSE OPL$CTL[0] = " "; SSTAQE(P,WCBUF[1],ABH[1],OPLINE[0]); END END WCB$WC[1] = 3; WCB$IAF[1] = TRUE; SSTAQE(P,WCBUF[1],ABH[1],BLANKLINE[0]); END # CSSAIN # TERM