.TITLE TAPE .IDENT /V1.00/ ;**************************************************************************** ; ; THE TAPE COMMAND PRINTS A SUMMARY OF THE STATUS OF THE TE16 DRIVE. ; ; STEVE THOMPSON ; SCHOOL OF CHEMICAL ENGINEERING ; OLIN HALL ; CORNELL UNIVERSITY ; ITHACA ; NY 14853 ; ;***************************************************************************** .MCALL EXIT$S,QIOW$S ; ; MESSAGES ; .ENABL LC MSG1: .ASCII /TAP -- Drive MM: is offline/ MSG1SZ=.-MSG1 MSG2: .ASCII /Tape is past EOT/ MSG2SZ=.-MSG2 MSG3: .ASCII /Last tape command encountered EOF/ MSG3SZ=.-MSG3 MSG4: .ASCII /Writing is prohibited/ MSG4SZ=.-MSG4 MSG5: .ASCII /Writing with extended inter-record gap prohibited/ MSG5SZ=.-MSG5 MSG6: .ASCII /Drive is currently rewinding/ MSG6SZ=.-MSG6 MSG7: .ASCII /Tape is physically write-locked/ MSG7SZ=.-MSG7 MSG8: .ASCII /Current density is 800 BPI/ MSG8SZ=.-MSG8 MSG9: .ASCII /Current density is 1600 BPI/ MSG9SZ=.-MSG9 MSG10: .ASCII /Tape is at load point (BOT)/ MSG10S=.-MSG10 MSG11: .ASCII /Tape is at end-of-volume (EOV)/ MSG11S=.-MSG11 .EVEN IOSB: .BLKW 2 ; I/O STATUS BLOCK $TAPEP: QIOW$S #IO.SEC,#2,#2,,#IOSB ; SENSE CHARACTERISTICS BCC 10$ ; GOOD, IT WORKED 5$: QIOW$S #IO.WVB,#1,#1,,,,<#MSG1,#MSG1SZ,#40> EXIT$S ; AND EXIT 10$: BIT #400,IOSB+2 ; SELECT ERROR? BNE 5$ ; IF NE YES, DRIVE OFFLINE BIT #20,IOSB+2 ; TAPE PAST EOT? BEQ 20$ ; IF EQ NO QIOW$S #IO.WVB,#1,#1,,,,<#MSG2,#MSG2SZ,#40> 20$: BIT #40,IOSB+2 ; LAST COMMAND ENCOUNTER EOF? BEQ 30$ ; IF EQ NO QIOW$S #IO.WVB,#1,#1,,,,<#MSG3,#MSG3SZ,#40> 30$: BIT #100,IOSB+2 ; WRITING PROHIBITED? BEQ 40$ ; IF EQ NO QIOW$S #IO.WVB,#1,#1,,,,<#MSG4,#MSG4SZ,#40> 40$: BIT #200,IOSB+2 ; WRITING WITH EXTENDED IRG PROHIBITED? BEQ 50$ ; IF EQ NO QIOW$S #IO.WVB,#1,#1,,,,<#MSG5,#MSG5SZ,#40> 50$: BIT #1000,IOSB+2 ; UNIT REWINDING? BEQ 60$ ; IF EQ NO QIOW$S #IO.WVB,#1,#1,,,,<#MSG6,#MSG6SZ,#40> 60$: BIT #2000,IOSB+2 ; PHYSICALLY WRITE-LOCKED? BEQ 70$ ; IF EQ NO QIOW$S #IO.WVB,#1,#1,,,,<#MSG7,#MSG7SZ,#40> 70$: BIT #4000,IOSB+2 ; 800 BPI? BNE 75$ ; IF NE IT'S 1600 BPI QIOW$S #IO.WVB,#1,#1,,,,<#MSG8,#MSG8SZ,#40> BR 80$ ; 75$: QIOW$S #IO.WVB,#1,#1,,,,<#MSG9,#MSG9SZ,#40> 80$: BIT #20000,IOSB+2 ; TAPE AT BOT? BEQ 90$ ; IF EQ NO QIOW$S #IO.WVB,#1,#1,,,,<#MSG10,#MSG10S,#40> 90$: BIT #40000,IOSB+2 ; TAPE AT EOV? BEQ 100$ ; IF EQ NO QIOW$S #IO.WVB,#1,#1,,,,<#MSG11,#MSG11S,#40> 100$: EXIT$S ; THAT'S IT .END $TAPEP