# HG changeset patch # User Paul Boddie # Date 1605054796 -3600 # Node ID 6e4fcde513009a29e55c688a58c1c6c124e758a2 # Parent 0ddf105800424bdc6cf7df23c0f4a5aa5ad65dcd Added character generator support enhancement. diff -r 0ddf10580042 -r 6e4fcde51300 ULA.txt --- a/ULA.txt Sun Aug 23 22:26:14 2020 +0200 +++ b/ULA.txt Wed Nov 11 01:33:16 2020 +0100 @@ -1382,6 +1382,41 @@ character. When no attribute information is provided, the colours are defined globally. +Enhancement: Character Generator Support and Vertical Scaling +------------------------------------------------------------- + +When generating a picture, the ULA traverses screen memory, obtaining 40 or 80 +bytes of pixel data for each scanline. It then proceeds to the next row of +pixel data for each successive scanline, with the exception of the text modes +where scanlines may be blank (for which the row address does not advance). +This arrangement provides a conventional bitmapped graphics display. + +However, the ULA could instead facilitate the use of character generators. The +principles involved can be demonstrated by the Jafa Mode 7 Mark 2 Display Unit +expansion for the Electron which feeds the pixel data from a MODE 4 screen to +a SAA5050 character generator to create a MODE 7 display. The solution adopted +involves the replication of 40 bytes of character data across as many pixel +rows as is necessary for the character generator to receive the appropriate +character data for all scanlines in any given character row. If only a single +40-byte row of character data were to be present for the first scanline of a +character row, the character generator would only produce the first scanline +(or the uppermost pixels of the characters) correctly, with the rest of the +character shapes being ill-defined. + +Here, the ULA could facilitate the use of memory-efficient character mode +representations (such as MODE 7) by holding the row address for a number of +scanlines, thus providing the same row of screen data for those scanlines, +then advancing to the next row. Visualised in terms of pixel data, it would be +like providing a display with a very low vertical resolution. Indeed, being +able to reduce the vertical resolution of a display mode by a factor of eight +or ten would be equivalent to the above character generation technique in +terms of the ULA's screen reading activities. + +By combining this vertical scaling or scanline replication with a circuit +switchable between bitmapped graphics output and character graphics output, +MODE 7 support could be made available, potentially as a hardware option +separate from the ULA. + Enhancement: Compressed Character Data --------------------------------------