Memories of the Zebra – Don Hunter
Zebra is an acronym for the Dutch words Zeer Eenvoudige Binaire Reken-Automat, which means Very Easy Binary Calculating Machine. It had a Dutch name because it was designed by WL van der Poel in the Dr Neher Laboratory of the Netherlands PTT. Standard Telephones and Cables Limited undertook the hardware design at Newport in South Wales. First deliveries were in 1958, and the company built at least 40 machines in all, of which two thirds were exported. The 600 valve machine had a power consumption of 7kw.
Zebra was similar to Pegasus but with half the number of valves. It was a serial machine with a 33-bit word and a bit rate of 128 Kcs. Main storage was on an 8K word drum with 256 tracks running at 6000 rpm, and fast access storage consisted of 12 single-word registers made by pairs of heads on the drum, all with parity checking.
The arithmetic unit had the usual double length accumulator as two more registers, while input and output were via a pair of paper tape readers, a pair of paper tape punches and a teleprinter. An example of saving on hardware where possible was the programming of the teleprinter waveforms directly: this could now be a problem when writing a simulator.
The control console included a display, a telephone dial for small input, half a dozen test switches, an efficiency meter to measure non-waiting time, keys for causing a conditional stop, and keys for locking sections of the store, all of which was available if needed. There was also a loudspeaker which clicked once for each instruction obeyed, making a musical note. At one installation used for minimising the cost of making cattle food, a practised ear could judge when convergence approached.
Ancient Greek mathematicians would have approved of the simple design, which mainly depended on two features: a fast switch for selecting tracks on the drum; and, more interestingly, the 15 function bits of an instruction.
The drum amplifier had to be able to read from any track the word following one which might have been written anywhere else. This was achieved by allowing an inter-word gap of seven bits.
The switch itself was made using transistors. The selection was so fast that a diagnostic programme could detect an open circuit head or folded addressing within two thirds of a second: even a dozen years later, the Burroughs B6700 could only do this ten times faster on a set of fixed head discs.
Function bits had natural effects. For example, two thirds of them specified how the main and register stores on the one hand were connected to the arithmetic and control units on the other hand, while two more determined the direction of transfer. Any instruction could be conditional on accumulator states (negative, clear, odd) or on the test switches, but a few of these opcodes were spare.
Although the bits acted almost independently (dreaded microcoding), one quickly learnt phrases for common operations such as subroutine calls, or setting up and testing loops. Indeed the Newsletter included useful snatches of code.
There was even a challenge, like Fermat’s Last Theorem, which held that the operation of reading or writing five successive words on the drum was impossible. As an example of the power of this architecture, the bootstrap programme was reduced from four to just two instructions without special hardware assistance.
As well as the 15 function bits, an instruction had a 13-bit store address and five bits for registers and I/O devices. A sequence of instructions using only the registers ran at full speed, but after a store-transfer instruction was executed the control usually fetched the next instruction from two locations further on. This was the best choice and helped to achieve optimum coding, though there was also scope to run at full speed entirely in the registers.
Multiplication and division were by subroutines working in exactly this way (“underwater programming”) and were as fast as serial hardware would have been, thanks to a couple of conventions which applied to one of the registers. Utility programs could also be written to run only in the registers and the locked track zero, for example to dump or re-input parts of the store in checked binary code.
Normal Code was the name of the assembler, and many a programmer could recite the bit mnemonics, known as the Dutch alphabet (AKQLRIBCDEV421W), as quickly as ABC. The manual for it was actually a printed book with hard covers. Normal code occupied the top 1K of store although, as previously mentioned, this space could be used after input.
Programs were built from subroutines on paper tape and were linked together without the user needing to know where they were stored. A trace utility, outside the 1K area, reported progress in assembly code terms under control of the test switches. Binary and source code tapes were about the same length.
But what about the waiting time for operands? Programmers sometimes had to make an effort to get a loop into a multiple of the 32 words of a drum revolution, but the efficiency meter was usually between 30% and 80%, and always at 50% for the floating point interpreter (which I shall come onto later). At one installation, management visits were anticipated by starting a program which displayed 80% efficiency!
Simple code was the unheroic name of the programming system for casual users, in which most scientific and engineering programs were written. Amazingly, it was mostly the work of a blind and deaf programmer, van der Mey, and was described by Ord-Smith in an article in APIC volume 1. It occupied 2K of store just below Normal code, and was recognisably derived from the Edsac 1 instruction set with the addition of index registers, labels, many built-in functions, a trace facility and nine digit floating point arithmetic. It is said that while van der Poel attended an Edsac programming course he was shown a cabinet containing some drawings of electron orbits made by an obsolescent analogue machine and remarked, “Ah yes, an orbituary!”.
There was also a Matrix Interpretive Scheme and an Algol compiler which translated programs to paper tape for loading and running by a separate interpreter. The Algol implementers chose a full version of the language which was capable of certifying Quicksort without the changes required by 803 Algol, and it was reported to have run Knuth’s recursion test, Man or Boy, as PDP-10 Algol managed to do on its fourth release.
Nevertheless, the loading time of the translator and interpreter made it a clumsy alternative to the load-and-go Simple code, and there were not enough usres encouraging the developers to iron out minor errors and make it reliable.
Our machine at STL was used for scientific and engineering work such as calculations on fibre optics and telephone traffic simulations. Long unattended runs of up to 48 hours were commonplace. It was maintained by monthly visits of an engineer who distributed girlie magazines to prevent interruptions to his schedule.
He used to tap the plug-in units with a policeman’s truncheon while the machine was running a test on marginal power settings with the output to the teleprinter in case of trouble, although a stop was just as likely.
Sometimes faults were hard to locate. In particular, there was one on a foreign installation where the symptoms were just that the wrong results came out of some simultaneous linear equations from time to time. It turned out to be caused by a track selection fault which, as luck would have it, affected only the data and did not cause a parity failure.
Zebra’s transistor-based successor was designed by a committee after the window of opportunity for such a machine had passed. It included 8K of ferrite core additional storage, magnetic tape units and a parallel multiplier. This had a diagnostic program capable of identifying single faults down to the component level, and it seemed as if two diodes were redundant. “It’s easier to understand and, by the way, if you throw in an extra wire you can have a divider”, the designer remarked, but forgot to mention that the result appeared from the least significant end. This meant that it would emerge in two or three word times, as for multiplication, or about a week later in bad cases.
Another thoughtful proposal, aired at a user’s meeting, was for switching off the machine after unattended night runs: it used one of the three remaining V opcode values. A voice was heard from the back asking, “Could we have one of the other two for switching it on?”.
Don Hunter was in charge of the Zebra installed at Standard Telecommunication Laboratories Limited (STL) in Harlow from 1960 to 1963. He had earlier worked on Edsac I
(published in Resurrection Winter 1994)
The magnetic drum |
The control console |
A typical circuit board |
(2MB pdf document) |
Alan Marr and Don Hunter at work on the Stantec Zebra installed at STL