Spectrum +2A/+3 Memory Map
Spectrum +2A/+3 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 |
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 128K/+2 Memory Map
Spectrum 48K Memory Map
Spectrum Basic Memory Map