651
edits
mNo edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
[[Category:Spectrum]] | [[Category:Spectrum]] | ||
[[Category:Video]] | [[Category:Video]] | ||
The ULAplus specification is an enhanced ULA for the ZX Spectrum designed by Cheveron, Nikki, CSmith and KLP2. It can 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. | The ULAplus specification is an enhanced ULA for the ZX Spectrum designed by Cheveron, Nikki, CSmith and KLP2. It can 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. | ||
==Colour Modes== | |||
The current specification allows for four colour spaces: | |||
* original spectrum behaviour | |||
* RGB | |||
* HSL (not yet finalized) | |||
* CMYK | |||
Any hardware implementing ULAplus must implement at least the original spectrum attributes and one other to be considered a ULAplus device. | |||
==I/O Ports== | ==I/O Ports== | ||
ULAplus is controlled by two ports. | |||
[[ZXI_standard|0xBF3B]] is the register port (write only) | [[ZXI_standard|0xBF3B]] is the register port (write only) | ||
Line 25: | Line 33: | ||
The sub-group must be zero. Sub-group entries 1-63 are reserved for mode specific controls.</pre> | The sub-group must be zero. Sub-group entries 1-63 are reserved for mode specific controls.</pre> | ||
[[ZXI_standard|0xFF3B]] is the data (read/write) | [[ZXI_standard|0xFF3B]] is the data port (read/write) | ||
When the palette group is selected, the byte written will describe the colour. | |||
When the mode group is selected, the byte output will be interpreted as follows: | |||
<pre>Bit 0: Palette mode select; on when set.</pre> | |||
===RGB colour space=== | |||
[[File:ULAplus_rgb.png|frame|G3R3B2 encoding]] | |||
For a device using the RGB colour space the palette entry is interpreted as follows | |||
<pre>Bits 0-1: Blue intensity. | <pre>Bits 0-1: Blue intensity. | ||
Bits 2-4: Red intensity. | Bits 2-4: Red intensity. | ||
Bits 5-7: Green intensity.</pre> | Bits 5-7: Green intensity.</pre> | ||
This | This colour space uses a sub-set of 9-bit RGB. The low bit is duplicated (Bb becomes Bbb). This gives access to a fixed half the potential 512 colour palette. The jump in intensity happens in the lower range where it is less noticeable. | ||
==Software== | ==Software== |