ZX Spectrum+ 128K

Introduction
The ZX Spectrum+ 128K was the most substantial development of the original Spectrum range carried out under Sinclair Research. It doubled the Spectrum's memory to 128K, added a much more capable sound chip, introduced a new 128K version of Sinclair BASIC and provided a number of new facilities aimed at making better use of the additional memory.
The machine was developed jointly by Sinclair Research and its Spanish distributor, Investrónica, under the project name Derby. The Spanish version was launched first, in September 1985, with the UK version following in January 1986.
There was a practical reason for launching the machine in Spain before the UK. Spain was an important market for Sinclair, but changes to Spanish regulations meant that computers sold there faced additional requirements, including support for the Spanish language. Investrónica was already closely involved with Sinclair's Spanish operations and had helped adapt the Spectrum for that market.
The Spanish launch also allowed Sinclair to introduce the new machine without immediately conflicting with existing arrangements surrounding the UK market. Much of the development work was carried out in Cambridge, while Investrónica contributed to the Spanish version and its production.
Unlike the earlier ZX Spectrum models, the 128K did not appear in the familiar rubber-key case. It used the same basic case and keyboard design as the ZX Spectrum+, but with a large external heatsink mounted on the right-hand side. This distinctive appearance soon earned the machine the nickname "Toastrack".
Design
The industrial design of the ZX Spectrum+ 128K was again the work of Rick Dickinson, who had designed the original ZX Spectrum and ZX Spectrum+.
The case is based closely on the ZX Spectrum+ design, with its full-size moulded keyboard and sloping profile. The raised ZX Spectrum+ logo remains on the case, with 128K added alongside it.
The most obvious external change is the large heatsink on the right-hand side of the case. It is attached to the power circuitry and becomes noticeably hot during operation.
The tape connections were moved from their original position to the left side of the machine. The rear of the computer gained an RGB connector for connection to a suitable colour monitor, while a combined serial and MIDI interface was provided using a telephone-style connector.
A separate numeric keypad could be connected to a socket on the front of the computer. In 128K mode this provided cursor, editing and calculator functions and complemented the new full-screen BASIC editor.
The television output remained available, but the video circuitry had been redesigned to produce a much more stable picture than that normally found on earlier Spectrum models.
Hardware
At the heart of the ZX Spectrum+ 128K is a Zilog Z80A processor running at approximately 3.55 MHz. The processor remains essentially the same as that used in earlier Spectrums, but the surrounding hardware was considerably expanded.
The machine contains 128K of RAM, arranged as eight 16K banks, together with 32K of ROM. One 16K ROM contains the original Spectrum BASIC and system software used in 48K mode, while the second contains the new 128K software.
The display remains the familiar Spectrum display of 256 by 192 pixels with colour attributes assigned to 8 by 8 pixel character cells. The additional memory does not provide a new graphics mode, but it does allow additional screen data and programs to be stored outside the normal 48K address space.
The most important hardware addition is the AY-3-8912 programmable sound generator. This provides three independent sound channels, together with noise generation and envelope facilities.
There is no longer a small internal speaker. Sound from the AY chip, and the original Spectrum's BEEP sound, is routed through the television output and can also be obtained through the appropriate audio connection.
The expansion connector remains compatible with the earlier Spectrum expansion system, although the different power-up state and additional hardware of the 128K could cause problems for some peripherals.
128K Mode
When switched on, the ZX Spectrum+ 128K starts in its new 128K mode. This mode introduced a number of changes to the way BASIC programs were entered and edited.
The familiar single-keypress keyword system of the original Spectrum is replaced by a conventional screen editor. BASIC keywords must be typed in full rather than being entered using a single key.
The editor provides cursor movement and editing facilities using the separate numeric keypad. The cursor can be moved through a program by character, word and line, while sections of a program can be viewed without repeatedly using LIST to find the required line.
BASIC still performs syntax checking as lines are entered. When an error is found, its position is indicated on the screen and the familiar question mark used by earlier Spectrums is replaced by a small bug-shaped character.
The keypad also provides calculator functions when the computer is in command mode. The 128K system therefore combines several facilities that had previously required separate software.
A text-editing facility is also provided. Strings can be edited using the screen editor, with options including insert and overtype modes, automatic indentation and word wrapping. Although this does not turn the Spectrum into a full word processor, it can be useful for preparing text, data and source material.
The original Spectrum BASIC environment is still available. Entering the SPECTRUM command switches the computer into its compatibility mode, where it behaves much more like a conventional 48K Spectrum.
Sound
The addition of the AY-3-8912 sound chip was one of the most significant improvements introduced by the 128K.
The chip provides three independent sound channels, noise generation and envelope control. This allows the computer to produce chords, melodies and considerably more sophisticated sound effects than were possible with the original Spectrum's one-bit beeper.
A new BASIC command, PLAY, was added to control the sound generator. Music is described using strings containing a series of instructions and values, allowing notes, octaves, durations and other musical properties to be specified.
The AY sound hardware also opened the way for considerably richer music and sound effects in 128K software. Existing Spectrum programs using the original BEEP command continued to work in compatibility mode, although their sound was now produced through the new audio circuitry.
128K Memory
The additional RAM could not simply be added to the Spectrum's existing 64K address space. The Z80A can address only 64K of memory at a time, so the 128K machine uses a system of memory paging to select which 16K banks of RAM are visible to the processor.
The 128K of RAM is divided into eight 16K banks. Four 16K sections make up the Z80's 64K address space at any one time. By changing the paging registers, different RAM banks can be selected and made available to the processor.
This arrangement allowed programs to keep data, additional screens, graphics, music and machine-code routines in RAM that was not currently visible in the normal 64K address space.
One of the additional controls also allows the computer to select which RAM bank is used for the display. This makes it possible for 128K software to prepare an alternative screen in memory and then switch to it.
The paging system is controlled through an I/O port at $7FFD. The port controls the currently selected RAM bank, the screen bank and other aspects of the memory configuration.
The extra memory therefore did not simply make the Spectrum a machine with a larger continuous block of RAM. Instead, software had to make deliberate use of the bank-switching system to take advantage of the additional memory.
'Silicon Disc'
Sinclair provided a simple way of using the additional memory as a Silicon Disc.
New BASIC commands including LOAD !, SAVE ! and CAT ! could be used to store programs and data in the additional RAM. The system was similar in concept to the facilities provided by the Interface 1 and Microdrive, but the Silicon Disc was entirely electronic and therefore considerably faster than a cassette or Microdrive.
The Silicon Disc was particularly useful for programs that needed to work with more data than could conveniently be kept in the normal 48K memory area. Large programs could also divide their data or machine-code routines between several memory banks.
Compatibility
Compatibility with the enormous existing library of Spectrum software was one of the most important considerations in the design of the 128K.
Rather than trying to make the original 48K software run directly alongside the new 128K facilities, Sinclair took a more straightforward approach. The SPECTRUM command switches the machine into a dedicated compatibility mode.
In this mode the computer behaves as a 48K Spectrum and the new 128K facilities are disabled. This means that the majority of existing Spectrum software can continue to run without modification.
The price of this approach is that software running in compatibility mode cannot use the additional memory, AY sound facilities or other features introduced for 128K mode.
To take advantage of the new hardware, software had to be specifically written or adapted for the 128K. This led to a new generation of games and applications that could make use of the extra memory, improved sound and alternative screen facilities.
Some early Spanish machines also had differences from the later production models, including EPROMs and timing differences which could affect certain software and tape-loading techniques. The final UK machine was refined before its release.
From the ZX Spectrum+ 128K to the +2
The ZX Spectrum+ 128K was the last Spectrum developed under Sinclair Research. Later in 1986, ownership of the Spectrum range passed to Amstrad, which introduced the ZX Spectrum +2. Based on the 128K design, the +2 brought a major change of its own: a built-in cassette recorder.