Sinclair ZX Spectrum (1982)

Features

  • 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

Usage

MESS emulates the following computers

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

For both systems, MESS supports the emulation of

  1. a “cassette” (cass) device, for tapes in .wav, .tzx and .tap format
  2. 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.

Keyboard

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).

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

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


BASIC EDITOR

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.


BASIC COMMANDS

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

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

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 MONITOR PROGRAM

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<hex_num>    Displays entered hex number in decimal notation

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

H<dec_num>    Displays entered decimal number in hex notation

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

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

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


BUG FIXES

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


LEGAL NOTICE FOR THE CURIOUS

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?

      AMSTRAD CONSUMER ELECTRONICS PLC
       (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

Other Emulators