VDU driver

From BeebWiki
Revision as of 00:53, 3 November 2023 by Jgharston (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Colours

If there is no palette, COLOUR and GCOL should select physical colours using physical colour numbers, and VDU 19 should be ignored.

If there is a palette, COLOUR and GCOL should select logical colours, and VDU 19 should be used to select the physical colours they display as.

These notes do not cover colour selection in screen modes with 256 or more colours as they are difficult to control purely through the VDU stream.

Pixels

The graphics screen size is always the same size on logical pixels regardless of the number of physical pixels. This will always be >=&300 horizontally and >=&200 vertically. The logical screen size is found by doubling the number of physical pixels until a value of >=&300 horizontally and a value of >&200 vertically. With a screen that displays 80x32 characters on a full screen this will be 1280 x 1024 logical pixels. With a 32x24 character display this will be 1024 x 768 logical pixels.

Printer

The VDU driver should ignore VDU 1,2,3. They should be acted on purely by the printer driver. Conventionally, the OSWRCH layer calls the VDU driver, then calls the printer driver, then any other selected output drivers.

OSWRCH layer

 .wrch
 push all registers
 call vdu
 call printer
 call any other drivers
 restore all registers
 return

Jgharston (talk) 23:11, 16 June 2016 (UTC)