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



Положение подчеркивания символа (ULR) (индекс14h) - часть 2


mov dx,es:[463h]

; выбираем для обмена регистр максимальной линии сканирования ; этот регистр задает высоту символов на экране дисплея

mov al,9 out dx,al

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

inc dx

; биты D4-D0, регистра максимальной линии сканирования содержат ; число, меньшее на единицу, чем высота символов в пикселах

mov al,CHAR_SIZE-1 out dx,al

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

dec dx

; выбираем для обмена регистр положения подчеркивания

mov al,14h out dx,al

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

inc dx

; определяем положение подчеркивания символов

mov al,CHAR_SIZE out dx,al

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

dec dx

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

; регистр завершения отображения вертикальной развертки ; содержит восемь младших бит, определяющих число отображаемых ; горизонтальных линий растра минус один

mov al,12h out dx,al

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

inc dx

; для отображения 43 текстовых символов, при высоте символов ; 8 пикселов, необходимо иметь 43 * 8 = 344 горизонтальных ; линий растра

; помещаем в регистр завершения отображения вертикальной ; развертки младшие 8 бит числа 344

mov al,(43 * CHAR_SIZE - 1 - 256) out dx,al

; устанавливаем новые значения переменных BIOS

; число символов в строке равно восьмидесяти

mov WORD PTR es:[44Ah],80

; число строк текста минус один

mov BYTE PTR es:[484h],(350/CHAR_SIZE)-1

; высота символов в пикселах

mov WORD PTR es:[485h],CHAR_SIZE

; загружаем нулевую таблицу знакогенератора, расположенную во втором ; цветовом слое, набором символов (размера 8х8 пикселов) из ПЗУ BIOS

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

mov ax,1112h xor bl,bl int 10h } }




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