Ru/api/kernel: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
(Добавлено упоминание подфункции 31 функции 68. Добавлено нормальное название страницы.)
 
(93 intermediate revisions by 10 users not shown)
Line 1: Line 1:
= СИСТЕМНЫЕ ФУНКЦИИ ОПЕРАЦИОННОЙ СИСТЕМЫ Kolibri 0.7.1.0 =
{{DISPLAYTITLE:API ядра}}
 
''' СИСТЕМНЫЕ ФУНКЦИИ KolibriOS'''


Номер функции помещается в регистр eax.
Номер функции помещается в регистр eax.
Line 5: Line 7:
Все регистры, кроме явно указанных в возвращаемом значении, включая регистр флагов eflags, сохраняются.
Все регистры, кроме явно указанных в возвращаемом значении, включая регистр флагов eflags, сохраняются.


== Перечень функций ==


== Функция 0 - определить и нарисовать окно. ==
[[SysFn00/ru | Функция 0]] - определить и нарисовать окно.
 
Определяет окно приложения. Рисует рамку окна, заголовок и рабочую
область. Для окон со скином определяет стандартные кнопки закрытия и
минимизации.
 
Описание функции перенесено в отдельную статью: [[SysFn00 | Функция 0]]
 
== Функция 1 - поставить точку в окне. ==
 
Описание функции перенесено в отдельную статью: [[SysFn01 | Функция 1]]
 
== Функция 2 - получить код нажатой клавиши. ==
 
Извлекает из буфера код нажатой клавиши.
 
Описание функции перенесено в отдельную статью: [[SysFn02 | Функция 2]]
 
== Функция 3 - получить системное время. ==
 
Описание функции перенесено в отдельную статью: [[SysFn03 | Функция 3]]
 
== Функция 4 - вывести строку текста в окно. ==
 
Описание функции перенесено в отдельную статью: [[SysFn04 | Функция 4]]
 
== Функция 5 - пауза. ==
 
Задерживает выполнение программы на заданное время.
 
Описание функции перенесено в отдельную статью: [[SysFn05 | Функция 5]]
 
== Функция 6 - прочитать файл с рамдиска. ==
 
Описание функции перенесено в отдельную статью: [[SysFn06 | Функция 6]]
 
== Функция 7 - вывести изображение в окно. ==
 
Описание функции перенесено в отдельную статью: [[SysFn07 | Функция 7]]
 
== Функция 8 - определить/удалить кнопку. ==
 
Описание функции перенесено в отдельную статью: [[SysFn08 | Функция 8]]
 
== Функция 9 - информация о потоке выполнения. ==
 
Описание функции перенесено в отдельную статью: [[SysFn09 | Функция 9]]
 
== Функция 10 - ожидать события. ==
 
Если очередь сообщений пуста, то ждет появления сообщения в очереди. В таком состоянии поток не получает процессорного времени. Затем считывает сообщение из очереди.
 
Описание функции перенесено в отдельную статью: [[SysFn10 | Функция 10]]
 
== Функция 11 - проверить, есть ли событие, без ожидания. ==
 
Если в очереди сообщений есть какое-то событие, то считывает и
возвращает его. Если очередь пуста, возвращает нуль.
 
Описание функции перенесено в отдельную статью:  [[SysFn11|Функция 11]]
 
== Функция 12 - начать/закончить перерисовку окна. ==
 
Подфункция 1 - начать перерисовку окна.
Подфункция 2 - закончить перерисовку окна.
 
Перенесены в отдельную статью: [[SysFn12|Функция 12]]
 
== Функция 13 - нарисовать прямоугольник в окне. ==
 
Функция перенесена в статью [[SysFn13|Функция 13]]
 
== Функция 14 - получить размеры экрана. ==
 
Описание функции перенесено в отдельную статью: [[SysFn14|Функция 14]]
 
== Функция 15. ==
 
Описание функции перенесено в отдельную статью: [[SysFn15/ru | Функция 15]]
 
== Функция 16 - сохранить рамдиск на дискету. ==
 
 
Описание функции перенесено в отдельную статью: [[SysFn16/ru|Функция 16]]
 
== Функция 17 - получить код нажатой кнопки. ==
 
Описание функции перенесено в отдельную статью: [[SysFn17/ru|Функция 17]]
 
== Функция 18 == 
 
Описание функции перенесено в отдельную статью: [[SysFn18/ru|Функция 18]]
 
== Функция 20 - интерфейс MIDI. ==
 
Описание функции перенесено в отдельную статью: [[SysFn20/ru|Функция 20]]
 
== Функция 22 - установить системную дату/время. ==
 
Описание функции перенесено в отдельную статью: [[SysFn22/ru|Функция 22]]
 
== Функция 23 - ожидать события с таймаутом. ==
 
Если очередь сообщений пуста, ждёт появления сообщения в очереди,
но не более указанного времени. Затем считывает сообщение из очереди.
 
Параметры:
  * eax = 23 - номер функции
  * ebx = таймаут (в сотых долях секунды)
Возвращаемое значение:
  * eax = 0 - очередь сообщений пуста
  * иначе eax = событие (смотри список событий)
Замечания:
  * Учитываются только те события, которые входят в маску,
    устанавливаемую функцией 40. По умолчанию это события
    перерисовки, нажатия на клавиши и на кнопки.
  * Для проверки, есть ли сообщение в очереди, используйте функцию 11.
    Чтобы ждать сколь угодно долго, используйте функцию 10.
  * Передача ebx=0 приводит к моментальному возвращению eax=0.
  * При текущей реализации произойдёт немедленный возврат из функции
    с eax=0, если сложение ebx с текущим значением счётчика времени
    вызовет 32-битное переполнение.
 
 
=== Подфункция 1 - начать проигрывать CD-audio. ===
 
Параметры:
  * eax = 24 - номер функции
  * ebx = 1 - номер подфункции
  * ecx = 0x00FRSSMM, где
    * MM = начальная минута
    * SS = начальная секунда
    * FR = начальный фрейм
Возвращаемое значение:
  * eax = 0 - успешно
  * eax = 1 - не определена база CD
Замечания:
  * Предварительно нужно определить базовый порт CD вызовом
    подфункции 3 функции 21.
  * В секунде 75 фреймов, в минуте 60 секунд.
  * Функция асинхронна (возвращает управление, когда началось
    проигрывание).
 
 
=== Подфункция 2 - получить информацию о дорожках. ===
 
Параметры:
  * eax = 24 - номер функции
  * ebx = 2 - номер подфункции
  * ecx = указатель на буфер для таблицы
    (максимум 8*64h+4 байт=100 дорожек)
Возвращаемое значение:
  * eax = 0 - успешно
  * eax = 1 - не определена база CD
Замечания:
  * Формат таблицы с информацией о дорожках такой же, как и для
    ATAPI-CD команды 43h (READ TOC), обычной таблицы (подкоманда 00h).
    Адреса возвращаются в формате MSF.
  * Предварительно нужно определить базовый порт CD вызовом
    подфункции 3 функции 21.
  * Функция возвращает информацию только о не более чем 100
    первых дорожках. В большинстве случаев этого достаточно.
 
 
=== Подфункция 3 - остановить проигрываемое CD-audio. ===
 
Параметры:
  * eax = 24 - номер функции
  * ebx = 1 - номер подфункции
Возвращаемое значение:
  * eax = 0 - успешно
  * eax = 1 - не определена база CD
Замечания:
  * Предварительно нужно определить базовый порт CD вызовом
    подфункции 3 функции 21.
 
 
=== Подфункция 4 - извлечь лоток привода диска. ===
 
Параметры:
  * eax = 24 - номер функции
  * ebx = 4 - номер подфункции
  * ecx = номер CD/DVD-диска
      (от 0=Primary Master до 3=Secondary Slave)
Возвращаемое значение:
  * функция не возвращает значения
Замечания:
  * Функция поддерживается только для ATAPI-устройств (CD и DVD).
  * При извлечении лотка производится разблокировка ручного управления
    механизмом лотка.
  * При извлечении лотка код производит очистку кэша соответствующего
    устройства.
  * Примером использования функции является приложение CD_tray.
 
 
=== Подфункция 5 - загрузить лоток привода диска. ===
 
Параметры:
  * eax = 24 - номер функции
  * ebx = 5 - номер подфункции
  * ecx = номер CD/DVD-диска
      (от 0=Primary Master до 3=Secondary Slave)
Возвращаемое значение:
  * функция не возвращает значения
Замечания:
  * Функция поддерживается только для ATAPI-устройств (CD и DVD).
  * Примером использования функции является приложение CD_tray.
 
 
== Функция 25 - установить громкость SBPro. ==
 
Удалена
 
 
=== Подфункция 1 - получить базовый порт MPU MIDI. ===
 
Параметры:
  * eax = 26 - номер функции
  * ebx = 1 - номер подфункции
Возвращаемое значение:
  * eax = номер порта
Замечания:
  * Установить базовый порт можно вызовом
    подфункции 1 функци