.TITLE REWIND .SBTTL RSX11M ROLLIN .PSECT IMPURE,D,LCL,OVR ; ; ; SYSTEM MACRO DEFINITIONS ; ; ; .MCALL QIOW$S,MRKT$C,WTSE$C ; ; ; DATA ; ; ; .NLIST BEX ERM1: .ASCII /REWIND UNSUCCESFUL/ ERM1S =<.-ERM1> .EVEN ERM2: .ASCII /MAGNETIC TAPE NOT READY/ ERM2S =<.-ERM2> .EVEN .LIST BEX .PSECT ; ; ; PROGRAM PROPER ; ; ; ; R0=POINTS TO FDB ; ; ; REWIND::CALL $SAVAL ;SAVE REGISTERS MOVB F.LUN(R0),R4 ;LUN TO R4 MOV F.BKST(R0),R5 ;I/O STATUS WORD TO R5 ADD #F.FNB,R0 ;FILENAME BLOCK TO R0 CMP N.DVNM(R0),#"MT ;IS DEVICE MAG TAPE BEQ REWND ;YES, GO REWIND JMP EXIT ;NO EXIT REWND: QIOW$S #IO.RWD,R4,R4,,R5 ;REWIND TAPE CHECK: MRKT$C 8.,3,2 WTSE$C 8. QIOW$S #IO.SEC,R4,R4,,R5 BIT #1000,2(R5) BNE CHECK BIT #20000,2(R5) BNE EXIT ERROR: QIOW$S #IO.WLB,#TTYLUN,,,,,<#ERM2,#ERM2S> JMP RSTART ;GET NEW COMMAND LINE EXIT: RETURN ;RETURN TO MAIN PROGRAM .END