Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование видеоадаптеров EGA, VGA и SVGA.doc
Скачиваний:
138
Добавлен:
01.05.2014
Размер:
4.51 Mб
Скачать

Установка нескольких регистров таблицы цветов (регистров цап) - подфункция 12h

Функция производит запись 18-битной величины в несколько последовательно расположенных регистров таблицы цветов:

На входе:

AH

10h

AL

12h - установка нескольких регистров таблицы цветов

BX

Номер первого регистра таблицы цветов (0-255)

CX

Количество регистров для записи (1-256)

ES:DX

Адрес таблицы цветов

На выходе:

Не используются

Таблица цветов содержит по три байта на один регистр таблицы цветов. В каждом байте значимыми являются только 6 младших бит.

Выбор подмножества цветов - подфункция 13h ???

Функция предназначена для выбора числа подмножеств цветов и выбора активного подмножества:

На входе:

AH

10h

AL

13h - выбор подмножества цветов

BL

0 - выбор режима

BH

0 - 4 подмножества из 64 цветов

1 - 16 подмножеств из 16 цветов

BL

1 - выбор активного подмножества

BH

Номер подмножества (0-4 или 0-15)

На выходе:

Не используются

Приведем фрагмент программы использующий данную функцию:

; Выбираем режим (bh = 1) mov ah,10h mov al,13h xor bx,bx inc bh int 10h ; Устанавливаем активное подмножество subset_num mov ah,10h mov al,13h mov bl,1 mov bh,subset_num int 10h

Чтение регистра таблицы цветов - подфункция 15h

Функция поддерживается только для видеоадаптеров VGA и SVGA. Она выполняет чтение одного из регистров таблицы цветов:

На входе:

AH

10h

AL

15h - чтение регистра таблицы цветов

BL

Номер регистра (0-255)

На выходе:

DH

Интенсивность красного цвета (6 бит)

CH

Интенсивность зеленого цвета (6 бит)

CL

Интенсивность синего цвета (6 бит)

Следующий пример позволяет считать значение регистра таблицы цветов с номером num_color_reg:

mov ah,10h mov al,15h mov bx,num_color_reg int 10h mov red_data,dh mov green_data,ch mov blue_data,cl

Чтение нескольких регистров таблицы цветов (регистров цап) - подфункция 17h

Функция производит чтение 18-битовых значений из нескольких последовательно расположенных регистров таблицы цветов:

На входе:

AH

10h

AL

17h - чтение нескольких регистров таблицы цветов

BL

Номер первого регистра таблицы цветов (0 -255)

CX

Количество регистров для чтения (1-256)

ES:DX

Адрес буфера для таблицы цветов

На выходе:

ES:DX

Данные прочитанные из таблицы цветов

Таблица цветов содержит по три байта на один регистр таблицы цветов. В каждом байте значащими являются только младшие 6 бит.

Определение режима подмножества цветов - подфункция 1Ah ???

Возвращает количество текущих цветовых подмножеств:

На входе:

AH

10h

AL

1Ah - определение числа цветовых подмножеств

На выходе:

BL

0 - используются 4 цветовых подмножества по 64 цвета;

1 - используются 16 цветовых подмножеств по 16 цветов

BH

Номер подмножества, используемого в данный момент

mov ah,10h mov al,1ah int 10h mov num_subset,bh