*DECK     CSESEC
USETEXT TEXTOV
USETEXT TEXTCS
USETEXT TEXTSS
USETEXT TXTAPSS 
USETEXT TXTSMCS 
      PROC CSESEC;
# TITLE - SEND ELEMENT COUNT.                                          #
      BEGIN 
# 
**    CSESEC - SEND ELEMENT COUNT.
* 
*     D.K. ENDO    82/03/18 
* 
*     THIS PROCEDURE FORMATS A MESSAGE REPORTING THE NUMBER OF ELEMENTS 
*     (TERMINALS,LINES,LOGICAL LINKS, OR TRUNKS) THAT ARE DISABLED. 
* 
*     PROC CSESEC 
* 
*     ENTRY        1. CDI/TE/U, CDI/CI/U, CDI/LL/U, OR CDI/TR/U SM. 
* 
*     EXIT         1. ENTRY IN OPERATOR RESPONSE QUEUE WITH THE DISABLED
*                     COUNT MESSAGE.
# 
# 
****  PROC CSESEC - XREF LIST BEGINS. 
# 
      XREF
        BEGIN 
        PROC CSESLE;         # SEND LOG (FILE) ENTRY                   #
        PROC SSBSBF;         # STORE BIT FIELD                         #
        PROC SSTAQE;         # ADD QUEUE ENTRY                         #
        FUNC XCDD C(10);     # CONVERT DECIMAL INTEGER TO DISPLAY CODE #
        END 
# 
****
# 
      DEF LDC$TXTL # 50 #;   # CHAR COUNT OF -LINE DISABLED- TEXT      #
      DEF LLC$TXTL # 60 #;   # CHAR COUNT OF -LOGLINK DISABLED- TEXT   #
      DEF TDC$TXTL # 70 #;   # CHAR COUNT OF -TERMINAL DISABLED- TEXT  #
      DEF TDC$TXT2L # 50 #;  # CHAR COUNT OF -TRMNL DISABLED 2- TEXT   #
      DEF TRC$TXTL # 50 #;   # CHAR COUNT OF -TRUNK DISABLED- TEXT     #
  
  
      ITEM CNST1;            # CONSTANT ---> 1                         #
      ITEM CNST2;            # CONSTANT ---> 2                         #
      ITEM CNST3;            # CONSTANT ---> 3                         #
      ITEM I;                # LOOP INDUCTION VARIABLE                 #
  
  
# 
      THIS ARRAY DEFINES THE TEMPLATE THAT POINTS TO THE MESSAGE THAT IS
      TO BE SENT. 
# 
      BASED ARRAY CDI$TXT [00:00] S(3); 
        BEGIN 
        ITEM CDI$TIM    C(00,00,10);
        ITEM CDI$NNM    C(01,36,07);
        ITEM CDI$NE     C(02,24,03);
        END 
  
  
# 
      THIS ARRAY IS USED AS A TEMPORY TO STORE A TEXT STRING TO BE LATER
      APPENDED TO THE OUT GOING TEXT. 
# 
      ARRAY CTEMP$WORD [00:00] S(1);
        BEGIN 
        ITEM CTEMP      C(00,00,10);
        ITEM CTEMP3     C(00,42,03);
        END 
  
  
# 
      THIS ARRAY DEFINES THE -LINE DISABLED- MESSAGE TEXT TO BE SENT
      WHEN A CDI/LI/U SM IS RECEIVED. 
# 
      ARRAY LDC$TXT [00:00] S(5); 
        BEGIN 
        ITEM LDC$TIM    C(00,00,10);
        ITEM LDC$NPU    C(01,00,05) = ["NPU: "];
        ITEM LDC$NNM    C(01,30,07);
        ITEM LDC$C1     C(02,12,02) = [", "]; 
        ITEM LDC$NE     C(02,24,03);
        ITEM LDC$MSG    C(02,42,15) = [" LINES DISABLED"];
        ITEM LDC$ZBYT   U(04,12,48) = [ 0 ];
        END 
  
  
# 
      THIS ARRAY DEFINES THE -LOGLINKS DISABLED- MESSAGE TEXT TO BE SENT
      WHEN A CDI/LI/U SM IS RECEIVED. 
# 
      ARRAY LLC$TXT [00:00] S(6); 
        BEGIN 
        ITEM LLC$TIM    C(00,00,10);
        ITEM LLC$NPU    C(01,00,05) = ["NPU: "];
        ITEM LLC$NNM    C(01,30,07);
        ITEM LLC$C1     C(02,12,02) = [", "]; 
        ITEM LLC$NE     C(02,24,03);
        ITEM LLC$MSG    C(02,42,23) = [" LOGICAL LINKS DISABLED"];
        ITEM LLC$ZBYT   U(05,00,60) = [ 0 ];
        END 
  
  
# 
      THIS ARRAY DEFINES THE -TERMINALS DISABLED- MESSAGE TEXT TO BE
      SENT WHEN A CDI/TE/U SM IS RECEIVED.
# 
      ARRAY TDC$TXT [00:00] S(7); 
        BEGIN 
        ITEM TDC$TIM    C(00,00,10);
        ITEM TDC$NPU    C(01,00,05) = ["NPU: "];
        ITEM TDC$NNM    C(01,30,07);
        ITEM TDC$C1     C(02,12,02) = [", "]; 
        ITEM TDC$NE     C(02,24,03);
        ITEM TDC$MSG    C(02,42,29) = [" TERMINALS DISABLED ON LINE: "];
        ITEM TDC$LNM    C(05,36,07);
        ITEM TDC$ZBYT   U(06,18,42) = [ 0 ];
        END 
  
  
# 
*     THIS ARRAY DEFINES THE -TERMINALS DISABLED- MESSAGE TEXT TO BE
*     SENT WHEN A CDI/TE/U SM IS RECEIVED AND THERE IS NO LINE FOUND
*     SUPPORTING THE DEVICES. 
# 
      ARRAY TDC$TXT2 [00:00] S(5);
        BEGIN 
        ITEM TD2$TIM    C(00,00,10);
        ITEM TD2$NPU    C(01,00,05) = ["NPU: "];
        ITEM TD2$NNM    C(01,30,07);
        ITEM TD2$C1     C(02,12,02) = [", "]; 
        ITEM TD2$NE     C(02,24,03);
        ITEM TD2$MSG    C(02,42,19) =[" TERMINALS DISABLED"]; 
        ITEM TD2$ZBYT   U(04,36,24) = [0];
        END 
  
  
# 
      THIS ARRAY DEFINES THE -TRUNKS DISABLED- MESSAGE TEXT TO BE SENT
      WHEN A CDI/TR/U SM IS RECEIVED. 
# 
      ARRAY TRC$TXT [00:00] S(5); 
        BEGIN 
        ITEM TRC$TIM    C(00,00,10);
        ITEM TRC$NPU    C(01,00,05) = ["NPU: "];
        ITEM TRC$NNM    C(01,30,07);
        ITEM TRC$C1     C(02,12,02) = [", "]; 
        ITEM TRC$NE     C(02,24,03);
        ITEM TRC$MSG    C(02,42,16) = [" TRUNKS DISABLED"]; 
        ITEM TRC$ZBYT   U(04,18,42) = [0];
        END 
  
  
# 
      THIS ARRAY DEFINES THE LINE NAME USED WHEN ONE IS NOT FOUND IN THE
      LINE XREF TABLE.
# 
      ARRAY UNK$TXT [00:00] S(1); 
        BEGIN 
        ITEM UNK$NAM    C(00,18,07) = ["UNKNOWN"];
        END 
      CONTROL EJECT;
#                                                                      #
#                            CSESEC CODE BEGINS HERE                   #
#                                                                      #
# 
*     IF THIS SM IS CDI/TE/U, SEARCH THE LINE XREF TABLE GIVEN THE PORT 
*     AND NODE I.D. FOR THE NAME OF THE LINE SUPPORTING THE DEVICE AND
*     APPEND IT TO THE TEXT.  APPEND -TERMINALS DISABLED- MSG TO TEXT.
# 
      WCB$WORD[1] = 0;
      ABHWORD[1] = 0; 
  
  
      IF WCB$SMID[0] EQ SMID"CDITE" 
      THEN
        BEGIN 
        FOR I=0 STEP 1 WHILE NOT (ABHSN[0] EQ LIX$NID[I] AND
                                  CDIP[0] EQ LIX$PORT[I]) AND 
                             I LS LIXL
        DO
          BEGIN 
          END 
        IF I LS LIXL
        THEN
          BEGIN 
          CNST1 = 5;
          CNST2 = 36; 
          CNST3 = 42; 
          SSBSBF(TDC$TXT,CNST1,CNST2,CNST3,B<0,42>LIX$NAME[I]); 
  
  
          P<CDI$TXT> = LOC(TDC$TXT);
          ABHTLC[1] = TDC$TXTL; 
          END 
        ELSE
          BEGIN 
          P<CDI$TXT> = LOC(TDC$TXT2); 
          ABHTLC[1] = TDC$TXT2L;
          END 
        END 
# 
*     IF THIS SM IS CDI/LI/U, THEN APPEND -LINE DISABLED- MESSAGE TO THE
*     TEXT AND SAVE THE LENGTH OF THE MESSAGE.
# 
  
  
      ELSE IF WCB$SMID[0] EQ SMID"CDILI"
      THEN
        BEGIN 
        P<CDI$TXT> = LOC(LDC$TXT);
  
  
        ABHTLC[1] = LDC$TXTL; 
        END 
# 
*     IF THIS SM IS CDI/LL/U, THEN APPEND -LOGICAL LINKS DISABLED- MSG
*     TO THE TEXT AND SAVE THE LENGTH OF THE MESSAGE. 
# 
  
  
      ELSE IF WCB$SMID[0] EQ SMID"CDILL"
      THEN
        BEGIN 
        P<CDI$TXT> = LOC(LLC$TXT);
  
  
        ABHTLC[1] = LLC$TXTL; 
        END 
# 
*     IF THIS SM IS CDI/TR/U, THEN APPEND -TRUNKS DISABLED- MESSAGE TO
*     THE TEXT AND SAVE THE LENGTH OF THE MESSAGE.
# 
  
  
      ELSE IF WCB$SMID[0] EQ SMID"CDITR"
      THEN
        BEGIN 
        P<CDI$TXT> = LOC(TRC$TXT);
  
  
        ABHTLC[1] = TRC$TXTL; 
        END 
# 
*     APPEND THE CURRENT TIME TO THE TEXT.  SEARCH THE NPUCB-S FOR THE
*     NAME OF THE NPU SUPPORTING THE ELEMENTS.  APPEND THE NPU NAME TO
*     THE TEXT.  SEND THE TEXT OUT TO THE OPERATOR RESPONSE QUEUE WITH
*     AN AUDIENCE OF ONE(HOP AND ALL NOP-S).
# 
  
  
      CDI$TIM[0] = CTM$CLOCK[0];
  
  
      FOR I=0 STEP 1 WHILE ABHSN[0] NQ NPU$NID[I] AND 
                           I LS CSNPCNT 
      DO
        BEGIN 
        END 
      IF I LS CSNPCNT 
      THEN
        BEGIN 
        CNST1 = 1;
        CNST2 = 30; 
        CNST3 = 42; 
        SSBSBF(CDI$TXT,CNST1,CNST2,CNST3,B<0,42>NPU$WORD[I]); 
        END 
  
  
      CTEMP[0] = XCDD(CDINE[0]);
      CDI$NE[0] = CTEMP3[0];
  
  
      WCB$WC[1] = 2 + (ABHTLC[1] / 10); 
  
  
      ABHADR[1] = AUDGR3$;
      ABHABN[1] = I;
  
  
      SSTAQE(P<ORQ>,WCBUF[1],ABH[1],CDI$TXT[0]);
      CSESLE(ABHSN[0],WCBUF[1],CDI$TXT);
  
  
      RETURN;                # **** RETURN ****                        #
      END # CSESEC #
      TERM
