Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум КТіООР.doc
Скачиваний:
3
Добавлен:
09.11.2019
Размер:
4.21 Mб
Скачать
  1. Регістри 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. Вибір режиму роботи відеоадаптера

На вході: АН = 00h

АL = <номер режиму роботи, який треба встановити>

На виході: Регістри не використовуються

Якщо 7 біт цього регістру – „1”, то при установці режиму відеопам’ять не очищається. Приведемо приклад вибору режиму відео адаптеру:

mov al,0 ;функція вибору режиму роботи відеоадаптера

mov al,mode ;вибираємо режим mode

int 10h

  1. Зміна форми курсора

На вході: АН = 01h

СH = <верхня межа курсора>

СL = <нижня межа курсора> (0...31)

На виході: Регістри не використовуються

Функція 01h дозволяє змінити вертикальні розміри курсору шляхом задавання верхньої і нижньої межі курсору. Горизонтальні розміри курсору завжди однакові і дорівнюють ширині одного символу. Курсор міняється тільки для текстових режимів монітору. Бай для запису в СХ:

Біт

Стан

Значення

0...3

-

Верхня межа курсора

4...5

00

Звичайний курсор

01

Невидимий курсор

10

Мигаючий курсор

11

Курсор мигаючий в 2 рази швидше

11

Код команди RBC ( читання стану каналу)

7

-

Незадіяні

  1. Зміна положення курсору

На вході: АХ = 02h

BH = номер сторінки відеопам'яті;

DH = номер рядку (0 - 24);

DL = номер стовпця (0 - 79).

На виході: Регістри не використовуються

Якщо відеопамять розділена на декілька сторінок, то кожна із них має свій курсор, координати якого можна встановлювати окремо. Координати курсору визначають не тільки місце на екрані, де він відображається, але і позицію, починаючи з якої відповідні функції BIOS будуть виводити на екран рядки або окремі символи.