*DECK DROP                         09JUL81
USETEXT COMCBEG 
USETEXT COMQDEF 
USETEXT COMQFIL 
USETEXT COMQNET 
USETEXT COMQQAC 
    PROC DROP;
      BEGIN    # DROP # 
# 
**    DROP       DROP QTFI (INITIATOR) AND RETURN FILES.
* 
*     DROP MAY BE CALLED AS A RESULT OF NORMAL TERMINATION, NETWORK 
*     SHUT-DOWN, OR OPERATOR DROP/KILL. 
* 
*     PROC DROP 
* 
*     EXIT       FILES REQUEUED OR EVICTED. 
* 
*     PROCESS    FOR ALL AFT ENTRIES: 
*                  IF FILE STILL ASSIGNED:  
*                    SET FLAGS FOR REQUEUE/EVICT
*                    CALL DSPQFIL.
*                IF QAC BLOCK IN USE: 
*                  REQUEUE POSSIBLE FILE. 
* 
# 
  
# 
****  XREF
# 
      XREF
        BEGIN 
        PROC DSPQFIL; 
        PROC MSGLOG;
        PROC NAME;                 # DEBUG CODE # 
        PROC RTNFIL;               # RETURN FILE TO QUEUE # 
        FUNC XCDD       C(10);
        END 
# 
****  XREF END
# 
  
  
      DEF LEMSGNFT   #31#;
      ARRAY EMSGNFT    S(4);
        BEGIN 
        ITEM $DNFT      C(00,00,LEMSGNFT) = 
                 [" QTF, XXXXXX FILES TRANSFERRED."]; 
        ITEM EMSGNFTNF  C(00,36,06);
        END 
  
      ARRAY S(1); 
        BEGIN 
        ITEM DUMWORD    C(00,00,10);
        ITEM DUMWDR6    C(00,24,06);
        END 
  
  
  
        $BEGIN                                         # DEBUG CODE # 
        NAME("DROP"); 
        $END                                           # DEBUG CODE # 
  
  
      SLOWFOR ACN = 1 STEP 1 UNTIL LACNMAX
      DO
        BEGIN 
        IF AFT[ACN] EQ 0
        THEN
          BEGIN 
          CYCLE;
          END 
  
        P<FILETAB> = AFT[ACN];
        IF FILELFN NE 0 
        THEN
          BEGIN 
          FILEANW = FALSE;
          IF FILECMD NE 0          # IF FILE TRANSFERRED #
            AND FILES0
            AND FILER1
            AND FILES3
            AND FILER5
            AND NOT FILECER 
          THEN
            BEGIN 
            FILEANW = TRUE;        # EVICT FILE INSTEAD # 
            END 
  
          DSPQFIL;                 # REQUEUE OR EVICT FILES # 
          END 
  
        END 
  
      IF QACBLFNU NE 0             # IF QAC BLOCK IN USE #
      THEN
        BEGIN 
        RTNFIL (QACBLFN, FALSE);   # REQUEUE FILE # 
        QACBLFNU = 0; 
        END 
  
      IF NOLFN EQ 0 
      THEN
        BEGIN 
        EMSGNFTNF = "    NO"; 
        END 
  
      ELSE
        BEGIN 
        DUMWORD = XCDD(NOLFN);
        EMSGNFTNF = DUMWDR6;
        END 
  
      MSGLOG(LOC(EMSGNFT),LEMSGNFT);
  
      END      # DROP # 
    TERM
