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

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

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

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

  • 2.1. Режимы 0 и 1
  • 2.2. Режимы 0*, 1*
  • 2.3. Режимы 0+, 1+
  • 2.4. Режимы 2 и 3
  • 2.5. Режимы 2*, 3*
  • 2.6. Режимы 2+, 3+
  • 2.7. Режимы 4 и 5
  • 2.8. Режим 6
  • 2.9. Режим 7
  • 2.10. Режим 7+
  • 2.11. Режимы 8, 9, 0Ah
  • 2.12. Режим 0Dh
  • 2.13. Режим 0Eh
  • 2.14. Режим 0Fh
  • 2.15. Режим 10h
  • 2.16. Режим 11h
  • 2.17. Режим 12h
  • 2.18. Режим 13h
  • Существуют несколько стандартных режимов работы видеоадаптеров, определенных фирмой IBM. Список стандартных режимов работы видеоадаптеров представлен в таблице 3.1. Стандартные раежимы работы не включают все режимы, в которых могут работать видеоадаптеры. Многие фирмы - производители видеоадаптеров выпускают адаптеры, поддерживающие нестандартные режимы, имеющие улучшенные характеристики.

    Характеристики нестандартных режимов отличаются для видеоадаптеров разных фирм. В приложении приведены параметры нестандартных режимов для наиболее распространенных видеоадаптеров.

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


    Режим    Тип           Число   Разрешение  Поддерживаемые
    работы   информации    цветов              дисплеи
    
    0Eh      графический   16      640х200     CD, ECD, VGA, 
             цветной                           многочастотный
    
    0, 1     текстовый     16      40х25       CD, ECD, VGA,
             цветной               (8x8)       многочастотный
    
    0*, 1*   текстовый     16      40х25       ECD, VGA,
             цветной               (8*14)      многочастотный
    
    0+, 1+   текстовый    16       40х25       VGA,
             цветной               (9*16)      многочастотный
    
    2, 3     текстовый    16       80х25       CD, ECD, VGA,
             цветной               (8*8)       многочастотный
    
    2*, 3*   текстовый    16       80х25       ECD, VGA,
             цветной               (8*14)      многочастотный
    
    2+, 3+   текстовый    16       80х25       VGA,
             цветной               (9*16)      многочастотный
    
    4, 5     графический   4       320х200     CD, ECD, VGA,
             цветной                           многочастотный
    
    6        графический   2       640х200     CD, ECD, VGA,
             цветной                           многочастотный
    
    7        текстовый     2       80х25       монохромный,
             монохромный           (9*14)      VGA
    
    7+       текстовый     2       80х25       VGA
             монохромный           (9*16)      
    
    8,9,     используются только видеоадаптерами компьютера PC jr
    0Ah
    
    0Bh,0Ch  зарезервированно
    
    0Dh      графический   16      320х200     CD, ECD, VGA,
             цветной                           многочастотный
       
    0Eh      графический   16      640х200     CD, ECD, VGA, 
             цветной                           многочастотный
    
    0Fh      графический   2       640х350     монохромный,
             монохромный                       VGA
    
    10h      графический   16      640х350     ECD, VGA,
             цветной                           многочастотный
    
    11h      графический   2       640х480     VGA,
             цветной                           многочастотный
    
    12h      графический   16      640х480     VGA,
             цветной                           многочастотный
    
    13h      графический   256     320х200     VGA,
             цветной                           многочастотный
    
     В поле "разрешение" в скобках приведены размеры символов (в пикселах)
    

    Таблица 3.1 Стандартные режимы работы видеоадаптеров.

    2.1. Режимы 0 и 1

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

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

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

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

    Стандартный цвет Дополнительный цвет
    черный серый
    синий светло-синий
    зелный светло-зеленый
    морской волны голубой
    красный светло-красный
    фиолетовый малиновый
    коричневый желтый
    белый ярко-белый

    Таблица 3.2 Стандартные и дополнительные цвета.

    Видеоадаптер CGA совместим с EGA и VGA не полностью. Вследствие этого не все программное обеспечение, разработанное для видеоадаптера CGA, будет правильно работать на EGA и VGA.

    В основном несовместимость между этими видеоадаптерами возникает из-за различий в наборе регистров. Адаптеры EGA и VGA имеют больше регистров, чем CGA и их формат различен. На уровне BIOS происходит нивелировка этих отличий. Поэтому наиболее простой способ создания легко переносимых программ заключается в использовании исключительно функций BIOS и DOS.

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

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

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

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

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

    Страница 0 - B800:0000 Стрница 1 - B800:0800
    Страница 2 - B800:1000 Стрница 3 - B800:1800
    Страница 4 - B800:2000 Стрница 5 - B800:2800
    Страница 6 - B800:3000 Стрница 7 - B800:3800

    При работе видеоадаптера VGA в режимах с низким разрешением реализуется двойное сканирование.

    Двойное сканирование заключается в том, что при работе VGA в режимах с разрешением 200 строк, каждая из строк отображается на экране дважды, увеличивая разрешение по вертикали до 400 строк. В результате улучшается восприятие текста на экране, так как фактически увеличивается разрешающая способность.

    Двойное сканирование реализуется видеоадаптером VGA в режимах 0, 1, 2, 3, 4, 5, 6, 0Dh и 0Eh.

    2.2. Режимы 0*, 1*

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

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

    2.3. Режимы 0+, 1+

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

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

    2.4. Режимы 2 и 3

    Во втором и третьем режимах дисплей отображает цветную текстовую информацию.

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

    В качестве дисплея могут использоваться цветной дисплей (CD), улучшенный цветной дисплей (ECD), дисплей VGA, а также некоторые многчастотные дисплеи с разрешением 25 строк и 80 столбцов. Для отображения каждого символа используется матрица 8 на 8 пикселов, что соответствует низкому качеству изображения (можно различить отдельные пикселы, из которых состоит символ).

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

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

    Одна из этих восьми страниц является активной, то есть ее содержимое отображается на экране. Для изменения активной страницы можно вызвать соответствующую функцию BIOS или изменить содержимое регистра начального адреса, расположенного в контроллере электронно-лучевой тубки (ЭЛТ).

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

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

    Страница 0 - B800:0000 Стрница 1 - B800:1000
    Страница 2 - B800:2000 Стрница 3 - B800:3000
    Страница 4 - B800:3000 Стрница 5 - B800:5000
    Страница 6 - B800:4000 Стрница 7 - B800:7000

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

    2.5. Режимы 2*, 3*

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

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

    2.6. Режимы 2+, 3+

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

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

    2.7. Режимы 4 и 5

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

    В качестве дисплея могут использоваться цветной дисплей (CD), улучшенный цветной дисплей (ECD), а также некоторые многочастотные дисплеи и дисплей VGA.

    При отображении могут использоваться либо четыре основных, либо четыре альтернативных цвета. Данные цвета приведены в таблице 3.3:

    Стандартные цвета Альтернативные цвета
    черный черный
    светло-синий зелный
    малиновый красный
    белый коричневый

    Таблица 3.3 Цветовая палитра режимов 4 и 5

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

    2.8. Режим 6

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

    В качестве дисплея могут использоваться цветной дисплей (CD), улучшенный цветной дисплей (ECD), дисплей VGA, а также некоторые многчастотные дисплеи.

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

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

    2.9. Режим 7

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

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

    В качестве дисплея могут использоваться либо монохромный дисплей (MD), либо дисплей VGA.

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

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

    Страница 0 - B800:0000 Стрница 1 - B800:1000
    Страница 2 - B800:2000 Стрница 3 - B800:3000
    Страница 4 - B800:3000 Стрница 5 - B800:5000
    Страница 6 - B800:4000 Стрница 7 - B800:7000

    2.10. Режим 7+

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

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

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

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

    2.12. Режим 0Dh

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

    В качестве дисплея могут использоваться цветной дисплей (CD), улучшенный цветной дисплей (ECD), дисплей VGA, а также некоторые многчастотные дисплеи.

    В различных конфигурациях видеоадаптера EGA поддерживается различное число страниц экрана:

    Объем видеопамяти Число страниц экрана
    256К 8
    128К 4
    64К 2

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

    Страница 0 - B800:0000 Стрница 1 - B800:1000
    Страница 2 - B800:2000 Стрница 3 - B800:3000
    Страница 4 - B800:3000 Стрница 5 - B800:5000
    Страница 6 - B800:4000 Стрница 7 - B800:7000

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

    2.13. Режим 0Eh

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

    В качестве дисплея могут использоваться цветной дисплей (CD), улучшенный цветной дисплей (ECD), дисплей VGA, а также некоторые многчастотные дисплеи.

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

    Объем видеопамяти Число страниц экрана
    256К 4
    128К 2
    64К 1

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

    Страница 0 - A000:0000 Стрница 1 - A000:4000
    Страница 2 - A000:8000 Стрница 3 - A000:C000

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

    2.14. Режим 0Fh

    Это монохромный графический режим с разрешением 640 пикселов по горизонтали и 350 пикселов по вертикали. В качестве дисплея могут использоваться либо монохромный дисплей (MD), либо дисплей VGA.

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

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

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

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

    2.15. Режим 10h

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

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

    В качестве дисплея могут использоваться улучшенный цветной дисплей (ECD), дисплей VGA, а также некоторые многчастотные дисплеи.

    Полная палитра Неполная палитра
    (>=128К) (64К)
    черный черный
    голубой голубой
    зелный черный
    синий голубой
    красный красный
    фиолетовый белый
    коричневый красный
    белый белый
    темно-серый черный
    светло-голубой голубой
    светло-зеленый черный
    светло-синий голубой
    светло-красный красный
    светло-малиновый белый
    желтый красный
    интенсивно-белый белый

    Таблица 3.4 Стандартная, 16 - цветная палитра.

    2.16. Режим 11h

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

    В этом и более старших режимах в качестве дисплея может использоваться только дисплей VGA или многчастотный дисплей.

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

    2.17. Режим 12h

    Цветной графический режим с разрешением 640 пикселов по горизонтали и 480 пикселов по вертикали. Данный режим обеспечивает отображение 16 цветов. Стандартные для этого режима цвета представлены в таблице 3.2.

    В этом и более старших режимах в качестве дисплея может использоваться только дисплей VGA или многчастотный дисплей.

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

    2.18. Режим 13h

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

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

    В этом режиме в качестве дисплея может использоваться только дисплей VGA или многчастотный дисплей.

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

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