87
edits
(v1.2. Port mirroring and planar modes.) |
|||
Line 4: | Line 4: | ||
The ULAplus specification describes 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 emulators, or in clones. It is designed for maximum compatibility with existing software. | The ULAplus specification describes 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 emulators, or in clones. It is designed for maximum compatibility with existing software. | ||
The current version of the specification is '''1. | The current version of the specification is '''1.2'''. | ||
==Revision History== | ==Revision History== | ||
'''Version 1.2''' | |||
* Port mirroring for Timex video resolution and 128 video page select. (optional) | |||
* Planar modes. (optional) | |||
'''Version 1.1''' | '''Version 1.1''' | ||
Line 38: | Line 43: | ||
01 - mode group | 01 - mode group | ||
The sub-group | The sub-group is (optionally) used to mirror the video functionality of Timex port #FF and 128 port #7FFD as follows: | ||
Bits 0-2: Screen mode. 000=screen 0, 001=screen 1, 010=hi-colour, 110=hi-res | |||
Bits 3-5: Sets the screen colour in hi-res mode. | |||
000 - Black on White 100 - Green on Magenta | |||
001 - Blue on Yellow 101 - Cyan on Red | |||
010 - Red on Cyan 110 - Yellow on Blue | |||
011 - Magenta on Green 111 - White on Black | |||
Bit 6: Video page. Bank 7 if set, or else Bank 5.</pre> | |||
[[ZXI_standard|0xFF3B]] is the data port (read/write) | [[ZXI_standard|0xFF3B]] is the data port (read/write) | ||
Line 46: | Line 59: | ||
When the mode group is selected, the byte output will be interpreted as follows: | When the mode group is selected, the byte output will be interpreted as follows: | ||
<pre>Bit 0: | <pre>Bit 0 - ULAplus palette on (1) / off (0) | ||
1 - (optional) greyscale: on (1) / off (0) (same as turing the color off on the television) | |||
2 - (optional) planar mode: on (1) / off (0) | |||
3 - (optional) planar mode: 3 planes (0) / 4 planes (1).</pre> | |||
Implementations that support the Timex video modes use the #FF register to set the video mode, as per the Timex machines. It is left to the individual implementations to determine if reading the port returns the previous write or the floating bus. | Implementations that support the Timex video modes use the #FF register as the primary means to set the video mode, as per the Timex machines. It is left to the individual implementations to determine if reading the port returns the previous write or the floating bus. | ||
===RGB palette entries=== | ===RGB palette entries=== |
edits