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

       

Средства MS-DOS для работы с таймером


MS-DOS использует четыре функции прерывания INT 21h для работы с системным таймером. Эти функции позволяют узнать и установить текущие дату и время. MS-DOS версии 3.30 и более поздних версий при установке времени и даты изменяет также показания часов реального времени.

Для получения текущей даты используется функция 2Ah:

На входе: AH = 2Ah.

На выходе: DL = день (0...31);

DH = месяц (1...12);

CX = год (1980...2099);

AL = номер дня недели:

0 - воскресенье; 1 - понедельник; 2 - вторник; ......... 6 - суббота.

Обратите внимание на то, что функция возвращает вам номер дня недели, который она вычисляет на основе даты.

Для установки даты используйте функцию 2Bh:

На входе: AH = 2Bh;

DL = день (0...31);

DH = месяц (1...12);



CX = год (1980...2099).

На выходе: AL = 0, если установка выполнена правильно; AL = FFh, если при установке были заданы неправильные параметры.

Для того, чтобы определить текущее время, можно воспользоваться функцией 2Ch:

На входе: AH = 2Ch.

На выходе: CH = часы (0...24);

CL = минуты (0...59);

DH = секунды(0...59);

DL = сотые доли секунды (0...99).

Точность времени, полученного при помощи этой функции, определяется таймером (время обновляется 18.2 раза в секунду).

Для установки времени можно использовать функцию 2Dh:

На входе: AH = 2Dh;

CH = часы (0...24);

CL = минуты (0...59);

DH = секунды(0...59);

DL = сотые доли секунды (0...99).

На выходе: AL = 0, если установка выполнена правильно; AL = FFh, если при установке были заданы неправильные параметры.

Стандартные библиотеки трансляторов Microsoft QC 2.5 и C 6.0 содержат многочисленные функции для работы с датой и временем. Они основаны на описанных выше функциях MS-DOS и предоставляют широкие возможности для отображения даты и времени в различных форматах. Подробное описание этих функций и примеры их использования вы найдете в документации на библиотеки. К сожалению, в этих библиотеках нет функций для организации программных задержек.



Содержание раздела