# HG changeset patch # User Paul Boddie # Date 1684245260 -7200 # Node ID ab28336894bcdf1f8f1c9173dd8f61d72a7213d5 # Parent e16067046f2af3a9d19182220e61d6f2fd1ab46f Added a suggested text mode approach. diff -r e16067046f2a -r ab28336894bc ULA.txt --- a/ULA.txt Mon Oct 17 01:09:49 2022 +0200 +++ b/ULA.txt Tue May 16 15:54:20 2023 +0200 @@ -1554,6 +1554,31 @@ MODE 7 support could be made available, potentially as a hardware option separate from the ULA. +Enhancement: 40-Column Text Modes by Interleaving Screen and Bitmap Accesses +---------------------------------------------------------------------------- + +Suggested here: https://stardot.org.uk/forums/viewtopic.php?p=393243#p393243 + +The ULA could be run in high-bandwidth mode to fetch character codes from +screen memory in one cycle and then to use the character code to look up a +pixel row of a character bitmap, reading that bitmap slice in the following +cycle. The bitmap would be converted to pixel values that would then be +emitted over the subsequent two cycles concurrently with the preparation of +the next character's pixels. + + 2MHz cycle: 0 1 2 3 4 5 ... + Reads: C B C B C B ... + Pixels: a b ... + +The memory access to bitmap data would be computed as follows, assuming the +normal eight pixel height and single-byte encoding of character bitmaps: + + bitmap address = bitmap table base + (character code * 8) + bitmap row + +Each successive pixel row on the screen would expose the appropriate row in +the character bitmap, with this "bitmap row" looping from 0 to 7 repeatedly. +Spacing between character lines could be introduced as already done in MODE 6. + Enhancement: Compressed Character Data --------------------------------------