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



         

Регистр состояния 1 (Input Status Register 1 - ISR0) - часть 3


; устанавливаем регистр es на сегмент с нулевым адресом

mov ax,0h mov es,ax

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

mov dx,es:[463h]

; вычисляем адрес порта регистра состояния 1 (ISR1); ; это достигается добавлением к адресу порта ; индексного регистра 6, так как адрес порта регистра ; состояния 1 равен 3BAh или 3DAh в зависимости от режима ; работы видеоадаптера (монохромный или цветной)

add dl,6

; читаем содержимое порта регистра состояния 1

in al,dx

; тестируем бит D3 регистра состояния 1 ; бит D3 = 1 во время обратного вертикального хода луча

test al,8 jz wait_on

wait_off:

in al,dx

; тестируем бит D3

test al,8

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

jnz wait_off

wait_on:

in al,dx test al,8

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

jz wait_on ; ; здесь могут распологаться операции, которые необходимо ; выполнить во время обратного вертикального хода луча ; } }




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