Difference between revisions of "VDU driver"

From BeebWiki
Jump to: navigation, search
(Initial page.)
 
m (Pixels)
 
Line 12: Line 12:
 
==Pixels==
 
==Pixels==
 
The graphics screen size is always the same size on logical pixels
 
The graphics screen size is always the same size on logical pixels
regardless of the number of physical pixels. This will always be >=&400
+
regardless of the number of physical pixels. This will always be >=&300
horizontally and >=&300 vertically. The logical screen size is found by
+
horizontally and >=&200 vertically. The logical screen size is found by
doubling the number of physical pixels until a value of >=&400 horizontally
+
doubling the number of physical pixels until a value of >=&300 horizontally
and a value of >&300 vertically.
+
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==
 
==Printer==

Latest revision as of 15:53, 16 July 2021

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)