Використання функцій bios для роботи з видеоадаптерами

Другий недолік функцій ПЗУ BIOS полягає в тому, що більшість їх нереентерабельно. Тобто, поки не завершиться виклик функції BIOS, не можна викликати іншу функцію BIOS. Внаслідок цього ви не можете, як зазвичай, користуватися функціями BIOS в резидентних програмах.

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

Вибір режиму роботи - функція 00h

додаток

Затримка програмних операцій

Програмні затримки використовуються в тих випадках, коли в будь-якій точці програми треба призупинити її виконання на деякий час. По виду виконання програмні затримки діляться на два типи: затримки, які реалізуються на основі виконання програмою "порожніх" вкладених циклів, і затримки, які реалізуються на основі системного таймера комп'ютера. У лістингу 1 наведено приклад реалізації затримки першого типу.

Лістинг 1. Програмна затримка на основі виконання вкладених циклів з командою Loop.

proc delay; підпрограма затримки

mov cx, N; N - лічильник зовнішнього циклу

mov cx, 0; Забезпечимо максимальне число

; повторень (64К раз) внутрішнього циклу

loop Inner; внутрішній цикл

loop outer; Повторимо весняний цикл N разів

У лістингу 1 параметр N виконує роль масштабного множника часу затримки:

При цьому найменшою одиницею часу (тобто "тиком") є час виконання внутрішнього циклу, що складається, в свою чергу, з часу виконання 65535 раз команди Loop. Параметр N підбирається експериментально для отримання tзадержкі (в мсек або сек) з урахуванням швидкодії конкретного комп'ютера.

З розгляду даного прикладу очевидні недоліки даного підходу, коли потрібно забезпечити виконання тимчасової затримки в програмі, незалежно від типу використовуваного комп'ютера. Тому розумно визначати час програмної затримки безпосередньо за таймером. Вихідні сигнали таймера з частотою 18,2 рази в секунду не залежать від продуктивності комп'ютера і грають роль лічильника добового часу. Реалізація даного способу використовує функцію 00h переривання BIOS int 1Ah.

Повернення: СХ: DX - число тактів системного часу від півночі,

AL - прапор переходу через добу.

Приклади значень, що повертаються в СХ: DX:

1 сек 12h або 18,

1 хвилина 04 44h або 1092,

1 година 1 00 07h або 65543,

24 години 18 00 B0h або 1 573 040.

Для затримок, менших 14 секунд, можна користуватися тільки молодшим байтом регістру DX.

Лістинг 2. B даному прикладі встановлена ​​затримка на 5 секунд, що відповідає 91 відліку таймера

mov ah, 0; Функція "читання" циклів таймера

int 1Ah; Отримуємо значення лічильника циклів в cx: dx

add dx, 91; Додаємо 5 сек. до молодшого слову в dx

mov bx, dx; Запам'ятовуємо необхідне значення в bx і

; виконуємо постійну перевірку значень

; лічильника часу доби

int 1Ah; Знову отримуємо значення лічильника

cmp dx, bx; Порівнюємо з шуканим

jne repeat; Якщо не дорівнює, то повторюємо знову,

; інакше затримка закінчена

Якщо потрібне введення затримки з високою точністю, то необхідно використовувати функцію 86h переривання BIOS int 15h. Вона дозволяє визначити час затримки в мікросекундах. Під час виконання затримки дозволені переривання. Управління програмою повертається після закінчення заданого часу.

Int 15h, функція 86h.

Виклик: AH = 86h, СX: DX = час затримки в мксек.

Повернення: CF = 0 - нормальне виконання, CF = 1 - функція не підтримується.

Приклад: CX: DX = 0098h: 9680h = 10 000 000 мксек = 10 сек.

Розглянемо лише один найбільш простий і уживаний графічний режим VGA 320x200, 256 кольорів. У ньому кожен піксель описується одним байтом, значення якого визначає колір пікселя.

Перехід в графічний режим VGA 320x200, 256 квітів здійснюється за допомогою функції 00h переривання BIOS 10h установкою режиму 13h.

putpix macro x, y, color; Піксель за допомогою BIOS

виводиться повідомлення «C000 ROM Error». Якщо Video BIOS не знайдений, то використовується. чудово справляється зі своїми функціями набору графічних драйверів. Взявши до. значення 0. Для включення цього режімаіспользуйте значення 1  Відкладене.

бібліотеки. Наприклад, BIOS. тобто програма, яка. процедур, що дозволяють використовувати базові функції персонального комп'ютера. роздруковувати вміст екрану в графіческомрежіме. HELP Надає довідкову. процесами ps - висновок на екран списку.

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

недопустимими з боку BIOS. В даному випадку існує. графіческомрежіме. Аргумент ппп визначає номер ко-довой сторінки, яку слід використовувати для виведення. ку (Search Companion) може іспользоватьфункцію Indexing Service, позво-рами.

Схожі статті