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

Управление атрибутом мигания и атрибутом интенсивности - подфункция 03h

Управляет битом D7 байта атрибутов символа (см. главу "Атрибуты символов"):

На входе:

AH

10h

AL

03h - управление битом D7 байта атрибутов

BL

0 - бит D7 байта атрибутов управляет интенсивностью фона символов (символы не мигают),

1 - бит D7 байта атрибутов управляет миганием символов

На выходе:

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

Функция ControlBlinkIntens, представленная листингом 5.4, иллюстрирует использование подфункции 03h для управления атрибутами символов.

Листинг 5.4. Файл CNRBLINK.C

//=========================================================== // void ControlBlinkIntens(unsigneg char blink) // Функция управляет назначением бита D7 байта атрибутов // символа // Параметры: // blink - если параметр функции равен нулю, то бит D7 // будет определять интенсивность фона символа. Если // параметр равен единице, то бит D7 управляет миганием // символа //=========================================================== ControlBlinkIntens(unsigneg char blink) { union REGS inregs, outregs; // Функция управления контроллером атрибутов inregs.h.ah = 0x10; // Подфункция управления атрибутом мигания/интенсивности inregs.h.al = 0x3; inregs.h.bl = blink; int86( 0x10, &inregs, &outregs ); }

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

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

На входе:

AH

10h

AL

07h - чтение регистра палитры

BL

Номер регистра палитры (0-15)

На выходе:

BH

Значение указанного регистра палитры

mov ah,10h mov al,7h mov bl,num_reg int 10h mov reg_value,bh

Чтение регистра цвета рамки - подфункция 08h

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

На входе:

AH

10h

AL

08h - чтение регистра цвета рамки

На выходе:

BH

Значение регистра цвета рамки

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

Функция позволяет прочитать значения всех регистров палитры и регистра цвета рамки. Для чтения регистров надо зарезервировать буфер в оперативной памяти размером 17 байт. После вызова функции байты 0 - 15 этого буфера будут содержать значения соответствующих регистров палитры, а байт 16 - значение регистра цвета рамки.

На входе:

AH

10h

AL

9 - чтение всех регистров палитры

ES:DX

Указатель на буфер размером 17 байт

На выходе:

ES:DX

Указатель на буфер, заполненный значениями из регистров палитры и регистра цвета рамки

Приведем фрагмент программы, который считывает значения всех регистров палитры и регистра цвета рамки в буфер памяти buffer:

; Определяем адрес буфера для записи значений регистров ; палитры и регистра цвета рамки mov ax,SEG buffer mov es,ax mov dx,OFFSET buffer ; Считываем значения всех регистров палитры и регистра ; цвета рамки mov ah,10h mov al,9 int 10h

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

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

На входе:

AH

10h

AL

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

BX

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

DH

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

CH

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

CL

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

На выходе:

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

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

mov ah,10h ; Выбираем функцию установки регистра цветов mov al,ah ; Устанавливаем номер регистра таблицы цветов mov bx,num_reg ; Определяем величины красной, зеленой и синей составляющих mov dh,red mov ch,green mov cl,blue int 10h