15. How does the VDU Work ?
Thanks to Ian Bradbury for providing the magazine articles this information was extracted from.
The VDU is yet another classic Sinclair design (as cheap as possible), and is not dissimilar to the ZX80 in some ways. It supports a text resolution of 32 x 16 or a Graphics Resolution of 64 x 64
It uses the 2 main memory blocks at 0B00h and 0F00h, each of 256 bytes, each of which represents half of the screen. The screen is split into 2, vertically, so each half either represents a 32 x 8 character block or a 64 x 32 pixel block.
If it is a character block the display uses 6-bit ASCII characters. Bits 6 and 7 of the byte are ignored, though designs are available to enable Bit 6 to be used as invert (let me know if you want this for any reason). If it is graphics the pixels are memory mapped, 8 bytes representing one line of 64 pixels, there being 32 of these per screen half.
There seems to be no consistency about the VDU set up - which half of the screen is mapped to which block, and whether or not each block is text or graphics. The blocks are independent so one may display text and the other graphics. If there is a 'standard' for connections please let me know. I do have a program which suggests F2 in the Status is used to set graphics mode (F2=1=Graphics) but I don't know if this is a standard or not. It is possible the VDU can be set up with toggle switches, for example.
To avoid the need for dual porting memory and to make the design dirt cheap, the VDU uses the multiprocessor features of the MK14 to freeze the display during display time. This means that the processor only operates during the horizontal or vertical retraces, which will reduce the speed by about 60-70%