SysFn22/ru

From KolibriOS wiki
Revision as of 11:50, 3 April 2010 by Art zh (talk | contribs) (Created page with '''' Функция 22 - установить системную дату/время. ''' Параметры: * eax = 22 - номер функции * ebx = 0 - установи...')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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).
  • Будильник - глобальный системный ресурс; установка будильника автоматически отменяет предыдущую установку. Впрочем, на данный момент ни одна программа его не использует.