Менеджер для управления VGA консолью и клавиатурой (HID интерфейс)
devc-con-hid [опции менеджера][опции библиотеки io_char] &
Caps Lock
. Num Lock
. Scroll Lock
. Num Lock
вместо Scroll Lock
для переключения раскладки клавиатуры.4
; максимальное значение – 9
.ЗОСРВ
«Нейтрино»
редакции 2021
Ctrl - Shift
для смены раскладки клавиатуры.57600
).256
).2048
).2048
).Опции | Режим | Программное управление обменом данными |
---|---|---|
-e | Редактируемый режим | Активировано |
-S -e | Редактируемый режим | Активировано |
-e -S | Редактируемый режим | Деактивировано |
-E | Режим необработанных данных (raw mode) | Деактивировано |
-s -E | Режим необработанных данных (raw mode) | Деактивировано |
-E -s | Режим необработанных данных (raw mode) | Активировано |
ЗОСРВ «Нейтрино»
x86
![]() | Для запуска этого драйвера необходимо войти в систему под учетной записью root. |
Менеджер devc-con-hid реализует интерфейс к VGA консоли и клавиатуре. Обычно он запускается в одном из системных стартовых сценариев (см. diskboot).
После запуска менеджер devc-con создает устройства (/dev/con1
, /dev/con2
и т.д.; максимальное число логических консолей определяется опцией -n) и управляет ими. Менеджер devc-con-hid аналогичен менеджеру devc-con, однако работает через io-hid и поддерживает интерфейсы PS2, USB, и другие устройства с человеко-машинным интерфейсом. Если выполняется чтение из устройства /dev/console
, эти менеджеры возвращают символы, введенные на клавиатуре. Если выполняется вывод в устройство /dev/console
, эти менеджеры выводят информацию на экран.
![]() | Если в приложении используется консоль /dev/console , следует привязать ее к одному из устройств (/dev/con1 , /dev/con2 , ...) путем добавления следующей строки в файл построения образа, используемый в команде mkifs:
[type=link] /dev/console = /dev/con1 |
Менеджер devc-con-hid эмулируют ANSI-терминал 80х25 символов.
Управление с клавиатуры
С помощью клавиатуры можно переключаться между виртуальными консолями. В каждой виртуальной консоли могут быть запущены разные приложения, использующие весь экран. Клавиатура подключается к виртуальной консоли, отображаемой в данный момент. От одной виртуальной консоли к другой (и, следовательно, от одного приложения к другому) можно переключаться с помощью следующих комбинаций клавиш:
Направление переключения | Сочетание клавиш |
---|---|
К следующей активной консоли | Ctrl - Alt - Enter или Ctrl - Alt - + (плюс) |
К предыдущей активной консоли | Ctrl - Alt - - (минус) |
![]() | В комбинациях клавиш для переключения консолей используются клавиши + (плюс) и - (минус), расположенные на дополнительной цифровой клавиатуре. |
Кроме того, для быстрого перехода к определенной консоли можно использовать комбинацию клавиш Ctrl - Alt - n
, где цифра n является номером виртуальной консоли. Пример:
Направление переключения | Сочетание клавиш |
---|---|
/dev/con1 | Ctrl - Alt - 1 |
/dev/con2 (если доступно) | Ctrl - Alt - 2 |
... | ... |
/dev/con10 (если доступно) | Ctrl - Alt - 0 |
Наборы символов
С помощью менеджера devc-con-hid можно выбирать используемые наборы символов из "палитры" наборов, каждая из которых программируется независимо и содержит один из нескольких встроенных наборов символов.
Используемый диапазон символов разделен на четыре группы, содержащие символы с шестнадцатеричными кодами от 0x00
до 0xff
. Две группы представляют собой фиксированные наборы управляющих символов, а другие две группы могут быть настроены и содержать следующие варианты наборов символов:
Шестнадцатеричное значение | Имя | Варианты выбора |
---|---|---|
0x00 –0x1f | С0 (Control Zero) | Не изменяется |
0x20 –0x7f | GL (Graphics Left) | G0, G1, G2, G3 |
0x80 –0x9f | C1 (Control One) | Не изменяется |
0xa0 –0xff | GR (Graphics Right) | G1, G2, G3 |
В используемых наборах символов GL и GR можно выбрать несколько наборов символов из G0, G1, G2 и G3.
Набор | Значение | Используемый код |
---|---|---|
GL | G0 | {LS0} = {SI} (0f) |
GL | G1 | {LS1} = {SO} (0e) |
GL | G2 | {LS2} = {ESC n} (1b 6e) или {SS2} (8e) |
GL | G3 | {LS3} = {ESC o} (1b 6f) или {SS3} (8f) |
GR | G1 | {LS1R} = {ESC ~} (1b 7e) |
GR | G2 | {LS1R} = {ESC }} (1b 7d) |
GR | G3 | {LS2R} = {ESC |} (1b 7c) |
Обозначение кода {LS*} расшифровывается как "Locking Shift" (смена регистра с фиксацией). Выбранный таким способом набор символов продолжает применяться до передачи другого кода {LS*}.
Обозначение кода {SS*} расшифровывается как "Single Shift" (однократная смена регистра); действие этого кода распространяется только на следующий символ. После следующего символа снова начинает применяться предыдущая установка действующего набора символов. Только два кода {SS*}, а именно {SS2} и {SS3}, позволяют отображать, соответственно, группы G2 в GL и G3 в GL.
Для каждого набора символов (от G0 до G3) можно установить любой из доступных встроенных шрифтов. Это выполняется с помощью следующего управляющего кода:
ESC g s
где:
g | Устанавливаемый набор |
---|---|
( | G0 |
) | G1 |
* | G2 |
+ | G3 |
и
s | Указываемая кодировка |
---|---|
B | ASCII |
0 | Специальный набор символов (DEC Graphic) |
< | Дополнительный набор символов ISO-Latin1 |
U | Набор символов PC |
Наборы символов по умолчанию
Используются следующие наборы символов:
Используемый набор символов | По умолчанию |
---|---|
GR | G2 |
GL | G0 |
Коды наборов символов
Набор символов | По умолчанию |
---|---|
G0 | Набор символов ASCII |
G1 | Специальный набор символов (DEC Graphic) |
G2 | Дополнительный набор символов (ISO-Latin 1) |
G3 | Специальный набор символов (DEC Graphic) |
Пример набора символов:
Установка для используемого набора символов GL (0x20
–0x7f
) набора символов PC до G1, ввод нескольких символов, затем переключение GL обратно в G0:
{ESC )U} 1e 29 55 (Установка G1 набором символов PC){SO} 0e (Установка для GL набора G1).. (Ввод символов из набора графических символов PC).{SI} 0f (Установка для GL набора G0)
Управляющие коды экрана ANSI
![]() | В таблицах используются следующие обозначения и аббревиатуры:
|
Управляющие коды C0
В следующей таблице приведены управляющие коды C0.
ASCII | ANSI Mnemonic | Шестнадцатеричный код | Действие |
---|---|---|---|
{NUL} | 00 | Null | |
{BEL} | 07 | Bell | |
{BS} | 08 | Back Space (VT100 defaults to no wrap from left margin) | |
{HT} | 09 | Horizontal Tab (VT100 defaults to no autowrap) | |
{LF} | 0A | Linefeed or Newline | |
{VT} | 0B | Same as LF | |
{FF} | 0C | Clears Screen (QNX Extension) | |
{CR} | 0D | Move cursor to left margin | |
{SO} | {LS1} | 0E | GL is set to G1 |
{SI} | {LS0} | 0F | GL is set to G0 (default) |
{XON} | {DC1} | 11 | XON |
{XOFF} | {DC0} | 13 | XOFF |
{CAN} | 18 | Cancels ESC sequence | |
{SUB} | 1A | Cancels ESC sequence and prints ? | |
{ESC} | 1B | Start of ESC sequence | |
{DEL} | 7F | Ignored on output |
Управляющие ESC-последовательности
В следующей таблице приведены управляющие ESC-последовательности.
Строка | Шестнадцатеричный код | Действие |
---|---|---|
{ESC 7} | 1B 37 | Сохранение курсора |
{ESC 8} | 1B 38 | Восстановление курсора |
{ESC =} | 1B 3D | Установка режима малой клавиатуры приложения |
{ESC >} | 1B 3E | Установка режима цифровой клавиатуры (по умолчанию) |
{ESC D} | 1B 44 | 7-разрядные коды для {IND} (84) |
{ESC E} | 1B 45 | 7-разрядные коды для {NEL} (85) |
{ESC H} | 1B 48 | 7-разрядные коды для {HTS} (88) |
{ESC M} | 1B 4D | 7-разрядные коды для {RI} (8D) |
{ESC N} | 1B 4E | 7-разрядные коды для {SS2} (8E) |
{ESC O} | 1B 4F | 7-разрядные коды для {SS3} (8F) |
{ESC P} | 1B 50 | 7-разрядные коды для {DCS} (90) |
{ESC [} | 1B 5B | 7-разрядные коды для {CSI} (9B) |
{ESC \} | 1B 5C | 7-разрядные коды для {ST} (9C) |
{ESC ]} | 1B 5D | 7-разрядные коды для {OSC} (9D) |
{ESC ^} | 1B 5E | 7-разрядные коды для {PM} (9E) |
{ESC _} | 1B 5F | 7-разрядные коды для {APC} (9F) |
{ESC Z} | 1B 5A | Идентификация терминала |
{ESC c} | 1B 63 | Аппаратный сброс (очистка экрана) (для программного сброса используется {CSI ! P}) |
{ESC n} | 1B 6E | (LS2) Для GL устанавливается G2 (220+) |
{ESC o} | 1B 6F | (LS3) Для GL устанавливается G3 (220+) |
{ESC |} | 1B 7C | (LS3R) Для GR устанавливается G3 (220+) |
{ESC }} | 1B 7D | (LS2R) Для GR устанавливается G2 (220+) (по умолчанию) |
{ESC ~} | 1B 7E | (LS1R) Для GR устанавливается G1 |
{ESC sp F} | 1B 20 46 | Клавиатура генерирует 7-разрядные коды C1 (включая CSI) (по умолчанию) |
{ESC sp G} | 1B 20 47 | Клавиатура генерирует 8-разрядные коды C1 (включая CSI) (220+) |
{ESC ( 0} | 1B 28 30 | Для G0 устанавливается специальный набор символов |
{ESC ( <} | 1B 28 3C | Для G0 устанавливается дополнительный набор символов |
{ESC ( A} | 1B 28 41 | Для G0 устанавливается набор символов U.K. (не реализовано; то же, что и ASCII) |
{ESC ( B} | 1B 28 42 | Для G0 устанавливается набор символов ASCII (по умолчанию) |
{ESC ( U} | 1B 28 55 | Для G0 устанавливается набор символов PCterm graphics |
{ESC ) 0} | 1B 29 30 | Для G1 устанавливается специальный набор символов (по умолчанию) |
{ESC ) <} | 1B 29 3C | Для G1 устанавливается дополнительный набор символов |
{ESC ) A} | 1B 29 41 | Для G1 устанавливается набор символов U.K. (не реализовано, то же, что и ASCII) |
{ESC ) B} | 1B 29 42 | Для G1 устанавливается набор символов ASCII |
{ESC ) U} | 1B 29 55 | Для G1 устанавливается набор символов PCterm graphics |
{ESC * 0} | 1B 2A 30 | Для G2 устанавливается специальный набор символов (220+) |
{ESC * <} | 1B 2A 3C | Для G2 устанавливается дополнительный набор символов (220+) (по умолчанию) |
{ESC * B} | 1B 2A 42 | Для G2 устанавливается набор символов ASCII (220+) |
{ESC * U} | 1B 2A 55 | Для G2 устанавливается набор символов PCterm graphics |
{ESC + 0} | 1B 2B 30 | Для G3 устанавливается специальный набор символов (220+) (поумолчанию) |
{ESC + <} | 1B 2B 3C | Для G3 устанавливается дополнительный набор символов (220+) |
{ESC + B} | 1B 2B 42 | Для G3 устанавливается набор символов ASCII (220+) |
{ESC + U} | 1B 2B 55 | Для G3 устанавливается набор символов PCterm graphics |
Управляющие символы C1 (220+)
![]() | Любой 8-разрядный код группы C1 можно представить как 7-разрядный код ESC, за которым следует 8-разрядный код с вычтенным шестнадцатеричным значением 0x40. Например, код CSI (Control Sequence Introducer; индикатор управляющей последовательности) в 8-разрядном режиме можно представить как 0x9b, в то время как в 7-разрядном режиме этот код должен быть представлен как ESC [ (0x1b 0x5b). |
В следующей таблице приведены коды управляющих символов C1.
ASCII | Шестнадцатеричный код | Действие |
---|---|---|
{IND} | 84 | Перемещение курсора вниз, с прокруткой |
{NEL} | 85 | Перемещение к левой границе в следующей строке, с прокруткой |
{HTS} | 88 | Установка горизонтальной табуляции |
{RI} | 8D | Перемещение курсора вверх, с прокруткой |
{SS2} | 8E | Для GL устанавливается G2 (применяется к одному символу) |
{SS3} | 8F | Для GL устанавливается G3 (применяется к одному символу) |
{DCS} | 90 | Управляющая строка Start of Device |
{CSI} | 9B | Индикатор управляющей последовательности |
{ST} | 9C | Управляющая строка End of Device |
{OSC} | 9D | Команда операционной системы |
{PM} | 9E | Частное сообщение |
{APC} | 9F | Команда прикладной программы |
Управляющие последовательности группы CSI
![]() | В 7-разрядном режиме для CSI используется представление ESC [. В 8-разрядном режиме для CSI используется шестнадцатеричный код 0x9B. Для представления переменной n используется спецификация ANSI. Например, печать двух пробелов:
|
В следующей таблице приведены коды управляющих последовательностей группы CSI.
ASCII | Шестнадцатеричный код | Действие |
---|---|---|
{CSI [n] @} | 9B [n] 40 | Вставка n пробелов в позиции курсора (по умолчанию – 1 пробел) |
{CSI [n] A} | 9B [n] 41 | Перемещение курсора вверх на n строк, без переноса текста (по умолчанию – на 1 строку) |
{CSI [n] B} | 9B [n] 42 | Перемещение курсора вниз на n строк, без переноса текста (по умолчанию – на 1 строку) |
{CSI [n] C} | 9B [n] 43 | Перемещение курсора вправо на n столбцов, без переноса текста (по умолчанию – на 1 столбец) |
{CSI [n] D} | 9B [n] 44 | Перемещение курсора влево на n столбцов, без переноса текста (по умолчанию – на 1 столбец) |
{CSI [n] F} | 9B [n] 46 | Перемещение курсора вверх на n строк, установка в первый столбец (по умолчанию – на 1 строку) |
{CSI [n] G} | 9B [n] 47 | Перемещение курсора в столбец n (по умолчанию – в столбец 1) |
{CSI [r[;c]] H} | 9B [r [3B c]] 48 | Позиция курсора (по умолчанию – строка 1; столбец 1) |
{CSI [n] J} | 9B [n] 4A | Стирание: 0 – от курсора до конца экрана, 1 – от начала экрана до курсора, 2 – весь экран (по умолчанию – 0 ) |
{CSI [n] K} | 9B [n] 4B | Стирание: 0 – от курсора до конца строки, 1 – от начала строки до курсора, 2 – всей строки (по умолчанию – 0) |
{CSI [n] L} | 9B [n] 4C | Вставка n строк (по умолчанию – 1 строка) |
{CSI [n] M} | 9B [n] 4D | Удаление n строк (по умолчанию – 1 строка) |
{CSI [n] P} | 9B [n] 50 | Удаление n символов (по умолчанию – 1 символ) |
{CSI [n] S} | 9B [n] 53 | Прокрутка вперед на n строк (по умолчанию – на 1 строку) |
{CSI [n] T} | 9B [n] 54 | Прокрутка назад на n строк (по умолчанию – на 1 строку) |
{CSI [n] X} | 9B [n] 58 | Стирание n - 1 символов от позиции курсора (по умолчанию – 1, то есть 0 символов) |
{CSI Z} | (9B 5A) | Обратная табуляция |
{c CSI [n] b} | c 9B [n] 62 | Повторение символа c из GR или GL n раз, где c – последний отображаемый символ; значение n по умолчанию – 1 |
{CSI 0 c} | (9B 30 63) | Запрос атрибутов первичного устройства |
{CSI [n] d} | 9B [n] 64 | Перемещение курсора на строку n (по умолчанию – на строку 1) |
{CSI [n] g} | 9B [n] 67 | Очистка позиций табуляции: 0 – под курсором, 2 – все (по умолчанию – 0) |
{CSI [n[;n]...] h} | 9B [n[3B n]...] 68 | Режим стандартных установок (см. таблицу режимов) (по умолчанию – отсутствует) |
{CSI ? [n[;n]...] h} | 9B 3F [n[3B n]...] 68 | Режим частных установок (см. таблицу режимов) (по умолчанию – отсутствует) |
{CSI [n[;n]...] l} | 9B [n[3B n]...] 6C | Режим стандартного сброса (см. таблицу режимов) (по умолчанию – отсутствует) |
{CSI ? [n[;n]...] l} | 9B 3F [n[3B n]...] 6C | Режим частного сброса (см. таблицу режимов) (по умолчанию – отсутствует) |
{CSI [n[;n]...] m} | 9B [n[3B n]...] 6D | Выбор вида графической передачи (см. ниже) (по умолчанию – 0) |
{CSI n n} | 9B n 6E | Статус устройства: 5 – статус, 6 – курсор/позиция |
{CSI [r[;c]] r} | 9B [r[3B c]] 72 | Установка зоны прокрутки и начального положения курсора |
{CSI r} | 9B 72 | Отмена зоны прокрутки и начального положения курсора |
{CSI s} | 9B 73 | Сохранение курсора |
{CSI u} | 9B 75 | Восстановление курсора |
{CSI ! p} | 9B 21 70 | Программный сброс |
{CSI [n[;n]] ]} | 9B [n[3B n]...] 5D | Установка по умолчанию: 1 – подчеркивание, 2 – половинная яркость, 8 – цветовой набор (по умолчанию – отсутствует) |
{CSI = [f[;d]] B} | 9B 3D [f[3B d]] 46 | Установка частоты (Гц) и длительности (мс) звонка (по умолчанию – 100 Гц, 250 мс) |
{CSI = [n] F} | 9B 3D [n] 46 | Установка и сохранение цвета фона |
{CSI = [n] G} | 9B 3D [n] 47 | Установка и сохранение фонового цвета |
Графическая передача
В следующей таблице приведены коды графической передачи.
Номер | Значение |
---|---|
0 | Отключение всех атрибутов (кроме наборов символов (10, 11, 12)) |
1 | Полужирный |
2 | Половинная яркость (по умолчанию – голубой цвет (cyan) на цветном экране) |
4 | Подчеркивание (по умолчанию – красный цвет на цветном экране) |
5 | Мигание |
7 | Негативное изображение |
9 | Режим невидимости |
10 | Прекращение использования альтернативного набора символов (восстанавление GR и GL) |
11 | Переход в "нижний" набор символов PC (PC-Lower) (для GR и GL используется ASCII; для C0 и C1 используется PC_LO, за исключением ESC-последовательностей) |
12 | Переход в "верхний" набор символов PC (PC-Higher) (для GR, C1 и GL, C0 используется набор PC_HI, за исключением ESC-последовательностей) |
21 | Нормальная яркость (отмена полужирного выделения) |
22 | Нормальная яркость (отмена половинной яркости) |
24 | Отключение подчеркивания |
25 | Отключение мигания |
27 | Отключение негативного изображения |
29 | Режим видимости |
30-37 | Установка цвета фона (30 + номер_цвета, см. ниже) |
39 | Установка сохраненного цвета фона |
40-47 | Установка фонового цвета (40 + номер_цвета, см. ниже) |
49 | Установка сохраненного фонового цвета |
Номера цветов
В следующей таблице приведены номера используемых цветов.
номер_цвета | Описание |
---|---|
0 | Черный |
1 | Красный |
2 | Зеленый |
3 | Коричневый |
4 | Синий |
5 | Фиолетовый |
6 | Голубой |
7 | Белый |
Режимы
Используются следующие режимы:
Строка режима | Описание |
---|---|
?1h | Клавиши управления курсором = приложение |
?1l | Клавиши управления курсором = ANSI (по умолчанию) |
?3h | 132 столбца (не реализовано) |
?3l | 80 столбцов (по умолчанию) |
?5h | Экран с негативным изображением |
?5l | Экран без негативного изображения (по умолчанию) |
?6h | Исходный режим |
?6l | Абсолютный режим |
?7h | Автоматический перенос включен |
?7l | Автоматический перенос выключен (по умолчанию) |
?25h | Режим видимости курсора (по умолчанию) |
?25l | Режим невидимости курсора |
?45h | Режим обратного циклического переноса |
?45l | Без обратного циклического переноса |
?66h | Клавиатура = приложение |
?66l | Клавиатура = ANSI |
?67h | Клавиша Backspace генерирует код BS |
?67l | Клавиша Backspace генерирует код DEL |
Отображение клавиатуры ЗОСРВ «Нейтрино» на клавиши ANSI
В следующей таблице приведены коды отображений клавиш ANSI.
Клавиша | Обычное состояние | С клавишей Shift | С клавишей Ctrl | С клавишей Alt |
---|---|---|---|---|
Enter | CR | CR | CR | CR |
Tab | TAB | CSI Z | CSI z | |
BS | BS | RUB | RUB | BS |
ESC | ESC | ESC | ESC | ESC |
F1 | SS3 P | SS3 p | CSI 1~ | CSI 17~ |
F2 | SS3 Q | SS3 q | CSI 2~ | CSI 18~ |
F3 | SS3 R | SS3 r | CSI 3~ | CSI 19~ |
F4 | SS3 S | SS3 s | CSI 4~ | CSI 20~ |
F5 | SS3 T | SS3 t | CSI 5~ | CSI 21~ |
F6 | SS3 U | SS3 u | CSI 6~ | CSI 22~ |
F7 | SS3 V | SS3 v | CSI 7~ | CSI 23~ |
F8 | SS3 W | SS3 w | CSI 8~ | CSI 24~ |
F9 | SS3 X | SS3 x | CSI 9~ | CSI 25~ |
F10 | SS3 Y | SS3 y | CSI 10~ | CSI 26~ |
F11 | SS3 Z | SS3 z | CSI 11~ | CSI 27~ |
F12 | SS3 A | SS3 a | CSI 12~ | CSI 28~ |
Home | CSI H | CSI h | CSI H | |
↑ | CSI A | CSI a | CSI A | |
PgUp | CSI V | CSI v | CSI V | |
Минус | CSI S | CSI s | CSI S | |
← | CSI D | CSI d | CSI D | |
kpd 5 | CSI G | CSI g | CSI G | |
→ | CSI C | CSI c | CSI C | |
Плюс | CSI T | CSI t | CSI T | |
End | CSI Y | CSI y | CSI Y | |
↓ | CSI B | CSI b | CSI B | |
PgDn | CSI U | CSI u | CSI U | |
Ins | CSI @ | CSI 0x60 | CSI @ | |
Del | CSI P | CSI p | CSI P | |
Prt | NOP | NOP | NOP | NOP |
SysRq | NOP | NOP | NOP | NOP |
a | a | A | SOH | SS2 a |
b | b | B | STX | SS2 b |
c | c | C | ETX | SS2 c |
d | d | D | EOT | SS2 d |
e | e | E | ENQ | SS2 e |
f | f | F | ACK | SS2 f |
g | g | G | BEL | SS2 g |
h | h | H | BS | SS2 h |
i | i | I | HT | SS2 i |
j | j | J | LF | SS2 j |
k | k | K | VT | SS2 k |
l | l | L | FF | SS2 l |
m | m | M | CR | SS2 m |
n | n | N | SO | SS2 n |
o | o | O | SI | SS2 o |
p | p | P | DLE | SS2 p |
q | q | Q | DC1 | SS2 q |
r | r | R | DC2 | SS2 r |
s | s | S | DC3 | SS2 s |
t | t | T | DC4 | SS2 t |
u | u | U | NAK | SS2 u |
v | v | V | SYN | SS2 v |
w | w | W | ETB | SS2 w |
x | x | X | CAN | SS2 x |
y | y | Y | EM | SS2 y |
z | z | Z | SUB | SS2 z |
Международные раскладки клавиатуры
Менеджер devc-con-hid поддерживают международные раскладки клавиатуры. По умолчанию они используют исходную раскладку US-101.
Если обнаружен файл /etc/kbd.tbl
(при запуске devc-con-hid), то он загружается и используется вместо исходного файла. Этот файл можно перезагрузить во время работы системы с помощью комбинации клавиш Ctrl - Alt - Space
. (При использовании VMWare может потребоваться двойное нажатие.)
![]() | Как и все другие комбинации клавиш, эта комбинацию можно изменить! Однако переопределить составную последовательность невозможно. |
Предоставляются следующие файлы раскладок (в каталоге ${KPDA_TARGET}/etc/
):
Файл раскладки клавиатуры имеет очень простую и жесткую структуру. Он должен содержать ровно 5 х 96 или ровно 6 х 96 шестнадцатеричных записей, разделенных пробельными символами, переводами строк или запятыми:
Alt
воспринимаются как обычная клавиша Alt
. Alt
воспринимается как клавиша AltGr
, и каждая из последних 96 записей должна определять код клавиши, который соответствует каждой клавише при нажатой клавише AltGr
. Длина каждой записи не должна превышать четырех шестнадцатеричных цифр (16 разрядов). Началу комментария соответствует знак номера (#), комментарий продолжается до конца строки.
Каждый ряд, состоящий из 96 записей, определяет семантику максимум 96 различных клавиш при определенных условиях:
Записи | Определение семантики для клавиш |
---|---|
000–095 | Без модификаторов |
096–191 | При нажатой клавише Shift |
192–287 | При нажатой клавише Ctrl |
288–383 | При нажатой клавише Alt |
384–479 | При нажатых клавишах Ctrl - Alt |
480–575 | При нажатой клавише AltGr (правой клавише Alt ) |
96 записей в ряду индексируются кодами сканирования клавиатуры. Для создания собственного определения клавиатуры необходимо знать эти коды сканирования. Ниже приведено отображение "коды сканирования/символы" для клавиатуры US-101.
0 1 2 3 4 5 6 7 8 9 A B C D E F, Esc, '1', '2', '3', '4', '5', '6' '7', '8', '9', '0', '-', '=', Rub, Tab ; 00'q', 'w', 'e', 'r', 't', 'y', 'u', 'i' 'o', 'p', '[', ']', Ent, Ctl, 'a', 's' ; 10'd', 'f', 'g', 'h', 'j', 'k', 'l', ';' ''', '', Shf, '\', 'z', 'x', 'c', 'v' ; 20'b', 'n', 'm', ',', '.', '/', Rsh, '*' Alt, SP, Cap, F1, F2, F3, F4, F5 ; 30F6, F7, F8, F9, F10, Num, Scr, Hom Up, PgU, K-, Lft, K5, Rig, K+, End ; 40Dwn, PgD, Ins, Del, , , , F11 F12, , , , , , , ; 50
Каждому скэн-коду соответствуют два байта данных из записей. Старший байт определяет флаги для клавиши (см. ниже), а в младшем байте обычно содержатся фактические данные, выдаваемые пользователю при нажатии клавиши. Для клавиш Shift
, Lock
и специальных клавиш в младшем байте содержится дополнительная зависящая от функции информация (см. ниже).
Старшие разряды записей:
Shift
: Shift
Ctrl
Alt
Rshift
Num Lock
Lock
: Scroll Lock
Num Lock
Caps Lock
Dead
Caps Lock
Ctrl - Alt - Del
) Ctrl - Alt - Esc
) Ctrl - Alt - +
или Ctrl - Alt - Enter
) Ctrl - Alt - -
) Ctrl - Alt - 1
) Ctrl - Alt - 2
) Ctrl - Alt - 8
) Ctrl - Alt - 9
) Ctrl - Alt - 0
) Ctrl - Alt - >
) Ctrl - Alt - <
) Ctrl - Alt - ?
) Ctrl - Break
) Ctrl - Alt - End
) Ctrl - Alt - PrtScn
) Ctrl - Alt - F1
) Ctrl - Alt - F2
) Ctrl - Alt - Пробел
) Типичная командная строка запуска:
devc-con -n4
При возникновении ошибки клавиатура в текстовом режиме не работает.
Базовые подсистемы ЗОСРВ «Нейтрино», Драйверы
Предыдущий раздел: Драйверы