Программирование видеоадаптеров CGA, EGA и VGA



         

Регистр сравнения линий (Line Compare Register - LCR) (индекс18h) - часть 2


_asm {

; устанавливаем регистр es на начало оперативной памяти

xor ax,ax mov es,ax

; получаем адрес порта индексного регистра контроллера ЭЛТ ; (3B4h/3D4h), ; в монохромных режимах для адресации к индексному регистру ; используется порт с адресом 3B4h, а в цветных - порт 3D4h

mov dx,es:[463h]

; вычисляем адрес порта регистра состояния 1, ; в монохромных режимах для адресации к регистру состояния 1 ; используется порт с адресом 3BAh, а в цветных - порт 3DAh

add dx,6

; ожидаем начало обратного вертикального хода луча

in al,dx nop

; если бит D3 равен единице, то происходит обратный ; вертикальный ход луча

test al,8 jz wait_on

wait_off:

in al,dx

; задержка

nop test al,8 jnz wait_off

wait_on:

in al,dx nop test al,8 jz wait_on

; вычисляем адрес порта индексного регистра контроллера ЭЛТ ; (3B4h/3D4h)

sub dx,6

; выбираем для обмена регистр сравнения линий

mov al,18h out dx,al

; вычисляем адрес порта регистра данных контроллера ЭЛТ, ; в монохромных режимах для адресации к регистру данных ; используется порт с адресом 3B5h, а в цветных - порт 3D5h

inc dx

; определяем линию горизонтальной развертки, в которой происходит ; разделение экрана дисплея

mov ax,split_line

; у видеоадаптера EGA регистр сравнения линий состоит из 9 бит, ; доступ к девятому биту происходит через дополнительный регистр ; контроллера ЭЛТ; ; видеоадаптер VGA имеет еще и десятый бит, расположенный в регистре ; высоты символов текста

; записываем младшие 8 битов в регистр сравнения линий

out dx,al

; вычисляем адрес порта индексного регистра контроллера ЭЛТ

dec dx

; вызываем функцию чтения конфигурации видеосистемы, ; данная функция подробно описана в главе ; "Дополнительные средства BIOS для управлния EGA и VGA"

mov ax,1A00h int 10h

; если после вызова функции регистр al не равен 1Ah, то используемый ; видеодаптер не VGA

cmp al,1Ah je vga jmp ega

vga:

; считываем в al состояние дополнительного регистра

mov al,7 out dx,al inc dx in al,dx

; модифицируем бит D4 дополнительного регистра




Содержание  Назад  Вперед