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




Регистр данных таблицы цветов (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




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