Elliott 803 Diagnostic Unit
The Elliott 803 at TNMOC has had a long standing fault in its "Extra
Store". This is housed in the fourth cabinet in the row, and
provides memory locations 4096 to 8191 (a.k.a "The top half of
store"). As a "fix" to get the machine into a useable state the
extra store had been disabled by placing a shorting link acoss an input
winding of a logic core. A few weeks ago we started to invetigate
the fault and replaced the link with an easily accessible switch.
This allowed the extra store to be disabled while loading test
programmes, and the to be enabled to run the tests. This
worked well and a test programme that I wrote identified the problem
lay with "bit 23". The fault was fixed by replacing the
appropriate amplifier module with one from the spares stock.
Although the majority of the store test programmes now worked
successfully, there was one test which continued to fail with store
parity errors. All the test programmes work in a similar
way. First they write a test pattern into the store (the write
phase) and then they read it back (the read phase). The value
that is read is not tested for correctness, instead the test relies on
the store parity detection circuit to stop the machine when it detects
a read error. When this happens the contents of the accumulator
can be examined (with an oscilloscope) to determine which bit has been
picked up or dropped.
However, the failing test was stopping with a parity failure during the
write phase. This may seem odd at first, but it is possible
because every write cycle is preceeded by a read cycle. The
problem is that the value read from store during these "read before
write" read cycles is not preserved anywhere so they can't be observed
on an oscilloscope.
Once I was convinced the problem was in the write phase I set about
designnig and building a device that would capture the value read from
store and display it on a row of 48 LEDs. When the parity error
signal becomes active the device stops capturing and holds the last
read value on the LEDs.
I'm not going to go into the details of how the PIC programme works,
but it took a couple of weeks of evenings to get it working fast enough
to capture two 803 bit streams (the store output signal and the parity
error signal)
Here is the diagnostic
unit. It was actually connected up to 803 when the picture was
taken.
The small circuit board in the top right corner is the opto-isolation
circuit that electrically isolates my unit from the 803.
The 803 had just stopped with a parity error, and the top (green) row
of LEDs is showing the one bit that had been picked up. The
vaule should either have been all zeros or all ones. The bottom
(red) row of LEDs is showing the parity error signal, which comes
"up" halfway through the word as the top and bottom 20 bits are
checked in parallel.
The store amplifier that corresponds to the erroneous bit was
adjusted and the parity errors ceased!
It will only really become clear if the fault has been fixed once we
start to try and run some real programmes (like the Algol 60
compiler).
Here you can see how the diagnostic unit was setup behind the 803's
cabinets. All the connections to the 803 were made via the
engineers test pannel, and all signals were opto-isolated to remove the
risk of damage to the 803 if anything went wrong.