Ru/api/kernel
СИСТЕМНЫЕ ФУНКЦИИ 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 - иниц