Graphics Support
----------------

Brandy includes limited graphics support under Linux. It includes only a
subset of the facilities provided by the RISC OS VDU drivers but it should
be enough for now.

This document does not apply to the RISC OS builds, as all graphics are
handled by the OS, and Matrix Brandy just passes the VDU codes across.
 
The graphics support is based around SDL 1.2

The graphic support includes all of the Basic graphics statements with some
restrictions and a small number of the VDU 23 commands. Features such as the
extended colour fill patterns are not supported. The standard RISC OS
palettes in 2, 4, 16 and 256 colour modes are emulated and both colour and
greyscale palettes are possible. Colour depth 16777216 is also supported for
24-bit colour. Flashing colours are not supported, they are instead shown as
dimmed versions of their non-flashing counterparts. Modes can be set using
either MODE <number>, MODE <string> or MODE <x size>, <y size>, <depth>. Any
(sensible) dimensions can be supplied, and if a requested mode is not a
predefined one, MODE 126 will be configured with the desired values, then
selected.

All available screen modes are available under X, the window will be sized
accordingly. When running on a console frame buffer, only those which will
fit on the console screen will be available.

New display modes can be created with *NewMode, use a mode in the range
64-126.

Teletext graphics are also supported in Mode 7, see docs/Mode7.

Four display banks are available (except in Mode 7), they are controlled by
*FX112 and FX113 as on a BBC Master or RISC OS machine. All screen modes use
the primary display, so *FX112,0 is synonymous to *FX112,1, similarly for
*FX113. These are also available as OSBYTE calls via CALL/USR &FFF4 and
SYS "OS_Byte" (SYS 6).

*REFRESH (borrowed from BB4W/BBCSDL by Richard Russell)
*REFRESH        One-shot refresh of the display.
*REFRESH OFF    Suspends updates to the display window.
*REFRESH ON     Resume updates to the display window, updating it with any
                pending changes.
*REFRESH ONERROR  Suspends updates to the display window until an error
                  condition is encountered. This option is not present in
                  BB4W/BBCSDL.
This can also be set - and read - by OSBYTE &2A (42). See osbyte.txt for
more details on this.

Additionally to this, the "tbrandy" text-mode build, when built on a UNIX-
like system (excluding Cygwin) also supports Tektronix graphics when enabled
with SYS "Brandy_TekEnabled",1 and thus can output graphics when run in an
xterm window or through an emulator such as Rene Richarz's Tek4010 emulator
https://github.com/rricharz/Tek4010 - and, while untested, it should even
run when output to real hardware.  In the SDL builds, MODEs 72-75 are
dimensioned to give a graphical area the same as a Tektronix system.
