ZX Spectrum +2A/2B, +3/3B
Manufacturer | Amstrad |
Mfg. volume | |
CPU | Z80A @ 3.5469MHz |
ROM | 64kB |
RAM | 128kB |
as pages | 8*16kB |
Gfx Res | 256x192 |
Gfx Colours | 15 (2 per 8x8 cell) |
The ZX Spectrum +3 was released on the 16th of May 1987. It is a significant redesign from the original "Toastrack" 128K and Grey +2 models, with additional memory paging capabilities to support CP/M and additional ROM containing the +3DOS disc operating system code. The "Black +2" appeared soon after. This computer can be one of two machines, a +2A or the later +2B. The lower case moulding carries one of these two designations, however this has been found not to be an accurate indication of which model the computer is as the majority of machines carrying the +2A label actually contain a +2B motherboard. Development of the +2B continued until 1990. This was the last official model of ZX Spectrum produced.
Hardware
Common hardware specifications
- Processor: Zilog Z80A microprocessor clocked at 3.5469MHz.
- ROM: 64KB ROM. 2*32KB EPROM arranged in 4 pages of 16KB.
- RAM: 128KB of Dynamic RAM, arranged in 8 pages of 16KB.
- Graphics: 256 x 192 pixels, 16 colours, attribute based. See Spectrum Video Modes.
- Sound: AY-3-8912 3 channel, 8 octave Programmable Sound Generator and "beeper". Modulated onto video signal.
- Keyboard: 58 plastic keys with metal springs, operating a plastic membrane.
- I/O: Software controlled RS232 serial port. AUX Port. Tape In (ear) and Tape Out (mic). Two Sinclair SJS Joystick Ports. Parallel Printer Port
+3 specific hardware
- Floppy Disc Controller: Zilog Z0765A (uPD765A).
- I/O: "Disk B:" External disk drive connector.
Black +2 specific hardware
- Cassette interface daughterboard.
- "Datacorder" cassette mechanism.
Timings and Contention
The contention and ram timings on the +3 and Black +2 differ significantly from earlier models due to the redesigned gate array. Timing patterns and memory contention are described in detail in the contended memory article.
Paging
The memory space is divided into four 16k pages and can be used in two ways; "Standard paging mode" and "Special paging mode". Paging is controlled by performing I/O writes to ports 0x1ffd and 0x7ffd.
The bits are described in the table below:
Port | Bit | |||||||
---|---|---|---|---|---|---|---|---|
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1ffd | Printer Strobe | Disk Motor | ROM high | 0 | ||||
Special paging | 1 | |||||||
0x7ffd | Disable Paging | ROM low | Active Screen | RAM Bank |
Standard paging mode
The 64k of ROM and 128k of RAM can be paged into the memory space as shown in the diagram below:
0xFFFF - 0xC000 |
Bank 0 | Bank 1 | Bank 2 | Bank 3 | Bank 4 | Bank 5 (screen 0) |
Bank 6 | Bank 7 (screen 1) |
---|---|---|---|---|---|---|---|---|
0xBFFF - 0x8000 |
Bank 2 | |||||||
0x7FFF - 0x4000 |
Bank 5 | |||||||
0x3FFF - 0x0000 |
ROM 0 | ROM 1 | ROM 2 | ROM 3 |
Special paging mode
In special paging mode all four pages contain RAM. There are four combinations as shown in the diagram below:
mode 0 | mode 1 | mode 2 | mode 3 | |
---|---|---|---|---|
0xFFFF - 0xC000 |
Bank 3 | Bank 7 (screen 1) | Bank 3 | Bank 3 |
0xBFFF - 0x8000 |
Bank 2 | Bank 6 | Bank 6 | Bank 6 |
0x7FFF - 0x4000 |
Bank 1 | Bank 5 (screen 0) | Bank 5 (screen 0) | Bank 7 (screen 1) |
0x3FFF - 0x0000 |
Bank 3 | Bank 4 | Bank 4 | Bank 4 |