cdc:nos2.source:nam5871:cssaso
Table of Contents
CSSASO
Table Of Contents
- [00007] PROC CSSASO
- [00011] ACTION SEND TO OPERATOR.
- [00031] PROC MOVE
- [00032] PROC SSBSBF
- [00033] PROC SSTAQE
Source Code
- CSSASO.txt
- *DECK CSSASO
- USETEXT TEXTCS
- USETEXT TEXTSS
- USETEXT TXCMDCS
- USETEXT TXTAPSS
- USETEXT TXTSMCS
- PROC CSSASO;
- # TITLE - ACTION SEND TO OPERATOR #
- BEGIN
- #
- ** CSSASO - ACTION SEND TO OPERATOR.
- *
- * D.K. ENDO 83/03/22
- *
- * THIS ROUTINE SENDS MESSAGES TO OTHER OPERATORS.
- *
- * PROC CSSASO
- *
- * ENTRY 1. HDRCMD[0] = COMMAND HEADER WORD.
- * 2. PARMS[0] = COMMAND PARAMETER BLOCK.
- *
- * EXIT 1. MESSAGE SENT TO OPERATOR.
- *
- #
- #
- **** CSSASO - XREF LIST
- #
- XREF
- BEGIN
- PROC MOVE; # MOVES A BLOCK OF CM WORDS #
- PROC SSBSBF; # STORE BIT FIELD #
- PROC SSTAQE; # ACCEPT QUEUE ENTRY #
- END
- #
- ****
- #
- DEF FOMTXTL # 3 #; # LENGTH OF FOM MESSAGE IN CM WORDS #
- DEF MSINDX # HDR$TXWCNT[0]+3 #; # INDX INTO PARM LIST FOR MS #
- DEF TEINDX # HDR$TXWCNT[0]+2 #; # INDX INTO PARM LIST FOR TE #
- ITEM CCNT; # CHARACTER COUNT #
- ITEM CNST1; # CONSTANT 1 #
- ITEM CNST2; # CONSTANT 2 #
- ITEM CNST3; # CONSTANT 3 #
- ITEM HOPFLAG B; # FLAG SET WHEN MSG IS TO BE SENT TO HOP #
- ITEM I; # OPERATOR CONTROL BLOCK ORDINAL #
- ITEM WC; # WORD COUNT #
- #
- * FOM - *FROM OPERATOR* MESSAGE, SENT ALONG WITH THE MESSAGE TO THE
- * OPERATOR.
- #
- ARRAY FOM [00:00] S(FOMTXTL);
- BEGIN
- ITEM FOM$TXT1 C(00,00,14) = ["FROM OPERATOR "];
- ITEM FOM$TNAM C(01,24,07);
- ITEM FOM$TXT2 C(02,06,02) = [": "];
- ITEM FOM$ZBYT U(02,18,42) = [0];
- END
- #
- * SET UP WCB WORD. SET UP THE ABH WORD. IF THIS MESSAGE IS FOR THE
- * HOST, THEN SET THE ACN FOR THE HOP, OTHERWISE SEARCH THE OCB-S
- * FOR THE TERMINAL NAME AND SET THE ACN TO THE OCB ORDINAL WHEN
- * FOUND.
- #
- WCB$WORD[1] = 0;
- WCB$SMID[1] = SMID"TTEXT";
- ABHWORD[1] = 0;
- IF PAR$PCODE[TEINDX] EQ "HO0"
- THEN
- BEGIN
- ABHADR[1] = HOPORD$;
- WCB$HAF[1] = TRUE;
- HOPFLAG = TRUE;
- I = HOPORD$;
- END
- ELSE
- BEGIN
- FOR I=HOPORD$+1 STEP 1 WHILE PAR$ELNAME[TEINDX] NQ OC$TNAM[I]
- AND I LQ MAXACN$
- DO
- BEGIN
- END
- IF I LQ MAXACN$
- THEN
- BEGIN
- ABHADR[1] = I;
- HOPFLAG = FALSE;
- END
- ELSE
- BEGIN
- GOTO ENDEXIT;
- END
- END
- #
- * ENTER NAME OF THE TERMINAL IN TEXT AND SEND THE TEXT TO THE
- * OPERATOR. IF THE IS MESSAGE IS TO GO TO THE HOP THEN SET THE
- * AUDIENCE GROUP THE HOP AND SEND IT TO THE OPERATOR RESPONSE QUEUE
- * TO ENTER THE MESSAGE INTO THE HISTORY QUEUE.
- #
- CNST1 = 1;
- CNST2 = 24;
- CNST3 = 42;
- SSBSBF(FOM,CNST1,CNST2,CNST3,B<0,42>OC$TNAM[HDR$OPORD[0]]);
- WCB$WC[1] = FOMTXTL + 2;
- SSTAQE(P<CNQ>,WCBUF[1],ABH[1],FOM);
- IF HOPFLAG
- THEN
- BEGIN
- ABHADR[1] = AUDGR6$;
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],FOM);
- ABHADR[1] = I;
- END
- #
- * MOVE TEXT OF MESSAGE TO THE MSG BUFFER. SEND THE TEXT TO THE
- * BUFFER. IF THIS MESSAGE IS TO BE SENT TO THE HOP, THEN SEND
- * THE MESSAGE TO THE OPERATOR RESPONSE QUEUE TO BE PUT IN THE
- * HISTORY BUFFER.
- #
- WC = (PAR$MSGCL[MSINDX] + 10) / 10;
- CCNT = (WC * 10) - PAR$MSGCL[MSINDX];
- IF CCNT LS 2
- THEN
- BEGIN
- WC = WC + 1;
- END
- WCB$WC[1] = WC + 2;
- MOVE(WC,PARMS[MSINDX+1],CSSM[1]);
- SSTAQE(P<CNQ>,WCBUF[1],ABH[1],CSSM[1]);
- IF HOPFLAG
- THEN
- BEGIN
- ABHADR[1] = AUDGR6$;
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],CSSM[1]);
- END
- #
- * SEND AN EMPTY TERMINAL TEXT WITH THE INPUT ALLOWED FLAG SET TO
- * COMPLETE THE COMMAND.
- #
- WCB$WC[1] = 2;
- WCB$IAF[1] = TRUE;
- ABHADR[1] = HDR$OPORD[0];
- SSTAQE(P<CNQ>,WCBUF[1],ABH[1],CSSM[1]);
- ENDEXIT:
- END # CSSASO #
- TERM
cdc/nos2.source/nam5871/cssaso.txt ยท Last modified: 2023/08/05 17:21 by Site Administrator