ZX Spectrum

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search

Taken from Wikipedia''

The ZX Spectrum (the "Z" is pronounced "Zed" in its original British English branding) is an 8-bit personal home computer released in the United Kingdom in 1982 by Sinclair Research Ltd. Referred to during development as the ZX81 Colour and ZX82, the machine was launched as the ZX Spectrum by Sinclair to highlight the machine's colour display, compared with the black-and-white of its predecessor, the Sinclair ZX81. The Spectrum was released in eight different models, ranging from the entry level model with 16KB RAM released in 1982 to the ZX Spectrum +3 with 128 KB RAM and built in floppy disk drive in 1987; together they sold in excess of 5 million units worldwide.

The Spectrum was among the first mainstream audience home computers in the UK, similar in significance to the Commodore 64 in the USA. The introduction of the ZX Spectrum led to a boom in companies producing software and hardware for the machine, some credit it as the machine which launched the UK IT industry. Licensing deals and clones followed, and earned Clive Sinclair a knighthood for "services to British industry".

The Commodore 64, BBC Microcomputer and later the Amstrad CPC range were major rivals to the Spectrum in the UK market during the early 1980s. The ZX Spectrum has enjoyed a resurgence in popularity thanks to the accessibility of ZX Spectrum emulators, allowing 1980s video game enthusiasts to enjoy classic titles without the long loading times associated with data cassettes. Over 20,000 titles have been released since the Spectrum's launch and new titles continue to be released, with over 90 new ones in 2010.

Hardware

ZX Spectrum 48K motherboard (Issue 3B — 1983, heat sink removed)

The Spectrum is based on a Zilog Z80A Central processing unit running at 3.5MHz (or NEC D780C-1 clone). The original model Spectrum has 16KB (16*1024 bytes) of ROM and either 16KB or 48KB of RAM. Hardware design was by Richard Altwasser of Sinclair Research, and the machine's outward appearance was designed by Sinclair's industrial designer Rick Dickinson.

Video output is through an RF modulator and was designed for use with contemporary portable television sets, for a simple colour graphic display. Text can be displayed using 32 columns * 24 rows of characters from the ZX Spectrum character set or from a set provided within an application, from a palette of 15 shades: seven colours at two levels of brightness each, plus black. The image resolution is 256*192 with the same colour limitations. To conserve memory, colour is stored separate from the pixel bitmap in a low resolution, 32*24 grid overlay, corresponding to the character cells. Altwasser received a patent for this design.

An "attribute" consists of a foreground and a background colour, a brightness level (normal or bright) and a flashing "flag" which, when set, causes the two colours to swap at regular intervals. Unfortunately, this scheme leads to what was dubbed colour clash or attribute clash with some bizarre effects in the animated graphics of arcade style games. This problem became a distinctive feature of the Spectrum and an in-joke among Spectrum users, as well as a point of derision by advocates of other systems. Other machines available around the same time, for example the Amstrad CPC, did not suffer from this limitation. The Commodore 64 used colour attributes in a similar way, but a special multicolour mode, hardware sprites and hardware scrolling were used to avoid attribute clash.

Sound output is through a beeper on the machine itself. This is capable of producing one channel with 10 octaves. The machine also includes an expansion bus edge connector and audio in/out ports for the connection of a cassette recorder for loading and saving programs and data.

Firmware

The machine's Sinclair BASIC interpreter is stored in ROM (along with fundamental system-routines) and was written by Steve Vickers on contract from Nine Tiles Ltd. The Spectrum's chiclet keyboard (on top of a membrane, similar to calculator keys) is marked with BASIC keywords, so that, for example, pressing "G" when in programming mode would insert the BASIC command GOTO.

The BASIC was developed from that used on the ZX81 and a ZX81 BASIC program can be typed into a Spectrum largely unmodified, but Spectrum BASIC included many extra features making it easier to use. The ZX Spectrum character set was expanded from that of the ZX81, which did not feature lower-case letters. Spectrum BASIC included extra keywords for the more advanced display and sound, and also supported multi-statement lines. The cassette interface was also much more advanced, saving and loading around four times faster than the ZX81, and much more reliably. As well as being able to save programs, the Spectrum could in addition save the contents of arrays, the contents of the screen memory, and the contents of any defined range of memory addresses.

Sinclair Research models

ZX Spectrum 16K/48K (Dimensions (mm): 233*144*30 (W*H*D) @ ~552 grams)
ZX Spectrum+ (Dimensions (mm): 319?149?38 (W?H?D))
ZX Spectrum 128


Pre-production designs

Rick Dickinson came up with a number of designs for the "ZX82" project before the final ZX Spectrum design. A number of the keyboard legends changed during the design phase including ARC becoming CIRCLE, FORE becoming INK and BACK becoming PAPER.

ZX Spectrum 16K/48K

The original ZX Spectrum is remembered for its Chiclet keyboard, diminutive size and distinctive rainbow motif. It was originally released in 1982 with 16KB of RAM for £125 or with 48 KB for £175; these prices were later reduced to £99 and £129 respectively. Owners of the 16 KB model could purchase an internal 32 KB RAM upgrade, which for early "Issue 1" machines consisted of a daughterboard. Later issue machines required the fitting of 8 Dynamic dynamic RAM chips and a few TTL chips. Users could mail their 16K Spectrums to Sinclair to be upgraded to 48 KB versions. To reduce the price, the 32 KB extension used eight faulty 64Kb chips with only one half of their capacity working and/or available. Links on the PCB were configured accordingly so as to place these faulty memory locations in the other (unused) half of each IC. External 32 KB RAM packs that mounted in the rear expansion slot were also available from third parties. Both machines had 16 KB of onboard ROM.

About 60,000 "Issue 1" ZX Spectrums were manufactured; they can be distinguished from later models by the colour of the keys (light grey for Issue 1, blue-grey for later models).

ZX Spectrum+

Planning of the ZX Spectrum+ started in June 1984, and the machine was released in October the same year. This 48 KB Spectrum (development code-name TB) introduced a new Sinclair QL-style case with an injection-moulded keyboard and a reset button. Electronically, it was identical to the previous 48 KB model. It retailed for £179.95. A DIY conversion-kit for older machines was also available. Early on, the machine outsold the rubber-key model 2:1; however, some retailers reported a failure rate of up to 30%, compared with a more usual 5-6%.

ZX Spectrum 128

Sinclair developed the ZX Spectrum 128 (code-named Derby) in conjunction with their Spanish distributor Investronica. Investronica had helped adapt the ZX Spectrum+ to the Spanish market after the Spanish government introduced a special tax on all computers with 64KB RAM or less, and a law which obliged all computers sold in Spain to support the Spanish alphabet (such as n-tilde) and show messages in Spanish.

New features included 128KB RAM, three-channel audio via the AY-3-8912 chip, MIDI compatibility, an RS-232 serial port, an RGB monitor port, 32KB of ROM including an improved BASIC editor, and an external keypad.

The machine was simultaneously presented for the first time and launched in September 1985 at the SIMO '85 trade show in Spain, with a price of 44,250 pesetas. Because of the large number of unsold Spectrum+ models, Sinclair decided not to start selling in the UK until January 1986 at a price of £179.95. No external keypad was available for the UK release, although the ROM routines to use it and the port itself, which was hastily renamed "AUX", remained.

The Z80 processor used in the Spectrum has a 16-bit address bus, which means only 64KB of memory can be directly addressed. To facilitate the extra 80KB of RAM the designers used bank switching so that the new memory would be available as eight pages of 16KB at the top of the address space. The same technique was also used to page between the new 16KB editor ROM and the original 16KB BASIC ROM at the bottom of the address space.

The new sound chip and MIDI out abilities were exposed to the BASIC programming language with the command PLAY and a new command SPECTRUM was added to switch the machine into 48K mode, keeping the current BASIC program intact (although there is no way to switch back to 128K mode). To enable BASIC programmers to access the additional memory, a RAM disk was created where files could be stored in the additional 80KB of RAM. The new commands took the place of two existing user-defined-character spaces causing compatibility problems with some BASIC programs.

The Spanish version had the "128K" logo in white while the English one had the same logo in red.

Amstrad models

ZX Spectrum +2

ZX Spectrum +2

The ZX Spectrum +2 was Amstrad's first Spectrum, coming shortly after their purchase of the Spectrum range and "Sinclair" brand in 1986. The machine featured an all-new grey case featuring a spring-loaded keyboard, dual joystick ports, and a built-in cassette recorder dubbed the "Datacorder" (like the Amstrad CPC 464), but was in most respects identical to the ZX Spectrum 128. The main menu screen lacked the Spectrum 128's "Tape Test" option, and the ROM was altered to account for a new 1986 Amstrad copyright message. These changes resulted in minor incompatibility problems with software that accessed ROM routines at certain addresses. Production costs had been reduced and the retail price dropped to £139–£149.

The new keyboard did not include the BASIC keyword markings that were found on earlier Spectrums, except for the keywords LOAD, CODE and RUN which were useful for loading software. This was not a major issue however, as the +2 boasted a menu system, almost identical to the ZX Spectrum 128, where one could switch between 48k BASIC programming with the keywords, and 128k BASIC programming in which all words (keywords and otherwise) must be typed out in full (although the keywords are still stored internally as one character each). Despite these changes, the layout remained identical to that of the 128.

The ZX Spectrum +2 power supply was a grey version of the ZX Spectrum+ and 128 power supply.

ZX Spectrum +2A

ZX Spectrum +2A

The ZX Spectrum +2A was a variant of the Spectrum +3 housed a black version of the Spectrum +2 case mouldings. The Spectrum +2A/+3 motherboard (AMSTRAD part number Z70830) was designed such that it could be assembled without the floppy disk controller or associated logic and a +2 style "datacorder" connected. Originally, Amstrad planned to introduce an additional disk interface for the +2A/+2B called the AMSTRAD SI-1, however this never appeared. If an external disk drive was added, the "+2A" on the system OS menu would change to a +3.

The power supply of the ZX Spectrum +2A used the same pinout as the +3. However, the power supply purchased with the +2A/B had "Sinclair +2" written on the case.

ZX Spectrum +3

ZX Spectrum +3

The ZX Spectrum +3 looked similar to the +2 but featured a built-in 3-inch floppy disk drive (like the Amstrad CPC 6128) instead of the tape drive, and was in a black case. It was launched in 1987, initially retailed for £249 and then later £199 and was the only Spectrum capable of running the CP/M operating system without additional hardware.

The +3 saw the addition of two more 16 kB ROMs. One was home to the second part of the reorganised 128 ROM and the other hosted the +3's disk operating system. This was a modified version of Amstrad's PCWDOS (the disk access code used in LocoScript), called +3DOS. These two new 16 kB ROMs and the original two 16 kB ROMs were now physically implemented together as two 32 kB chips. To be able to run CP/M, which requires RAM at the bottom of the address space, the bank-switching was further improved, allowing the ROM to be paged out for another 16 kB of RAM.

Such core changes brought incompatibilities:

  • Removal of several lines on the expansion bus edge connector (video, power, and IORQGE); caused many external devices problems; some such as the VTX5000 modem could be used via the "FixIt" device.
  • Dividing ROMCS into 2 lines, to disable both ROMs
  • Reading a non-existent I/O port no longer returned the last attribute; caused some games such as Arkanoid to be unplayable
  • Memory timing changes; some of the RAM banks were now contended causing high-speed colour-changing effects to fail
  • The keypad scanning routines from the ROM were removed
  • move 1 byte address in ROM

Some older 48K and a few older 128K games were incompatible with the machine. The ZX Interface 1 was incompatible due to differences in ROM and expansion connector; therefore it was not possible to connect and use the Microdrive units.

The ZX Spectrum +3 power supply provides the same voltages as the one supplied with +2A/B. This power supply has the same DIN connector so can also be used with the +2A/B. However, the power supply purchased with the +3 had "Sinclair +3" written on the case.

Production of the +3 ceased in December 1990, believed to be in response for Amstrad relaunching their CPC range. At the time, it was estimated about 15% of ZX Spectrums sold had been +3 models. Production of the +2B (the only other model then still in production) continued, as it was believed not to be in competition with other computers in Amstrad's product range.

ZX Spectrum +2B and +3B

The ZX Spectrum +2B and ZX Spectrum +3B were functionally similar in design to the Spectrum +2A and +3. The main electronic differences being simply changes to the generation of the audio output signal to resolve problems with clipping and the removal of the external tape loading input ("ear" pin).

Unlike the +2A the Spectrum +2B motherboard (AMSTRAD part number Z70833) does not have provision for floppy disk controller circuitry so cannot be assembled as a +3B. The +3B motherboard is Amstrad part number Z70835.

Notes

  • From and Amstrad CPC user's point of view the ZX Spectrum is well known for being the source of Speccy Ports.
  • The Spectrum +2 case design is comparable to the CPC464's case design because of the internal datacorder. The Spectrum +3 design shares some similarities with the CPC6128, the case design is similar with it's internal 3" disc drive, and the disc controller is the same as the CPC6128's. The CPC464 and CPC6128 came before these Spectrum's, so it is clear Amstrad used those as inspirations to update the Spectrum design.

Links