*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 BTNM$TNM[0] = SSDCAD(BMSGTN[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,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 = BMSG$WORD[MWC]; BMTO$WORD[WC] = SSDCAD(A$CHAR); BPOS = BPOS + 8; END ELSE IF BPOS EQ 56 THEN BEGIN B<52,4>A$CHAR = BMSG$WORD[MWC]; MWC = MWC + 1; B<56,4>A$CHAR = B<0,4>MSG$WORD[MWC]; BMTO$WORD[WC] = SSDCAD(A$CHAR); BPOS = 4; END ELSE BEGIN MWC = MWC + 1; A$CHAR = B<0,8>MSG$WORD[MWC]; BMTO$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,WCBUF[1],ABH[1],MTO$TXT); RETURN; # **** RETURN **** # END # CSESOM # TERM