BIOS color attributes

From HandWiki
Revision as of 16:16, 6 February 2024 by Gametune (talk | contribs) (simplify)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

A BIOS Color Attribute is an 8 bit value where the low 4 bits represent the character color and the high 4 bits represent the background color. The name comes from the fact that these colors are used in BIOS interrupts, specifically INT 10h, the video interrupt. When writing text to the screen, a BIOS color attribute is used to designate the color to write the text in. For example, to print a white character with a black background, a color attribute of 0Fhex would be used. The high four bits are set to 0000bin, representing the background color, black. The low 4 bits, 1111bin, represent the foreground color, white. The highest bit of the color attribute, which is also the highest bit of the background color can take over two functions. It can either have no influence on the background color making text blink when set, effectively limiting the available background colors to only eight, or if intensive background colors are enabled the full 16 colors become available but blinking is no longer available. This behavior can be changed, i.e., using BIOS interrupt 10hex, function 1003hex. By default, when using the BIOS interrupt, the highest bit controls the brightness of colors, and not blinking, but this behavior may differ in other implementations of BIOS colors[citation needed]. [1] This 16 colour palette is often used in console programs (e.g. cmd in Windows) and sometimes for chat in games (e.g. Minecraft).[2]

List of BIOS color attributes

Dec Hex Binary Color
0 0 0000 Black
1 1 0001 Blue
2 2 0010 Green
3 3 0011 Cyan
4 4 0100 Red
5 5 0101 Magenta
6 6 0110 Brown
7 7 0111 Light Gray
8 8 1000 Dark Gray
9 9 1001 Light Blue
10 A 1010 Light Green
11 B 1011 Light Cyan
12 C 1100 Light Red
13 D 1101 Light Magenta
14 E 1110 Yellow
15 F 1111 White

By default, there are 16 colors for text and only 8 colors for background.

There is a way to get all the 16 colors for background, which requires turning off the "blinking attribute".

See also

References