Ru/api/kernel

From KolibriOS wiki
Jump to navigation Jump to search

СИСТЕМНЫЕ ФУНКЦИИ KolibriOS 0.7.7.0

Номер функции помещается в регистр eax. Вызов системной функции осуществляется командой "int 0x40". Все регистры, кроме явно указанных в возвращаемом значении, включая регистр флагов eflags, сохраняются.


Функция 0 - определить и нарисовать окно.

Определяет окно приложения. Рисует рамку окна, заголовок и рабочую область. Для окон со скином определяет стандартные кнопки закрытия и минимизации.

Описание функции перенесено в отдельную статью: Функция 0

Функция 1 - поставить точку в окне.

Описание функции перенесено в отдельную статью: Функция 1

Функция 2 - получить код нажатой клавиши.

Извлекает из буфера код нажатой клавиши.

Описание функции перенесено в отдельную статью: Функция 2

Функция 3 - получить системное время.

Описание функции перенесено в отдельную статью: Функция 3

Функция 4 - вывести строку текста в окно.

Описание функции перенесено в отдельную статью: Функция 4

Функция 5 - пауза.

Задерживает выполнение программы на заданное время.

Описание функции перенесено в отдельную статью: Функция 5

Функция 6 - прочитать файл с рамдиска.

Описание функции перенесено в отдельную статью: Функция 6

Функция 7 - вывести изображение в окно.

Описание функции перенесено в отдельную статью: Функция 7

Функция 8 - определить/удалить кнопку.

Описание функции перенесено в отдельную статью: Функция 8

Функция 9 - информация о потоке выполнения.

Описание функции перенесено в отдельную статью: Функция 9

Функция 10 - ожидать события.

Если очередь сообщений пуста, то ждет появления сообщения в очереди. В таком состоянии поток не получает процессорного времени. Затем считывает сообщение из очереди.

Описание функции перенесено в отдельную статью: Функция 10

Функция 11 - проверить, есть ли событие, без ожидания.

Если в очереди сообщений есть какое-то событие, то считывает и возвращает его. Если очередь пуста, возвращает нуль.

Описание функции перенесено в отдельную статью: Функция 11

Функция 12 - начать/закончить перерисовку окна.

Подфункция 1 - начать перерисовку окна. Подфункция 2 - закончить перерисовку окна.

Перенесены в отдельную статью: Функция 12

Функция 13 - нарисовать прямоугольник в окне.

Функция перенесена в статью Функция 13

Функция 14 - получить размеры экрана.

Описание функции перенесено в отдельную статью: Функция 14

Функция 15 - работа с фоновой графикой

Описание функции перенесено в отдельную статью: Функция 15

Функция 16 - сохранить рамдиск на дискету.

Описание функции перенесено в отдельную статью: Функция 16

Функция 17 - получить код нажатой кнопки.

Описание функции перенесено в отдельную статью: Функция 17

Функция 18 - системные настройки и информация

Описание функции перенесено в отдельную статью: Функция 18

Функция 20 - интерфейс MIDI.

Описание функции перенесено в отдельную статью: Функция 20

Функция 21 - установка системных параметров

Описание функции перенесено в отдельную статью: Функция 21

Функция 22 - установить системную дату/время.

Описание функции перенесено в отдельную статью: Функция 22

Функция 23 - ожидать события с таймаутом.

Описание функции перенесено в отдельную статью: Функция 23

Функция 24 - работа с проигрывателем компакт-дисков

Описание функции перенесено в отдельную статью: Функция 24

Функция 25 - установить громкость SBPro.

Удалена

Функция 26 - аппаратный сервис

Описание функции перенесено в отдельную статью: Функция 26

Функция 27

сведения об этой функции отсутствуют

Функция 28 - установить громкость SB16.

Удалена

Функция 29 - получить системную дату.

Описание функции перенесено в отдельную статью: Функция 29

Функция 30 - работа с текущей папкой.

Описание функции перенесено в отдельную статью: Функция 30

Функция 31

сведения об этой функции отсутствуют

Функция 32

Системная функция с этим номером использовалась в ранних версиях КОС для удаления файла с рамдиска. удалена

Функция 33

Системная функция с этим номером использовалась в ранних версиях КОС для записи файла на рамдиск. удалена

Функция 34

сведения об этой функции отсутствуют

Функция 35 - прочитать цвет точки на экране.

Описание функции перенесено в отдельную статью: Функция 35

Функция 36 - прочитать область экрана.

Описание функции перенесено в отдельную статью: Функция 36

Функция 37 - работа с мышью.

Описание функции перенесено в отдельную статью: Функция 37

Функция 38 - нарисовать отрезок.

Описание функции перенесено в отдельную статью: Функция 38

Функция 39 - чтение фона.

Описание функции перенесено в отдельную статью: Функция 39

Функция 40 - установить маску для ожидаемых событий.

Описание функции перенесено в отдельную статью: Функция 40

Функция 41 - узнать владельца IRQ.

Описание функции перенесено в отдельную статью: Функция 41

Функция 42 - работа с данными, полученными по IRQ.

Описание функции перенесено в отдельную статью: Функция 42

Функция 43 - ввод/вывод в порт.

Описание функции перенесено в отдельную статью: Функция 43

Функция 44 - определить действия при поступлении IRQ.

Описание функции перенесено в отдельную статью: Функция 44

Функция 45 - зарезервировать/освободить IRQ.

Описание функции перенесено в отдельную статью: Функция 45

Функция 46 - зарезервировать/освободить группу портов ввода/вывода.

Внимание: Эта функция устарела и может быть удалена в следующих версиях ядра.

Описание функции перенесено в отдельную статью: Функция 46

Функция 47 - вывести число в окно.

Описание функции перенесено в отдельную статью: Функция 47

Функция 48 - стили отображения окон

Описание функции перенесено в отдельную статью: Функция 48

Функция 49 - Advanced Power Management (APM).

Описание функции перенесено в отдельную статью: Функция 49

Функция 50 - установка формы окна.

Описание функции перенесено в отдельную статью: Функция 50

Функция 51 - создать поток.

Описание функции перенесено в отдельную статью: Функция 51

Функция 52 - сетевой сервис.

Описание функции перенесено в отдельную статью: Функция 52

Функция 53 - работа с сетевым сокетами.

Описание функции перенесено в отдельную статью: Функция 53

Функция 54

Описание сисфункции с этим номером отсутствует.

Функция 55 - аудио сервис.

Подфункция 0 - загрузить данные для SB16.

Параметры:

 * eax = 55 - номер функции
 * ebx = 0 - номер подфункции
 * ecx = указатель на данные (копируется 64 килобайта, используется
   столько, сколько установлено подфункцией 2)

Возвращаемое значение:

 * функция не возвращает значения

Замечания:

 * Формат и размер данных устанавливаются подфункцией 2.


Подфункция 1 - начать проигрывать данные на SB16.

Параметры:

 * eax = 55 - номер функции
 * ebx = 1 - номер подфункции

Возвращаемое значение:

 * функция не возвращает значения

Замечания:

 * Предварительно данные должны быть загружены подфункцией 0 и
   определён их формат подфункцией 2.
 * Функция возвращает управление, когда началось проигрывание данных;
   после этого проигрывание идёт независимо от приложения (и вообще
   не требует загрузки процессора).
 * Предварительно должны быть определены базовый порт SB16
   (подфункцией 4 функции 21) и канал DMA
   (подфункцией 10 функции 21).


Подфункция 2 - установить формат данных SB16.

Параметры:

 * eax = 55 - номер функции
 * ebx = 2 - номер подфункции
 * ecx = 0 - установить разрядность
   * edx = 1 - 8бит моно
   * edx = 2 - 8бит стерео
 * ecx = 1 - установить размер данных
   * edx = размер в байтах
 * ecx = 2 - установить частоту проигрывания
   * edx = частота

Возвращаемое значение:

 * функция не возвращает значения

Замечания:

 * При загрузке системы устанавливаются следующие параметры
   по умолчанию: разрядность - 8 бит моно, размер - 64 Кб,
   частота 44100 Гц. Тем не менее рекомендуется явно устанавливать
   необходимые значения, поскольку они могли быть переустановлены
   какой-нибудь программой.


Подфункция 55 - начать проигрывать данные на встроенном спикере.

Параметры:

 * eax = 55 - номер функции
 * ebx = 55 - номер подфункции
 * esi = указатель на данные

Возвращаемое значение:

 * eax = 0 - успешно
 * eax = 55 - ошибка (спикер отключён или занят)

Данные - это массив элементов переменной длины. Формат каждого элемента определяется первым байтом:

 * 0 = конец данных
 * 1..0x80 = задаёт длительность звучания в сотых долях секунды
   ноты, определяемой непосредственным значением частоты
   * следующее слово (2 байта) содержит делитель частоты;
     частота определяется как 1193180/divider
 * 0x81 = invalid
 * 0x82..0xFF = нота, определяемая октавой и номером:
   * длительность в сотых долях секунды = (первый байт)-0x81
   * присутствует ещё один байт;
   * (второй байт)=0xFF - пауза
   * иначе он имеет вид a*0x10+b, где b=номер ноты в октаве от 1
     до 12, a=номер октавы (считая с 0)

Замечания:

 * Пищание спикером может быть запрещено/разрешено подфункцией 8
   функции 18.
 * Функция возвращает управление, сообщив куда следует информацию
   о запросе. Само проигрывание идёт независимо от программы.
 * Данные должны сохраняться в памяти по крайней мере
   до конца проигрывания.


Функция 57 - PCI BIOS.

Описание функции перенесено в отдельную статью: Функция 57

Функция 58 - работа с файловой системой.

Описание функции перенесено в отдельную статью: Функция 58

  • Подфункция 0 - прочитать файл/папку.
  • Подфункция 8 - LBA-чтение с устройства.
  • Подфункция 15 - получить информацию о файловой системе.

Функция 60 - Inter Process Communication (IPC).

Описание функции перенесено в отдельную статью: Функция 60

Подфункция 1 - установить область для получения IPC

Функция 61 - получить параметры для прямого доступа к графике.

Описание функции перенесено в отдельную статью: Функция 61

Функция 62 - пользовательский доступ к PCI.

Описание функции перенесено в отдельную статью: Функция 62

  • Подфункция 0 - получить версию PCI-интерфейса.
  • Подфункция 1 - получить номер последней PCI-шины.
  • Подфункция 2 - Получить механизм обращения к конфигурационному пространству PCI.
  • подфункции 4,5,6 - прочитать PCI-регистр.
  • подфункции 8,9,10 - записать в PCI-регистр.
  • подфункция 11 - иниц