Средства 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 и предоставляют широкие возможности для отображения даты и времени в различных форматах. Подробное описание этих функций и примеры их использования вы найдете в документации на библиотеки. К сожалению, в этих библиотеках нет функций для организации программных задержек.