.TITLE DELETE .IDENT /V01.05/ ; ; 74-08-16 PETER WANNHEDEN ; ; MODIFIED 76-08-24 OSKAR ANDLER ; TO WORK WITH FOR ... ; IF THE LINE-PRINTER IS A SPOOLED DEVICE ( SET /SP=LP: ) ; THERE IS NO NEED FOR THE SUBROUTINE SPOOL. ; INSTEAD JUST ASSIGN THE LUN TO LP: AND THE FILE WILL BE ; SPOOLED. ; ;+ ; THIS MODULE CONTAINS THE SUBROUTINES TO FORTRAN ; DELETE - DELETE A FILE ; SPOOL - SPOOL A FILE ON LINE PRINTER ; ; CALLING SEQUENCE: ; CALL FUNC (LUN) ; OR ; CALL FUNC (LUN, IERR) ; WHERE ; FUNC IS EITHER "DELETE" OR "SPOOL" ; LUN IS THE INTEGER LUN OF THE FILE ; IERR IS AN OPTIONAL OUTPUT INTEGER ERROR CODE, ; WITH THE FOLLOWING VALUES: ; 0 SUCCESS ; -1 ILLEGAL LUN ; -2 UNABLE TO PERFORM FUNCTION ; ; ; THE MODULE IS READ-ONLY AND PIC. ;- .PAGE .MCALL PRINT$,DELET$ .MCALL CALL,RETURN ; .PSECT DELETE DVFDB =14 ;OFFSET TO FDB IN DEVICE TABLE ; WAS 102 WHEN FTN *** ; SPOOL:: CLR -(SP) ;SET FLAG = 0 BR COM ;GO TO COMMON CODE DELETE::MOV PC,-(SP) ;SET FLAG NON-ZERO COM: MOV @2(R5),R2 ;GET LUN ; WAS R0 WITH FTN - $FNDEV CLR R4 ;ASSUME NO ERROR CALL $FCHNL ;FIND DEVICE TABLE ;WAS $FNDEV WITH FTN *** MOV R0,R1 ;DEVICE TABLE FOUND? ;$FCHNL RETURNS ADRESS IN R0 (*** FOR) ;$FNDEV RETURNED ADRESS IN R1: TST R1 ... BEQ 1$ ;NO - JUMP ADD #DVFDB,R1 ;POINT TO FDB TST (SP)+ ;FUNCTION? BEQ 3$ DELET$ R1 ;DELETE BR 4$ 3$: PRINT$ R1 ;SPOOL 4$: BCC 5$ ;OK - JUMP DEC R4 ;ERROR -2 1$: DEC R4 ;ERROR -1 OR -2 5$: CMPB @R5,#2 ;IERR WANTED? BLT 6$ ;NO - JUMP MOV R4,@4(R5) ;YES - GIVE IT TO HIM 6$: RETURN ; .END