The University of Iowa's DEC PDP-8Restoration Log
Part of
the UI-8 pages
|
This is a chronological log of the progress restoring the University of Iowa's PDP-8 computer. Entries are added at the end as work progresses. Click on any thumbnail image to see full-sized image.
Bug 51 and Bug 65: While we can test voltage levels anywhere on the board with a voltmeter, the predominant signals we care about are the logic voltage levels. DEC R-series logic modules use 0V and –3V, using active-high drivers. That means that the most useful logic probe would light up at 0V and turn off at –3V. There is a bus on the board that sits at roughly -2.4V, but this reference voltage is generated locally on each logic board and is not present on any convenient test point. This led me to design a logic probe specifically for R-series logic using the following parts:
The Zener diode clips to the –15V pin on the backplane (pin B) and generates the –3V reference voltage. The LED therefore has 0V across it when the logic output is –3V, and it has 3V across it when the logic output is 0V. This is less than the 5V the LED is designed for, but enough to make it light up nicely, drawing about 5mA, which is well below the amount of current the DEC R-series boards are rated at.
I used soldered lap joints about 1/8" long to join the parts, with each joint reinforced and insulated by heat-shrink tubing. It is important to slip the tubing over the wire before soldering. The heat of the soldering iron is enough to shrink the tubing if you hold it not quite touching over the hottest part of the iron. After everything was assembled, I slipped a piece of heat shrink tubing over the full assembly including the rear half of the LED and the heat shrink tubing over the solder joints. This securely grips the rim at the back of the LED and gives additional protection to the solder joints (see the photos below).
In assembling the probe, connect the yellow (or color closer to the red end of the spectrum) test lead to the positive (long) lead of the LED, after cutting off the extra length. Only when this is done should you clip the other (negative) LED lead and connect the Zener diode. Cut each Zener diode lead to length just before soldering. The end of the Zener diode with a black band connects to the LED, while the other end connects to the green (or color closer to the blue end of the spectrum) test lead.
R211 Board Testing |
---|
Connecting the two test probes to pins CD and CF (the MB flipflop outputs), the MB flipflop could be set and cleared by briefly grounding pins CT and CU (set MB and Clear MB).
Connecting the test probes to pins DK and DL (the PC flipflop outputs), the PC flipflop could be cleared by briefly grounding pin CV (clear PC). There is no external set PC input, but with pin DE (CMP PC Level) grounded, brief ground pulses on pin DD (CMP PC Pulse) would toggle the PC flipflop. There may, however, be a problem in one of the DCD (diode capacitor diode) gates here, since the value on pin DE did not always matter. We need to check this more. The easy way to generate short pulse trains of indeterminite length is to bounce the clip connected to the logic input against a grounded clip lead.
Connecting the test probes to pins CE and CH (the MA flipflop outputs), pins CK and CL had no effect. The MA flipflop involves transistors Q4 and Q6. Using a voltmeter to poke around these transistors, we found that Q4 is on and Q6 if off, and that Q4 remains on (forcing Q6 off) regardless of whether the base of Q4 is high or low (as controlled by the set and clear inputs). This makes it clear that Q4 is bad.
Q4 and most of the other transistors in the PDP-8 are DEC 3639 transistors.
The
1966
Maintenance Manual
gives the 2N3639 as an equivalent, so we ordered a batch of 10.
We also ordered replacements for the D-664 diodes that DEC used in large
quantities. DEC gives the 1N3606 as an equivalent, while
Vince Slyngstad
gives the 1N4154 as a reasonable modern substitute, so
we ordered a batch of 100.
Bug 49: We resumed work on the bad R211 board last mentioned on July 2. With a stock of DEC3639 transistors in hand, we replaced Q4, part of the memory address register flipflop. The part numbering is with reference to the 1966 schematic diagram; Q4 is right of center at the top of the parts layout worked out on June 8. It had appeared that this transistor was shorted, but the one we removed from the board tested OK with an ohm-meter, and the new replacement made no difference. Something other than a shorted transistor was pulling up the collector of that transistor.
Tracing the schematic, the other candidates for the source of the problem were the memory address output buffer transistor Q11 (an emitter follower) and the diode that parallels its emitter-base junction, D49. These part numbers are with reference to the 1965 schematic diagram; Q11 and D49 are in the upper right corner of the parts layout. The transistor-diode pair Q11-D49 is wired identically to Q10-D48, so we compared the base-emitter resistances (in both directions) of these two transistors. For Q11-D49, the resistances were 1/3 of the values we saw for Q10-D48, strongly suggesting something wrong there, so we unsoldered one leg of D49 and found that it is the troublemaker.
We replaced D49 with a new 1N4153 diode, an approximate replacement for
the DEC D664 diode. Having done so, the board worked when powered up in
our test fixture. The next step is to put it in the PDP-8 and see how the
memory address register works as a whole.
Bug 48: As reported on Feb. 16 the Teletype chatters continuously when turned on. Clearly, something is wrong, but what, and how do you go about debugging it?
On closer inspection, it is apparent that two key clutches are not engaging with their dogs that disengage them, the receive clutch and the transmit clutch. These stop levers both include adjustment points, so the first order of business is to adjust them properly. This creates Bug 52, adjust the Teletype.
We set out to do this systematically, working from the keyboard to the print mechanism. The first step on this path involves a lever called the universal lever that is pressed down when you press any key. Pressing the universal lever twists an H-plate, that turns a crank that pulls a link that lifts a dog that releases the clutch that turns a commutator at the back of the machine that converts one character from parallel to serial form. It would seem that Rube Goldberg has been hard at work here.
In any case, deep in the machine behind the keyboard is a screw you can loosen that allows you to work on a series of pry points to move the pivot point of the crank that converts the twisting of the H-plate to a pull on the link, and by carefully adjusting this, we were able to make the transmit clutch disengage for exactly one revolution whenever you press a key on the keyboard. It stays disengaged if you press the repeat key while holding another key down.
While working on this, we noticed that the paper-tape reader was always advancing when the machine was turned on, and in fact, it was always under power when the machine was plugged in, even when the power switch was in the off position. This is odd, so we reverse engineered the wiring of that particular circuit. The power supply for this circuit is the one we installed as part of dealing with Bug 38.
Adjustment |
---|
As with many other adjustments on the Teletype, there was a screw to loosen and then a set of pry points that could move the adjustable part in or out until the mechanism worked. The photo shows a socket wrench on the adjusting screw. You can see the pry-points just right of the wrench under the height-adjusting screw.
After adjustment, the paper-tape reader
only advances when the latch is pushed down. Unfortunately, the solenoid
that is supposed unlatch the reader does not seem to be receiving power when
the tape reader is supposed to be on, so we have more work to do here.
Missing felt and replacement |
---|
It looks like there should be some felt washers and a solid washer on the
outboard end of this shaft, retained by an
e-clip.
The inboard side of the shaft has a stack of felt washers that it seems could
be balanced by similar washers on the outboard end.
We found an e-clip among the debris in the teletype when we cleaned it,
and this fit, but it is a long way out from the sensing levers, so
I fabricated new felt washers by punching
out circles of felt from an old felt hat.
I soaked the hat in hot soapy water for an hour to remove sweat and skin
oils, and then in clean water for another hour to remove the soap.
Agitating felt while washing it tends to convert the felt to loose lint, so I
avoided agitation.
Freshly sharpened
cork borers
work quite well for punching felt, working against a softwood block.
Assembled result |
---|
Sample punched tape |
---|
Bug 48: The photo at left shows a chunk of tape. The tape is oriented as seen from the top front as the tape emerges from the Teletype's punch, so the first character that was punched is at the bottom and the last is at the top. Note that our Teletype keyboard is set to transmit mark parity. That is why the rightmost column of bits is always one for data originating from the keyboard.
The trailing NULs appear in the tape shown in the photo as rows in which nothing is punched except the sprocket hole (the smaller hole in the 4th column from the left). Because the mark bit is not set in these NULs, they do not originate from the keyboard; rather, they appear to be injected by the transmitter distributor mechanism in the Teletype. We speculate that the TD clutch trip lever is sticking so that it sometimes takes more than one revolution of the TD clutch for it to re-engage with the clutch latch lever to release that clutch.
The following character sequence is a useful diagnostic. This is the sequence that was used to punch the tape shown in the photo.
Character | Binary | Should punch as | Sometimes punches | |
---|---|---|---|---|
@ | 11000000 | o OO | o OO | |
SP | 10100000 | o O O | o OOO | |
CTRL P | 10010000 | o O O | o OO O | |
CTRL H | 10001000 | oO O | oOO O | |
CTRL D | 10000100 | Oo O | OoO O | |
CTRL B | 10000010 | O o O | OOo O | |
CTRL A | 10000001 | O o O | OO o O |
The asynchronous serial data stream is transmitted least significant bit first,
and with the tape oriented as shown,
the least significant bit is punched in the leftmost column.
Note that not only is the expected hole punched on the tape, but in many cases,
the hole immediately to the right of it is punched. The extra hole corresponds
to the immediately following bit in the order of transmission.
This indicates that either the selector clutch
trip mechanism is being tripped early, so that each bit is sampled too soon and
as a result, the one-bits are seen twice,
or it indicates that the one-bits are being stretched,
perhaps in the receive electronics or perhaps by a weak return spring on the
selector magnet armature.
The range finder |
---|
This document makes clear that adjusting the range finder to 60 makes it sample the center of each bit time, so that is the default position. Other positions are needed only if a long transmission line causes significant signal distortion. We set the range finder to 60, as shown in the photo, and then repeated the test sequence we had used on Jul. 19.
Sample punched tape |
---|
With the correct binary data traveling from the keyboard to the tape punch, we know that the correct data is also on the codebars (the horizontal data bus that goes under the carriage), and therefore, we can begin to do final adjustment on the decoding mechanisms.
The decoding mechanisms for control characters are all under the codebars, while the print mechanism itself operates from the top side of the codebars.
While inspecting the range-finder, we noticed a problem.
With reference to Figure 16 on page 17 of Section 574-122-800 of
Teletype Bulletin 1184B,
the Parts List for Model 32 and 33, and the actual parts list on
page 44,
we found that the part listed as
"bracket 180959" is floating free, without its attachment hardware,
"181240 screw w/lockwasher 6-40" and "180958 nut 6-40 lug".
This bracket is actually more of a comb, with teeth that stick down between the
codebars (the main mechanical data bus of the Teletype) to hold their left
ends in alignment. The mechanism works with this bracket floating, supported
by the codebars themselves, but it ought to be attached. This creates
Bug 54.
The bracket |
---|
The nut is not a standard nut, but rather, sheet-metal stamping with its central hole threaded to take a 6-40 screw. The stamping is shaped like a washer with a long prong on one side. This prong hangs down into a slot in a folded tab on the rear of the bracket, so that tightening the screw clamps the bracket to the bar against which it sits.
Installing the nut and screw was very difficult. It might be easy to do with
the carriage and its rails removed, but that would require redoing a number of
adjustments. Instead, I ended up removing the vertical bar that provides half
of the support for the platten and also supports the rear of the paper-tape
punch and steadies the outboard extension of the rocker shaft that drives
the punch. With this post removed, I could just work my fingers in behind
the horizontal bar to which the bracket clamps to hold the nut in place
while tightening the screw.
The lobe plate |
---|
Elsewhere, there is mention that if the carriage return function is operated while the dashpot orifice is fully open, there is a risk of breaking the lobe plate. Feeling under the left end of the carriage, I could identify the lobe plate and feel the broken surface where the projection had been attached.
Without a broken lobe plate,
the first time the Teletype does a carriage return,
the carriage return arm will latch in position, releasing the spacing pawls
from the ratchet on the spacing drum.
This disables all spacing and can only be reset by using a finger to unlatch
the lever. This explains why the spacing and carriage return functions have
not been working.
New and old plates |
---|
Installed, top and bottom views |
---|
The bolt that holds the lobe plate also holds two of the ball bearings that guide the front of the carriage, so replacing the lobe plate will leave the carriage a bit loose. The bearings ride on eccentrics turned on the top end of this bolt, so before fully tightening the nut holding the lobe plate, you must rotate the bolt to the point where there is no slop when you wiggle the carriage, yet the carriage still rides freely on the rail. See the photos for details.
Finally, before trying the carriage-return function, adjust the dash pot inward so that the carriage-return does not smash the lobe plate against the carriage-return unlatch lever. Then work the carriage-return mechanism by hand several times to check by how much the lobe plate misses the unlatch lever, and adjust the dash pot until it unlatches reliably on any carriage return without bottoming out on the travel of the unlatch lever. (see the diagram on the hand-numbered page 46 in the Teletype Model 33 and 32 Training Manual B-52, General Telephone Co. of Ohio, undated.
Having made this repair, our Teletype still cannot do a carriage return.
Further investigation showed that neither the carriage-return actuating
lever nor the space-function lever were engaging properly with their
respective linkages, and the carriage-return function lever is not
properly engaged with the carriage-return function pawl.
See hand-numbered pages 45 and 46 of the above for how these levers
should engage.)
This creates Bug 56.
As found | Partly fixed |
---|
We discovered the problem by experimenting with carriage returns. When the mechanism received a CR, a - (dash) printed. The binary code for CR is 10001101, while the binary code for dash is 10101101. These differ in just one bit. After investigating in more detail, we found that the print suppression codebar was rising for CR, while it stayed latched down for LF. It turns out that the print suppression codebar is latched down when any control-character function lever rises, indicating that that control character is being decoded. When we investigated the CR function lever, we quickly found that it was being held rigidly, unable to perform any decoding function, and on further investigation, we found that the rear end of the CR function lever was not engaged in its slot (see left photo).
The right photo shows the result of our re-arranging the rear ends of these
levers. Now, when a CR is received, the space suppression codebar latches
in the down position, so we know that the CR function lever is decoding the
CR code. Unfortunately, the CR actuating lever does not actuate, so things
are not yet correctly arranged.
Typing test |
---|
Bug 48:
Here is what we typed, and what was printed:
Typed: THIS IS A TEST OF THE TYPPPEWRITER CR, LF, LF
Printed: UNUS US A UESU NG UGE WU]OOEWSIWES CR, LF, LF
Typed: ABCCDEFGHIJKLMNOPQRSTUVWXYZZ CR, LF, LF
Printed: ACCCEEGGMMKKCCOOQQSSUUWW]]^^ CR, LF, LF
Typed: 012345677789 CR, LF, LF
Printed: 1133557777=> CR, LF, LF
A tremendous amount of the mechanism works, including space, carriage-return
and linefeed, but it does many misprints. The vast majority of the misprints
involve substituting the next consecutive code for the code typed. That is,
type a D and you get an E. Since this happens with every
other letter, it may be that the least significant bit of the ASCII code,
as decoded by the print mechanism, is stuck at one. Also, we had problems
with some keys sticking, transmitting multiple repeats after a single keypress.
We need to do more diagnostics to see if the stuck bit is in the keyboard or
the print mechanism.
Screwdriver path | Typing tests |
---|
Adjusting the rail height was not easy. There are pry points, but the range of adjustment required is .015 inches initially, and then .010 inches in the final step, and we were unable to move the rail up or down with that precision. As a result, we were reduced to a long sequence of random up and down moves, measuring the consequences of each move until one of them, by accident, put the rail within the acceptable range.
Having adjusted the rail height, we also had to adjust the position of the carriage stop plate, the right side guideplate reset, and the print trip lever release. These adjustments cleared up the "stuck bit" problem described on Sept. 13. The problem was that the guide-plate reset was not allowing stop-slide number 1 to reset; that is the rearmost stop slide, the one that reads the least significant bit and translates it to the degree of type-wheel rotation.
Bug 48:
Having completed these adjustments, we tested the Teletype and got the results
shown in the right photo. This is the first time we've successfully gotten the
teletype to print coherent readable text. The keyboard stutters, causing some
keypresses to print multiple copies, and some letters print incorrectly,
but this is a big step forward.
Bug 52: Somehow, during earlier reassembly, the function levers for carriage return, bell and ENQ all came loose from their slots. We got them all back into place, only to discover that doing so had caused the space function lever to come loose from its pivot. Fixing that disengaged several function levers from their slots, so we had to go back and fix that.
When we tested the machine, we found that it was stuttering continuously, trying to print null characters. Inspection while it did this showed that the distributer clutch was disengaged, so the keyboard was not sending, and the selector clutch was also disengaged, so no data was being received. The problem turned out to be the function clutch. The release pawl of this clutch was out of adjustment.
Bug 48:
After adjusting this, here is what we typed, and what was printed:
Typed: ABCDEFGHIJKLMNOPQRSTUVWXYZ CR, LF
Printed: ABCDEFGHIJKLMNOPQRSTUVWXYZ CR, LF
Typed: ABCDEFGHIJKLMNOPQRSTUVWXYZ CR, LF
Printed: ABCDEFGHIJKLMNOPQRSTUV←XYZ CR, LF
Typed: WWWWWWWWWWW CR, LF
Printed: WWW←W←←WWW← CR, LF
Typed: 0123456789 CR, LF
Printed: 0123456789 CR, LF
The most obvious problem is that W occasionally misprints as ←. Note, this is an early teletype where the codes now used for the ASCII symbols | and _ are printed as ↑ and ←. The layout of the type drum is given in Figure 9 of page 22 of Section 574-122-100TC in Bulletin 310B Vol. 1 from Teletype Corporation, Issue 3, Sept. 1971.
Bug 58: From this, the misprint of W can be diagnosed as being caused by rotating the typewheel counterclockwise when it should have rotated clockwise. The W and left-arrow are the characters at the most extreme rotations of the typewheel when it is lifted to its highest position. Bit number 4 (the least significant bit is bit 1) determines counterclockwise versus clockwise rotation. A one in this position (marking) causes counterclockwise rotation, while zero causes clockwise rotation. We need to investigate whether the number 4 codebar or some of the linkages are sticking, or whether the number 4 linkage needs adjustment.
There are other more subtle problems. The letters F, N and V, as well as the
letter 6 all print with horizontal misalignment. The F, V and 6 are all
displaced slightly to the left, while the N is displaced to the right. Again,
looking at the layout of the typewheel, the left and right displacements
depend on whether the typewheel was rotated clockwise or counterclockwise to
print that character, and all of the displaced characters are in the same
columns of the printwheel, the columns corresponding to the least significant
bits of the character code being 110.
Measuring the tension |
---|
Bug 52: Using a scope to measure the current through the selector magnet (taking the voltage across one of the series resistors as a proxy for current), we verified that all of the bits from the keyboard are arriving at the magnet. Visual inspection of the mechanism showed that the push-linkages that engage the selector magnet armature, one per bit, were not receiving the data correctly, but that what they received was correctly translated to the code bars. This suggests that the selector magnet itself is out of adjustment.
Reading the manual, we found that the most obvious thing to adjust is the tension spring on the selector magnet armature. I cobbled together a spring scale, calibrated it using a high-end postal scale, and then used it to measure the tension on the armature, following the instructions on page 26, Section 574-122-700TC of the Technical Manual (typing unit adjustments). The photo shows how the scale is held to make the measurements, with a long wire link snaking deep into the mechanism to pull on the selector magnet armature.
Actually measuring the tension was difficult because the total range of motion of the selector magnet armature is small, perhaps under a millimeter, and it is hard to look at the scale at the same time you are looking at the armature. However, we discovered that if you tickle the exposed left side of the armature with a fingernail while pulling on the scale, you can't feel the vibration in the scale when the armature is resting on its stop, but as soon as it pulls in, you can feel it. Using this method, we found that the tension was about half the 3 to 3.5 oz tension specified in the older edition of the manual. The newer edition cited on-line allows a wider range of 2.25 to 4.75 oz. Unfortunately, our adjustment made no difference in the symptoms.
Bugs 25 and 26:
While testing the Teletype, we noticed that the ribbon advance mechanism
was not advancing once it approached the end of the ribbon, so using our
new spring scale, we checked the force required to turn the ribbon. It was
too high.
Page 64, Section 574-122-700TC of the
Technical Manual (typing unit adjustments)
says that the force required to start the wheel turning should be from
1.5 to 3.5 ounces, and we measured something closer to 5 or 6 ounces.
Disassembling the ribbon carrier, we found that the plastic-on-zinc friction
surfaces were caked with thick black goo (a mixture of ribbon ink and oil?)
so we cleaned everything and oiled it following the instructions on page 17 of
Section 574-122-122TC in Bulletin 310B Vol. 1.
This brought the force required into the acceptable range.
The selector armature |
---|
The above-cited manual page indicates that the armature must be positioned within a 0.002 inch tolerance, and the slight play we could feel at the bottom of the armature might have been about this big. Therefore, we loosened the mounting screw, shifted the armature bracket all the way forward (the wrong direction), cleaned the reference surface, and then shifted the armature back to firmly rest the armature bracket against the reference surface.
When we completed this adjustment, the typing unit worked much better, but the character decoding was incorrect at the left end of the carriage. Redoing the adjustments made on Sept 27 solved this problem. These adjustments are described on page 54 of Section 574-122-700TC of the Technical Manual (typing unit adjustments). We found that it is best to completely ignore the pry points for adjusting the rear carriage rail. Instead, we found the following carriage rail height adjustment procedure works well:
Grasp the carriage rail with between your right thumb and index finger, with your fingertips on the frame behind the rail. Slowly loosen the screw on the side you are adjusting while applying very gentle pressure on the rail to urge it to move. As soon as you feel it move the slightest amount, tighten the screw. This usually moves the rail undeer 0.005" in the right direction.
Test results |
---|
Shimmed selector armature |
---|
Continuing to experiment with the mechanism we discovered that the random dropouts we were seeing in the printing was due to the hammer not releasing to strike the print cylinder. There are two catches that stop the hammer from striking the page. The first is the print hammer trip lever; this lever should release on each cycle of the mechanism, regardless of whether a printing character is received. The second is the print suppression latch lever that catches the print hammer to suppress printing for space and control characters. Because printing takes just 1/10 of a character, it was impossible to see which of these levers was failing to release.
We found that we could distinguish them by gently pressing the tip of a probe against the top of the print hammer. If the print hammer trip lever releases but the print suppress lever does not, the hammer moves a short distance and the probe is thrown off of the top of the print hammer. If the print hammer trip lever does not release, the hammer does not move at all, and the probe stays in place. This allowed us to definitively conclude that the print hammer trip lever was not releasing reliably, so we redid the adjustments shown on the top of page 58, Section 574-122-700TC of the Technical Manual (typing unit adjustments).
Finally, because the typing unit had been removed and replaced several times, and because we suspected that the occasional doubled letters were caused by poor adjustment of the distributor clutch release pawl, we redid the distributor trip link adjustment documented on page 19 of Section 574-121-700TC of the Technical Manual (keyboard adjustments).
Test results |
---|
Then we replaced the bell, and it always rings with every print action. This creates bug 57. There are two bell decoding mechanisms, one for the control G character, and one for the right margin. The two decoding mechanisms are operated by adjacent function levers, so we tried pressing down with a probe on each function lever while typing. Gentle downward pressure on the right-margin function lever was sufficient to silence the bell for all characters but control G. This means that the problem is in the right margin mechanism.
Closer examination showed that there is a notch in the bottom of the automatic codebar -- the code bar that moves slightly to the right when the carriage reaches the right margin. This codebar enables two functions, space suppression and the end-of-line bell. It was just possible to look down between the codebars and see that the notch in the bottom side of the automatic codebar is always over the end-of-line bell function lever. This suggests that we need to adjust the margin bell bellcrank clearance, as documented on page 105 of Section 574-122-700TC of the Technical Manual (typing unit adjustments). We tried, but we do not have a TP180993 bending tool, and we could not figure out how to bend the bellcrank using the tools we have on hand.
End of line bell linkage |
---|
The photo at left shows the right end of the code-bar assembly and above it, the rear carriage rail. The little tooth sticking up above the rail is pressed down by the carriage as it moves to the right, pushing down on the top arm of the bell crank. The lower arm of the bell crank is the curved and bent piece extending down and then out from under the rail. When the tooth is pressed down, the crank pushes rightward on the tab that reaches up from the automatic codebar. This is supposed to move a slot in the bottom side of the automatic codebar that allows the end-of-line bell function lever to rise.
I was successful in making the adjustment, but this failed to cure the problem with the bell always ringing. On further investigation, I looked at the tooth on the end-of-line bell function lever that is supposed to be blocked by the automatic codebar except when that bar is shifted to the right. That tooth is too far forward and never strikes the bottom of the automatic codebar. Looking even more carefully, I noticed that the automatic codebar is mounted too far to the rear. There is a vacant slot in the codebar frame between where the automatic codebar currently sits and the print-suppress codebar. Mounting the automatic codebar there will make everything engage correctly.
Presumably, this problem was created by incorrect reassembly of the Teletype after it was disassembled in 2014. Examination of the photos taken on April 20, 2014 show the automatic codebar in the correct slot in its mounting frame, but it appears to be in the wrong slot in the photos taken on March 12, 2014.
Unfortunately, it appears that re-mounting the automatic codebar in the correct
slot will require significant dissassembly of the typing unit, so that job
will have to wait for another day. Perhaps we should use the 74HC00 nand
gate instead of the 4011; the data sheet suggests that this is a much faster
chip.