Wednesday, September 30, 2015

Kennedy 6450/6455 QIC Tape Drive? - Data Format Analysis

Please also visit QICreader.com

Could the Microtech DART / M1 we are reconstructing once been equipped with the Kennedy 6450 Tape Drive, or equivalent?   Here's some clues:

On one of the tapes is written "Kennedy Backup Disc Utility".  Well, does that mean that the Disk being backed up is a Kennedy, or that the Backup Device, for which the Utility was made, is a Kennedy?  Or both?



And then I found this article, which makes a curious "connection":

Computerworld May 31, 1982


Are the Microtech DART / M1 or Point 4 Mark series computers in the same family as DG's Nova or Eclipse minicomputers?  I think they are, so here could be a connection.

Computerworld Jul 21, 1980


This article is older, but it speaks more of this model, specifically of backing up a Winchester Drive, albeit 8 inch.

NOW for the real convincing things...the manual.  This tape format seems to match nearly perfectly with the format I'm finding on these tapes.


I'm using the same method that I used for my QIC-24 decoding & analysis, to come to the conclusions below.  I'm reading these using both and Archive 5945 and a Wangtek 5099, getting the same results on both.  Keep in mind that these are manual reads with a logic analyzer doing the capture.  There is no "formatter board" in the mix, which would instantly error out when it found a data block format that it wouldn't recognize.  Sometimes, there can be value in dumbing things down.

Track Order



Let's compare the above diagram to the 9-track drives that I've been working with on my QIC-24 project.

The first thing I notice is that the tracks are in a very different order.  The Kennedy drive reads (from top to bottom on the diagram) 

2, 1, 0, 3

But, the 9-track drive, (in 4-track mode) reads 

1, 3, 0, 2

While track 0 starts in the same position, all the other tracks are written in a different order. 

I've done a lot of experimental reading on these tapes, and found something interesting as it relates to this:  When reading the Microtech tapes with this type of 9-track tape drive (in 9-track mode), the readable tracks are found by selecting only these tracks in these directions, where GREEN is data with a good read, and RED is data with a bad read:

Track 0 - Forward
Track 3 - Reverse
Track 5 - Forward
Track 6 - Forward**
Track 7 - Reverse
Track 8 - Reverse

**Track 6 - Forward is a very-high-error version of Track 0 - Forward.
**NOTE** On one of our tapes, Track 0F had no data pulses, but instead, Track 6 was fully readable in its stead.  I speculate that this tape was written with slightly different head alighment, and the diagram below should show why this could be the case.

Track 7 - Reverse is a higher-error version of Track 3 - Reverse.


So, this all makes sense if I super-impose the 9-track tape drive diagram over the Kennedy 4-track diagram.  I'm sure I don't have this perfectly to scale, but I hope you get thie idea:


Also, note some direction discrepancies.  While the Kennedy tracks are travelling the same direction with the 9-track design on the Kennedy tracks 0 and 1, they differ on Kennedy tracks 2 and 3.

Thankfully, my custom tape drive controller allows me to manually and independently select the direction and the track.


Data Block Format


This also matches perfectly with the data reading I am getting from these Microtech tapes, with Preambles & Postambles MUCH shorter than the QIC-24 standard, of only 80 flux transitions.  The table above calls them "1s", or as I read it, "ones".

NOTE the type-o on the SYNC column in the table.  The description above the table says that Sync is 00111, but the table shows it as 0111.  Both research and experience tell me that the correct Sync, as they call it, is 00111.

"The formatter will write a preamble consisting of 80 Is followed by a synchronized character of 00111, also known as the Mark I "  I've never heard the term Mark I in this context before, has anyone else?

And, the most important part, the DATA segment.  With the QIC-24 format, the DATA segment if the block is set at 512 bytes, but in this documentation, I find no such set size or limit.  Instead, on the Microtech tapes, the DATA segments are much longer being either 4096 or 8192 bytes.  

Also, notice the complete lack of a Block Address at the end, as there is in QIC-24, and in QIC-11.

In the place of the Block Address, there seems to be what they call an End Mark, which is '11111'.


Cyclic Redundancy Check

The CRC appears to be similar.  Both this format and QIC-24 have 2-byte CRCs right before the Postamble.  However, no mention is made in the Kennedy manual of the polynomial which is used to calculate it, other than this:


"A 16 bit CRC character shall be generated by the formatter on the host data bytes."

Well, the most valuable part of that sentence is "on the host data bytes".  That at least implies that it is across the entire data field, which is MUCH longer than the QIC-24 or QIC-11 data field.  QIC-24 or QIC-11 data fields are all 512 bytes, no variation.  But tapes have data fields either 4096 or 8192 bytes in size, which is a multiple of 8 or 16 from the QIC-11 or QIC-24 formats. 

Update 12/7/2015:

I've successfully used CRC_RevEng to reverse enginer the models/polynomials used for this CRC.

P(x) = x16 + x15 + x2 + x0

For both 4096 and 8192-byte data blocks:
width=16  poly=0x8005  init=0x0002  refin=false  refout=false  xorout=0xfffd  check=0x2119  name=(none)

reveng -w 16 -p 8005 -i 0002 -x fffd -c -f Block.bin

width=16  poly=0x8005  init=0x8001  refin=false  refout=false  xorout=0x7ffe  check=0x2119  name=(none)

reveng -w 16 -p 8005 -i 8001 -x 7ffe -c -f Block.bin

(For 4096-byte data blocks only?)
width=16  poly=0x8005  init=0xbffe  refin=false  refout=false  xorout=0x0000  check=0x26e7  name=(none)

reveng -w 16 -p 8005 -i bffe -c -f Block.bin


https://ghsi.de/CRC/index.php?Polynom=11000000000000101&Message=3555

(For 8192-byte data blocks only?)
width=16  poly=0x8005  init=0x5ffc  refin=false  refout=false  xorout=0x0000  check=0x62e7  name=(none)

reveng -w 16 -p 8005 -i 5ffc -c -f Block.bin

https://ghsi.de/CRC/index.php?Polynom=11000000000000101&Message=9AA9

Just simply running reveng against many thousands of unique message/CRC samples all returned "no models found", without exception.

So, the over-simplified explanation about how I derived these was that I first wrote a program that wrote a batch file which tried every possible 16-bit polynomial against a single message/CRC sample...with 65536 different reveng commands, and only one of them actually found a result: 0x8005.

Then I wrote another program that wrote another batch file to run reveng to check ~1200 unique message/CRC samples using only polynomial 0x8005, and I got these results shown above.

More about how I derived these coming soon...

[Append-Initialization-In-Message Value Search]


File Marks


8.2 TAPE FILE MARK (FM)
The file mark is a preamble, sync, reverse sync, and postamble combination.  Standard IBGs
shall be employed on either side of the file mark.

Well, that is almost exactly what I see below, which is a segment from a Saleae Logic Analyzer capture of one of the Microtech tapes.  WOW, that is VERY different than the QIC-24 Filemarks.  With QIC-24, the filemark is either one or two consecutive full data blocks, containing a special repeating filemark character.  Not here, this is much simplified.


So, the only question here is, this '11111' in between the Sync and the Reverse Sync is not mentioned in the description above, but everything else is just so right-on, I can't dismiss it all just because of this.  So, is this a variation which disqualifies this from being from a Kennedy 6450?  Or is this just something that the documenters forgot to mention?  Is it the End Mark that is mentioned above in the Data Block Format?

Inter Block Gaps


8.3 INTER BLOCK GAPS (IBG)

The standard IBGs between records or file marks written on tape (except from load point) shall
be a minimum of 1.2 inches (30.5 mm).

The standard gap when writing from load point to the first record or FM shall be 3.0 inches
(76.2 mm)

Well, the QIC-11 and QIC-24 formats certainly do NOT have any Inter Block Gaps.  Those tracks are continuous from beginning to end with no breaks.  Only a preamble/postamble separates the blocks once the first preamble begins.

And in the above File Mark section, it says "Standard IBGs shall be employed on either side of the file mark."  

Again, this is very unique to this format, as far as I know.

Read-After-Write Error Management

At the bottom of page 2-30 of the Kennedy 6455 Cartridge Tape Maintenance manual, we see:

2.3.3.3 The Data Transfer Group
....skipping to ....
     b. Write (Code - 01101)
     Drive writes one record with standard IBGs. Performs read-after-write check.  
     Write commands from LLP will start 3 inches from LLP.  

LLP must refer to "Logical Load Point".


So, the big question here is, what does it do when it finds an error?

What if the section of the tape where that block was written was physically bad?  How does the system indicate that this block should be ignored when read?

The QIC-11 and QIC-24 systems both have block numbers after the data block, and before the CRC.  So, the way we know that a block is bad (or can otherwise be ignored) is that the next block has exactly the same number, or even a number a block or more before that one...such as 

1, 2, 3, 4, 4, 5, 6, 7, 6, 7, 8, 9, 10 

The first block 4 can be ignored, and the second block 4 is used in its place, and then the first block 6 and 7 both can be ignored, as the subsequent block 6 and 7 will take their place.

How does this drive manage this?  Or does it?

This manual segment, also referenced above about the CRC, indicates that it takes some action when the CRC is not a match on the read-after-write, but what action is that, exactly?


"A discrepancy between the two will indicate a data error, which will be reported by the summary status byte."

Well, what happens when this summary status byte reports this error?  What action is taken?

With the Inter Block Gaps, it has the ability to go back and re-write a block.  So, it *could*
just erase the bad block, then skip to the next area on the tape and write the block...but this is a wild guess.  How can we know?

My dilemma is this:  When my program finds errors in blocks with QIC-11 or QIC-24, with the above-mentioned block numbering sequence, I can easily tell if the block was deemed OK by the system at the time of read-after-write.  If the numbering sequence proceeds on, then that block is all we get, and if it has an error today, it has to be fixed in order to recover the full file.

But, here, the guessing makes this far more challenging.


Please refer to this post as the rest of the information that I wish to include in this section.

Other Formatter/Drives?

What I REALLY want to know from the Vintage Computing community, is this:  Was this format unique and proprietary to Kennedy, or did other cartridge, or reel-to-reel systems of the day, and earlier, use anything like it?

Does this format conform to any ANSI standard whatsoever, or even resemble one?

I'm really curious if anyone in the Vintage Computing community would know this from their work or research back in the day.


Physical Device

We don't have a picture of the outer chassis of the 6450, but here is a picture of a slightly newer model, the 6470, advertised in 1983.  According to the KENNEDY 6455 Cartridge Tape Maintenance manual Page 2-4, this was a 7-track, 10,000-bit/in (45/90-ips) unit, can store a maximum of 63M bytes of unformatted data.  Clearly newer than the 4-track model we have been working with, but I am guessing, outwardly visually the same, if not very similar.

But, thanks to bitsavers.org, we DO have a detailed picture of the formatter board for the 6455, which almost certainly operated the same.  According to the KENNEDY 6455 Cartridge Tape Maintenance manual Page 2-4, this was a 4-track, 6400-bit/in (30/70-ips) unit, can store a maximum of 23M bytes of unformatted data.



MORE Kennedy Tape Drive resources:





Follow Ups

Please also see my posts about this topic at:



2 comments:

  1. I just acquired a Kennedy QIC tape drive model 6500: http://www.ebay.com/itm/321987302204

    As soon as feasible, I plan to test and determine the data format that this drive uses (if any).

    This is the first Kennedy QIC drive I have ever seen available.

    ReplyDelete
  2. http://www.ebay.com/itm/122327850053 is supposedly a tape head for the Kennedy 6470. Let's see if it truly is.

    ReplyDelete