SysFn22/ru
Jump to navigation
Jump to search
Функция 22 - установить системную дату/время.
Параметры:
- eax = 22 - номер функции
- ebx = 0 - установить время
- ecx = 0x00SSMMHH - время в двоично-десятичном коде (BCD):
- HH=час 00..23
- MM=минута 00..59
- SS=секунда 00..59
- ebx = 1 - установить дату
- ecx = 0x00DDMMYY - дата в двоично-десятичном коде (BCD):
- DD=день 01..31
- MM=месяц 01..12
- YY=год 00..99
- ebx = 2 - установить день недели
- ecx = 1 для воскресенья, ..., 7 для субботы
- ebx = 3 - установить будильник
- ecx = 0x00SSMMHH
Возвращаемое значение:
- eax = 0 - успешно
- eax = 1 - параметр задан неверно
- eax = 2 - CMOS-батарейки разрядились
Замечания:
- Ценность установки дня недели представляется сомнительной, поскольку он мало где используется (день недели можно рассчитать по дате).
- Будильник можно установить на срабатывание в заданное время каждые сутки. При этом отключить его существующими системными функциями нельзя.
- Срабатывание будильника заключается в генерации IRQ8.
- Вообще-то CMOS поддерживает для будильника установку значения 0xFF в качестве одного из параметров и означает это, что соответствующий параметр игнорируется. Но в текущей реализации это не пройдёт (вернётся значение 1).
- Будильник - глобальный системный ресурс; установка будильника автоматически отменяет предыдущую установку. Впрочем, на данный момент ни одна программа его не использует.