Richard Altwasser is a British engineer responsible for the hardware design of the ZX Spectrum. After graduating from Trinity College, Cambridge with an engineering degree in 1978, he was hired by Sinclair Research in 1980. First tasked with writing programs for the ZX80, he worked on the circuit board used in the ZX81, and was later promoted to the team working on the ZX Spectrum, where his main contribution was the development of the Spectrum’s colour graphics architecture.
After the Spectrum’s launch, Richard left Spectrum to start his own computer company, with Sinclair co-worker Steve Vickers. Originally called Rainbow Computing, it was later named Jupiter Cantab, which launched only one major product, a home computer called the Jupiter Ace. However the Ace was not successful, and the company went bankrupt in 1983. Richard subsequently went to work for Amstrad, overseeing its acquisition of Sinclair’s computing line, until 1991.
Thanks for taking the time to answer some questions for Paleotronic about the ZX Spectrum and in particular the development of the machine’s display and video. Does it surprise you that people are still so keenly interested in even the smallest details of the Spectrum after so many years?
The ZX Spectrum was a great success, especially when seen in the context of the competition at the time and the pioneering nature of the market. This success is more notable when it is remembered that the BBC, with its reach into every UK home, funded by the licence holder, decided to back an inferior product that sold less than a third the quantity of the ZX Spectrum.
I have admired from a distance, but never really understood the continuing dedicated fascination of enthusiasts. The important legacy of the ZX Spectrum has been a generation of young people who gained a first experience of programming which propelled them into a career in software and computing. Only in recent years have educationalists, at least in the UK, started again to understand the importance of teaching coding.
Could you tell us a little about how you came to be working at Sinclair Research and what led up to your appointment as the lead designer on the Spectrum’s display system?
I was delighted, less than two years after graduating from a broad Cambridge Engineering Tripos and having subsequently studied for a Masters in Electronics, to be offered a job back in Cambridge, with an office that overlooked the iconic Kings College Chapel. I already owned a Tandy TRS80, and had taught an evening class in Basic and Computing. I met Clive (not yet knighted) in his offices, he showed me a ZX80, I wrote a few brief programmes during the interview, and could see the potential. I’d not previously heard of the man, his company or products, but saw an opportunity to gain experience. I served an “apprenticeship”, assisting Jim Westwood with his ZX81, before he was moved to Clive’s favourite Flat Screen TV project, a technology area about which I knew little. I then naturally inherited the task of following the ZX81.
Did the public’s perception of Sir Clive (Sinclair) and Sinclair Research’s reputation for delivering creative solutions and innovative products influence the ZX Spectrum’s creation?
Clive was fond of telling the press that he, “makes money to be able to invent, rather than invents to make money.” Whether the legend of this slightly eccentric self-taught inventor, which he consciously encouraged, helped the commercial success of the products, or the product’s success drove the personal myth, is debatable. The two were complementary and inseparable. The public wanted more and naming the ZX Spectrum’s two predecessors after the years of their launch, had created an expectation for an introduction at PC World in 1982.
The public expected a colour graphic display, an extended BASIC and an aggressive price. But Clive’s involvement in defining functionality went little beyond this. His disinterest in computing has continued to be documented more recently. However, whilst Clive gave Steve Vickers and I great freedom to define the ZX Spectrum features and functionality, he did specify that we should use a Ferranti gate array with Current Mode Logic (a little used transistor gate configuration, related to ECL). He also took a detailed interest in component cost, industrial case design, and he commissioned an artist for the cover for the instruction manual. Steve and I wrote the contents, for which we gained a national award for the “Most incomprehensible” user manual of 1982, a prize for which Clive understandably made no claim.
Home computers such as the Spectrum astounded people with video output being primary driver in that amazement. The exclamation of ‘Wow I can put something on the screen seemed a near universal magical moment for people. How conscious were you at the time of the effects your efforts were having on people?
The launch at the PC World show was a revelation for me. Sinclair Research offered prompt delivery for the first one thousand cash orders, and people surrounded the stand four deep on all sides for the first morning. When Steve and I managed a short break, climbing the wide stairway out from the exhibition hall, we followed a couple of schoolboys, unaware of our presence, who enthusiastically recounted every detail of the ZX Spectrum specification. The age at which children start programming continues to become younger, but we were surprised at the detailed understanding of these youths and rewarded by their approval.
I’ve since appreciated that learning anything new is at first a struggle, which reaches a tipping point when gratification repays the effort invested. One key to the traction gained by the ZX Spectrum in the market and on the subsequent careers and hobbies of those first users, was the speed with which someone could reach that tipping point, enter a first programme and produce results on a screen. “Hello World!” quickly became “Welcome to a career in computing.”
In the earlier Sinclair computers the ZX80 and ZX81, the Z80 CPU was almost entirely responsible for video generation and the video signal. Were these methods discounted early on in favour of farming out this functionality to TTL logic and eventually into the ULA?
Increasing the RAM memory from 1k Bytes, in the monochrome ZX81, to 16k Bytes was the minimum step needed to enable colour and graphics. To contain cost, required moving from static to dynamic RAM and reading much more video memory. Dynamic RAM also needed refreshing. It quickly became apparent that video access and memory refresh could not be handled by the CPU, but would require dedicated logic, which we implemented in a ULA. Combining memory refresh and video access allowed an important simplification to this circuitry.
When working on the Spectrum’s video system, did you consider the computers gaming potential? And was the usage of custom video and sprite generation ICs considered, as was being employed by American manufactures such as Commodore and Atari in their microcomputers?
We certainly understood that people would use the ZX Spectrum not just for learning to code, and the fact that gaming turned out to be a major application suggests that our specification allowed adequately for this. The need to meet a cost target and consequent consumer price point meant that we never gave serious thought to hardware dedicated to sprites or other complex video features.
Amazingly the Spectrum’s display file / graphics mode uses less than 7 kilobytes in RAM. Were you working towards very specific memory constraints, or was the target to use as little RAM as possible?
From memory, I believe that 16kB was the smallest DRAM configuration commercially available. The use of one byte per character pixel block for colour and attributes, and eight bytes for pixel data was suggested by three observations. Firstly, the colour resolution of the human eye is less than for luminance. Secondly, the PAL colour TV standard, recognising this difference, has a much lower chrominance than luminance bandwidth. Thirdly, the established and popular Ceefax and Oracle implementations of Teletext allowed for character level colour, with foreground, background and flashing. A desire to use the smallest possible memory, and the precedent of Teletext character level colour led directly to the adopted scheme.
The slightly latter Timex TS2068 variant of the Spectrum had several additional graphics modes, including a hires mode of 512 × 192 pixels. Were additional modes ever considered for the original ZX Spectrum?
We agreed the specification quickly, the main debates centred around prioritising new software features. I don’t recall seriously considering any additional complexity to the video scheme.
To achieve a mere 7 kilobyte memory usage your end solution stores 256 x 192 pixel data into a single bit pixel array in combination with a separate 32 x 24 colour attribute array.
Most micro computers arranged their palette in RGB order, the Spectrum’s palette is somewhat different as the colours are organised by increasing luminance. Can you comment on why this choice was made?
This probably arose from my focus on the luminance and chrominance ULA outputs, Y, U & V for which I designed a simple three channel DAC, implemented in the ULA and covered by patents GB19820011723, EP0107687 and WO8303916.
In the original 16k and 48k Spectrum, there are two crystals effecting video generation, a 14 MHz and 4.43 MHz crystal. Employing two crystal induces a continual timing variance in the relationship between pixel and the colour sub-carriers producing a noticeable interference in the video output signal known as dot crawl. What brought about the need for using two crystals, and was the dot crawl known about before the Spectrum’s release?
The dot crawl was known about before initial release and considered an artefact that would not limit sales, a judgement that I suggest proved correct. I have little confidence that the original ULA, a design choice passed to me by Clive, and aimed at a price point, had sufficient capacity or speed for the long synchronous counter that would have been needed to fully meet PAL specs. And as no ULA dynamic simulation tools were available, this could not have been tested during design. Dot crawl was later eliminated with the 128k version ULA in which the colour subcarrier was tied to the dot, line, frame and CPU frequencies by dividing from a single faster clock. Although this was after my time with Sinclair Research, it has been documented that this later 128k ULA took a short cut and generated a slightly out of spec. line frequency, a decision that we would not have had time to test in the rush to launch in 1982.
Another more noticeable artefact-ing issue in the Spectrum’s video output has become known as the ‘snow’ effect, where the display substitutes white pixels for real values. This effect appears when the ULA is attempting to read a contended memory address where a Z80 CPU access is already in progress. What was know about this possible bug at the time of design and what could have been done to avoid it?
I don’t recall this being a point of discussion at all during testing and launch, perhaps because by synchronising contended video memory transfers to the frame refresh period, available to software via a CPU interrupt, this effect could easily be avoided. As a purely hardware designer at the time, I might well have attributed this artefact to lazy software development rather than a “possible bug”.
Lastly, the final design of the Spectrum’s video resulted in the now famous attribute / colour clash, inadvertently leading to a whole graphics style associated with British Computing and Gaming in the 80s, not a bad legacy. How do reflect of that now?
I believe the design reasons for the feature you refer to are fully accounted for in answer to your questions above. Given the same circumstances I would be happy to take the same design decisions again, a position reinforced by the knowledge that the ZX Spectrum was several times more successful than its predecessor or BBC competitor, and widely used for graphical games.