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 nonzero (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
).
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.
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 reinitialised at subsequent device initialisations. Thus if any characters in the font are redefined then these redefinitions 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