Ru/api/kernel: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
(Добавлено упоминание подфункции 31 функции 68. Добавлено нормальное название страницы.)
 
(106 intermediate revisions by 11 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 - нарисовать прямоугольник в окне. ==
 
Параметры:
  * eax = 13 - номер функции
  * ebx = [координата по оси x]*65536 + [размер по оси x]
  * ecx = [координата по оси y]*65536 + [размер по оси y]
  * edx = цвет 0xRRGGBB или 0x80RRGGBB для градиентной заливки
Возвращаемое значение:
  * функция не возвращает значения
Замечания:
  * Под координатами понимаются координаты левого верхнего угла
    прямоугольника относительно окна.
 
 
== Функция 14 - получить размеры экрана. ==
 
Параметры:
  * eax = 14 - номер функции
Возвращаемое значение:
  * eax = [xsize]*65536 + [ysize], где
  * xsize = x-координата правого нижнего угла экрана =
            размер по горизонтали - 1
  * ysize = y-координата правого нижнего угла экрана =
            размер по вертикали - 1
Замечания:
  * Смотри также подфункцию 5 функции 48 - получить размеры рабочей
    области экрана.
 
 
== Функция 15. ==
=== Подфункция 1 - установить размер фонового изображения. ===
 
Параметры:
  * eax = 15 - номер функции
  * ebx = 1 - номер подфункции
  * ecx = ширина изображения
  * edx = высота изображения
Возвращаемое значение:
  * функция не возвращает значения
Замечания:
  * Вызов функции обязателен перед вызовом подфункций 2 и 5.
  * Для обновления экрана (после завершения серии команд, работающих с
    фоном) вызывайте подфункцию 3 перерисовки фона.
  * Есть парная функция получения размеров фонового изображения -
    подфункция 1 функции 39.
 
 
=== Подфункция 2 - поставить точку на фоновом изображении. ===
 
Параметры:
  * eax = 15 - номер функции
  * ebx = 2 - номер подфункции
  * ecx = смещение
  * edx = цвет точки 0xRRGGBB
Возвращаемое значение:
  * функция не возвращает значения
Замечания:
  * Смещение для точки с координатами (x,y) вычисляется как
    (x+y*xsize)*3.
  * Если указанное смещение превышает установленный подфункцией 1
    размер, вызов игнорируется.
  * Для обновления экрана (после завершения серии команд, работающих с
    фоном) вызывайте подфункцию 3 перерисовки фона.
  * Есть парная функция получения точки с фонового изображения -
    подфункция 2 функции 39.
 
 
=== Подфункция 3 - перерисовать фон. ===
 
Параметры:
  * eax = 15 - номер функции
  * ebx = 3 - номер подфункции
Возвращаемое значение:
  * функция не возвращает значения
 
 
=== Подфункция 4 - установить режим отрисовки фона. ===
 
Параметры:
  * eax = 15 - номер функции
  * ebx = 4 - номер подфункции
  * ecx = режим отрисовки:
    * 1 = замостить
    * 2 = растянуть
Возвращаемое значение:
  * функция не возвращает значения
Замечания:
  * Для обновления экрана (после завершения серии команд, работающих с
    фоном) вызывайте подфункцию 3 перерисовки фона.
  * Есть парная команда получения режима отрисовки фона -
    подфункция 4 функции 39.
 
 
=== Подфункция 5 - поместить блок пикселей на фон. ===
 
Параметры:
  * eax = 15 - номер функции
  * ebx = 5 - номер подфункции
  * ecx = указатель на данные в формате BBGGRRBBGGRR...
  * edx = смещение в данных фонового изображения
  * esi = размер данных в байтах = 3 * число пикселей
Возвращаемое значение:
  * функция не возвращает значения
Замечания:
  * Проверки корректности смещения и размера не производится.
  * Цвет каждого пикселя хранится как 3-байтная величина BBGGRR.
  * Пиксели фонового изображения записываются последовательно
    слева направо, сверху вниз.
  * Смещение пикселя с координатами (x,y) есть (x+y*xsize)*3.
  * Для обновления экрана (после завершения серии команд, работающих с
    фоном) вызывайте подфункцию 3 перерисовки фона.
 
 
=== Подфункция 6 - спроецировать данные фона на адресное пространство процесса.===
 
Параметры:
  * eax = 15 - номер функции
  * ebx = 6 - номер подфункции
Возвращаемое значение:
  * eax = указатель на данные фона, 0 при ошибке
Замечания:
  * Спроецированные данные доступны на чтение и запись.
  * Размер данных фона равен 3*xsize*ysize. Изменение размеров фона
    блокируется на время работы с спроецированными данными.
  * Цвет каждого пикселя хранится как 3-байтовая величина BBGGRR.
  * Пиксели фонового изображения записываются последовательно
    слева направо, сверху вниз.
 
 
=== Подфункция 7 - закрыть проекцию данных фона на адресное пространство процесса. ===
 
Параметры:
  * eax = 15 - номер функции
  * ebx = 7 - номер подфункции
  * ecx = указатель на данные фона
Возвращаемое значение:
  * eax = 1 при успехе, 0 при ошибке
 
 
== Функция 16 - сохранить рамдиск на дискету. ==
 
Параметры:
  * eax = 16 - номер функции
  * ebx = 1 или ebx = 2 - на какую дискету сохранять
Возвращаемое значение:
  * eax = 0 - успешно
  * eax = 1 - ошибка
 
 
== Функция 17 - получить код нажатой кнопки. ==
 
Забирает код нажатой кнопки из буфера.
Параметры:
</