Difference between revisions of "VDU 19"
(Rewrote to clarify parameters.) |
m (Added Prisma Graphics.) |
||
Line 68: | Line 68: | ||
numbers 16-31 to set red/green/blue colour components. It also supports | numbers 16-31 to set red/green/blue colour components. It also supports | ||
using logical colour -1 to set the border colour. | using logical colour -1 to set the border colour. | ||
+ | |||
+ | ===Millipede Prisma Graphics System=== | ||
+ | The Prima Graphics System supports: | ||
+ | * VDU 19,l,p,0,0,0 - sets to physical non-flashing colour if red/green/blue are zero | ||
+ | * VDU 19,l,p,r,g,b - sets to red/green/blue colour components if any are non-zero. | ||
===Amstrad CPC=== | ===Amstrad CPC=== | ||
Line 74: | Line 79: | ||
It also supports the following to set colours to the native 3*3*3 Amstrad | It also supports the following to set colours to the native 3*3*3 Amstrad | ||
colour levels: | colour levels: | ||
− | |||
* VDU 19,l,128+x,y,0,0 - flash between Amstrad colour x and y | * VDU 19,l,128+x,y,0,0 - flash between Amstrad colour x and y | ||
Revision as of 17:02, 17 June 2016
Define Logical Colour.
Syntax | VDU 19, <logical>, <physical>, <red>, <green>, <blue>
|
Character stream (hex) | &13 <logical> <physical> <red> <green> <blue>
|
Description | Set the logical colour <logical> to be the physical colour <physical>. |
Contents
Description
VDU 19
sets the logical colour, used in GCOL (VDU 18)
or COLOUR (VDU 17) to the provided physical colour. The physical colour
is set with a physical colour or, on 32-bit
platforms and compatible extensions for 8-bit systems, the individual
red/green/blue colour levels set with the last three parameters.
The logical colour value is MODed by the number of colours in the screen mode, so in a four colour mode, defining colour 4 will alter colour 0.
Some platforms support a logical colour of -1 to set the border colour. Some platforms use a physical colour of 16+ to set the border or pointer colours or individual flash colours.
With screen modes with 256 or more logical colours other methods are used to control the palette.
Parameters
- VDU 19,0-63,p ,r,g,b - sets logical colour
- VDU 19,-1 ,p ,r,g,b - sets border colour
- VDU 19,l ,0-15,r,g,b - sets to 4-bit physical colour
- VDU 19,l ,16 ,r,g,b - sets to RGB colour
- VDU 19,l ,17 ,r,g,b - sets first RGB flash colour
- VDU 19,l ,18 ,r,g,b - sets second RGB flash colour
- VDU 19,l ,24 ,r,g,b - sets border RGB colour
- VDU 19,l ,25 ,r,g,b - sets pointer RGB colour
- VDU 19,l ,0-63,r,g,b - sets to 6-bit physical colour
Calling from BBC BASIC
On BASIC V and later, and equivalent:
-
COLOUR l,p
sends VDU 19,l,p,0,0,0 -
COLOUR l,r,g,b
sends VDU 19,l,16,r,g,b
Some implementations support setting the border colour with:
-
COLOUR l,r,g,b
sends VDU 19,l,24,r,g,b if l<0
Implementations
Programs should use VDU 19,-1,24,r,g,b
to set the border
colour to be compatible across different platforms.
BBC/Master/Electron
The native 8-bit Acorn computers only support using 4-bit physical colour numbers, and do not support setting the border colour. Expansions such as the Chamelion and the Prisma support using red/green/blue colour components.
RISC OS
RISC OS supports 4-bit physical colour numbers and using physical colour numbers 16-31 to set red/green/blue colour components.
DOS/Windows
DOS/Windows supports 4-bit physical colour numbers and using physical colour numbers 16-31 to set red/green/blue colour components. It also supports using logical colour -1 to set the border colour.
Millipede Prisma Graphics System
The Prima Graphics System supports:
- VDU 19,l,p,0,0,0 - sets to physical non-flashing colour if red/green/blue are zero
- VDU 19,l,p,r,g,b - sets to red/green/blue colour components if any are non-zero.
Amstrad CPC
Amstrad CPC supports 4-bit physical colour numbers translated to the Amstrad 3*3*3 colour palette and using logical colour -1 to set the border colour. It also supports the following to set colours to the native 3*3*3 Amstrad colour levels:
- VDU 19,l,128+x,y,0,0 - flash between Amstrad colour x and y
See also
- OSWORD &0B - Read palatte entries
- OSWORD &0C - Write palette entries
On a BBC/Master, VDU 19 performs similar actions to OSBYTE &9B and will update the ULA colour registers. It will automatically invert the physical colour value as required by the ULA.
--Tautology 13:10, 1 May 2011 (UTC) Jgharston (talk) 23:10, 16 June 2016 (UTC)