Some of the most popular peripherals produced for the ZX Spectrum are introduced in the sections below. Many of the items
listed are supported by several modern emulators. Brief details of virtually every
expansion developed for the original ZX Spectrum are available from the
Sinclair Hardware Index.
Sinclair Interfaces:
Sinclair Research produced 2 official interfaces for use with the ZX Spectrum, both of which are documented below. Of these,
the ZX Interface II is the simplest, being essentially a Joystick interface and ROM cartridge slot. The ZX Interface I is much
more complex, and is discussed in more detail. Please refer to the '48K Reference'
page for additional information.
- ZX Interface I
The ZX Interface I allows up to 8 ZX Microdrives to be connected to a single ZX Spectrum, features an RS-232 port, and provides
networking facilities that allow up to 255 machines to directly communicate with each other. Sinclair BASIC includes
commands to access the features of the ZX Interface I and the ZX Microdrive. The following system variables are used in
addition to those specified for the standard machine:
Notes Address Name Contents
X1 23734 FLAGS3 Flags
X2 23735 VECTOR Address used to extend the BASIC interpreter
X10 23737 SBRT ROM paging subroutine
2 23747 BAUD Two byte number determining the baud rate
calculated as follows:
BAUD=(3500000 / (26 * baud rate)) - 2
1 23749 NTSTAT Own network station number
1 23750 IOBORD Border colour used during I/O. You can poke
any colour you want.
N2 23751 SER_FL 2 byte workspace used by RS232
N2 23753 SECTOR 2 byte workspace used by Microdrive
N2 23755 CHADD_ Temporary store for CH_ADD
1 23757 NTRESP Store for network response code
1 23758 NTDEST Beginning of network buffer contains
destination station number 0-64
1 23759 NTSRCE Source station number
X2 23760 NTNUMB Network block number 0-65535
N1 23762 NTTYPE Header type code
X1 23763 NTLEN Data block length 0-255
N1 23764 NTDCS Data block checksum
N1 23765 NTHCS Header block checksum
N2 23766 D_STR1 Start of 8 byte file specifier
2 byte drive number 1-8
N1 23768 S_STR1 Stream number 0-15 *See note.
N1 23769 L_STR1 Device type... "M", "N", "T" or "B"
N2 23770 N_STR1 Length of file name
N2 23772 D_STR2 Second 8 byte file specifier
used by MOVE and LOAD commands
N1 23782 HD_00 Start of workspace for SAVE, LOAD, VERIFY and
MERGE data type code
N2 23783 HD_0B Length of data 0-66535
N2 23785 HD_0D Start of data 0-65535
N2 23787 HD_0F Program length 0-66535
N2 23789 HD_11 Line number
1 23791 COPIES Number of copies made by SAVE
23792 Start of Microdrive MAPs or CHANS
Note: The original user manual differs slightly from this entry, specifying a range of 1-15.
The command CAT #0, 7 will put the value 0 in address 23768, as will some OPEN and MOVE commands.
- ZX Interface II - Updated
Intended to be a multi-purpose addition to the ZX Spectrum, the ZX Interface II provided two Joystick ports, and a ROM
cartridge socket that allowed games to be loaded instantly. It met these goals very well, but unfortunately was not particularly popular.
Only 10 titles were released on ROM cartridge, including many of the most popular (the Horace games, and several by Ultimate) games,
all of these were already available on cassette at around half the price. Support for the Sinclair Joystick was quite high - many games
included this alongside the significantly more popular Kempston and Cursor types. The Sinclair Joystick maps to the following keys:
- 1 - Left
- 2 - Right
- 3 - Down
- 4 - Up
- 5 - Fire
For Joystick 1, and:
- 6 - Left
- 7 - Right
- 8 - Down
- 9 - Up
- 0 - Fire
For Joystick 2.
Movement of the Joysticks can be detected from within BASIC programs by using the INKEY$ command to check for one of these keys
being 'pressed' Since only one key can be detected at a time, this is suitable only for simple programs.
Using IN 61438 (Joystick 1) and IN 63486 (Joystick 2) and the following table to determine the Joystick action is recommended:
- Bit 0 - Fire
- Bit 1 - Up
- Bit 2 - Down
- Bit 3 - Right
- Bit 4 - Left
For Joystick 1, and:
- Bit 4 - Fire
- Bit 3 - Up
- Bit 2 - Down
- Bit 1 - Right
- Bit 0 - Left
For Joystick 2.
Sinclair had hoped to produce many more titles on cartridge, including several utilities and programming languages,
but the lack of popular support for the interface saw it being withdrawn from sale within a year of release.
Printers:
Adding a printer to a ZX81 or ZX Spectrum is very easy; the most popular models simply attached to the edge connector and could be
accessed immediately using Sinclair BASIC. The most common printers are listed below, with links to additional information
where this is available. Please see the emulators page
for details of those available on your platform that include printer emulation.
- ZX Printer - Updated
The ZX Printer was released in 1981 and is compatible with the ZX80 (with ROM upgrade),
ZX81 and ZX Spectrum. It is an extremely compact 32 column printer which uses aluminium coated paper. The printed image is 'burned' onto
the surface of the paper by two metal pins which travel across the paper. A voltage is passed through these pins which causes a spark
to be produced, leaving a black dot. See the documentation section
if you need a copy of the original manual or
service guide. The ZX Printer is addressed in the same way
as the Alphacom 32 and Timex TS2040, with the following notes:
- D0 and D7 are both latched so that they remain high until the computer writes something to the printer. So even if you don't
make use of the information you've read in, you should output an instruction (with appropriate data) to reset the latches until the next
signal. These bits may be in either state on switch on, and aren't affected by the feed button.
The paper detect signal is also used internally by the printer to make sure that the styli stop off the paper. Note that if power is applied
to the stylus, the paper signal will go high even if the printer is between scans, so the stylus must be turned off before attempting
to detect the edge of the paper.
- Alphacom 32
The Alphacom 32 was one of the leading alternatives to the ZX Printer. Slightly larger than the ZX Printer, the Alphacom 32
uses thermal paper and features 32 column output as standard. Print speed is around 2 lines per second,
which is considerably faster than the ZX Printer. Replacement paper rolls are still offered for sale - try
Roltech. Specifications are as the Timex TS2040,
with a 240V adaptor being required, rather than 120V as mentioned below.
- QL-800 Printer - Updated
A 9-pin dot-matrix printer was introduced shortly after the release of the QL. Styled to match the QL in appearance, the
printer attached directly to the SER1 port on the back of the machine, and was accessible using the OPEN #[n], ser command,
followed by PRINT #[n], LIST #[n], etc. ([n] is a channel number). The technical specifications for the QL-800 printer are:
- Print Method: Impact Dot Matrix.
- Print Head: 9 pin.
- Print Mode: Various
- Standard Pica: 10 cpi
- Standard Elite: 12 cpi
- Standard Condensed: 17 cpi
- High Quality Pica: 10 cpi
- High Quality Elite Pica: 12 cpi
Multiple modes per line are permitted. Bold, Double-Strike, Double-Width, Superscript/Subscript, Proportional and Italic character
modes are also available.
- Paper Width: 4 - 10 inches.
- Paper Thickness: 0.07 - 0.1 mm.
- Power Supply:
- Input: 117V AC, 220/240V AC +/- 10%, 50/60Hz +/- 3%
- Power Consumption: 30W (self-test), 15W (standby)
4 dip switches on the back of the printer allow various settings to be adjusted, after the initialization process:
Switch No. Function On Off Default
1-1 Baud rate selection See below OFF
1-2 Baud rate selection See below OFF
1-3 Page length setting 12in 11in OFF
1-4 Character zero shape Ø 0 OFF
Switch 1-1 and 1-2 control the baud rate:
Switch 1-1 Switch 1-2 Baud Rate
OFF OFF 9600
ON OFF 4800
OFF ON 2400
ON ON 1200
The RS-232C, 25 pin serial interface connector is wired as shown below:
Pin Signal Purpose
1 FG Frame Ground
3 RXD Input Data
7 SG Signal Ground
20 DTR Busy/Ready state
On (+3 ~ +25V) = Ready
Off (-3 ~ -25V) = Busy
- Timex TS2040 - Updated
The original ZX Printer was not imported to the US directly, rather Timex distributed a branded version of the Alphacom 32
(see above). The TS2040 can be used with any of the Timex or Sinclair systems. The technical specifications of the TS2040 are:
- Paper Type: Thermal paper, black or blue print, end-of-roll indicator.
- Roll Size: 4.33in (110mm) Wide x 1.9in (48mm) Diameter x up to 25m (82 feet) Length.
- Power Supply: DVE part no. DV-2412a
- Input: 120V AC, 60Hz, 35W
- Output: 24V AC, 1.2A
A self-test mode is built-in to aid troubleshooting. This mode is accessed by pressing the [OFF] button once while
holding down the [ON/ADVANCE]. The TS2040 will repeatedly print a line of 8's and a line of 1's.
The TS2040 is wired as a z80 I/O port, selected by A2 being at low level and A7 being at high level. No other address
lines are recognised. To send information to the printer, use: OUT (FB), A - opcode D3 FB, assuming the data is in register A.
The data bits have the following meanings:
- (D2) High level means stop the motor, low means start it.
- (D7) High level applies power to the print head.
All these lines remain in the state they were last at, until new data is sent to the printer. At switch on, or after pressing
the feed button, D7 is set low; D2 is left high once feed is finished. The other data lines are not used.
To fetch information from the printer, the z80 instruction: IN A, (FB) - opcode DB FB; will put the data into the accumulator.
The following bits are used:
- (D6) Will be read as low if the printer is there, high if it is not, and is used solely to check if the printer is connected.
- (D0) This is high when the printer is ready for the next bit.
- (D7) This line is high for the start of a new line.
The TS2040 was originally introduced at a cost of $99.95.
- Seikosha GP-50s - Updated
A (relatively) expensive alternative to the Alphacom 32 and the ZX Printer, the Seikosha GP-50s provided a significantly higher quality
output as compensation. The GP-50s is a plain paper, dot matrix printer capable of producing up to 40 characters per second, across a
maximum of 46 columns. Tractor-fed paper may also be used if preferred.
The maximum paper width that can be used is 5in, and the printer came fitted with a ZX Spectrum compatible
cable/interface. Being a dot matrix design, it was significantly more noisy in use than the thermal alternatives, but the attached
'flip-over' paper cover helped reduce this somewhat during use. A manual paper-feed allows paper to be finely aligned, and the printer
is a distinctive grey/white colour.
The GP-50s originally cost £69.95 (ex. VAT)
Mass Storage Devices:
The primary storage medium for the ZX Spectrum (and earlier models) was traditional cassette tape. As programs became more
complex, and as both programmers and users became increasingly frustrated at the poor reliability and slow loading times associated
with tape, several alternatives were developed. The ZX Microdrive from Sinclair Research was widely anticipated, and sold extremely
well; the Sinclair business computer (Quantum Leap) has 2 microdrives built-in.
Various disk-drives and improved tape-based systems were also introduced - the ZX Spectrum pre-dates affordable floppy disk
drives, although these became increasingly popular options throughout the mid 1980s as prices fell. The ZX Spectrum +3 includes a 3in
disk drive as standard, as do competing models from other vendors. Please refer to the disk reference
page for details of disk-based systems.
- ZX Microdrive - Pending
- Rotronics Wafadrive
The Rotronics Wafadrive is similar in concept to the ZX Interface I and Microdrive combination, although quite different in design.
It attaches to the expansion connector of the original ZX Spectrum and is powered directly by the computer via a short ribbon cable;
although a pass-through connector is included, further expansion is limited because of this.
Two tape drives are provided, each capable of using cartridges of up to 128K in capacity (16K and 64K cartridges were also
produced), with RS-232 and Centronics ports also included. In common with the ZX Microdrives, the cartridges were actually
continuous loops of tape, rather than disks as might be suggested by their external appearance. Data is retrieved from tape by
reading it as it passes over the tape head, but the loop only runs in one direction making access times a little slower than from disk.
The whole tape must loop around if data is 'behind' the current tape position. Wafadrive and Microdrive tapes are not compatible with
each other.
The Wafadrive Operating System is copied to addresses between 23754 and 26046 when the system is connected. This can cause
some software to fail, and cannot easily be relocated without additional software or hardware. Several commercial backup utilities
allowed programs to be transferred between cassette and Wafadrive cartridge, in common with other mass storage systems.
Although relatively popular as a bulk storage device, the Wafadrive was eventually sold off very inexpensively following the collapse
of Rotronics in 1986, and very few commercial applications were available ('Spectral Writer', a word processing package, was
included with the drive). See the
documents page for a link to the Wafadrive Command Summary.
Sintech can occasionally supply wafers of various different capacities.
- Storage capacity: Up to 128K per drive (formatted).
- Transfer rate: 18K Baud.
- Tape speed: 10" per second (fast search = 15" per second).
- Timing: Formatting (timings are approximate).
- 16K: 47 seconds.
- 64K: 2 minutes 30 seconds.
- 128K: 4 minutes 42 seconds.
- Timing: Cataloguing (timings are approximate).
- 16K: Up to 8.5 seconds.
- 64K: Up to 27 seconds.
- 128K: Up to 47 seconds.
Emulation of the Rotronics Wafadrive is provided by RealSpec for MS-DOS
and Microsoft Windows systems.
- Timex TS2020 Program Recorder
The TS2020 is a simple cassette recorder, with built-in loudspeaker, tape counter, tone control and VU meter, designed for use with any of the
Timex systems introduced to North America. The technical specifications of the TS2020 are:
- Output Power: 500mw.
- Speaker: 2in (50mm).
- Impedance: 8 Ohms.
- Tape Speed: 1-7/8in (4.75cm) per second.
- Frequency Response: 200-6300Hz.
- Power Supply: The TS2020 can be powered by batteries, or an (optional) AC Adaptor.
- Input: 6V DV via 4 'AA' Batteries or 120V AC, 60Hz
The TS2020 was originally introduced at a cost of $49.95.
Miscellaneous:
The following items are more generic in nature than those listed above, and
- Joystick Interfaces
An almost incalculable number of Joystick interfaces were produced for use with the ZX Spectrum, and it would be both
impossible and unnecessary to document them in detail here. The majority can be classified into 3 general categories:
- Cursor:
Cursor joystick interfaces map joystick directions and fire buttons to the 5 (left), 6 (down),
7 (up), 8 (right) and 0 (fire) keys on the ZX Spectrum keyboard. Any game offering Cursor joystick control can
be played using these keys. Common models include those produced by Protek, AGF, etc.
- Kempston:
The Kempston joystick interface differs from the other common types in that it does not map to the ZX Spectrum
keyoard directly. Rather, it maps to a particular hardware port (31) and support must therefore be 'built-in' to the
software. Fortunately, the Kempston joystick interface was enormously popular, and support was very easy to
provide, making Kempston control a common, almost standard, feature of most games. Additional information
is available in the ports and
ZX Spectrum Reference sections. This information will be
incorporated here shortly.
- Programmable:
Programmable joystick interfaces allow joystick directions to be mapped to any key on the keyboard, usually
through software. Some models used a series of 'jumpers' to program the joystick-key relationships, although
these are relatively uncommon (AGF, etc.).
Typically, a short program is loaded that prompts for a joystick direction and corresponding key to be chosen.
The program then exits, and a game is loaded. Choosing the 'keyboard' option will allow the joystick to be used
instead, meaning that virtually any title can be easily controlled. Common models include those by DK'Tronics, AGF, etc.
- Multiface 1 / 128 / +3 - Updated
Developed by Romantic Robot, the Multiface Interface(s) connect to the edge connector of the ZX Spectrum, and provide a
wide range of additional features, including a Kempston-compatible Joystick connector. Several different models were
produced for use with different systems, as indicated by their names.
The Multiface requires no system memory; it has 8K EPROM and 8K RAM available on-board (Multiface 1 has 2K RAM only),
and needs no software to operate. One of the most appealing features is the ability to transfer programs to Microdrive, Disk,
Wafadrive or Tape easily and quickly; saved programs can be compressed, and can be re-loaded without a Multiface being
attached. In addition, it is possible to read through the contents of memory at any time, making the Multiface popular with
games players and developers alike.
The Multiface 1 was introduced at a cost of £39.95
- Currah µSpeech - Updated
The ZX Spectrum is not noted for its audio quality, making the development of this speech synthesizer an even more remarkable
accomplishment. This device attaches to the expansion port of the ZX Spectrum and reproduces a "human" voice through
the use of allophones; essentially phonetic descriptions of words or letters. Phrases can be built up, with emphasis of 'hard' sounds
as required. A table of allophone sets is included with the µSpeech programming manual. The µSpeech can be controlled from BASIC
or machine language - several commercial games support the µSpeech (see the World of Spectrum and TZX Vault for lists)
The Currah µSpeech is simulated by several modern emulators, including
Klive, Spectaculator and
SPIN.
- Fuller Audio Box
The Fuller Audio Box used the AY-3-8912 sound chip, found in the ZX
Spectrum 128K and others, and could be attached to the edge connector of the ZX Spectrum. In addition to providing
improved sound quality, a Joystick port and additional EAR/MIC sockets were included.
Standard Atari-style joysticks could be connected to the interface, which is similar to the more popular Kempston design.
The sound board works on port numbers 63 and 95 (Port #3F is used to select registers and #5F for data), while the
joystick works on port 127 (#7F).
The unit also provides a pass-through connector to allow additional peripherals to be attached. An optional speech-chip
was available. Many emulators provide Fuller Audio Box emulation.
- Mice
Several companies produced mice for use with the ZX Spectrum, the most popular of which are quite widely
supported by modern emulators. Of those available, the AMX and Kempston models are of particular note:
- AMX Mouse:
The AMX Mouse package comprises a 3-button mouse, interface and a suite of software. The interface attaches
to the edge connector of the ZX Spectrum, and includes a parallel printer port. 3rd party application support for
the AMX mouse was quite wide, with the emphasis on art and design packages initially. The AMX Control Language
adds 28 commands to the original system, allowing mouse control to be easily incorporated within BASIC programs
as required.
- Kempston Mouse: - Updated
Although better known for their Joystick interfaces, Kempston also introduced many other devices. Their mouse
is emulated by
Spectaculator,
vbSpec,
SPIN, and others.
The 2-button mouse can be accessed from either machine code or BASIC using the following commands:
- Horizontal position: IN 64479
- Vertical postition: IN 65503
- Buttons: IN 64223 [255 = None], [254 = Left], [253 = Right], [252 = Both]
- Timex TS1016 - Updated
The TS1016 attaches to the expansion connector of the TS1000, increasing the memory size from 2K to 16K.
If attached to a TS1500, the memory increases from 16K to 32K.
The TS1016 was originally introduced at a cost of $49.95.
- Prism VTX-5000 Modem
This modem was designed to sit underneath the original ZX Spectrum, and is styled to match this system. The device attaches
to the expansion connector and is powered by a small external supply. Although impractical for modern use, the VTX-5000
was very popular with users wishing to connect to Micronet (an online service provided by British Telecom) and had the
necessary software pre-installed in memory. Alternatives included the Prestel, Dialsoft services, and a number of 'private'
BBS operated by small user groups, individuals, etc. The VTX-5000 operates at up to 1200 baud.
- Timex TS2050
Timex/Sinclair
contracted Westridge Communications to produce a modem for use with their recently introduced range of computers. Originally planned
for a November 1983 release, the modem was delayed by the departure of Timex from the home computer market. Undeterred, Westridge
continued with production and eventually released their design as the 'Westridge 2050' for the TS1000,
TS1500 and TS2068 models.
The modem is seperately powered and attaches to the expansion connecter of these machines using a pass-through connector that allows
one additional device to be attached. The technical specifications of the TS2050 are:
- Data Format: Serial, Binary, Asynchronus.
- Data Rate: 0 to 300bps, Full Duplex.
- Modulation: Frequency shift-keyed (FSK)
- Line Interface: FCC Part 68 Direct Connect.
- Transmit Frequency:
- Mark: 1270Hz (Originate) and 2225Hz (Answer)
- Space: 1070Hz (Originate) and 2025Hz (Answer)
- Transmit Frequency Accuracy: +/- 0.01%
- Transmit Level: -12 dBm typical.
- Receive Frequency:
- Mark: 2225Hz (Originate) and 1270Hz (Answer)
- Space: 2025Hz (Originate) and 1070Hz (Answer)
- Receive Frequency Tolerance: +/- 0.05%
- Carrier Detect Threshold: - 44 dBm typical
- Carrier Detect Delay: 250ms
- Power Supply: DVE part no. DV-91a
- Input: 120V AC, 60Hz, 16W
- Output: 9.75V DC, 650mA
- Centre Polarity: +ve
The TS2050 was supplied with the MTERM/T Software (developed by Micro-Systems Software) on a multi-format
cassette intended for use with the TS1000, TS1500 and TS2068 computers. Other software may be used if required.
The TS2050 was originally introduced at a cost of $199.95.
|