Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПО.doc
Скачиваний:
46
Добавлен:
12.03.2015
Размер:
605.18 Кб
Скачать

12. Прерывание 17h – работа с принтером

Функция 00h – вывод на принтер

На входе:

AH

00h

AL

Символ

AX

Должен быть обнулен(00h)

Возврат:

AH

Статус принтера

0 - таймаут

1,2 – не используется

3 – ошибка передачи

4 – занято

5 – нет бумаги

6 – подтверждение

7 – не готов

Функция 01h – инициализировать принтер

На входе:

AH

01h

DX

00h

Возврат:

AH

Аналогично предыдущему

Функция 02h – считать статус принтера

Возврат: аналогично предыдущему

13. Прерывание 18h – работа с принтером (вызов подзадачи)

14. Прерывание 19h – начальная загрузка (перезагрузить компьютер)

15. Прерывание 1Ah – работа с системным таймером.

На основе данного прерывания, как правило, эмулируется работа с нестандартными устройствами. С нестандартного устройства по возможности снимается временная характеристика поступления или приема различных цифровых сигналов. На основе временного графика строится эмулятор этого устройства, примерно совпадающий с этим устройством. Далее пишется драйвер на данное устройство. Программа драйвер сажается на вектор прерывания свободный в операционной системе. Пишется пользовательская программа и проверяется правильность работы эмулятора и драйвера. После подключения нестандартного устройства драйвер заменяется на другой драйвер, в котором вместо 1Ah используется обращение к портам устройства.

Функция 00h – прочитать время

На входе:

AH

00h

CX

Младшая часть двойного слова

DX

Старшая часть

Возврат:

AL

Если 1, то «сигнал полночи» (т.е. новая дата)

Функция 01h – установить время

На входе:

AH

01h

CX

Младшая часть двойного слова

DX

Старшая часть

Возврат:

Не используется

Функция 02h – прочитать неупакованное время

На входе:

AH

02h

Возврат:

CH

Часы

CL

Минуты

DH

Секунды

Функция 03h – установить неупакованное время

На входе:

AH

03h

CH

Часы

CL

Минуты

DH

Секунды

DL

1 – 12-ти часовое время

2 – 24-х часовое время

Возврат:

Не используется

Функция 04h – прочитать реальную дату

На входе:

AH

04h

Возврат:

DL

День

DH

Месяц

CL

Год

CH

Век

Функция 05h – установить распакованную (реальную) дату

Аналогично возврату из предыдущей функции

Функция 06h – установить сигнал тревоги через системный динамик

На входе:

AH

06h

CH

Часы

CL

Минуты

DH

Секунды

Возврат:

Не используется

Функция 07h – сбросить сигнал тревоги

16. Прерывание 1Bh – вызвать прерывание Ctrl+C

17. Прерывание 20h – прерывание MS-DOS (закончить программу)

18. Прерывание 21h – вызов функции MS-DOS. Прерывания аналогично IBM PC но дополнительно есть группы работы файлами, памятью, каталогами.

19.Прерывание 27h – закончить программу и оставить ее резидентной

Не рекомендуется использовать прерывания до адреса 40h и начиная с 50h до 6Ah.

Пример:

Написать функцию которая бы передавала статус клавиатуры с использованием библиотеки DOS. Вывела бы «1» если нажата клавиша Shift, «2» - Ctrl, «3» - alt, «0» - в противном случае.

Uses dos;

Function klst:byte;

Var

R:registers;

St,i:byte;

Begin

Swapvectors;

r.ah:=2;

intr($16,r);

st:=r.al;

Swapvectors;

Klst:=0;

I:=1;

Repeat

If (st and i)=i

Then begin

If i=1

Then klst:=1

Else klst:=st div i;

End;

End;

Inc(i);

Until (i=16)or(klst<>i);

End;

5.8. Системные соглашения при использовании турбо Паскаль

При использовании ТП кроме библиотеки DOS обязательно использовать системные средства, входящие в ТП

По умолчанию. Они входят в библиотеку SYSTEM. В отличие от других библиотек, данная библиотека загружается в каждую программу, написанную на ТП., поэтому не должна появлятся в утверждении USES. Библиотека состоит из нескольких программ, которые заменяют системные драйвера в процессе выполнение программы на ТП. Пользователь не имеет возможности обратится непосредственно к процедурам и функциям данной библиотеки (все процедуры и функции данной библиотеки являются основными в язаке ТП) Кроме них в состав библиотеки входят константы и переменные.

Переменные библиотеки SYSTEM

Главные файлы

INPUT:TEXT - файл ввода

OUTPUT:TEXT - файл вывода

Адреса системных процедур, по которым сохранениы системные драйверы

SaveInt00:pointer - обработка деления на ноль.

SaveInt02:pointer - обработка ошибок четности

SaveInt13:pointer - прерывание с клавиатуры ( Ctrl+C)

SaveInt23:pointer - адрес окончания программы

SaveInt24:pointer - вектор программы, которая выполняется при обнаружении критических ошибок.

Начиная с адреса 34 по адрес 3F находятся специальные прерывания ТП.