*DECK     CSEDEQ
USETEXT TEXTCS
USETEXT TEXTSS
USETEXT TXTAPSS 
USETEXT TXTSMCS 
      PROC CSEDEQ;
# TITLE - DISPATCH EVENT QUEUE ENTRY.                                  #
      BEGIN 
# 
**    CSEDEQ - DISPATCH EVENT QUEUE ENTRY.
* 
*     D.K. ENDO    82/03/12 
* 
*     THIS PROCEDURE REMOVES ENTRIES FROM THE EVENT QUEUE AND CALLS THE 
*     APPROPRIATE PROC TO PROCESS THE ENTRY.
* 
*     PROC CSEDEQ 
* 
*     ENTRY        1. THE EVENT QUEUE WITH ONE OR MORE ENTRIES. 
* 
*     EXIT         2. EMPTY EVENT QUEUE.
* 
# 
# 
****  PROC CSEDEQ - XREF LIST BEGINS. 
# 
      XREF
        BEGIN 
        PROC CSESAM;         # SEND ALARM (AND ERROR LOG) MESSAGE      #
        PROC CSESCM;         # SEND (OPERATOR) CONTROL MESSAGE         #
        PROC CSESCS;         # SEND COUPLER STATUS                     #
        PROC CSESCT;         # SEND COMMAND TEXT                       #
        PROC CSESDA;         # SEND DI ACCOUNTING DATA                 #
        PROC CSESDE;         # SEND DIAGNOSTICS END MESSAGE            #
        PROC CSESDM;         # SEND (STATUS) DONE MESSAGE              #
        PROC CSESDS;         # SEND DEBUG SIGNAL                       #
        PROC CSESEC;         # SEND (DISABLED) ELEMENT COUNT           #
        PROC CSESES;         # SEND ELEMENT-S STATISTICS               #
        PROC CSESIM;         # SEND IDLE-DOWN MESSAGE                  #
        PROC CSESLL;         # SEND LOGICAL LINK STATUS                #
        PROC CSESLS;         # SEND LINE STATUS                        #
        PROC CSESNS;         # SEND NPU STATUS                         #
        PROC CSESOD;         # SEND ONLINE DIAGNOSTIC                  #
        PROC CSESOM;         # SEND OPERATOR MESSAGE                   #
        PROC CSESSM;         # SEND SUPERVISION MESSAGE                #
        PROC CSESTR;         # SEND TRUNK STATUS                       #
        PROC CSESTS;         # SEND TERMINAL STATUS                    #
        PROC CSESVC;         # SEND ARCHETYPE SVC STATUS               #
        PROC SSTRQE;         # REMOVE QUEUE ENTRY                      #
        END 
# 
****
# 
      ITEM I;                # LOOP INDUCTION VARIABLE                 #
      ITEM J;                # LOOP INDUCTION VARIABLE                 #
      CONTROL EJECT;
#                                                                      #
#                            CSEDEQ CODE BEGINS HERE                   #
#                                                                      #
# 
*     FOR EACH ENTRY IN THE EVENT QUEUE, ROUTE IT TO THE APPROPRIATE
*     ROUTINE TO PROCESS THE ENTRY. 
# 
      FOR I=0 WHILE EVQL GR 0 
      DO
        BEGIN 
        FOR J=0 STEP 1 UNTIL MSBFAPL - 1
        DO
          BEGIN 
          MSG$WORD[J] = 0;
          END 
  
  
        SSTRQE(P<EVQ>,WCBUF[0],ABH[0],CSSM[0]); 
  
  
        IF WCB$SMID[0] EQ SMID"STUTE" OR
           WCB$SMID[0] EQ SMID"STUTEN" OR 
           WCB$SMID[0] EQ SMID"MSGTEA"
        THEN
          BEGIN 
          CSESTS; 
          END 
        ELSE IF WCB$SMID[0] EQ SMID"STULI" OR 
                WCB$SMID[0] EQ SMID"STULIN" OR
                WCB$SMID[0] EQ SMID"MSGLIA" 
        THEN
          BEGIN 
          CSESLS; 
          END 
        ELSE IF WCB$SMID[0] EQ SMID"STUNP" OR 
                WCB$SMID[0] EQ SMID"STUNPN" 
        THEN
          BEGIN 
          CSESNS; 
          END 
        ELSE IF WCB$SMID[0] EQ SMID"STULL" OR 
                WCB$SMID[0] EQ SMID"STULLN" OR
                WCB$SMID[0] EQ SMID"MSGLLA" 
        THEN
          BEGIN 
          CSESLL; 
          END 
        ELSE IF WCB$SMID[0] EQ SMID"STUTR" OR 
                WCB$SMID[0] EQ SMID"STUTRN" 
        THEN
          BEGIN 
          CSESTR; 
          END 
        ELSE IF WCB$SMID[0] EQ SMID"STUCP" OR 
                WCB$SMID[0] EQ SMID"STUCPN" 
        THEN
          BEGIN 
          CSESCS; 
          END 
        ELSE IF WCB$SMID[0] EQ SMID"STUVC" OR 
                WCB$SMID[0] EQ SMID"STUVCN" 
        THEN
          BEGIN 
          CSESVC; 
          END 
        ELSE IF WCB$SMID[0] EQ SMID"STUFIN" 
        THEN
          BEGIN 
          CSESDM; 
          END 
        ELSE IF WCB$SMID[0] EQ SMID"CMDTXT" 
        THEN
          BEGIN 
          CSESCT; 
          END 
        ELSE IF WCB$SMID[0] EQ SMID"OLDDT"
        THEN
          BEGIN 
          CSESOD; 
          END 
        ELSE IF WCB$SMID[0] EQ SMID"OLDINN" OR
                WCB$SMID[0] EQ SMID"OLDINA" 
        THEN
          BEGIN 
          CSESDE; 
          END 
        ELSE IF WCB$SMID[0] EQ SMID"SUPINN" OR
                WCB$SMID[0] EQ SMID"SUPCB" OR 
                WCB$SMID[0] EQ SMID"SUPINA" OR
                WCB$SMID[0] EQ SMID"SUPGO" OR 
                WCB$SMID[0] EQ SMID"SUPGOI" OR
                WCB$SMID[0] EQ SMID"SUPINUN"
        THEN
          BEGIN 
          CSESSM; 
          END 
        ELSE IF WCB$SMID[0] EQ SMID"SHUINS" 
        THEN
          BEGIN 
          CSESIM; 
          END 
        ELSE IF WCB$SMID[0] EQ SMID"CTRLOFF" OR 
                WCB$SMID[0] EQ SMID"CTRLON" 
        THEN
          BEGIN 
          CSESCM; 
          END 
        ELSE IF WCB$SMID[0] EQ SMID"ALMOP" OR 
                WCB$SMID[0] EQ SMID"LOGER"
        THEN
          BEGIN 
          CSESAM; 
          END 
        ELSE IF WCB$SMID[0] EQ SMID"CDITE" OR 
                WCB$SMID[0] EQ SMID"CDILI" OR 
                WCB$SMID[0] EQ SMID"CDILL" OR 
                WCB$SMID[0] EQ SMID"CDITR"
        THEN
          BEGIN 
          CSESEC; 
          END 
        ELSE IF WCB$SMID[0] EQ SMID"MSGOP"
        THEN
          BEGIN 
          CSESOM; 
          END 
        ELSE IF WCB$SMID[0] EQ SMID"STINP" OR 
                WCB$SMID[0] EQ SMID"STITR" OR 
                WCB$SMID[0] EQ SMID"STILI"
        THEN
          BEGIN 
          CSESES; 
          END 
        ELSE IF WCB$SMID[0] EQ SMID"STIAP" OR 
                WCB$SMID[0] EQ SMID"STITE"
        THEN
          BEGIN 
          CSESDA; 
          END 
        ELSE
# 
*     IF THIS SM IS NOT RECOGNIZABLE OR IS AN ERR/LGL SM, THEN SEND AN
*     UNSOLICITED STATUS REPORT TO THE HOP AND THE CONTROLLING NOP, AND 
*     MAKE AN ENTRY IN THE NETWORK LOG FILE TO RECORD THE ANOMALY.
# 
          BEGIN 
          CSESDS; 
          END 
        END # FOR LOOP #
      RETURN;                # **** RETURN ****                        #
      END # CSEDEQ #
      TERM
