Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metoda AK.doc
Скачиваний:
4
Добавлен:
17.11.2018
Размер:
1.44 Mб
Скачать

Завдання до лабораторної роботи

Завдання: Встановити текстовий (80*25) режим роботи дисплею. В відповідності з індивідуальним завданням вивести на екран слова з необхідними відеоатрибутами.

Особливості програмування:

1).На мові Turbo-Pascal.

При використанні програмного переривання необхідно:

– підключити модуль Dos, в якому описані процедура Intr і тип змінної Registers;

– проголосити змінну цього типу, наприклад, reg: Registers;

– до регістрів мікропроцесора звертатися, як reg. al;

– процедуру переривання 10H викликати наступним чином: Intr ($10, reg).

Буфер відеоконтролера в текстовому режимі можна представити в вигляді масиву: buff: array [0.. 3999] of byte absolute $B800: $0000.

Тоді для виводу на екран символу в i-ий рядок і в j-й стовпець необхідно за адресою buff [i*160+j*2]записати ASCII код символу, а за наступною – байт відеоатрибута. Якщо слова задані в вигляді рядка символів s типу string, то для визначення ASCII коду k-й літери рядка можна скористатися виразом ord (s [k]).

2). На мові Turbo-C.

При використанні програмного переривання необхідно:

– підключити бібліотеку dos, в якій описана процедура int86 і тип REGS директивою #include <dos. h>;

– проголосити REGS оператором union REGS in, out, де in – ім'я структури вхідних регістрів, out – ім'я структури вихідних регістрів;

– до 8-разрядних регістрів звертатись, як in. h.al або out. h.ah, до 16-разрядних регістрів адресуються як in. x. ax або out. x. Ax;

– процедуру переривання 10H викликати слідуючим чином: int86 (0x10, &in, &out).

Звернення до буферу відеоконтролера в текстовому режимі здійснюється аналогічно зверненню до осередків ОЗП і ПЗП з допомогою дальніх покажчиків, проголошених char far uk. Тоді для занесення початкової адреси відеобуфера необхідно записати: uk= (char far) 0xB8000000. А для виводу на екран символу в i-й рядку і в j-м стовпці записати: (uk+i*160+j*2) =kod; (uk+i*160+j*2+1) =attr, де kod і attr змінні типу char, що описують ASCII код і атрибут символу відповідно.

Варіанти завдань:

1. Перші два слова червоним кольором на білому фоні; третє слово синім високої інтенсивності; четверте слово зелене блимаюче на червоному.

2. Перші три слова синім кольором на червоному фоні; друге слово високої інтенсивності.

3. Друге слово магента на чорному фоні; п'яте слово блимає; сьоме слово білим низької інтенсивності.

4. Перші три слова синім на білому фоні; четверте слово червоним високої інтенсивності; шосте слово зеленим блимаючим.

5. Сьоме слово білим чорному фоні; п'яте слово червоним кольором високої інтенсивності; перші три слова синім кольором блимають.

6. Два слова кольору ціан на червоному фоні; третє слово блимає; перше слово коричневим високої інтенсивності.

7. Перші два слова синім високої інтенсивності; третє слово блимає; четверте слово зелене на червоному фоні.

8. Перше слово чорним на білому фоні; четверте слово червоним на зеленому фоні блимає; шосте слово коричневим високої інтенсивності.

9. Друге слово рожеве високої інтенсивності; третє слово ціан на зеленому фоні; п'яте слово блимає.

10. Парні слова блакитним по рожевому; непарні - червоним по чорному; останнє п'яте слово блимає.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]