ВСТУП
Спочатку персональні комп'ютери IBM PC комплек-това відеоадаптером MDA з монохромним діплеем. Цей адаптер мав невелику роздільну здатність, не міг оторажать графічну інформацію і був монохром-ним. Через деякий час невелика фірма Hercules Computer Technology випустила монохромний відеоадаптер Hercules, який мав можливість виводу графіки і мав велику роздільну здатність
CGA став першим кольоровим відеоадаптером фірми IBM. Він вже забезпечував можливість відображується кольорову графи-чного та текстову інформацію, але мав занадто малу роздільну здатність. Потім IBM випустила два, найбільш розповсюджених у даний час відео-адаптера EGA і VGA. Вони створені на іншій елементної бази та мають кращу, ніж у CGA, роздільну здатність при більшому числі відображуваних кольорів.
Останнім часом різні фірми - виробники відеоадаптерів випустили велику кількість плат, що перевершує за своїми можливостями VGA. Ці плати, які можна об'єднати під общмім назвою Super VGA, не мають поки єдиного стандарту.
Фірма IBM почала випуск нового відеоадаптера XGA, який, як передбачається, стане новим стандартом для комп'ютерів на базі процесорів Intel 386/486 ... Відеоадаптер містить вбудований графічний процесор, значно збільшує його можливості та швидкість роботи. XGA апаратно підтримує перемальовування зображень у вікнах екрана. При обміні даними між відеопам'яттю і основною пам'яттю сам XGA замість цетрального процесора реалізує керування шиною даних, що дозволяє швидко передавати зображення на екран.
Слід також відзначити, що передбачена сумісності-тість відеоадаптерів VGA і XGA на рівні регістрів.
Базова конфігурація XGA містить 512 Кбайт відеопам'яті, що забезпечує роздільну здатність 1024 * 768 пікселів при 16 кольорах. Збільшення обсягу відеопам'яті до 1Мбайт Разом із тим і роздільної здатності дозволяє отримати 256 кольорів.
АРХІТЕКТУРА Відеоадаптер EGA І VGA
Відеоадаптери EGA і VGA умовно поділяють на шість логічних блоків, опис яких наведено нижче:
1. Відеопам'ять. У відеопам'яті розміщуються дані, відображується адаптером на екрані дисплея. Для EGA і VGA відеопам'ять зазвичай має обсяг 256 Кбайт, на деяких моделях SVGA і XGA обсяг відеопам'яті може бути збільшений до 2Мбайт. Відеопам'ять знаходиться в адресному просторі процесора і програми можуть безпосередньо виробляти з нею обмін даними. Фізично відеопам'ять розділена на чотири банки, або колірних шару, що використовують спільне адресний простір.
2. Графічний контролер. За допомогою його здійснюється обмін даними між центральним процесором і відеопам'яттю.
3. Послідовний перетворювач. Вибирає з відеопам'яті один або декілька байт, перетворює їх на потік бітів, потім передає їх контролеру атрибутів.
4. Контролер ЕЛТ. Контролер генерує тимчасові синхросигналами, керуючі ЕЛТ.
5. Контролер атрибутів. Перетворює інформацію про квіти з формату. в якому вона зберігається у відеопам'яті, у формат, необхідний для ЕЛТ.
6. Синхронізатор. Керує всіма тимчасовими параметрами відеоадаптера. Синхронізатор також управляє доступом процесора до колірних верствам відеоадаптера.
Відеопам'ять адаптерів EGA і VGA розділена на чотири
банку, або на чотири колірних шару. Ці банки розміщуються в одному адресному просторі таким чином, що по кожному адресою розташовано чотири байти (по одному байту в кожному банку). Який з банків пам'яті використовується для запису або читання даних процесором, визначається за допомогою установки декількох регістрів адаптера.
Так як всі чотири банку знаходяться в одному адресному просторі, то процесор може робити запис у всі чотири банку за один цикл запису. Завдяки цьому деякі операції, наприклад заповнення екрану, відбуваються з більшою швидкістю. У тому випадку, коли записи у всі чотири банку не потрібно, можна дозволяти або забороняти запис у всі чотири банку за допомогою регістра дозволу запису колірного шару.
Для операції читання в кожний момент часу може бути вирішена за допомогою регістра вибору читаного колірного шару тільки один колірний шар.
У більшості режимів відеоадаптера відеопам'ять розділена на кілька сторінок. При цьому один з них є активною і відображається на екрані. За допомогою функцій BIOS або програмування регістрів відео-адаптера можна преключать активні сторінки відеопам'яті. Виводж інформації може здійснюватися як в активну, так і в неактивні сторінки відеопам'яті.
Текстовий режим.
У текстових режимах на екрані можуть відображатися лише текстові символи. Стандартні текстові режими дозволяють виводити на екран 25 рядків по 40 або 80 символів. Для кодування кожного знакомісць екрану використовується два байти: перший з них містить ASCII код відображатиметься символу, друге - атрибути символу. ASCII коди символів екрану розташовуються в нульовому кольоровому шарі, а їх атрибути - в першому кольоровому шарі. Атрибути визначають колір символу і колір фону. Завдяки такому режиму зберігання інформації досягається значна економія пам'яті. При відображенні
символу на екрані відбувається перетворення його з формату ASCII в двовимірний масив пікселів, що виводяться на екран. Для цього перетворення використовується таблиця трансляції символів (таблиця знакогенератора). Таблиця знакогенератора зберігається в другому шарі відеопам'яті. При безпосередньому доступі до відеопам'яті нульовий і перші кольорові шари відображаються на загальний адресний простір з чергуванням байтів з шарів. Коди символів мають парні адреси, а їх атрибути - непарні.
При установці текстових режимів роботи відеоадаптерів EGA і VGA BIOS завантажує таблиці знакогенератора з ПЗУ у другій колірний шар відеопам'яті. Згодом таблиці використовуються при відображенні символів на екрані. Завдяки цьому можна легко замінити стандартну таблицю знакогенератора своєї власної. Це широко застосовується при русифікації комп'ютерів.
EGA і VGA забезпечують можливість одночасного завантаження відповідно чотирьох і восьми таблиць знакогенератора в пам'ять. Кожна таблиця містить опис 256 символів. Одночасно активними можуть бути одна або дві таблиці знакогенератора. Це дає можливість одночасно відображати на екрані до 512 символів. При цьому один біт з байти атрибутів вказує, яка з активних таблиць знакогенератора використовується при відображенні цього символу. Номери активних таблиць знакогенератора визначаються регістром вибору знакогенератора.
EGA підтримує два розміри для матриць символів: 8х8 і 8х14 пікселів. Один з цих наборів символів автомаіческі завантажується BIOS в відеопам'ять при виборі текстового режиму. Так як VGA має велику роздільну здатність, то його матриця символу має розміри 9х16. На кожен символ відводиться 32 байти. Перша таблиця має у відеопам'яті адреса: 0000h - 1FFFh, друга: 2000h - 3FFFh, ... , Восьма: E000h - FFFFh.
Кожний символ, що відображається на екрані в текстовому режимі, визначається не тільки своїм ASCII кодом, а й
байтом атрибутів. Атрибути задають колір символу, колір фону, а також деякі інші параметри. Бити D0 - D2 байти атрибутів задають колір символу, D4 - D6 колір фону. Якщо активною є одна таблиця знакогенератора, то D3 використовується для керування інтенсивністю кольору символу, що дозволяє збільшити кількість відтворених квітів до 16. Якщо одночасно визначені дві таблиці знакогенератора, то D3 задає таблицю знакогенератора, яка буде використана для відображення цього символу. Біт D7 виконує дві різні функції залежно від стану регістра режиму контролера атрибутів. Даний біт або управляє інтенсивністю кольору фону, збільшуючи кількість відображуваних квітів до 16, або дозволом гасіння символу, в результаті чого символ на екрані буде блимати. За замовчуванням цей біт управляє дозволом гасіння символу.
Відеопам'ять в графічних режимах:
Розподіл відеопам'яті в графічних режимах роботи адаптерів відрізняється від распредленія відеопам'яті в текстових режимах. Нижче розглянута структура розподілу відеопам'яті окремо для кожного графічного режиму.
Режими 4 і 5.
Це режими низького дозволу (320х200), використовуються 4 кольору. Підтримуються відеоадаптерами CGA, EGA і VGA. У EGA і VGA віддання розташовані в нульовому кольоровому шарі, інші верстви не використовуються. Для сумісності з CGA відображення відеопам'яті на екрані не є безперервним: перша половина відеопам'яті (початкова адреса В800: 0000) містить дані щодо всіх непарних ліній екрану, а другий (початкова адреса В800: 2000) - щодо всіх парних ліній. Кожному пикселя відповідає два біти відеопам'яті. За верхній лівий піксель екрана відповідають біти D7 і D6 нульового байта відеопам'яті. У режимах 4 і 5 є два набори квітів: стандартний і альтернативний: 00 - чорний; 01 - світло-синій (зелений); 10 -
малиновий (червоний); 11 - яскраво-білий (коричневий).
Режим 6.
Режим 6 є режимом найбільшого дозволу для CGA (640х200). Відеоадаптери EGA і VGA використовують для зберігання інформації тільки нульовий шар. Як і в режимах 4 і 5 перша половина відеопам'яті відповідає за непарні лінії екрану, а друга половина - за парні. У цьому режимі на один піксель відводиться один біт відеопам'яті. Якщо значення біта дорівнює 0, то піксель має чорний колір, а якщо одиниці - то білий.
Режими 0Dh і 0Еh.
Роздільна здатність у режимі 0Dh становить 320х200, а в режимі 0Eh 640х200 пікселів. Даний режим підтримується тільки відеоадаптерами EGA і VGA. Для зберігання відеоданих використовуються всі чотири колірних шару. Адресу відеопам'яті відповідають чотири байти, які разом визначають вісім пікселів. Кожному пикселя відповідають чотири біта - по одному з кожного колірного шару. Чотири біти на піксель, що використовуються в даних режимах, дозволяють відображати 16 різних кольорів. Запис в кожний з цих колірних шарів можна дозволити або заборонити за допомогою дозволу запису колірного шару. Управління доступом до колірних площин здійснюється за допомогою регістрів: Адресний регістр графічного контролера, порт виводу для цього регістра 3CEh; біти 0 - 3 містять адреса регістра, інші не використовуються. Регістр кольору: для доступу до цього регістру значення адресного регістра має бути 00h, адреса порту виведення для цього регістра 3CFh; біти 0 - 3 визначають значення для відповідної площини, інші не використовуються. Регістр дозволу кольору: для доступу до цього регістру значення адресного регістра має бути 01h, адреса порту виведення для цього регістра 3CFh; біти 0 - 3 означають дозвіл відповідного шару, а інші не використовуються. Регістр вибору площині для читання: для доступу до цього регістру значення адресного регістра має
бути 04h, адреса порту виведення для цього регістра 3CFh; біти 0 - 2 містять номер площині для читання, а інші не використовуються.
Графічний контролер здійснює обмін даними між відеопам'яттю і процесором. Він може виконувати над даними, що надходять в відеопам'ять, найпростіші логічні операції: І, АБО, виключає Або, циклічний зсув. Таким чином, відеоадаптер може виконувати частину роботи з обробки відео даних. Хоча процесор може читати дані тільки з одного колірного шару, запис даних в регістри-засувки відбувається з усіх колірних шарів. Цю особливість можна використовувати для швидкого копіювання областей екрану.
Під час циклу читання даних з відеопам'яті, графічний контролер може виконувати операцію порівняння кольорів. На відміну від звичайної операції читання. коли читається тільки один колірний шар, при операції порівняння квітів графічний контролер має доступ до всіх чотирьох верствам одночасно. У разі збігу виробляється певний сигнал.
Послідовний перетворювач.
Цей пристрій запам'ятовує дані, що читаються з відеопам'яті протягом циклу регенерації, перетворює їх у послідовний потік біт, а потім передає їх контролеру атрибутів.
Контролер атрибутів.
Контролер атрибутів в графічних режимах управляє квітами. Значень колірних атрибутів ставиться у відповідність певний колір за допомогою таблиці кольорової палітри. Ця таблиця ставить у відповідність чотирьом бітам з відеопам'яті шість бітів інформації кольорів. Для ЕGA ця інформація надходить безпосередньо на дисплей, а для VGA - перетворюється відповідно до таблиці квітів трьома ЦАП в RGB-сигнал і передається на дисплей.
Контролер Кінескопні виконує такі функції: виробляє сигнали управління роботою Кінескопні, визначає
формат екрану і сімволлов тексту, визначає форму курсора, управляє світловим пером, управляє скролінгом вмісту екрану.
Синхронізатор керує всіма тимчасовими парамет-рами відеоадаптера.