cdc:nos2.source:nam5871:cssaac
Table of Contents
CSSAAC
Table Of Contents
- [00006] PROC CSSAAC
- [00007] CSSAAC - ACTION ALERT COMMAND.
- [00011] ACTION ALERT COMMAND.
- [00044] PROC CSUCDB
- [00045] PROC SSTAQE
Source Code
- CSSAAC.txt
- *DECK CSSAAC
- USETEXT TEXTCS
- USETEXT TEXTSS
- USETEXT TXTAPSS
- USETEXT TXCMDCS
- PROC CSSAAC;
- # TITLE CSSAAC - ACTION ALERT COMMAND. #
- BEGIN # CSSAAC #
- #
- ** CSSAAC - ACTION ALERT COMMAND.
- *
- * A. LIM 83/02/25
- *
- * THIS PROCEDURE ACTIONS THE ALERT COMMAND FROM THE HOP OR
- * THE CONTROLLING NOP.
- *
- * PROC CSSAAC
- *
- * ENTRY:
- * 1. HDRCMD[0] = COMMAND HEADER WORD.
- * 2. PARMS[0] = COMMAND BLOCK CONTAINING THE ORIGINAL
- * TYPEIN, SYNTAX PARAMETER LIST AND ADDRESS.
- *
- * EXIT:
- * 1. THE *CP* AND/OR *BU* VALUE(S) IN NPUCB(S) GOT UPDATED.
- *
- * NOTE:
- * THE ALERT COMMAND MAY CONTAIN:
- * 1. NO *CP* AND *BU*,
- * 2. EITHER *CP* OR *BU*, OR
- * 3. BOTH *CP* AND *BU*.
- *
- *
- #
- #
- **** PROC CSSAAC XREF LIST
- #
- XREF
- BEGIN
- PROC CSUCDB; # CONVERT DC DECIMAL TO BINARY #
- PROC SSTAQE; # SS- ACCEPT A QUEUE ENTRY #
- END
- #
- ****
- #
- ITEM CPVALUE B; # SET IF VALID CP VALUE ENTERED #
- ITEM BUVALUE B; # SET IF VALID BU VALUE ENTERED #
- ITEM FPINDX U; # FIRST INDEX INTO SYNTAX PARM #
- ITEM LPINDX U; # LAST INDEX INTO SYNTAX PARM #
- ITEM B U; # TEMP FOR BINARY VALUE (CSUCDB)#
- ITEM D U; # TEMP FOR DECIM VALUE (CSUCDB) #
- ITEM ERROR B; # ERROR INDICATOR (CSUCDB) #
- ITEM CP U; # CPU UTILIZATION VALUE #
- ITEM BU U; # BUFFER AVAILABILITY VALUE #
- ITEM NPUS B; # ALERT ALL NPUS INDICATOR #
- ITEM DONE B; # LOOP EXIT VAR #
- ITEM I U; # LOOP INDICATION VAR #
- ITEM NPUORD U; # NPUCB ORDINAL #
- #
- * IVPBUF - INVALID PARAMETER BUFFER.
- #
- ARRAY IVPBUF[00:00] S(3);
- BEGIN
- ITEM IVP$MSG C(00,00,24) =
- ["INVALID PARAMETER VALUE."];
- ITEM IVP$ZRO U(02,24,36) = [0];
- END
- CONTROL EJECT;
- #
- * INITIALIZE BUFFERS, INDICES, VARIABLES AND FLAGS.
- #
- ABHWORD[1] = 0;
- WCB$WORD[1] = 0;
- FPINDX = HDR$TXWCNT[0] + 2;
- LPINDX = HDR$TXWCNT[0] + HDR$SPCNT[0] - 1;
- CPVALUE = FALSE;
- BUVALUE = FALSE;
- NPUS = TRUE;
- ERROR = FALSE;
- DONE = FALSE;
- #
- * SEARCH THE PARAMETER LIST FOR *CP* AND *BU* VALUES.
- * CONVERT THE VALUES TO BINARY.
- * DETERMINE IF ALERT WERE FOR ALL NPUS OR JUST A SINGLE NPU.
- #
- FOR I = FPINDX STEP 1 WHILE (I LQ LPINDX) AND (NOT ERROR)
- DO
- BEGIN
- IF PAR$PCODE[I] EQ "CP1"
- THEN
- BEGIN # CP VALUE SPECIFIED #
- CSUCDB(PAR$ELNAME[I],B,D,ERROR);
- IF (NOT ERROR)
- AND ((B GQ MINCP$) AND (B LQ MAXCP$))
- THEN
- BEGIN # NO ERROR, AND VALUE IN RANGE #
- CP = B;
- CPVALUE = TRUE;
- END
- ELSE
- BEGIN # ERR IN VALUE, OR NOT IN RANGE #
- ERROR = TRUE;
- END
- END
- ELSE IF PAR$PCODE[I] EQ "BU0"
- THEN
- BEGIN # BU VALUE SPECIFIED #
- CSUCDB(PAR$ELNAME[I],B,D,ERROR);
- IF (NOT ERROR)
- AND ((B GQ MINBU$) AND (B LQ MAXBU$))
- THEN
- BEGIN
- BU = B;
- BUVALUE = TRUE;
- END
- ELSE
- BEGIN
- ERROR = TRUE;
- END
- END
- ELSE IF PAR$PCODE[I] EQ "NP0"
- THEN
- BEGIN # ALERT FOR A SINGLE NPU #
- NPUS = FALSE;
- NPUORD = PAR$ORD[LPINDX+1]; # SAVE NPU ORDINAL #
- END
- END
- IF (NOT ERROR)
- AND (CPVALUE OR BUVALUE)
- THEN # NO ERROR #
- BEGIN # AND ONE OR MORE VALUES SPECIFIED #
- IF NPUS
- THEN
- BEGIN # ALERT ALL NPUS #
- NPUORD = 0;
- END
- FOR I = NPUORD STEP 1 WHILE (NOT DONE)
- AND (I LS CSNPCNT)
- DO
- BEGIN
- IF CPVALUE
- THEN
- NPU$CP[I] = CP;
- IF BUVALUE
- THEN
- NPU$BU[I] = BU;
- IF NOT NPUS
- THEN
- DONE = TRUE;
- END
- END
- ELSE IF ERROR # ERROR IN SPECIFIED VALUE #
- THEN
- BEGIN
- ABHADR[1] = HDR$OPORD[0];
- WCB$SMID[1] = SMID"TTEXT";
- WCB$WC[1] = 3 + 2;
- SSTAQE(P<CNQ>, WCBUF[1], ABH[1], IVPBUF[0]);
- END
- #
- * SEND A NULL TERMINAL TEXT TO C-LAYER TO CLEAR THE PIPELINE.
- #
- ABHWORD[1] = 0;
- WCB$WORD[1] = 0;
- ABHADR[1] = HDR$OPORD[0];
- WCB$SMID[1] = SMID"TTEXT";
- WCB$WC[1] = 2;
- WCB$IAF[1] = TRUE;
- SSTAQE(P<CNQ>, WCBUF[1], ABH[1], MSGBUF[0]);
- END # CSSAAC #
- TERM
cdc/nos2.source/nam5871/cssaac.txt ยท Last modified: 2023/08/05 17:21 by Site Administrator