*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<CNT$TXT> = 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<CNT$TXT> = 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<ORQ>,WCBUF[1],ABH[1],CNT$TXT[0]);
CSESLE(0,WCBUF[1],CNT$TXT);
RETURN; # **** RETURN **** #
END # CSESCM #
TERM