The interface uses two 50 conductor (ribbon) cables, P1 and P2. All odd-numbered conductors are grounded, with the exception of conductors 1 and 3 on P2.
All signal levels are TTL (5 volt). Drivers are open-collector and must be capable of sinking 36 mA. The last device on each end of any cable should be terminated on all receive lines with 220 ohms to +5 volts and 330 ohms to ground. (Note: I suspect that 220 ohm to 1K ohm to +5 will suffice on short (less than 1 meter cable runs.)
All signals are active-low.
In the following, the source (driver) of the signal is signified by either Drive for the tape drive or Host for the host (controller). Note also, that the bit ordering is IBM-style. That is, bit 0 is the most significant bit in a byte and bit 7 is the least significant bit position. Don't let this trip you up!
|P1 Pin||Signal Name||Asserted by||Description|
|2||IFBY||Drive||Forrmatter busy—Set by trailing edge of IGO, clears when command finished (but you can send a new command as soon as IDBY clears)|
|4||ILWD||Host||Last word—Used to tell drive that this is the last word (byte) to be written in this record, Must be asserted at least 300 nsec. before trailing edge of final IWSTR pulse.|
|6||IW4||Host||Write data bit 4|
|8||IGO||Host||Initiate command—Pulsed low for at least 1µsec. to start command execution. The formatter address lines must be stable throughout the pulse and until IFBY drops.|
|10||IW0||Host||Write data bit 0 (MSB!)|
|12||IW1||Host||Write data bit 1|
|14||ISGL||Drive||Selected drive fault on some drives; NC on others. If used, it is cleared by de-asserting, then re-asserting IFEN.|
|16||ILOL||Host||Load on-line—Pulsing this line at least 1µsec. begins the tape load sequence on many drives.|
|18||IREV||Host||Reverse—When asserted, indicates operation is to be performed in the reverse direction.|
|20||IREW||Host||Rewind—A pulse of at least 1 µn;sec. starts the tape rewind sequence. Completion is signalled by IRWD and IRDY being asserted by the drive.|
|22||IWP||Host||Write parity. This is (almost always) odd parity computed over IW0–IW7 and on some drives is ignored and computed by the formatter.|
|24||IW7||Host||Write data bit 7 (LSB!)|
|26||IW3||Host||Write data bit 3|
|28||IW6||Host||Write data bit 6|
|30||IW2||Host||Write data bit 2|
|32||IW5||Host||Write data bit 5|
|34||IWRT||Host||Write—When asserted with IGO begins a write sequence.|
|36||IRTH2||Host||Write density select 2—On some drives, this signal, along with IRTH1 is used to select the drive write density. If it is implemented, it is valid only at BOT and must be asserted with IGO during the first write sequence.|
|38||IEDIT||Host||Edit—Not implmented on all drives. See notes in the next section for details on its application.|
|40||IERASE||Host||Erase—When asserted with IWRT and IGO, causes tape to be erased, usually for a predetermined length. Usually used to recover from write errors or provide extra space for mode changes (i.e. Read after write).|
|42||IWFM||Host||Write filemark&mash;When asserted with IWRT, writes a filemark.|
|44||IRTH1||Host||Write density control—See IRTH2, pin 36.|
|46||ITAD0||Host||Transport address bit 0 (MSB!)—Used to address multiple drives on a single controller.|
|48||IR2||Drive||Read data bit 2|
|50||IR3||Drive||Read data bit 3|
|All odd||Gnd||–||Signal ground.|
|P2 Pin||Signal Name||Asserted by||Description||1||IRP||Drive||Read data parity (odd) This is not a ground pin!|
|2||IR0||Drive||Read data bit 0 (MSB!)|
|3||IR1||Drive||Read data bit 1 This is not a ground pin!|
|4||ILDP||Drive||Load point—Asserted whenever the tape is at the load point (or might as well be, as far as the controller needs to know -- there may be hidden repositioning)|
|6||IR4||Drive||Read data bit 4|
|8||IR7||Drive||Read data bit 7 (LSB!)|
|10||IR6||Drive||Read data bit 6|
|12||IHER||Drive||Hard error—Pulsed during IDBY when a hard data error (or illegal character in the IRG) is seen. Note that most modern formatters correct this error automatically.|
|14||IFMK||Drive||File mark—Pulsed during IDBY when a tape mark is seen. Note that you have to catch this as it goes by!|
|16||IDENT||Drive||Identification—Asserted while drive is actually reading the PE ID burst, dropped the rest of the time so it's up to the controller to catch it and remember.|
|18||IFEN||Host||Formatter enable—This signal should normally be asserted all the time. If dropped for a minimum of 2 µsec., aborts any comman that asserts IDBY (I/O, skip, but not rewind or unload).|
|20||IR5||Drive||Read data bit 5|
|22||IEOT||Drive||End of tape—Asserted whenever the tape is past the EOT marker, clears when the tape is backspaced past it.|
|24||IRWU||Host||Rewind and unload—A pulse of at least 1 µsec. initiates a rewind-with-unload and sets drive off-line. Some drives require that IREW is also asserted.|
|26||INRZ||Drive||NRZI mode—Signals 800 BPI mode on some drives.|
|28||IRDY||Drive||Ready—Signals that tape is fully loaded, on-line and not rewinding. This must be asserted by the drive before it will accept any command.|
|30||IRWD||Drive||Rewinding—This is asserted by the drive while the tape is rewinding.|
|32||IFPT||Drive||File protect—This signal is asserted continuously when the tape is not write-enabled (i.e. no ring present).|
|34||IRSTR||Drive||Read strobe—Pulses low for at least 200 nsec. when data on IR0-IR7 and IRP are stable before leading edge; typically held for 200 nsec., but this is not a requirement. Note that data is made available–there is no check made to ensure that the host has picked it up.|
|36||IWSTR||Drive||Write strobe—Pulses low for at least 200 nsec. when the drive is ready to accept data. This is roughly similar to an "Acknowledge" signal after data has been received. The next data byte can be presented immediately.|
|38||IDBY||Drive||Data busy—This signal is asserted during I/O phase of read or write commands. It generally lags a few milliseconds after the drive asserts IFBY.|
|40||ISPEED||Drive||High-speed—This signal is asserted when commands are executing in high-speed mode; that is, when the drive is not operating in start-stop mode.|
|42||ICER||Drive||Corrected error—This signal is pulsed during IDBY when a single-track dropout is successfully corrected using the parity information.|
|44||IONL||Drive||Online—Asserted when the drive is online; clears within 1 µsec. of being taken offline.|
|46||ITAD1||Host||Transport address bit 1 (LSB!)|
|50||IHISP||Host||High speed select—When asserted 1 µsec. before and then with IGO (de-asserted any time after the trailing edge of IGO selects high-speed (streaming) mode.|
|5-49 odd||Gnd||–||Signal ground.|
Commands are started by setting up the IREV, IWRT, IWFM, IEDIT, and IERASE signals and then pulsing IGO. Various combinations of these signals are possible to get vendor-specific commands.
The basic ones are:
Assert IGO. The drive reads data and presents data at IR0–IR7, strobing each byte with IRSTR. No check is made for data received by the host; it's simply shoveled out by the drive until the end-of-block or error. ICER and IHER signal soft and hard errors, respectively and IFMK will indicate a filemark. Observe that these signals are just pulses that accompany each data byte—they do not latch.
Assert IGO while asserting IREV. Operates the same as a forward read, but data is presented in reverse order.
Assert IWRT while asserting IGO. As the formatter accepts each byte of data, it signals with the IWSTR strobe. Again, no check is made to see if the data presented at IW0-IW7 and IWP is valid--the host must present data and parity prior to the assertion by the drive of IWSTR. When the last byte in a block is presented for writing, the host must assert ILWD.
Assert IWRT and IWFM while asserting IGO. One filemark will be written.
Assert IWRT, IWFM and IERASE while asserting IGO. This command erases a few inches of tape, usually as part of a write error recovery sequence.
Assert IERASE with IGO. This functions similarly to a read but with no data transfer.
Assert IERASE and IREV with IGO. This is similar to a read reverse operation, but with no data transfer.
Assert IWFM and IERASE with IGO. This causes the drive to skip forward to the next filemark or EOT. The tape is left positioned after the filemark
Assert IWFM, IREV and IERASE with IGO. This causes the drive to skip backward to the preceding filemark or BOT. The tape is left positioned before the filemark
On some drives, IEDIT modifies reverse reads and forward writes so that a record can be replaced. Asserting IEDIT while doing a reverse read causes the drive to move further back into the IRG preceding the record being spaced over. Asserting IEDIT while writing tells the drive to modify the write current turn-off to avoid a glitch.
Streamers have a drive-dependent "reinstruct time" which is the size of the time window after completion of a command during which you can issue a new command without the drive having to reposition. If you fail to make this window, then the drive stops and backspaces a few records to get a running start at the next record. This can waste a lot of time and movement. Asserting IHISP needlessly will probably result in operations taking longer if succeeding operations cannot be issued in time, so care must be used in attempting to use the "high speed" mode of operation.
As regards transfer speeds, a good rule of thumb is that an interface should be designed to provide or receive data at least at 1MB/second. Observe that there's no handshaking for data transfers, so it's incumbent on the controller to satisfy all timing requirements.
Here are a few terms used in this discussion:
BOT or "beginning of tape". This is not the physical start of a tape, but rather the point after the beginning where a reflective foil tape marker has been applied. All tape before this is classified as "leader".
EOT or "end of tape". This is not the physical end of the tape, but rather a point somewhere before the physical end where a reflective foil marker has been placed. As a rule of thumb, it's safe to write at least one short record past the EOT marker.
Filemark is a reserved bit pattern used to delimit files on a tape. Most drives can scan a tape in either forward or reverse directions at high speed to locate a filemark. Some system software uses two or three consecutive filemarks to provide extra levels of delineation.
Write enable or "write ring" is a plastic ring that fits into a groove in the back of a reel of tape to tell the drive that it's safe to write to the tape. "No ring, no write" is an old data processing rule.
Formatter is a intermediate interface between the drive and the controller that provides buffering and error correction facilities for a drive or group of drives. One formatter can service several drives. It's also possible to interface a drive to more than one formatter.
Parity is used for error control on tape drives. One bit in a nine-bit frame is reserved for parity and some tape formats also append a longitudinal parity frame at the end of a block, so that single errors can be corrected. In 9-track tapes, the number of bits in a frame must be odd. Some 7 track tape formats allowed for even parity as long as no all-zero frames are written.
Chuck Guzis, Sydex, Inc.
October 22, 2010, Eugene, OR, USA