From 7d19efffb27a15fa1c445c377479b0d714ae34f0 Mon Sep 17 00:00:00 2001 From: IgorA Date: Tue, 12 Jan 2016 11:45:46 +0000 Subject: [PATCH] add constants git-svn-id: svn://kolibrios.org@6056 a494cfbc-eb01-0410-851d-a64ba20cac60 --- kernel/trunk/docs/sysfuncr.txt | 582 ++++++++++++++++++++++++++++++++- 1 file changed, 580 insertions(+), 2 deletions(-) diff --git a/kernel/trunk/docs/sysfuncr.txt b/kernel/trunk/docs/sysfuncr.txt index 0327b317e8..d30ec9fd65 100644 --- a/kernel/trunk/docs/sysfuncr.txt +++ b/kernel/trunk/docs/sysfuncr.txt @@ -129,6 +129,8 @@ * Значение переменной _skinh доступно как результат вызова подфункции 4 функции 48 +---------------------- Константы для регистров: ---------------------- + eax - SF_CREATE_WINDOW (0) ====================================================================== ================= Функция 1 - поставить точку в окне. ================ ====================================================================== @@ -142,6 +144,8 @@ Возвращаемое значение: * функция не возвращает значения +---------------------- Константы для регистров: ---------------------- + eax - SF_PUT_PIXEL (1) ====================================================================== ============== Функция 2 - получить код нажатой клавиши. ============= ====================================================================== @@ -178,6 +182,8 @@ * Поступает информация только о тех горячих клавишах, которые были определены этим потоком подфункцией 4 функции 66. +---------------------- Константы для регистров: ---------------------- + eax - SF_GET_KEY (2) ====================================================================== ================ Функция 3 - получить системное время. =============== ====================================================================== @@ -193,6 +199,8 @@ поскольку возвращает просто DWORD-значение счетчика времени. * Системное время можно установить функцией 22. +---------------------- Константы для регистров: ---------------------- + eax - SF_GET_SYS_TIME (3) ====================================================================== ================ Функция 4 - нарисовать строку текста. =============== ====================================================================== @@ -229,6 +237,8 @@ Xsize dd Ysize dd picture rb Xsize*Ysize*4 ; 32 бита +---------------------- Константы для регистров: ---------------------- + eax - SF_DRAW_TEXT (4) ====================================================================== ========================= Функция 5 - пауза. ========================= ====================================================================== @@ -245,6 +255,8 @@ picture rb Xsize*Ysize*4 ; 32 бита (закончить текущий квант времени), используйте подфункцию 1 функции 68. +---------------------- Константы для регистров: ---------------------- + eax - SF_SLEEP (5) ====================================================================== =============== Функция 7 - вывести изображение в окно. ============== ====================================================================== @@ -260,6 +272,8 @@ picture rb Xsize*Ysize*4 ; 32 бита изображения относительно окна. * Размер изображения в байтах есть 3*xsize*ysize. +---------------------- Константы для регистров: ---------------------- + eax - SF_PUT_IMAGE (7) ====================================================================== =============== Функция 8 - определить/удалить кнопку. =============== ====================================================================== @@ -293,6 +307,8 @@ picture rb Xsize*Ysize*4 ; 32 бита * Общее количество кнопок для всех приложений ограничено числом 4095. +---------------------- Константы для регистров: ---------------------- + eax - SF_DEFINE_BUTTON (8) ====================================================================== ============= Функция 9 - информация о потоке выполнения. ============ ====================================================================== @@ -393,6 +409,8 @@ picture rb Xsize*Ysize*4 ; 32 бита размером 1 Кб для будущей совместимости, в будущем могут быть добавлены некоторые поля. +---------------------- Константы для регистров: ---------------------- + eax - SF_THREAD_INFO (9) ====================================================================== ==================== Функция 10 - ожидать события. =================== ====================================================================== @@ -412,6 +430,8 @@ picture rb Xsize*Ysize*4 ; 32 бита Чтобы ждать не более определенного времени, используйте функцию 23. +---------------------- Константы для регистров: ---------------------- + eax - SF_WAIT_EVENT (10) ====================================================================== ======= Функция 11 - проверить, есть ли событие, без ожидания. ======= ====================================================================== @@ -430,6 +450,8 @@ picture rb Xsize*Ysize*4 ; 32 бита Чтобы ждать не более определенного времени, используйте функцию 23. +---------------------- Константы для регистров: ---------------------- + eax - SF_CHECK_EVENT (11) ====================================================================== =========== Функция 12 - начать/закончить перерисовку окна. ========== ====================================================================== @@ -451,6 +473,9 @@ picture rb Xsize*Ysize*4 ; 32 бита * Функция начала перерисовки удаляет все определённые функцией 8 кнопки, их следует определить повторно. +---------------------- Константы для регистров: ---------------------- + eax - SF_REDRAW (12) + ebx - SSF_BEGIN_DRAW (1), SSF_END_DRAW (2) ====================================================================== ============ Функция 13 - нарисовать прямоугольник в окне. =========== ====================================================================== @@ -465,6 +490,8 @@ picture rb Xsize*Ysize*4 ; 32 бита * Под координатами понимаются координаты левого верхнего угла прямоугольника относительно окна. +---------------------- Константы для регистров: ---------------------- + eax - SF_DRAW_RECT (13) ====================================================================== ================ Функция 14 - получить размеры экрана. =============== ====================================================================== @@ -480,6 +507,8 @@ picture rb Xsize*Ysize*4 ; 32 бита * Смотри также подфункцию 5 функции 48 - получить размеры рабочей области экрана. +---------------------- Константы для регистров: ---------------------- + eax - SF_GET_SCREEN_SIZE (14) ====================================================================== = Функция 15, подфункция 1 - установить размер фонового изображения. = ====================================================================== @@ -497,6 +526,9 @@ picture rb Xsize*Ysize*4 ; 32 бита * Есть парная функция получения размеров фонового изображения - подфункция 1 функции 39. +---------------------- Константы для регистров: ---------------------- + eax - SF_BACKGROUND_SET (15) + ebx - SSF_SIZE_BG (1) ====================================================================== = Функция 15, подфункция 2 - поставить точку на фоновом изображении. = ====================================================================== @@ -517,6 +549,9 @@ picture rb Xsize*Ysize*4 ; 32 бита * Есть парная функция получения точки с фонового изображения - подфункция 2 функции 39. +---------------------- Константы для регистров: ---------------------- + eax - SF_BACKGROUND_SET (15) + ebx - SSF_PIXEL_BG (2) ====================================================================== ============ Функция 15, подфункция 3 - перерисовать фон. ============ ====================================================================== @@ -526,6 +561,9 @@ picture rb Xsize*Ysize*4 ; 32 бита Возвращаемое значение: * функция не возвращает значения +---------------------- Константы для регистров: ---------------------- + eax - SF_BACKGROUND_SET (15) + ebx - SSF_REDRAW_BG (3) ====================================================================== ===== Функция 15, подфункция 4 - установить режим отрисовки фона. ==== ====================================================================== @@ -543,6 +581,9 @@ picture rb Xsize*Ysize*4 ; 32 бита * Есть парная команда получения режима отрисовки фона - подфункция 4 функции 39. +---------------------- Константы для регистров: ---------------------- + eax - SF_BACKGROUND_SET (15) + ebx - SSF_MODE_BG (4) ====================================================================== ===== Функция 15, подфункция 5 - поместить блок пикселей на фон. ===== ====================================================================== @@ -563,6 +604,9 @@ picture rb Xsize*Ysize*4 ; 32 бита * Для обновления экрана (после завершения серии команд, работающих с фоном) вызывайте подфункцию 3 перерисовки фона. +---------------------- Константы для регистров: ---------------------- + eax - SF_BACKGROUND_SET (15) + ebx - SSF_IMAGE_BG (5) ====================================================================== ====================== Функция 15, подфункция 6 ====================== ==== Спроецировать данные фона на адресное пространство процесса. ==== @@ -580,6 +624,9 @@ picture rb Xsize*Ysize*4 ; 32 бита * Пиксели фонового изображения записываются последовательно слева направо, сверху вниз. +---------------------- Константы для регистров: ---------------------- + eax - SF_BACKGROUND_SET (15) + ebx - SSF_MAP_BG (6) ====================================================================== ====================== Функция 15, подфункция 7 ====================== === Закрыть проекцию данных фона на адресное пространство процесса. == @@ -591,6 +638,9 @@ picture rb Xsize*Ysize*4 ; 32 бита Возвращаемое значение: * eax = 1 при успехе, 0 при ошибке +---------------------- Константы для регистров: ---------------------- + eax - SF_BACKGROUND_SET (15) + ebx - SSF_UNMAP_BG (7) ====================================================================== ====================== Функция 15, подфункция 8 ====================== =========== Получить координаты последней отрисовки фона. ============ @@ -608,6 +658,9 @@ picture rb Xsize*Ysize*4 ; 32 бита функцию сразу после получения события: 5 = завершилась перерисовка фона рабочего стола +---------------------- Константы для регистров: ---------------------- + eax - SF_BACKGROUND_SET (15) + ebx - SSF_LAST_DRAW (8) ====================================================================== ====================== Функция 15, подфункция 9 ====================== =============== Перерисовать прямоугольную часть фона. =============== @@ -624,6 +677,9 @@ picture rb Xsize*Ysize*4 ; 32 бита (right,bottom) - координаты правого нижнего. * Если параметры установлены некорректно - фон не перерисовывается. +---------------------- Константы для регистров: ---------------------- + eax - SF_BACKGROUND_SET (15) + ebx - SSF_REDRAW_RECT (9) ====================================================================== ============= Функция 16 - сохранить рамдиск на дискету. ============= ====================================================================== @@ -634,6 +690,8 @@ picture rb Xsize*Ysize*4 ; 32 бита * eax = 0 - успешно * eax = 1 - ошибка +---------------------- Константы для регистров: ---------------------- + eax - SF_RD_TO_FLOPPY (16) ====================================================================== ============== Функция 17 - получить код нажатой кнопки. ============= ====================================================================== @@ -658,6 +716,9 @@ picture rb Xsize*Ysize*4 ; 32 бита в формате подфункции 2 функции 37 в момент начала нажатия на кнопку, за исключением младшего бита (соответствующего левой кнопке мыши), который сбрасывается. + +---------------------- Константы для регистров: ---------------------- + eax - SF_GET_BUTTON (17) ====================================================================== = Функция 18, подфункция 1 - сделать самым нижним окно потока. ======= ====================================================================== @@ -668,6 +729,9 @@ picture rb Xsize*Ysize*4 ; 32 бита Возвращаемое значение: * функция не возвращает значения +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_UNFOCUS_WINDOW (1) ====================================================================== ==== Функция 18, подфункция 2 - завершить процесс/поток по слоту. ==== ====================================================================== @@ -683,6 +747,9 @@ picture rb Xsize*Ysize*4 ; 32 бита * Смотри также подфункцию 18 - завершение процесса/потока с заданным идентификатором. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_TERMINATE_THREAD (2) ====================================================================== = Функция 18, подфункция 3 - сделать активным окно заданного потока. = ====================================================================== @@ -697,6 +764,9 @@ picture rb Xsize*Ysize*4 ; 32 бита какое-то окно. * Узнать, какое окно является активным, можно вызовом подфункции 7. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_FOCUS_WINDOW (3) ====================================================================== Функция 18, подфункция 4 - получить счётчик пустых тактов в секунду. ====================================================================== @@ -709,6 +779,9 @@ picture rb Xsize*Ysize*4 ; 32 бита Возвращаемое значение: * eax = значение счётчика пустых тактов в секунду +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_GET_IDLE_COUNT (4) ====================================================================== ======== Функция 18, подфункция 5 - получить тактовую частоту. ======= ====================================================================== @@ -718,6 +791,9 @@ picture rb Xsize*Ysize*4 ; 32 бита Возвращаемое значение: * eax = тактовая частота (по модулю 2^32 тактов = 4ГГц) +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_GET_CPU_REQUENCY (5) ====================================================================== Функция 18, подфункция 6 - сохранить рамдиск в файл на жёстком диске. ====================================================================== @@ -733,6 +809,9 @@ picture rb Xsize*Ysize*4 ; 32 бита * Все папки в указанном пути должны существовать, иначе вернётся значение 5, "файл не найден". +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_RD_TO_HDD (6) ====================================================================== ====== Функция 18, подфункция 7 - получить номер активного окна. ===== ====================================================================== @@ -747,6 +826,9 @@ picture rb Xsize*Ysize*4 ; 32 бита сообщения обо всём вводе с клавиатуры. * Сделать окно активным можно вызовом подфункции 3. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_GET_ACTIVE_WINDOW (7) ====================================================================== ==== Функция 18, подфункция 8 - отключить/разрешить звук спикера. ==== ====================================================================== @@ -770,6 +852,10 @@ picture rb Xsize*Ysize*4 ; 32 бита Возвращаемое значение: * функция не возвращает значения +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_SPEAKER (8) + ecx - SSSF_GET_STATE (1), SSSF_TOGGLE (2) ====================================================================== = Функция 18, подфункция 9 - завершение работы системы с параметром. = ====================================================================== @@ -787,6 +873,9 @@ picture rb Xsize*Ysize*4 ; 32 бита * Не следует полагаться на возвращаемое значение при неверном вызове, оно может измениться в последующих версиях ядра. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_SHUTDOWN (9) ====================================================================== ========= Функция 18, подфункция 10 - свернуть активное окно. ======== ====================================================================== @@ -807,6 +896,9 @@ picture rb Xsize*Ysize*4 ; 32 бита функцией 0, для окон без скина её можно определить функцией 8), восстановление - приложением @taskbar. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_MINIMIZE_WINDOW (10) ====================================================================== ====================== Функция 18, подфункция 11 ===================== ============= Получить информацию о дисковой подсистеме. ============= @@ -874,6 +966,9 @@ picture rb Xsize*Ysize*4 ; 32 бита * Таблица может быть использована для получения информации об имеющихся устройствах. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_INFO_DISC_SYS (11) ====================================================================== ========== Функция 18, подфункция 13 - получить версию ядра. ========= ====================================================================== @@ -893,6 +988,9 @@ db 0,7,7,0 db 0 dd 1675 +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_KERNEL_VERSION (13) ====================================================================== ====================== Функция 18, подфункция 14 ===================== ======= Ожидать начала обратного хода луча развёртки монитора. ======= @@ -907,6 +1005,9 @@ dd 1675 высокопроизводительных графических приложений; используется для плавного вывода графики. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_WAIT_RETRACE (14) ====================================================================== == Функция 18, подфункция 15 - поместить курсор мыши в центр экрана. = ====================================================================== @@ -916,6 +1017,9 @@ dd 1675 Возвращаемое значение: * eax = 0 как признак успеха +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_CURSOR_CENTER (15) ====================================================================== ====================== Функция 18, подфункция 16 ===================== ============ Получить размер свободной оперативной памяти. =========== @@ -926,6 +1030,9 @@ dd 1675 Возвращаемое значение: * eax = размер свободной памяти в килобайтах +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_GET_FREE_RAM (16) ====================================================================== ====================== Функция 18, подфункция 17 ===================== ============ Получить размер имеющейся оперативной памяти. =========== @@ -936,6 +1043,9 @@ dd 1675 Возвращаемое значение: * eax = общий размер имеющейся памяти в килобайтах +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_GET_TOTAL_RAM (17) ====================================================================== ====================== Функция 18, подфункция 18 ===================== ============= Завершить процесс/поток по идентификатору. ============= @@ -953,6 +1063,9 @@ dd 1675 * Смотри также подфункцию 2 - завершение процесса/потока по заданному слоту. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_TERMINATE_THREAD_ID (18) ====================================================================== === Функция 18, подфункция 19 - получить/установить настройки мыши. == ====================================================================== @@ -1036,6 +1149,12 @@ dd 1675 Замечание: настройки мыши можно регулировать в приложении mouse_cfg. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_MOUSE_SETTINGS (19) + ecx - SSSF_GET_SPEED (0), SSSF_SET_SPEED (1), SSSF_GET_SPEEDUP (2), + SSSF_SET_SPEEDUP (3), SSSF_SET_POS (4), SSSF_SET_BUTTON (5), + SSSF_GET_DOUBLE_CLICK_DELAY (6), SSSF_SET_DOUBLE_CLICK_DELAY (7) ====================================================================== ====================== Функция 18, подфункция 20 ===================== ============= Получить информацию об оперативной памяти. ============= @@ -1061,6 +1180,9 @@ dd 1675 * +32: dword: размер наибольшего выделенного блока в куче ядра (зарезервировано) +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_GET_RAM_INFO (20) ====================================================================== ====================== Функция 18, подфункция 21 ===================== ======= Получить номер слота процесса/потока по идентификатору. ====== @@ -1073,6 +1195,9 @@ dd 1675 * eax = 0 - ошибка (неверный идентификатор) * иначе eax = номер слота +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_GET_THREAD_SLOT (21) ====================================================================== Функция 18, подфункция 22 - операции с окном другого процесса/потока. ====================================================================== @@ -1093,6 +1218,11 @@ dd 1675 * Восстановление окна с одновременной активизацией осуществляется подфункции 3 (принимающей номер слота). +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_FOREIGN_WINDOW (22) + ecx - SSSF_MINIMIZE (0), SSSF_MINIMIZE_ID (1), SSSF_RESTORE (2), + SSSF_RESTORE_ID (3) ====================================================================== ======= Функция 18, подфункция 23 - минимизировать все окна. ========= ====================================================================== @@ -1105,6 +1235,9 @@ dd 1675 Замечания: * Окна спец. потоков (имя начинается с символа @) не сворачиваются. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_MINIMIZE_ALL (23) ====================================================================== ===== Функция 18, подфункция 24 - установить пределы отрисовки. ====== ====================================================================== @@ -1121,6 +1254,9 @@ dd 1675 * Размеры указываемые в функции не должны превышать размеры текущего видеорежима, иначе функция ничего не изменит. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_SET_SCREEN_LIMITS (24) ====================================================================== ===================== Функция 18, подфункция 25 ====================== ======== Управление положением окна относительно других окон. ======== @@ -1152,6 +1288,10 @@ dd 1675 ZPOS_NORMAL = 0 - обычное ZPOS_ALWAYS_TOP = 1 - поверх всех окон +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM (18) + ebx - SSF_WINDOW_BEHAVIOR (25) + ecx - SSSF_GET_WB (1), SSSF_SET_WB (2) ====================================================================== ==================== Функция 20 - интерфейс MIDI. ==================== ====================================================================== @@ -1173,6 +1313,9 @@ dd 1675 * Предварительно должен быть определён базовый порт вызовом подфункции 1 функции 21. +---------------------- Константы для регистров: ---------------------- + eax - SF_MIDI (20) + ebx - SSF_RESET (1), SSF_OUTPUT (2) ====================================================================== ==== Функция 21, подфункция 1 - установить базовый порт MPU MIDI. ==== ====================================================================== @@ -1189,6 +1332,9 @@ dd 1675 * Получить установленный базовый порт можно вызовом подфункции 1 функции 26. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM_SET (21) + ebx - SSF_MPU_MIDI_BASE (1) ====================================================================== ===== Функция 21, подфункция 2 - установить раскладку клавиатуры. ==== ====================================================================== @@ -1223,6 +1369,9 @@ dd 1675 соответствующую текущей стране иконку. * Приложение @taskbar переключает раскладки по запросу пользователя. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM_SET (21) + ebx - SSF_KEYBOARD_LAYOUT (2) ====================================================================== ========= Функция 21, подфункция 5 - установить язык системы. ======== ====================================================================== @@ -1240,6 +1389,9 @@ dd 1675 переменную не использует. * Получить язык системы можно вызовом подфункции 5 функции 26. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM_SET (21) + ebx - SSF_SYS_LANG (5) ====================================================================== ====================== Функция 21, подфункция 11 ===================== =========== Разрешить/запретить низкоуровневый доступ к HD. ========== @@ -1255,6 +1407,9 @@ dd 1675 * Текущая реализация использует только младший бит ecx. * Получить текущее состояние можно вызовом подфункции 11 функции 26. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM_SET (21) + ebx - SSF_ACCESS_HD_LBA (11) ====================================================================== ====================== Функция 21, подфункция 12 ===================== ========== Разрешить/запретить низкоуровневый доступ к PCI. ========== @@ -1270,6 +1425,9 @@ dd 1675 * Текущая реализация использует только младший бит ecx. * Получить текущее состояние можно вызовом подфункции 12 функции 26. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM_SET (21) + ebx - SSF_ACCESS_PCI (12) ====================================================================== ============ Функция 22 - установить системную дату/время. =========== ====================================================================== @@ -1309,6 +1467,8 @@ dd 1675 автоматически отменяет предыдущую установку. Впрочем, на данный момент ни одна программа его не использует. +---------------------- Константы для регистров: ---------------------- + eax - SF_SET_TIME_DATE (22) ====================================================================== ============== Функция 23 - ожидать события с таймаутом. ============= ====================================================================== @@ -1332,6 +1492,8 @@ dd 1675 с eax=0, если сложение ebx с текущим значением счётчика времени вызовет 32-битное переполнение. +---------------------- Константы для регистров: ---------------------- + eax - SF_WAIT_EVENT_TIMEOUT (23) ====================================================================== ======= Функция 24, подфункция 4 - извлечь лоток привода диска. ====== ====================================================================== @@ -1352,6 +1514,9 @@ dd 1675 устройства. * Примером использования функции является приложение CD_tray. +---------------------- Константы для регистров: ---------------------- + eax - SF_CD (24) + ebx - SSF_EJECT_TRAY (4), SSF_INSERT_TRAY (5) ====================================================================== ====== Функция 24, подфункция 5 - загрузить лоток привода диска. ===== ====================================================================== @@ -1368,6 +1533,9 @@ dd 1675 * Функция поддерживается только для ATAPI-устройств (CD и DVD). * Примером использования функции является приложение CD_tray. +---------------------- Константы для регистров: ---------------------- + eax - SF_CD (24) + ebx - SSF_EJECT_TRAY (4), SSF_INSERT_TRAY (5) ====================================================================== ========== Функция 25 - записать область на слой фона. =============== ====================================================================== @@ -1388,6 +1556,8 @@ dd 1675 * Функция размещает изображение не на фоновое изображение (ф.15), а напрямую в LFB. Опции ф.15 для ф. 25 не имеют смысла. +---------------------- Константы для регистров: ---------------------- + eax - SF_SCREEN_PUT_IMAGE (25) ====================================================================== ===== Функция 26, подфункция 1 - получить базовый порт MPU MIDI. ===== ====================================================================== @@ -1400,6 +1570,9 @@ dd 1675 * Установить базовый порт можно вызовом подфункции 1 функции 21. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM_GET (26) + ebx - SSF_MPU_MIDI_BASE (1) ====================================================================== ====== Функция 26, подфункция 2 - получить раскладку клавиатуры. ===== ====================================================================== @@ -1438,6 +1611,9 @@ dd 1675 (используя описываемую функцию). * Приложение @taskbar переключает раскладки по запросу пользователя. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM_GET (26) + ebx - SSF_KEYBOARD_LAYOUT (2) ====================================================================== ========== Функция 26, подфункция 5 - получить язык системы. ========= ====================================================================== @@ -1452,6 +1628,9 @@ dd 1675 соответствующую иконку (используя описываемую функцию). * Установить язык системы можно вызовом подфункции 5 функции 21. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM_GET (26) + ebx - SSF_SYS_LANG (5) ====================================================================== === Функция 26, подфункция 9 - получить значение счётчика времени. === ====================================================================== @@ -1466,6 +1645,9 @@ dd 1675 497 суток. * Системное время можно получить функцией 3. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM_GET (26) + ebx - SSF_TIME_COUNT (9) ====================================================================== ===================== Функция 26, подфункция 10 ====================== ========== Получить значение высокоточного счётчика времени. ========= @@ -1482,6 +1664,9 @@ Remarks: счётчик PIT. В этом случае точность будет уменьшена до 10 000 000 наносекунд. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM_GET (26) + ebx - SSF_TIME_COUNT_PRO (10) ====================================================================== ====================== Функция 26, подфункция 11 ===================== =========== Узнать, разрешён ли низкоуровневый доступ к HD. ========== @@ -1496,6 +1681,9 @@ Remarks: * Установить текущее состояние можно вызовом подфункции 11 функции 21. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM_GET (26) + ebx - SSF_ACCESS_HD_LBA (11) ====================================================================== ====================== Функция 26, подфункция 12 ===================== ========== Узнать, разрешён ли низкоуровневый доступ к PCI. ========== @@ -1511,6 +1699,9 @@ Remarks: * Установить текущее состояние можно вызовом подфункции 12 функции 21. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYSTEM_GET (26) + ebx - SSF_ACCESS_PCI (12) ====================================================================== ================ Функция 29 - получить системную дату. =============== ====================================================================== @@ -1525,6 +1716,8 @@ Remarks: Замечания: * Системную дату можно установить функцией 22. +---------------------- Константы для регистров: ---------------------- + eax - SF_GET_SYS_DATE (29) ====================================================================== ================ Функция 30 - работа с текущей папкой. =============== ====================================================================== @@ -1570,6 +1763,9 @@ dir_path1 db 'HD0/1',0 Замечания: * Функция может быть вызвана только 1 раз за 1 сессию работы ОС. +---------------------- Константы для регистров: ---------------------- + eax - SF_CURRENT_FOLDER (30) + ebx - SSF_SET_CF (1), SSF_GET_CF (2), SSF_ADD_SYS_FOLDER (3) ====================================================================== ========= Функция 34 - узнать кому принадлежит точка экрана. ========= ====================================================================== @@ -1583,6 +1779,8 @@ dir_path1 db 'HD0/1',0 При некорректных значениях ebx и ecx функция возвращает 0 * Функция берет значения из области [_WinMapAddress] +---------------------- Константы для регистров: ---------------------- + eax - SF_GET_PIXEL_OWNER (34) ====================================================================== ============ Функция 35 - прочитать цвет точки на экране. ============ ====================================================================== @@ -1600,6 +1798,8 @@ dir_path1 db 'HD0/1',0 функций) через селектор gs. Параметры текущего видеорежима можно получить функцией 61. +---------------------- Константы для регистров: ---------------------- + eax - SF_GET_PIXEL (35) ====================================================================== =============== Функция 36 - прочитать область экрана. =============== ====================================================================== @@ -1616,6 +1816,8 @@ dir_path1 db 'HD0/1',0 области относительно экрана. * Размер изображения в байтах есть 3*xsize*ysize. +---------------------- Константы для регистров: ---------------------- + eax - SF_GET_IMAGE (36) ====================================================================== ==================== Функция 37 - работа с мышью. ==================== ====================================================================== @@ -1738,6 +1940,11 @@ dir_path1 db 'HD0/1',0 * После прочтения значения обнуляются. * Данные имеют знаковые значения. +---------------------- Константы для регистров: ---------------------- + eax - SF_MOUSE_GET (37) + ebx - SSF_SCREEN_POSITION (0), SSF_WINDOW_POSITION (1), + SSF_BUTTON (2), SSF_BUTTON_EXT (3), SSF_LOAD_CURSOR (4), + SSF_SET_CURSOR (5), SSF_DEL_CURSOR (6), SSF_SCROLL_DATA (7) ====================================================================== ================== Функция 38 - нарисовать отрезок. ================== ====================================================================== @@ -1756,6 +1963,8 @@ dir_path1 db 'HD0/1',0 * Координаты берутся относительно окна. * Конечная точка также рисуется. +---------------------- Константы для регистров: ---------------------- + eax - SF_DRAW_LINE (38) ====================================================================== == Функция 39, подфункция 1 - получить размер фонового изображения. == ====================================================================== @@ -1769,6 +1978,8 @@ dir_path1 db 'HD0/1',0 подфункция 1 функции 15. После которой, разумеется, следует заново определить само изображение. +---------------------- Константы для регистров: ---------------------- + eax - SF_BACKGROUND_GET (39) ====================================================================== = Функция 39, подфункция 2 - прочитать точку с фонового изображения. = ====================================================================== @@ -1787,6 +1998,8 @@ dir_path1 db 'HD0/1',0 * Есть парная функция установки точки на фоновом изображении - подфункция 2 функции 15. +---------------------- Константы для регистров: ---------------------- + eax - SF_BACKGROUND_GET (39) ====================================================================== ====== Функция 39, подфункция 4 - получить режим отрисовки фона. ===== ====================================================================== @@ -1800,6 +2013,8 @@ dir_path1 db 'HD0/1',0 * Есть парная функция установки режима отрисовки фона - подфункция 4 функции 15. +---------------------- Константы для регистров: ---------------------- + eax - SF_BACKGROUND_GET (39) ====================================================================== ======== Функция 40 - установить маску для ожидаемых событий. ======== ====================================================================== @@ -1828,7 +2043,8 @@ dir_path1 db 'HD0/1',0 * Функции работы с событиями учитывают маску на момент вызова функции, а не на момент поступления сообщения. - +---------------------- Константы для регистров: ---------------------- + eax - SF_SET_EVENTS_MASK (40) ====================================================================== =================== Функция 43 - ввод/вывод в порт. ================== ====================================================================== @@ -1858,7 +2074,8 @@ dir_path1 db 'HD0/1',0 быстрее и несколько короче и проще. Из незарезервированных портов читать всё равно нельзя. - +---------------------- Константы для регистров: ---------------------- + eax - SF_PORT_IN_OUT (43) ====================================================================== = Функция 46 - зарезервировать/освободить группу портов ввода/вывода. ====================================================================== @@ -1893,6 +2110,8 @@ dir_path1 db 'HD0/1',0 * При завершении потока автоматически освобождаются все зарезервированные им порты. +---------------------- Константы для регистров: ---------------------- + eax - SF_SET_PORTS (46) ====================================================================== ================= Функция 47 - вывести число в окно. ================= ====================================================================== @@ -1927,6 +2146,8 @@ dir_path1 db 'HD0/1',0 таким количеством цифр, "лишние" ведущие цифры обрезаются. * Параметры шрифтов указаны в описании функции 4 (вывода текста). +---------------------- Константы для регистров: ---------------------- + eax - SF_DRAW_NUMBER (47) ====================================================================== ======= Функция 48, подфункция 0 - применить настройки экрана. ======= ====================================================================== @@ -1943,6 +2164,9 @@ dir_path1 db 'HD0/1',0 игнорируется. * Вызов функции с ненулевым ecx игнорируется. +---------------------- Константы для регистров: ---------------------- + eax - SF_STYLE_SETTINGS (48) + ebx - SSF_APPLY (0) ====================================================================== ========= Функция 48, подфункция 1 - установить стиль кнопок. ======== ====================================================================== @@ -1959,6 +2183,9 @@ dir_path1 db 'HD0/1',0 подфункцией 0. * Тип кнопок влияет только на их прорисовку функцией 8. +---------------------- Константы для регистров: ---------------------- + eax - SF_STYLE_SETTINGS (48) + ebx - SSF_SET_BUTTON_STYLE (1) ====================================================================== ==== Функция 48, подфункция 2 - установить стандартные цвета окон. === ====================================================================== @@ -1982,6 +2209,9 @@ dir_path1 db 'HD0/1',0 * Таблицу цветов можно просматривать/изменять интерактивно с помощью приложения desktop. +---------------------- Константы для регистров: ---------------------- + eax - SF_STYLE_SETTINGS (48) + ebx - SSF_SET_COLORS (2) ====================================================================== ===== Функция 48, подфункция 3 - получить стандартные цвета окон. ==== ====================================================================== @@ -2026,6 +2256,9 @@ dword-значение цвета 0x00RRGGBB * Стандартные цвета можно просматривать/изменять интерактивно с помощью приложения desktop. +---------------------- Константы для регистров: ---------------------- + eax - SF_STYLE_SETTINGS (48) + ebx - SSF_GET_COLORS (3) ====================================================================== ========== Функция 48, подфункция 4 - получить высоту скина. ========= ====================================================================== @@ -2039,6 +2272,9 @@ dword-значение цвета 0x00RRGGBB использующих скин. * Смотри также общую структуру окна в описании функции 0. +---------------------- Константы для регистров: ---------------------- + eax - SF_STYLE_SETTINGS (48) + ebx - SSF_GET_SKIN_HEIGHT (4) ====================================================================== ===== Функция 48, подфункция 5 - получить рабочую область экрана. ==== ====================================================================== @@ -2061,6 +2297,9 @@ dword-значение цвета 0x00RRGGBB позволяющую определить размеры всего экрана. * Есть парная функция установки рабочей области - подфункция 6. +---------------------- Константы для регистров: ---------------------- + eax - SF_STYLE_SETTINGS (48) + ebx - SSF_GET_SCREEN_AREA (5) ====================================================================== ==== Функция 48, подфункция 6 - установить рабочую область экрана. === ====================================================================== @@ -2092,6 +2331,9 @@ dword-значение цвета 0x00RRGGBB обновляет координаты и размеры максимизированных окон. Все окна извещаются о необходимости перерисовки (событие 1). +---------------------- Константы для регистров: ---------------------- + eax - SF_STYLE_SETTINGS (48) + ebx - SSF_SET_SCREEN_AREA (6) ====================================================================== ====================== Функция 48, подфункция 7 ====================== ============ Получить область скина для текста заголовка. ============ @@ -2112,6 +2354,9 @@ dword-значение цвета 0x00RRGGBB какого-нибудь заменителя текста заголовка (по усмотрению приложения). +---------------------- Константы для регистров: ---------------------- + eax - SF_STYLE_SETTINGS (48) + ebx - SSF_GET_SKIN_MARGINS (7) ====================================================================== ==== Функция 48, подфункция 8 - установить используемый скин окон. === ====================================================================== @@ -2131,6 +2376,9 @@ dword-значение цвета 0x00RRGGBB * Пользователь может изменять скин статически, создав свой default.skn, или динамически с помощью приложения desktop. +---------------------- Константы для регистров: ---------------------- + eax - SF_STYLE_SETTINGS (48) + ebx - SSF_SET_SKIN (8) ====================================================================== = Функция 48, подфункция 9 - получить настройку сглаживания шрифтов. = ====================================================================== @@ -2140,6 +2388,9 @@ dword-значение цвета 0x00RRGGBB Возвращаемое значение: * eax = 2 - субпиксельное, 1 - обычное, 0 - выключить +---------------------- Константы для регистров: ---------------------- + eax - SF_STYLE_SETTINGS (48) + ebx - SSF_GET_FONT_SMOOTH (9) ====================================================================== ===== Функция 48, подфункция 10 - настроить сглаживание шрифтов. ===== ====================================================================== @@ -2148,6 +2399,9 @@ dword-значение цвета 0x00RRGGBB * ebx = 10 - номер подфункции * cl = 2 - субпиксельное, 1 - обычное, 0 - выключить +---------------------- Константы для регистров: ---------------------- + eax - SF_STYLE_SETTINGS (48) + ebx - SSF_SET_FONT_SMOOTH (10) ====================================================================== ======== Функция 48, подфункция 11 - получить размер шрифтов. ======== ====================================================================== @@ -2157,6 +2411,9 @@ dword-значение цвета 0x00RRGGBB Возвращаемое значение: * eax = текущая высота шрифта в пикселях +---------------------- Константы для регистров: ---------------------- + eax - SF_STYLE_SETTINGS (48) + ebx - SSF_GET_FONT_SIZE (11) ====================================================================== ======= Функция 48, подфункция 12 - установить размер шрифтов. ======= ====================================================================== @@ -2165,6 +2422,9 @@ dword-значение цвета 0x00RRGGBB * ebx = 10 - номер подфункции * cl = новая высота шрифта в пикселях +---------------------- Константы для регистров: ---------------------- + eax - SF_STYLE_SETTINGS (48) + ebx - SSF_SET_FONT_SIZE (12) ====================================================================== ============ Функция 49 - Advanced Power Management (APM). =========== ====================================================================== @@ -2186,6 +2446,8 @@ dword-значение цвета 0x00RRGGBB (http://www.pobox.com/~ralf/files.html, ftp://ftp.cs.cmu.edu/afs/cs/user/ralf/pub/). +---------------------- Константы для регистров: ---------------------- + eax - SF_APM (49) ====================================================================== ================= Функция 50 - установка формы окна. ================= ====================================================================== @@ -2231,6 +2493,8 @@ dword-значение цвета 0x00RRGGBB * Вызов подфункции 0 с нулевым указателем приводит к возврату к прямоугольной форме. +---------------------- Константы для регистров: ---------------------- + eax - SF_SET_WINDOW_SHAPE (50) ====================================================================== ===================== Функция 51 - создать поток. ==================== ====================================================================== @@ -2243,6 +2507,8 @@ dword-значение цвета 0x00RRGGBB * eax = -1 - ошибка (в системе слишком много потоков) * иначе eax = TID - идентификатор потока +---------------------- Константы для регистров: ---------------------- + eax - SF_CREATE_THREAD (51) ====================================================================== ====================== Функция 54, подфункция 0 ====================== ============== Узнать количество слотов в буфере обмена. ============= @@ -2254,6 +2520,9 @@ dword-значение цвета 0x00RRGGBB * eax = количество слотов в буфере * eax = -1 - отсутствует область главного списка +---------------------- Константы для регистров: ---------------------- + eax - SF_CLIPBOARD (54) + ebx - SSF_GET_SLOT_COUNT (0) ====================================================================== ====================== Функция 54, подфункция 1 ====================== ================== Считать данные из буфера обмена. ================== @@ -2267,6 +2536,9 @@ dword-значение цвета 0x00RRGGBB * eax = 1 - ошибка * eax = -1 - отсутствует область главного списка +---------------------- Константы для регистров: ---------------------- + eax - SF_CLIPBOARD (54) + ebx - SSF_READ_CB (1) ====================================================================== ====================== Функция 54, подфункция 2 ====================== ================== Записать данные в буфер обмена. =================== @@ -2281,6 +2553,9 @@ dword-значение цвета 0x00RRGGBB * eax = 1 - ошибка * eax = -1 - отсутствует область главного списка +---------------------- Константы для регистров: ---------------------- + eax - SF_CLIPBOARD (54) + ebx - SSF_WRITE_CB (2) ====================================================================== ====================== Функция 54, подфункция 3 ====================== ========= Удалить последний слот с данными в буфере обмена =========== @@ -2293,6 +2568,9 @@ dword-значение цвета 0x00RRGGBB * eax = 1 - ошибка * eax = -1 - отсутствует область главного списка +---------------------- Константы для регистров: ---------------------- + eax - SF_CLIPBOARD (54) + ebx - SSF_DEL_SLOT (3) ====================================================================== ====================== Функция 54, подфункция 4 ====================== =================== Аварийный сброс блокировки буфера ================ @@ -2307,6 +2585,9 @@ dword-значение цвета 0x00RRGGBB * Используется в исключительных случаях, когда зависшее или убитое приложение заблокировало работу с буфером обмена. +---------------------- Константы для регистров: ---------------------- + eax - SF_CLIPBOARD (54) + ebx - SSF_UNLOCK_BUFFER (4) ====================================================================== ====================== Функция 55, подфункция 55 ===================== ========== Начать проигрывать данные на встроенном спикере. ========== @@ -2340,6 +2621,8 @@ dword-значение цвета 0x00RRGGBB * Данные должны сохраняться в памяти по крайней мере до конца проигрывания. +---------------------- Константы для регистров: ---------------------- + eax - SF_SPEAKER_PLAY (55) ====================================================================== ======================= Функция 57 - PCI BIOS. ======================= ====================================================================== @@ -2358,6 +2641,8 @@ dword-значение цвета 0x00RRGGBB * Если BIOS не поддерживает это расширение, поведение функции эмулируется (через аналоги подфункций функции 62 режима ядра). +---------------------- Константы для регистров: ---------------------- + eax - SF_PCI_BIOS (57) ====================================================================== =========== Функция 60 - Inter Process Communication (IPC). ========== ====================================================================== @@ -2409,6 +2694,9 @@ IPC применяется для посылок сообщений от одн * Система сразу после записи IPC-сообщения в буфер посылает потоку-приёмнику событие с кодом 7 (см. коды событий). +---------------------- Константы для регистров: ---------------------- + eax - SF_IPC (60) + ebx - SSF_SET_AREA (1), SSF_SEND_MESSAGE (2) ====================================================================== === Функция 61 - получить параметры для прямого доступа к графике. === ====================================================================== @@ -2471,6 +2759,10 @@ IPC применяется для посылок сообщений от одн * eax = число байт, которое занимает одна строка развёртки (горизонтальная линия на экране) +---------------------- Константы для регистров: ---------------------- + eax - SF_GET_GRAPHICAL_PARAMS (61) + ebx - SSF_SCREEN_SIZE (1), SSF_BITS_PER_PIXEL (2), + SSF_BYTES_PER_LINE (3) ====================================================================== ===== Функция 62, подфункция 0 - получить версию PCI-интерфейса. ===== ====================================================================== @@ -2486,6 +2778,9 @@ IPC применяется для посылок сообщений от одн для приложений подфункцией 12 функции 21. * Если PCI BIOS не поддерживается, то значение ax неопределено. +---------------------- Константы для регистров: ---------------------- + eax - SF_PCI (62) + ebx - SSF_GET_VERSION (0) ====================================================================== ==== Функция 62, подфункция 1 - получить номер последней PCI-шины. === ====================================================================== @@ -2500,6 +2795,9 @@ IPC применяется для посылок сообщений от одн для приложений подфункцией 12 функции 21. * Если PCI BIOS не поддерживается, то значение al неопределено. +---------------------- Константы для регистров: ---------------------- + eax - SF_PCI (62) + ebx - SSF_GET_LAST_BUS (1) ====================================================================== ====================== Функция 62, подфункция 2 ====================== == Получить механизм обращения к конфигурационному пространству PCI. = @@ -2518,6 +2816,9 @@ IPC применяется для посылок сообщений от одн * Подфункции чтения и записи автоматически работают с выбранным механизмом. +---------------------- Константы для регистров: ---------------------- + eax - SF_PCI (62) + ebx - SSF_GET_ADRR_MODE (2) ====================================================================== ======== Функция 62, подфункции 4,5,6 - прочитать PCI-регистр. ======= ====================================================================== @@ -2549,6 +2850,9 @@ IPC применяется для посылок сообщений от одн ftp://ftp.cs.cmu.edu/afs/cs/user/ralf/pub/); список вторых должен быть указан в документации по устройству. +---------------------- Константы для регистров: ---------------------- + eax - SF_PCI (62) + ebx - SSF_READ_BYTE (4), SSF_READ_WORD (5), SSF_READ_DWORD (6) ====================================================================== ======= Функция 62, подфункции 8,9,10 - записать в PCI-регистр. ====== ====================================================================== @@ -2579,6 +2883,9 @@ IPC применяется для посылок сообщений от одн входит, например, в известный Interrupt List by Ralf Brown; список вторых должен быть указан в документации по устройству. +---------------------- Константы для регистров: ---------------------- + eax - SF_PCI (62) + ebx - SSF_WRITE_BYTE (8), SSF_WRITE_WORD (9), SSF_WRITE_DWORD (10) ====================================================================== ================ Функция 63 - работа с доской отладки. =============== ====================================================================== @@ -2625,6 +2932,9 @@ IPC применяется для посылок сообщений от одн * eax = ebx = 0 - буфер пуст * eax = байт, ebx = 1 - байт успешно прочитан +---------------------- Константы для регистров: ---------------------- + eax - SF_BOARD (63) + ebx - SSF_DEBUG_WRITE (1), SSF_DEBUG_READ (2) ====================================================================== ========== Функция 64 - перераспределить память приложения. ========== ====================================================================== @@ -2642,6 +2952,8 @@ IPC применяется для посылок сообщений от одн Вызов функции будет игнорироваться, если приложение создаст локальную кучу вызовом 68.11. +---------------------- Константы для регистров: ---------------------- + eax - SF_MEMORY_RESIZE (64) ====================================================================== ========= Функция 65 - вывести изображение с палитрой в окно. ======== ====================================================================== @@ -2690,6 +3002,8 @@ IPC применяется для посылок сообщений от одн * Вызов функции 7 эквивалентен вызову этой функции с параметрами esi=24, ebp=0. +---------------------- Константы для регистров: ---------------------- + eax - SF_PUT_IMAGE_EXT (65) ====================================================================== ================= Функция 66 - работа с клавиатурой. ================= ====================================================================== @@ -2799,6 +3113,11 @@ IPC применяется для посылок сообщений от одн * Разблокирование результатов ф. 66.6 * Для эмуляции мыши через клавиатуру, приложение MOUSEMUL +---------------------- Константы для регистров: ---------------------- + eax - SF_KEYBOARD (66) + ebx - SSF_SET_INPUT_MODE (1), SSF_GET_INPUT_MODE (2), + SSF_GET_CONTROL_KEYS (3), SSF_SET_SYS_HOTKEY (4), + SSF_DEL_SYS_HOTKEY (5), SSF_LOCK_INPUT (6), SSF_UNLOCK_INPUT (7) ====================================================================== ============ Функция 67 - изменить положение/размеры окна. =========== ====================================================================== @@ -2823,6 +3142,8 @@ IPC применяется для посылок сообщений от одн получены вызовом функции 9. * Функция посылает окну событие перерисовки (с кодом 1). +---------------------- Константы для регистров: ---------------------- + eax - SF_CHANGE_WINDOW (67) ====================================================================== === Функция 68, подфункция 0 - получить счётчик переключений задач. == ====================================================================== @@ -2833,6 +3154,9 @@ IPC применяется для посылок сообщений от одн * eax = число переключений задач с момента загрузки системы (по модулю 2^32) +---------------------- Константы для регистров: ---------------------- + eax - SF_SYS_MISC (68) + ebx - SSF_GET_TASK_SWITCH_COUNT (0) ====================================================================== ====================== Функция 68, подфункция 1 ====================== ============ Переключиться на следующий поток выполнения. ============ @@ -2848,6 +3172,9 @@ IPC применяется для посылок сообщений от одн Возвращаемое значение: * функция не возвращает значения +---------------------- Константы для регистров: ---------------------- + eax - SF_SYS_MISC (68) + ebx - SSF_SWITCH_TASK (1) ====================================================================== =============== Функция 68, подфункция 2 - кэш + rdpmc. ============== ====================================================================== @@ -2870,6 +3197,11 @@ IPC применяется для посылок сообщений от одн * для ecx=2 и ecx=3: * функция не возвращает значения +---------------------- Константы для регистров: ---------------------- + eax - SF_SYS_MISC (68) + ebx - SSF_PERFORMANCE (2) + ecx - SSSF_ALLOW_RDPMC (0), SSSF_CACHE_STATUS (1), + SSSF_CACHE_ON (2), SSSF_CACHE_OFF (3) ====================================================================== ========== Функция 68, подфункция 3 - прочитать MSR-регистр. ========= ====================================================================== @@ -2891,6 +3223,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); командой cpuid. Иначе возникнет уже другое исключение в ядре, которое всё равно прибьёт поток. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYS_MISC (68) + ebx - SSF_READ_MSR (3) ====================================================================== ========= Функция 68, подфункция 4 - записать в MSR-регистр. ========= ====================================================================== @@ -2913,6 +3248,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); командой cpuid. Иначе возникнет уже другое исключение в ядре, которое всё равно прибьёт поток. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYS_MISC (68) + ebx - SSF_WRITE_MSR (4) ====================================================================== ===== Функция 68, подфункция 11 - инициализировать кучу процесса. ==== ====================================================================== @@ -2930,6 +3268,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); размер существующей кучи. * После создания кучи вызовы функции 64 игнорируются. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYS_MISC (68) + ebx - SSF_HEAP_INIT (11) ====================================================================== ========== Функция 68, подфункция 12 - выделить блок памяти. ========= ====================================================================== @@ -2945,6 +3286,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * Функция выделяет целое число страниц (4 Кб) так, что фактический размер выделенного блока больше или равен запрошенному. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYS_MISC (68) + ebx - SSF_MEM_ALLOC (12) ====================================================================== ========= Функция 68, подфункция 13 - освободить блок памяти. ======== ====================================================================== @@ -2959,6 +3303,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * Блок памяти должен быть ранее выделен подфункцией 12 или подфункцией 20. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYS_MISC (68) + ebx - SSF_MEM_FREE (13) ====================================================================== ====================== Функция 68, подфункция 14 ===================== ====== Ожидать получения сигнала от других приложений/драйверов. ===== @@ -2974,6 +3321,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * +4: данные принятого сигнала (20 байт), формат которых определяется первым dword-ом +---------------------- Константы для регистров: ---------------------- + eax - SF_SYS_MISC (68) + ebx - SSF_WAIT_SIGNAL (14) ====================================================================== =========== Функция 68, подфункция 16 - загрузить драйвер. =========== ====================================================================== @@ -2992,6 +3342,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); нулевой символ, остальные символы игнорируются. * Драйвер с именем ABC загружается из файла /rd/1/drivers/ABC.obj. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYS_MISC (68) + ebx - SSF_LOAD_DRIVER (16) ====================================================================== ========== Функция 68, подфункция 17 - управление драйвером. ========= ====================================================================== @@ -3012,6 +3365,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); определяются драйвером. * Предварительно должен быть получен хэндл драйвера подфункцией 16. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYS_MISC (68) + ebx - SSF_CONTROL_DRIVER (17) ====================================================================== ============= Функция 68, подфункция 19 - загрузить DLL. ============= ====================================================================== @@ -3027,6 +3383,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); заканчивающийся нулём. Первый dword в структуре является указателем на имя функции, второй содержит адрес функции. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYS_MISC (68) + ebx - SSF_LOAD_DLL (19) ====================================================================== ====== Функция 68, подфункция 20 - перераспределить блок памяти. ===== ====================================================================== @@ -3051,6 +3410,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * Содержимое памяти вплоть до наименьшего из старого и нового размеров сохраняется. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYS_MISC (68) + ebx - SSF_MEM_REALLOC (20) ====================================================================== ========= Функция 68, подфункция 21 - загрузить драйвер PE. ========== ====================================================================== @@ -3066,6 +3428,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * Если драйвер ещё не загружен, он загружается; если драйвер уже загружен, ничего не меняется. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYS_MISC (68) + ebx - SSF_LOAD_DRIVER_PE (21) ====================================================================== === Функция 68, подфункция 22 - открыть именованную область памяти. == ====================================================================== @@ -3105,6 +3470,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); с кодом ошибки E_ACCESS. * Процесс, создавший область, всегда имеет доступ на запись. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYS_MISC (68) + ebx - SSF_MEM_OPEN (22) ====================================================================== === Функция 68, подфункция 23 - закрыть именованную область памяти. == ====================================================================== @@ -3121,6 +3489,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * При завершении потока освобождаются все открытые им области памяти. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYS_MISC (68) + ebx - SSF_MEM_CLOSE (23) ====================================================================== ==== Функция 68, подфункция 24 - установить обработчик исключений. === ====================================================================== @@ -3151,6 +3522,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); подфункцией 25. Сброс флагов исключений в модулях FPU и XMM также возлагается на обработчик пользователя. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYS_MISC (68) + ebx - SSF_SET_EXCEPTION_HANDLER (24) ====================================================================== = Функция 68, подфункция 25 - изменить состояние активности сигнала. = ====================================================================== @@ -3167,6 +3541,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); обработчика исключений, установленного подфункцией 24. При этом номер сигнала соответствует номеру исключения. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYS_MISC (68) + ebx - SSF_SET_EXCEPTION_STATE (25) ====================================================================== = Функция 68, подфункция 26 - освободить страницы памяти ============ ====================================================================== @@ -3180,6 +3557,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * функция освобождает страницы с ecx+edx по ecx+edx+esi и устанавливает виртуальную память в зарезервированное состояние. +---------------------- Константы для регистров: ---------------------- + eax - SF_SYS_MISC (68) + ebx - SSF_MEM_FREE_EXT (26) ====================================================================== = Функция 68, подфункция 27 - загрузить файл =================== ====================================================================== @@ -3193,6 +3573,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); Примечания: * функция загружает и, при необходимости, распаковывает файл (kunpack) +---------------------- Константы для регистров: ---------------------- + eax - SF_SYS_MISC (68) + ebx - SSF_LOAD_FILE (27) ====================================================================== ======================== Функция 69 - отладка. ======================= ====================================================================== @@ -3241,6 +3624,12 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * подфункция 8 - завершить отлаживаемый поток * подфункция 9 - установить/снять аппаратную точку останова +---------------------- Константы для регистров: ---------------------- + eax - SF_DEBUG (69) + ebx - SSF_SET_MESSAGE_AREA (0), SSF_GET_REGISTERS (1), + SSF_SET_REGISTERS (2), SSF_DETACH (3), SSF_SUSPEND (4), + SSF_RESUME (5), SSF_READ_MEMORY (6), SSF_WRITE_MEMORY (7), + SSF_TERMINATE (8), SSF_DEFINE_BREAKPOINT (9) ====================================================================== ====================== Функция 69, подфункция 0 ====================== ========= Определить область данных для отладочных сообщений. ======== @@ -3264,6 +3653,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * Данные в буфере трактуются как массив элементов переменной длины - сообщений. Формат сообщения указан в общем описании. +---------------------- Константы для регистров: ---------------------- + eax - SF_DEBUG (69) + ebx - SSF_SET_MESSAGE_AREA (0) ====================================================================== ====================== Функция 69, подфункция 1 ====================== ========= Получить состояние регистров отлаживаемого потока. ========= @@ -3293,6 +3685,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * Процесс должен быть загружен для отладки (как указано в общем описании). +---------------------- Константы для регистров: ---------------------- + eax - SF_DEBUG (69) + ebx - SSF_GET_REGISTERS (1) ====================================================================== ====================== Функция 69, подфункция 2 ====================== ======== Установить состояние регистров отлаживаемого потока. ======== @@ -3312,6 +3707,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * Процесс должен быть загружен для отладки (как указано в общем описании). +---------------------- Константы для регистров: ---------------------- + eax - SF_DEBUG (69) + ebx - SSF_SET_REGISTERS (2) ====================================================================== == Функция 69, подфункция 3 - отключиться от отлаживаемого процесса. = ====================================================================== @@ -3324,6 +3722,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); Замечания: * Если процесс был приостановлен, он возобновляет выполнение. +---------------------- Константы для регистров: ---------------------- + eax - SF_DEBUG (69) + ebx - SSF_DETACH (3) ====================================================================== ==== Функция 69, подфункция 4 - приостановить отлаживаемый поток. ==== ====================================================================== @@ -3337,6 +3738,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * Процесс должен быть загружен для отладки (как указано в общем описании). +---------------------- Константы для регистров: ---------------------- + eax - SF_DEBUG (69) + ebx - SSF_SUSPEND (4) ====================================================================== ====================== Функция 69, подфункция 5 ====================== ============ Возобновить выполнение отлаживаемого потока. ============ @@ -3351,6 +3755,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * Процесс должен быть загружен для отладки (как указано в общем описании). +---------------------- Константы для регистров: ---------------------- + eax - SF_DEBUG (69) + ebx - SSF_RESUME (5) ====================================================================== ====================== Функция 69, подфункция 6 ====================== ============= Прочитать из памяти отлаживаемого процесса. ============ @@ -3370,6 +3777,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * Процесс должен быть загружен для отладки (как указано в общем описании). +---------------------- Константы для регистров: ---------------------- + eax - SF_DEBUG (69) + ebx - SSF_READ_MEMORY (6) ====================================================================== Функция 69, подфункция 7 - записать в память отлаживаемого процесса. ====================================================================== @@ -3388,6 +3798,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * Процесс должен быть загружен для отладки (как указано в общем описании). +---------------------- Константы для регистров: ---------------------- + eax - SF_DEBUG (69) + ebx - SSF_WRITE_MEMORY (7) ====================================================================== ====== Функция 69, подфункция 8 - завершить отлаживаемый поток. ====== ====================================================================== @@ -3404,6 +3817,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); требуется выполнение первого замечания и принимается PID, а не номер слота. +---------------------- Константы для регистров: ---------------------- + eax - SF_DEBUG (69) + ebx - SSF_TERMINATE (8) ====================================================================== ====================== Функция 69, подфункция 9 ====================== ============= Установить/снять аппаратную точку останова. ============ @@ -3447,6 +3863,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * Точка останова на запись и чтение/запись срабатывает после выполнения вызвавшей её инструкции. +---------------------- Константы для регистров: ---------------------- + eax - SF_DEBUG (69) + ebx - SSF_DEFINE_BREAKPOINT (9) ====================================================================== = Функция 70 - работа с файловой системой с поддержкой длинных имён. = ====================================================================== @@ -3517,6 +3936,12 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); Разблокировка осуществляется при обращении подфункции 4 функции 24 к соответствующему устройству. +---------------------- Константы для регистров: ---------------------- + eax - SF_FILE (70) + [ebx] - SSF_READ_FILE (0), SSF_READ_FOLDER (1), SSF_CREATE_FILE (2), + SSF_WRITE_FILE (3), SSF_SET_END (4), SSF_GET_INFO (5), + SSF_SET_INFO (6), SSF_START_APP (7), SSF_DELETE (8), + SSF_CREATE_FOLDER (9) ====================================================================== = Функция 70, подфункция 0 - чтение файла с поддержкой длинных имён. = ====================================================================== @@ -3545,6 +3970,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * Функция не позволяет читать папки (вернётся eax=10, access denied). +---------------------- Константы для регистров: ---------------------- + eax - SF_FILE (70) + [ebx] - SSF_READ_FILE (0) ====================================================================== = Функция 70, подфункция 1 - чтение папки с поддержкой длинных имён. = ====================================================================== @@ -3644,6 +4072,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); 0x10, а времена и даты обнулены. Альтернативный способ получения информации об оборудовании - подфункция 11 функции 18. +---------------------- Константы для регистров: ---------------------- + eax - SF_FILE (70) + [ebx] - SSF_READ_FOLDER (1) ====================================================================== ====================== Функция 70, подфункция 2 ====================== ======== Создание/перезапись файла с поддержкой длинных имён. ======== @@ -3672,6 +4103,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); сколько сможет, после чего вернёт код ошибки 8. * Функция не поддерживается для CD (вернётся код ошибки 2). +---------------------- Константы для регистров: ---------------------- + eax - SF_FILE (70) + [ebx] - SSF_CREATE_FILE (2) ====================================================================== ====================== Функция 70, подфункция 3 ====================== ======== Запись в существующий файл с поддержкой длинных имён. ======= @@ -3702,6 +4136,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); необходимого размера нулевыми символами. * Функция не поддерживается для CD (вернётся код ошибки 2). +---------------------- Константы для регистров: ---------------------- + eax - SF_FILE (70) + [ebx] - SSF_WRITE_FILE (3) ====================================================================== ========= Функция 70, подфункция 4 - установка размера файла. ======== ====================================================================== @@ -3733,6 +4170,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); код ошибки 8. * Функция не поддерживается для CD (вернётся код ошибки 2). +---------------------- Константы для регистров: ---------------------- + eax - SF_FILE (70) + [ebx] - SSF_SET_END (4) ====================================================================== === Функция 70, подфункция 5 - получение информации о файле/папке. === ====================================================================== @@ -3762,6 +4202,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * Функция не поддерживает виртуальные папки типа /, /rd и корневые папки типа /rd/1. +---------------------- Константы для регистров: ---------------------- + eax - SF_FILE (70) + [ebx] - SSF_GET_INFO (5) ====================================================================== ===== Функция 70, подфункция 6 - установка атрибутов файла/папки. ==== ====================================================================== @@ -3792,6 +4235,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); корневые папки типа /rd/1. * Функция не поддерживается для CD (вернётся код ошибки 2). +---------------------- Константы для регистров: ---------------------- + eax - SF_FILE (70) + [ebx] - SSF_SET_INFO (6) ====================================================================== ============ Функция 70, подфункция 7 - запуск программы. ============ ====================================================================== @@ -3825,6 +4271,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); в замороженном состоянии; для запуска используйте подфункцию 5 функции 69. +---------------------- Константы для регистров: ---------------------- + eax - SF_FILE (70) + [ebx] - SSF_START_APP (7) ====================================================================== ========== Функция 70, подфункция 8 - удаление файла/папки. ========== ====================================================================== @@ -3850,6 +4299,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * Можно удалять только пустые папки (попытка удаления непустой папки приведёт к ошибке с кодом 10, "доступ запрещён"). +---------------------- Константы для регистров: ---------------------- + eax - SF_FILE (70) + [ebx] - SSF_DELETE (8) ====================================================================== ============= Функция 70, подфункция 9 - создание папки. ============= ====================================================================== @@ -3875,6 +4327,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * Родительская папка должна уже существовать. * Если папка уже существует, функция завершится успешно (eax=0). +---------------------- Константы для регистров: ---------------------- + eax - SF_FILE (70) + [ebx] - SSF_CREATE_FOLDER (9) ====================================================================== === Функция 71, подфункция 1 - установить заголовок окна программы. == ====================================================================== @@ -3894,6 +4349,8 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); иначе будет использоваться cp866. * Чтобы убрать заголовок, передайте NULL в ecx. +---------------------- Константы для регистров: ---------------------- + eax - SF_SET_CAPTION (71) ====================================================================== ================ Функция 72 - послать сообщение окну. ================ ====================================================================== @@ -3908,6 +4365,8 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * eax = 0 - успешно * eax = 1 - буфер заполнен +---------------------- Константы для регистров: ---------------------- + eax - SF_SEND_MESSAGE (72) ====================================================================== ===================== Функция 73 - blit bitmap ===================== ====================================================================== @@ -3948,6 +4407,8 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); Возвращаемое значение: * функция не возвращает значения +---------------------- Константы для регистров: ---------------------- + eax - SF_BLITTER (73) ====================================================================== =================== Функция 74, подфункция -1 ======================== =========== Получить количество активных сетевых устройств. ========== @@ -3958,6 +4419,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); Возвращаемое значение: * eax = количество активных сетевых устройств +---------------------- Константы для регистров: ---------------------- + eax - SF_NETWORK_GET (74) + bl - SSF_DEVICE_COUNT (255) ====================================================================== ==== Функция 74, подфункция 0, Получить тип сетевого устройства. ===== ====================================================================== @@ -3968,6 +4432,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); Возвращаемое значение: * eax = тип устройства +---------------------- Константы для регистров: ---------------------- + eax - SF_NETWORK_GET (74) + bl - SSF_DEVICE_TYPE (0) ====================================================================== ==== Функция 74, подфункция 1, Получить имя сетевого устройства. ===== ====================================================================== @@ -3980,6 +4447,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * eax = -1 для ошибки * В случае успеха в буфер записывается имя сетевого устройства +---------------------- Константы для регистров: ---------------------- + eax - SF_NETWORK_GET (74) + bl - SSF_DEVICE_NAME (1) ====================================================================== ======= Функция 74, подфункция 2, Сброс сетевого устройства. ========= ====================================================================== @@ -3990,6 +4460,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); Возвращаемое значение: * eax = -1 для ошибки +---------------------- Константы для регистров: ---------------------- + eax - SF_NETWORK_GET (74) + bl - SSF_RESET_DEVICE (2) ====================================================================== ====== Функция 74, подфункция 3, Остановить сетевое устройство. ====== ====================================================================== @@ -4000,6 +4473,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); Возвращаемое значение: * eax = -1 для ошибки +---------------------- Константы для регистров: ---------------------- + eax - SF_NETWORK_GET (74) + bl - SSF_STOP_DEVICE (3) ====================================================================== ===== Функция 74, подфункция 4, Получить указатель на устройство ===== ====================================================================== @@ -4010,6 +4486,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); Возвращаемое значение: * eax = указатель, -1 для ошибки +---------------------- Константы для регистров: ---------------------- + eax - SF_NETWORK_GET (74) + bl - SSF_DEVICE_POINER (4) ====================================================================== === Функция 74, подфункция 6, Получить количество посланых пакетов === ====================================================================== @@ -4020,6 +4499,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); Возвращаемое значение: * eax = количество с момента старта устройства, -1 для ошибки +---------------------- Константы для регистров: ---------------------- + eax - SF_NETWORK_GET (74) + bl - SSF_TX_PACKET_COUNT (6) ====================================================================== === Функция 74, подфункция 7, Получить количество принятых пакетов === ====================================================================== @@ -4030,6 +4512,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); Возвращаемое значение: * eax = количество с момента старта устройства, -1 для ошибки +---------------------- Константы для регистров: ---------------------- + eax - SF_NETWORK_GET (74) + bl - SSF_RX_PACKET_COUNT (7) ====================================================================== ==== Функция 74, подфункция 8, Получить количество посланых байт. ==== ====================================================================== @@ -4041,6 +4526,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * eax = количество с момента старта устройства, -1 для ошибки * ebx = старшая часть +---------------------- Константы для регистров: ---------------------- + eax - SF_NETWORK_GET (74) + bl - SSF_TX_BYTE_COUNT (8) ====================================================================== ==== Функция 74, подфункция 9, Получить количество принятых байт. ==== ====================================================================== @@ -4052,6 +4540,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * eax = количество с момента старта устройства, -1 для ошибки * ebx = старшая часть +---------------------- Константы для регистров: ---------------------- + eax - SF_NETWORK_GET (74) + bl - SSF_RX_BYTE_COUNT (9) ====================================================================== ======= Функция 74, подфункция 10, Получить статус соединения. ======= ====================================================================== @@ -4070,6 +4561,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); 12 = 1 Гбит 10b = флаг полного дуплекса +---------------------- Константы для регистров: ---------------------- + eax - SF_NETWORK_GET (74) + bl - SSF_LINK_STATUS (10) ====================================================================== ======= Функция 75, подфункция 0, Open socket (Открыть сокет). ======= ====================================================================== @@ -4083,6 +4577,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * eax = номер сокета, -1 для ошибки * ebx = код ошибки +---------------------- Константы для регистров: ---------------------- + eax - SF_NETWORK_SOCKET (75) + bl - SSF_OPEN (0) ====================================================================== ======= Функция 75, подфункция 1, Close socket (Закрыть сокет). ====== ====================================================================== @@ -4094,6 +4591,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * eax = -1 для ошибки * ebx = код ошибки +---------------------- Константы для регистров: ---------------------- + eax - SF_NETWORK_SOCKET (75) + bl - SSF_CLOSE (1) ====================================================================== ============= Функция 75, подфункция 2, Bind (Привязка). ============= ====================================================================== @@ -4107,6 +4607,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * eax = -1 для ошибки * ebx = код ошибки +---------------------- Константы для регистров: ---------------------- + eax - SF_NETWORK_SOCKET (75) + bl - SSF_BIND (2) ====================================================================== ============ Функция 75, подфункция 3, Listen (Слушать). ============= ====================================================================== @@ -4119,6 +4622,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * eax = -1 для ошибки * ebx = код ошибки +---------------------- Константы для регистров: ---------------------- + eax - SF_NETWORK_SOCKET (75) + bl - SSF_LISTEN (3) ====================================================================== ========== Функция 75, подфункция 4, Connect (Соединение). =========== ====================================================================== @@ -4132,6 +4638,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * eax = -1 для ошибки * ebx = код ошибки +---------------------- Константы для регистров: ---------------------- + eax - SF_NETWORK_SOCKET (75) + bl - SSF_CONNECT (4) ====================================================================== =========== Функция 75, подфункция 5, Accept (Соглашение). =========== ====================================================================== @@ -4145,6 +4654,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * eax = номер сокета из принятого сокета, -1 для ошибки * ebx = код ошибки +---------------------- Константы для регистров: ---------------------- + eax - SF_NETWORK_SOCKET (75) + bl - SSF_ACCEPT (5) ====================================================================== ============= Функция 75, подфункция 6, Send (Послать). ============== ====================================================================== @@ -4159,6 +4671,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * eax = количество скопированных байтов, -1 для ошибки * ebx = код ошибки +---------------------- Константы для регистров: ---------------------- + eax - SF_NETWORK_SOCKET (75) + bl - SSF_SEND (6) ====================================================================== ============ Функция 75, подфункция 7, Receive (Получить). =========== ====================================================================== @@ -4173,6 +4688,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * eax = количество скопированных байтов, -1 для ошибки * ebx = код ошибки +---------------------- Константы для регистров: ---------------------- + eax - SF_NETWORK_SOCKET (75) + bl - SSF_RECEIVE (7) ====================================================================== = Функция 75, подфункция 8, Set socket options (Задать опции сокета) = ====================================================================== @@ -4191,6 +4709,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); dd optlength db options... +---------------------- Константы для регистров: ---------------------- + eax - SF_NETWORK_SOCKET (75) + bl - SSF_SET_OPTIONS (8) ====================================================================== = Функция 75, подфункция 9, Get socket options(Получить опции сокета) ====================================================================== @@ -4209,6 +4730,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); dd optlength db options... +---------------------- Константы для регистров: ---------------------- + eax - SF_NETWORK_SOCKET (75) + bl - SSF_GET_OPTIONS (9) ====================================================================== = Функция 75, подфункция 10, Get socketpair (Получить парный сокет). = ====================================================================== @@ -4219,6 +4743,58 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * eax = socketnum1, -1 для ошибки * ebx = socketnum2, код ошибки в случае ошибки +---------------------- Константы для регистров: ---------------------- + eax - SF_NETWORK_SOCKET (75) + bl - SSF_GET_PAIR (10) +====================================================================== +=============== Функция 76, Сетевые опции и статистика. ============== +====================================================================== +Параметры: + * eax = 76 - номер функции + * верхняя часть ebx = номер протокола + * bh = номер устройства + * bl = номер подфункции + +Ethernet (0) + 0 - Read MAC + +IPv4 (1) + 0 - Read # IP packets sent + 1 - Read # IP packets received + 2 - Read IP + 3 - Write IP + 4 - Read DNS + 5 - Write DNS + 6 - Read subnet + 7 - Write subnet + 8 - Read gateway + 9 - Write gateway + +ICMP (2) + 0 - Read # ICMP packets sent + 1 - Read # ICMP packets received + 3 - enable/disable ICMP echo reply + +UDP (3) + 0 - Read # UDP packets sent + 1 - Read # UDP packets received + +TCP (4) + 0 - Read # TCP packets sent + 1 - Read # TCP packets received + +ARP (5) + 0 - Read # ARP packets sent + 1 - Read # ARP packets received + 2 - Read # ARP entry's + 3 - Read ARP entry + 4 - Add static ARP entry + 5 - Remove ARP entry (-1 = remove all) + 6 - Send ARP announce on specified interface + 7 - Read # ARP conflicts (IP address conflicts) + +---------------------- Константы для регистров: ---------------------- + eax - SF_NETWORK_PROTOCOL (76) ====================================================================== ========== Функция -1 - завершить выполнение потока/процесса ========= ====================================================================== @@ -4234,6 +4810,8 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * Эта функция завершает текущий поток. Другой поток можно прибить вызовом подфункции 2 функции 18. +---------------------- Константы для регистров: ---------------------- + eax - SF_TERMINATE_PROCESS (-1) ====================================================================== =========================== Список событий =========================== ======================================================================