; DELET.MAC -- FORTRAN CALLABLE DELETE ; AUTHOR: LEN ; DATE WRITTEN: 16-NOV-78 ; .NLIST TOC ;TBL OF CONTENTS NOT WANTED ; .TITLE DELETE .SBTTL DELETE FILE ; .ENABL AMA ;NO PC-REL ADDRS ; .MCALL FDOF$L,DELET$ ; .GLOBL $FCHNL,NAM$ ;SUBRS CALLED .GLOBL $OTSV ;OTS IMPURE PTR ADDR FDOF$L ; ; ; CALL: ; CALL DELETE (LUN, NERR) ; WHERE: ; LUN = FILE'S LOGICAL UNIT ; NERR = ERROR CODE 0=OK, NON-0=ERROR ; D.FDB = 14 ;OFFSET TO FDB ; ; DELETE:: MOV #DELETN,R0 ;NAME TO TRACE BK MOV (R0)+,R4 MOV (R0)+,-(SP) ;PUSH (R0)+ ONTO STACK JSR R4,NAM$ TST (R5)+ ;DITCH NARGS MOV @(R5)+,R2 ;GET LUN MOV @#$OTSV,R3 ;OTS IMPURE ADDR JSR PC,$FCHNL ;GET DEVT ENTRY ADDR ADD #D.FDB,R0 ;LUN'S FDB ADDR ; ; CHECK THAT FILE IS NOT READONLY ; BITB #1,F.FACC(R0) ;READONLY BIT TEST BEQ NOTRO MOV #-16.,@(R5) ;ERROR CODE FOR PRIVLEDGE VIOLATION BR RET ; NOTRO: MOV #0,@(R5) ;CLEAR NERR DELET$ R0 ;DELETE FILE ; BCC RET ;CHECK C BIT, RETURN=OFF MOVB F.ERR(R0),R2 ;ERROR CODE MOV R2,@(R5) ;SIGN EXTEND ; RET: RTS PC ;RETURN TO CALLER ; DELETN: .RAD50 /DELET / ;TRACE NAME ; .END