Amstrad Whole Memory Guide - The display system
In all, the Display System takes up some 4000 bytes of code and fixed data in ROM, and its workspace spans about 380 bytes of RAM, not to mention the 16K byte screen RAM. There are more than 100 entry points. Fortunately, the system divides into three maln parts:
- The Screen Pack deals directly with screen handling, colour selection and screen read and write.
- The Text VDU handles matters relating to text display, including the implementation of stream selection. It also deals with the control codes and their parameters.
- The Graphics VDU handles the graphic display.
Each of these parts requires a chapter to itself, but it will be useful to offer some general information first.
The Screen RAM
In theory, the Screen RAM could be any 16K byte area of memory starting at a multiple of 4000, but the 8000-BFFF block would overwrite workspace and RAM routines, while 0000-3FFF would overwrite the RST Area, so the choice narrows to 4000-7FFF or C000-FFFF, and it is usually more convenient to adopt the latter area, leaving the central half of RAM free for other purposes.
The Screen RAM is accessed by the Video Gate Array on a basis of addresses supplied by the CRT Controller, but the addresses are not used in a straightforward manner. The CRT Controller embodies two counters. One, output on RA0-RA4, is incremented