Аппаратное обеспечение IBM PC



         

Средства BIOS для работы с таймером - часть 2


printf("\n\nВремя пошло...");

tm_delay(18 * 10);

printf("\nГотово!");

exit(0); }

BIOS компьютеров IBM AT содержит еще две интересные функции для работы с таймером. Это функции 83h и 86h прерывания INT 15h.

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

Эту функцию удобно использовать для организации выполнения каких-либо действий параллельно с отсчетом времени, например, можно ограничить время для ввода пароля.

Приведем формат вызова функции 83h прерывания INT 15h:

На входе: AH = 83h;

AL = код подфункции:

0 - установить интервал, запустить таймер; 1 - отменить работу таймера;

CX = старший байт времени работы счетчика, задается в микросекундах;

DX = младший байт счетчика;

ES:BX = адрес байта, в котором по истечении интервала времени старший бит будет установлен в 1.

На выходе: не используются.

Функция 86h специально предназначена для формирования задержек. Она позволяет определять время задержки в микросекундах, что достаточно удобно для многих задач. Во время выполнения задержки разрешены прерывания. Формат вызова функции:

На входе: AH = 86h;

CX = старший байт времени задержки, задается в микросекундах;

DX = младший байт времени задержки.

На выходе: не используются.




Содержание  Назад  Вперед