Changes

Amstrad Whole Memory Guide - The display system

1,754 bytes added, 13:16, 30 September 2019
OCR'd page 41
In Mode 0, four bits are required to define one of sixteen colours for each pixel. This means that four bytes are required for each matrix row. The first pixel is defined by bits 1,5,3,7 of the first byte, the second by bits 0,4,2,6 and so on. Twenty characters can be displayed in each screen row.
The way the CRT Controller counts are used complicates thecalculation of screen addresses. Numbering columns and rows from 0: <code>Address = Base + Offset + N*Column + 86*Row + 2048 per scan line.</code> where N is the number of bits per pixel in the current mode. For a given scan line, the bits are taken in sequence. The next scan line is located by increasing the addresses by 0800. Fortunately, the system will work out screen addresses on the basis of column, line, base and offset. Observant readers may notice a slight anomaly. If <code>N*Column = 79</code>, and <code>Row = 25</code>, the column and row terms in the above equation fotal 1999, so there are 48 locations in each scan line that are spare. The MA counter in the CRTC does not address them. However, there is the Offset term to be taken into account. Making offset = &50 moves the screen up one line. Making the offset $869 would move the display up by one scan line, but offset is limited to 07FF by the routine normally used to set it. When Offset is used, the Start Address in the CRTC is modified, and the missing 48 bytes may then come into play. There is a lot of scope for gentle experiment here. == Streams == The system provides for the definition of eight 'streams' of sereen data, each with its own independent parameters, which are: * Window* Cursor Position* Pen and Paper* Cursor Enable* Screen Enable* Opaque or Transparent* Text or Graphics Write* Roll Type All eight sets of parameters are held in store, the set in current use being copied into a common area. Bach stream may reserve for itself a rectangular window. If two windows overlap, the streams may overwrite each other in the overlap area. Any area not so reserved may be accessed by stream 0, which is the default if no stream is specified. 
== Scanned pages ==
13
edits