cdc:nos2.source:nam5871:cssdrc
Table of Contents
CSSDRC
Table Of Contents
- [00008] PROC CSSDRC
- [00009] CSSDRC - DISPATCH ROUTED COMMANDS.
- [00013] DISPATCH COMMANDS.
- [00040] PROC CSSACO
- [00041] PROC CSSAGO
- [00042] PROC CSSADI
- [00043] PROC CSSAEN
- [00044] PROC CSSADL
- [00045] PROC CSSDTC
- [00046] PROC CSSARE
- [00047] PROC CSSASD
- [00048] PROC CSSAST
- [00049] PROC CSSAIN
- [00050] PROC CSSAED
- [00051] PROC CSSAAC
- [00052] PROC CSSASO
- [00053] PROC CSSTCM
- [00054] PROC SSTAQE
- [00055] PROC SSTRQE
- [00056] PROC MESSAGE
- [00057] PROC ABORT
Source Code
- CSSDRC.txt
- *DECK CSSDRC
- USETEXT TEXTCS;
- USETEXT TXTAPSS;
- USETEXT TXTSUSS;
- USETEXT TXTSMCS;
- USETEXT TXCMDCS;
- USETEXT TEXTSS;
- PROC CSSDRC;
- # TITLE CSSDRC - DISPATCH ROUTED COMMANDS. #
- BEGIN #CSSDRC#
- #
- ** CSSDRC - DISPATCH COMMANDS.
- *
- * C. BRION 82/06/15.
- *
- * THIS PROCEDURE WILL EXTRACT ROUTED COMMANDS FROM THE ROUTED
- * COMMAND QUEUE AND THEN, BASED ON THE COMMAND VERB, EITHER
- * CALL THE APPROPRIATE COMMAND PROCESSING PROCEDURE OR QUEUE
- * AN ENTRY TO THE APPROPRIATE PROCESSOR.
- *
- * PROC CSSDRC
- *
- * ENTRY:
- * AT LEAST ONE ROUTED COMMAND QUEUE ENTRY RESIDES IN THE
- * ROUTED COMMAND QUEUE.
- *
- * EXIT:
- * THE ROUTED COMMAND QUEUE WILL BE EXHAUSTED AND THE ENTRIES
- * WILL HAVE BEEN PROCESSED BY THE APPROPRIATE COMMAND PROCESSING
- * PROCEDURE.
- #
- #
- **** PROC CSSDRC XREF LIST
- #
- XREF
- BEGIN
- PROC CSSACO; # ACTION CONTROL CMD #
- PROC CSSAGO; # ACTION GO COMMAND #
- PROC CSSADI; # ACTION DISABLE CMD #
- PROC CSSAEN; # ACTION ENABLE CMD #
- PROC CSSADL; # ACTION DUMP/LOAD CMD #
- PROC CSSDTC; # ACTION OVERLAY CMD #
- PROC CSSARE; # ACTION REPORT COMMAND #
- PROC CSSASD; # ACTION SEND CMD #
- PROC CSSAST; # ACTION STATUS CMD #
- PROC CSSAIN; # ACTION INFO CMD #
- PROC CSSAED; # ACTION END CMD #
- PROC CSSAAC; # ACTION ALERT COMMAND #
- PROC CSSASO; # ACTION SEND TO OPERATOR #
- PROC CSSTCM; # TERMINATE COMMAND #
- PROC SSTAQE; # SS-ACCEPT QUEUE ENTRY #
- PROC SSTRQE; # SS-REMOVE QUEUE ENTRY #
- PROC MESSAGE; # MACREL DAYFILE MSG #
- PROC ABORT; # MACREL ABORT #
- END
- #
- ****
- #
- #
- * ITEMS
- #
- ITEM I; # LOOP VARIABLE #
- ITEM J; # LOOP VARIABLE #
- ITEM OORD I; # OCB ORDINAL #
- #
- * BADCMD - BAD COMMAND VERB MESSAGE.
- #
- ARRAY BADCMD [00:00] S(2);
- BEGIN
- ITEM BAD$TXT1 C(00,00,18) = ["CSSDRC-BAD COMMAND"];
- ITEM BAD$ZERO U(01,48,12) = [0];
- END
- #
- * MAIN PROC START
- #
- #
- * THIS PROCEDURE WILL REMOVE A QUEUE ENTRY FROM THE ROUTED COMMAND
- * QUEUE UNTIL IT IS EMPTY.
- #
- FOR I = 0 WHILE RCQL NQ 0
- DO
- BEGIN
- #
- * CLEAR BUFFER.
- #
- FOR J=0 STEP 1 UNTIL MCMDL$
- DO
- BEGIN
- PAR$WORD[J] = 0;
- END
- SSTRQE(P<RCQ>,WCBUF[0],HDRCMD[0],PARMS[0]);
- #
- * ENTRY REMOVED INTO COMMON MEMORY AS FOLLOWS:
- *
- * WCBUF = ONE WORD FOR ENTRY WORD COUNT.
- * HDRCMD = ONE WORD FOR COMMAND HEADER.
- * PARMS = THE COMMAND BODY WITH THE SYNTAX AND ADDRESS PARAMETER
- * LISTS PRECEEDED BY THE RAW COMMAND TEXT STRING.
- #
- #
- * IF THE OCB IS CURRENTLY ACTIVE AND THE CB PENDING FLAG
- * IS NOT SET TRUE, THEN CONTINUE WITH PROCESSING. OTHER-
- * WISE, SEND NULL TERMINAL TEXT TO CONNECTION LAYER SO
- * AS TO UNLEASH THE CON/CB FOR THE OPERATOR.
- #
- OORD = HDR$OPORD[0]; # SET THE OCB ORDINAL #
- IF OC$STATE[OORD]
- THEN
- BEGIN
- IF NOT OC$CBPD[OORD]
- THEN
- BEGIN
- #
- * BASED ON THE COMMAND VERB VALUE OF THE COMMAND HEADER WORD,
- * THE DISPATCH TO THE APPROPRIATE COMMAND PROCESSOR IS DONE.
- #
- IF HDR$VERB[0] EQ "CO0" # CONTROL CMD #
- THEN
- CSSACO;
- ELSE IF HDR$VERB[0] EQ "GO0" # GO CMD #
- THEN
- CSSAGO;
- ELSE IF HDR$VERB[0] EQ "DI0" # DISABLE CMD #
- THEN
- CSSADI;
- ELSE IF HDR$VERB[0] EQ "EN0" # ENABLE CMD #
- THEN
- CSSAEN;
- ELSE IF HDR$VERB[0] EQ "DU0" # DUMP OR LOAD CMD #
- OR HDR$VERB[0] EQ "LO0"
- THEN
- CSSADL;
- ELSE IF HDR$VERB[0] EQ "TS0" # OVERLAY CMD #
- THEN
- CSSDTC;
- ELSE IF HDR$VERB[0] EQ "SE0" # SEND CMD #
- THEN
- CSSASD;
- ELSE IF HDR$VERB[0] EQ "SE1" # SEND CMD #
- THEN
- CSSASO;
- ELSE IF HDR$VERB[0] EQ "ST0" # STATUS CMD #
- THEN
- CSSAST;
- ELSE IF HDR$VERB[0] EQ "IN0" # INFO CMD #
- THEN
- CSSAIN;
- ELSE IF HDR$VERB[0] EQ "RE0" # REPORT CMD #
- THEN
- CSSARE;
- ELSE IF HDR$VERB[0] EQ "END" # END CMD #
- OR HDR$VERB[0] EQ "BYE"
- OR HDR$VERB[0] EQ "HEL"
- THEN
- CSSAED;
- ELSE IF HDR$VERB[0] EQ "BRK" # BREAK CMD #
- THEN
- CSSTCM;
- ELSE IF HDR$VERB[0] EQ "HI0" # HISTORY CMD #
- THEN
- BEGIN
- WCB$SMID[0] = SMID"HIST"; # SET INTERNAL ID #
- SSTAQE(P<HRQ>,WCBUF[0],HDRCMD[0],PARMS[0]); # QUEUE OPERATOR #
- # OUPUT Q ENTRY #
- # FOR HISTORY #
- END
- ELSE IF HDR$VERB[0] EQ "AL0" # ACTION ALERT COMMAND #
- THEN
- CSSAAC;
- ELSE
- BEGIN
- $BEGIN
- MESSAGE(BADCMD,0);
- ABORT;
- $END
- END
- END
- ELSE # CB PENDING FLAG ON #
- BEGIN
- WCB$WORD[1] = 0;
- ABHWORD[1] = 0;
- WCB$WC[1] = 2;
- WCB$SMID[1] = SMID"TTEXT";
- WCB$IAF[1] = TRUE;
- ABHADR[1] = OORD;
- SSTAQE(P<CNQ>,WCBUF[1],ABH[1],CSSM[1]);
- END
- END
- END # FOR LOOP #
- END #CSSDRC#
- TERM
cdc/nos2.source/nam5871/cssdrc.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator