SysFn22/ru

From KolibriOS wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Функция 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).
  • Будильник - глобальный системный ресурс; установка будильника
автоматически отменяет предыдущую установку. Впрочем, на данный
момент ни одна программа его не использует.

Константы для регистров:

eax - SF_SET_TIME_DATE (22)