Function 10h Set Palette Registers (PCjr, Tandy 1000, EGA, MCGA, VGA)
entry AH 10h
AL 00h set individual palette register
BH color value to store
BL palette register to set
(on MCGA, only BX = 0712h is supported)
01h set border color palette register
BH color value to store
02h set all palette registers and overscan
ES:DX pointer to 17-byte list
bytes 0-15 values for palette regs. 0-15
byte 16 value for border color register
03h toggle blink/intensity bit (Jr, EGA, MCGA, VGA)
BL 00h enable intensity
01h enable blink
04h unknown
05h unknown
06h unknown
07h read individual palette register (VGA)
BL palette register number
return BH palette register value
08h read overscan (order color) register (VGA)
return BH value
09h read all palette registers and overscan register (VGA)
ES:DX pointer to buffer address (17 bytes)
10h set individual video DAC color register (MCGA, VGA)
BX register number
CH new value for green (0-63)
CL new value for blue (0-63)
DH new value for red (0-63)
11h unknown
12h set block of video DAC color registers (MCGA, VGA)
BX starting color register
CX number of registers to set
ES:DX table of 3*CX bytes where each 3 byte group
represents one byte each of red, green and
blue (0-63)
13h set video DAC color page (VGA)
BH 00h select 4 blocks of 64
BH 01h select 16 blocks of 16
BL 00h select paging mode
BL 01h select Page
BH page number (00h to 03h) or (00h to 0Fh)
(not valid in mode 13h)
14h unknown
15h read individual video DAC color register (MCGA, VGA)
BL palette register number
return DH red value
CH green value
CL blue value
16h unknown
17h read block of video DAC color registers (MCGA, VGA)
BX starting palette register
CX number of palette registers to read
ES:DX buffer (3 * CX bytes in size)
return CX number of red, green and blue triples in buffer
18h *UNDOCUMENTED* set PEL mask
BL new PEL value
19h *UNDOCUMENTED* read PEL mask
BL value read
1Ah read video DAC color-page state (VGA)
return BL paging mode
0 four pages of 64
1 sixteen pages of 16
BH current page
1Bh perform gray-scale summing (MCGA, VGA)
BX starting palette register
CX number of registers to convert
BH color value
BL if AL=00h palette register to set (00h-0Fh)
if AL=03h 0 to enable intensity
1 to enable blinking
ES:DX if AL=02h pointer to 16-byte table of register values
followed by the overscan value:
bytes 0-15 values for palette registers 0-15
byte 16 value for border register
return none
note DAC is Digital to Analog Convertor circuit in MCGA/VGA chips