EXOS 2.1 Video Driver Specification

7. Miscellaneous

7.1 Status Line

As mentioned earlier there is a special status line display which is outside the normal page/channel structure. The first line parameter block is reserved for this status line and will never be used to display any video page. The two byte variable LP_POINTER which is at a fixed address in the EXOS variable area contains the address of the start of this line parameter block. this is used by the cassette driver to modify the palette colours of the status line to provide the cassette level meter display. It could also be used by other programs to manipulate the status line display.

An EXOS variable (ST_FLAG) is provided wich will cause the status line to be displayed if it is zero and removed from the display if it is non­zero (that region of the screen will be border colour). This is implemented by the video driver examining ST_FLAG every interrupt and setting the margins in the reserved line parameter block appropriately.

There is a two byte pointer (ST_POINTER) defined at a fixed address in EXOS variable area which contains the address of the 40 byte area of RAM which is the status line. This pointer will point to Z80 page 2 and the RAM will be at this address in segment 0FFh. The user or external devices can access the status line by finding its address from ST_POINTER. Built in devices can access it directly by using the public symbol ST_LINE which is the start of the status line RAM (in Z80 page 2 segment 0FFh).

7.2 Border and Fixed Bias Registers

The EXOS variable BORD_VID defines the current border colour and is written out to the Nick chip border register on every video interrupt. The border colour can thus be changed simply by changing the EXOS variable.

The Nick chip also has a fixed bias register which is written to by EXOS on every video interrupt. However since its bits are used for various different purposes, the value written out is combined from three different EXOS variables.

The EXOS variable BIAS_VID will have its top 5 bits written out to the bottom 5 bits of the fixed bias register. This controls palette colours 8 to 15 in sixteen colour mode as described in the separate Nick chip specification.

The bottom two bits of the EXOS variable SPRITE will be written to the top two bits of the fixed bias register. This controls the priority selection of external colour inputs from the expansion bus and may thus be used with a sprite generator. For details of exactly what these bits do, see the separate Nick chip specification.

Bit 5 of the fixed bias register is written out from the EXOS variable MUTE_SND and is used to enable or disable the internal speaker. The EXOS variable should be zero to enable it and 0FFh to disable it.

7.3 Resetting the Character Font

As mentioned before the video driver maintains a single 128 character font which is used for all text pages and also for displaying characters on graphics pages. This is initially set up at cold start time, but is not re­initialised at subsequent device initialisations. Thus if any characters in the font are re­defined then these re­definitions will survive a warm reset or a transfer of control to a new applications program.

The font can be reset to its initial state by making a special function call to any video channel. This will set all 128 characters back to their initial shapes. Note that this will affect all characters on a hardware text page instantly but will only affect subsequently printed characters on a software text or graphics page. The parameters for this call are:

    Parameter :  A channel number (1..255)
                 B @@FONT (=4) (special function code)

    Returns   :  A status                     

Next Chapter: Quick Reference Summary.

David Bouman. (dsbouma@cs.vu.nl)