*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 = LOC$TA ; # TEXT MESSAGE ITSELF # ACN = SPACN[0] ; IF PFCSFC[0] EQ ERRLGL THEN BEGIN # ERROR/LOGICAL RECEIVED # P
= LOC$TA + 1 ; # ABHERR OF MS # IF ABHADR[0] EQ 0 THEN BEGIN # ERROR LOGICAL ON ASYN SM # P = 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