1.1 --- a/ULA.txt Wed May 17 15:26:15 2023 +0200
1.2 +++ b/ULA.txt Wed May 17 16:52:59 2023 +0200
1.3 @@ -1514,7 +1514,45 @@
1.4
1.5 Character bitmap data would be stored in RAM, since this is the only possible
1.6 source of data for the ULA as delivered. The use of ROM would require changes
1.7 -to the broader system architecture.
1.8 +to the broader system architecture. Thus, the total memory requirements of
1.9 +such a mode would be the locations for character positions plus the storage
1.10 +requirements of the bitmaps to be supported.
1.11 +
1.12 + Columns Rows Screen size Bitmaps Bitmaps size Total size
1.13 + ------- ---- ----------- ------- ------------ ----------
1.14 + 40 25 1000 256 2048 3048
1.15 + 40 25 1000 128 1024 2024
1.16 + 40 25 1000 96 768 1768
1.17 + 40 32 1280 256 2048 3328
1.18 + 40 32 1280 128 1024 2304
1.19 + 40 32 1280 96 768 2048
1.20 +
1.21 +The simplest arrangement would involve bitmap definitions for all 256 possible
1.22 +character codes, demanding a total of around 3K of RAM. Reducing the number of
1.23 +supported bitmaps to 96 (codes 32 to 127 inclusive) would bring this total to
1.24 +a maximum of 2K, but this would incur additional complexity in the ULA itself
1.25 +if the codes not corresponding to bitmaps were to be specially mapped to, say,
1.26 +the bitmap for the space character or to a null character.
1.27 +
1.28 +With the screen start address controllable, it is conceivable that with a
1.29 +256-entry bitmap table, the screen memory could be made to overlap the bitmap
1.30 +table for bitmaps not likely to be used. For example, the bitmap table might
1.31 +be situated at &7700, with this leaving enough space for 128 entries (&400 or
1.32 +1024 bytes) and a 40x32 text screen (&500 or 1280 bytes):
1.33 +
1.34 + &8000 +---------------+---------------+
1.35 + &7F00 +---------------+ |
1.36 + | | Display |
1.37 + | Bitmaps (128) | (40x32) |
1.38 + | | |
1.39 + &7B00 +---------------+---------------+
1.40 + | |
1.41 + | Bitmaps (128) |
1.42 + | |
1.43 + &7700 +---------------+
1.44 +
1.45 +Care would then need to be taken to avoid the use of codes from 128 to 255 in
1.46 +the screen memory as these would replicate character data as bitmap data.
1.47
1.48 Enhancement: MODE 7 Emulation using Character Attributes
1.49 --------------------------------------------------------