1.1 --- a/ULA.txt Mon Oct 17 01:09:49 2022 +0200
1.2 +++ b/ULA.txt Tue May 16 15:54:20 2023 +0200
1.3 @@ -1554,6 +1554,31 @@
1.4 MODE 7 support could be made available, potentially as a hardware option
1.5 separate from the ULA.
1.6
1.7 +Enhancement: 40-Column Text Modes by Interleaving Screen and Bitmap Accesses
1.8 +----------------------------------------------------------------------------
1.9 +
1.10 +Suggested here: https://stardot.org.uk/forums/viewtopic.php?p=393243#p393243
1.11 +
1.12 +The ULA could be run in high-bandwidth mode to fetch character codes from
1.13 +screen memory in one cycle and then to use the character code to look up a
1.14 +pixel row of a character bitmap, reading that bitmap slice in the following
1.15 +cycle. The bitmap would be converted to pixel values that would then be
1.16 +emitted over the subsequent two cycles concurrently with the preparation of
1.17 +the next character's pixels.
1.18 +
1.19 + 2MHz cycle: 0 1 2 3 4 5 ...
1.20 + Reads: C B C B C B ...
1.21 + Pixels: a b ...
1.22 +
1.23 +The memory access to bitmap data would be computed as follows, assuming the
1.24 +normal eight pixel height and single-byte encoding of character bitmaps:
1.25 +
1.26 + bitmap address = bitmap table base + (character code * 8) + bitmap row
1.27 +
1.28 +Each successive pixel row on the screen would expose the appropriate row in
1.29 +the character bitmap, with this "bitmap row" looping from 0 to 7 repeatedly.
1.30 +Spacing between character lines could be introduced as already done in MODE 6.
1.31 +
1.32 Enhancement: Compressed Character Data
1.33 --------------------------------------
1.34