INT 10H 1000H: Set One Palette Register
Compatibility: EGA VGA
Expects: AX 1000H
BL register number to set (a 4-bit attribute nibble: 00-0fH)
BH 6-bit RGB color to display for that attribute
──────────────────────────────────────────────────────────────────
Returns: (none)
──────────────────────────────────────────────────────────────────
Info: This sets a specified palette register on and EGA/VGA card to a
specified 6-bit RGB value; thereby changing the color that is
displayed for a graphics-mode color and a text-mode attribute.
BL is a palette register, 00H=0fH. By default the palette is
programmed with the 16 colors described in the Video Attributes
topic.
BH is a 6-bit rgbRGB color setting, as follows:
╓7┬6┬5┬4┬3┬2┬1┬0╖
║ │r│g│b│R│G│B║ Note: R,G,B are 2/3-intensity
╙─┴─┴╥┴╥┴╥┴╥┴╥┴╥╜ bit r,g,b are 1/3-intensity
║ ║ ║ ║ ║ ╚═► 0: 01H Blue
║ ║ ║ ║ ╚═══► 1: 02H Green
║ ║ ║ ╚═════► 2: 04H Red
║ ║ ╚═══════► 3: 08H blue' (also MDA-emulation underline)
║ ╚═════════► 4: 10H green' (also CGA-emulation intensity)
╚═══════════► 5: 20H red'
For example, video attribute 07H usually means white-on-black.
But after calling this with BL=00H and BH=24H, you have changed
all "black" attributes to mean "bright red", so video attribute
07H now displays as white characters on a bright red background
and 70H displays as bright red on white.
Notes: EGA/VGA BIOS does not check the validity of BL and will program
any of the ATC registers to the value in BH. Thus, you can use
this to modify the border color, mode control and other ATC
registers at port 3c0H. See EGA I/O Ports.
See Also: INT 10H 10H: EGA/VGA Palette Functions
INT 10H: Video Services
EGA/VGA Data Areas
-♦-