Interested Article - VGA

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

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

Официальным последователем VGA стал стандарт IBM XGA , фактически же он был замещен различными расширениями к VGA, известными как « Super VGA » (SVGA).

Термин VGA также используется для обозначения 15-контактного разъёма VGA для передачи аналоговых видеосигналов при различных разрешениях .

Архитектура видеоадаптера VGA

VGA (так же, как и EGA ) состоит из следующих основных подсистем (словом «секвенсер» называли [ кто? ] набор регистров управления доступом к плоскостям видеопамяти ):

  • Графический контроллер ( Graphics Controller ), посредством которого происходит обмен данными между центральным процессором и видеопамятью . Имеет возможность выполнять битовые операции над передаваемыми данными.
  • Видеопамять ( Display Memory ), в которой размещаются данные, отображаемые на экране монитора. 256 кБ DRAM разделены на четыре цветовых слоя по 64 кБ.
  • Последовательный преобразователь ( Serializer или Sequencer ) — преобразует данные из видеопамяти в поток битов , передаваемый контроллеру атрибутов .
  • Контроллер атрибутов ( Attribute Controller ) — с помощью палитры преобразует входные данные в цветовые значения.
  • Синхронизатор ( Sequencer ) — управляет временны́ми параметрами видеоадаптера и переключением цветовых слоёв.
  • Контроллер ЭЛТ ( CRT Controller ) — генерирует сигналы синхронизации для ЭЛТ .

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

Отличия от EGA

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

  • иной разъем и кабель к монитору (и иные мониторы), аналоговый , а не 2 бита на цвет. Этот разъем и кабель не менялись около 15 лет (до появления цифровых пакетно-ориентированных технологий DVI , HDMI и DisplayPort , пришедших из мира бытовой видеотехники) и использовались далее в куда более высоких разрешениях. Даже стандартные VGA мониторы сплошь и рядом были способны показывать режим 800×600 при использовании с более современной видеокартой (всё зависело от качества блоков развёртки монитора и их способности не сорвать генерацию на таких повышенных частотах). В настоящее время (все современные видеокарты совместимы с VGA сверху вниз) слово «VGA» в обиходе означает именно этот тип подключения монитора , ныне устаревший, но всё ещё актуальный;
  • 18-битные цвета в палитре вместо 6-битных , такой богатый набор позволял, например, реализовать ночь, плохую погоду, «заколдованные» режимы и мерцающие цвета в играх одной лишь палитрой (как в игре « Ultima VII »);
  • наличие 256-цветных режимов, стандартный — 320×200, недокументированными (на деле документированными в документациях на аппаратуру VGA, но не включёнными в BIOS и его документацию) ухищрениями можно было получить 320×240 (квадратные пиксели , т. н. «режим VGA-X») и выше;
  • максимальный 16-цветный режим — 640×480 (квадратные пиксели);
  • во всех 200-строчных графических режимах скан-линия повторялась 2 раза, что давало 400 физических строк развёртки монитора, что сильно улучшало качество картинки даже в младших режимах (отсутствие щелей между строк развёртки);
  • высота ячейки знакогенератора — 16 скан-линий, а не 14, как у EGA , что давало те же 400 строк развёртки во всех текстовых режимах (кроме режимов совместимости со знакогенератором EGA ). Таким образом, VGA всегда использовал 400 строк развёртки , кроме двух старших 16-цветных режимов, где их было 480 и 350. Режим VGA-X также использовал 480 строк;
  • все регистры (палитры, секвенсера и т. д.) доступны на чтение, 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 пикс.

Хотя в текстовых режимах VGA одно знакоместо имеет ширину 9 пикселей, в данных знакогенератора определяются только 8 из них (8 бит одного байта на строку); пиксели правой колонки символьной матрицы определяется автоматически: пустыми (для символов в диапазоне 0x00-0xAF и 0xE0-0xFF) или такими же, как пикселы 8-й колонки (для символов псевдографики в диапазоне 0xB0-0xDF). Режим повтора 8й колонки мог быть отключен через регистр (через запрос BIOS никак). Так же, через регистры, можно было переключить текстовый режим c 9 колонок на 8 колонок для символа (так же как переключались графические режимы 320/360 точек в строке), что было нужно для некоторых матриц ноутбуков. Стандартные шрифты при этом обычно слипались, и нужно было загружать собственные (в BIOS более узкие шрифты обычно были прописаны вендором, но русские шрифты загружались сторонними программами, например KeyRus).

Используя шрифты меньших размеров, чем стандартный 8×16, можно увеличить количество строк в текстовом режиме. Например, если включить шрифт 8×14, то будет доступно 28 строк. Включение шрифта 8×8 увеличивает количество строк до 50 (аналогично режиму EGA 80×43 ) .

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

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

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

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

В отличие от своих предшественников (CGA и EGA) видеоадаптер VGA имел видеорежим с квадратными пикселами (то есть, на экране с соотношением сторон 4:3 соотношение горизонтального и вертикального разрешений было также 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 (новый для VGA).
  • 640×480 пикс., 16 цветов (новый для VGA) .

Нестандартные графические режимы ( (англ.) )

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

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

Во всех этих режимах используется плоскостная организация видеопамяти, концептуально похожая на используемую в 16-цветных режимах, но использующая для формирования цвета по 2 бита из каждой плоскости, а не по 1 — то есть биты 0-1 байта 0 в плоскости 0 давали биты 0-1 цвета пиксела 0, те же биты в плоскости 1 — биты 2-3 цвета, и т. д. Следующие биты того же байта давали цвета следующих пикселов, то есть 4 расположенные «один параллельно другому» по одному адресу байта в 4 плоскостях задавали цвет 4 пикселов.

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

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

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

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

См. также

Примечания

  1. Wilton, Richard. IBM Video Hardware and Firmware // . — Microsoft Press, 1987. — С. . — ISBN 1-55615-103-9 .
  2. Thompson, Stephen (англ.) . IBM Systems Journal (1988). Дата обращения: 15 декабря 2006. 25 августа 2011 года.
  3. Neal, J. D. (англ.) . FreeVGA Project (1998). Дата обращения: 23 февраля 2007. 25 августа 2011 года.
  4. Scott, Michael (англ.) (1997). Дата обращения: 23 февраля 2007. 19 октября 2008 года.
  5. Фролов, Александр; Фролов, Григорий.: . Программирование видеоадаптеров CGA, EGA и VGA (1992). Дата обращения: 23 февраля 2007. 25 августа 2011 года.
  6. Neal, J. D. (англ.) . FreeVGA Project (1998). Дата обращения: 15 декабря 2006. 25 августа 2011 года.
  7. Фролов, Александр; Фролов, Григорий.: . Программирование видеоадаптеров CGA, EGA и VGA (1992). Дата обращения: 23 февраля 2007. 25 августа 2011 года.
  8. Dnes, Walter (англ.) . Дата обращения: 11 января 2007. 7 декабря 2003 года.
  9. Rollins, Dan (англ.) . Tech Help! (1997). Дата обращения: 11 января 2007. 25 августа 2011 года.
  10. Abrash, Michael (англ.) . Graphics Programming Black Book (2001). Дата обращения: 30 марта 2007. Архивировано из 30 сентября 2007 года.

Ссылки

Источник —

Same as VGA