Відео адаптер EGA.
![]() |
| Відеокарта EGA |
Адаптер 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 рядків (всі інші графічні режими).

Немає коментарів:
Дописати коментар