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

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

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

2. Режимы работы видеоадаптеров

  • Режимы 0 и 1
  • Режимы 0*, 1*
  • Режимы 0+, 1+
  • Режимы 2 и 3
  • Режимы 2*, 3*
  • Режимы 2+, 3+
  • Режимы 4 и 5
  • Режим 6
  • Режим 7
  • Режим 7+
  • Режимы 8, 9, 0Ah
  • Режим 0Dh
  • Режим 0Eh
  • Режим 0Fh
  • Режим 10h
  • Режим 11h
  • Режим 12h
  • Режим 13h
  • Режимы работы видеоадаптеров характеризуются типом информации, которую они отображают - текстовая или графическая, количеством используемых цветов, разрешающей способностью и размерами символов.

    Существуют несколько стандартных режимов работы видеоадаптеров, поддерживаемых практически всеми адаптерами. Список стандартных режимов работы видеоадаптеров представлен в следующей таблице:

    Режим работы

    Тип информации

    Количество цветов

    Разрешение, пиксел x пиксел

    Размер символов, пиксел x пиксел

    0, 1

    Текстовый цветной

    16

    40x25

    8x8

    0*, 1*

    Текстовый цветной

    16

    40x25

    8x14

    0+, 1+

    Текстовый цветной

    16

    40x25

    9x16

    2, 3

    Текстовый цветной

    16

    80x25

    8x8

    2*, 3*

    Текстовый цветной

    16

    80x25

    8x14

    2+, 3+

    Текстовый цветной

    16

    80x25

    9x16

    4, 5

    Графический цветной

    4

    320x200

     

    6

    Графический цветной

    2

    640x200

     

    7

    Текстовый монохромный

    2

    80x25

    9x14

    7+

    Текстовый монохромный

    2

    80x25

    9x16

    8, 9,

    0Ah

    Используются видеоадаптерами компьютера PC jr, и в настоящее время интереса не представляют

     

    0Bh, 0Ch

    Зарезервировано

     

    0Dh

    Графический цветной

    16

    320x200

     

    0Eh

    Графический цветной

    16

    640x200

     

    0Fh

    Графический монохромный

    2

    640x350

     

    10h

    Графический цветной

    16

    640x350

     

    11h

    Графический цветной

    2

    640x480

     

    12h

    Графический цветной

    16

    640x480

     

    13h

    Графический цветной

    256

    320x200

     
                 

    Для видеоадаптеров EGA, VGA и SVGA режимы 0 и 1, 2 и 3, 4 и 5 не различаются. Отличие этих режимов существенно только для видеоадаптера CGA. В режимах 0, 2 и 5 не выполняется разбивка цветов (color burst) для композитного видеосигнала. В результате изображение на монохромных мониторах становиться более качественным.

    Стандартные режимы работы не включают в себя все режимы, в которых могут работать видеоадаптеры. Видеоадаптеры SVGA могут также работать в режимах, имеющих улучшенные характеристики. Характеристики этих режимов отличаются у видеоадаптеров разных фирм.

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

    Чтобы преодолеть несовместимость и избавить разработчиков программного обеспечения от необходимости создания собственных драйверов, ассоциация VESA (Video Electronics Standards Association) разработала одноименный стандарт VESA. Этот стандарт охватывает практически все возможности, предоставляемые современными видеоадаптерами.

    Приведем список режимов работы видеоадаптеров, соответствующих стандарту VESA:

    Режим работы

    Тип информации

    Количество цветов

    Разрешение, пиксел x пиксел

    Размер символов, пиксел x пиксел

    100h

    Графический цветной

    256

    640x400

     

    101h

    Графический цветной

    256

    640x480

    8х16

    102h

    Графический цветной

    16

    800x600

    8х8

    103h

    Графический цветной

    256

    800x600

    8х8

    104h

    Графический цветной

    16

    1024x768

     

    105h

    Графический цветной

    256

    1024x768

    8х16

    106h

    Графический цветной

    16

    1280x1024

     

    107h

    Графический цветной

    256

    1280x1024

     

    108h

    Текстовый цветной

    16

    80x60

     

    109h

    Текстовый цветной

    16

    132x25

    9х16

    10Ah

    Текстовый цветной

    16

    132x43

    9х9

    10Bh

    Текстовый цветной

    16

    132x50

     

    10Ch

    Текстовый цветной

    16

    132x60

     

    10Dh

    Графический цветной

    32768

    320x200

     

    10Eh

    Графический цветной

    65536

    320x200

     

    10Fh

    Графический цветной

    16777216

    320x200

     

    110h

    Графический цветной

    32768

    640x480

     

    111h

    Графический цветной

    65536

    640x480

     

    112h

    Графический цветной

    16777216

    640x480

     

    113h

    Графический цветной

    32768

    800x600

     

    114h

    Графический цветной

    65536

    800x600

     

    115h

    Графический цветной

    16777216

    800x600

     

    116h

    Графический цветной

    32768

    1024x768

     

    117h

    Графический цветной

    65536

    1024x768

     

    118h

    Графический цветной

    16777216

    1024x768

     

    119h

    Графический цветной

    32768

    1024x768

     

    11Ah

    Графический цветной

    65536

    1280x1024

     

    Более полную информацию о стандарте VESA мы привели в главе "Видеоадаптеры SVGA". В этой главе мы также поместили описание расширения BIOS, позволяющего легко программировать видеоадаптеры SVGA, совместимые со стандартом VESA.

    Режимы 0 и 1

    При использовании видеоадаптеров EGA или VGA не существует функциональных различий между режимом 0 и режимом 1. В данных режимах монитор отображает цветную текстовую (алфавитно-цифровую) информацию - 25 строк и 40 столбцов. Из-за низкой разрешающей способности режимы 0 и 1 практически не применяются. Современные видеоадаптеры поддерживают эти режимы только для обеспечения совместимости с видеоадаптерами CGA и MDA.

    Для отображения каждого символа используется матрица пикселов размера 8x8 пикселов, что соответствует низкому качеству изображения. Можно различить отдельные пикселы из которых состоят символы отображаемого текста.

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

    Стандартный цвет

    Дополнительный цвет

    Черный

    Серый

    Синий

    Светло-синий

    Зеленый

    Светло-зеленый

    Морской волны

    Голубой

    Красный

    Светло-красный

    Фиолетовый

    Малиновый

    Коричневый

    Желтый

    Белый

    Ярко-белый

    Для видеоадаптеров EGA, VGA и SVGA можно изменить используемую палитру цветов. Адаптер EGA с улучшенным цветным монитором позволяет выбрать 16 цветов из 64 возможных, а VGA и SVGA - 16 цветов из 262144 возможных.

    В режимах 0 и 1 адаптеры EGA, VGA и SVGA поддерживают восемь страниц видеопамяти. Страницей называется часть видеопамяти, полностью определяющая содержимое одного экрана монитора. Одна из этих восьми страниц является активной. Ее содержимое отображается на экране. Для изменения активной страницы можно вызвать соответствующую функцию BIOS или непосредственно изменить содержимое регистра начального адреса, расположенного в контроллере электронно лучевой трубки.

    Рисунок 2.1 демонстрирует страничную организацию видеопамяти. На мониторе отображается содержимое первой страницы памяти, расположенной по адресу B000:0800h.

    Рисунок 2.1 Страничная организация видеопамяти

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

    Страницы видеопамяти располагаются по следующим адресам:

    Страница 0 - B800:0000h

    Страница 1 - B800:0800h

    Страница 2 - B800:1000h

    Страница 3 - B800:1800h

    Страница 4 - B800:2000h

    Страница 5 - B800:2800h

    Страница 6 - B800:3000h

    Страница 7 - B800:3800h

    Видеоадаптеры VGA и SVGA в режимах с низким разрешением используют двойное сканирование. Двойное сканирование заключается в том, что при работе видеоадаптера в режимах с разрешением 200 строк, каждая из строк отображается на экране дважды, увеличивая разрешение по вертикали до 400 строк. В результате улучшается восприятие текста на экране, так как фактически увеличивается разрешающая способность. Двойное сканирование реализуется в режимах 0, 1, 2, 3, 4, 5, 6, 0Dh и 0Eh.

    Режимы 0*, 1*

    Режимы EGA 0* и 1* являются расширенными версиями режимов 0 и 1 адаптера CGA. Эти режимы отличаются только размером матрицы пикселов, используемой для отображения символов текста. В режимах 0* и 1* матрица имеет большее число элементов - 8х14 пикселов.

    Из-за различий в размерности матриц символов ухудшается совместимость между видеоадаптерами CGA и EGA. В частности возникают трудности при установке формы курсора и положения линии подчеркивания символов.

    Режимы 0+, 1+

    Видеоадаптеры VGA и SVGA реализуют собственные расширенные версии режимов 0 и 1. Они обозначаются как 0+ и 1+. Эти режимы отличаются от режимов 0 и 1 только размером матрицы пикселов, используемой при отображении символов текста. В режимах 0+ и 1+ матрица имеет большее число элементов - 9х16 пикселов.

    Как и для режимов 0* и 1*, отличие размерности матриц символов создает трудности при создании совместимых программ для адаптеров CGA, EGA, VGA и SVGA. Необходимо быть уверенным в правильности установки формы курсора и положения линии подчеркивания символов.

    Режимы 2 и 3

    Во втором и третьем режимах монитор отображает цветную текстовую информацию. Количество строк, также как и в режимах 0 и 1, равно 25, а количество столбцов увеличено до 80. Для видеоадаптеров EGA, VGA и SVGA данные режимы не имеют различий.

    Символы текста можно отображать в 8 основных и 8 дополнительных цветах, имеющих большую интенсивность, чем основные. Для каждого символа можно независимо задать его цвет и цвет фона. Вы можете использовать те же цвета, что в режимах 0 и 1.

    В данных режимах работы видеоадаптеры EGA, VGA и SVGA поддерживают 8 страниц экрана. Исключение составляют конфигурации, в которых видеоадаптер EGA имеет только 64 Кбайт видеопамяти. В этом случае EGA поддерживает только первые 4 страницы видеопамяти. Одна из этих восьми страниц является активной.

    Страницы видеопамяти располагаются по следующим адресам:

    Страница 0 - B800:0000h

    Страница 1 - B800:1000h

    Страница 2 - B800:2000h

    Страница 3 - B800:3000h

    Страница 4 - B800:3000h

    Страница 5 - B800:5000h

    Страница 6 - B800:4000h

    Страница 7 - B800:7000h

    Режимы 2*, 3*

    Режимы EGA 2* и 3* являются расширенными версиями режимов 2 и 3 для CGA. Эти режимы отличаются только размером матрицы пикселов, используемой для отображения символов текста. В режимах 2* и 3* матрица имеет большее число элементов - 8х14 пикселов.

    Режимы 2+, 3+

    Видеоадаптеры VGA и SVGA реализуют собственные расширенные версии режимов 2 и 3. Они обозначаются как 2+ и 3+. Эти режимы отличаются от режимов 2 и 3 только размером матрицы пикселов, используемой при отображении символов текста. В режимах 2+ и 3+ матрица имеет большее число элементов - 9х16 пикселов.

    Как указывалось выше, в режимах 2 и 3 видеоадаптеры VGA и SVGA используют двойное сканирование.

    Режимы 4 и 5

    В этих режимах отображается цветная графическая информация. Экран монитора имеет разрешение 320 пикселов по горизонтали и 200 пикселов по вертикали. При отображении могут использоваться либо четыре основных, либо четыре альтернативных цвета:

    Стандартные цвета

    Альтернативные цвета

    Черный

    Черный

    Светло-синий

    Зеленый

    Малиновый

    Красный

    Белый

    Коричневый

    В отличие от предыдущих режимов поддерживается только одна страница видеопамяти. Ее начальный адрес равен B800:0000h.

    Режим 6

    В этом режиме отображается графическая информация. Экран монитора имеет разрешение 640 пикселов по горизонтали и 200 пикселов по вертикали. Поддерживаются только два цвета. Для видеоадаптера CGA режим 6 является режимом с максимальным разрешением.

    Определена только одна страница видеопамяти, имеющая начальный адрес B800:0000h. Если видеоадаптеры VGA или SVGA работают в режиме 6, то они используют двойное сканирование.

    Режим 7

    В этом режиме отображается монохромная текстовая информация. Экран монитора имеет разрешающую способность 25 строк на 80 столбцов. Матрица символов имеет ширину 9 пикселов, а высоту - 14 пикселов.

    Видеоадаптеры EGA, VGA и SVGA в режиме 7 практически полностью программно совместимы с видеоадаптером MDA.

    В режиме 7 видеоадаптеры EGA, VGA и SVGA поддерживают 8 страниц видеопамяти, за исключением конфигураций, в которых адаптер EGA имеет только 64 Кбайт памяти. В этом случае EGA поддерживает только первые 4 страницы.

    Страницы экрана располагаются в видеопамяти по следующим адресам:

    Страница 0 - B800:0000h

    Страница 1 - B800:1000h

    Страница 2 - B800:2000h

    Страница 3 - B800:3000h

    Страница 4 - B800:3000h

    Страница 5 - B800:5000h

    Страница 6 - B800:4000h

    Страница 7 - B800:7000h

    Режим 7+

    Режим видеоадаптеров VGA и SVGA номер 7+, является расширенной версией режима 7 адаптера EGA. Этот режим отличается только размером матрицы пикселов, используемой для отображения символов текста. В режиме 7+ матрица имеет большее число элементов - 9х16 пикселов.

    Режимы 8, 9, 0Ah

    Данные режимы используются только в компьютере PCjr и в нашей книге не рассматриваются.

    Режим 0Dh

    Режим 0Dh используется для отображения графической информации. При этом разрешающая способность составляет 320 пикселов по горизонтали и 200 пикселов по вертикали. Данный режим похож на режим 4, но в нем видеоадаптер может отображать 16 цветов.

    В зависимости от объема памяти видеоадаптера, поддерживается различное количество страниц видеопамяти:

    Объем видеопамяти

    Количество страниц видеопамяти

    256 Кбайт

    8

    128 Кбайт

    4

    64 Кбайт

    2

    Страницы видеопамяти располагаются по следующим адресам:

    Страница 0 - B800:0000h

    Страница 1 - B800:1000h

    Страница 2 - B800:2000h

    Страница 3 - B800:3000h

    Страница 4 - B800:3000h

    Страница 5 - B800:5000h

    Страница 6 - B800:4000h

    Страница 7 - B800:7000h

    Если видеоадаптеры VGA и SVGA работают в режиме 0Dh, то для увеличения разрешающей способности они используют двойное сканирование.

    Режим 0Eh

    Режим 0Eh используется для отображения графической информации. Разрешающая способность составляет 640 пикселов по горизонтали и 200 пикселов по вертикали. В данном режиме видеоадаптер может одновременно отображать 16 различных цветов.

    В зависимости от объема видеопамяти поддерживается различное количество страниц видеопамяти:

    Объем видеопамяти

    Количество страниц видеопамяти

    256 Кбайт

    4

    128 Кбайт

    2

    64 Кбайт

    1

    Страницы видеопамяти располагаются по следующим адресам:

    Страница 0 - A000:0000h

    Страница 1 - A000:4000h

    Страница 2 - A000:8000h

    Страница 3 - A000:C000h

    Если видеоадаптеры VGA и SVGA работают в режиме 0Eh, то они используют двойное сканирование.

    Режим 0Fh

    Монохромный графический режим с разрешением 640 пикселов по горизонтали и 350 пикселов по вертикали.

    Видеоадаптер EGA поддерживает две страницы экрана за исключением того случая, когда видеопамять ограничена 64 Кбайт. В этом случае доступна только одна страница.

    Страницы видеопамяти располагаются по следующим адресам:

    Страница 0 - A000:0000h

    Страница 1 - A000:8000h

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

    Режим 10h

    Цветной графический режим с разрешением 640 пикселов по горизонтали и 350 пикселов по вертикали. Данный режим обеспечивает отображение 16 цветов, кроме конфигураций, в которых видеоадаптер EGA укомплектован только 64 Кбайт видеопамяти. Адаптер EGA с 64 Кбайт видеопамяти обеспечивает отображение только четырех цветов.

    Стандартная цветовая палитра для данного режима представлена в следующей таблице:

    Полная палитра

    (объем видеопамяти не меньше 128 Кбайт)

    Неполная палитра

    (64 Кбайт видеопамяти)

    Черный

    Черный

    Голубой

    Голубой

    Зеленый

    Черный

    Синий

    Голубой

    Красный

    Красный

    Фиолетовый

    Белый

    Коричневый

    Красный

    Белый

    Белый

    Темно-серый

    Черный

    Светло-голубой

    Голубой

    Светло-зеленый

    Черный

    Светло-синий

    Голубой

    Светло-красный

    Красный

    Светло-малиновый

    Белый

    Желтый

    Красный

    Интенсивно-белый

    Белый

    Вы можете изменить цветовую палитру, переустановив регистры палитры в контроллере атрибутов. Как это сделать мы расскажем в главе "Контроллер атрибутов".

    Режим 11h

    Цветной графический режим с разрешением 640 пикселов по горизонтали и 480 пикселов по вертикали. Данный режим обеспечивает отображение только двух цветов.

    Видеопамять образует одну страницу. Начальный адрес видеопамяти A000:0000h.

    Режим 12h

    Цветной графический режим с разрешением 640 пикселов по горизонтали и 480 пикселов по вертикали. Данный режим обеспечивает отображение 16 цветов. Видеопамять образует одну страницу. Начальный адрес видеопамяти A000:0000h.

    Режим 13h

    Цветной графический режим с разрешением 320 пикселов по горизонтали и 200 пикселов по вертикали. Данный режим обеспечивает возможность одновременного отображения 256 цветов.

    Несмотря на низкую разрешающую способность монитора в этом режиме, изображение кажется более реалистичными, так как появляется возможность отображать мелкие детали другим цветом.

    Видеопамять образует одну страницу. Начальный адрес видеопамяти A000:0000h.

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


    Hosted by uCoz