Difference between revisions of "Physical colour numbers"

From BeebWiki
Jump to: navigation, search
m (Tweeked.)
m (C64: Used a better monitor to confirm colours.)
 
(One intermediate revision by the same user not shown)
Line 4: Line 4:
 
palette. The colour number is a bitmap of the colour to select. When
 
palette. The colour number is a bitmap of the colour to select. When
 
implementing an operating system interface on other platforms this mapping
 
implementing an operating system interface on other platforms this mapping
should be adhered to.
+
must be adhered to.
  
 
===Colour bitmap===
 
===Colour bitmap===
Line 127: Line 127:
 
   ground  ground  Border  Colour          ground  ground  Colour
 
   ground  ground  Border  Colour          ground  ground  Colour
 
   0 &00  128 &80  192 &C0  Black            16 &10  144 &90  Flashing Black
 
   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
+
   1 &01  129 &81  193 &C1  Red/Brown        17 &11  145 &91  Flashing Red/Brown
 
   2 &02  130 &82  194 &C2  Green            18 &12  146 &92  Flashing Green
 
   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
+
   3 &03  131 &83  195 &C3  Yellow/Orange    19 &13  147 &93  Flashing Yellow/Orange
 
   4 &04  132 &84  196 &C4  Blue            20 &14  148 &94  Flashing Blue
 
   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
+
   5 &05  133 &85  197 &C5  Magenta/Purple  21 &15  149 &95  Flashing Magenta/Purple
 
   6 &06  134 &86  198 &C6  Cyan            22 &16  150 &96  Flashing Cyan
 
   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
+
   7 &07  135 &87  199 &C7  Light Grey      23 &17  151 &97  Flashing Light Grey
   8 &08  136 &88  200 &C8  Orange          24 &18  152 &98  Flashing Orange
+
   8 &08  136 &88  200 &C8  Dark Grey        24 &18  152 &98  Flashing Dark Grey
 
   9 &09  137 &89  201 &C9  Bright Red      25 &19  153 &99  Flashing Bright Red
 
   9 &09  137 &89  201 &C9  Bright Red      25 &19  153 &99  Flashing Bright Red
 
   10 &0A  138 &8A  202 &CA  Bright Green    26 &1A  154 &9A  Flashing Bright Green
 
   10 &0A  138 &8A  202 &CA  Bright Green    26 &1A  154 &9A  Flashing Bright Green
   11 &0B  139 &8B  203 &CB  Bright Grey      27 &1B  155 &9B  Flashing Bright Grey
+
   11 &0B  139 &8B  203 &CB  Bright Yellow    27 &1B  155 &9B  Flashing Bright Yellow
 
   12 &0C  140 &8C  204 &CC  Bright Blue      28 &1C  156 &9C  Flashing Bright Blue
 
   12 &0C  140 &8C  204 &CC  Bright Blue      28 &1C  156 &9C  Flashing Bright Blue
   13 &0D  141 &8D  205 &CD  Grey            29 &1D  157 &9D  Flashing Grey
+
   13 &0D  141 &8D  205 &CD  Bright Magenta  29 &1D  157 &9D  Flashing Bright Magenta
   14 &0E  142 &8E  206 &CE  Dark Grey       30 &1E  158 &9E  Flashing Dark Grey
+
   14 &0E  142 &8E  206 &CE  Light Grey       30 &1E  158 &9E  Flashing Light Grey
   15 &0F  143 &8F  207 &CF  Brown           31 &1F  159 &9F  Flashing Brown
+
   15 &0F  143 &8F  207 &CF  White           31 &1F  159 &9F  Flashing White
  
 
===DOS/Windows===
 
===DOS/Windows===

Latest revision as of 19:05, 8 June 2020

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 an operating system interface on other platforms this mapping must be adhered to.

Colour bitmap

   7   6   5   4   3   2   1   0
 +---+---+---+---+---+---+---+---+
 | L | B | 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
    |   +---------- flash
    +-------------- 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   Colour
  0 &00  128 &80  192 &C0  Black            16 &10  144 &90  Flashing Black
  1 &01  129 &81  193 &C1  Red/Brown        17 &11  145 &91  Flashing Red/Brown
  2 &02  130 &82  194 &C2  Green            18 &12  146 &92  Flashing Green
  3 &03  131 &83  195 &C3  Yellow/Orange    19 &13  147 &93  Flashing Yellow/Orange
  4 &04  132 &84  196 &C4  Blue             20 &14  148 &94  Flashing Blue
  5 &05  133 &85  197 &C5  Magenta/Purple   21 &15  149 &95  Flashing Magenta/Purple
  6 &06  134 &86  198 &C6  Cyan             22 &16  150 &96  Flashing Cyan
  7 &07  135 &87  199 &C7  Light Grey       23 &17  151 &97  Flashing Light Grey
  8 &08  136 &88  200 &C8  Dark Grey        24 &18  152 &98  Flashing Dark Grey
  9 &09  137 &89  201 &C9  Bright Red       25 &19  153 &99  Flashing Bright Red
 10 &0A  138 &8A  202 &CA  Bright Green     26 &1A  154 &9A  Flashing Bright Green
 11 &0B  139 &8B  203 &CB  Bright Yellow    27 &1B  155 &9B  Flashing Bright Yellow
 12 &0C  140 &8C  204 &CC  Bright Blue      28 &1C  156 &9C  Flashing Bright Blue
 13 &0D  141 &8D  205 &CD  Bright Magenta   29 &1D  157 &9D  Flashing Bright Magenta
 14 &0E  142 &8E  206 &CE  Light Grey       30 &1E  158 &9E  Flashing Light Grey
 15 &0F  143 &8F  207 &CF  White            31 &1F  159 &9F  Flashing 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

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