Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Прерывание 1Ah – работа с системным таймером.
На основе данного прерывания, как правило, эмулируется работа с нестандартными устройствами. С нестандартного устройства по возможности снимается временная характеристика поступления или приема различных цифровых сигналов. На основе временного графика строится эмулятор этого устройства, примерно совпадающий с этим устройством. Далее пишется драйвер на данное устройство. Программа драйвер сажается на вектор прерывания свободный в операционной системе. Пишется пользовательская программа и проверяется правильность работы эмулятора и драйвера. После подключения нестандартного устройства драйвер заменяется на другой драйвер, в котором вместо 1Ah используется обращение к портам устройства. Функция 00h – прочитать время
Функция 01h – установить время
Функция 02h – прочитать неупакованное время
Функция 03h – установить неупакованное время
Функция 04h – прочитать реальную дату
Функция 05h – установить распакованную (реальную) дату Аналогично возврату из предыдущей функции Функция 06h – установить сигнал тревоги через системный динамик
Функция 07h – сбросить сигнал тревоги 16. Прерывание 1Bh – вызвать прерывание Ctrl+C Прерывание 20h – прерывание MS-DOS (закончить программу) Прерывание 21h – вызов функции MS-DOS. Прерывания аналогично IBM PC но дополнительно есть группы работы файлами, памятью, каталогами. Прерывание 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 находятся специальные прерывания ТП.
ОВЕРЛЕЙ
Оверлейной структурой под управлением ОС MS-DOS называется специальный комплекс программ позволяющий экономить оперативную память при выполнении программы. Под управление ОС Windows оверлей называется динамическими библиотеками. Для того чтобы сделать оверлейную программу в Turbo Pascal пользователь должен осуществить 2 этапа: Построить структурную схему программы. Определить в главной программе использование библиотеки overlay и задать опции управления в программах. |
Последнее изменение этой страницы: 2019-04-19; Просмотров: 194; Нарушение авторского права страницы