cdc:nos2.source:nam5871:cssdnr
Table of Contents
CSSDNR
Table Of Contents
- [00007] PROC CSSDNR
- [00008] CSSDNR - DETERMINE NPU REQUIREMENT
- [00014] DETERMINE NPU REQUIREMENT.
- [00044] PROC CSSRCA
- [00045] PROC SSTAQE
- [00046] PROC SSTRQE
Source Code
- CSSDNR.txt
- *DECK CSSDNR
- USETEXT TEXTCS
- USETEXT TXTAPSS
- USETEXT TEXTSS
- USETEXT TXTSMCS
- USETEXT TXCMDCS
- PROC CSSDNR;
- # TITLE CSSDNR - DETERMINE NPU REQUIREMENT #
- BEGIN # CSSDNR #
- #
- ** CSSDNR - DETERMINE NPU REQUIREMENT.
- *
- * C. BRION 82/06/15.
- *
- * THIS PROCEDURE IS PART OF THE COMMAND RECOGNITION ELEMENT OF CS.
- * ITS PURPOSE IS TO DETERMINE WHETHER A COMMAND THAT HAS BEEN
- * SYNTAXICALLY EXAMINED BY THE COMMAND RECOGNIZER IS A COMMAND THAT
- * WILL NEED TO HAVE THE PHYSICAL ADDRESSES OF THE NAMED ELEMENTS
- * INCORPORATED INTO THE COMMAND, WHETHER THE COMMAND IS GOING TO
- * BE ROUTED TO THE COMMAND DISPATCHER FOR PROCESSING.
- *
- * PROC CSSDNR
- *
- * ENTRY ONE OR MORE VALID COMMANDS RESIDE IN THE VALID COMMAND
- * QUEUE.
- *
- * EXIT THE VALID COMMAND QUEUE ENTRIES ARE EITHER ROUTED TO
- * THE COMMAND DISPATCHER FOR PROCESSING OR THEY ARE
- * PASSED TO THE APPROPRIATE SUBROUTINE FOR FURTHER
- * COMMAND PARAMETERIZATION OF PHYSICAL ADDRESSES OF
- * NAMED ELEMENTS.
- *
- #
- #
- **** PROC CSSDNR XREF LIST
- #
- XREF
- BEGIN
- PROC CSSRCA; # RESOLVE SINGLE NPU COMMAND #
- PROC SSTAQE; # SS-ACCEPT QUEUE ENTRY #
- PROC SSTRQE; # SS-REMOVE QUEUE ENTRY #
- END
- #
- ****
- #
- #
- * DEFS
- #
- #
- * ITEMS
- #
- ITEM I,J; # LOOP VARIABLES #
- ITEM MATCH B; # MATCH INDICATOR #
- ITEM OCBORD U; # LOCAL OCB ORDINAL #
- ITEM STRTINDX U; # START INDX FOR SYNT PARMS #
- ITEM MAXINDX U; # MAX INDEX OF PARMS #
- CONTROL EJECT;
- #
- * MAIN PROC START
- #
- #
- * CLEAR OUT THE LOCAL COMMAND STORAGE AREAS.
- #
- HDR$WORD[0] = 0;
- ABHWORD[1] = 0;
- FOR I = 0 STEP 1 UNTIL MCMDL$
- DO
- BEGIN
- PAR$WORD[I] = 0;
- END
- #
- * REMOVE THE FIRST ENTRY FROM THE VALID COMMAND QUEUE AND KEEP
- * PROCESSING THE ENTRIES UNTIL THE QUEUE IS EMPTY.
- #
- FOR I = 0 WHILE VCQL NQ 0
- DO
- BEGIN
- SSTRQE(P<VCQ>,WCBUF[0],HDRCMD[0],PARMS[0]);
- OCBORD = HDR$OPORD[0]; # SET LOCAL OCB ORDINAL #
- ABHADR[1] = OCBORD; # SET ADDRESS IN ABH #
- #
- * VALID COMMAND ENTRY NOW LOCAL, CHECK TO VERIFY THAT THE OP-
- * ERATOR IS STILL ACTIVELY CONNECTED TO CS. IF SO, CHECK TO
- * VERIFY THAT A CONNECTION BROKEN ISN'T PENDING. IF SO, SEND
- * A NULL TERMINAL TEXT ENTRY TO THE C LAYER TO BE ABLE TO
- * PROCEED WITH THE CONNECTION BROKEN.
- #
- IF OC$STATE[OCBORD]
- THEN
- BEGIN
- IF OC$CBPD[OCBORD]
- THEN
- BEGIN
- WCB$SMID[1] = SMID"TTEXT";
- WCB$WC[1] = 2;
- WCB$IAF[1] = TRUE;
- ABHTLC[1] = 0;
- SSTAQE(P<CNQ>,WCBUF[1],ABH[1],CSSM[1]);
- END
- ELSE
- #
- * THE OPERATOR IS ACTIVELY CONNECTED.
- * SEARCH THE COMMAND PARAMETER LIST FOR THE KEYWORDS THAT WOULD
- * QUALIFY THE COMMAND AS A SINGLE NPU COMMAND OR A DUAL NPU
- * COMMAND OR A COMMAND THAT IS ALREADY TO BE ROUTED TO THE
- * COMMAND DISPATCHER VIA THE ROUTED COMMAND QUEUE.
- #
- BEGIN
- MATCH = FALSE;
- STRTINDX = HDR$TXWCNT[0] + 1; # SET START INDEX#
- MAXINDX = HDR$SPCNT[0] + HDR$TXWCNT[0]; # SET MAX INDEX #
- FOR J = STRTINDX STEP 1
- WHILE J LS MAXINDX AND NOT MATCH
- DO
- BEGIN
- #
- * CHECK THE COMMAND ELEMENT. IF A COMMAND ELEMENT THAT NEEDS
- * ELEMENT ADDRESSES RESOLVED, CALL PROC CSSRCA. OTHERWISE THE
- * COMMAND ALREADY FOR COMMAND DISPATCHER.
- #
- IF PAR$PCODE[J] EQ "NP0"
- OR PAR$PCODE[J] EQ "CP0"
- OR PAR$PCODE[J] EQ "LI0"
- OR PAR$PCODE[J] EQ "TE0"
- OR PAR$PCODE[J] EQ "VC0"
- OR PAR$PCODE[J] EQ "TR0"
- OR PAR$PCODE[J] EQ "LL0"
- OR PAR$PCODE[J] EQ "NPS"
- OR PAR$PCODE[J] EQ "AU0"
- OR PAR$PCODE[J] EQ "HO0"
- THEN
- BEGIN
- MATCH = TRUE;
- CSSRCA(J);
- END
- END # FOR J LOOP #
- #
- * IF NONE OF THE PARAMETER LIST KEYWORDS FOR A SINGLE OR DUAL
- * NPU TYPE COMMAND WERE FOUND, THEN THE COMMAND IS ALREADY
- * FOR THE COMMAND DISPATCHER. GENERATE A ROUTED COMMAND QUEUE
- * ENTRY TO THE COMMAND DISPATCHER.
- #
- IF NOT MATCH
- THEN
- BEGIN
- HDR$APCNT[0] = 0;
- SSTAQE(P<RCQ>,WCBUF[1],HDRCMD[0],PARMS[0]);
- END
- END # ELSE #
- END # IF OC$STATE #
- END # FOR I LOOP #
- END # CSSDNR #
- TERM
cdc/nos2.source/nam5871/cssdnr.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator