Программирование EGA и VGA
¦ ПОДФУНКЦИЯ 30h
Регистры (устанавливаются до вызова функции):
---------------------------------------------
AL: установить 30h
BH: 0-возвращает текущее состояние INT 1fh
1-возвращает текущее состояние INT 43h
2-возвращает размещение набора символов ПЗУ 8х14
3-возвращает размещение набора символов ПЗУ 8х8
4-возвращает размещение верхней части (ASCII-коды,
начиная с 128) набора символов ПЗУ 8х8
5-возвращает размещение альтернативного набора
символов ПЗУ 9х14*
6-возвращает размещение набора символов ПЗУ 8х16
f-возвращает размещение альтернативного набора
символов ПЗУ 9х16*
---------------------------------------------
Регистры (чтение выполняется после обращения):
---------------------------------------------
CX: число точек (байтов на символ)
DL: строки
ES: сегмент возвращаемого адреса
BP: смещение возвращаемого адреса
---------------------------------------------
* Монохромный адаптер использует некоторые символы, которые
несколько отличаются от их эквивалентов на ESD (например,
"М" и "$"). Отмеченная символом * таблица содержит символы-
заменители для алфавитно-цифрового режима 7. Символы 9х14
определены как символы 8х8. Если символ представляет собой
код блочной графики, его 9-й столбец не отличается от 8-го,
иначе 9-й столбец остается пустым.
Форма символьной таблицы ASCII
-------- 0h
-------- 0h
-------- 7eh
-------- 8lh
-------- a5h
-------- 8lh
-------- 8lh
-------- bdh
-------- 99h
-------- 8lh
-------- 7eh
-------- 0h
-------- 0h
-------- 0h
db 14 dup(0) ;ASCII 0
db 0,0,7eh,81h,a5h,81h,81h ;ASCII 1
db bdh,99h,81h,7eh,0h,0h,0h ;ASCII 1
;здесь ASCII 2
;здесь ASCII 3
;и т.д.
Пример на языке ассемблера
-------------------------------------------------------------------
Приведенная ниже программа выполняет печать сообщения "The quick
brown fox jumps over the lasy dog", при этом стиль печати буквы
"е" изменяется на "заглавный меньшего размера".
pause macro
local no_adj,done
;формируется не зависящая от процессора задержка
;длительностью приблизительно 10 секунд
mov AH,2ch ;получить время от DOS
int 21h ;прерывание DOS
mov BH,DH ;поместить число секунд в ВН
add BH,10 ;добавить 10 секунд
cmp BH,60 ;если больше 59б SUB 60
jb no_adj
sub BH,60
no_adj: int 21h ;прерывание DOS
cmp BH,DH
je done
jmp no_adj
done:
endm
data segment public
msg db 'The quick brown fox jump
over'
db 'the lasy dog.$'
new_e db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 00000000b
db 11111110b
db 10000000b
db 11111110b
db 00000000b
db 00000000b
db 00000000b
data ends
code segment public
assum CS:code
main proc far
start: push DS
sub AX,AX
push AX
mov AX,data
mov DS,AX
assume DS:data
mov DX,offset msg;получить адрес сообщения
mov AH,9 ;вызов печати строки DOS
int 21h ;обращение к DOS
pause
mov AX,1100h ;Загрузка алфавитно-цифрового режима
;пользователя (и переустановка режима)
mov BL,0 ;набор символов 0
mov BH,14 ;14 байтов на символ
mov CX,1 ;1 символ
mov DX,65h ;изменение "е" нижнего регистра
push DS
pop ES ;символ в сегменте данных
mov BP,offset new_e ;взять смещение "е"
int 10h ;обращение к видео BIOS
ret
main endp
code ends
end start
------------------------------------------------------------------
========================================================================
ВЫЗОВ ФУНКЦИИ 12h: АЛЬТЕРНАТИВНЫЙ ВЫБОР
КОММЕНТАРИИ
Функция возвращает информацию о текущих установках адаптера и пре-
дусматривает выбор альтернативной программы печати экрана (printscreen).
Альтернативная программа печати экрана позволяет вывести на печать
43-строчный экран (стандартная программа печати экрана позволяет пе-
чатать только 25 строк). Печать графических экранов не поддерживается.
ИСХОДНЫЕ ДАННЫЕ
Регистры (устанавливаются до вызова функции):
---------------------------------------------
AH: устанавливается 12h
---------------------------------------------
¦ ПОДФУНКЦИЯ 10h: ВОЗВРАЩАЕТ ИНФОРМАЦИЮ
Регистры (устанавливаются до вызова функции):
---------------------------------------------
BL: Устанавливается 10h
---------------------------------------------
Регистры (чтение выполняется после обращения):
----------------------------------------------
BH: 0-действие цветного режима
(регистры адаптера 3d?h)
1-действие монохромного режима
(регистры адаптера 3b?h)
BL: Размер установленной памяти адаптера
0=64К
1=128К
2=192К
3=256К
CH: установка битов признаков (см. описание регистра
Управления Характеристиками)
CL: положения переключателей (переключатели платы EGA)
¦ ПОДФУНКЦИЯ 20h: ВЫБОР АЛЬТЕРНАТИВНОЙ ПРОГРАММЫ ПЕЧАТИ ЭКРАНА
Обращение к этой функции выбирает альтернативную программу
печати экрана.
Регистры (устанавливаются до вызова функции):
----------------------------------------------
BL: устанавливается 20h.
----------------------------------------------
Применение адаптера VGA делает доступными следующие функции (если
функция поддерживается, после завершения ее работы в регистр AL поме-
щается 12h).
¦ ПОДФУНКЦИЯ 30h (только VGA) ВЫБОР КОЛИЧЕСТВА СТРОК РАЗВЕРТКИ
В АЛФАВИТНО-ЦИФРОВОМ РЕЖИМЕ
Рассматриваемая функция позволяет изменить число строк раз-
вертки, rоторое будет использоваться при следующей установке
алфавитно-цифрового режима. Функция позволяет получить режимы,
внешне не отличающиеся от MDA,CGA и EGA.
Регистры (устанавливаются до вызова функции):
----------------------------------------------
BL: устанавливается 30h
AL: 0-200-строчная развертка (CGA)
1-350-строчная развертка (MDA и EGA)
2-400-строчная развертка (VGA)
----------------------------------------------
Регистры (чтение выполняется после обращения):
----------------------------------------------
AL: 12h
----------------------------------------------
¦ ПОДФУНКЦИЯ 31h (только VGA) РАЗРЕШЕНИЕ ЗАГРУЗКИ ПАЛИТРЫ
ПО УМОЛЧАНИЮ
Функция разрешает или запрещает использование палитры, преду-
смотренной по умолчанию, при смене режима. При использовании
EGA в процессе переустановки режима текущая палитра всегда
заменяется палитрой, предусмотренной по умолчанию, однако VGA
обладает возможностью сохранения текущей палитры при пере-
установке режима.
Регистры (устанавливаются до вызова функции):
----------------------------------------------
BL: устанавливается 32h
AL: 0-разрешение палитры по умолчанию
1-запрещение палитры по умолчанию
----------------------------------------------
Регистры (чтение выполняется после обращения):
----------------------------------------------
AL: 12h
----------------------------------------------
¦ ПОДФУНКЦИЯ 32h (только VGA): Видеофункция
Функция разрешает или запрещает использование адаптера. В
случае запрещения использования адаптера выведенное на экран
изображение не изменяется, однако дальнейшее чтение и запись
информации на дисплей будут невозможны до снятия запрещения.
Регистры (устанавливаются до вызова функции):
----------------------------------------------
BL: устанавливается 32h
AL: 0-разрешение работы
1-запрещение работы
----------------------------------------------
Регистры (чтение выполняется после обращения):
----------------------------------------------
AL: 12h
----------------------------------------------
¦ ПОДФУНКЦИЯ 33h: СУММИРОВАНИЕ ДЛЯ ПОЛУЧЕНИЯ ГРАДАЦИЙ СЕРОГО
Функция разрешает или запрещает преобразование цвета в градации
серого. В случае, когда суммирование весовых коэффициентов раз-
решено, после сброса текстового режима или изменения регистров
палитры яркость серого представляет собой сумму 30% яркости
красного, 59% яркости зеленого и 11% яркости синего.
Регистры (устанавливаются до вызова функции):
----------------------------------------------
BL: устанавливается 33h
AL: 0-разрешение суммирования
1-запрещение суммирования
----------------------------------------------
Регистры (чтение выполняется после обращения):
----------------------------------------------
AL: 12h
----------------------------------------------
¦ ПОДФУНКЦИЯ 34h: ЭМУЛЯЦИЯ КУРСОРА
Функция разрешает или запрещает эмуляцию курсора CGA в
алфавитно-цифровых режимах. При эмуляции курсор представ-
ляется так, как будто знакоместо имеет высоту 8 пикселей
(см. описание обращения к функции 1 "Установка типа курсора").
Если эмуляция запрещена, курсор устанавливается в соответствии
с действительным числом строк развертки.
Регистры (устанавливаются до вызова функции):
----------------------------------------------
BL: устанавливается 34h
AL: 0-разрешение эмуляции курсора CGA
1-запрещение эмуляции курсора CGA
----------------------------------------------
Регистры (чтение выполняется после обращения ):
----------------------------------------------
AL: 12h
----------------------------------------------
[ Назад ]
[ Оглавление ]
[ Далее ]