Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Программирование EGA и VGA

¦      ПОДФУНКЦИЯ 35h: ВЫБОР АКТИВНОГО ДИСПЛЕЯ

         Функция позволяет выбрать один из двух видеоадаптеров системы
         при  конфликтах в использовании памяти или адресов портов
         (между этими адаптерами).

         Регистры (устанавливаются до вызова функции):
	 ----------------------------------------------
         BL:        устанавливаются 35h
         AL:        0-для запрещения исходного адаптера
                    1-для разрешения адаптера системной платы
                    2-для запрещения активного адаптера
                    3-для разрешения неактивного адаптера
         ES:        сегмент буфера длиной 128 байтов
         DS:        смещение буфера длиной 128 байтов
                    (если AL=0,2 или 3)
	 ----------------------------------------------

         Регистры (чтение выполняется после обращения):
	 ----------------------------------------------
         AL:        12h
	 ----------------------------------------------

         Если функция вызывалась с AL=0 или 2, информация о состоянии
         видеоадаптера запоминается в буфере. Если функция вызывалась
         с AL=3 состояние видеоадаптера определяется по содержимому
         буфера.

¦      ПОДФУНКЦИЯ 36h: РЕГЕНЕРАЦИЯ ИЗОБРАЖЕНИЯ

         Функция разрешает или запрещает регенерацию изображения для
         текущего активного дисплея.

         Регистры (устанавливаются до вызова функции):
	 ----------------------------------------------
         BL:        устанавливается 36h
         AL:        0-разрешение регенерации
                    1-запрещение регенерации
	 ----------------------------------------------

         Регистры (чтение выполняется после обращения):
	 ----------------------------------------------
         AL:         12h
	 ----------------------------------------------

=======================================================================
ВЫЗОВ ФУНКЦИИ 13h: ВЫВОД СТРОКИ НА АКТИВНУЮ СТРАНИЦУ В РЕЖИМЕ ТЕЛЕТАЙПА

КОММЕНТАРИИ

     Функция выдает строку на активную страницу, начиная с указанной
позиции. Эту функцию можно рассматривать как расширение функции eh.
Управляющие символы типа "звонок" (07h), "возврат на шаг" (08h), "пе-
ревод  строки" (0ah) и "возврат каретки" (0dh) распознаются и выпол-
няются в соответствии с их назначением.

ИСХОДНЫЕ ДАННЫЕ

     Регистры (устанавливаются до вызова функции):
     -----------------------------------------------------------------
     AL:         устанавливается 13h
     AL:         0-в BL находятся атрибуты;
                   строка содержит только коды символов; поло-
                   жение курсора после вывода строки не меня-
                   ется
                 1-в BL находятся атрибуты; строка содержит только
                   коды символов; положение курсора модифицируется
                   после вывода строки
                 2-строка содержит альтернативные коды символов и
                   байты атрибутов; положение курсора после вывода
                   строки не меняется
                 3-строка содержит альтернативные коды символов и байты
                   атрибутов; положение курсора модифицируется после
                   вывода строки
     BH:         страница
     BL:         атрибуты, если AL=0 или 1
     CX:         длина строки
     DH:         ряд
     DL:         столбец
     ES:         сегмент адреса строки
     BP:         смещение адреса первого байта строки
     -----------------------------------------------------------------

     Пример на языке ассемблера
     -----------------------------------------------------------------

     Приведенная ниже программа выполняет строки. Следует обратить
     внимание на действие управляющих кодов 7, 10 и 13. Сравните
     результаты действия функций 9, ah и eh.

     data      segment public
               msg     db        'The line demostrates printing'
                       db        'ASCII 7(',7,'),10(',10'), and
                       db        '13(',13').
               m_len   equ  $_msg   ;формирование константы от текущей
                                    ;метки до начала сообщения
                                    ;(длина сообщения)

     data      ends
     code      segment public
               assume CS:code
     main      proc    far
     start:    push    DS
               sub     AX,AX
               push    AX
               mov     AX,data
               mov     DS,AX

               assume  DS:data
               mov     AH,13h       ;функция 13h-вывод строки
               mov     AL,01b       ;только символы, переместить курсор
               mov     BH,0         ;страница 0
               mov     BL,15        ;атрибут 15
               mov     CX,m_len     ;число символов
               mov     DH,05        ;строка 5
               mov     DL,0         ;столбец 0
               mov     BP,offset msg ;указывает на сообщение
               push    DS
               pop     ES            ;сообщение - в сегменте данных
               int     10h           ;обращение к видео BIOS
               ret
     main      endp
     code      ends
     ------------------------------------------------------------------


=======================================================================
ВЫЗОВ ФУНКЦИИ 1ah (только VGA) КОМБИНИРОВАННЫЙ КОД ДИСПЛЕЯ (ККД)

КОММЕНТАРИИ

    Функция записывает и возвращает коды, определяющие основной (актив-
ный) и дополнительный адаптеры. Функция полезна для определения
конфигурации дисплея и поддерживается всеми вновь разрабатываемыми
адаптерами. Возвращаемый код помещается в регистр AL для подтвержде-
ния наличия поддержки выполнения данной функции. Если возвращаемый
код является некорректным, могут быть использованы альтернативные
методы определения конфигурации (в качестве примера см. пример
программы определения конфигурации в главе 14).

ИСХОДНЫЕ ДАННЫЕ

     Регистры (устанавливаются до вызова функции):
     ----------------------------------------------
     AH:        устанавливается 1ah
     ----------------------------------------------

¦      ПОДФУНКЦИЯ 0: Чтение ККД

         Регистры (устанавливаются до вызова функции):
	 ----------------------------------------------
         AL:        установить 0
	 ----------------------------------------------

         Регистры (чтение выполняется после обращения):
	 ----------------------------------------------
         AL:         1ah
         BH:         код дополнительного дисплея
         BL:         код активного дисплея
	 ----------------------------------------------

¦      ПОДФУНКЦИЯ 1: Запись ККД

         Регистры (устанавливаются до вызова функции):
	 ----------------------------------------------
         AL:        установить 1
         BH:        код дополнительного дисплея
         BL:        код активного дисплея
	 ----------------------------------------------

         Регистры (чтение выполняется после обращения):
	 ----------------------------------------------
         AL:        1ah
         ККД код значение (BH/BL)
         0          дисплей отсутствует
         1          MDA
         2          CGA
         4          EGA со стандартным цветным монитором
         5          EGA с монохромным монитором
         6          PGA (Professional Graphics Adapter)
         7          VGA с аналоговым монохромным монитором
         8          VGA с аналоговым цветным монитором
         bh         MCGA с аналоговым монохромным монитором
         ch         MCGA с аналоговым цветным монитором
         ffh        неизвестная комбинация
	 ----------------------------------------------


======================================================================
ВЫЗОВ ФУНКЦИИ 1bh (только VGA): ИНФОРМАЦИЯ О ФУНКЦИОНАЛЬНЫХ
                  ВОЗМОЖНОСТЯХ/СОСТОЯНИИ

КОММЕНТАРИИ

     Функция возвращает информацию об окружении дисплей/адаптер.
Эта информация может быть размещена в различных местах области
сохранения BIOS и различных областях данных ПЗУ (см. главу 12).
Однако благодаря использованию рассматриваемой функции может быть
получен простой доступ к таким данным. Для сохранения возвращаемой
информации программа должна резервировать область памяти размером 40h
байтов.

ИСХОДНЫЕ ДАННЫЕ

     Регистры (устанавливаются до вызова функции):
     ---------------------------------------------------------
     AH:        устанавливается 1bh
     BX:        реализуемый тип (устанавливает 0)
     ES:        Сегмент зарезервированной области сохранения
     DI:        Смещение зарезервированной области сохранения
     ---------------------------------------------------------

ВЫХОДНАЯ ИНФОРМАЦИЯ

     Регистры (чтение выполняется после обращения):
     ---------------------------------------------------------
     AL:        1bh
     ---------------------------------------------------------

  Таблица, размещенная в ES:DI имеет следующую структуру.

---------T----------T------------------------------------------------
Смещение ¦ Размер   ¦                          Описание
---------+----------+------------------------------------------------
0        ¦ 1 слово  ¦ Смещение статической функциональной таблицы
---------+----------+------------------------------------------------
2        ¦ 1 слово  ¦ Сегмент статической функциональной таблицы
---------+----------+------------------------------------------------
4        ¦ 1 байт   ¦ Текущий видеорежим
---------+----------+------------------------------------------------
5        ¦ 1 слово  ¦ Число символов в строке
---------+----------+------------------------------------------------
7        ¦ 1 слово  ¦ Размер области видеоданных в байтах
---------+----------+------------------------------------------------
9        ¦ 1 слово  ¦ Начальный адрес области видеоданных
---------+----------+------------------------------------------------
bh       ¦ 1 слово  ¦ Страница 0 позиция курсора
---------+----------+------------------------------------------------
dh       ¦ 1 слово  ¦ Страница 1 позиция курсора
---------+----------+------------------------------------------------
fh       ¦1 слово   ¦ Страница 2 позиция курсора
---------+----------+------------------------------------------------
11h      ¦1 слово   ¦ Страница 3 позиция курсора
---------+----------+------------------------------------------------
13h      ¦1 слово   ¦ Страница 4 позиция курсора
---------+----------+------------------------------------------------
15h      ¦1 слово   ¦ Страница 5 позиция курсора
---------+----------+------------------------------------------------
17h      ¦1 слово   ¦ Страница 6 позиция курсора
---------+----------+------------------------------------------------
19h      ¦1 слово   ¦ Страница 7 позиция курсора
---------+----------+------------------------------------------------
1bh      ¦1 байт    ¦ Начальная строка курсора
---------+----------+------------------------------------------------
1ch      ¦1 байт    ¦ Конечная строка курсора
---------+----------+------------------------------------------------
1dh      ¦1 байт    ¦ Текущая страница дисплея
---------+----------+------------------------------------------------
1eh      ¦1 байт    ¦ Адрес порта КЭЛТ
---------+----------+------------------------------------------------
22h      ¦1 байт    ¦ Число символьных строк, вывод которых
         ¦          ¦ возможен
---------+----------+------------------------------------------------
23h      ¦1 слово   ¦ Высота символа в пикселях
---------+----------+------------------------------------------------
25h      ¦1 байт    ¦ Код первичного ККД (адаптер)
---------+----------+------------------------------------------------
26h      ¦1 байт    ¦ Код вторичного ККД (адаптер)
---------+----------+------------------------------------------------
27h      ¦1 слово   ¦ Количество поддерживаемых цветов
---------+----------+------------------------------------------------
29h      ¦1 байт    ¦ Количество поддерживаемых страниц
---------+----------+------------------------------------------------
2ah      ¦1 байт    ¦ Число строк развертки
         ¦          ¦     0 - 200 строк
         ¦          ¦     1 - 350 строк
         ¦          ¦     2 - 400 строк
         ¦          ¦     3 - 480 строк
---------+----------+------------------------------------------------
2bh      ¦1 байт    ¦ Номер первичного блока шрифтов (0-7)
---------+----------+------------------------------------------------
2ch      ¦1 байт    ¦ Номер вторичного блока шрифтов (0-7)
---------+----------+------------------------------------------------
2dh      ¦1 байт    ¦ Смешанный набор параметров
         ¦          ¦ (сохраняются в битах)
         ¦          +------------------------------------------------
         ¦          ¦Смешанный набор параметров
         ¦          ¦(сохраняются в битах)
         ¦          +-----T------------------------------------------
         ¦          ¦Бит  ¦ Описание (если установлено значение 1)
         ¦          +-----+------------------------------------------
         ¦          ¦ 0   ¦ Поддерживаются все режимы
         ¦          ¦ 1   ¦ Выполняется суммирование
         ¦          ¦     ¦ цветов для получения оттенков
         ¦          ¦     ¦ серого
         ¦          ¦ 2   ¦ Подключен монохромный монитор
         ¦          ¦ 3   ¦ Запрет загрузки палитры,
         ¦          ¦     ¦ предусмотренной по умолчанию
         ¦          ¦ 4   ¦ Разрешена эмуляция курсора
         ¦          ¦ 5   ¦ Мерцание (0=яркость фона)
---------+----------+-----+------------------------------------------
31h      ¦1 байт    ¦ Размер видеопамяти (в блоках по 64К, 0=64К)
---------+----------+------------------------------------------------
32h      ¦1 байт    ¦ Состояние указателя сохранения
         ¦          ¦ (сохраняется в битах)
---------+----------+-----T------------------------------------------
         ¦          ¦Бит  ¦ Описание (если установлено значение 1)
         ¦          +-----+------------------------------------------
         ¦          ¦ 0   ¦ Задействован
         ¦          ¦     ¦ 512-символьный набор
         ¦          ¦ 1   ¦ Задействована область
         ¦          ¦     ¦ сохранения палитры
         ¦          ¦ 2   ¦ Задействован алфавитно-цифровой набор
         ¦          ¦     ¦ символов пользователя
         ¦          ¦ 3   ¦ Задействован графический набор символов
         ¦          ¦     ¦ пользователя
         ¦          ¦ 4   ¦ Задействована палитра, определенная
         ¦          ¦     ¦ пользователем
         ¦          ¦ 5   ¦ Задействовано расширение ККД
---------+----------+-----+------------------------------------------

[ Назад ] [ Оглавление ] [ Далее ]

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог