SysFn22/ru: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
(Undo revision 2844 by Waexu (talk))
No edit summary
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
''' Функция 22 - установить системную дату/время. '''
''' Функция 22 - установить системную дату/время. '''
 
----
Параметры:
Параметры:
* eax = 22 - номер функции
:* eax = 22 - номер функции
* ebx = 0 - установить время
:* ebx = 0 - установить время
** ecx = 0x00SSMMHH - время в двоично-десятичном коде (BCD):
::* ecx = 0x00SSMMHH - время в двоично-десятичном коде (BCD):
** HH=час 00..23
::* HH=час 00..23
** MM=минута 00..59
::* MM=минута 00..59
** SS=секунда 00..59
::* SS=секунда 00..59
* ebx = 1 - установить дату
:* ebx = 1 - установить дату
** ecx = 0x00DDMMYY - дата в двоично-десятичном коде (BCD):
::* ecx = 0x00DDMMYY - дата в двоично-десятичном коде (BCD):
** DD=день 01..31
::* DD=день 01..31
** MM=месяц 01..12
::* MM=месяц 01..12
** YY=год 00..99
::* YY=год 00..99
* ebx = 2 - установить день недели
:* ebx = 2 - установить день недели
** ecx = 1 для воскресенья, ..., 7 для субботы
::* ecx = 1 для воскресенья, ..., 7 для субботы
* ebx = 3 - установить будильник
:* ebx = 3 - установить будильник
** ecx = 0x00SSMMHH
::* ecx = 0x00SSMMHH
 
Возвращаемое значение:
Возвращаемое значение:
* eax = 0 - успешно
:* eax = 0 - успешно
* eax = 1 - параметр задан неверно
:* eax = 1 - параметр задан неверно
* eax = 2 - CMOS-батарейки разрядились
:* eax = 2 - CMOS-батарейки разрядились
 
Замечания:
Замечания:
* Ценность установки дня недели представляется сомнительной, поскольку он мало где используется (день недели можно рассчитать по дате).
:* Ценность установки дня недели представляется сомнительной,
* Будильник можно установить на срабатывание в заданное время каждые сутки. При этом отключить его существующими системными функциями нельзя.
::поскольку он мало где используется
* Срабатывание будильника заключается в генерации IRQ8.
::(день недели можно рассчитать по дате).
* Вообще-то CMOS поддерживает для будильника установку значения 0xFF в качестве одного из параметров и означает это, что соответствующий параметр игнорируется. Но в текущей реализации это не пройдёт (вернётся значение 1).
:* Будильник можно установить на срабатывание в заданное время
* Будильник - глобальный системный ресурс; установка будильника автоматически отменяет предыдущую установку. Впрочем, на данный момент ни одна программа его не использует.
::каждые сутки. При этом отключить его существующими системными
::функциями нельзя.
:* Срабатывание будильника заключается в генерации IRQ8.
:* Вообще-то CMOS поддерживает для будильника установку значения
::0xFF в качестве одного из параметров и означает это, что
::соответствующий параметр игнорируется. Но в текущей реализации
::это не пройдёт (вернётся значение 1).
:* Будильник - глобальный системный ресурс; установка будильника
::автоматически отменяет предыдущую установку. Впрочем, на данный
::момент ни одна программа его не использует.


'''Константы для регистров:'''
::eax - SF_SET_TIME_DATE (22)


{{System_functions}}
{{System_functions}}
[[Category: SysCalls]]
[[Category: SysCalls]]

Latest revision as of 18:53, 16 January 2016

Функция 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)