Difference between revisions of "Physical colour numbers"
m (Tidied formatting.) |
m (Had two 'B's !) |
||
(9 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[Category:VDU commands]] | [[Category:VDU commands]] | ||
− | + | Physical colour numbers are used as the short physical colour in the VDU 19 | |
− | + | command, and used in the COLOUR and GCOL commands on platforms without a | |
− | + | palette. The colour number is a bitmap of the colour to select. When | |
− | + | implementing a VDU driver to interface with other platforms this mapping | |
− | + | must be adhered to. | |
− | + | ||
− | + | ===Colour bitmap=== | |
− | + | <div class="mw-widebody"> | |
− | + | 7 6 5 4 3 2 1 0 | |
− | + | +---+---+---+---+---+---+---+---+ | |
− | + | | L | D | E | F | I | B | G | R | | |
− | + | +---+---+---+---+---+---+---+---+ | |
− | + | | | | | | | | | | |
− | + | | | | | | | | +---Red | |
− | 0 0 | + | | | | | | | +-------Green |
− | 0 1 | + | | | | | | +-----------Blue |
− | 1 0 | + | | | | | +---------------Intense |
− | 1 1 | + | | | | +-------------------Flash |
− | + | | | +-----------------------Extension | |
− | + | | +---------------------------Border | |
− | l x x x f b g r - | + | +-------------------------------0=Foreground, 1=Background |
+ | |||
+ | This gives: | ||
+ | 0 0 e f i b g r - &00+n - foreground colour | ||
+ | 0 1 e f i b g r - &40+n - extension | ||
+ | 1 0 e f i b g r - &80+n - background colour | ||
+ | 1 1 e f i b g r - &C0+n - border colour | ||
+ | |||
+ | The BBC implements: | ||
+ | l x x x f b g r - colour | ||
+-------- flash | +-------- flash | ||
− | + | ||
− | + | The ZX Spectrum implements: | |
− | l b | + | l b e f i b g r - colour |
− | | | + | | | | +-------- bright |
− | | | + | | | +---------- flash |
+ | | +------------ change only flash/bright | ||
+-------------- border | +-------------- border | ||
− | + | ||
− | + | The Commodore implements: | |
− | + | l b x f i b g r - colour | |
− | + | | +-------- bright | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | l b x f i b g r - | ||
− | | | ||
− | |||
+-------------- border | +-------------- border | ||
− | + | ||
− | + | DOS/Windows implements: | |
− | + | l x x f i b g r - colour | |
− | + | | +-------- bright | |
− | + | +---------- flash | |
− | + | ||
− | + | ANSI terminal implements: | |
− | + | l b e f i b g r - colour | |
− | + | | | | +-------- bright | |
− | + | | | +---------- flash | |
− | + | | +------------ underline | |
− | + | +-------------- inverse | |
− | + | </div> | |
− | + | The BBC uses b3=flash, whereas all platforms other than the BBC uses | |
− | + | b4=flash. For visual compatibility, programs could use 0-7 for non-flashing | |
− | + | colours and 24-31 for flashing colours. On the BBC these will be flashing | |
− | + | colours, on other platforms these will be bright flashing colours where | |
− | + | supported. | |
− | + | ||
− | + | ==Implementation details== | |
− | + | ||
− | + | ===Electron/BBC/Master/etc=== | |
− | + | <div class="mw-widebody"> | |
− | + | 0+n &00+n - foreground colour | |
− | + | 128+n &80+n - background colour | |
− | + | ||
− | 15 &0F | + | Fore Back Fore Back |
− | + | ground ground Colour ground ground Colour | |
− | + | 0 &00 128 &80 Black 8 &08 136 &88 Flashing Black | |
− | + | 1 &01 129 &81 Red 9 &09 137 &89 Flashing Red | |
− | + | 2 &02 130 &82 Green 10 &0A 138 &8A Flashing Green | |
− | + | 3 &03 131 &83 Yellow 11 &0B 139 &8B Flashing Yellow | |
− | Black | + | 4 &04 132 &84 Blue 12 &0C 140 &8C Flashing Blue |
− | + | 5 &05 133 &85 Magenta 13 &0D 141 &8D Flashing Magenta | |
− | + | 6 &06 134 &86 Cyan 14 &0E 142 &8E Flashing Cyan | |
− | Red | + | 7 &07 135 &87 White 15 &0F 143 &8F Flashing White |
− | + | </div> | |
− | + | ===ZX Spectrum=== | |
− | Green | + | <div class="mw-widebody"> |
− | + | 0+n &00+n %000FIBGR - foreground colour, bright and flash | |
− | + | 32+n &20+n %001xxBGR - foreground colour, without changing flash and bright | |
− | Yellow | + | 64+n &40+n %010xIxxx - bright without changing current colour |
− | + | 96+n &60+n %011Fxxxx - flash without changing current colour | |
− | + | 128+n &80+n %100FIBGR - background colour, bright and flash | |
− | Blue | + | 160+n &A0+n %101xxBGR - background colour, without changing flash and bright |
− | + | 192+n &C0+n %11xxxBGR - border colour | |
− | + | ||
− | Magenta | + | Fore Back Fore Back |
− | + | ground ground Border Colour ground ground Colour | |
− | + | 0 &00 128 &80 192 &C0 Black 16 &10 144 &90 Flashing Black | |
− | Cyan | + | 1 &01 129 &81 193 &C1 Red 17 &11 145 &91 Flashing Red |
− | + | 2 &02 130 &82 194 &C2 Green 18 &12 146 &92 Flashing Green | |
− | + | 3 &03 131 &83 195 &C3 Yellow 19 &13 147 &93 Flashing Yellow | |
− | White | + | 4 &04 132 &84 196 &C4 Blue 20 &14 148 &94 Flashing Blue |
− | + | 5 &05 133 &85 197 &C5 Magenta 21 &15 149 &95 Flashing Magenta | |
− | + | 6 &06 134 &86 198 &C6 Cyan 22 &16 150 &96 Flashing Cyan | |
− | + | 7 &07 135 &87 199 &C7 White 23 &17 151 &97 Flashing White | |
− | + | 8 &08 136 &88 Bright Black 24 &18 152 &98 Flashing Bright Black | |
− | + | 9 &09 137 &89 Bright Red 25 &19 153 &99 Flashing Bright Red | |
− | + | 10 &0A 138 &8A Bright Green 26 &1A 154 &9A Flashing Bright Green | |
− | + | 11 &0B 139 &8B Bright Yellow 27 &1B 155 &9B Flashing Bright Yellow | |
− | + | 12 &0C 140 &8C Bright Blue 28 &1C 156 &9C Flashing Bright Blue | |
− | + | 13 &0D 141 &8D Bright Magenta 29 &1D 157 &9D Flashing Bright Magenta | |
− | + | 14 &0E 142 &8E Bright Cyan 30 &1E 158 &9E Flashing Bright Cyan | |
− | + | 15 &0F 143 &8F Bright White 31 &1F 159 &9F Flashing Bright White | |
− | + | ||
− | + | 32 &20 160 &A0 Black, without changing flash/bright | |
− | + | 33 &21 161 &A1 Red, without changing flash/bright | |
− | + | 34 &22 162 &A2 Green, without changing flash/bright | |
− | + | 35 &23 163 &A3 Yellow, without changing flash/bright | |
− | + | 36 &24 164 &A4 Blue, without changing flash/bright | |
− | + | 37 &25 165 &A5 Magenta, without changing flash/bright | |
− | + | 38 &26 166 &A6 Cyan, without changing flash/bright | |
− | + | 39 &27 167 &A7 White, without changing flash/bright | |
− | + | ||
− | + | 64 &40 Bright off 96 &60 Flash off | |
− | + | 72 &48 Bright on 112 &70 Flash on | |
− | + | </div> | |
− | + | ===Commodore=== | |
− | + | <div class="mw-widebody"> | |
− | + | 0+n &00+n - foreground colour | |
− | + | 128+n &80+n - background colour | |
− | + | 192+n &C0+n - border colour | |
− | + | ||
− | + | Fore Back Fore Back | |
− | + | ground ground Border Colour ground ground Border Colour | |
− | + | 0 &00 128 &80 192 &C0 Black 8 &08 136 &88 200 &C8 Dark Grey | |
− | + | 1 &01 129 &81 193 &C1 Red/Brown 9 &09 137 &89 201 &C9 Bright Red | |
− | + | 2 &02 130 &82 194 &C2 Green 10 &0A 138 &8A 202 &CA Bright Green | |
− | + | 3 &03 131 &83 195 &C3 Yellow/Orange 11 &0B 139 &8B 203 &CB Bright Yellow | |
− | + | 4 &04 132 &84 196 &C4 Blue 12 &0C 140 &8C 204 &CC Bright Blue | |
− | + | 5 &05 133 &85 197 &C5 Magenta/Purple 13 &0D 141 &8D 205 &CD Bright Magenta | |
− | + | 6 &06 134 &86 198 &C6 Cyan 14 &0E 142 &8E 206 &CE Light Grey | |
− | + | 7 &07 135 &87 199 &C7 Light Grey 15 &0F 143 &8F 207 &CF White | |
− | + | </div> | |
− | + | ===DOS/Windows=== | |
− | + | <div class="mw-widebody"> | |
− | + | 0+n &00+n - foreground colour | |
− | + | 128+n &80+n - background colour | |
− | + | ||
− | + | Fore Back Fore Back | |
− | + | ground ground Colour ground ground Colour | |
− | + | 0 &00 128 &80 Black 16 &10 144 &90 Flashing Black | |
− | + | 1 &01 129 &81 Red 17 &11 145 &91 Flashing Red | |
− | + | 2 &02 130 &82 Green 18 &12 146 &92 Flashing Green | |
− | + | 3 &03 131 &83 Yellow 19 &13 147 &93 Flashing Yellow | |
− | + | 4 &04 132 &84 Blue 20 &14 148 &94 Flashing Blue | |
− | + | 5 &05 133 &85 Magenta 21 &15 149 &95 Flashing Magenta | |
− | + | 6 &06 134 &86 Cyan 22 &16 150 &96 Flashing Cyan | |
− | + | 7 &07 135 &87 White 23 &17 151 &97 Flashing White | |
− | + | 8 &08 136 &88 Bright Black 24 &18 152 &98 Flashing Bright Black | |
− | + | 9 &09 137 &89 Bright Red 25 &19 153 &99 Flashing Bright Red | |
− | + | 10 &0A 138 &8A Bright Green 26 &1A 154 &9A Flashing Bright Green | |
− | + | 11 &0B 139 &8B Bright Yellow 27 &1B 155 &9B Flashing Bright Yellow | |
− | + | 12 &0C 140 &8C Bright Blue 28 &1C 156 &9C Flashing Bright Blue | |
− | + | 13 &0D 141 &8D Bright Magenta 29 &1D 157 &9D Flashing Bright Magenta | |
− | + | 14 &0E 142 &8E Bright Cyan 30 &1E 158 &9E Flashing Bright Cyan | |
− | + | 15 &0F 143 &8F Bright White 31 &1F 159 &9F Flashing Bright White | |
− | + | </div> | |
− | + | ===ANSI Terminal=== | |
− | + | <div class="mw-widebody"> | |
− | + | 0+n &00+n - foreground colour | |
− | + | 128+n &80+n - background colour | |
− | + | ||
− | + | Fore Back Fore Back | |
− | + | ground ground Colour ground ground Colour | |
− | + | 0 &00 128 &80 Black 16 &10 144 &90 Flashing Black | |
− | + | 1 &01 129 &81 Red 17 &11 145 &91 Flashing Red | |
− | + | 2 &02 130 &82 Green 18 &12 146 &92 Flashing Green | |
− | + | 3 &03 131 &83 Yellow 19 &13 147 &93 Flashing Yellow | |
− | + | 4 &04 132 &84 Blue 20 &14 148 &94 Flashing Blue | |
− | + | 5 &05 133 &85 Magenta 21 &15 149 &95 Flashing Magenta | |
+ | 6 &06 134 &86 Cyan 22 &16 150 &96 Flashing Cyan | ||
+ | 7 &07 135 &87 White 23 &17 151 &97 Flashing White | ||
+ | 8 &08 136 &88 Bright Black 24 &18 152 &98 Flashing Bright Black | ||
+ | 9 &09 137 &89 Bright Red 25 &19 153 &99 Flashing Bright Red | ||
+ | 10 &0A 138 &8A Bright Green 26 &1A 154 &9A Flashing Bright Green | ||
+ | 11 &0B 139 &8B Bright Yellow 27 &1B 155 &9B Flashing Bright Yellow | ||
+ | 12 &0C 140 &8C Bright Blue 28 &1C 156 &9C Flashing Bright Blue | ||
+ | 13 &0D 141 &8D Bright Magenta 29 &1D 157 &9D Flashing Bright Magenta | ||
+ | 14 &0E 142 &8E Bright Cyan 30 &1E 158 &9E Flashing Bright Cyan | ||
+ | 15 &0F 143 &8F Bright White 31 &1F 159 &9F Flashing Bright White | ||
+ | |||
+ | 32+n &20+n Underlined text | ||
+ | 64+n &40+n Inverse text | ||
+ | </div> | ||
+ | |||
+ | ==See also== | ||
+ | * [http://mdfs.net/Info/Comp/BBC/Display/Colours/Physical.htm Physical colour numbers] | ||
+ | * [http://mdfs.net/Software/BBCBasic/Porting/VDUSpecs BBC BASIC Host VDU Interface Specification] | ||
+ | |||
+ | [[User:Jgharston|Jgharston]] ([[User talk:Jgharston|talk]]) 23:06, 16 June 2016 (UTC) |
Latest revision as of 21:11, 17 July 2021
Physical colour numbers are used as the short physical colour in the VDU 19 command, and used in the COLOUR and GCOL commands on platforms without a palette. The colour number is a bitmap of the colour to select. When implementing a VDU driver to interface with other platforms this mapping must be adhered to.
Contents
Colour bitmap
7 6 5 4 3 2 1 0 +---+---+---+---+---+---+---+---+ | L | D | E | F | I | B | G | R | +---+---+---+---+---+---+---+---+ | | | | | | | | | | | | | | | +---Red | | | | | | +-------Green | | | | | +-----------Blue | | | | +---------------Intense | | | +-------------------Flash | | +-----------------------Extension | +---------------------------Border +-------------------------------0=Foreground, 1=Background This gives: 0 0 e f i b g r - &00+n - foreground colour 0 1 e f i b g r - &40+n - extension 1 0 e f i b g r - &80+n - background colour 1 1 e f i b g r - &C0+n - border colour The BBC implements: l x x x f b g r - colour +-------- flash The ZX Spectrum implements: l b e f i b g r - colour | | | +-------- bright | | +---------- flash | +------------ change only flash/bright +-------------- border The Commodore implements: l b x f i b g r - colour | +-------- bright +-------------- border DOS/Windows implements: l x x f i b g r - colour | +-------- bright +---------- flash ANSI terminal implements: l b e f i b g r - colour | | | +-------- bright | | +---------- flash | +------------ underline +-------------- inverse
The BBC uses b3=flash, whereas all platforms other than the BBC uses b4=flash. For visual compatibility, programs could use 0-7 for non-flashing colours and 24-31 for flashing colours. On the BBC these will be flashing colours, on other platforms these will be bright flashing colours where supported.
Implementation details
Electron/BBC/Master/etc
0+n &00+n - foreground colour 128+n &80+n - background colour Fore Back Fore Back ground ground Colour ground ground Colour 0 &00 128 &80 Black 8 &08 136 &88 Flashing Black 1 &01 129 &81 Red 9 &09 137 &89 Flashing Red 2 &02 130 &82 Green 10 &0A 138 &8A Flashing Green 3 &03 131 &83 Yellow 11 &0B 139 &8B Flashing Yellow 4 &04 132 &84 Blue 12 &0C 140 &8C Flashing Blue 5 &05 133 &85 Magenta 13 &0D 141 &8D Flashing Magenta 6 &06 134 &86 Cyan 14 &0E 142 &8E Flashing Cyan 7 &07 135 &87 White 15 &0F 143 &8F Flashing White
ZX Spectrum
0+n &00+n %000FIBGR - foreground colour, bright and flash 32+n &20+n %001xxBGR - foreground colour, without changing flash and bright 64+n &40+n %010xIxxx - bright without changing current colour 96+n &60+n %011Fxxxx - flash without changing current colour 128+n &80+n %100FIBGR - background colour, bright and flash 160+n &A0+n %101xxBGR - background colour, without changing flash and bright 192+n &C0+n %11xxxBGR - border colour Fore Back Fore Back ground ground Border Colour ground ground Colour 0 &00 128 &80 192 &C0 Black 16 &10 144 &90 Flashing Black 1 &01 129 &81 193 &C1 Red 17 &11 145 &91 Flashing Red 2 &02 130 &82 194 &C2 Green 18 &12 146 &92 Flashing Green 3 &03 131 &83 195 &C3 Yellow 19 &13 147 &93 Flashing Yellow 4 &04 132 &84 196 &C4 Blue 20 &14 148 &94 Flashing Blue 5 &05 133 &85 197 &C5 Magenta 21 &15 149 &95 Flashing Magenta 6 &06 134 &86 198 &C6 Cyan 22 &16 150 &96 Flashing Cyan 7 &07 135 &87 199 &C7 White 23 &17 151 &97 Flashing White 8 &08 136 &88 Bright Black 24 &18 152 &98 Flashing Bright Black 9 &09 137 &89 Bright Red 25 &19 153 &99 Flashing Bright Red 10 &0A 138 &8A Bright Green 26 &1A 154 &9A Flashing Bright Green 11 &0B 139 &8B Bright Yellow 27 &1B 155 &9B Flashing Bright Yellow 12 &0C 140 &8C Bright Blue 28 &1C 156 &9C Flashing Bright Blue 13 &0D 141 &8D Bright Magenta 29 &1D 157 &9D Flashing Bright Magenta 14 &0E 142 &8E Bright Cyan 30 &1E 158 &9E Flashing Bright Cyan 15 &0F 143 &8F Bright White 31 &1F 159 &9F Flashing Bright White 32 &20 160 &A0 Black, without changing flash/bright 33 &21 161 &A1 Red, without changing flash/bright 34 &22 162 &A2 Green, without changing flash/bright 35 &23 163 &A3 Yellow, without changing flash/bright 36 &24 164 &A4 Blue, without changing flash/bright 37 &25 165 &A5 Magenta, without changing flash/bright 38 &26 166 &A6 Cyan, without changing flash/bright 39 &27 167 &A7 White, without changing flash/bright 64 &40 Bright off 96 &60 Flash off 72 &48 Bright on 112 &70 Flash on
Commodore
0+n &00+n - foreground colour 128+n &80+n - background colour 192+n &C0+n - border colour Fore Back Fore Back ground ground Border Colour ground ground Border Colour 0 &00 128 &80 192 &C0 Black 8 &08 136 &88 200 &C8 Dark Grey 1 &01 129 &81 193 &C1 Red/Brown 9 &09 137 &89 201 &C9 Bright Red 2 &02 130 &82 194 &C2 Green 10 &0A 138 &8A 202 &CA Bright Green 3 &03 131 &83 195 &C3 Yellow/Orange 11 &0B 139 &8B 203 &CB Bright Yellow 4 &04 132 &84 196 &C4 Blue 12 &0C 140 &8C 204 &CC Bright Blue 5 &05 133 &85 197 &C5 Magenta/Purple 13 &0D 141 &8D 205 &CD Bright Magenta 6 &06 134 &86 198 &C6 Cyan 14 &0E 142 &8E 206 &CE Light Grey 7 &07 135 &87 199 &C7 Light Grey 15 &0F 143 &8F 207 &CF White
DOS/Windows
0+n &00+n - foreground colour 128+n &80+n - background colour Fore Back Fore Back ground ground Colour ground ground Colour 0 &00 128 &80 Black 16 &10 144 &90 Flashing Black 1 &01 129 &81 Red 17 &11 145 &91 Flashing Red 2 &02 130 &82 Green 18 &12 146 &92 Flashing Green 3 &03 131 &83 Yellow 19 &13 147 &93 Flashing Yellow 4 &04 132 &84 Blue 20 &14 148 &94 Flashing Blue 5 &05 133 &85 Magenta 21 &15 149 &95 Flashing Magenta 6 &06 134 &86 Cyan 22 &16 150 &96 Flashing Cyan 7 &07 135 &87 White 23 &17 151 &97 Flashing White 8 &08 136 &88 Bright Black 24 &18 152 &98 Flashing Bright Black 9 &09 137 &89 Bright Red 25 &19 153 &99 Flashing Bright Red 10 &0A 138 &8A Bright Green 26 &1A 154 &9A Flashing Bright Green 11 &0B 139 &8B Bright Yellow 27 &1B 155 &9B Flashing Bright Yellow 12 &0C 140 &8C Bright Blue 28 &1C 156 &9C Flashing Bright Blue 13 &0D 141 &8D Bright Magenta 29 &1D 157 &9D Flashing Bright Magenta 14 &0E 142 &8E Bright Cyan 30 &1E 158 &9E Flashing Bright Cyan 15 &0F 143 &8F Bright White 31 &1F 159 &9F Flashing Bright White
ANSI Terminal
0+n &00+n - foreground colour 128+n &80+n - background colour Fore Back Fore Back ground ground Colour ground ground Colour 0 &00 128 &80 Black 16 &10 144 &90 Flashing Black 1 &01 129 &81 Red 17 &11 145 &91 Flashing Red 2 &02 130 &82 Green 18 &12 146 &92 Flashing Green 3 &03 131 &83 Yellow 19 &13 147 &93 Flashing Yellow 4 &04 132 &84 Blue 20 &14 148 &94 Flashing Blue 5 &05 133 &85 Magenta 21 &15 149 &95 Flashing Magenta 6 &06 134 &86 Cyan 22 &16 150 &96 Flashing Cyan 7 &07 135 &87 White 23 &17 151 &97 Flashing White 8 &08 136 &88 Bright Black 24 &18 152 &98 Flashing Bright Black 9 &09 137 &89 Bright Red 25 &19 153 &99 Flashing Bright Red 10 &0A 138 &8A Bright Green 26 &1A 154 &9A Flashing Bright Green 11 &0B 139 &8B Bright Yellow 27 &1B 155 &9B Flashing Bright Yellow 12 &0C 140 &8C Bright Blue 28 &1C 156 &9C Flashing Bright Blue 13 &0D 141 &8D Bright Magenta 29 &1D 157 &9D Flashing Bright Magenta 14 &0E 142 &8E Bright Cyan 30 &1E 158 &9E Flashing Bright Cyan 15 &0F 143 &8F Bright White 31 &1F 159 &9F Flashing Bright White 32+n &20+n Underlined text 64+n &40+n Inverse text