Открыть главное меню
Видеокарта EGA

EGA (англ. Enhanced Graphics Adapter — Усовершенствованный графический адаптер) — стандарт мониторов и видеоадаптеров для IBM PC, расположенный между CGA и VGA по своим характеристикам (цветовое и пространственное разрешение). Выпущен IBM в августе 1984 года для новой модели персонального компьютера IBM PC/AT.[1] Видеоадаптер EGA позволяет использовать 16 цветов при разрешении 640×350 пикселов. Видеоадаптер оснащён 16 кБ ПЗУ для расширения графических функций BIOS и заказным видеоконтроллером, обратно совместимым с микросхемой Motorola MC6845[2].

Адаптер EGA при разрешении 640×350 позволяет одновременно использовать 16 цветов из возможных 64 (по два бита на красную, зелёную и синюю составляющие). EGA также поддерживает 16-цветные варианты графических режимов CGA 640×200 и 320×200; в этом случае можно использовать только цвета из палитры CGA. Исходные режимы CGA также поддерживаются, хотя EGA не полностью аппаратно совместим с CGA. EGA может выводить изображение на MDA-монитор, эта возможность включается с помощью переключателей на плате, при этом доступен только режим 640×350.

Плата EGA подключается к шине ISA, начиная с 8-битной версии. Базовая версия EGA имела 64 кБ видеопамяти, чего было достаточно для монохромной графики высокого разрешения и цветной графики в режимах 640×200 и 320×200. Со временем большая часть плат EGA стала выпускаться с 256 кБ видеопамяти. Некоторые клоны EGA сторонних производителей (в частности, ATI Technologies и Paradise) поддерживают расширенные графические режимы (например, 640×400, 640×480 и 720×540), автоматическое определение типа монитора и, иногда, специальный чересстрочный режим для CGA-мониторов.

Стандарт EGA был замещён стандартом VGA, представленным IBM в апреле 1987 года с моделью компьютера PS/2.

Содержание

Архитектура и плоскостная видеопамятьПравить

Видеопамять EGA физически делилась на 4 плоскости равного размера — от 16К (младшие модели) до 64К (старшие).

Прямое отображение сразу всей видеопамяти в адресное пространство процессора было невозможно, все плоскости всегда отображались по одному и тому же адресу — 0xa0000 для 16 цветных графических режимов и 0xb8000 для всех остальных. Таким образом, один и тот же адрес адресовал сразу 4 байта, расположенные как бы «параллельно» друг другу в 4 плоскостях.

Для доступа процессора к такой видеопамяти EGA содержал т. н. секвенсор. Секвенсор поддерживал 3 режима записи в видеопамять и 2 режима чтения, и имел немалое количество управляющих регистров.

При записи использовались регистры:

  • маска плоскости. Запись не вносила изменений в те плоскости, биты которых в данном регистре были установлены в 0.
  • маска битов. Для каждого байта в каждой плоскости запись не изменяла те биты, которые были установлены в 0 в данном регистре.
  • логическая операция. 16 стандартных логических операций, они же используются в Windows GDI. В результате записи бит видеопамяти устанавливался в логическую функцию от бита пришедших от процессора данных и старого значения бита видеопамяти. Код логической операция есть 4 бита, бит данных процессора выбирал между старшими и младшими 2, а старое значение бита видеопамяти — между четными и нечетными. Выбранный бит кода логической операции и являлся новым значением бита видеопамяти. Например, логическая операция 0000b — установить все в чёрное, 1111b — все в белое, 1100b — обычное копирование битовой карты, 0011b — копирование с инвертированием, 1010b — пустая операция, 0101b — инвертирование старого содержимого, 1110b — OR старого содержимого с новым, 1000b — AND старого и нового, 0110b — XOR.
  • циклический сдвиг данных, поступивших от процессора (только для режима 0).

В режиме 0 байт, поступивший от процессора, понимался как новое значение для 4 байтов 4 плоскостей. В режиме 2 использовались только 4 бита в байте, поступившем от процессора. Для плоскостей, у которых в этом байте был 1 — использовалось значение 11111111b, для остальных — 00000000b.

В режиме 0 чтения использовался регистр выбора плоскости, чтение читало байт из выбранной плоскости.

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

В графических режимах CGA использовалась только плоскость 0, секвенсор всегда находился в состоянии по умолчанию и не использовался.

В текстовых режимах для хранения кодов символов и атрибутов использовалась та же плоскость 0, а плоскость 1 использовалась для хранения таблиц знакогенератора. Секвенсор обычно находился в состоянии по умолчанию, кроме случая загрузки знакогенератора — для этого регистр маски плоскости переключали в 2, писали данные знакогенератора по тому же адресу 0xb8000 и затем переключали маску обратно в 1.

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

ПалитраПравить

 
Палитра цветов EGA

4-битные значения цветов пропускались через 16 регистров палитры, каждый из которых содержал 6-битное значение цвета — по 2 бита на R, G и B. Это же 6-битное значение затем выставлялось на кабель, ведущий к монитору.

Регистры палитры были реализованы только на запись без возможности чтения.

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

В текстовых режимах используется два типа шрифтов. Стандартный шрифт EGA формируется матрицей 7×9 в ячейке 8×14 пикселов. Для совместимости с CGA используется шрифт с матрицей 7×7 в ячейке 8×8 пикселов.

EGA — первый видеоадаптер IBM, позволяющий программно менять шрифты текстовых режимов.

Доступны следующие режимы:[3][4]

  • 80×25 символов (ячейка 8×14 пикселов; разрешение 640×350 пикселов).
  • 40×25 символов (ячейка 8×8 пикселов; разрешение 320×200 пикселов).
  • 80x43 символов (ячейка 8×8 пикселов; разрешение 640×350 пикселов). Данный режим не является стандартным. Для его использования необходимо сначала установить режим 80×25, а затем загрузить шрифт 8×8 с помощью команды BIOS.[5]

Графические режимыПравить

  • 320×200 пикселов;
  • 640×200 пикселов;
  • 640×350 пикселов.

Для EGA Plus[6] (Super EGA):

  • 640×400 пикселов;
  • 640×480 пикселов;
  • 720×540 пикселов;
  • 752×410 пикселов;
  • 800×560 пикселов;
  • 896×350 пикселов;
  • 912×480 пикселов.

Подобные графические карты выпускались Genoa Systems (нем.).

Технические характеристикиПравить

EGA всегда использовал частоту кадров в 60Гц, и мог использовать одну из двух частот строк — 21,8 КГц для 350 строк (все текстовые режимы и режим 640x350x16) и 15,7 КГц для 200 строк (все остальные графические режимы).

РазъёмПравить

Вид разъёма на видеокарте:[7]

5 1
 
9 6
Вывод Описание
1 земля
2 вторичный красный
3 первичный красный
4 первичный зелёный
5 первичный синий
6 вторичный зелёный / интенсивность
7 вторичный синий
8 строчная синхронизация
9 кадровая синхронизация

СигналПравить

Тип Цифровой, ТТЛ[8]
Разрешение 640×350 и др.
Горизонтальная частота 15,7/21,8 кГц
Вертикальная частота 60 Гц
Количество цветов 16/64

Конкурирующие видеоадаптерыПравить

В 1984 году IBM также выпустила видеоадаптер Professional Graphics Controller для использования в САПР. Адаптер поддерживал разрешение 640×480 пикселов (немного больше, чем у EGA) и одновременный вывод 256 цветов из 4096 возможных. Увеличенное количество цветов позволяло создавать фотореалистичные изображения. Адаптер имел собственный язык для создания и преобразования двухмерных и трёхмерных изображений. Также адаптер мог эмулировать работу CGA[9].

ПримечанияПравить

  1. EGA Boards Labeled 'Accepted Standard' // InfoWorld. — 1985. — Т. 7, № 51. — P. 14. — ISSN 0199-6649.
  2. Glenn A. Hart. IBM Sets a New Standard // PC Magazine. — Ziff-Davis Publishing, 1984. — Т. 3, вып. 25. — С. 173.
  3. Dnes, Walter Nicer console textmodes (англ.) (недоступная ссылка). Дата обращения 28 октября 2006. Архивировано 7 декабря 2003 года.
  4. Музыченко, Евгений Frequently Asked Questions (Часто Задаваемые Вопросы) по видеоаппаратуре для IBM PC (txt). Дата обращения 28 октября 2006. Архивировано 17 февраля 2012 года.
  5. Int 10/AX=1112h
  6. http://books.google.com.ua/books?id=gC-DsOtl2MgC&pg=PA214
  7. Справочник www.5v.ru. Дата обращения 24 октября 2006. Архивировано 17 февраля 2012 года.
  8. Kuphaldt, Tony R. Logic signal voltage levels (англ.). All About Circuits. Дата обращения 14 октября 2006. Архивировано 8 февраля 2012 года.
  9. Duke, Keith A.; Wall, W. Alan. A Professional Graphics Controller (англ.). IBM Systems Journal (1985). Дата обращения 1 ноября 2006. Архивировано 17 февраля 2012 года.