Ru/api/kernel: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
</
(Добавлено упоминание подфункции 31 функции 68. Добавлено нормальное название страницы.)
 
(102 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 - получить код нажатой клавиши. ==


Извлекает из буфера код нажатой клавиши.
[[SysFn01/ru | Функция 1]] - поставить точку в окне.


Описание функции перенесено в отдельную статью: [[SysFn02 | Функция 2]]
[[SysFn02/ru | Функция 2]] - получить код нажатой клавиши.


== Функция 3 - получить системное время. ==
[[SysFn03/ru | Функция 3]] - получить системное время.


Описание функции перенесено в отдельную статью: [[SysFn03 | Функция 3]]
[[SysFn04/ru | Функция 4]] - вывести строку текста в окно.


== Функция 4 - вывести строку текста в окно. ==
[[SysFn05/ru | Функция 5]] - пауза.


Описание функции перенесено в отдельную статью: [[SysFn04 | Функция 4]]
[[SysFn07/ru | Функция 7]] - вывести изображение в окно.


== Функция 5 - пауза. ==
[[SysFn08/ru | Функция 8]] - определить/удалить кнопку.


Задерживает выполнение программы на заданное время.
[[SysFn09/ru | Функция 9]] - информация о потоке выполнения.


Описание функции перенесено в отдельную статью: [[SysFn05 | Функция 5]]
[[SysFn10/ru | Функция 10]] - ожидать события.


== Функция 6 - прочитать файл с рамдиска. ==
[[SysFn11/ru|Функция 11]] - проверить, есть ли событие, без ожидания.


Описание функции перенесено в отдельную статью: [[SysFn06 | Функция 6]]
[[SysFn12/ru|Функция 12]] - начать/закончить перерисовку окна.
* Подфункция 1 - начать перерисовку окна.
* Подфункция 2 - закончить перерисовку окна.


== Функция 7 - вывести изображение в окно. ==
[[SysFn13/ru|Функция 13]] - нарисовать прямоугольник в окне.


Описание функции перенесено в отдельную статью: [[SysFn07 | Функция 7]]
[[SysFn14/ru|Функция 14]] - получить размеры экрана.


== Функция 8 - определить/удалить кнопку. ==
[[SysFn15/ru | Функция 15]] - работа с фоновой графикой
* Подфункция 1 - установить размер фонового изображения.
* Подфункция 2 - поставить точку на фоновом изображении.
* Подфункция 3 - перерисовать фон.
* Подфункция 4 - установить режим отрисовки фона.
* Подфункция 5 - поместить блок пикселей на фон.
* Подфункция 6 - спроецировать данные фона на адресное пространство процесса.
* Подфункция 7 - закрыть проекцию данных фона на адресное пространство процесса.
* Подфункция 8 - получить координаты последней отрисовки фона.
* Подфункция 9 - перерисовать прямоугольную часть фона.


Описание функции перенесено в отдельную статью: [[SysFn08 | Функция 8]]
[[SysFn16/ru|Функция 16]] - сохранить рамдиск на дискету.


== Функция 9 - информация о потоке выполнения. ==
[[SysFn17/ru|Функция 17]] - получить код нажатой кнопки.


Описание функции перенесено в отдельную статью: [[SysFn09 | Функция 9]]
[[SysFn18/ru|Функция 18]] - системные настройки и информация
* Подфункция 1 - сделать неактивным окно потока
* Подфункция 2 - завершить процесс/поток по слоту.
* Подфункция 3 - сделать активным окно заданного потока.
* Подфункция 4 - получить счётчик пустых тактов в секунду.
* Подфункция 5 - получить тактовую частоту.
* Подфункция 6 - сохранить рамдиск в файл на жёстком диске.
* Подфункция 7 - получить номер активного окна.
* Подфункция 8 - отключить/разрешить звук спикера.
* Подфункция 9 - завершение работы системы с параметром.
* Подфункция 10 - свернуть окно приложения.
* Подфункция 11 - получить информацию о дисковой подсистеме.
* Подфункция 13 - получить версию ядра.
* Подфункция 14 - ожидать начала обратного хода луча развёртки монитора.
* Подфункция 15 - поместить курсор мыши в центр экрана.
* Подфункция 16 - Получить размер свободной оперативной памяти.
* Подфункция 17 - получить размер имеющейся оперативной памяти.
* Подфункция 18 - завершить процесс/поток по идентификатору.
* Подфункция 19 - получить/установить настройки мыши.
* Подфункция 20 - получить информацию об оперативной памяти.
* Подфункция 21 - получить номер слота процесса/потока по идентификатору.
* Подфункция 22 - операции с окном другого процесса/потока.
* Подфункция 23 - минимизировать все окна.
* Подфункция 24 - установить пределы отрисовки.
* Подфункция 25 - управление положением окна относительно других окон.


== Функция 10 - ожидать события. ==
[[SysFn20/ru|Функция 20]] - интерфейс MIDI.
* Подфункция 1 - сброс
* Подфункция 2 - вывести байт


Если очередь сообщений пуста, то ждет появления сообщения в очереди. В таком состоянии поток не получает процессорного времени. Затем считывает сообщение из очереди.
[[SysFn21/ru|Функция 21]] - установка системных параметров
* Подфункция 1 - установить базовый порт MPU MIDI.
* Подфункция 2 - установить раскладку клавиатуры.
* Подфункция 5 - установить язык системы.
* Подфункция 11 - разрешить/запретить низкоуровневый доступ к HD.
* Подфункция 12 - разрешить/запретить низкоуровневый доступ к PCI.


Описание функции перенесено в отдельную статью: [[SysFn10 | Функция 10]]
[[SysFn22/ru|Функция 22]] - установить системную дату/время.


== Функция 11 - проверить, есть ли событие, без ожидания. ==
[[SysFn23/ru|Функция 23]] - ожидать события с таймаутом.


Если в очереди сообщений есть какое-то событие, то считывает и
[[SysFn24/ru|Функция 24]] - работа с проигрывателем компакт-дисков.
возвращает его. Если очередь пуста, возвращает нуль.
* Подфункция 4 - извлечь лоток привода диска.
* Подфункция 5 - загрузить лоток привода диска.


Описание функции перенесено в отдельную статью:  [[SysFn11|Функция 11]]
[[SysFn25/ru|Функция 25]] - записать область на слой фона.


== Функция 12 - начать/закончить перерисовку окна. ==
[[SysFn26/ru|Функция 26]] - аппаратный сервис.
* Подфункция 1 - получить базовый порт MPU MIDI.
* Подфункция 2 - получить раскладку клавиатуры.
* Подфункция 5 - получить язык системы.
* Подфункция 9 - получить значение счётчика времени.
* Подфункция 10 - получить значение высокоточного счётчика времени.
* Подфункция 11 - узнать, разрешён ли низкоуровневый доступ к HD.
* Подфункция 12 - узнать, разрешён ли низкоуровневый доступ к PCI.


Подфункция 1 - начать перерисовку окна.
[[SysFn29/ru|Функция 29]] - получить системную дату.
Подфункция 2 - закончить перерисовку окна.


Перенесены в отдельную статью: [[SysFn12|Функция 12]]
[[SysFn30/ru|Функция 30]] - работа с текущей папкой.
* Подфункция 1 - установить текущую папку для потока.
* Подфункция 2 - получить активную папку для потока.
* Подфункция 3 - установить доп. системную директорию для ядра.
* Подфункция 4 - установить текущую папку с указанием кодировки.
* Подфункция 5 - получить текущую папку с указанием кодировки.


== Функция 13 - нарисовать прямоугольник в окне. ==
[[SysFn34/ru|Функция 34]] - узнать кому принадлежит точка экрана.


Функция перенесена в статью [[SysFn13|Функция 13]]
[[SysFn35/ru|Функция 35]] - прочитать цвет точки на экране.


== Функция 14 - получить размеры экрана. ==
[[SysFn36/ru|Функция 36]] - прочитать область экрана.


Описание функции перенесено в отдельную статью: [[SysFn14|Функция 14]]
[[SysFn37/ru|Функция 37]] - работа с мышью.
* Подфункция 0 - экранные координаты мыши
* Подфункция 1 - координаты мыши относительно окна
* Подфункция 2 - состояния кнопок мыши
* Подфункция 3 - состояния и события кнопок мыши
* Подфункция 4 - загрузить курсор
* Подфункция 5 - установить курсор
* Подфункция 6 - удалить курсор
* Подфункция 7 - данные прокрутки
* Подфункция 8 - загрузить курсор с указанием кодировки


== Функция 15. ==
[[SysFn38/ru|Функция 38]] - нарисовать отрезок.
=== Подфункция 1 - установить размер фонового изображения. ===


Параметры:
[[SysFn39/ru|Функция 39]] - чтение фона.
  * eax = 15 - номер функции
* Подфункция 1 - получить размер фонового изображения.
  * ebx = 1 - номер подфункции
* Подфункция 2 - прочитать точку с фонового изображения.
  * ecx = ширина изображения
* Подфункция 4 - получить режим отрисовки фона.
  * edx = высота изображения
Возвращаемое значение:
  * функция не возвращает значения
Замечания:
  * Вызов функции обязателен перед вызовом подфункций 2 и 5.
  * Для обновления экрана (после завершения серии команд, работающих с
    фоном) вызывайте подфункцию 3 перерисовки фона.
  * Есть парная функция получения размеров фонового изображения -
    подфункция 1 функции 39.