Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

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

© Александр Фролов, Григорий Фролов
Том 3, М.: Диалог-МИФИ, 1992, 287 стр.

[Назад] [Содеожание] [Дальше]

9.6. Получение данных о состоянии VGA - функция 1Bh

Функция позволяет получить различную информацию о видеоадаптере и дисплее.

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


На входе:   AH = 1Bh - получение данных о видеосистеме;

   BX = 00h;

   ES:DI = адрес буфера для возвращаемых данных, 
         64 байта.

На выходе:   AL = 1Bh;

   ES:DI - буфер заполняется данными (см. таблицу
         10.1).

Смещение, байты Размер Содержание
0-3 двойное слово адрес статической таблицы функций (см. ниже)
4 байт номер текущего режима работы видеоадаптера
5,6 слово число символов в строке
7,8 слово размер области видеоданных (в байтах)
9,0Ah слово начальный адрес области видеоданных
0Bh-1Ah 8 слов позиции курсоров для каждой из 8 страниц видеопамяти (одно слово на страницу)
1Bh байт верхняя линия курсора
1Ch байт нижняя линия курсора
1Dh байт номер активной страницы видеопамяти
1Eh слово адрес порта контроллера ЭЛТ (3B4/3D4)
20h байт состояние регистра 3x8h
21h байт состояние регистра 3x9h
22h байт число текстовых строк на экране
23h байт высота символов текста (в пикселах)
25h байт код первичного видеоадаптера (см. функцию 1Ah подфункция 0h)
26h байт код дополнительного видеоадаптера (см. функцию 1Ah подфункция 0h)
27h,28h слово число цветов в текущем режиме
29h байт число страниц видеопамяти в текущем режиме
2Ah байт число линий развертки в текущем режиме:
0 - 200    
1 - 350    
2 - 400    
3 - 480    
2Bh байт номер первой таблицы знакогенератора
2Ch байт номер второй таблицы знакогенератора
2Dh байт байт, содержащий различные данные:
    D0 не используется;
    D1 бит равен единице, если разрешено преобразование палитры в серый цвет;
    D2 бит равен единице, если подключен монохромный дисплей;
    D3 запрещена переустановка регистров палитры по умолчанию;
    D4 бит равен единице, если разрешена эмуляция курсора CGA;
    D5 определяет назначение бита D3, байта атрибутов: если бит равен 1, то он управляет миганием символа, если бит равен нулю, то D3 управляет интенсивностью фона символа;
    D7-D6 не используется
31h байт объем видеопамяти:
    0 - 64К байт,
    1 - 128К байт,
    2 - 192К байт,
    3 - 256К байт;
     
32h байт состояние указателя?:
     
    D0 бит равен единице, если используется набор из 512 символов;
    D1 бит равен единице, если используется область сохранения цветовой палитры;
    D2 бит равен единице, если используется текстовый набор символов пользователя;
    D3 бит равен единице, если используется графический набор символов пользователя;
    D4 бит равен единице, если используется цветовая палитра, определенная пользователем;
    D7-D5 зарезервировано;
33h - 3Fh   зарезервировано.

Таблица 10.1 Формат буфера данных.

Далее следует описание статической функциональной таблицы:


Смещение, байты   Размер   Содержание


0-2   3 байта   таблица поддерживаемых режимов работы видеоадаптера, если бит равен единице, то режим поддерживается:
байт 0      
D0 Режим 0;
D1 режим 1;
D2 режим 2;
D3 режим 3;
D4 режим 4;
D5 режим 5;
D6 режим 6;
D7 режим 7.

байт 1
D0 Режим 8;
D1 режим 9;
D2 режим 0Ah;
D3 режим 0Bh;
D4 режим 0Ch;
D5 режим 0Dh;
D6 режим 0Eh;
D7 режим 0Fh.

байт 2

D0 Режим 10h;
D1 режим 11h;
D2 режим 12h;
D3 режим 13h;
D7-D4   не используются.

7   1 байт   возможное число линий растра; если бит равен единице, то режим поддерживается:
      D0 200 линий;
      D1 350 линий;
      D2 400 линий;
      D7-D3 не используются.
8   1 байт   число таблиц знакогенератора в текстовом режиме
9   1 байт   максимальное число одновременно используемых таблиц знакогенератора в текством режиме
0Ah   1 байт   биты имеют различное назначение:




D0   не используется;

 D1   поддердивается преобразование 
    таблицы цветов в серые цвета;

 D2   поддердивается загрузка шрифтов 
 пользователя;

 D3   поддердивается загрузка цветовой
 палитры по умолчанию;

 D4   поддердивается эмуляция курсора
CGA;

 D5   присутствует палитра EGA;

 D6   присутствует таблица цветов;

 D7   поддерживается функция выбора
 множества цветов;


0Bh      1 байт   биты имеют различное
            назначение:

    7 6 5 4 3 2 1 0
   _________________
   ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
   _________________
    _______ _ _ _ ___ поддерживается световое перо;
          _    _ _ _   
          _    _ _ _____ сохранение/восстановление
          _    _ _       видеосостояний, поддерживается
          _    _ _       функция 1Ch;
          _    _ _      
          _    _ _______ управление битотм D3 байта
          _    _         атрибутов;
          _    _        
          _    _________ код конфигурации дисплея;
          _             
          ______________ не используются


0Eh      1 байт   состояние указателя?:

    7 6 5 4 3 2 1 0
   _________________
   ¦     ¦ ¦ ¦ ¦ ¦ ¦
   _________________
       _____ _ _ _ _ __  бит равен единице, если
         _   _ _ _   _     поддерживается набор из 512
      _   _ _ _   _    символов;
         _   _ _ _ _
         _   _ _ _ ____  бит равен единице, если
         _   _ _ _       поддерживается область сохранения
      _   _ _ _       цветовой палитры;
         _   _ _ _
         _   _ _ ______  бит равен единице, если
         _   _ _         поддерживается текстовый набор
      _   _ _       символов пользователя;
         _   _ _
         _   _ ________  бит равен единице, если
         _   _           поддерживается графический набор
      _   _       символов пользователя;
         _   _
         _   __________  бит равен единице, если
         _               поддерживается цветовая палитра,
      _       определенная пользователем;
         _
         ______________  зарезервированно

Таблица 10.2 Формат статической функциональной таблицы.

[Назад] [Содеожание] [Дальше]