Spectrum Memory Map Overview

Spectrum Memory Map

The following table is an overview of the Spectrum Memory map for both 48K and 128K/+2 machines. The +2A and +3 are similar to the 128K but have additional ROM's and alternate all RAM memory layouts. The specifics for the individual machines are listed in their own sections.

Address 48K 128K / +2
0000 ROM ROM 0
128K Editor
ROM 1
48K Editor
1000
2000
3000
4000 Screen RAM Bank 5
5000 OS vars & free memory
6000
7000
8000 free memory RAM Bank 2
9000
A000
B000
C000 RAM Bank 0 RAM Bank 1 RAM Bank 2 RAM Bank 3 RAM Bank 4 RAM Bank 5
Screen #1
RAM Bank 6 RAM Bank 7
Screen #2
D000
E000
F000

Memory Contention

Some memory is contended with the ULA, with the latter having priority whenever the screen is being updated. Time critical code needs to run in uncontended RAM.

On the 48K memory between 0x4000…0x7FFF is contended with the ULS whilst 0x8000…0xFFFF is not.

On the 128K and +2, odd numbered RAM banks are contended with the ULA. Time critical code should run in even numbered RAM banks.


Spectrum +2A/+3 Memory Map

Spectrum +2A/+3 Memory Map

Spectrum 128K/+2 Memory Map

Spectrum 128K/+2 Memory Map

Spectrum 48K Memory Map

Spectrum 48K Memory Map

Spectrum Basic Memory Map

Spectrum Basic Memory Map

Last modified November 2, 2021: Add system variable definitions (31647b0)