*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
