# HG changeset patch # User Paul Boddie # Date 1492006168 -7200 # Node ID d4fc92a0628e570060e04dbfd5e4ee62182d8537 # Parent e0f6fdfe1e6db10753294a921dbb2e61b87c46d9 Noted that the ULA could re-read the character values and just increment an index into the character bitmap data, moving to the next set of values when changing character lines, rather than having to cache the character values. diff -r e0f6fdfe1e6d -r d4fc92a0628e ULA.txt --- a/ULA.txt Tue Apr 11 15:46:32 2017 +0200 +++ b/ULA.txt Wed Apr 12 16:09:28 2017 +0200 @@ -1067,8 +1067,8 @@ 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 ----------------------------------------------------------------------- +Enhancement: Text-Only Modes using 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, @@ -1084,6 +1084,24 @@ However, the CPU would not benefit from having any extra access slots due to the limitations of the RAM access mechanism. +A scheme without caching might be possible. The same line of memory addresses +might be visited over and over again for eight display lines, with an index +into the bitmap data being incremented from zero to seven. The access patterns +would look like this: + + Reads: C B C B C B C B C B C B C B C B ... (generate data from index 0) + Reads: C B C B C B C B C B C B C B C B ... (generate data from index 1) + Reads: C B C B C B C B C B C B C B C B ... (generate data from index 2) + Reads: C B C B C B C B C B C B C B C B ... (generate data from index 3) + Reads: C B C B C B C B C B C B C B C B ... (generate data from index 4) + Reads: C B C B C B C B C B C B C B C B ... (generate data from index 5) + Reads: C B C B C B C B C B C B C B C B ... (generate data from index 6) + Reads: C B C B C B C B C B C B C B C B ... (generate data from index 7) + +The bandwidth requirements would be the sum of the accesses to read the +character values (repeatedly) and those to read the bitmap data to reproduce +the characters on screen. + Enhancement: MODE 7 Emulation using Character Attributes -------------------------------------------------------- @@ -1101,7 +1119,8 @@ 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 +Using the text-only enhancement with caching of data or with repeated reads of +the same character data line for eight display lines, the storage requirements would be diminished substantially: Screen width Columns Rows Bytes (C) Bytes (A) Colours Screen start