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 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 simpler, 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
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 was not particularly popular.
The joystick interface itself was largely a success, with many games including support for the 'Sinclair' joystick types. Technical details on the joystick are available in the Joystick Interfaces section.
On the other hand, the ROM cartridge socket was not successful: only 10 titles were released on ROM cartridge, and as many of the most popular games (the Horace series, and several by Ultimate) were already available on cassette at around half the price, no market was ever developed. 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.
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
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
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:
Multiple modes per line are permitted. Bold, Double-Strike, Double-Width, Superscript/Subscript, Proportional and Italic character
modes are also available.
- 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
4 dip switches on the back of the printer allow various settings to be adjusted, after the initialization process:
- 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)
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
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:
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.
- 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
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:
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.
- (D2) High level means stop the motor, low means start it.
- (D7) High level applies power to the print head.
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:
The TS2040 was originally introduced at a cost of $99.95.
- (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.
- Seikosha GP-50s
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 QL (and ICL One-Per-Desk variant) 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
The ZX Microdrive was a tape cartridge system, announced in April 1982 and launched in June 1983, although
development on the system may have begun as far back as 1981.
Used in conjunction with the ZX Interface I to provide
a faster alternative to cassette tape, Microdrive cartridges contained 6 metres of 1.9mm magnetic tape
stored in an endless loop configuration offering 85KB of storage, which could be accessed at speeds of around
15KB/sec. Up to 8 Microdrives could be connected to a ZX Spectrum via the ZX Interface I. Later
improvements to the Microdrive format would allow the QL to use around 100KB per cartridge, but the two
formats were incompatible with each other.
» ZX Microdrive [nvg.ntnu.no]
» Microdrive Development [nvg.ntnu.no]
- 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
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:
The TS2020 was originally introduced at a cost of $49.95.
- 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