EGA

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Видеокарта EGA

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

Адаптер 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битное значение цвета пиксела (индекса в палитру).

Палитра[править | править вики-текст]

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

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

Текстовые режимы[править | править вики-текст]

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

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

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

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

Графические режимы[править | править вики-текст]

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

Технические характеристики[править | править вики-текст]

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

Разъём[править | править вики-текст]

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

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

Сигнал[править | править вики-текст]

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

Конкурирующие видеоадаптеры[править | править вики-текст]

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

Примечания[править | править вики-текст]

  1. EGA Boards Labeled 'Accepted Standard' // InfoWorld. — 1985. — Т. 7. — № 51. — P. 14. — ISSN 0199-6649.
  2. Dnes, Walter Nicer console textmodes (англ.)(недоступная ссылка — история). Проверено 28 октября 2006. Архивировано из первоисточника 7 декабря 2003.
  3. Музыченко, Евгений Frequently Asked Questions (Часто Задаваемые Вопросы) по видеоаппаратуре для IBM PC (txt). Проверено 28 октября 2006. Архивировано из первоисточника 17 февраля 2012.
  4. Int 10/AX=1112h
  5. Справочник www.5v.ru. Проверено 24 октября 2006. Архивировано из первоисточника 17 февраля 2012.
  6. Kuphaldt, Tony R. Logic signal voltage levels (англ.). All About Circuits. Проверено 14 октября 2006. Архивировано из первоисточника 8 февраля 2012.
  7. Duke, Keith A.; Wall, W. Alan. A Professional Graphics Controller (англ.). IBM Systems Journal (1985). Проверено 1 ноября 2006. Архивировано из первоисточника 17 февраля 2012.