Программирование видеоадаптеров


Регистр данных таблицы цветов (Look-up Table Data Register - LTDR) - часть 4


 

; в цветных - порт 3D4h

 

mov   dx,es:[463h]


 

; Вычисляем адрес порта регистра состояния 1, в

 

; монохромных режимах для адресации к регистру состояния 1

 

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

 

add   dx,6


 

pop   es


 

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

 

in    al,dx

 

nop

 

nop


 

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

 

; вертикальный ход луча

 

test  al,08h

 

jz    wait_on


wait_off:


 

in    al,dx

 

nop

 

nop

 

test  al,08h

 

jnz   wait_off


wait_on:


 

in    al,dx

 

nop

 

nop

 

test  al,08h

 

jz    wait_on


 

; Устанавливаем индекс первого записываемого регистра

 

; таблицы цветов


 

mov   dx,3C8h


 

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

 

; регистра


 

mov   ax,1

 

out   dx,al


 

; Задержка


 

nop

 

nop


 

; Устанавливаем DS:SI на массив данных, записываемых

 

; в регистры таблицы цветов

 

mov   ax,seg_table

 

mov   ds,ax

 

mov   si,off_table


 

; Загружаем 256 регистров (по 3 байта на регистр)

 

mov   cx,(256 * 3)


 

; Выбираем регистр данных таблицы цветов (порт 3C9h)

 

mov   dx,3C9h


 

cld


 

; Загружаем все регистры таблицы цветов


get_reg:


 

lodsb

 

out   dx,al

 

nop

 

nop

 

loop  get_reg


 

; Восстанавливаем регистр DS

 

pop   ds


 

leave

 

ret 4


 

ENDP    SETVGADAC


ENDS      VGA_TEXT


END




Начало  Назад  Вперед



Книжный магазин