*DECK CSESCM USETEXT TEXTSS USETEXT TEXTCS USETEXT TXTAPSS PROC CSESCM; # TITLE - SEND CONTROL MESSAGE. # BEGIN # ** CSESCM - SEND CONTROL MESSAGE * * D.K. ENDO 82/03/19 * * THIS PROCEDURE INFORMS ALL THE OPERATORS WHEN CONTROL HAS BEEN * ASSIGNED OR RELEASE TO A NOP. * * PROC CSESCM * * ENTRY 1. ENTRY FROM THE EVENT QUEUE INDICATING CONTROL ON * OR OFF. * * EXIT 2. ENTRY IN THE OPERATOR RESPONSE QUEUE WITH MESSAGE * OF CONTROL STATUS. * # # **** PROC CSESCM - XREF LIST BEGINS. # XREF BEGIN PROC CSESLE; # SEND LOG (FILE) ENTRY # PROC SSBSBF; # STORE BIT FIELD # PROC SSTAQE; # ADD QUEUE ENTRY # END # **** # DEF ACT$TXTL # 70 #; # CHAR COUNT OF -ASSIGNED CONTROL- TEXT # DEF CTR$TXTL # 60 #; # CHAR COUNT OF -CONTROL RELEASED- TEXT # ITEM CNST1; # CONSTANT ---> 1 # ITEM CNST2; # CONSTANT ---> 2 # ITEM CNST3; # CONSTANT ---> 3 # # THIS ARRAY IS USED AS A TEMPLATE TO POINT TO THE MESSAGE TO BE SENT. # BASED ARRAY CNT$TXT [00:00] S(5); BEGIN ITEM CNT$TIM C(00,00,10); ITEM CNT$TNM C(01,30,07); ITEM CNT$UNM C(02,18,07); END # THIS ARRAY DEFINES THE -ASSIGN CONTROL- MESSAGE TEXT SENT WHEN A CONTROL ON IS RECEIVED. # ARRAY ACT$TXT [00:00] S(7); BEGIN ITEM ACT$TIM C(00,00,10); ITEM ACT$NOP C(01,00,05) = ["NOP: "]; ITEM ACT$TNM C(01,30,07); ITEM ACT$MS1 C(02,12,01) = [","]; ITEM ACT$UNM C(02,18,07); ITEM ACT$MSG C(03,00,22) = [", ASSIGNED CONTROL OF "]; ITEM ACT$NNAM C(05,12,07); ITEM ACT$ZBYT U(05,54,06) = [0]; ITEM ACT$ZBYT2 I(06,00,60) = [0]; END # THIS ARRAY DEFINES THE -CONTROL RELEASED- MESSAGE TEXT SENT WHEN A CONTROL OFF IS RECEIVED. # ARRAY CTR$TXT [00:00] S(6); BEGIN ITEM CTR$TIM C(00,00,10); ITEM CTR$NOP C(01,00,05) = ["NOP: "]; ITEM CTR$TNM C(01,30,07); ITEM CTR$MSG C(02,12,22) = [", RELEASED CONTROL OF "]; ITEM CTR$NNAM C(04,24,07); ITEM CTR$ZBYT U(05,06,54) = [ 0 ]; END CONTROL EJECT; # # # CSESCM CODE BEGINS HERE # # # # * IF CONTROL ON IS INDICATED THEN APPEND -ASSIGNED CONTROL- MESSAGE * TO TEXT, ELSE APPEND -CONTROL RELEASED-. APPEND THE TIME AND THE * TERMINAL NAME TO THE TEXT. SEND THE OFF TO THE OPERATOR RESPONSE * QUEUE WITH A AUDIENCE GROUP OF ONE (HOP AND ALL NOP-S). # WCB$WORD[1] = 0; ABHWORD[1] = 0; ABHADR[1] = AUDGR1$; ABHABN[1] = ABHSN[0]; IF WCB$SMID[0] EQ SMID"CTRLON" THEN BEGIN ACT$NNAM[0] = NPU$NAME[ABHSN[0]]; P = LOC(ACT$TXT); ABHTLC[1] = ACT$TXTL; CNT$UNM[0] = OC$UNAM[NPU$CNOP[ABHSN[0]]]; END ELSE BEGIN CNST1 = 4; CNST2 = 24; CNST3 = 42; SSBSBF(CTR$TXT,CNST1,CNST2,CNST3,B<0,42>NPU$NAME[ABHSN[0]]); P = LOC(CTR$TXT); ABHTLC[1] = CTR$TXTL; END CNT$TIM[0] = CTM$CLOCK[0]; CNST1 = 1; CNST2 = 30; CNST3 = 42; SSBSBF(CNT$TXT,CNST1,CNST2,CNST3,B<0,42>MSG$WORD[0]); WCB$WC[1] = 2 + (ABHTLC[1] / 10); SSTAQE(P,WCBUF[1],ABH[1],CNT$TXT[0]); CSESLE(0,WCBUF[1],CNT$TXT); RETURN; # **** RETURN **** # END # CSESCM # TERM