.NLIST TTM .TITLE QUEFIL SUBROUTINE ; TO QUE A FILE TO PRINTER OR BATCH ; ; FROM SOFTWARE DISPATCH DECEMBER 1977 - FORTRAN IV, IAS 1.1 ; SEQ 56 1-1,1-2 ; ; MODIFIED FOR FORTRAN IV PLUS, AND IAS VS 2.0 ; ; 04/23/79 PUT IN CHECK ON DIRECTORY DEVICE AND FORCED BA UNIT TO 0. ; ; ; CALL QUEFIL (LUN, IDEV, IUNIT, IPRES) ; ; LUN - LUN OF THE DATA STREAM ; IDEV - DEVICE TO QUE TO I.E 'LP' ; IUNIT - UNIT NUMBER OF DEVICE ; IPRES - PRESERVE FLAG, 0 MARKED FOR DELETE ; ANYTHING ELSE PRESERVES FILE ; .MCALL VSDR$,DIR$,CLOSE$,FDOF$L .GLOBL $OTSV ; ; FDOF$L ; QUEFIL:: ;F4 MOV 2(R5),-(SP) ;GET LUN ;F4 CLR -(SP) ;EXTRA WORD FOR $INITIO ;F4 JSR PC,$INITIO ;DO I/O INIT ;F4 BIS #2000,@R0 ;SET UP FOR A READ ;F4 BIC #100000,@R0 ;F4 JSR PC,@(SP)+ ;FINISH UP INIT ; ; FOR F4P ; MOV @2(R5),R2 ;GET LUN MOV @4(R5),SNDBUF ;DEVICE MOVB @6(R5),SNDBUF+2 ;UNIT NUMBER MOVB #100,SNDBUF+5 ;INSERT AND PRESERVE(AUTO-INSTALL FOR LP CMP SNDBUF,#"BA ;IS IT BATCH? BNE NOBAT ;NO, ANY UNIT WILL BE OK. CLRB SNDBUF+2 ;BATCH UNIT MUST BE 0! MOVB #110,SNDBUF+5 ;NON-AUTO INSTALL FOR BATCH + PRESERVE NOBAT: TST @10(R5) ;CHECK PRESERVE FLAG BNE PRESER ;NOT 0, LEAVE PRESERVE BIT ON BICB #100,SNDBUF+5 ;CLEAR PRESERVE BIT ; PRESER: MOV @#$OTSV,R3 ;IMPURE AREA POINTER JSR PC,$FCHNL ;ADDR OF FFDB ; MOV R0,R1 ;SAVE ADDRESS OF FTN FDB ADD #14,R0 ;GET TO RSX FDB ; BITB F.RCTL(R0),#FD.DIR ;MUST BE DIRECTORY DEVICE,I.E. NOT TI: BEQ RETURN ;NOT DIRECTORY, GET OUT. ; MOV #SNDFID,R3 ;FILE ID FOR SEND TO SPR... MOV N.DVNM+F.FNB(R0),(R3)+ ;DEVICE MOV N.UNIT+F.FNB(R0),(R3)+ ;UNIT MOV N.DID+F.FNB(R0),(R3)+ ;DIRECTORY ID MOV N.DID+2+F.FNB(R0),(R3)+ ; MOV N.DID+4+F.FNB(R0),(R3)+ ; MOV N.FNAM+F.FNB(R0),(R3)+ ;FILE NAME MOV N.FNAM+2+F.FNB(R0),(R3)+ MOV N.FNAM+4+F.FNB(R0),(R3)+ MOV N.FTYP+F.FNB(R0),(R3)+ ;TYPE MOV N.FVER+F.FNB(R0),(R3)+ ;VERSION CLOSE$ R0 ;MAKE SURE FILE IS CLOSED DIR$ #SNDDPB ;SEND TO SPR... "INSERT" MOV #66,R0 ;MAKE LUN RE-USEABLE 1$: CLR (R1)+ DEC R0 BNE 1$ RETURN: RTS PC ;DONE ; ; SEND AND REQUEST ; SNDDPB: VSDR$ SPR...,,,,,SNDBUF,13.,,, ; ; SEND BUFFER ; SNDBUF: .ASCII /LP/ ;DEVICE .BYTE 0 ;UNIT .BYTE 144 ;PRIORITY 100 .BYTE 1 ;FORMS=0, COPIES=1 .BYTE 100 ;="INSERT" + "PRESERVE" SNDFID: .BLKW 10. ;FILE ID .END