# HG changeset patch # User Paul Boddie # Date 1684335179 -7200 # Node ID d444825c4fa1af85a94db4844e1ed79bc077c233 # Parent 9a19c0cb0c45936397ce58ca4152a8371eb815e6 Added remarks about text mode screen sizes and memory layouts. diff -r 9a19c0cb0c45 -r d444825c4fa1 ULA.txt --- a/ULA.txt Wed May 17 15:26:15 2023 +0200 +++ b/ULA.txt Wed May 17 16:52:59 2023 +0200 @@ -1514,7 +1514,45 @@ Character bitmap data would be stored in RAM, since this is the only possible source of data for the ULA as delivered. The use of ROM would require changes -to the broader system architecture. +to the broader system architecture. Thus, the total memory requirements of +such a mode would be the locations for character positions plus the storage +requirements of the bitmaps to be supported. + + Columns Rows Screen size Bitmaps Bitmaps size Total size + ------- ---- ----------- ------- ------------ ---------- + 40 25 1000 256 2048 3048 + 40 25 1000 128 1024 2024 + 40 25 1000 96 768 1768 + 40 32 1280 256 2048 3328 + 40 32 1280 128 1024 2304 + 40 32 1280 96 768 2048 + +The simplest arrangement would involve bitmap definitions for all 256 possible +character codes, demanding a total of around 3K of RAM. Reducing the number of +supported bitmaps to 96 (codes 32 to 127 inclusive) would bring this total to +a maximum of 2K, but this would incur additional complexity in the ULA itself +if the codes not corresponding to bitmaps were to be specially mapped to, say, +the bitmap for the space character or to a null character. + +With the screen start address controllable, it is conceivable that with a +256-entry bitmap table, the screen memory could be made to overlap the bitmap +table for bitmaps not likely to be used. For example, the bitmap table might +be situated at &7700, with this leaving enough space for 128 entries (&400 or +1024 bytes) and a 40x32 text screen (&500 or 1280 bytes): + + &8000 +---------------+---------------+ + &7F00 +---------------+ | + | | Display | + | Bitmaps (128) | (40x32) | + | | | + &7B00 +---------------+---------------+ + | | + | Bitmaps (128) | + | | + &7700 +---------------+ + +Care would then need to be taken to avoid the use of codes from 128 to 255 in +the screen memory as these would replicate character data as bitmap data. Enhancement: MODE 7 Emulation using Character Attributes --------------------------------------------------------