середа, 22 лютого 2017 р.

Відео адаптер EGA.

Відео адаптер EGA.


   
Відеокарта EGA
  EGA (англ. Enhanced Graphics Adapter - вдосконалення графічний адаптер) - стандарт моніторів и відеоадаптерів для IBM PC, розташованій между CGA и VGA за своими характеристиками (колірне и просторова дозвіл). Віпущеній IBM в серпні тисяча дев'ятсот вісімдесят чотири роки для новой моделі персонального комп'ютера 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 фізично ділилася на 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 завжди використовував частоту кадрів в 60Гц, і міг використовувати одну з двох частот рядків - 21,8 КГц для 350 рядків (всі текстові режими і режим 640x350x16) і 15,7 КГц для 200 рядків (всі інші графічні режими).




Немає коментарів:

Дописати коментар