Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_лаб_ПЗСУ.doc
Скачиваний:
11
Добавлен:
07.02.2016
Размер:
483.84 Кб
Скачать

Додаток г Засоби виводу на екран

Нижче наведен короткий опис засобу виводу на екран, реалізований драйверами BIOS, програмне звертання до якого здійснюється за допомогою переривання INT 10h.

При роботі в текстовому режимі звичайно використовуються наступні функції драйвера.

Функція 02h дозволяє позиціювати текстовий курсор, задаючи його місце розташування у виді номера рядка (0...24) і номера стовпця (0...79).

Функція 03h дозволяє одержати і зберегти поточне положення курсору. Це дає можливість перейти тимчасово в інше місце екрана, сформувати там зображення, а потім повернутися на старе місце.

Функція 05h переключає відеосторінки дисплея. Якщо дисплей знаходиться в текстовому режимі, то переключаються текстові сторінки (0...7), якщо встановлено графічний режим, то переключаються графічні сторінки (0...1).

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

Функції 09h, 0Ah, 0Eh і 13h служать для виводу на екран окремих символів і символьних рядків (у циклі). Функції 09h і 0Ah не виконують фільтрацію керуючих символів, тому з їх допомогою можна виводити всі символи кодової сторінки. Вивід символу не переміщає курсор, тому щораз перед застосуванням функції 09h або 0Ah необхідно позициювати курсор за допомогою функції 02h.

Функція 0Eh фільтрує керуючі коди 07h (звуковий сигнал), 08h (повернення на крок), 10h (переведення рядка) і 13h (повернення каретки), виконуючи відповідні їм дії. Курсор переміщається перед виводом кожного символу, що дає можливість виводити цілі рядки. Важливою властивістю функції 0Eh є автоматичний перехід на наступний рядок після завершення попередньої, а також прокручування екрана нагору на один рядок після заповнення самого нижнього рядка.

Функція 13h призначена для виводу рядків із вказівкою атрибутів як кожного символу окремо, так і всього рядка. Функція може виконуватися в чотирьох варіантах у залежності від коду режиму, що вказується в регістрі AL.

У режимах 0 і 1 атрибут символів указується відразу для всього рядка в регістрі BL, причому в режимі 0 курсор не зміщається в процесі висновку, а в режимі 1 - зміщається на довжину рядка. У режимах 2 і 3 атрибути символів включаються у виведений рядок, у якій, таким чином, чергуються коди атрибутів і коди символів, що ускладнює формат рядка, але дозволяє встановлювати атрибути для кожного символу незалежно. При виклику функції 13h у регістрі DX, задаються координати початку виведеного рядка (у DH - рядок екрана й у DL - стовпець), а в регістрі CX - довжина виведеного рядка. Трохи незвичайно вказується адреса виведеного рядка. Він повинен бути поміщений у регістрі ES:BP.

Підфункція 03h функції 10h (переривання 10h), у відмінності від описаних вище функцій висновку символів і рядків, впливають відразу на весь екран, впливаючи на відображення тих символів, у яких установлений старший біт атрибутів фону.

Функція дозволяє або приписати цей біт яскравості фону, даючи тим самим можливість виводити на екран 16 кольорів фону, або призначити його атрибутові мерехтіння символу. В останньому випадку колір фону може приймати тільки 8 значень.