Загрузка регистров цифрово-аналогового преобразования (DAC - регистров) в адаптере VGA

Загрузка регистров цифрово-аналогового преобразования в адаптере VGА базируется на тройке шестерок битов. Каждые пять битов соответствуют одному из основных цветов: красному, синему, зеленому.

Эти три шестерки находятся в одном из 64 возможных регистров цифрово - аналогового преобразования. Управляются эти регистры функцией AH=10h и ее подфункциями. Подфункция AL.= 07h в регистр ВН возвращает значение регистра палитры, номер которого задается в регистре BL.

При AL = 08h в BH возвращается цвет периферии экрана. При AL = 09 в буфер, на начало которого указывает ES: DX записываются значения всех регистров палитры.

Подфункция AL =10h устанавливает в заданное значение ДАС - регистр, номер которого задает значение BL. Новое значение ДАС - регистра определяется так. 6 младших бит регистра CH определяют интенсивность зеленого цвета, 6 младших бит регистра CL определяют интенсивность синего цвета, а 6 младших бит регистра DH - интенсивность красного.

Подфункция AL = 12h устанавливает в заданное положение группу подряд расположенных регистров из буфера., на начало которого указывает ES:DX.

В регистре BX указывается номер первого переопределяемого ДАС -регистра, а в СХ - их общее число.

Подфункция AL = 12h устанавливает формат цветовой страницы и позволяет выбрать в качестве активной заданную страницу. Если BL = 0, выбирается формат страницы. При этом ВН = 00 задает режим с 4 блоками по 64 ДАС - регистра, ВН = 1 режим с 16 блоками по 16 ДАС - регистров в блоке.

Если BL = 1, то выбирается активная цветовая страница. При этом значение в BH задает номер страницы. Для режима с 4 цветовыми страницами BH = 0; I; 2; 3. Для другого режима с 16 страницами BН = 00 – 0Fh. Значение, записанное в конкретный ДАС - регистр может быть прочитано функцией AX = 1015h. При этом BХ задает номер читаемого регистра. В результате в регистре СН возвращаются 6 младших бит, определяющих интенсивность зеленого цвета, в CL - 6 младших бит для синего цвета и в ДН - то же красного цвета.

Аналогично можно прочитать целый блок регистров. Для этого используется функция AХ =1017h. Блок читается из буфера, на начало которого
указывает ES:DX. В регистре ВХ указывается номер первого ДАС - регистра, а в СХ - их общее число.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: