1.1 --- a/ULA.txt Sun Jun 19 17:09:31 2016 +0200
1.2 +++ b/ULA.txt Sun Jun 19 21:21:28 2016 +0200
1.3 @@ -469,6 +469,37 @@
1.4 hardware implementation, and by the time the Electron was planned, it was too
1.5 late to do anything about this somewhat unfortunate choice.
1.6
1.7 +Pixel Layouts
1.8 +-------------
1.9 +
1.10 +The pixel layouts are as follows:
1.11 +
1.12 + Modes Depth (bpp) Pixels (from bits)
1.13 + ----- ----------- ------------------
1.14 + 0, 3, 4, 6 1 7 6 5 4 3 2 1 0
1.15 + 1, 5 2 73 62 51 40
1.16 + 2 4 7531 6420
1.17 +
1.18 +Since the ULA reads a half-byte at a time, one might expect it to attempt to
1.19 +produce pixels for every half-byte, as opposed to handling entire bytes.
1.20 +However, the pixel layout is not conducive to producing pixels as soon as a
1.21 +half-byte has been read for a given full-byte location: in 1bpp modes the
1.22 +first four pixels can indeed be produced, but in 2bpp and 4bpp modes the pixel
1.23 +data is spread across the entire byte in different ways.
1.24 +
1.25 +An alternative arrangement might be as follows:
1.26 +
1.27 + Modes Depth (bpp) Pixels (from bits)
1.28 + ----- ----------- ------------------
1.29 + 0, 3, 4, 6 1 7 6 5 4 3 2 1 0
1.30 + 1, 5 2 76 54 32 10
1.31 + 2 4 7654 3210
1.32 +
1.33 +Just as the mode layouts were presumably decided by compatibility with the BBC
1.34 +Micro, the pixel layouts will have been maintained for similar reasons.
1.35 +Unfortunately, this layout prevents any optimisation of the ULA for handling
1.36 +half-byte pixel data generally.
1.37 +
1.38 Enhancement: The Missing MODE 4
1.39 -------------------------------
1.40