Page 46 - 4875
P. 46
відеорежимів. Найбільш популярними режимами є так називані
режими «X» з 256 кольорами і з 320 чи 360 пікселів по горизонталі і
200, 240, 400 чи 480 пікселій по вертикалі. Оскільки такі режими не
підтримуються BIOS, для їхньої реалізації потрібно написати всі
необхідні процедури – встановлення відеорежиму, вивід пікселя,
читання пікселя, переключення сторінок, зміна палітри, завантаження
шрифтів. При цьому для всіх режимів з цієї серії, крім 320x240x256,
слід також враховувати змінене співвідношення розмірів екрану по
вертикалі і горизонталі, щоб коло, виведений на екран, не виглядав як
еліпс, а квадрат – як прямокутник.
6 Регістри VGA DAC (03C6h – 03C9h):
- 03C6h (читання/запис): регістр маскування пікселів (по
замовчуванню FFh);
- 03C7h (запису): регістр індексу DAC для режиму читання;
- 03C7h (читання): регістр стану DAC;
- 03C8h (читання/запис): регістр індексу DAC для режиму
запису;
- 03C3h (читання/запис): регістр даних DAC.
Таблиця кольорів VGA насправді представляє собою 256
регістрів, у кожному з яких записані три 6-бітних числа, що
відповідають рівням червоного, зеленого і синього кольорів.
Підфункції int 10h AX =1010h – 101Bh дозволяють зручно працювати з
цими регістрами, але, якщо потрібно максимальна швидкість,
програмувати їх на рівні портів вводу/виводу не набагато складніше.
Команди insb/outsb значно полегшують роботу з регістрами
DAC у тих випадках, коли потрібно зчитувати або загружати значні
ділянки палітри або всю палітру повністю, - такі процедури є
швидшими, і меншими аналогічних, написаних з використанням
переривання int 10h.
Для роботи з відеоадаптерами переважно використовують
функції BOIS, замість програмування регістрів, це безпечніше і
надійніше, оскільки існує спеціальний відео-BOIS, встановлений на
платі адаптеру. Цей BOIS гарантує коректну роботу з регістрами і
виключає можливі пошкодження адаптеру. Більшість цих функцій
використовуються рідко, розглянемо основні:
1 Вибір режиму роботи відеоадаптера
45