Page 44 - 4875
P. 44
Лекція 6
ОСНОВНІ ЗАСОБИ BIOS ДЛЯ РОБОТИ З ВІДЕОАДАПТЕРОМ
VGA-сумісні відеоадаптери керуються за допомогою портів
вводу/виводу, причому реальне число внутрішніх регістрів
відеоадаптера, до яких можна звертатися через це вікно, перевищує 50.
Оскільки BIOS надає гарну підтримку для більшості стандартних
функцій, ми не будемо розглядати докладне програмування
відеоадаптера на рівні портів, а тільки розглянемо основні дії, для яких
прийнято звертатися до відеоадаптера напряму.
1 Зовнішні регістри контролера VGA (03C2h – 03CFh):
- регістр стану 0 (ISR0) – доступний для читання з порта
03С2;
- регістр виводу (MOR) – доступний для читання з порта
3CCh і для запису як 3C2h;
- регістр стану вводу 1 (ISR1) – доступний для читання з
порта 03DAH.
2 Регістри контролера атрибутів (03C0h – 03C1h):
- 00h – 0Fh: регістри палітри EGA;
- 10h: регістр керування режимом;
- 11h: регістр кольору бордюру екрану (по замовчуванню
00h);
- 12h: регістр дозволу використання кольорових палітр;
- 13h: регістр горизонтального панорамування;
- 14h: регістр вибору кольору (по замовчуванню 00h).
Контролер атрибутів перетворює значення байту атрибута
символу в кольори символу і т.д. Для запису в ці регістри необхідно в
порт 03C0h записати номер регістру, а потім (другою командою out) –
дані для цього регістра. Щоб переконатися, що 03C0h знаходиться в
стані прийому номера, а не даних, треба виконати читання з ISR1 (порт
03DAh). Порт 03C1h можна використовувати для читання останнього
записаного індексу або даних.
3 Регістри графічного контролера (03CЕh – 03CFh):
- 00h: регістр установки/скидання
- 01h: регістр дозволу установки/скидання
- 02h: регістр порівняння кольору
43