cdc:nos2.source:nam5871:cssago
Table of Contents
CSSAGO
Table Of Contents
- [00008] PROC CSSAGO
- [00009] CSSAGO - ACTION GO COMMAND
- [00014] ACTION GO COMMAND.
- [00040] PROC SSCCTR
- [00041] PROC SSTAQE
- [00042] PROC MOVE
Source Code
- CSSAGO.txt
- *DECK CSSAGO
- USETEXT TEXTCS;
- USETEXT TEXTSS;
- USETEXT TXTSMCS;
- USETEXT TXTAPSS;
- USETEXT TXTSUSS;
- USETEXT TXCMDCS;
- PROC CSSAGO;
- # TITLE CSSAGO - ACTION GO COMMAND #
- BEGIN # CSSAGO #
- #
- ** CSSAGO - ACTION GO COMMAND.
- *
- * C. BRION 82/04/15.
- *
- * THIS PROCEDURE PROCESSES THE GO COMMAND FROM AN OPERATOR.
- *
- * PROC CSSAGO
- *
- * ENTRY:
- * HDRCMD = COMMAND HEADER WORD.
- * PARMS = ARRAY THAT CONTAINS THE COMMAND TEXT, THE SYNTAX PARAM-
- * ETER LIST, THE ADDRESS PARAMETER LIST.
- *
- * EXIT:
- * A SUP/GO/N SM IS SENT TO THE APPROPRIATE NPU.
- * THE COMMAND TEXT IS SENT TO THE LOG FILE VIA AN EVENT TO THE
- * EVENT PROCESSOR QUEUE.
- *
- #
- #
- **** PROC CSSAGO XREF LIST
- #
- XREF
- BEGIN
- PROC SSCCTR; # SS-CANCEL TIMER REQUEST #
- PROC SSTAQE; # SS-ACCEPT QUEUE ENTRY #
- PROC MOVE; # MACREL MOVE MEMORY #
- END
- #
- ****
- #
- #
- * PROC CSSAGO ITEMS
- #
- ITEM NPUORD U; # NPUCB ORDINAL #
- ITEM I U;
- ITEM BEGAPIX U; # START ADDR LIST INDEX #
- ITEM BEGNPU I; # START NPUCB #
- ITEM FINAPIX U; # END ADDR LIST INDEX #
- ITEM FINNPU I; # END NPUCB #
- ITEM SUCCESS B; # FLAG SET AFTER CANCEL TIMER #
- #
- * PROC CSSAGO EXECUTION STARTS HERE
- #
- #
- * INITIALIZE THE OUTGOING ENTRY STORAGE AREAS AND LOCAL VARS.
- #
- WCB$WORD[1] = 0;
- ABHWORD[1] = 0;
- SPMSG0[1] = 0;
- NPUORD = 0;
- #
- * SET THE ADDRESS LIST INDEX BOUNDS.
- #
- BEGAPIX = HDR$TXWCNT[0] + HDR$SPCNT[0];
- FINAPIX = HDR$APCNT[0] + BEGAPIX - 1;
- #
- * IF THIS IS JUST FOR ONE NPU, THEN...
- * SEARCH THE COMMAND ADDRESS PARAMETER LIST OF PARMS ARRAY FOR AN
- * NPU ORDINAL KEYWORD (NOR). SHOULD ALWAYS FIND THE KEYWORD.
- #
- IF BEGAPIX LQ FINAPIX
- THEN
- BEGIN
- FOR I = BEGAPIX STEP 1 WHILE
- PAR$PCODE[I] NQ "NOR"
- DO
- BEGIN
- END
- NPUORD = PAR$ORD[I]; # SET NPUCB ORDINAL #
- BEGNPU = NPUORD;
- FINNPU = NPUORD;
- END
- #
- * THE GO IS FOR ALL NPUS. SET THE PARAMETERS TO CHECK ALL THE
- * NPUCB-S.
- #
- ELSE
- BEGIN
- BEGNPU = 0;
- FINNPU = CSNPCNT - 1;
- END
- #
- * SET UP THE ABH WORD FOR THE OUTGOING SUP/GO/N SM.
- #
- ABHABT[1] = APPSUP;
- ABHBT[1] = APPSUP;
- ABHACT[1] = ACTCSNP$;
- ABHTLC[1] = NSUPGO;
- PFCSFC[1] = SUPGON;
- #
- * SET UP THE WORD COUNT WORD OF THE SM ENTRY TO THE OUTGOING
- * OPERATOR TRAFFIC QUEUE.
- #
- WCB$SMID[1] = SMID"SUPGON";
- WCB$WC[1] = LSUPGO + 2;
- #
- * SEND THE SM TO THE NPU(S).
- #
- FOR NPUORD=BEGNPU STEP 1 UNTIL FINNPU
- DO
- BEGIN
- IF NPU$STAT[NPUORD] EQ SUPSTAT"SUP"
- THEN
- BEGIN
- ABHDN[1] = NPU$NID[NPUORD];
- ABHSN[1] = NPU$HID[NPUORD];
- SSTAQE(P<OTQ>,WCBUF[1],ABH[1],CSSM[1]);
- IF NPU$GFLAG[NPUORD]
- THEN
- BEGIN
- #
- * CANCEL TIMER REQUEST AND CLEAR -NEED GO- FLAG IN THE NPUCB.
- #
- SSCCTR(NPU$CNUM[NPUORD],SUCCESS);
- NPU$GFLAG[NPUORD] = FALSE;
- END
- END
- END
- #
- * SET UP TO SEND THE NULL TEXT TO THE OPERATOR TO CAUSE THE
- * READY.. MESSAGE.
- #
- WCB$WORD[1] = 0;
- ABHWORD[1] = 0;
- ABHADR[1] = HDR$OPORD[0];
- WCB$SMID[1] = SMID"TTEXT";
- WCB$IAF[1] = TRUE;
- WCB$WC[1] = 2;
- SSTAQE(P<CNQ>,WCBUF[1],ABH[1],CSSM[1]);
- #
- * SET UP AND SEND THE EVENT ENTRY TO LOG THE TEXT.
- #
- WCB$WORD[1] = 0;
- ABHWORD[1] = 0;
- WCB$SMID[1] = SMID"CMDTXT";
- WCB$WC[1] = HDR$TXWCNT[0] + 4;
- P<MSCMD> = LOC(CMD$TEXT[0]);
- CMD$TNAM[0] = OC$TNAM[HDR$OPORD[0]];
- #
- * MOVE THE TEXT INTO THE TEXT BUFFER.
- #
- MOVE(HDR$TXWCNT[0],PARMS[0],MSCMD[0]);
- SSTAQE(P<EVQ>,WCBUF[1],ABH[1],CMDLINE[0]);
- END #CSSAGO#
- TERM
cdc/nos2.source/nam5871/cssago.txt ยท Last modified: 2023/08/05 17:21 by Site Administrator