*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<CNQ>,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<CNQ>,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<CNQ>,WCBUF[1],ABH[1],OPLINE[0]);
END
END
WCB$WC[1] = 3;
WCB$IAF[1] = TRUE;
SSTAQE(P<CNQ>,WCBUF[1],ABH[1],BLANKLINE[0]);
END # CSSAIN #
TERM