SysFn26/ru: Difference between revisions
(Created page with ''''Функция 26''' - аппаратный сервис ---- === Подфункция 1 - получить базовый порт MPU MIDI. === Параметры: * eax ...') |
Punk Joker (talk | contribs) |
||
Line 4: | Line 4: | ||
=== Подфункция 1 - получить базовый порт MPU MIDI. === | === Подфункция 1 - получить базовый порт MPU MIDI. === | ||
Параметры: | Параметры: | ||
* eax = 26 - номер функции | :* eax = 26 - номер функции | ||
* ebx = 1 - номер подфункции | :* ebx = 1 - номер подфункции | ||
Возвращаемое значение: | Возвращаемое значение: | ||
* eax = номер порта | :* eax = номер порта | ||
Замечания: | Замечания: | ||
* Установить базовый порт можно вызовом подфункции 1 функции 21. | :* Установить базовый порт можно вызовом | ||
::подфункции 1 функции 21. | |||
=== Подфункция 2 - получить раскладку клавиатуры. === | === Подфункция 2 - получить раскладку клавиатуры. === |
Revision as of 09:22, 16 December 2013
Функция 26 - аппаратный сервис
Подфункция 1 - получить базовый порт MPU MIDI.
Параметры:
- eax = 26 - номер функции
- ebx = 1 - номер подфункции
Возвращаемое значение:
- eax = номер порта
Замечания:
- Установить базовый порт можно вызовом
- подфункции 1 функции 21.
Подфункция 2 - получить раскладку клавиатуры.
Раскладка клавиатуры используется для преобразования сканкодов, поступающих от клавиатуры, в ASCII-коды, считываемые функцией 2. Параметры:
- eax = 26 - номер функции
- ebx = 2 - номер подфункции
- ecx = какую раскладку получать:
- 1 = нормальную
- 2 = раскладку при нажатом Shift
- 3 = раскладку при нажатом Alt
- edx = указатель на буфер длиной 128 байт, куда будет скопирована раскладка
Возвращаемое значение:
- функция не возвращает значения
Или:
- eax = 26 - номер функции
- ebx = 2 - номер подфункции
- ecx = 9
Возвращаемое значение:
- eax = идентификатор страны (1=eng, 2=fi, 3=ger, 4=rus)
Замечания:
- Если нажат Alt, то используется раскладка с Alt; если не нажат Alt, но нажат Shift, то используется раскладка с Shift; если не нажаты Alt и Shift, но нажат Ctrl, то используется нормальная раскладка, после чего из кода вычитается 0x60; если не нажата ни одна из управляющих клавиш, то используется нормальная раскладка.
- Установить раскладки и идентификатор страны можно с помощью подфункции 2 функции 21.
- Идентификатор страны - глобальная системная переменная, которая самим ядром не используется; однако приложение @panel отображает соответствующую текущей стране иконку (используя описываемую функцию).
- Приложение @panel переключает раскладки по запросу пользователя.
Подфункция 3 - получить базу CD.
Параметры:
- eax = 26 - номер функции
- ebx = 3 - номер подфункции
Возвращаемое значение:
- eax = база CD: 1=IDE0, 2=IDE1, 3=IDE2, 4=IDE3
Замечания:
- База CD используется функцией 24.
- Установить базу CD можно вызовом подфункции 3 функции 21.
Подфункция 4 - получить базовый порт Sound Blaster.
Удалена
Подфункция 5 - получить язык системы.
- eax = 26 - номер функции
- ebx = 5 - номер подфункции
Возвращаемое значение:
- eax = язык системы (1=eng, 2=fi, 3=ger, 4=rus)
Замечания:
- Язык системы - глобальная системная переменная, никак не используемая самим ядром, однако приложение @panel рисует соответствующую иконку (используя описываемую функцию).
- Установить язык системы можно вызовом подфункции 5 функции 21.
Подфункция 7 - получить базу HD.
База HD нужна для определения, на какой жёсткий диск писать, при использовании устаревшего синтаксиса /HD в устаревшей функции 58; при использовании современного синтаксиса /HD0,/HD1,/HD2,/HD3 база устанавливается автоматически. Параметры:
- eax = 26 - номер функции
- ebx = 7 - номер подфункции
Возвращаемое значение:
- eax = база HD: 1=IDE0, 2=IDE1, 3=IDE2, 4=IDE3
Замечания:
- Любое приложение в любой момент времени может изменить базу.
- Установить базу можно вызовом подфункции 7 функции 21.
- Получить используемый раздел жёсткого диска можно подфункцией 8.
Подфункция 8 - получить раздел HD.
Раздел HD нужен для определения, на какой раздел жёсткого диска писать, при использовании устаревшего синтаксиса /HD в устаревшей функции 58; при использовании современного синтаксиса /HD0,/HD1,/HD2,/HD3 база и раздел устанавливаются автоматически.
Параметры:
- eax = 26 - номер функции
- ebx = 8 - номер подфункции
Возвращаемое значение:
- eax = раздел HD (считая с 1)
Замечания:
- Любое приложение в любой момент времени может изменить раздел.
- Установить раздел можно вызовом подфункции 8 функции 21.
- Узнать число разделов на жёстком диске можно вызовом подфункции 11 функции 18.
- Получить используемую базу жёсткого диска можно подфункцией 7.
Подфункция 9 - получить значение счётчика времени.
Параметры:
- eax = 26 - номер функции
- ebx = 9 - номер подфункции
Возвращаемое значение:
- eax = число сотых долей секунды, прошедших с момента запуска системы
Замечания:
- Счётчик берётся по модулю 2^32, что соответствует немногим более 497 суток.
- Системное время можно получить функцией 3.
Подфункция 10 - получить канал DMA для звука.
Удалена
Подфункция 11 - узнать, разрешён ли низкоуровневый доступ к HD.
Параметры:
- eax = 26 - номер функции
- ebx = 11 - номер подфункции
Возвращаемое значение:
- eax = 0/1 - запрещён/разрешён
Замечания:
- Используется при LBA-чтении (подфункция 8 функции 58).
- Установить текущее состояние можно вызовом подфункции 11 функции 21.
Подфункция 12 - узнать, разрешён ли низкоуровневый доступ к PCI.
Параметры:
- eax = 26 - номер функции
- ebx = 12 - номер подфункции
Возвращаемое значение:
- eax = 0/1 - запрещён/разрешён
Замечания:
- Используется при работе с шиной PCI (функция 62).
- Текущая реализация использует только младший бит ecx.
- Установить текущее состояние можно вызовом подфункции 12 функции 21.
|