Kievuz

Видеоадаптеры EGA, VGA

Терминология – VGA

Видеоадаптеры EGA, VGA

VGA (Video Graphics Array) — стандарт, разработанный для видеоадаптеров и мониторов. Стандарт был создан компанией IBM в 1987 году, предназначался для компьютеров PS/2 Model 50, а также более старшей линейки. Стандарту VGA следовало большинство производителей видеоадаптеров.

В отличие от всех предыдущих видеоадаптеров IBM (MDA, CGA, EGA), видеоадаптер VGA использует аналоговый сигнал для передачи цветовой информации. Такой переход был обусловлен необходимостью создания нового кабеля с меньшим числом проводов. Кроме того, аналоговый сигнал дает возможность использовать VGA-мониторы с последующими видеоадаптерами, с возможностью вывода большего количества цветов.

Стандартом-последователем VGA официально считается стандарт IBM XGA. По факту, он был замещен различными расширениями к VGA. Эти расширения получили название SVGA.

Кроме того, понятие VGA зачастую используется и в качестве обозначения разрешения 640×480, вне зависимости от аппаратного обеспечения по выводу изображения.

Впрочем, это не совсем правильно (так, режим 640х480 с 16-, 24- и 32-битной глубиной цвета не имеет поддержки адаптером VGA, но при этом он может быть сформирован на мониторе, поддерживающем адаптеры VGA. Это возможно реализовать благодаря SVGA-адаптерам.

Кроме того, данный термин применяется для обозначения 15-контактного D-subminiature разъема VGA, который предназначен для передачи аналоговых видеосигналов с разными разрешениями.

Архитектура VGA

Как и его собрат EGA, интерфейс VGA включает в себя следующие подсистемы, они выступают в роли главных:

  • Графический контроллер. Он обеспечивает обмен данными, осуществляющийся между центральным процессором и видео-памятью. Также может выполнять битовые операции над передаваемыми данными.
  • память. В ней размещаются данные, которые отображаются на мониторе. 256 кБ DRAM разделились на четыре цветовых слоя: по 64 кБ.
  • Последовательный преобразователь. Осуществляет функцию преобразования данных из видеопамяти в поток битов, который передается непосредственно контроллеру.
  • Контроллер атрибутов. Преобразует входные данные в цветовые значения, используя палитру.
  • Синхронизатор. Берет на себя контроль над временны́ми параметрами видеоадаптера, а также осуществляет переключение цветовых слоев.
  • Контроллер ЭЛТ (CRT). Производит генерацию сигналов синхронизации для ЭЛТ.

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

В чем отличие VGA от EGA?

VGA аналогичен EGA, учитывая плоскостную видеопамять в 16-цветных режимах и секвенсор для доступа процессора к ней. Однако, имеются и исключения, отличающие два этих стандарта:

  • Разные разъем с кабелем для подключения к монитору, а также, совершенно разные мониторы. Этот разъем и кабель не менялись более 15 лет, вплоть до выхода в свет цифровых пакетно-ориентированных технологий DVI, HDMI и DisplayPort, пришедших из мира бытовой видеотехники. Разъем с кабелем использовались после в более высоких разрешениях. Даже стандартный VGA-монитор мог показывать режим 800×600 при использовании с более современной видеокартой, в данном случае, все зависело от качества блоков развертки монитора и их способности не сорвать генерацию на таких повышенных частотах. Сегодня все современные видеокарты совместимы с VGA сверху вниз. Термин “VGA” в обиходе обозначает именно тип подключения монитора – устаревший, но до сих пор, тем не менее, актуальный.
  • Палитра включает в себя 18-битные цвета вместо 6-битных. Это, в свою очередь, позволяло, к примеру, реализовать плохую погоду или мерцающие цвета в играх, используя одну лишь палитру.
  • 256-цветные режимы, стандартный – 320×200. Неофициально можно было добиться разрешения 320×240 (“режим Х”) и выше.
  • Максимальный 16-цветный режим – 640×480 (квадратные пиксели)
  • Все 200-строчные графические режимы включали в себя сканлинию, которая повторялась дважды, что давало 400 физических строк развертки монитора, а это, в свою очередь, существенно повышало качество картинки даже в более младших режимах, поскольку щели между строками развертки отсутствовали.
  • высота ячейки знакогенератора – 16 сканлиний. У EGA – 14. Это преимущество дает те же 400 строк развертки во всех текстовых режимах (кроме режимов совместимости со знакогенератором EGA). Так, VGA всегда использует 400 строк развертки, кроме двух старших 16-цветных режимов (там их 480 и 350). Режим Х также использует 480 строк.
  • В VGA все регистры доступны на чтение, EGA же имеет ряд регистров, предназначенных “только для записи”.

Текстовые режимы

Символы в стандартном тестовом режиме формируются в ячейке 9×16 пикселов, впрочем, допускается использование шрифтов и других размеров: 8—9 пикселов в ширину и 1—32 пиксела в высоту.

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

Допускается загрузка восьми и одновременный вывод на монитор двух различных шрифтов.

VGA BIOS содержит следующие виды шрифтов, а также функции для их загрузки/активации:

  • 8×16 пикселов (стандартный шрифт VGA),
  • 8×14 (для совместимости с EGA),
  • 8×8 (для совместимости с CGA).

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

Стандартные режимы:

  • 40×25 символов, 16 цветов, разрешение 360×400 пикселов.
  • 80×25 символов, 16 цветов, разрешение 720×400 пикселов.
  • 80×25 символов, монохромный, разрешение 720×400 пикселов.

При применении шрифтов меньшего размера, чем стандартный 8×16, можно добиться увеличения количества строк в текстовом режиме. Например, если включить шрифт 8×14, то будет доступно 28 строк.

А если 8×8, то количество строк увеличится до 50 (как в режиме EGA 80×43).

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

Атрибуты цветных режимов позволяют выбрать один из 16-ти цветов символа, один из 8-ми цветов фона и включить или отключить мерцание, что совпадает с возможностями CGA.

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

Графические режимы

В отличие от своих предшественников (CGA и EGA), видеоадаптер VGA обладал видеорежимом с квадратными пикселами (экран с соотношением сторон 4:3). Адаптеры CGA и EGA имели вытянутые по вертикали пикселы.

Стандартные режимы

  • 320×200 пикселов, 4 цвета.
  • 320×200 пикселов, 16 цветов.
  • 320×200 пикселов, 256 цветов (новый для VGA).
  • 640×200 пикселов, 2 цвета.
  • 640×200 пикселов, 16 цветов.
  • 640×350 пикселов, монохромный.
  • 640×350 пикселов, 16 цветов.
  • 640×480 пикселов, 2 цвета. При разрешении 640×480 пиксел имеет пропорции 1:1.
  • 640×480 пикселов, 16 цветов.

Нестандартные режимы (X-режимы)

Путем перепрограммирования VGA можно было достичь более высоких разрешений, по сравнению со стандартными режимами интерфейса. Наиболее распространенными «нештатными» режимами являлись:

  • 320×200, 256 цветов, 4 страницы. Ничем внешне не отличается от режима 13h (320×200, 256 цветов), режим имеет четыре видеостраницы, что позволяет реализовать двойную и даже тройную буферизацию.
  • 320×240, 256 цветов, 2 страницы. В данном режиме страниц меньше, но квадратные пиксели.
  • 360×480, 256 цветов, 1 страница. Максимальное разрешение на 256 цветах, возможное для реализации в рамках VGA.

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

Такая организация видеопамяти позволяет задействовать всю видеопамять карты, а не только плоскость 0 в 64К, для формирования 256-цветной картинки. А это, в свою очередь, дает возможность использования высоких разрешений/многих страниц.

Для работы с этой памятью используется тот же секвенсер, что и в 16-цветных режимах.

Однако, ввиду особенностей контроллера видеопамяти, процесс копирования данных в видеопамять происходит вчетверо быстрее, чем в режиме 13h.

Термин «X-режим» (Mode X) был введен Майклом Абрашем в 1991 году. Он применялся для обозначения нестандартного режима 320×240 с 256 цветами. Данный режим был открыт, путем изучения закрытой документации компании IBM, различными программистами независимо друг от друга. Термин получил известность благодаря статьям Майкла Абраша в журнале «Dr. Dobb’s Journal».

Источник: https://www.alterbit.ru/glossary141.html

Вывод в графическом режиме, используя функции bios

Видеоадаптеры EGA, VGA

Сохрани ссылку в одной из сетей:

адаптеры EGA и VGA можно условноразделить на шесть логических блоков:

В видеопамяти размещаются данные,отображаемые адаптером на экранемонитора. Для видеоадаптеров EGA и VGAвидеопамять, как правило, имеет объем256 Кбайт. адаптеры SVGA оснащаютсязначительно большим объемом видеопамяти.В них может быть установлено больше 4Мбайт памяти. память находится вадресном пространстве процессора.Программы могут непосредственнопроизводить с ней обмен данными.

Используется при обмене данными междуцентральным процессором компьютера ивидеопамятью. Аппаратура графическогоконтроллера позволяет выполнять надданными, поступающими в видеопамять,простейшие логические операции (И, ИЛИ,ИСКЛЮЧАЮЩЕЕ ИЛИ, циклический сдвиг).

  • Последовательный преобразователь

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

Генерирует временные синхросигналы,управляющие ЭЛТ.

Преобразует информацию о цвете изформата, в котором она хранится ввидеопамяти, в формат, необходимый дляЭЛТ. Преобразование цветов осуществляетсяв соответствии с таблицей цветовойпалитры (Color Look-up Table). Модифицируя таблицуцветовой палитры, можно выбрать 16 цветов,поддерживаемых видеоадаптером EGA из 64цветов, которые может отображать цветнойулучшенный монитор.

Определяет все временные параметрывидеоадаптера. Синхронизатор такжеуправляет доступом процессора к цветовымслоям видеопамяти.

На рисунке 1 представлена блок-схемавидеоадаптеров EGA и VGA, в которой отображенысвязи между их основными логическимиблоками.

Рисунок 1. Блок-схема видеоадаптеровEGA/VGA

Монитор

В большинстве мониторов устройствоотображения представляет собойэлектронно-лучевую трубку, газоразряднуюили жидкокристаллическую панель. Длястационарных компьютеров обычноиспользуются мониторы с ЭЛТ. Газоразрядныеи жидкокристаллические панели применяютв переносных и блокнотных компьютерах.

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

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

Луч электронов начинает пробегать поэкрану с верхнего левого угла до правоговерхнего угла. Когда луч доходит доправой стороны, он гасится и перемещаетсяна следующую горизонтальную линию,находящуюся под предыдущей линией.После того как луч пробежит по всемуэкрану, он гасится и перемещается вверхний левый угол. Затем процессповторяется снова. След от луча на экранеобразует растр (рис. 3.2).

Рисунок 2. Экран электронно-лучевойтрубки

Изменяя силу тока в луче электронов приформировании им растра, можно менятьинтенсивность свечения отдельныхэлементов экрана – пикселов. Данные ввидеопамяти как раз и определяют, какмодулируется луч электронов во времясканирования экрана.

Для решения задач управления лучомэлектронов служит большинство регистровконтроллера электронно-лучевой трубки(контроллера ЭЛТ).

память

адаптеры EGA и VGA содержат на своейплате до 256 Кбайт оперативной памяти,разделенной на четыре банка или, другимисловами, на четыре цветовых слоя. Этислои памяти размещаются в одном адресномпространстве.

Таким образом, по каждомуадресу расположено четыре байта (побайту в каждом слое памяти).

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

Так как все четыре слоя памяти находятсяв одном адресном пространстве, топроцессор может выполнять запись вовсе четыре слоя за один цикл записи.

Благодаря этому некоторые операции,например заполнение экрана, происходятс большой скоростью.

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

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

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

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

Режимы 4 и 5

Это режимы низкого разрешения – 320х200пикселов. Используются 4 цвета. Режимыподдерживаются видеоадаптерами CGA, EGA,VGA и SVGA. У адаптеров EGA, VGA и SVGA видеоданныерасположены в нулевом цветовом слое.Остальные три слоя не используются.

Для совместимости с видеоадаптеромCGA, отображение видеопамяти на экран неявляется непрерывным.

Первая половинавидеопамяти (начальный адрес B800:0000h)содержит данные обо всех нечетных линияхэкрана, а вторая половина (начальныйадрес B800:2000h) – относительно всех четныхлиний. Каждому пикселу изображениясоответствуют два бита видеопамяти.

Заверхний левый пиксел экрана отвечаютбиты D7 и D6 нулевого байта видеопамяти.На рисунке 3 изображено соответствиевидеопамяти пикселам экрана.

Рисунок 3. Структура видеопамяти длярежимов 4 и 5

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

Следующие формулы позволяют определитьсмещение байта от начала станицывидеопамяти и номера битов в нем,управляющие пикселом с координатами(x,y):

Еслиy четное число, то смещение байта =50h*(y/2)+(x/4)

Еслиy нечетное число, то смещение байта =2000h+50h*((y-1)/2)+(x/4)

Номерпервого бита = 7-mod(x/4)*2

В режимах 4 и 5 доступны два набора цветов- стандартный и альтернативный. Длявыбора набора цветов можно воспользоватьсяфункцией 0Bh прерывания INT 10h. Нижепредставлена таблица соответствиязначений битов, определяющих пиксел,его цвету:

Значение битов пиксела

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

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

00

Черный

Черный

01

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

Зеленый

10

Малиновый

Красный

11

Ярко-белый

Коричневый

Режим 6

Режим 6 (640х200) является режимом наибольшегоразрешения для видеоадаптера CGA. В этомрежиме видеоадаптеры EGA, VGA и SVGA используютдля хранения информации только нулевойслой памяти.

На рисунке 4 представлено соответствиевидеопамяти и пикселов экрана. Как и врежимах 4 и 5, первая половина видеопамятисодержит данные обо всех нечетных линияхэкрана, а вторая половина – обо всехчетных линиях.

В режиме 6 на один пиксел отводится одинбит видеопамяти. Таким образом, каждыйбайт видеопамяти управляет восьмьюпикселами. Если значение бита видеопамяти,отвечающего за данный пиксел, равнонулю, то пиксел имеет черный цвет, еслиединице – белый. За верхний левый пикселэкрана отвечает бит D7 в нулевом байтевидеопамяти, то есть самый старший егобит.

Рисунок 4. Структура видеопамяти в режиме6

При непосредственном доступе к видеопамятивы можете воспользоваться следующимиформулами:

Еслиy четное число, то смещение байта =50h*(y/2)+(x/8)

Еслиy нечетное число, то смещение байта =2000h+50h*((y-1)/2)+(x/8)

Номербита = 7-mod(x/8)

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

Режимы 0Dh и 0Eh

Разрешающая способность в режиме 0Dhсоставляет 320 пикселов по горизонталии 200 пикселов по вертикали, а в режиме0Eh соответственно 640 и 200 пикселов.

Режимы 0Dh и 0Eh поддерживают тольковидеоадаптеры EGA и VGA. На рисунке 5представлена структура видеопамятидля этого режима.

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

Каждому пикселу соответствует четыребита – по одному биту из каждого цветовогослоя. Четыре бита на пиксел, используемыев данных режимах, позволяют одновременноотображать пикселы 16 различных цветов.

Рисунок 5. Структура видеопамяти врежимах 0Dh и 0Eh

Следующие формулы позволяют определитьсмещение байта от начала станицывидеопамяти и номер бита в нем, управляющегопикселом с координатами (x,y):

Смещениебайта = 50h*y+x/8

Номербита = 7-mod(x/8)

Запись в каждый из четырех слоеввидеопамяти можно разрешить или запретитьпри помощи регистра разрешения записицветового слоя.

Режим 0Fh

Графический монохромный режим сразрешением 640х350 пикселов. Данный режимподдерживают только видеоадаптеры EGA,VGA и SVGA.

Для хранения видеоданных используютсядва цветовых слоя – нулевой и первый.Каждому пикселу соответствует по одномубиту из нулевого и первого цветовыхслоев. Два бита на пиксел позволяютотображать его черным, белым, ярко-белымили мигающим. Запись в каждый из этихдвух слоев можно разрешить или запретитьпри помощи регистра разрешения записицветового слоя.

На рисунке 6 представлена структуравидеопамяти для режима 0Fh.

Рисунок 6. Структура видеопамяти режима0Fh

Следующие формулы позволяют определитьсмещение байта от начала станицывидеопамяти и номер бита в нем, управляющегопикселом с координатами (x,y):

Смещениебайта = 50h*y+x/8

Номербита = 7-mod(x/8)

Режим 10h

Графический цветной режим с разрешением640х350 пикселов. Данный режим поддерживаюттолько видеоадаптеры EGA, VGA и SVGA.

Для хранения видеоданных используютсячетыре цветовых слоя. Каждому пикселусоответствует по одному биту из каждогоцветового слоя. Четыре бита на пикселпозволяют отображать 16 различных цветов.Запись в каждый из этих четырех слоевможно разрешить или запретить при помощирегистра разрешения записи цветовогослоя.

На рисунке 7 представлена структуравидеопамяти для режима 10h.

Рисунок 7. Структура видеопамяти режима10h

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

Смещениебайта = 50h*y+x/8

Номербита = 7-mod(x/8)

Режим 11h

Графический цветной режим с разрешением640х480 пикселов. Данный режим поддерживаюттолько видеоадаптеры VGA и SVGA.

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

На рисунке 8 представлена структуравидеопамяти для режима 11h.

Рисунок 8. Структура видеопамяти режима11h

При непосредственном доступе к видеопамятивы можете воспользоваться следующимиформулами:

Смещениебайта = 50h*y+x/8

Номербита = 7-mod(x/8)

Формулы позволяют определить дляпиксела, имеющего координаты (x,y), смещениеот начала станицы видеопамяти байта иномер бита в нем, управляющего даннымпикселом.

Режим 12h

Режим 12h похож на режим 10h, за исключениемтого, что он имеет большую разрешающуюспособность – 640х480 пикселов. В видеопамятизадействованы все четыре цветовых слоя.Структура видеопамяти показана нарисунке 9.

Рисунок 9. Структура видеопамяти режима12h

Формулы, используемые для вычислениябитов, управляющих данным пикселомэкрана, соответствуют формулам режима10h.

Режим 13h

Этот режим, как и режим 12h, поддерживаетсятолько видеоадаптерами VGA и SVGA. Онобеспечивает отображение 256 различныхцветов при разрешающей способности320х200 пикселов.

Структура видеопамяти приведена нарисунке 10. Как видно из рисунка, в этомрежиме видеопамять организована линейно.Каждый пиксел определяется одним байтом.

Рисунок 10. Структура видеопамяти врежиме 13h

Следующая формула позволяет определитьсмещение от начала видеопамяти байта,управляющего пикселом с координатами(x,y):

Смещениебайта = 140h*y+x

Об архитектуре других блоков видеоадаптеров:графического контроллера, последовательногопреобразователя, контроллера атрибутов,контроллера ЭЛТ и синхронизатора –можно прочитать в [1], глава 3.

Источник: https://gigabaza.ru/doc/96941-p3.html

ovdmitjb

Add comment