SysFn26/ru

From KolibriOS wiki
Jump to navigation Jump to search

Функция 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.