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