*DECK DAMSGIN 
USETEXT COMCBEG 
USETEXT COMADEF 
USETEXT COMACBF 
USETEXT COMACBX 
FUNC DAMSGIN((ASMSG)) I;
# TITLE DAMSGIN - DETERMINE ACCEPTABLE MESSAGE INDEX.  #
  
      BEGIN  # DAMSGIN #
  
# 
*     DAMSGIN - DETERMINE ACCEPTABLE MESSAGE INDEX. 
* 
*     DAMSGIN CALCULATES AN INDEX TO BE ASSOCIATED WITH AN ASYNCHRONOUS 
*     SUPERVISORY MESSAGE.
* 
*     FUNC DAMSGIN (ASMSG) I
* 
*     ENTRY      THE ASYNCHRONOUS MESSAGE TEXT IS IN ARRAY TXTAREA. 
* 
*     EXIT       GOTO SWITCH INDEX CALCULATED.
* 
*     PROCESS    SET AMSGIN  TO ZERO. 
*                PLACE MESSAGE TO MATCH AT END OF LIST. 
*                ASLONGAS MATCH NOT FOUND DO
*                  INCREMENT AMSGIN.
*                SET DAMSGIN TO AMSGIN. 
* 
# 
  
      ITEM ASMSG U;                  # ASYNCHRONOUS SUPERVISORY MSG. #
  
# 
****  FUNC DAMSGIN - XREF LIST BEGIN. 
# 
  
      XREF
        BEGIN 
        END 
  
# 
****  FUNC DAMSGIN - XREF LIST END. 
# 
  
  
      ITEM AMSGIN    I;              # ACCEPTABLE MESSAGE INDEX # 
  
      ARRAY AASMGS [0:NUMPASMSGS] S(1); 
        BEGIN 
        ITEM AASM$STAT S:ASMGS(0,24,18) = 
                                   [S"CM$EXIT$N", 
                                    S"CM$SEL$A",
                                    S"CM$SEL$N",
                                    S"CON$CB$R",
                                    S"CTRL$INF$R",
                                    S"DC$CICT$R", 
                                    S"ERR$LGL$R", 
                                    S"FC$ACK$R",
                                    S"FC$BRK$R",
                                    S"FC$NAK$R",
                                    S"SHUT$INS$R",
                                    S"ALL$OTHERS"]; 
        ITEM AASM$MSG I(0,42,18) = [CM$EXIT$N,
                                    CM$SEL$A, 
                                    CM$SEL$N, 
                                    CON$CB$R, 
                                    CTRL$INF$R, 
                                    DC$CICT$R,
                                    ERR$LGL$R,
                                    FC$ACK$R, 
                                    FC$BRK$R, 
                                    FC$NAK$R, 
                                    SHUT$INS$R, 
                                    0]; 
        END 
                                               CONTROL EJECT; 
      AMSGIN =  0;
      AASM$MSG[NUMPASMSGS] = ASMSG; 
      ASLONGAS AASM$MSG[AMSGIN] NE ASMSG DO 
        BEGIN 
        AMSGIN = AMSGIN + 1;
        END 
  
      DAMSGIN = AASM$STAT[AMSGIN];
  
      END  # DAMSGIN# 
  
      TERM
