ZX Spectrum 64 Colour RGB Mode

This is a proposed enhanced graphics mode for the ZX Spectrum designed by Cheveron, Nikki, and CSmith. It could be implemented as a plug-in replacement for the ULA in the 48K machines, in emulators, or in clones. It is designed to make it easy to re-colour existing software with the minimum of effort.

I/O Ports
The mode is controlled by two ports.

0xBFF9 is the register port (write only)

The byte output will be interpreted as follows:

Bits 0-5: Select the register sub-group Bits 6-7: Select the register group. Two groups are currently available:

00 - palette group

When this group is selected, the sub-group determines the entry in the palette table (0-63).

01 - mode group

This group ignores the sub-group.

0xFFF9 is the data (read/write)

When the palette group is selected, the byte output will be interpreted as follows:

Bits 0-1: Blue intensity. The high bit is duplicated (Bb becomes BbB). Bits 2-4: Red intensity. Bits 5-7: Green intensity.

When the mode group is selected, the byte output will be interpreted as follows:

Bit 0: Palette mode select; on when set.

Software
The palette editor enables you to create a palette for use with existing software without needing to rewrite the software. You can save the palette and load it before loading the original software as normal. In this way all existing software can be re-coloured without any programming knowledge required.