Pertec Tape Drive Interface Musings

Jon Elson jonelson126 at
Wed Jun 10 10:17:12 CDT 2015

On 06/10/2015 03:39 AM, Johnny Billquist wrote:
> On 2015-06-10 09:47, Dave G4UGM wrote:
>> Mark,
>>    Traditional 9-track tapes are always written block-by block with a 
>> "short"
>> gap between the records, WikiPedia say 0.6" for 1600BPI which sounds 
>> about
>> right.
My recollection is that the 0.6" gap was for 800 BPI, and that they went 
to a 0.3" gap for 1600 and 6250.
>> From what I remember as tapes are not the most reliable medium the
>> process was to have the read head after the write head so the tape 
>> could be
>> read and checked as it was written.
Yes, other than some super-low end drives like Kennedy digital 
incremental and some Pertec drives, most drives were read after write.  
This required completely independent read and write hardware.

I got a Pertec key to tape system surplus, and created a mostly software 
interface with very minimal hardware to read and write tapes on my S-100 
Z-80 system.  It would write, back up and re-read the block to verify.  
My recollection was there was only one data head, so it HAD to back up 
to read the data.  My interface and the Z-80 was maxed out doing one or 
the other, so that was fine.
>> If an error was returned the "system"
>> would backspace, erase the bad block to create a "long gap" and the try
>> again.
Usually, it would just rewrite over the bad record.  Only if the bad 
record remained after several retries and a cleaner cycle, would it do 
the extended gap, to move the record to a new (and hopefully better spot 
on the tape).
>> Looking at the first MAN page for TAR I found it says it writes
>> 20x512 byte blocks so 10K blocks, i.e. about 6.4" long. That means a 
>> "waste"
>> of 10% of the tape in gaps, assuming the tape is perfect.  You can write
>> longer blocks but then the amount of wastage when you write a bad 
>> block goes
>> up.
> I don't think it really is that you have a long gap when you rewrite a 
> "bad" block per se. But you get long gaps when you stop/start. And a 
> rewrite implies that you will get a stop/start situation.
> But in case you already were going stop/start, the gap will not be 
> extended any longer.
> You want to stream the tape, meaning you both get short gaps, and also 
> much higher transfer rates, as the stop/start really cause the tape to 
> be slow.
All tape systems I know of wrote essentially identical gaps whether 
doing start/stop or streaming.
Speed of transfer goes way up if you can avoid the start/stop, but it 
made no difference in capacity of a tape.  The record gaps are set by 
ANSI standards for data interchangeability.
> But for streaming mode to work, you need to feed data to the tape fast 
> enough. And with that, I mean that when one block operation is 
> finished, the command for the next one needs to happen very quickly, 
> or else the tape will need to stop.
I wrote a disk dump/restore program for our PDP-11 a long time ago. I 
discovered there was a 10 us "reinstruct window" in the Datum 
controller, so if you could just get a new write or read operation 
loaded into the controller within that time, it would stream the drive.  
No way to do that with interrupts, but with double buffering and doing 
everything by polling, it was just barely possible to make it in time.  
It required error-free media, but if you had that, you could dump or 
restore a 40 MB Calcomp disk to 45 IPM Pertec mag tape in under ten 
minutes, including rewind.
It was a total block for block copy, not a file by file copy, so the 
tape was pretty useless except for restoring again to a disk pack.


More information about the cctalk mailing list