Ha, originally from Jon Wilson. Here it is:
----------------------------
Pertec Formatted Interface, compiled by John Wilson <wilson(a)dbit.com> from
various drive manuals, 03-Oct-1999. Updated 17-Mar-2000.
Two 50-pin cables, all odd pins are grounded, except for pins 1/3 on P2.
All signals are active low.
Signal source is indicated under "src" column, C=controller, D=drive. All
transmitters are open-collector drivers which can sink 36 mA (e.g. 7438). All
receivers are 74(LS)00 style, terminated with 220 ohms to +5 and 330 ohms to
ground. Signals are active low.
P1 connector:
-pin- -name- -src- -description-
2 IFBY D formatter 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 C last word -- used to tell drive that this is the last
word (well, byte really) to be written in this record,
assert 300 nsec (min) before trailing edge of final
IWSTR pulse (no particular hold requirement)
6 IW4 C write data b4
8 IGO C initiate command -- pulsed low for 1 usec (min) to
start command. formatter address lines must be stable
throughout the pulse and until IFBY drops.
10 IW0 C write data b0 (MSB)
12 IW1 C write data b1
14 (ISGL) D (selected drive fault on some drives, cleared by
dropping and re-asserting IFEN)
16 ILOL C load on-line -- pulse starts load sequence on some
drives
18 IREV C reverse
20 IREW C rewind -- 1 usec (min) pulse starts rewind, no IFBY or
IDBY, so wait until IRWD=0 and IRDY=1. ignored if tape
is at BOT (so IRWD and IRDY will already be as above).
22 IWP C write parity (odd)
24 IW7 C write data b7 (LSB)
26 IW3 C write data b3
28 IW6 C write data b6
30 IW2 C write data b2
32 IW5 C write data b5
34 IWRT C write
36 (IRTH2) C see IRTH1
38 IEDIT C edit
40 IERASE C erase
42 IWFM C write file mark
44 (IRTH1) C write density select on some drives, used in
conjunction with IRTH1 to set write density (unless
controlled by front panel), qualifies IGO on first
write operation from BOT, ignored elsewhere
46 ITAD0 C transport address 0 (MSB)
48 IR2 D read data b2
50 IR3 D read data b3
P2 connector: (N.B. pins 1/3 are *not* grounds, so not paired with pins 2/4)
-pin- -name- -src- -description-
1 IRP D read data parity (odd) (N.B., not a ground pin)
2 IR0 D read data b0 (MSB)
3 IR1 D read data b1 (N.B., not a ground pin)
4 ILDP D 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 D read data b4
8 IR7 D read data b7 (LSB)
10 IR6 D read data b6
12 IHER D hard error -- pulsed (during IDBY) when a hard data
error (or illegal character in IRG) is seen
14 IFMK D file mark -- pulsed (during IDBY) when a tape mark is
seen
16 IDENT D 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.
on 9610, this is CCG (check character gate) in NRZI
mode -- sample during IRSTR to find out whether this
char is a data char or part of a CRCC or LRCC check.
18 IFEN C formatter enable -- should normally assert this all the
time, but drop it for 2 usec (min) to abort any command
that asserts IDBY (I/O, search, but not rewind I
guess) ASAP
20 IR5 D read data 5
22 IEOT D end of tape -- asserted whenever the tape is past the
EOT marker, clears when you backspace past it
24 IRWU C rewind/unload (also called IOFL) -- 1 usec (min) pulse
starts, same as IREW but sets drive off-line and
unloads tape. F880 manual isn't clear whether you
assert this signal alone or at the same time as IREW
(says it "modifies" it). 9610 manual seems to say it's
used alone.
26 INRZ D NRZI mode -- asserted when in 800 BPI mode on some
drives
28 IRDY D ready -- tape is fully loaded (not in transition
to/from off-line) and not rewinding, check this before
starting any command
30 IRWD D rewinding -- asserted while tape is rewinding
32 IFPT D file protect -- asserted continuously when the tape
doesn't have a write ring in
34 IRSTR D read strobe -- typical timing: pulses low for 200 nsec
(min), data on IR0-7/IRP are set up 100 nsec (min)
before leading edge, held for 200 nsec (min) after
trailing edge, cycle time can be as low as 1.1 usec for
GCR @ 100 IPS. Kennedy 9610 is different:
setup=500 ns min, RSTR=340 ns min, hold=250 ns min.
36 IWSTR D write strobe -- pulsed low each time the drive is
ready for another data byte to be written.
timing depends on drive model -- example: IW0-7/IWP
must be set up 300 nsec (min) before trailing edge, no
hold requirement after. Kennedy 9610 is edge-triggered
off the trailing edge, setup=500 ns, hold=250 ns.
38 IDBY D data busy -- asserted during I/O phase of read/write
commands (generally starts a few msec after IFBY).
40 ISPEED D high-speed status -- asserted when command is executing
in high-speed mode (starting at IDBY anyway)
42 ICER D corrected error -- pulsed (during IDBY) when a single-
track dropout is successfully corrected (using the
parity information)
44 IONL D online -- always asserted when online, clears within
1 usec of OFFLINE command
46 ITAD1 C transport address 1 (LSB)
48 IFAD C formatter address
50 IHISP C high speed select (also called IDEN) -- qualifies IGO
(so must assert beginning 1 usec (min) before trailing
edge of IGO, can drop any time afterwards) to select
high-speed tape motion for this command
Commands are started by setting up the IREV, IWRT, IWFM, IEDIT, and IERASE
lines and then pulsing IGO. All kinds of crazy combinations of these signals
are possible to get vendor-specific commands. The basic ones are:
READ --- (nothing, just IGO)
Reads the next record or dies trying. Data are supplied with
IRSTR pulses as needed, watch ICER/IHER for errors, or IFMK
etc. for other status.
READ REVERSE IREV
Reads the previous record, or just gives up if at BOT. As
above, watch ICER/IHER/IFMK/etc.
WRITE IWRT
Writes a record, supplying IWSTR pulses to clock in data until
the controller asserts ILWD.
WRT FILE MARK IWRT+IWFM
Writes one file mark.
ERASE IWRT+IWFM+IERASE
Erases 3" (or whatever) of tape. Used as part of a write retry
sequence.
SPACE FORWARD IERASE
Like READ but with no IRSTR pulses.
SPACE REVERSE IREV+IERASE
Like READ REVERSE but with no IRSTR pulses.
FMARK SCH FWD IWFM+IERASE
Does SPACE FORWARD commands until file mark or EOT marker is
reached.
FMARK SCH REV IREV+IWFM+IERASE
Does SPACE REVERSE commands until file mark or BOT marker is
reached.
On some drives, IEDIT modifies WRITE and READ REVERSE to allow (semi-)safely
inserting records on an existing tape. READ REVERSE EDIT tells the drive to
backspace slightly farther than usual into the preceding IRG, and WRITE EDIT
tells the drive to turn the head current off slowly at the end of the record to
avoid causing a glitch.
Kennedy 9610/9660 chart:
REV WRT WFM EDT ERS -command-
0 0 0 0 0 READ FORWARD
1 0 0 0 0 READ REVERSE
1 0 0 1 0 READ REVERSE EDIT
0 1 0 0 0 WRITE
0 1 0 1 0 WRITE EDIT
0 1 1 0 0 WRITE FILE MARK
0 1 0 0 1 ERASE VARIABLE LENGTH
0 1 1 0 1 ERASE FIXED LENGTH
0 1 1 1 1 DATA SECURITY ERASE
0 0 0 0 1 SPACE FORWARD
1 0 0 0 1 SPACE REVERSE
0 0 1 0 0 FILE SEARCH FORWARD
1 0 1 0 0 FILE SEARCH REVERSE
0 0 1 0 1 FILE SEARCH FORWARD (IGNORE DATA)
1 0 1 0 1 FILE SEARCH REVERSE (IGNORE DATA)
0 1 1 1 0 SELECT 800 BPI
0 0 1 1 1 SELECT 1600 BPI
1 0 1 1 1 SELECT 3200 BPI
1 1 0 0 0 SELECT 6250 BPI
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 w/o the drive having to reposition. Definitely a good idea to make the
deadline if possible, if you can't then using IHISP will probably waste more
time in repositioning than it will save in fast transfer speed.
--
Dave McGuire, AK4HZ
New Kensington, PA