.TITLE DELETE .GLOBL DELETE .SBTTL DELETE ALL VERSIONS OF A FILE ; ; DELETE ; ; THIS ROUTINE DELETES ALL VERSIONS OF ANY GIVEN FILE. ; ; INPUTS: ; R0: FDB ADDRESS OF FILE(S) TO BE DELETED ; R1: FNB ADDRESS OF FILE(S) TO BE DELETED ; ; OUTPUTS: ; R2: I/O COMPLETION CODE ; IE.SUC IF DELETE SUCCESSFUL ; IE.XXX IF DELETE UNSUCCESSFUL ; OTHER REGISTERS PRESERVED ; DELETE: CALL $SAVAL ;CO-ROUTINE TO SAVE ALL REGISTERS 5$: MOV F.DSPT(R0),R2 ;POINTER TO DATASET DESCRIPTOR CLR R3 ;NO DEFAULT FNB CALL .PARSE ;FILL IN THE FNB BCS DELER ;PROCESS THE ERROR 10$: CALL .FIND ;FIND A FILE BCC 100$ ;FOUND OK CMPB F.ERR(R0),#IE.NSF ;FIND ONE? BNE DELER ;OTHER ERROR THAN NONE FOUND MOV #IS.SUC,6(SP) ;MODIFY CALLERS R2 WITH SUCCESS CODE RETURN ;RETURN 100$: MOV (R0),-(SP) ;SAVE N.STAT MOV (R0),-(SP) ;AND N.NEXT CLR (R0) ;CLEAR N.STAT CLR (R0) ;AND N.NEXT CALL .DLFNB ;DELETE THE FILE MOV (SP)+,(R0) ;RESTORE N.NEXT MOV (SP)+,(R0) ;AND N.STAT BCC 5$ ;DELETED OK, DO ANOTHER DELER: MOVB F.ERR(R0),6(SP) ;MOVE ERROR CODE BYTE TO CALLERS R2 BIS #177400,6(SP) ;SET THE REST OF THE BITS RETURN ;BACK TO CALLER WITH ERROR .END