.TITLE SPOOL SUBROUTINE FOR FORTRAN ; ; FORTRAN CALL: ; CALL SPOOL(LUN,FCSERROR,DSWERROR) ; ; WHERE LUN = LOGICAL UNIT NUMBER ; ; RETURN: ; FCSERROR = FCS ERROR CODE FROM PRINT$ (OR 0) ; DSWERROR = DSW ERROR CODE FROM PRINT$ (OR 0) ; .MCALL PRINT$ .GLOBL $INITIO .ENABL LSB SPOOL:: MOV 2(R5),-(SP) ;GET ADDRESS OF LUN CLR -(SP) ;EXTRA WORD FOR INITIO JSR PC,$INITIO ;DO I/O INITIALISATION BIS #2000,@R0 ;SET UP FOR A READ BIC #100000,@R0 ; JSR PC,@(SP)+ ;FINISH UP INITIALISATION MOV R0,R1 ;SAVE ADDRESS OF FORTRAN FDB ADD #14,R0 ;GET ADDRESS OF RSX FDB PRINT$ R0 BCS ERR MOV #66,R0 ;NUMBER OF WORDS TO ZERO 1$: CLR (R1)+ ;ZERO OUT FOR RE-USE DEC R0 BNE 1$ CLR R1 2$: MOV R0,@4(R5) ;SET FCS ERROR MOV R1,@6(R5) ;SET DSW ERROR CODE CLR 30(R3) ;INDICATE I/O IS DONE. RTS PC ;RETURN TO USER ERR: MOVB F.ERR(R0),R0 ;GET FCS ERROR MOV @#$DSW,R1 ;GET DSW ERROR CODE. BR 2$ ; .DSABL LSB .END