ZX Spectrum
ZX Spectrum



Emulation info
Overall emulation:  good   
Color emulation:  good  
Sound emulation:  good  
Graphics emulation:  good  
Savestates:  unsupported   

Tech info
Z80 ("maincpu")cpu 3500000 Hz
Speaker ("mono")audio
Wave ("wave")audio
Filtered 1-bit DAC ("speaker")audio
Screen ("screen")raster horizontal 352 x 296 @ 50.080128
Media devices
snapshot ("snapshot") snapshot dump ach, frz, plusd, prg, sem, sit, sna, snp, snx, sp, z80, zx
quickload ("quickload") quickload quik raw, scr
cassette ("cassette") cassette cass wav, tzx, tap, blk
cartridge ("cartslot") cartridge cart bin, rom
BIOS options
en English
sp Spanish
bsrom118 BusySoft Upgrade v1.18
bsrom140 BusySoft Upgrade v1.40
groot De Groot's Upgrade
48turbo 48 Turbo
psycho Maly's Psycho Upgrade
turbo23 Turbo 2.3
turbo44 Turbo 4.4
imc Ian Collier's Upgrade
plus4 ZX Spectrum +4
deutsch German unofficial (Andrew Owen)
sc The Sea Change Minimal ROM V1.78
gosh GOSH Wonderful ZX Spectrum ROM V1.32
1986es 1986ES Snapshot
jgh JGH ROM V0.74 (C) J.G.Harston
iso22 ISO ROM V2.2
iso8 ISO ROM 8
RAM options
16K 16384
48K 49152
Software lists

Show detailed info about 'Configurations' of this system

Hardware Version Issue 2
 Issue 3
Joystick Interface None (No Joystick)

Romset info
ROM NameSizeCRC32SHA1Dump StateBIOS option
1986es.rom16384 9e0fdaaaf9d23f25640c51bcaa63e21ed5dd66bb2d5f63d4good1986es
48turbo.rom16384 56189781e62a431b0938af414b7ab8b1349a18b3c4407f70good48turbo
bsrom118.rom16384 1511cddbab3c36daad4325c1d3b907b6dc9a14af483d14ecgoodbsrom118
bsrom140.rom16384 07017c6d2ee2dbe6ab96b60d7af1d6cb763b299374c21776goodbsrom140
deutsch.rom16384 1a9190f4795c20324311dd5a56300e6e4ec49b0a694ac0b3gooddeutsch
spectrum.rom16384 ddee531f5ea7c2b824672e914525d1d5c419d71b84a426a2gooden
gw03.rom16384 5585d7c2a701c3d4b698f7d2be537dc6f79e06e4dbc95929goodgosh
groot.rom16384 abf18c4551165cde68e218512d3145467074bc7e786bf307goodgroot
hdt-iso.rom16384 b81c570c2a9745ba3b369a84c4913c98ede66ec87cb8aec1goodhdt
imc.rom16384 d1be99eedee814271c4d51de257d88128acdb324fb1d1d0dgoodimc
isomoje.rom16384 62ab364004adbdb1380d6ccd4ab26ddd61b9ccbba462a60fgoodiso22
iso8bm.rom16384 43e9c2fd5752e6f789769475711b91e0a75911fa5232c767goodiso8
jgh.rom16384 7224138ed7f02ed66455f1c08ac0c864c7038a92a88ba94agoodjgh
plus4.rom16384 7e0f47cbc103e89ef58e6ade0c01cea0247b332623bd9a30goodplus4
psycho.rom16384 cd60b5890853e25857d51dd41b20a6dbc8e80f028c5befaagoodpsycho
sc01.rom16384 73b4057ac58ff44a28db47400f09ed362ca0527591218136goodsc
48e.rom16384 f051746e9e535e2e24231ccb65e33d107f6d0ceb23e99477goodsp
turbo2_3.rom16384 fd3b041384ea64af06adaf05e68abe1d69454b4fc6888505goodturbo23
turbo4_4.rom16384 338b6e8721ad93ffe41a4458704c866cca2754f066f6a560goodturbo44


* CPU: Zilog Z80A 3.5 MHz
* RAM: 16k or 48k (42k left for programming)
* ROM: 16k (Basic & OS)
* Text Modes: 32 x 24
* Graphic Modes: 256 x 192
* Colors: 8 with two tones each (normal and bright)
* Sound: 1 voice / 10 octaves (Beeper)
* I/O Ports: Expansion port, tape-recorder (1200 bauds), RF video out
* Keyboard: QWERTY rubber keyboard (40 keys) with up to 6 functions by keys !
* Peripherals: ZX printer, ZX microdrives
* Built In Language: Sinclair Basic


MESS emulates the following computers

* spectrum [Sinclair ZX Spectrum]
* inves [Investronica Inves Spectrum 48K+]

For both systems, MESS supports the emulation of

- a "cassette" (cass) device, for tapes in .wav, .tzx and .tap format
- a "cartridge" (cart) device, for cart dumps in .rom format

Also notice that a "snapshot" (snap) feature is available for .sna, .z80 and .sp files, and a "quickload" (quik) is available for .scr files.


These systems require full keyboard emulation to work correctly. At startup, full keyboard emulation mode is enabled by default. Whilst in full keyboard emulation mode, some key associated functionality may be disabled (like the ESC key for EXIT). The keyboard emulation mode is toggled using the "Scroll Lock" key (by default).


Cassette images can have the .wav, .tzx or .tap extensions. To run a cassette image you have to launch

mess spectrum -cass "C:\pathtogame\gamename.tzx"

Once you're at the BASIC prompt you can load the first program from the cassette by simply typing


Assuming you are not using the natural keyboard emulation, this can be done by pressing J (which corresponds to 'LOAD' BASIC command), followed by RShift+P (twice), and press Enter.

At this point, you will have to enter the MESS internal UI to start the tape (press Tab and choose "Tape Control", then press "Play").

BIOS options

Different versions of spectrum (not inves) are supported. You can switch between them, changing the -bios parameter. At command line, for spectrum,

"-bios 0" or "-bios spectrum" = ZX Spectrum

"-bios 1" or "-bios specbusy" = BusySoft Upgrade v1.18

"-bios 2" or "-bios specpsch" = Maly's Psycho Upgrade

"-bios 3" or "-bios specgrot" = De Groot's Upgrade

"-bios 4" or "-bios specimc" = Collier's Upgrade

"-bios 5" or "-bios speclec" = LEC Upgrade

"-bios 6" or "-bios specpls4" = ZX Spectrum +4

History and Trivia

The Sinclair ZX Spectrum was one of the most popular European computers of the 80's. Two models were launched: one with 16 kb RAM and one with 48 kb RAM.

One of its most "interesting" characteristics is its keyboard! Some keys have more than five (!) functions! It is impossible to type BASIC keywords letter by letter, instead you have to use function keys. A lot of peripherals and programs were developed for this computer. It seems that several models of this computers were launched (at least 3), but I've no technical details about them. It was replaced in 1984 by the Spectrum + and in 1985 by the Spectrum 128.

Alan Wilson reports to us: The 16K version of the computer had only the 16K ram chips loaded, while the 48K version had both banks full. To keep the prices down Sinclair used faulty 64K chips (internally 2 X 32K). All the chips in the 32K bank of RAM had to have the same half of the 64K chips working. A link was fitted on the pcb in order to choose the first half or the second half. It was possible with a few logic chips for the experimenter to have access to the faulty 32K bank.

(info from old-computers.com)

About ZX Spectrum +4

The plus4.rom is copyright (c)1982-2000 Amstrad plc
and is distributed with their kind permission.

I would like to thank Cliff Lawson and Amstrad for making this
project possible, Phillip Kendall for the Spectrum ROM page, Ian
Collier for documenting the changes he made to the ROM and giving me
additional advice, Dr Ian Logan and Dr Frank O'Hara for the invaluable
Complete Spectrum ROM Disassembly, and whoever it was that sold the
book to me and contributors to comp.sys.sinclair for keeping me
constantly amused and informed.

-Andrew Owen, 24-2-2000

Introducing the Spectrum +4.

Remember when Apple promised its customers a whole new computer for
$99. What they meant was they hoped their new operating system would
change the experience of their users so profoundly it would make them
feel as if they had a new machine. Well now you can have a whole new
Spectrum for FREE!

What is the idea behind this?

I've taken the original 48K machine as my starting point and tweaked
it until the point where I don't think there is any further room for
improvement without adding extra hardware. Now if someone wants to
build a new machine at least they have a place to start.

How compatible is it?

The Spectrum +4 ROM is very similar to the one in the 48 and so it
should be 90% compatible or better with machine code. BASIC programs
may require minor modifications but should then run without problems.

What are the changes?

There are so many changes that it is impossible to summarize them all.
Only the important changes have been detailed with the exception of
the new NMI routine which is self explanatory.


The keyboard layout has been completely redesigned, based on the
standard international English keyboard, to make it quicker to use and
easier to remember which keys are where. This is made possible by
replacing the keyword entry system.

All the SHIFT functions on the number keys are retained, as are the
EXTEND and SHIFT-EXTEND attribute functions. But that is where the
similarity to the old keyboard ends.

All but a few symbols are accessed by holding down SYMBOL shift and
the relevant key, while the remainder are accessed using EXTEND mode.
Pressing either SHIFT or SYMBOL shift in EXTEND mode will give the
same result as if SYMBOL shift alone had been pressed. In addition to
the characters shown below, the 16 pre-defined graphics characters are
accessible using SYMBOL shift or EXTEND mode and keys Q-R and A-F.


| ! | @ | £ | $ | % | ^ | & | * | ( | ) |

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |


| | | | | | | { | } | : | " |

| | | | | | | [ | ] | ; | ' |

| Q | W | E | R | T | Y | U | I | O | P |


| | | | | | | | | _ | + |

| | | | |(c)| | \ | - | = |

| A | S | D | F | G | H | J | K | L |


| ~ | | | | ? | < | > |

| # | | | | / | , | . |

| Z | X | C | V | B | N | M |


SYMBOL = Lower symbols

EXTEND = Upper symbols and attributes on number keys

SHIFT = Upper case letters and functions on number keys


The most noticeable change is that all commands must be typed in full.
Instructions are converted into tokens automatically when you press
ENTER. It is also possible to use the cursors to move up and down
while editing a line. Instructions can be entered in both capital and
lower letters. No space is required between commands such as DEF FN or
after a command unless the argument begins with a letter.


CAT, when entered without parameters, calls up the built-in monitor.

The PLOT, DRAW and CIRCLE commands have been modified to use the whole

ERASE "i" erases extra Interface 1 variables, extended channels and
such without affecting the BASIC program in memory.

The GO SUB, GO TO and CONTINUE commands have been replaced by GOSUB,
GOTO, and CONT, to replicate other BASIC interpreters.

MOVE can be used to shift data around in memory. For example, the
command MOVE "r0,6144","r16384" would copy the first 6144 bytes of ROM
to the screen area of memory.

The COPY command has been replaced by the FREE command which reports
the amount of free memory below RAMTOP.


The Spectrum +4 features a built-in monitor which can be accessed with
the CAT command or holding down SYMBOL shift, SPACE and B while
interrupts are enabled. The following commands are then available:

B Return to BASIC (if possible)

D Displays entered hex number in decimal notation

G Execute a subroutine at address G
(RET will return to the monitor).

H Displays entered decimal number in hex notation

M Hex and ASCII dump from given address
(SPACE to exit).

R View and/or change registers
AF, BC, DE, HL, IX and SP.

S Patch memory from given address using hex editor
(SPACE to exit editor).


Every effort has been made to fix all the bugs mentioned in The
Complete Spectrum Rom Disassembly and a few others besides as follows:

Fixed a bug the CLOSE # bug. eg CLOSE #4

Fixed the forwardspace (CHR$ 9) bug. e.g. PRINT "A";CHR$ 9;"B"

Fixed the backspace (CHR$ 8) bug. e.g. PRINT AT 0,0;CHR$ 8;"A"

Fixed the STR$ bug. e.g. PRINT "BUG"+STR$ 0.5

Fixed the division bug. e.g. IF 1/2<>0. 5 THEN PRINT "BUG"

Fixed the -65536 bug. e.g. PRINT INT -65536

Fixed the SCREEN$ bug. e.g. IF "X"=SCREEN$ (0,0) THEN PRINT "BUG"

Fixed the "scroll?" bug. Try pressing True Video at the request.

Fixed the syntax check error.

Fixed the double store bug at 257Dh.

Resolved the K-MODE bug. There is no 'K' mode.

Resolved printer buffer error. There is no COPY command.

Resolved the NMI bug. There is a different routine.

Fixed the 'lock up if interrupts are disabled on error report' bug


Just to make sure it was 100% okay to do this I wrote to Amstrad's
Cliff Lawson on 23/02/00. Here's what followed.

ME: I know it's okay in principle to distribute modified Spectrum
ROMs as long as the copyright message is unchanged. However,
I've just finished a very major overhaul of the ROM and would
like to use an alternative message.

CL: Well you can't really associate a name such as "+4" with
"Amstrad Consumer Electronics" because it makes it look as if
it's an "official" development.

ME: Would this be acceptable?

(C)1982-2000 unofficial +4 48K

CL: Yup, sounds OK but you do realize that the company was only
called "Amstrad Consumer Electronics" for a few years in the
early..mid 80's then the company name was shortened to
"Amstrad plc" so it's a bit "out of date" to use it but I
guess that probably describes the "Spectrum" too! :-)

ME: Mind if I quote you in the "readme" just so no one accuses me
of violating copyrights?

CL: No problem.

Visit the Amstrad website at http://www.amstrad.com

Amstrad plc. Registered in England No. 955321
Registered Office: Brentwood House, 169 Kings Road, Brentwood,
Essex CM14 4EF, England


* Planet Sinclair -- http://www.nvg.ntnu.no/sinclair/
* World of Spectrum -- http://www.worldofspectrum.org/
* Your Sinclair -- http://www.yoursinclair.co.uk/
* ZX Specticle -- http://www.worldofspectrum.org/zxspecticle/
* Speccy.cz -- http://www.speccy.cz/
* Sinclair.hu -- http://www.sinclair.hu/
* Zoom's Speccy Corner -- http://tcg.speccy.cz/zoom/
* ZX Spectrum at old-computers.com -- http://old-computers.com/museum/computer.asp?c=223

Other Emulators

* SpecEmu -- http://homepage.ntlworld.com/paul.dunn4/
* Speccy -- http://fms.komkon.org/Speccy/
* EmuZWin -- http://kolmck.net/apps/EmuZWin_Eng.htm
* DSP -- http://leniad.cjb.net/dsp/index.htm
* Unreal Speccy -- http://alonecoder.narod.ru/zx/
* YASE -- http://www.tu-ilmenau.de/~hackbart/download.htm
* ZX Spectrum Emu -- http://www.geocities.com/SiliconValley/Bay/9932/
* RealSpectrum -- http://www.ramsoft.bbk.org/realspec.html
* Spectaculator -- http://www.spectaculator.com/
* GLECK -- http://gleck.emuunlim.com/

Edit the History info for this game.


Back to Home Page