даже у википедиков есть
https://en.wikipedia.org/wiki/Video_Graphics_Array...
но дефолтная палитра - это не догма, её же можно переопределить через порты.
в порт 3C8h выдать номер цвета, значение которого будет меняться, потом в порт 3C9h по очереди выдать красную, зелёную и синюю компоненты в диапазоне 0-63. если менять несколько цветов подряд, то даже не нужно переход на следующий отправлять - оно автоматом переключит после приёма трёх компонент. то есть на практике получается код типа такого:
; генерация ядовито-зелёной градиентной палитры
mov dx,3C8h
xor ax,ax
out dx,al
inc dx
xchg ax,cx
genpal:
mov al,cl
shr al,4
out dx,al
mov al,cl
shr al,2
out dx,al
mov al,0
out dx,al
inc cl
jnz genpal