SPL,L,O,M,C 
!     NAME:   PU..  
!     SOURCE: 92064-18159 
!     RELOC:  92064-16055 
!     PGMR:   G.A.A.
!     MOD:    G.L.M.
! 
!  ***************************************************************
!  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1977.  ALL RIGHTS     *
!  * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,      *
!  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT*
!  * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.       *
!  ***************************************************************
! 
! 
      NAME PU..(7) " 92064-16055  REV.1650  760923" 
! 
! 
!     PURGE FILE ROUTINE FOR THE RTE FILE MANAGER 
! 
!     ENTERED AFTER A:
! 
!     PU,NAMR 
! 
!     W H E R E:
! 
!     NAMR     IS THE FILE'S NAMR WHICH CAN CONTAIN:
! 
!     CR       (OPTIONAL) IS THE CARTRIDGE ID.
! 
!     SC       (OPTIONAL) IS THE FILE SECURITY CODE.
! 
! 
!     DEFINE EXTERNAL ADDRESSES 
! 
      LET .E.R ,IDCB1,N.OPL,PK.DR      BE INTEGER,EXTERNAL
! 
      LET      LOCK.,PURGE,EXEC,MSS. \
                                BE SUBROUTINE,EXTERNAL
      LET IER.                  BE SUBROUTINE,EXTERNAL,DIRECT 
      LET FM.AB                 BE LABEL,EXTERNAL 
! 
! 
      LET PUIT                 BE SUBROUTINE,DIRECT 
      LET WRIT                         BE CONSTANT (2)
      LET READI                        BE CONSTANT (1)
PU..: SUBROUTINE(NCAM,PLIST,ER) GLOBAL  ! ENTRY POINT 
! 
      LET NCAM,PLIST,ER  BE INTEGER 
! 
      DO[T_@N.OPL+1;BLK_@PLIST+1] 
! 
      PUIT                             !GO PURGE IT 
! 
! 
      IF .E.R  = -16 THEN GO TO ZPURG 
! 
      IER.
      RETURN
! 
ZPURG:DCB2_[DCB1_@IDCB1]+1             !SET UP DIRECTORY ADDRESS WORDS
! 
      LU_$DCB1 AND 77K                 !SAVE LU OF DISK 
      LOCK.(-LU,3)                     !SET LOCK ON DISK
      PUIT                             !FORCE CURRENT DIR. ADDRESS
                                       !TO BE SET INTO DCB1&2 
! 
      TR_(($DCB1 AND 177700K) -> 6)    !ISOLATE TRACK 
      SECT_$DCB2 AND 377K              !    SECTOR
      OFFSET_(($DCB2 AND 177400K) -> 8) !       AND OFFSET OF DIR ENT 
! 
! 
      EXEC(READI,LU,IDCB1,128,TR,SECT) !READ BLOCK HOLDING ENTRY
      IF $1 #128 THEN \                !MUST GET FULL BLOCK 
          [MSS.(1,LU);GOTO FM.AB] 
      $(DCB1+OFFSET)_-1                !SET THE ENTRY AS PURGED 
      EXEC(WRIT,LU,IDCB1,128,TR,SECT)  !WRITE IT BACK OUT 
! 
      IDCB1_0                          !CLEAR FOR CLOSE 
      LOCK.(-LU,5)                     !CLEAR THE LOCK
      RETURN
      END 
! 
! 
PUIT:SUBROUTINE DIRECT
     PURGE(IDCB1,.E.R,$BLK,N.OPL,$T)
     RETURN 
     END
      END 
      END$
                                                                  