# HG changeset patch # User Paul Boddie # Date 1491918392 -7200 # Node ID e0f6fdfe1e6db10753294a921dbb2e61b87c46d9 # Parent 723b5ffe7caa9b33938a29ad0b56785a701c560a Added notes about text-only modes, plus character and attribute value retrieval and caching. diff -r 723b5ffe7caa -r e0f6fdfe1e6d ULA.txt --- a/ULA.txt Fri Mar 31 22:50:55 2017 +0200 +++ b/ULA.txt Tue Apr 11 15:46:32 2017 +0200 @@ -1031,7 +1031,17 @@ applied to them, although this would require the attribute data to be stored in some kind of buffer. Thus, the following access pattern would be observed: - Cycle: A B ... _ B ... _ B ... _ B ... _ B ... _ B ... _ B ... _ B ... + Reads: A B _ B _ B _ B _ B _ B _ B _ B ... + +In modes 3 and 6, the blank display lines could be used to retrieve attribute +data: + + Reads (blank): A _ A _ A _ A _ A _ A _ A _ A _ ... + Reads (active): B _ B _ B _ B _ B _ B _ B _ B _ ... + Reads (active): B _ B _ B _ B _ B _ B _ B _ B _ ... + ... + +See below for a discussion of using this for character data as well. A whole byte used for colour information for a whole character would result in a choice of 256 colours, and this might be somewhat excessive. By only reading @@ -1057,6 +1067,23 @@ 208 26 x3 26 26 256 &62C0 -> &6200 208 26 x3 26 13 16 &6460 -> &6400 +Enhancement: Text-Only Modes using Cached Character and Attribute Data +---------------------------------------------------------------------- + +In modes 3 and 6, the blank display lines could be used to retrieve character +and attribute data instead of trying to insert it between bitmap data accesses, +but this data would then need to be retained: + + Reads: A C A C A C A C A C A C A C A C ... + Reads: B _ B _ B _ B _ B _ B _ B _ B _ ... + +Only attribute (A) and character (C) reads would require screen memory +storage. Bitmap data reads (B) would involve either accesses to memory to +obtain character definition details or could, at the cost of special storage +in the ULA, involve accesses within the ULA that would then free up the RAM. +However, the CPU would not benefit from having any extra access slots due to +the limitations of the RAM access mechanism. + Enhancement: MODE 7 Emulation using Character Attributes -------------------------------------------------------- @@ -1074,6 +1101,32 @@ at least make a limited 40-column multicolour mode available as a substitute for MODE 7. +Using the text-only enhancement with caching of data, the storage requirements +would be diminished substantially: + + Screen width Columns Rows Bytes (C) Bytes (A) Colours Screen start + ------------ ------- ---- --------- --------- ------- ------------ + 320 40 25 40 20 16 &7A94 -> &7A00 + 320 40 25 40 10 4 &7B1E -> &7B00 + 320 40 25 40 5 2 &7B9B -> &7B00 + 320 40 25 40 0 (2) &7C18 -> &7C00 + 640 80 25 80 40 16 &7448 -> &7400 + 640 80 25 80 20 4 &763C -> &7600 + 640 80 25 80 10 2 &7736 -> &7700 + 640 80 25 80 0 (2) &7830 -> &7800 + +Note that the colours describe the locally defined attributes for each +character. When no attribute information is provided, the colours are defined +globally. + +Enhancement: Compressed Character Data +-------------------------------------- + +Another observation about text-only modes is that they only need to store a +restricted set of bitmapped data values. Encoding this set of values in a +smaller unit of storage than a byte could possibly help to reduce the amount +of storage and bandwidth required to reproduce the characters on the display. + Enhancement: High Resolution Graphics -------------------------------------