*DECK NP$ITMG 
*IF DEF,XFR 
USETEXT AIPDEF
USETEXT HEADER
USETEXT NX$ACBF 
USETEXT NP$NWL
USETEXT NX$ACBX 
PROC NP$ITMG; 
 #
*1DC  NP$ITMG 
*     PROC NAME         AUTHOR         DATE 
*     NP$ITMG           L.T.NGUYEN     83/03/21 
*            (* USE FOR FILE TRANSFER APPLICATION ONLY *) 
* 
*     FUNCTIONAL DESCRIPTION: 
*          INTERCEPT ASYN SUPERVISORY MESSAGE FOR FILE TRANSFER 
*          CONNECTION.
* 
*     INPUT PARAMS: 
*          LOC$HA - APPLICATION HEADER ADDRESS. 
*          LOC$TA - ADDRESS OF TEXT.
*          MSGFORAP - MSG FOR APPLICATION FLAG. 
* 
*     EXIT PARAMS:  
*          MSGFORAP - TRUE IF THIS MSG IS FOR APPLICATION.
*                     FALSE IF MSG WAS FOR FILE TRANSFER CONN. AND
*                     ALREADY GOT PROCESSED.
* 
*     TEXTS USED: 
*          HEADER, NX$ACBF. 
* 
* 
* 
* 
 #
      BEGIN 
      XREF
        BEGIN 
        PROC NP$SMSG ;
        PROC NP$STPR ;
        END 
      ITEM ACN ;
      ITEM I I ;             # INDEX CONTROL                           #
      ITEM FOUND B ;         # FOUND FTT ENTRY WITH MATCHING ACN       #
      ITEM TRIGGER U ;
  
      BEGIN                  # NP$ITMG                                 #
  
      FOUND = FALSE ;        # CLEAR FLAG                              #
      P<SUPMSG> = LOC$TA ;   # TEXT MESSAGE ITSELF                     #
      ACN = SPACN[0] ;
  
      IF PFCSFC[0] EQ ERRLGL
      THEN
        BEGIN                      # ERROR/LOGICAL RECEIVED            #
        P<HEADER> = LOC$TA + 1 ;   # ABHERR OF MS                      #
        IF ABHADR[0] EQ 0 
        THEN
          BEGIN                    # ERROR LOGICAL ON ASYN SM          #
          P<SUPMSG> = LOC$TA + 2 ;
          ACN = SPACN[0] ;
          END 
        ELSE
          ACN = ABHADR[0] ; 
        END 
  
      FOR I = 0 STEP 1 WHILE I LS MAXFILEXFR
                                 AND NOT FOUND
      DO
        IF FTTACN[I] EQ ACN 
             AND FTTACN[I] NQ 0 
        THEN
          BEGIN 
          FTTINDEX = I ;               # REMEMBER THIS ENTRY           #
          FOUND = TRUE ;     # FOUND THE ENTRY IN FTT                  #
          END 
  
      IF NOT FOUND
      THEN                   # MSG IS NOT FOR FILE XFR CONN.           #
        BEGIN 
        MSGFORAP = TRUE ;    # IT IS FOR THE APPLICATION               #
        IF PFCSFC[0] EQ SHUINS
        THEN
          BEGIN                    # SHUT DOWN WARNING RECEIVED        #
          IF NOT   SPSHUT[0]
          THEN                     # NO A FORCED SHUT DOWN             #
            TRIGGER = NRSTHSD ;    # SET FLAG                          #
          ELSE
            TRIGGER = NRSTNSL ; 
          FOR I = 0 STEP 1 WHILE I LS MAXFILEXFR
          DO
            BEGIN                  # CALL STATE TBL FOR SHUTDOWN ACTION#
            IF FTTACN[I] NQ 0 
            THEN
              BEGIN                      # ACTIVE ENTRY                #
              FTTINDEX = I ;
              NP$STPR(FTTINDEX,TRIGGER,0) ; 
              END 
            END 
          END 
        END 
  
      ELSE
        NP$SMSG ;            # MSG IS FOR FILE XFR CONN.               #
                             # CALL TO PROCESS IT APPROPRIATELY        #
      END 
        RETURN; 
      END 
      TERM
*ENDIF
