cdc:nos2.source:nam5871:csesom
Table of Contents
CSESOM
Table Of Contents
- [00006] PROC CSESOM
- [00007] SEND OPERATOR MESSAGE.
- [00010] SEND OPERATOR MESSAGE.
- [00031] FUNC SSDCAD U
- [00032] PROC SSTAQE
Source Code
- CSESOM.txt
- *DECK CSESOM
- USETEXT TEXTSS
- USETEXT TEXTCS
- USETEXT TXTAPSS
- USETEXT TXTSMCS
- PROC CSESOM;
- # TITLE - SEND OPERATOR MESSAGE. #
- BEGIN
- #
- ** CSESOM - SEND OPERATOR MESSAGE.
- *
- * D.K. ENDO 82/03/29
- *
- * THIS PROCEDURE FORMATS MESSAGE TO THE OPERATORS AND SENDS IT TO
- * THEM VIA THE OPERATOR RESPONSE QUEUE.
- *
- * PROC CSESOM
- *
- * ENTRY 1. MSG/OP/U SM FROM THE EVENT QUEUE.
- *
- * EXIT 1. FORMATTED MESSAGE TO THE OPERATORS SENT TO THE
- * OPERATOR RESPONSE QUEUE WITH THE AUDIENCE GROUP
- * SET TO TWO.
- *
- #
- #
- **** PROC CSESOM - XREF LIST BEGINS.
- #
- XREF
- BEGIN
- FUNC SSDCAD U; # CONVERT ASCII TO DISPLAY CODE #
- PROC SSTAQE; # ADD QUEUE ENTRY #
- END
- #
- ****
- #
- DEF NONTXT$ # 15 #; # NUMBER OF CHARS NOT PART OF TEXT #
- DEF TNM$TXTL # 40 #; # CHAR COUNT OF TERMINAL NAME TEXT #
- ITEM A$CHAR = 0; # ASCII CHARACTER FROM MESSAGE TEXT #
- ITEM BPOS; # BIT POSITION OF CURRENT ASCII CHARACTER #
- ITEM CHARCNT; # CHARACTER COUNT OF MESSAGE #
- ITEM CHARPOS; # BIT POSITION OF CRNT DISPLAY CODE CHAR #
- ITEM I; # LOOP INDUCTION VARIABLE #
- ITEM MCC; # MESSAGE CHARACTER COUNT #
- ITEM MWC; # WORD COUNT INTO MESSAGE TEXT #
- ITEM WC; # WORD COUNT OF TEXT SENT #
- #
- THIS ARRAY DEFINES THE MESSAGE TEXT FORMATTED AS SENT TO THE
- OPERATORS.
- #
- DEF MX$MTO # 07 #;
- ARRAY MTO$TXT [01:MX$MTO] S(1);
- BEGIN
- ITEM MTO$TIM C(00,00,10) = [" "];
- ITEM MTO$WORD U(00,00,60);
- END
- #
- * THIS ARRAY DEFINES THE TERMINAL NAME TEXT SENT WITH THE MESSAGE
- #
- ARRAY TNM$TXT [00:00] S(4);
- BEGIN
- ITEM TNM$TIM C(00,00,10);
- ITEM TNM$TERM C(01,00,11) = ["FROM TERM--"];
- ITEM TNM$TNM U(02,06,42);
- ITEM TNM$C1 C(02,48,02) = [": "];
- ITEM TNM$ZBYT U(03,00,60) = [0];
- END
- CONTROL EJECT;
- # #
- # CSESOM CODE BEGINS HERE #
- # #
- #
- * APPEND THE CURRENT TIME TO THE TEXT. CONVERT THE TERMINAL NAME
- * AND APPEND IT TO THE TEXT. CONVERT THE MESSAGE AND CONVERT IT TO
- * TEXT. SEND THE TEXT OFF TO THE OPERATOR RESPONSE QUEUE WITH AN
- * AUDIENCE GROUP OF TWO.
- #
- TNM$TIM[0] = CTM$CLOCK[0];
- FOR I=0 STEP 1 UNTIL 6
- DO
- BEGIN
- B<I*6,6>TNM$TNM[0] = SSDCAD(B<I*8,8>MSGTN[0]);
- END
- WCB$WORD[1] = 0;
- WCB$WC[1] = 2 + (TNM$TXTL / 10);
- ABHWORD[1] = TNM$TXTL;
- ABHADR[1] = AUDGR4$;
- FOR I=0 STEP 1 WHILE NPU$NID[I] NQ ABHSN[0] AND
- I LS CSNPCNT
- DO
- BEGIN
- END
- ABHABN[1] = I;
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],TNM$TXT);
- FOR I=2 STEP 1 UNTIL MX$MTO
- DO
- BEGIN
- MTO$WORD[I] = 0;
- END
- A$CHAR = 0;
- BPOS = 0;
- CHARCNT = 1;
- MWC = 2;
- MCC = ABHTLC[0] - NONTXT$;
- FOR WC=2 STEP 1 WHILE CHARCNT LQ MCC AND
- WC LS MX$MTO
- DO
- BEGIN
- FOR CHARPOS=0 STEP 6 WHILE CHARCNT LQ MCC AND
- CHARPOS LS 60
- DO
- BEGIN
- IF BPOS LQ 52
- THEN
- BEGIN
- A$CHAR = B<BPOS,8>MSG$WORD[MWC];
- B<CHARPOS,6>MTO$WORD[WC] = SSDCAD(A$CHAR);
- BPOS = BPOS + 8;
- END
- ELSE IF BPOS EQ 56
- THEN
- BEGIN
- B<52,4>A$CHAR = B<BPOS,4>MSG$WORD[MWC];
- MWC = MWC + 1;
- B<56,4>A$CHAR = B<0,4>MSG$WORD[MWC];
- B<CHARPOS,6>MTO$WORD[WC] = SSDCAD(A$CHAR);
- BPOS = 4;
- END
- ELSE
- BEGIN
- MWC = MWC + 1;
- A$CHAR = B<0,8>MSG$WORD[MWC];
- B<CHARPOS,6>MTO$WORD[WC] = SSDCAD(A$CHAR);
- BPOS = 8;
- END
- CHARCNT = CHARCNT + 1;
- END
- END
- IF CHARPOS LQ 48
- THEN
- BEGIN
- WC = WC - 1;
- END
- WCB$WC[1] = 2 + WC;
- ABHTLC[1] = WC * 10;
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],MTO$TXT);
- RETURN; # **** RETURN **** #
- END # CSESOM #
- TERM
cdc/nos2.source/nam5871/csesom.txt ยท Last modified: 2023/08/05 17:21 by Site Administrator