Introduction Restoration
Suitable Media Connections My Cassette Collection Contact Details
Introduction
The TU60 is part of the “TA11 Cassette System Interface” for the PDP-11. TA11 hardware comprises one TU60 Dual Cassette Transport, one M8792 Control Module, and two BC08-S interconnection cables. The M7892 is a quad-height Unibus card that installs in a “Small Peripheral Controller” (SPC) Unibus slot. The two TU60 drives are referred to as Drive A and Drive B.
Each end of two BC08-S interconnecting cables is terminated with a 40-pin “Berg” connector. Only every second conductor is used for signals. The other conductors are connected to ground at the TA11 end.
The TU60 incorporates analogue and logic electronic circuits necessary to interface the two drives to the M7892. The TU60 internal electronics are shared between the two drives. Therefore it is not possible to perform read/write operations on the two drives simultaneously. It is possible to rewind one drive (using the rewind button on the front panel) while the other drive is in use.
Each drive has two small motors:
- The upper motor, which is directly mounted on the shaft of the upper spindle. This motor is used to rewind the tape. It is also used to tension the tape (both at idle, and when the tape is in forward motion).
- The lower motor, which is used to move the tape in the forward direction (both for reading, and for fast forwarding). This motor is not directly connected to the lower spindle. Instead, its bare shaft drives a rubber-coated outer circumference of an aluminium wheel that is on the lower spindle shaft.
The mechanism for each drive also includes a solenoid. The solenoid (when activated) brings the lower motor into contact with the lower-spindle pulley.
Each drive has two interlock switches that are activated by contact with the top edge of the cassette. If one (and only one) of these switches is activated, the TU60 assumes a decassette is inserted. This is because decassettes have a notch cut in the top edge of the casette. The notch is slightly offset from the centre. If an ordinary (unmodified) cassette is instead inserted, both interlock switches will be activated, and the drive will not operate.
When no cassette is installed, the solenoid is at rest, and neither motor rotates. When a decassette (or a modified audio cassette) is installed, the solenoid energises, and both motors apply torque (in opposite directions) to their respective spindles. This keeps the tape in tension. These solenoids become very warm after 10 minutes or so. Accordingly, it is probably not a good idea to keep the TU60 powered on (with cassettes installed) for long periods of time.
Each drive shines a light through the tape at a 45 degree angle. This enables the TU60 to sense when the clear leader is encountered at the beginning or end of the tape. For example, when the TU60 is in rewind mode, the lower spindle freewheels (because the solenoid is de-energised) until the clear leader tape is detected. Once clear leader is detected, the solenoid activates, and the tape motion stops very quickly. In practice, this stops the tape about half way into the leader. By doing so, the tape motion stops before the drive attempts to detach the tape from the reel.
Only one side of the cassette is used. I believe (but have not yet verified) that this is because the TU60 writes the full width of the tape. So “Side A” should always face outwards.
Tape speed is not constant. A normal audio cassette usually plays at a constant speed of 1.875 inches/second. The TU60 plays tapes at a constant spindle rotational speed. This means that the tape speed is lower at the start of the tape, and higher at the end of the tape.
The data rate is around 5,000 baud. This is approximately 10 times the data rate used in home computers in the late 1970s. For example the TRS-80 Model 1, which used a conventional audio cassette deck, was 500 baud (although the later TRS-80 Model III has a 1500 baud high-speed mode).
Restoration
I purchased my TU60 as part of a PDP-11/10 system on eBay. Physically it was in very good condition. However it had not been used for 20 years. The restoration steps I took were as outlined below.
Cabinet
Opened up the case. Checked thoroughly for any physical damage to components. Remove all foreign objects. Clean thoroughly with a soft pain brush, low-pressure compressed air, vaccuum cleaner, warm soapy water, etc. Similarly clean the two 40-way cables, and check them for damage. Check the mains lead for damage. Open up the mains plug and check for correct wiring (active, neutral and earth), and check that all wires are still firmly attached.
Mounted on the inside of the rear panel is an 80mm cooling fan. Between the rear panel and the cooling fan is an inlet filter made of open-cell foam. My inlet filter had disintegrated and was mostly missing. A replacement was made from black anti-static foam. This is the type of foam that is used for storing through-hole ICs.
Power Supply
The four large electrolytics were removed from the circuit and “reformed” using the Silicon Chip Electrolytic Capacitor Reformer. The power supply was then bench tested using a dummy load (at about 50% of the power supply’s rated load) for two four-hour periods.
Re-rubbering the lower drive spindle
The rubber coating on the outer circumference of the two lower drive spindles had totally disintegrated and fallen off. Small pieces were loose inside the TU60. When touched, they would break into smaller segments.
The solution was as follows (thanks to Lou Ernst for this technique):
- Remove the drive from the TU60 (using a 9/64 allen key to remove the 4 cap screws)
- Using two slotted screwdrivers, remove the pivot that secures the lower spindle motor to the mechanism
- Using a small philips-head screwdriver, remove the lower spindle assembly
- Using acetone, remove the residue that formerly attached the rubber ring to the aluminium pully
- Find a suitable replacement rubber ring (see notes below) and glue it on using super glue
- Place the cassette-drive end of the spindle assembly in a drill press
- Machine down the outer circumference to 38.10 to 38.35mm
- Reassemble and reinstall the drive
For Drive B, I used a red rubber ring supplied by Lou Ernst. This had an internal diameter of about 32mm. I understand this is a common seal used for waste pipe plumbing in the U.S. It is a fairly firm material, similar to thered rubber rings used on the flippers of pinball machines. Once glued on to the pulley, I machined this down to 38.1mm and it seems to work fine.
For Drive A, I used a different rubber compound. A 6mm wide ring was cut from a larger rubber component that is used to correct the “flush” pipe to the inlet of a toilet bowl. This is a fairly standard plumbing component here in Australia. This is a softer rubber, and has more of tyre/rubber smell to it. Once glued to the pully, I initially machined this down to about 38.8mm. However, this seemed a bit too large (the solenoid had difficulty getting to full stroke). So I machined it further down to 38.35mm. This seems to work fine.
For reference purposes: the outside diameter of the aluminium pulley is 34.9mm, and the flange width is 5.8mm.
Suitable Media
The cassettes used in the TU60 are physically very similar to audio cassettes.
However, there are some important differences:
- The decassette has a notch along the top edge (as mentioned above)
- They have a clear (rather than opaque) leader (as mentioned above)
- The tape is stronger, to withstand the constant tension applied by the TU60
For the above reasons, normal audio cassettes should not be used in the TU60. However, these cassettes are obviously no longer available, so compromises need to be found.
The notch problem can be resolved by cutting, or melting, a notch into the top edge. I first tried cutting the notch using a hacksaw. This was successful, but resulted in plastic burrs falling inside the cassette case (which subsequently had to be opened, so the particles could be removed). I have also tried melting the notch in (this was Lou’s suggestion). This works OK, but ends up with bulges on the outside of the case, which then need to be filed off.
I have tested two different commonly available cassettes:
- A 90-minute “TDK Brilliant Cassette B”. The leader on that tape is not 100% clear (it is slightly frosted). However, the leader-sensor optics seem to detect the leader just fine
- A 90-minute “Maxell UR”. The leader on this tape was more frosted (less clear) that the TDK. However, the leader-sensor optics again seemed to detect the leader just fine
When the above tapes were rewind-tested in the TU60, the drives consistently detected the leader and stopped the tape motion well before the reel stop was reached. In Drive B, both tapes stopped within about 1.4 turns (of the empty reel) after the leader was encountered. For both tapes, this left about abother 1.6 turns still on the reel. When this test was repeated on Drive A, the tapes stopped within about 1.1 turns of the leader being detected.
Connections
The TU60 connects to the TA11 (M7892) via two 40-wire interface cables.
All signals (control, data and status) are active-low open-collector lines.
The signal levels are as follows:
- Logical 0: Means the signal is “floating” (at +3V or +5V)
- Logical 1: Means the signmal is “asserted” (pulled to GND)
Note that the signals are all carried on even-numbered pins. The odd-numbered pins are all connected to ground at the TA11 end.
Berg Connectors
The diagram below shows the pinouts of the J1 and J2 “Berg” connectors, and the corresponding pin numbers on a “conventional” 40-pin header. This diagram shows the male connector, as viewed from the mating side.
B 02 |
D 04 |
F 06 |
J 08 |
L 10 |
N 12 |
R 14 |
T 16 |
V 18 |
X 20 |
Z 22 |
BB 24 |
DD 26 |
FF 28 |
JJ 30 |
LL 32 |
NN 34 |
RR 36 |
TT 38 |
VV 40 |
A 01 |
C 03 |
E 05 |
H 07 |
K 09 |
M 11 |
P 13 |
S 15 |
U 17 |
W 19 |
Y 21 |
AA 23 |
CC 25 |
EE 27 |
HH 29 |
KK 31 |
MM 33 |
PP 35 |
SS 37 |
UU 39 |
Control signals
The following table lists the control signals (these are outputs from the TA11 to the TU60)
TU60 Control Signals | ||||
---|---|---|---|---|
Signal Name and pin number |
Circuit at TA11 end | Circuit at TU60 end | Comment | |
Select Enable L
J2-JJ (J2 pin 30) Input to TU60 |
Hardwired to GND. | Input into a 380 (E25 pin 9).
180R pullup to +5v. 390R pulldown to GND. |
Enables TU60 transmitters and receivers.
TA11 sets this to Logical 1, to Enable the TU60. |
|
Drive B L
J2-X (J2 pin 20) Input to TU60 |
Output from 7416 (E33 pin 10).
No termination resistors. |
Input into a 380 (E24 pin 12).
180R pullup to +5v. 390R pulldown to GND. |
Selects drive A or drive B.
TA11 sets this to Logical 0 for Drive A, or Logical 1 for Drive B. |
|
Start L
J2-R (J2 pin 14) Input to TU60 |
Output from 7416 (E33 pin 2).
No termination resistors. |
Input into a 380 (E23 pin 6).
180R pullup to +5v. 390R pulldown to GND. |
Starts command execution.
Sequence is:
|
|
Rewind L
J1-DD (J1 pin 26) Input to TU60 |
Output from 7416 (E32 pin 2).
No termination resistors. |
Input into a 380 (E24 pin 7).
180R pullup to +5v. 390R pulldown to GND. |
Rewind at high speed (100-150 ips) to beginning of tape.
TA11 sets Rewind L to Logical 1. Command is then clocked out using Start L. |
|
Back Block Gap L
J1-N (J1 pin 12) |
Output from 7416 (E32 pin 10).
No termination resistors. |
Input into a 380 (E24 pin 4).
180R pullup to +5v. 390R pulldown to GND. |
Reverse tape at R/W speed across a data block to the preceding pre gap.
TA11 sets Back Block Gap L to Logical 1. Command is then clocked out using Start L. |
|
Back File Gap L
J1-BB (J1 pin 24) |
Output from 7416 (E32 pin 8).
No termination resistors. |
Input into a 380 (E22 pin 9).
180R pullup to +5v. 390R pulldown to GND. |
Reverse tape at search speed across a data file, stopping at two-thirds of the preceding file gap.
TA11 sets Back File Gap L to Logical 1. Command is then clocked out using Start L. |
|
R/W File Gap L
J2-F (J2 pin 6) |
Output from 7416 (E32 pin 12).
No termination resistors. |
Input into a 380 (E22 pin 12).
180R pullup to +5v. 390R pulldown to GND. |
Erases some tape (if Write Mode L is Logical 1). Moves tape to next file gap (if Write Mode L is Logical 0).
TA11 sets R/W File Gap L to Logical 1. Command is then clocked out using Start L. |
|
Write Model L
J1-R (J1 pin 14) |
Output from 7416 (E32 pin 4).
No termination resistors. |
Input into a 380 (E22 pin 7).
180R pullup to +5v. 390R pulldown to GND. |
Selects the read or write logic within the TU60.
The TA11 sets this signal to Logical 1 for a write-data or write-file-gap operation. Command is then clocked out using Start L (once the relevant Command signal has also been set to Logical 1). |
|
Transfer L
J2-V (J2 pin 18) |
Output from 7416 (E33 pin 12).
No termination resistors. |
Input into a 380 (E23 pin 4).
180R pullup to +5v. 390R pulldown to GND. NOTE: This signal then goes to the IC via a 220R & 470PF filter. |
Handshake signal used to transfer a byte to or from the TU60.
Operation is as follows:
|
|
R/W CRC L
J2-D (J2 pin 4) |
Output from 7416 (E33 pin 4).
No termination resistors |
Input into a 380 (E22 pin 4).
180R pullup to +5v. 390R pulldown to GND. |
Writes CRC “character” to tape, or tests the CRC Register for a CRC error.
Note: Timing of this signal needs further investigation. |
|
Initialize L
J2-T (J2 pin 16) |
Output from 7416 (E33 pin 8).
No termination resistors |
Input into a 380 (E23 pin 9).
180R pullup to +5v. 390R pulldown to GND. NOTE: Also connects to J3-JJ. |
Initializes the TU60
TA11 asserts this signal to initialize the TU60. Note: Need to do more work to figure out how long this needs to be asserted for, and whether it needs to be clocked out with START L |
My Cassette Collection
Below is a list of the TU60 cassettes in my collection. This information is taken from the labels only.
Tape Number | Text on Label | Text on Separate Note |
---|---|---|
1. | DEC-11-OTBAA-A-TC1 5.74 M BASIC/CAPS-11 V01 CASSETTE 1 OF 3 1974 |
|
2. | DEC-11-OTBAA-A-TC2 5/74 M BASIC/CAPS-11 V01 CASSETTE 2 OF 3 1974 |
|
3. | DEC-11-OTBAA-A-TC3 5/74 M BASIC/CAPS-11 V01 CASSETTE 3 OF 3 1974 |
|
4. | DEC-11-OTDBA-A-TC1 7/73 M CAPS-11 V01.02 (OBJ MODULES) CASSETTE 1 OF 2 1973 |
|
5. | DEC-11-OTOBA-A-TC2 7/73 M CAPS-11 V01.02 (OBJECT MODULES) CASSETTE 2 OF 2 1973 |
|
6. | DEC-11-OTSYA-A-x CAS-11 V01-02 SYSTEM TAPE |
|
7. | CAPS11.S16 18.1-90 | |
8. | STUDENT TAPE 6 | |
9. | DEC-11-OTSYA-A-x 7/73 M CAPS-11 V01-02 SYSTEM CASSETTE 1973 |
|
10. | [Presumed Blank. Part of label has been removed] |
|
11. | CAPS-11 28K SYS. COPY No 1 MARCH 1980 |
|
12. | GENERAL TEST PROGRAM AND 2 OVERLAYS |
|
13. | DBKDM.CPB to DQLC.CPR MAINDECS [On back: “FIRST USED JAN 76”] |
|
14. | DZTAA.BPB to DZCOA.APB | |
15. | [Label is blank] | DZLPG.APB DZLPH.APB DXQLD.DPR DXQLE.BPR DXQLA.APR DXQLH.BPR |
16. | RUN TIME EXERCISER RUNTEX.BIN & ITS CONFIG. TABLE CNF1.CNF |
|
17. | KEAC.OBJ FPHL.OBJ KWAD.OBJ CRAD.OBJ QABE.OBJ DQAC.OBJ CPAE.OBJ DUAE.OBJ |
[List of 28 OBJ files] |
18. | CBAC.OBJ THRU TAAC.OBJ | DO NOT ERASE RUN TIME EXERCISER OBJECT DIAGNOSTICS [Then lists 27 OBJ files] |
19. | RL01 DISC & TA11 CASSETTE DIAGNOSTICS TADP.SAV TADP.BIN UPD3.BIN ZRLFA0.BIN [“4” in square] MAR 80 |
[Note has handwritten comments about each file] |
20. | RL01 DISC DIAGNOSTICS ZRLDA0.BIC ZRLEA1.BIC [“3” in square] MAR 80 |
|
21. | Diagnostics for RL01 DISC & Diagnostic Monitor for DEC Cassette System ZRLBA0.BIC ZRLCA0.BIC TADP.BIN NO C/SUM ERRORS. [“2” in square] MAR 80 D.Owen |
|
22. | Diagnostics for Disc (RL01) RLDP.BIN(17) UPD2.BIN(31) UPD3.BIN(38) ZRLAA0.BIC (61 Blocks) MAR 1980 [“1” in square] First of [“4” in square] RL01 DIAGNOSTICS CASSETTES |