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.