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
   41   42   43   44   45   46   47   48   49   50   51