Графические устройства


Регистры цвета видеокарты



Регистры цвета видеокарты

На видеокартах имеется 256 регистров DAC, в которых хранятся коды базовых цветов. Они применяются только при работе в видеорежимах packed pixel graphics и не используются в режимах direct color. Базовых цветов три — красный, зеленый и синий. В соответствии со стандартом IBM VGA код базового цвета занимает 6 двоичных разрядов. У некоторых современных видеокарт, например Matrox, появилась возможность увеличения размера кода до 8 разрядов. В таком случае в поле capabilities будет установлен нулевой разряд (см, описание функции 4F00h).

Функция 4F08h Get/set DAC Palette Control предназначена для определения или изменения размера кода базовых цветов, хранящихся в регистрах цвета. Для установки нового размера регистр ы очищается (код 0), а в регистр bh записывается нужный размер кода базового цвета в битах. Для чтения установленного размера базовых цветов в регистр ы записывается код 1, а текущий размер возвращается в регистре bh.

Если видеокарта не позволяет изменить размер кода, то при попытке установки указанная в bh величина заменяется на 6.

Таков полный перечень функций VBE 1.2. Возможно, вы обратили внимание на отсутствие в нем функций, выполняющих запись кодов точек в видеопамять или их чтение. Такие функции просто не нужны, поскольку возможны непосредственные запись и чтение содержимого байтов, слов или двойных слов видеопамяти, т. е. в ней могут находиться операнды команд.

В расположенной на видеокарте BIOS сохранились функции записи и чтения кодов точек во всех графических стандартах IBM. Их вызов осуществляется
через прерывание int 10h, коды запросов ось для записи точки и ODh для чтения. Эти функции нужны только в тех случаях, когда при работе с видеопамятью используются внутренние регистры видеокарты. Уже с появлением режима VGA IBM необходимость в их использовании при программировании отпала.

В заключение следует отметить, что последующие версии VBE совместимы сверху вниз с VBE 1.2, поэтому описанные функции выполняют все современные видеокарты. Вероятность массового выпуска видеокарт, рассчитанных только на 32-разрядный режим работы, маловероятна из соображений совместимости.












Начало  Назад