Subversion Repositories Kolibri OS

Compare Revisions

Ignore whitespace Rev 3778 → Rev 3780

/kernel/branches/Kolibri-acpi/docs/sysfuncr.txt
48,7 → 48,7
* esi = 0xXYRRGGBB - цвет заголовка
* RR, GG, BB определяют сам цвет
* Y=0 - обычное окно, Y=1 - неперемещаемое окно
* X определяет градиент заголовка: X=0 - нет градиента,
* X определяет градиент заголовка: X=0 - нет градиента,
X=8 - обычный градиент,
для окон типа II X=4 - негативный градиент
* прочие значения X и Y зарезервированы
74,7 → 74,7
координата (или, возможно, обе) считается нулем, а если и это
не помогает, то соответствующий размер (или, возможно, оба)
устанавливается в размер экрана.
 
Далее обозначим xpos,ypos,xsize,ysize - значения, передаваемые
в ebx,ecx. Координаты приводятся относительно левого верхнего
угла окна, который, таким образом, задается как (0,0), координаты
206,7 → 206,7
* B=1 - закрашивать фон цветом edi
* Y=Cnnn (биты):
* C=1 перенаправить вывод в область пользователя, задано в edi
* nnn - не используется в текущем виде, должно быть 0 (zero)
* nnn - не используется в текущем виде, должно быть 0 (zero)
* edx = указатель на начало строки
* esi = для A=0 длина строки, должна быть не больше 255;
для A=1 игнорируется
725,7 → 725,7
* Узнать, какое окно является активным, можно вызовом подфункции 7.
 
======================================================================
Функция 18, подфункция 4 - получить счётчик пустых тактов в секунду.
Функция 18, подфункция 4 - получить счётчик пустых тактов в секунду.
======================================================================
Под пустыми тактами понимается время, в которое процессор простаивает
в ожидании прерывания (в инструкции hlt).
746,7 → 746,7
* eax = тактовая частота (по модулю 2^32 тактов = 4ГГц)
 
======================================================================
Функция 18, подфункция 6 - сохранить рамдиск в файл на жёстком диске.
Функция 18, подфункция 6 - сохранить рамдиск в файл на жёстком диске.
======================================================================
Параметры:
* eax = 18 - номер функции
826,7 → 826,7
Замечания:
* Минимизированное окно с точки зрения функции 9 сохраняет положение
и размеры.
* Восстановление окна приложения происходит при активизировании
* Восстановление окна приложения происходит при активизировании
подфункцией 3.
* Обычно нет необходимости явно сворачивать/разворачивать своё окно:
сворачивание окна осуществляется системой при нажатии на кнопку
1089,7 → 1089,7
* иначе eax = номер слота
 
======================================================================
Функция 18, подфункция 22 - операции с окном другого процесса/потока.
Функция 18, подфункция 22 - операции с окном другого процесса/потока.
======================================================================
Параметры:
* eax = 18 - номер функции
1154,7 → 1154,7
* eax = 0 - успешно
* eax = 1 - не определён базовый порт
Замечания:
* Предварительно должен быть определён базовый порт вызовом
* Предварительно должен быть определён базовый порт вызовом
подфункции 1 функции 21.
 
======================================================================
1170,7 → 1170,7
Замечания:
* Номер порта должен удовлетворять условиям 0x100<=ecx<=0xFFFF.
* Установка базы нужна для работы функции 20.
* Получить установленный базовый порт можно вызовом
* Получить установленный базовый порт можно вызовом
подфункции 1 функции 26.
 
======================================================================
1200,7 → 1200,7
нормальная раскладка, после чего из кода вычитается 0x60;
если не нажата ни одна из управляющих клавиш, то используется
нормальная раскладка.
* Получить раскладки и идентификатор страны можно с помощью
* Получить раскладки и идентификатор страны можно с помощью
подфункции 2 функции 26.
* Идентификатор страны - глобальная системная переменная, которая
самим ядром не используется; однако приложение @panel отображает
1218,7 → 1218,7
* eax = 0
Замечания:
* База CD используется функцией 24.
* Получить установленную базу CD можно вызовом
* Получить установленную базу CD можно вызовом
подфункции 3 функции 26.
 
======================================================================
1256,7 → 1256,7
* Не следует изменять базу, когда какое-нибудь приложение работает
с жёстким диском. Если не хотите глюков системы.
* Получить установленную базу можно вызовом подфункции 7 функции 26.
* Следует также определить используемый раздел жёсткого диска
* Следует также определить используемый раздел жёсткого диска
подфункцией 8.
 
======================================================================
1279,9 → 1279,9
* Получить установленный раздел можно вызовом подфункции 8
функции 26.
* Проверок на корректность не делается.
* Узнать число разделов на жёстком диске можно вызовом
* Узнать число разделов на жёстком диске можно вызовом
подфункции 11 функции 18.
* Следует также определить используемую базу жёсткого диска
* Следует также определить используемую базу жёсткого диска
подфункцией 7.
 
======================================================================
1367,13 → 1367,13
* ebx = частота вертикальной развёртки (в Гц)
* ecx = номер текущего видеорежима
Замечания:
* Драйвер предварительно должен быть инициализирован вызовом
* Драйвер предварительно должен быть инициализирован вызовом
функции драйвера 1.
* Если нужны только размеры экрана, целесообразней использовать
функцию 14 с учётом того, что она возвращает размеры на 1 меньше.
 
======================================================================
= Функция 21, подфункция 13, подподфункция 3 - установить видеорежим.
= Функция 21, подфункция 13, подподфункция 3 - установить видеорежим.
======================================================================
Параметры:
* eax = 21 - номер функции
1386,7 → 1386,7
* eax = 0 - успешно
* ebx, ecx разрушаются
Замечания:
* Драйвер предварительно должен быть инициализирован вызовом
* Драйвер предварительно должен быть инициализирован вызовом
функции драйвера 1.
* Номер видеорежима и частота должны быть в таблице, возвращаемой
функцией драйвера 1.
1405,7 → 1405,7
* eax = 0 - успешно
* ebx, ecx разрушаются
Замечания:
* Драйвер предварительно должен быть инициализирован вызовом
* Драйвер предварительно должен быть инициализирован вызовом
функции драйвера 1.
 
======================================================================
1425,7 → 1425,7
* eax = 0 - успешно
* ebx, ecx разрушаются
Замечания:
* Драйвер предварительно должен быть инициализирован вызовом
* Драйвер предварительно должен быть инициализирован вызовом
функции драйвера 1.
* Функция влияет только на физический размер изображения
на мониторе; логический размер (число пикселей) не меняется.
1506,7 → 1506,7
* eax = 0 - успешно
* eax = 1 - не определена база CD
Замечания:
* Предварительно нужно определить базовый порт CD вызовом
* Предварительно нужно определить базовый порт CD вызовом
подфункции 3 функции 21.
* В секунде 75 фреймов, в минуте 60 секунд.
* Функция асинхронна (возвращает управление, когда началось
1527,7 → 1527,7
* Формат таблицы с информацией о дорожках такой же, как и для
ATAPI-CD команды 43h (READ TOC), обычной таблицы (подкоманда 00h).
Адреса возвращаются в формате MSF.
* Предварительно нужно определить базовый порт CD вызовом
* Предварительно нужно определить базовый порт CD вызовом
подфункции 3 функции 21.
* Функция возвращает информацию только о не более чем 100
первых дорожках. В большинстве случаев этого достаточно.
1542,7 → 1542,7
* eax = 0 - успешно
* eax = 1 - не определена база CD
Замечания:
* Предварительно нужно определить базовый порт CD вызовом
* Предварительно нужно определить базовый порт CD вызовом
подфункции 3 функции 21.
 
======================================================================
1606,7 → 1606,7
Возвращаемое значение:
* eax = номер порта
Замечания:
* Установить базовый порт можно вызовом
* Установить базовый порт можно вызовом
подфункции 1 функции 21.
 
======================================================================
1639,7 → 1639,7
нормальная раскладка, после чего из кода вычитается 0x60;
если не нажата ни одна из управляющих клавиш, то используется
нормальная раскладка.
* Установить раскладки и идентификатор страны можно с помощью
* Установить раскладки и идентификатор страны можно с помощью
подфункции 2 функции 21.
* Идентификатор страны - глобальная системная переменная, которая
самим ядром не используется; однако приложение @panel отображает
1734,7 → 1734,7
* eax = 0/1 - запрещён/разрешён
Замечания:
* Используется при LBA-чтении (подфункция 8 функции 58).
* Установить текущее состояние можно вызовом
* Установить текущее состояние можно вызовом
подфункции 11 функции 21.
 
======================================================================
1749,7 → 1749,7
Замечания:
* Используется при работе с шиной PCI (функция 62).
* Текущая реализация использует только младший бит ecx.
* Установить текущее состояние можно вызовом
* Установить текущее состояние можно вызовом
подфункции 12 функции 21.
 
======================================================================
1788,7 → 1788,7
* eax = длина имени текущей папки (включая завершающий 0)
Замечания:
* Если размера буфера недостаточно для копирования всего имени,
копируются только первые (edx-1) байт и в конце ставится
копируются только первые (edx-1) байт и в конце ставится
завершающий 0.
* По умолчанию, текущая папка для потока - "/rd/1".
* При создании процесса/потока текущая папка наследуется от
1801,8 → 1801,8
* ecx = указатель на блок данных:
sysdir_name rb 64
sysdir_path rb 64
Пример:
dir_name1 db 'addappl',0
Пример:
dir_name1 db 'KolibriOS',0
rb 64-8
dir_path1 db 'HD0/1',0
rb 64-6
1983,7 → 1983,7
Возвращаемое значение:
* eax = [ширина]*65536 + [высота]
Замечания:
* Есть парная команда установки размеров фонового изображения -
* Есть парная команда установки размеров фонового изображения -
подфункция 1 функции 15. После которой, разумеется, следует
заново определить само изображение.
 
2002,7 → 2002,7
* Не следует полагаться на возвращаемое значение в случае неверного
смещения, оно может измениться в следующих версиях ядра.
* Смещение точки с координатами (x,y) вычисляется как (x+y*xsize)*3.
* Есть парная функция установки точки на фоновом изображении -
* Есть парная функция установки точки на фоновом изображении -
подфункция 2 функции 15.
 
======================================================================
2015,7 → 2015,7
* eax = 1 - замостить
* eax = 2 - растянуть
Замечания:
* Есть парная функция установки режима отрисовки фона -
* Есть парная функция установки режима отрисовки фона -
подфункция 4 функции 15.
 
======================================================================
2070,7 → 2070,7
 
 
======================================================================
= Функция 46 - зарезервировать/освободить группу портов ввода/вывода.
= Функция 46 - зарезервировать/освободить группу портов ввода/вывода.
======================================================================
К зарезервированным портам можно обращаться напрямую из приложения
командами in/out (рекомендуемый способ) и вызовом функции 43
2165,7 → 2165,7
Возвращаемое значение:
* функция не возвращает значения
Замечания:
* После вызова описываемой функции следует перерисовать экран
* После вызова описываемой функции следует перерисовать экран
подфункцией 0.
* Тип кнопок влияет только на их прорисовку функцией 8.
 
2182,7 → 2182,7
Возвращаемое значение:
* функция не возвращает значения
Замечания:
* После вызова описываемой функции следует перерисовать экран
* После вызова описываемой функции следует перерисовать экран
подфункцией 0.
* Таблица стандартных цветов влияет только на приложения,
которые эту таблицу явным образом получают (подфункцией 3) и
2296,7 → 2296,7
Аналогично по оси y.
* Смотри также функцию 14,
позволяющую определить размеры всего экрана.
* Есть парная функция получения рабочей области -
* Есть парная функция получения рабочей области -
подфункция 5.
* Эта функция автоматически перерисовывает экран, по ходу дела
обновляет координаты и размеры максимизированных окон.
2420,7 → 2420,7
* иначе eax = TID - идентификатор потока
 
======================================================================
= Функция 52, подфункция 0 - получить конфигурацию сетевого драйвера.
= Функция 52, подфункция 0 - получить конфигурацию сетевого драйвера.
======================================================================
Параметры:
* eax = 52 - номер функции
2445,7 → 2445,7
* Локальный IP-адрес устанавливается подфункцией 3.
 
======================================================================
Функция 52, подфункция 2 - установить конфигурацию сетевого драйвера.
Функция 52, подфункция 2 - установить конфигурацию сетевого драйвера.
======================================================================
Параметры:
* eax = 52 - номер функции
2773,7 → 2773,7
* ebx разрушается
 
======================================================================
Функция 53, подфункция 255 - отладочная информация сетевого драйвера.
Функция 53, подфункция 255 - отладочная информация сетевого драйвера.
======================================================================
Параметры:
* eax = 53 - номер функции
3015,8 → 3015,8
* Размер блока - 512 байт; читается один блок.
* Не следует полагаться на возвращаемое значение,
оно может измениться в следующих версиях.
* Требуется, чтобы был разрешён LBA-доступ к устройствам
подфункцией 11 функции 21. Узнать это можно вызовом
* Требуется, чтобы был разрешён LBA-доступ к устройствам
подфункцией 11 функции 21. Узнать это можно вызовом
подфункцией 11 функции 26.
* LBA-чтение дискеты не поддерживается.
* Функция считывает данные физического жёсткого диска;
3030,7 → 3030,7
это будет считаться успехом (eax=0).
 
======================================================================
= Функция 58, подфункция 15 - получить информацию о файловой системе.
= Функция 58, подфункция 15 - получить информацию о файловой системе.
======================================================================
Параметры:
* eax = 58 - номер функции
4057,7 → 4057,7
общем описании).
 
======================================================================
Функция 69, подфункция 7 - записать в память отлаживаемого процесса.
Функция 69, подфункция 7 - записать в память отлаживаемого процесса.
======================================================================
Параметры:
* eax = 69 - номер функции
/kernel/branches/Kolibri-acpi/docs/sysfuncs.txt
203,13 → 203,13
* B=1 - fill background with the color edi
* Y = Cnnn
* C=1 redirect the output to the user area, specified in edi
* nnn - not used in the current, must be 0 (zero)
* nnn - not used in the current, must be 0 (zero)
* edx = pointer to the beginning of the string
* esi = for A=0 length of the string, must not exceed 255;
for A=1 is ignored
* edi = color to fill background, if B=1
* edi = pointer to user area, for redirect, if C=1
 
Returned value:
* function does not return value
Remarks:
1783,8 → 1783,8
* ecx = pointer to a block of data:
sysdir_name rb 64
sysdir_path rb 64
For example:
dir_name1 db 'addappl',0
For example:
dir_name1 db 'KolibriOS',0
rb 64-8
dir_path1 db 'HD0/1',0
rb 64-6
1805,7 → 1805,7
* eax = 0x000000XX - owner of pixel the slot window N
If incorrect values ebx and ecx then function returns 0
* The function takes the value from the area [_WinMapAddress]
 
======================================================================
======= Function 35 - read the color of a pixel on the screen. =======
======================================================================
2414,7 → 2414,7
=========================== Function 52 ==============================
======================================================================
 
WARNING: This function is obsolete and is only present in the
WARNING: This function is obsolete and is only present in the
documentation as a guide to understand/port the older network
applications. For new programs, use function 74
 
2587,7 → 2587,7
=========================== Function 53 ==============================
======================================================================
 
WARNING: This function is obsolete and is only present in the
WARNING: This function is obsolete and is only present in the
documentation as a guide to understand/port the older network
applications. For new programs, use function 75.
 
4171,8 → 4171,8
* '/hd0/2/menuet/pics/tanzania.bmp',0
* '/hd0/1/Program files/NameOfProgram/SomeFile.SomeExtension',0
* '/sys/MySuperApp.ini',0
Also function supports relative names. If the path begins not
with '/', it is considered relative to a current folder. To get or
Also function supports relative names. If the path begins not
with '/', it is considered relative to a current folder. To get or
set a current folder, use the function 30.
 
Available subfunctions:
/kernel/branches/Kolibri-acpi/fs/parse_fn.inc
36,7 → 36,7
sysdir_path1 rb 64
 
; for example:
;dir_name1 db 'addappl',0
;dir_name1 db 'KolibriOS',0
; rb 64-8
;dir_path1 db 'HD0/1',0
; rb 64-6
80,7 → 80,7
cmp [edx], dword 'MENU'
jne .next_cd
jmp .ok
 
@@:
sub al, 49
mov [ecx], dword 'HD?/'; if hard disk
/kernel/trunk/docs/sysfuncr.txt
48,7 → 48,7
* esi = 0xXYRRGGBB - цвет заголовка
* RR, GG, BB определяют сам цвет
* Y=0 - обычное окно, Y=1 - неперемещаемое окно
* X определяет градиент заголовка: X=0 - нет градиента,
* X определяет градиент заголовка: X=0 - нет градиента,
X=8 - обычный градиент,
для окон типа II X=4 - негативный градиент
* прочие значения X и Y зарезервированы
74,7 → 74,7
координата (или, возможно, обе) считается нулем, а если и это
не помогает, то соответствующий размер (или, возможно, оба)
устанавливается в размер экрана.
 
Далее обозначим xpos,ypos,xsize,ysize - значения, передаваемые
в ebx,ecx. Координаты приводятся относительно левого верхнего
угла окна, который, таким образом, задается как (0,0), координаты
206,7 → 206,7
* B=1 - закрашивать фон цветом edi
* Y=Cnnn (биты):
* C=1 перенаправить вывод в область пользователя, задано в edi
* nnn - не используется в текущем виде, должно быть 0 (zero)
* nnn - не используется в текущем виде, должно быть 0 (zero)
* edx = указатель на начало строки
* esi = для A=0 длина строки, должна быть не больше 255;
для A=1 игнорируется
725,7 → 725,7
* Узнать, какое окно является активным, можно вызовом подфункции 7.
 
======================================================================
Функция 18, подфункция 4 - получить счётчик пустых тактов в секунду.
Функция 18, подфункция 4 - получить счётчик пустых тактов в секунду.
======================================================================
Под пустыми тактами понимается время, в которое процессор простаивает
в ожидании прерывания (в инструкции hlt).
746,7 → 746,7
* eax = тактовая частота (по модулю 2^32 тактов = 4ГГц)
 
======================================================================
Функция 18, подфункция 6 - сохранить рамдиск в файл на жёстком диске.
Функция 18, подфункция 6 - сохранить рамдиск в файл на жёстком диске.
======================================================================
Параметры:
* eax = 18 - номер функции
826,7 → 826,7
Замечания:
* Минимизированное окно с точки зрения функции 9 сохраняет положение
и размеры.
* Восстановление окна приложения происходит при активизировании
* Восстановление окна приложения происходит при активизировании
подфункцией 3.
* Обычно нет необходимости явно сворачивать/разворачивать своё окно:
сворачивание окна осуществляется системой при нажатии на кнопку
1089,7 → 1089,7
* иначе eax = номер слота
 
======================================================================
Функция 18, подфункция 22 - операции с окном другого процесса/потока.
Функция 18, подфункция 22 - операции с окном другого процесса/потока.
======================================================================
Параметры:
* eax = 18 - номер функции
1154,7 → 1154,7
* eax = 0 - успешно
* eax = 1 - не определён базовый порт
Замечания:
* Предварительно должен быть определён базовый порт вызовом
* Предварительно должен быть определён базовый порт вызовом
подфункции 1 функции 21.
 
======================================================================
1170,7 → 1170,7
Замечания:
* Номер порта должен удовлетворять условиям 0x100<=ecx<=0xFFFF.
* Установка базы нужна для работы функции 20.
* Получить установленный базовый порт можно вызовом
* Получить установленный базовый порт можно вызовом
подфункции 1 функции 26.
 
======================================================================
1200,7 → 1200,7
нормальная раскладка, после чего из кода вычитается 0x60;
если не нажата ни одна из управляющих клавиш, то используется
нормальная раскладка.
* Получить раскладки и идентификатор страны можно с помощью
* Получить раскладки и идентификатор страны можно с помощью
подфункции 2 функции 26.
* Идентификатор страны - глобальная системная переменная, которая
самим ядром не используется; однако приложение @panel отображает
1218,7 → 1218,7
* eax = 0
Замечания:
* База CD используется функцией 24.
* Получить установленную базу CD можно вызовом
* Получить установленную базу CD можно вызовом
подфункции 3 функции 26.
 
======================================================================
1256,7 → 1256,7
* Не следует изменять базу, когда какое-нибудь приложение работает
с жёстким диском. Если не хотите глюков системы.
* Получить установленную базу можно вызовом подфункции 7 функции 26.
* Следует также определить используемый раздел жёсткого диска
* Следует также определить используемый раздел жёсткого диска
подфункцией 8.
 
======================================================================
1279,9 → 1279,9
* Получить установленный раздел можно вызовом подфункции 8
функции 26.
* Проверок на корректность не делается.
* Узнать число разделов на жёстком диске можно вызовом
* Узнать число разделов на жёстком диске можно вызовом
подфункции 11 функции 18.
* Следует также определить используемую базу жёсткого диска
* Следует также определить используемую базу жёсткого диска
подфункцией 7.
 
======================================================================
1367,13 → 1367,13
* ebx = частота вертикальной развёртки (в Гц)
* ecx = номер текущего видеорежима
Замечания:
* Драйвер предварительно должен быть инициализирован вызовом
* Драйвер предварительно должен быть инициализирован вызовом
функции драйвера 1.
* Если нужны только размеры экрана, целесообразней использовать
функцию 14 с учётом того, что она возвращает размеры на 1 меньше.
 
======================================================================
= Функция 21, подфункция 13, подподфункция 3 - установить видеорежим.
= Функция 21, подфункция 13, подподфункция 3 - установить видеорежим.
======================================================================
Параметры:
* eax = 21 - номер функции
1386,7 → 1386,7
* eax = 0 - успешно
* ebx, ecx разрушаются
Замечания:
* Драйвер предварительно должен быть инициализирован вызовом
* Драйвер предварительно должен быть инициализирован вызовом
функции драйвера 1.
* Номер видеорежима и частота должны быть в таблице, возвращаемой
функцией драйвера 1.
1405,7 → 1405,7
* eax = 0 - успешно
* ebx, ecx разрушаются
Замечания:
* Драйвер предварительно должен быть инициализирован вызовом
* Драйвер предварительно должен быть инициализирован вызовом
функции драйвера 1.
 
======================================================================
1425,7 → 1425,7
* eax = 0 - успешно
* ebx, ecx разрушаются
Замечания:
* Драйвер предварительно должен быть инициализирован вызовом
* Драйвер предварительно должен быть инициализирован вызовом
функции драйвера 1.
* Функция влияет только на физический размер изображения
на мониторе; логический размер (число пикселей) не меняется.
1506,7 → 1506,7
* eax = 0 - успешно
* eax = 1 - не определена база CD
Замечания:
* Предварительно нужно определить базовый порт CD вызовом
* Предварительно нужно определить базовый порт CD вызовом
подфункции 3 функции 21.
* В секунде 75 фреймов, в минуте 60 секунд.
* Функция асинхронна (возвращает управление, когда началось
1527,7 → 1527,7
* Формат таблицы с информацией о дорожках такой же, как и для
ATAPI-CD команды 43h (READ TOC), обычной таблицы (подкоманда 00h).
Адреса возвращаются в формате MSF.
* Предварительно нужно определить базовый порт CD вызовом
* Предварительно нужно определить базовый порт CD вызовом
подфункции 3 функции 21.
* Функция возвращает информацию только о не более чем 100
первых дорожках. В большинстве случаев этого достаточно.
1542,7 → 1542,7
* eax = 0 - успешно
* eax = 1 - не определена база CD
Замечания:
* Предварительно нужно определить базовый порт CD вызовом
* Предварительно нужно определить базовый порт CD вызовом
подфункции 3 функции 21.
 
======================================================================
1606,7 → 1606,7
Возвращаемое значение:
* eax = номер порта
Замечания:
* Установить базовый порт можно вызовом
* Установить базовый порт можно вызовом
подфункции 1 функции 21.
 
======================================================================
1639,7 → 1639,7
нормальная раскладка, после чего из кода вычитается 0x60;
если не нажата ни одна из управляющих клавиш, то используется
нормальная раскладка.
* Установить раскладки и идентификатор страны можно с помощью
* Установить раскладки и идентификатор страны можно с помощью
подфункции 2 функции 21.
* Идентификатор страны - глобальная системная переменная, которая
самим ядром не используется; однако приложение @panel отображает
1734,7 → 1734,7
* eax = 0/1 - запрещён/разрешён
Замечания:
* Используется при LBA-чтении (подфункция 8 функции 58).
* Установить текущее состояние можно вызовом
* Установить текущее состояние можно вызовом
подфункции 11 функции 21.
 
======================================================================
1749,7 → 1749,7
Замечания:
* Используется при работе с шиной PCI (функция 62).
* Текущая реализация использует только младший бит ecx.
* Установить текущее состояние можно вызовом
* Установить текущее состояние можно вызовом
подфункции 12 функции 21.
 
======================================================================
1788,7 → 1788,7
* eax = длина имени текущей папки (включая завершающий 0)
Замечания:
* Если размера буфера недостаточно для копирования всего имени,
копируются только первые (edx-1) байт и в конце ставится
копируются только первые (edx-1) байт и в конце ставится
завершающий 0.
* По умолчанию, текущая папка для потока - "/rd/1".
* При создании процесса/потока текущая папка наследуется от
1801,8 → 1801,8
* ecx = указатель на блок данных:
sysdir_name rb 64
sysdir_path rb 64
Пример:
dir_name1 db 'addappl',0
Пример:
dir_name1 db 'KolibriOS',0
rb 64-8
dir_path1 db 'HD0/1',0
rb 64-6
1983,7 → 1983,7
Возвращаемое значение:
* eax = [ширина]*65536 + [высота]
Замечания:
* Есть парная команда установки размеров фонового изображения -
* Есть парная команда установки размеров фонового изображения -
подфункция 1 функции 15. После которой, разумеется, следует
заново определить само изображение.
 
2002,7 → 2002,7
* Не следует полагаться на возвращаемое значение в случае неверного
смещения, оно может измениться в следующих версиях ядра.
* Смещение точки с координатами (x,y) вычисляется как (x+y*xsize)*3.
* Есть парная функция установки точки на фоновом изображении -
* Есть парная функция установки точки на фоновом изображении -
подфункция 2 функции 15.
 
======================================================================
2015,7 → 2015,7
* eax = 1 - замостить
* eax = 2 - растянуть
Замечания:
* Есть парная функция установки режима отрисовки фона -
* Есть парная функция установки режима отрисовки фона -
подфункция 4 функции 15.
 
======================================================================
2070,7 → 2070,7
 
 
======================================================================
= Функция 46 - зарезервировать/освободить группу портов ввода/вывода.
= Функция 46 - зарезервировать/освободить группу портов ввода/вывода.
======================================================================
К зарезервированным портам можно обращаться напрямую из приложения
командами in/out (рекомендуемый способ) и вызовом функции 43
2165,7 → 2165,7
Возвращаемое значение:
* функция не возвращает значения
Замечания:
* После вызова описываемой функции следует перерисовать экран
* После вызова описываемой функции следует перерисовать экран
подфункцией 0.
* Тип кнопок влияет только на их прорисовку функцией 8.
 
2182,7 → 2182,7
Возвращаемое значение:
* функция не возвращает значения
Замечания:
* После вызова описываемой функции следует перерисовать экран
* После вызова описываемой функции следует перерисовать экран
подфункцией 0.
* Таблица стандартных цветов влияет только на приложения,
которые эту таблицу явным образом получают (подфункцией 3) и
2296,7 → 2296,7
Аналогично по оси y.
* Смотри также функцию 14,
позволяющую определить размеры всего экрана.
* Есть парная функция получения рабочей области -
* Есть парная функция получения рабочей области -
подфункция 5.
* Эта функция автоматически перерисовывает экран, по ходу дела
обновляет координаты и размеры максимизированных окон.
2420,7 → 2420,7
* иначе eax = TID - идентификатор потока
 
======================================================================
= Функция 52, подфункция 0 - получить конфигурацию сетевого драйвера.
= Функция 52, подфункция 0 - получить конфигурацию сетевого драйвера.
======================================================================
Параметры:
* eax = 52 - номер функции
2445,7 → 2445,7
* Локальный IP-адрес устанавливается подфункцией 3.
 
======================================================================
Функция 52, подфункция 2 - установить конфигурацию сетевого драйвера.
Функция 52, подфункция 2 - установить конфигурацию сетевого драйвера.
======================================================================
Параметры:
* eax = 52 - номер функции
2773,7 → 2773,7
* ebx разрушается
 
======================================================================
Функция 53, подфункция 255 - отладочная информация сетевого драйвера.
Функция 53, подфункция 255 - отладочная информация сетевого драйвера.
======================================================================
Параметры:
* eax = 53 - номер функции
3015,8 → 3015,8
* Размер блока - 512 байт; читается один блок.
* Не следует полагаться на возвращаемое значение,
оно может измениться в следующих версиях.
* Требуется, чтобы был разрешён LBA-доступ к устройствам
подфункцией 11 функции 21. Узнать это можно вызовом
* Требуется, чтобы был разрешён LBA-доступ к устройствам
подфункцией 11 функции 21. Узнать это можно вызовом
подфункцией 11 функции 26.
* LBA-чтение дискеты не поддерживается.
* Функция считывает данные физического жёсткого диска;
3030,7 → 3030,7
это будет считаться успехом (eax=0).
 
======================================================================
= Функция 58, подфункция 15 - получить информацию о файловой системе.
= Функция 58, подфункция 15 - получить информацию о файловой системе.
======================================================================
Параметры:
* eax = 58 - номер функции
4057,7 → 4057,7
общем описании).
 
======================================================================
Функция 69, подфункция 7 - записать в память отлаживаемого процесса.
Функция 69, подфункция 7 - записать в память отлаживаемого процесса.
======================================================================
Параметры:
* eax = 69 - номер функции
/kernel/trunk/docs/sysfuncs.txt
203,13 → 203,13
* B=1 - fill background with the color edi
* Y = Cnnn
* C=1 redirect the output to the user area, specified in edi
* nnn - not used in the current, must be 0 (zero)
* nnn - not used in the current, must be 0 (zero)
* edx = pointer to the beginning of the string
* esi = for A=0 length of the string, must not exceed 255;
for A=1 is ignored
* edi = color to fill background, if B=1
* edi = pointer to user area, for redirect, if C=1
 
Returned value:
* function does not return value
Remarks:
1783,8 → 1783,8
* ecx = pointer to a block of data:
sysdir_name rb 64
sysdir_path rb 64
For example:
dir_name1 db 'addappl',0
For example:
dir_name1 db 'KolibriOS',0
rb 64-8
dir_path1 db 'HD0/1',0
rb 64-6
1805,7 → 1805,7
* eax = 0x000000XX - owner of pixel the slot window N
If incorrect values ebx and ecx then function returns 0
* The function takes the value from the area [_WinMapAddress]
 
======================================================================
======= Function 35 - read the color of a pixel on the screen. =======
======================================================================
2414,7 → 2414,7
=========================== Function 52 ==============================
======================================================================
 
WARNING: This function is obsolete and is only present in the
WARNING: This function is obsolete and is only present in the
documentation as a guide to understand/port the older network
applications. For new programs, use function 74
 
2587,7 → 2587,7
=========================== Function 53 ==============================
======================================================================
 
WARNING: This function is obsolete and is only present in the
WARNING: This function is obsolete and is only present in the
documentation as a guide to understand/port the older network
applications. For new programs, use function 75.
 
4171,8 → 4171,8
* '/hd0/2/menuet/pics/tanzania.bmp',0
* '/hd0/1/Program files/NameOfProgram/SomeFile.SomeExtension',0
* '/sys/MySuperApp.ini',0
Also function supports relative names. If the path begins not
with '/', it is considered relative to a current folder. To get or
Also function supports relative names. If the path begins not
with '/', it is considered relative to a current folder. To get or
set a current folder, use the function 30.
 
Available subfunctions:
/kernel/trunk/fs/parse_fn.inc
36,7 → 36,7
sysdir_path1 rb 64
 
; for example:
;dir_name1 db 'addappl',0
;dir_name1 db 'KolibriOS',0
; rb 64-8
;dir_path1 db 'HD0/1',0
; rb 64-6
80,7 → 80,7
cmp [edx], dword 'MENU'
jne .next_cd
jmp .ok
 
@@:
sub al, 49
mov [ecx], dword 'HD?/'; if hard disk