ULAplus: Difference between revisions

Jump to navigation Jump to search
783 bytes added ,  5 August 2014
v1.2. Port mirroring and planar modes.
(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.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 must be zero (standard mode), one (palette mode) or two (greyscale mode). Sub-group entries 3-63 are reserved.</pre>
           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: Palette mode select; on when set.</pre>
<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===
87

edits

Navigation menu