Difference between revisions of "SysFn22/ru"

From KolibriOS wiki
Jump to navigation Jump to search
 
(2 intermediate revisions by 2 users 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).
 +
:* Будильник - глобальный системный ресурс; установка будильника
 +
::автоматически отменяет предыдущую установку. Впрочем, на данный
 +
::момент ни одна программа его не использует.
  
Замечания:
+
'''Константы для регистров:'''
* Ценность установки дня недели представляется сомнительной, поскольку он мало где используется (день недели можно рассчитать по дате).
+
::eax - SF_SET_TIME_DATE (22)
* Будильник можно установить на срабатывание в заданное время каждые сутки. При этом отключить его существующими системными функциями нельзя.
 
* Срабатывание будильника заключается в генерации IRQ8.
 
* Вообще-то CMOS поддерживает для будильника установку значения 0xFF в качестве одного из параметров и означает это, что соответствующий параметр игнорируется. Но в текущей реализации это не пройдёт (вернётся значение 1).
 
* Будильник - глобальный системный ресурс; установка будильника автоматически отменяет предыдущую установку. Впрочем, на данный момент ни одна программа его не использует.
 
  
[http://www.bestessays.com essay writing]
 
 
{{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)