Определение текущего времени

Установка даты

Определение текущей даты

Основные функции MS-DOS для работы с таймером

Сброс будильника

Установить будильник

Установить дату в часах реального времени

Прочитать дату из часов реального времени

Установить часы реального времени

Прочитать показания часов реального времени

На входе: AH = 02h.

 

На выходе: CH = часы в BCD-формате (например, 13h означает 13 часов);

 

CL = минуты в BCD-формате;

 

DH = секунды в BCD-формате;

 

CF = CY = 1, если часы реального времени не установлены.

 

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

 

CH = часы в BCD-формате (например, 13h означает 13 часов);

 

CL = минуты в BCD-формате;

 

DH = секунды в BCD-формате;

 

DL = 1, если необходимо использовать летнее время (daylight savings time option).

 

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

 

На входе: AH = 04h.

 

На выходе: CH = столетие в BCD-формате ;

 

CL = год в BCD-формате (например, CX=1991h означает 1991 год);

 

DH = месяц в BCD-формате;

 

DL = число в BCD-формате;

 

CF = CY = 1, если часы реального времени не установлены.

 

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

 

CH = столетие в BCD-формате ;

 

CL = год в BCD-формате (например, CX=1991h означает 1991 год);

 

DH = месяц в BCD-формате;

 

DL = число в BCD-формате;

 

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

 

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

 

CH = часы в BCD-формате;

 

CL = минуты в BCD-формате;

 

DH = секунды в BCD-формате.

 

На выходе: CF = CY = 1, если часы реального времени не установлены.

 

Эта функция позволяет установить будильник на заданное время. Когда будильник "зазвенит", будет вызвано прерывание INT 4Ah (это прерывание вызывают модули BIOS после прихода аппаратного прерывания от часов реального времени IRQ8, т.е. прерывания с номером 70h). Программа, использующая функцию будильника, должна подготовить обработчик прерывания INT 4Ah, завершающий свою работу выполнением команды IRET.

Программа может установить только один будильник.

На входе: AH = 07h.

 

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

 

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 раза в секунду).