List of 8-bit computer hardware palettes

From Wikipedia, the free encyclopedia

For a full listing of computer's color palettes, see List of palettes

This is a list of color palettes of some of the most popular early 8-bit personal computers and terminals, roughly those manufactured from 1975 to 1985. Although some of them use RGB palettes, are more common specific hardware-implemented 4, 16 or more colors palettes: not bit nor level combinations of RGB primaries, but fixed ROM/circuitry colors selected by the manufacturer. Also, the list does not include obscure palettes, such as those available only through special adjustment and/or CPU assisted techniques (flickering, palette swapping, etc.), except where noted.

For color palettes of 16-bit personal computers, see the List of 16-bit computer hardware palettes article.

For current RGB display systems for 32-bit and better PCs (Super VGA, etc.), see the 16-bit RGB for HighColor (thousands) and 24-bit RGB for TrueColor (millions of colors) modes.

It must be noted that this n-bit distinction is not intended as a true strict categorization of such machines, due to mixed architectures also exists (16-bit processors with 8-bit data bus, for example). The distinction is more related with a broad 8-bit computer age or generation (around 1975-1985) and its associated state of the art in color display capabilities. In any case, every computer listed here share similar 8-bit technology, except where noted.

For various software arrangements and sorts of colors, see the List of software palettes article.

For video game consoles, see the List of videogame consoles palettes article.

For a more complete and technical description of the computer's hardware video capabilities, see the List of home computers by video hardware.

They are listed the original model of every system, which implies that enhanced versions, clones and compatibles also supports the original's one palette.

For every model, their main different graphical color modes are listed based exclusively in the way they handle colors on screen, not all their possible different screen modes (text modes or resolution modes that shares the same color schemes).

Every palette it's represented with a series of color patches and are complemented with a listling of color numbers/indices and names, and other technical details about how the colors are produced and/or used by the computer's display video subsystem.

For each unique palette, an image color test chart and sample image (TrueColor original follows) rendered with that palette (without dithering) are given; color charts for palettes that already exists in other articles are not shown here. The test chart shows the full 8-bits, 256 levels of the red, green and blue (RGB) primary colors and cyan, magenta and yellow complementary colors, along with a full 8-bits, 256 levels grayscale. Gradients of RGB intermediate colors (orange, lime green, sea green, sky blue, violet and fucsia), and a full hue's spectrum are also present. Color charts are not gamma corrected.

Image:RGB_24bits_palette_sample_image.jpg Image:RGB_24bits_palette_color_test_chart.png

These elements let to study the color depth and distribution of the full colors of any given palette, and the sample image indicates how the full color selection of such palettes would represent real life images. These images are not necessarily representative of how the image would be displayed on the original graphics hardware, so simulations of how the sample image would render in different graphic modes are provided, if available. These simulations are always up to the maximum vertical resolution of the given graphic mode or up to 200 scan lines, if vertical resolution is greater. So any of them could be properly padded, transcoded and dumped into the original hardware and/or software emulators without any other changes. See the summary of every simulated image to obtain technical details about conversion to the original machine's format.

The simulated images only try to show how a certain system is able to handle to an image in terms of color without improvements nor additional clever tricks of design like anti-aliasing or dithering. Doubtlessly a human artist is able to improve enormously the look of the simulated images to approximate them to the original one, but that is not the goal of this article.

Note: please do not change the compression scheme of every image by a lossy compression scheme (i.e. JPEG) in order to improve their file size, nor change the thumbnail size of the images, nor gamma-correct them. They are didactical material AS IS, and they have been already optimized for this purpose.

Contents

[edit] Notes on composite video colors

Many of early video chips output composite video YPbPr colors, sometimes inaccurately referred as YUV colors. YUV is the color specification used for PAL TV systems, not for composite video; nevertheless YPbPr and YUV shares the same chroma axis in the color plane, so relative (not absolute) values are often interchangeable.

For the YPbPr cases, the color representations shown in this article, given in RGB, could be slightly inaccurate. Anyway, all conversions from YPbPr to RGB has been made at maximum possible saturation level while keeping the colors inside the RGB gamut (except where noted), so these colors seem to be less vivid than those actually seen on a monitor or TV with saturation set to a higher level.

All YPbPr values are given in a absolute scale from 0.0 to 1.0 for luminance (Y) and in a relative scale from -1.0 to 1.0 for the chroma (Pb and Pr). So, to convert to RGB you must to multiply the Pb and Pr given values by the saturation (for example, if it is 56%, then use 0.56) and multiply again:

a) by 0.5 (the Pb and Pr highest absolute value) if you use YPbPr-to-RGB formulae, or
b) by 0.436 and 0.615 (U and V highest absolute values, respectively) if you use the YUV-to-RGB ones,

prior to perform the calculations.

Also, when seen on TV devices through a RF modulator, the perception of these colors may be not corresponding with the original YPbPr ones (most noticiable with NTSC TV color system, due to its YIQ color space plane is not one-to-one compatible with YPbPr and YUV).

[edit] Teletext

Teletext (a TV information retrieval service developed in 1976) uses a 3-bit RGB, 8-color palette.

Teletext has 40×25 characters. The top and bottom rows along with the first column are reserved. Every character cell has a background color and a text color. Graphics are built with a set of 2×3 pattern characters. Thus, the actual graphic surface is 78×69 blocky pixels.

Image:Screen_color_test_Teletext.png

A newer version of this standard defines a high resolution mode, but it is not supported by the vast majority of TV broadcasting networks nor TV sets manufacturers.

[edit] Apple

[edit] Apple II series

Image:AppleII_palette_sample_image.png Image:AppleII_palette_color_test_chart.png

The Apple II series features a 16-color composite video YPbPr palette[1], that comprises 15 different colors plus a duplicate gray.

Here are shown the correspondent RGB equivalents at a saturation level of 56%. See the Notes on composite video colors section to convert relative YPbPr colors to RGB colors.

Image:AppleII_palette.png
Number — name Y Pb (rel.) Pr (rel.) Number — name Y Pb (rel.) Pr (rel.)
0 — black 0 0 0 8 — brown 0.25 -0.5 0
1 — magenta 0.25 0 0.5 9 — orange 0.5 -1 1
2 — dark blue 0.25 0.5 0 10 — grey #2 0.5 0 0
3 — purple 0.5 1 1 11 — pink 0.75 0 0.5
4 — dark green 0.25 0 -0.5 12 — green 0.5 -1 -1
5 — grey #1 0.5 0 0 13 — yellow 0.75 -0.5 0
6 — medium blue 0.5 1 -1 14 — aqua 0.75 0 -0.5
7 — light blue 0.75 0.5 0 15 — white 1 0 0

Although a bit disordered, some facts can be established:

  • there are five levels for the luminance and five levels (two negatives, zero and two positives) for the chroma;
  • colors 15 to 8 are the exact YPbPr complementary from the 0 to 7 (also their binary complements), so only eight colors are actually implemented and the rest obtained by inverting the YPbPr levels (hence the duplication of the gray at indexes 5 and 10);
  • PbPr levels are chosen to get a regular distribution of the colors in the YPbPb color space within 16 entries and having the maximum (±Pb,±Pr) colors at Y=0.5.

The original Apple II has two graphic modes, along with a 40 columns text mode and some mixed graphic+text modes.

  • Low resolution 40×48, 16-color graphic mode, with a 7:4 pixel aspect ratio.

When a RF modulator is employed to plug the Apple II to a NTSC TV set, many colors vary, and dramatically the brown and light blue, which when converted from YCbCr to YIQ color space by the RF modulator and to RGB by the TV built-in demodulator, lie deeply outside of the RGB gamut. The first image simulates native composite video monitor display, and the second NTSC TV display:

Image:Screen_color_test_AppleII_LowRes.png Image:Screen_color_test_AppleII_LoRes_RF_OutOfGamut.png
  • High resolution 280×196, 6-color mode.

In fact, high resolution mode is able to light on the pixels only in four colors: purple, green, orange and medium blue (pixels off are always black). Pixels on at even columns can be purple or blue, and at odd columns can be green or orange, and any of this purple-green or blue-orange color pairs can be selected for every seven consecutive pixels. A single pixel on also spreads through the half of the aside surrounding pixels. So when a purple-green or green-purple (or blue-magenta/magenta-blue) pixel pair are both on, this results in a on-screen mixed 2:1 aspect ratio "white pixel", and this is the sixth "color".

Due these color arrangements, the high resolution mode is usually documented to have a "practical resolution" of 140×192 instead of 280×196. It is more simply to think this way for programmers but not more exact, so some surprises usually arise: a vertical line can be of a pure solid color when it has an odd number (1, 3, 5...) of pixels wide alternatively on and off (the off pixels seem to be "on" by the color spread of the aside on ones), but can be "white" when it has any number greater than one of pixels wide, all on; when two vertical, one pixel wide blue and green or orange and purple lines are drawn together, they also becomes colorized bluish, redish, yellowish or greenish "white", depending on the combination, etc.

The way to produce colors in high resolution mode is a pure analog tricky collateral effect. When RGB monitors and adapters become available for the Apple IIgs, users felt than the good oldies high resolution software and games do not look the same. But for this time, the Apple IIgs was able to use 4,096 RGB colors with new software, and the original-compatible high resolution 6-color mode was then considered outdated. The first image simulates native composite video monitor display, and the second a RGB monitor display:

Image:Screen_color_test_AppleII_HighRes.png Image:Screen_color_test_AppleII_HighRes_RGB.png


[edit] Commodore

For all the following computers of this brand, the Pb and Pr coordinates for the YPbPr composite video colors are always the cosine and the sine, respectively, of angles multiple of 22.5 degrees (i.e. a quarter of 90°), due to the engineerers were inspired by the NTSC color wheel, a radial way to figure out the Pb and Pr coordinates of points equidistant from the center of the chroma plane, the gray.

[edit] VIC-20

Image:CommodoreVIC20_palette_sample_image.png Image:CommodoreVIC20_palette_color_test_chart.png

The Commodore VIC-20 features a MOS Technology VIC chip which produces a 16-color YPbPr composite video palette[2]. Here are shown the correspondent RGB equivalents at a saturation level of 34%. See the Notes on composite video colors section to convert relative YPbPr colors to RGB colors.

Image:CommodoreVIC20_palette.png
Number — name Y Pb (rel.) Pr (rel.) Number — name Y Pb (rel.) Pr (rel.)
0 — black 0 0 0 8 — orange 0.5 -0.707 0.707
1 — white 1 0 0 9 — light orange 0.75 -0.707 0.707
2 — red 0.25 -0.383 0.924 10 — light red 0.5 -0.383 0.924
3 — cyan 0.75 0.383 -0.924 11 — light cyan* 1 0.383 -0.924
4 — purple 0.5 0.707 0.707 12 — light purple 0.75 0.707 0.707
5 — green 0.5 -0.707 -0.707 13 — light green 0.75 -0.707 -0.707
6 — blue 0.25 1 0 14 — light blue 0.5 1 0
7 — yellow 0.75 -1 0 15 — light yellow* 1 -1 0

Note: the colors marked with an asterisk (*) are out of the RGB gamut.

The palette lacks any intermediate shade of gray, and it has only four levels of luminance above the zero (black).

The VIC-20 lacks any true graphic mode, but a 22×11 text mode with 200 definible characters of 8×16 bits each arranged as a matrix of 20×10 characters is usually used instead, giving a 2:1 aspect ratio, 160×160 pixels, 8-color "high-res mode" or a 4:1 aspect ratio, 80×160 pixels, 10-color "multicolor mode".

  • In the multicolor mode, a single pixel of every 4×8 block (a character cell) may have any of four colors: the background color, the auxiliary color (both shared for the entire screen and selectable among the entire palette), the same color than the overscan border (also a shared color) or a free foreground color, both selectable among the first eight colors of the palette.
  • In the high-res mode, every 8×8 pixels can have the background color (shared for the entire screen) or a free foreground color, both selectable among the first eight colors of the palette.
Image:Screen_color_test_CommodoreVIC20_Multicolor.png Image:Screen_color_test_CommodoreVIC20_HighRes.png


[edit] C-64

Image:Commodore64_palette_sample_image.png Image:Commodore64_palette_color_test_chart.png

The MOS Technology VIC-II is used in the Commodore 64 (and Commodore 128 in 40-column mode), and features a 16-color YPbPr composite video palette[3].

Here are shown the correspondent RGB equivalents at a saturation level of 34%. See the Notes on composite video colors section to convert relative YPbPr colors to RGB colors.

Image:Commodore64_palette.png
Number — name Y Pb (rel.) Pr (rel.) Number — name Y Pb (rel.) Pr (rel.)
0 — black 0 0 0 8 — orange 0.375 -0.707 0.707
1 — white 1 0 0 9 — brown 0.25 -0.924 0.383
2 — red 0.313 -0.383 0.924 10 — light red 0.5 -0.383 0.924
3 — cyan 0.625 0.383 -0.924 11 — dark grey 0.313 0 0
4 — purple 0.375 0.707 0.707 12 — grey 0.469 0 0
5 — green 0.5 -0.707 -0.707 13 — light green 0.75 -0.707 -0.707
6 — blue 0.469 1 0 14 — light blue 0.80 0 0
7 — yellow 0.75 -1 0 15 — light grey 0.625 0 0

This palette is largely based in that of the VIC, but it substitutes three colors by three levels of gray. Also, there are more values for the luminance.

The Commodore 64 has two graphic modes: Multicolor and High Resolution.

  • In the Multicolor 160×200, 16-color mode, every cell of 4×8, 2:1 aspect ratio pixels can have one of four colors: one shared with the entire screen, the two background and foreground colors of the correspondent text mode character, and one more color also stored in the color RAM area, all of them freely selectable among the entire palette.
  • In the High Resolution 320×200, 16-color mode, every cell of 8×8 pixels can have one of the two background and foreground colors of the correspondent text mode character, both freely selectable among the entire palette.
Image:Screen_color_test_Commodore64_Multicolor.png Image:Screen_color_test_Commodore64_HighRes.png


[edit] C-16 and Plus/4

Image:CommodorePlus4_palette_sample_image.png Image:CommodorePlus4_palette_color_test_chart.png

The MOS Technology TED was used in the Commodore 16 and Commodore Plus/4. It had a palette of 121 YPbPr composite video colors[4] comprised of sixteen hues (including black and white) at eight luminance levels. Black was the same color at every luminance level, so hence there are not 128 different colors. On the Plus/4, twelve colors formed a "default" palette of sorts accessible through keyboard shortcuts[5]; these colors are underlined in the table below (RGB equivalents at a saturation level of 34%).

Image:CommodorePlus4_palette.png
luma # 0 1 2 3 4 5 6 7
Y 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1
hue # Pb (rel.) Pr (rel.) . . . . . . . .
0 — black 0 0 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7
1 — white 0 0 1,0 1,1 1,2 1,3 1,4 1,5 1,6 1,7
2 — red -0.383 0.924 2,0 2,1 2,2 2,3 2,4 2,5 2,6* 2,7*
3 — cyan 0.383 -0.924 3,0* 3,1 3,2 3,3 3,4 3,5 3,6 3,7*
4 — purple 0.707 0.707 4,0* 4,1 4,2 4,3 4,4 4,5 4,6* 4,7*
5 — green -0.707 -0.707 5,0* 5,1 5,2 5,3 5,4 5,5 5,6* 5,7*
6 — blue 1 0 6,0 6,1 6,2 6,3 6,4 6,5* 6,6* 6,7*
7 — yellow -1 0 7,0* 7,1* 7,2 7,3 7,4 7,5 7,6 7,7*
8 — orange -0.707 0.707 8,0* 8,1 8,2 8,3 8,4 8,5 8,6* 8,7*
9 — brown -0.924 0.383 9,0* 9,1* 9,2 9,3 9,4 9,5 9,6 9,7*
10 — yellow-green -0.924 -0.383 10,0* 10,1* 10,2 10,3 10,4 10,5 10,6 10,7*
11 — pink 0 1 11,0 11,1 11,2 11,3 11,4 11,5 11,6* 11,7*
12 — blue-green 0 -1 12,0* 12,1 12,2 12,3 12,4 12,5 12,6 12,7*
13 — light blue 0.707 -0.707 13,0* 13,1 13,2 13,3 13,4 13,5 13,6* 13,7*
14 — dark blue 0.924 0.383 14,0 14,1 14,2 14,3 14,4 14,5* 14,6* 14,7*
15 — light green -0.383 -0.924 15,0* 15,1 15,2 15,3 15,4 15,5 15,6* 1,7*

Note: every YPbPr color marked with an asterisk (*) are out of the RGB gamut. This was intentionally do by designers to achieve the maximum number of colors for composite video monitors.

Note: black has always a Y luminance level of 0, so ignore the column's header values.

The Commodore 16 and Plus/4 have two graphic modes very similar to those of the Commodore 64: Multicolor and High Resolution.

  • In the Multicolor 160×200, 121-color mode, every cell of 4×8, 2:1 aspect ratio pixels can have one of four colors: two shared with the entire screen and the two background and foreground colors of the correspondent text mode character, all of them freely selectable among the entire 121-color palette (hue 0 to 15 and luminance 0 to 7 are set individually for any of them).
  • In the High Resolution 320×200, 121-color mode, every cell of 8×8 pixels can have one of the two background and foreground colors of the correspondent text mode character, both freely selectable among the entire 121-color palette (again setting both the hue and the luminance).
Image:Screen_color_test_CommodorePlus4_Multicolor.png Image:Screen_color_test_CommodorePlus4_HighRes.png

[edit] Sinclair

[edit] ZX Spectrum

Image:ZXSpectrum_palette_sample_image.png Image:ZXSpectrum_palette_color_test_chart.png

The ZX Spectrum (and compatibles) computers uses a variation of the 4-bit RGBI palette philosophy. This results in each of the colors of the 3-bit palette to have a basic and bright variant, with the exception of black.

The production method to generate the colors is having the eight basic 3-bit RGB combinations at maximum voltage level (the bright right column of the table below), being the black the complete absence (0.0V for red plus 0.0V for green plus 0.0V for blue), and a second repertoire of the former but lowering the voltage levels to give near one-half brightness on screen (the basic left column). Due this, black is the same in both variants. The principle is the same one that in the case of the color test card of the TV broadcasting stations.

Image:ZXSpectrum_palette.png

Color number Binary value BRIGHT 0 BRIGHT 1
0 000 black black
1 001 basic blue bright blue
2 010 basic red bright red
3 011 basic magenta bright magenta
4 100 basic green bright green
5 101 basic cyan bright cyan
6 110 basic yellow bright yellow
7 111 basic white bright white

The attribute byte assocciated to every 8×8 pixels cell dedicates (from LSB to MSB): three bits for the background color; three bits for the foreground color; one bit for the bright variant for both, and one bit for the flashing effect (alternate foreground and background colors evenly in time). So the colors are not selectable as indices of a true palette (there are not color numbers 8 to 15).

The color numbers in the Sinclair BASIC are: 0 for black; 1 for blue; 2 for red; 3 for magenta; 4 for green; 5 for cyan; 6 for yellow and 7 for white. This follows the bit pattern to give the blue primary a weight of 1, the red primary a weight of 2 and the green primary a weight of 4 (see the table above).

The color numbers can be employed with the following statements to choose:

  • BORDER n, the color for surrounding area outside the pixel graphical area.
  • PAPER n, the background (pixel bit value of 0) color for an 8×8 pixels cell.
  • INK n, the foreground (pixel bit value of 1) color for an 8×8 pixels cell.

In the Sinclair BASIC, the BRIGHT statement selects the repertorie to be used for any 8×8 pixels cell (a color attribute area). BRIGHT 0 selects the basic variants and BRIGHT 1 selects the bright one. Both basic and bright variants cannot be selected for two colors in a single 8×8 pixels cell at a time, due only one bit in the attribute byte are devoted to this task. Also, the BRIGHT statement does not affect the border color, thus only the basic darker variants can be selected for this element.

The following image simulates the parrot sample seen on a ZX Spectrum screen. No effort had been made to avoid the heavy attribute clash color square artifacts, and also it is not dithered (to see a better adaptation of the parrot image to the ZX Spectrum display, please visit the article ZX Spectrum graphic modes.)

Image:Screen_color_test_ZXSpectrum.png


[edit] Amstrad

[edit] CPC series

Image:AmstradCPC_palette_sample_image.png Image:AmstradCPC_palette_color_test_chart.png

The Amstrad CPC 464/664/6128 series of computers generate the available palette with 3-levels (not bits) for every RGB primary. Thus, there are 27 different RGB combinations, from which 16 can be simultaneously displayed in low resolution mode, four in medium resolution mode and two in high resolution mode.[6].

Image:AmstradCPC_palette.png
0 – Black (5) 1 – Blue (0,14) 2 – Bright blue (6) 3 – Red 4 – Magenta 5 – Violet 6 – Bright red (3) 7 – Purple 8 – Bright magenta (7)
9 – Green 10 – Cyan (8) 11 – Sky blue (15) 12 – Yellow (9) 13 – Grey 14 – Pale blue (10) 15 – Orange 16 – Pink (11) 17 – Pale magenta
18 – Bright green (12) 19 – Sea green 20 – Bright cyan (2) 21 – Lime green 22 – Pale green (13) 23 – Pale cyan 24 – Bright yellow (1) 25 – Pale yellow 26 – Bright white (4)

The number in parentheses means the primary ink number for the Locomotive BASIC PEN statement. A secondary ink number also exist, which only changes 14 for bright yellow and 15 for pink (both repeated).

Simulations of actual images over the Amstrad's color monitor in every of the modes (160×200, 16 colors; 320×200, 4 colors and 640×200, 2 colors) following. A cheaper green monochrome display was also available from the manufacturer; in this case, the colors are viewed as a 16-tone green scale, as shown in the last simulated image.

Image:Screen_color_test_AmstradCPC_16colors.png Image:Screen_color_test_AmstradCPC_4colors.png Image:Screen_color_test_AmstradCPC_2colors.png
Image:Screen_color_test_AmstradCPC_16colors_mono.png


[edit] MSX systems

[edit] Original MSX

Image:MSX_palette_sample_image.png Image:MSX_palette_color_test_chart.png

The MSX compatible computers features a Texas Instruments TMS9918 chip which uses a YPbPr proprietary 15 color palette[7] plus a transparent color, intended to be used by the hardware sprites and simple video overlay. When used as a ordinary background color, it renders simply black.

Here are shown the correspondent RGB equivalents at a saturation level of 54%. See the Notes on composite video colors section to convert relative YPbPr colors to RGB colors.

Image:MSX_palette.png
Number — name Y Pb (rel.) Pr (rel.) Number — name Y Pb (rel.) Pr (rel.)
0 — transparent 0 0 0 8 — medium red 0.53 -0.377 0.868
1 — black 0 0 0 9 — light red 0.67 -0.377 0.868
2 — medium green 0.53 -0.509 -0.755 10 — dark yellow 0.73 -0.755 0.189
3 — light green 0.67 -0.377 -0.566 11 — light yellow 0.80 -0.566 0.189
4 — dark blue 0.40 1 -0.132 12 — dark green 0.47 -0.453 -0.642
5 — light blue 0.53 0.868 -0.075 13 — magenta 0.53 0.377 0.491
6 — dark red 0.47 -0.321 0.679 14 — gray 0.80 0 0
7 — cyan 0.73 0.434 -0.887 15 — white 1 0 0

There is no apparent logic in this color selection.

The MSX have two text modes and two graphic modes. The MSX BASIC Screen 3 mode is a low resolution 64×48 pixels, 15-color mode, in which every pixel can be any of the colors. The Screen 2 mode is a high resolution 256×192 pixels, 15-color mode in which every eight consecutive pixels can be one of two out of 15 posible colors.

Image:Screen_color_test_MSX_Screen3.png Image:Screen_color_test_MSX_Screen2.png


[edit] MSX2

The MSX2 series features a Yamaha V9938 video chip which manages a 9-bit RGB palette (512 colors) and have some extended graphic modes. Although its graphical capabilities are similar, or even better than of those of 16-bit personal computers, MSX2 and MSX2+ (see below) are pure 8-bit machines.

The Screen 8 mode consists in a high resolution 256×212 pixels with 8-bit depth, 256 colors[8]. Bits in every byte are mapped (LSB to MSB): two for blue (four levels), three for red (eight levels) and three for green (again, eight levels). The higher order bits contain the brighter primary color (green) and the lower order bits contain the darker (blue). This mode has the half of the colors that the entire palette, and can be considered a proper palette in its own right.

Image:MSX2_Screen8_palette_sample_image.png Image:MSX2_Screen8_palette_color_test_chart.png
Image:MSX2_Screen8_palette.png

The Screen 5 and Screen 7 consist in high resolution 256×212 and 512×212 pixels, respectively, 16-colors out of 512. Every pixel can be of any of the 16 selected colors.

The Screen 6 consists in a 512×212, 4-color out of 512 mode.

Here are the simulated images for the Screen 8, Screen 5 & 7 and Screen 6 modes:

Image:Screen_color_test_MSX2_Screen8.png Image:Screen_color_test_MSX2_Screen5.png Image:Screen_color_test_MSX2_Screen6.png


[edit] MSX2+

The MSX2+ series features a Yamaha V9958 video chip which manages a 15-bit RGB palette internally encoded in YJK (up to 19,268 different colors from the 32,768 theorically possible)[9] and have even more extended graphic modes. Although its graphical capabilities are similar, or even better than of those of 16-bit personal computers, MSX2 (see above) and MSX2+ are pure 8-bit machines.

The Screen 10 & Screen 11 modes (technically the same but different for the MSX BASIC) are high resolution 256×212, 12,499 YJK colours plus a 16-color palette. The YJK technique encodes (for this mode) 16 levels of luminance for every pixel (stored in its four lower bits) and 64 levels of the average chroma, from -32 to +31, for every four consecutive pixels (stored in the three higher bits of the four pixels, 12 bits all together). If the 5th bit of the pixel is set, then the lower four bits of the pixel points to an indice in the 16-colors (out of 512, as the MSX2) palette; otherwise, they are the YJK luminance level of the pixel. The full YJK 12,499 color palette follows:

Image:MSX2plus_YJK&YAE_palette_sample_image.png Image:MSX2plus_YJK&YAE_palette_color_test_chart.png
Image:MSX2plus_YJK&YAE_palette.png

The Screen 12 mode is similar to the 10 & 11 modes, but it devoted five bits to encode 32 levels of luminance for every pixel, so it do not have a flag bit to switch to an indexed color. Thus, with this YJK encoding 19,268 different colors can be displayed simultaneously with only 8-bit pixel depth. Again, the full YJK 19,268 color palette follows:

Image:MSX2plus_YJK_palette_sample_image.png Image:MSX2plus_YJK_palette_color_test_chart.png
Image:MSX2plus_YJK_palette.png

In fact, the YJK color encoding can be viewed as a lossy compression technique; in the RGB to YJK conversion, the average levels of red and green components are preserved, while that for the blue is subsampled. Due to sharing the chroma color differences among every four pixels, in the Screen 12 mode it is not possible to have vertical lines of a single arbitrary given color. Only in the Screen 10 & 11 modes can be mixed pure 16 indexded colors with a rich colorful background, in what it can be conceived as a primitive video overlay technique.

Here are the simulated images for the Screen 10 & 11, and Screen 12 modes:

Image:Screen_color_test_MSX2plus_Screen10&11.png Image:Screen_color_test_MSX2plus_Screen12.png


[edit] IBM PC/XT and compatible systems

For the palettes of more advanced original IBM AT, IBM PS/2 and better PC compatibles hardware displays, please visit IBM PC-AT and compatible systems in the List of 16-bit computer hardware palettes article.

The original IBM PC launched in 1981 features an Intel 8088 CPU which was 8-bit data bus technology. It was offered with a Monochrome Display Adapter (MDA) or a Color Graphics Adapter (CGA) display adapter. The MDA was a text mode only display adapter, without any graphic ability beyond using the built-in code page 437 character set, and employed an original IBM green monochrome monitor; only black, green and highlighted green could be seen on its screen. Then, only the CGA had true graphic modes.

Despite of the fact that the original IBM XT had a true 16-bit architecture, it already shipped both the original MDA or CGA display adapters, so this model is enumerated here too.

[edit] CGA

Image:CGA_palette_sample_image.png Image:CGA_palette_color_test_chart.png

The Color Graphics Adapter (CGA) outputs what IBM called "digital RGB"[10] (that is, RGBI signals from card to the monitor can only have two on/off states) and supports 16 colours. However, 320×200 graphic mode is restricted to fixed palettes containing only four colors, and the 640×200 graphic mode is only two colors.

The full palette is a variant of the 4-bit RGBI schema. Although the RGBI signals have only two states, the CGA color monitor decodes them as if RGB signals have four levels. Darker colors are the basic RGB 2nd level signals except for brown, which is dark yellow with the level for the green component halved (1st level). Brighter colors are made by adding an uniform intensity one level signal to every RGB signal of the dark ones reaching the 3rd level (except dark gray which reaches only the 1st level), and in this case yellow is produced as if the brown were ordinary dark yellow.

Image:CGA_palette.png
0 — black 8 — dark gray
1 — low blue 9 — high blue
2 — low green 10 — high green
3 — low cyan 11 — high cyan
4 — low red 12 — high red
5 — low magenta 13 — high magenta
6 — brown 14 — yellow
7 — light gray 15 — white

A few earlier non-IBM compatible CGA monitors lack the circuitry to decode color numbers as of four levels internally, and they cannot to show brown and dark grey. The above palette is displayed in such monitors as follows:

0 — black 8 — black
1 — low blue 9 — high blue
2 — low green 10 — high green
3 — low cyan 11 — high cyan
4 — low red 12 — high red
5 — low magenta 13 — high magenta
6 — low yellow 14 — yellow
7 — light gray 15 — white
  • 16-color palette modes
The only full 16-color BIOS modes of the CGA are the text mode 0 (40×25) and mode 2 (80×25). Disabling the flashing attribute effect and using the IBM 437 codepage block characters 220 (DCh) (bottom half) or 223 (DFh) (upper half), the mode 2 screen buffer provides an 80×50 quasi-graphic mode.
Also, a tweak mode can be set in the CGA to give an extra, non-standard 160×100 pixels 16 color graphic mode.
In this modes, the sample image would render approx. like those, respectively:
Image:Screen_color_test_CGA_16colors_80x50.png Image:Screen_color_test_CGA_16colors_160x100.png


  • 4-color palette modes
In the 320×200 graphic mode, every pixel has two bits. A value of 0 is always a selectable background-plus-border color (with the same register and/or BIOS call used for the foreground color in the 640×200 graphic mode; black by default), and the three remaining values 1 to 3 are indexes to a one of the predefined color palettes entries.
The selection of a given fixed palette is a bit complex. There are two BIOS 320×200 graphic modes. The mode number 4 has enabled the composite color burst output (CRT Mode Control Register in 3D8H has cleared the bit 2), and the mode number 5 has it disabled (bit 2 set on the register). This gives two sets of palettes, one for "digital RGB" color monitors and one for monochrome composite video monitors, but the last has its own colors when viewed in a color monitor.
The desired video mode, 4 or 5, can be set with the function 0h of the BIOS's INT 10h.
For the BIOS mode 4, two palettes can be chosen: green-red-yellow and cyan-magenta-white (that is, the former plus the blue signal). The palette is selected with the bit 5 of the CRT Color Selector Register in 3D9h. A value of 1 means the cyan-magenta-white palette (known as the "palette #1" because is the default for the mode 4), and 0 is the green-red-yellow (known as the "palette #2"). It can be set with the function 0Bh, subfunction 1, of the BIOS's INT 10h.
The palette for the BIOS mode 5 is always cyan-red-white.
In every of the 4 and 5 mode palettes, a low or high intensity can be chosen with the bit 4 of the CRT Color Selector Register in 3D9h. A value of 0 means the low intensity, and 1 means the high. No BIOS call exist to switch between the two intensity modes.
  • Mode 4, palette #1, low intensity:
0 — [user-defined]
1 — cyan
2 — magenta
3 — light grey
The sixteen combinations with the background color are:
0 1 _ 0 1 _ 0 1 _ 0 1 * 0 1 _ 0 1 * 0 1 _ 0 1 *
2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _
0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _
2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _
(*) Unuseful due to the duplication of one of the colors.


  • Mode 4, palette #1, high intensity:
0 — [user-defined]
1 — bright cyan
2 — bright magenta
3 — bright white
The sixteen combinations with the background color are:
0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _
2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _
0 1 _ 0 1 _ 0 1 _ 0 1 * 0 1 _ 0 1 * 0 1 _ 0 1 *
2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _
(*) Unuseful due to the duplication of one of the colors.


  • Mode 4, palette #2, low intensity:
0 — [user-defined]
1 — green
2 — red
3 — brown
The sixteen combinations with the background color are:
0 1 _ 0 1 _ 0 1 * 0 1 _ 0 1 * 0 1 _ 0 1 * 0 1 _
2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _
0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _
2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _
(*) Unuseful due to the duplication of one of the colors.


  • Mode 4, palette #2, high intensity:
0 — [user-defined]
1 — bright green
2 — bright red
3 — yellow
The sixteen combinations with the background color are:
0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _
2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _
0 1 _ 0 1 _ 0 1 * 0 1 _ 0 1 * 0 1 _ 0 1 * 0 1 _
2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _
(*) Unuseful due to the duplication of one of the colors.


  • Mode 5, low intensity:
0 — [user-defined]
1 — cyan
2 — red
3 — light grey
The sixteen combinations with the background color are:
0 1 _ 0 1 _ 0 1 _ 0 1 * 0 1 * 0 1 _ 0 1 _ 0 1 *
2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _
0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _
2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _
(*) Unuseful due to the duplication of one of the colors.


  • Mode 5, high intensity:
0 — [user-defined]
1 — bright cyan
2 — bright red
3 — white
The sixteen combinations with the background color are:
0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _
2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _
0 1 _ 0 1 _ 0 1 _ 0 1 * 0 1 * 0 1 _ 0 1 _ 0 1 *
2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _ 2 3 _
(*) Unuseful due to the duplication of one of the colors.
When viewed in a monochrome composite monitor, the mode 5 palettes above are shown as a (more or less brighter) 2-bit grayscale palette:
Image:Screen_color_test_CGA_4colors_mono.png


  • 2-color palette mode
In the 640×200 graphic mode (BIOS mode number 6), every pixel has only a single bit. A value of 0 is always black, while a value of 1 is the color set in the bits 0 to 3 (bit3=I, bit2=R, bit1=G, bit0=B) of the CRT Color Selector Register (in 3D9h). The foreground color can be set with a call to the function 0Bh of the BIOS's INT 10h. The default foreground color is white.
0 — black
1 — [user-defined]
The sixteen combinations are:
0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _
0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _ 0 1 _


[edit] PCjr and Tandy 1000 series

Although not fully compatible with the original IBM PC, the IBM PCjr and their near compatible Tandy 1000 series competitors feature a graphic chip known as "Video Gate Array" (not to be confused with the most widely known Video Graphics Array, despite of the fact that both share the same achronym VGA), which is able to show all 16 CGA colors simultaneously on screen in the extended low-res graphic modes 160×100 and 160×200, and mid-res 320×200. Here is the sample image using their exclusive low-res 160×200 mode, 2:1 pixel ratio:

Image:Screen_color_test_PCjr_16colors_160x200.png

They also support an additional high-res 640×200 mode using any of the same 4 color mid-res 320×200 CGA palettes (see the CGA section above).

[edit] Notes

  1. ^ http://oldcomputers.net/byteappleII.html
  2. ^ http://home.freeuk.net/fpgaarcade/resources/6561.txt
  3. ^ All you ever wanted to know about the colors of the commodore 64
  4. ^ Commodore Hacking #12 : Talking to TED
  5. ^ Color codes
  6. ^ "The Amstrad CPC Firmware Guide"
  7. ^ VDP Registers 00h-07h: Basic MSX1/MSX2 Video Registers from "Portar MSX Tech Doc"
  8. ^ Bits M1-M5 of VDP Register 0 and 1: Video Screen modes, Screen 8 from "Portar MSX Tech Doc"
  9. ^ The MSX Plaza
  10. ^ Richard Wilton, Programmer's Guide to PC & PS/2 VIDEO SYSTEMS, 1987, Microsoft Press.

[edit] See also