devc-con, devc-con-hid

Менеджер для управления VGA консолью и клавиатурой (QNX Neutrino)

Примечание. Для запуска этого менеджера необходимо войти в систему под учетной записью root.

Синтаксис:

devc-con [опции] &

devc-con-hid [опции] &

Поддерживаемые платформы:

Neutrino

Целевые платформы:

x86

Опции:

-C размер

Указать размер канонического буфера в байтах (значение по умолчанию – 256).

-E

Выполнить запуск в сыром (raw) режиме.

-e

Выполнить запуск в редактируемом режиме (по умолчанию).

-h

(только для devc-con-hid) Не подключаться к серверу io-hid, читать данные из контроллера клавиатуры.

-I размер

Указать размер входного буфера в байтах (значение по умолчанию – 2048).

-k

(только для devc-con и devc-con-hid) Отключить клавиатуру (не устанавливается обработчик прерываний клавиатуры).

-L [P][N][C][S]

Установить начальное состояние клавиатуры и ее светодиодов (по умолчанию все выключены):

-n число_консолей

(только для devc-con и devc-con-hid) Число создаваемых логических (виртуальных) консолей. Значение по умолчанию – 4; максимальное значение – 9.

-O размер

Указать размер выходного буфера в байтах (значение по умолчанию – 2048).

-o nodaemon

Запретить вызов функции procmgr_daemon() для работы драйвера в фоновом режиме. Эта опция используется при необходимости узнавать о завершении работы devc-con.

-r скорость[,задержка]


Указать период повторения кода клавиш клавиатуры (в Герцах) и (дополнительно) задержку повторения клавиатуры (в миллисекундах). Значения по умолчанию – 30 Гц и 500 мс.

Период повторения кода клавиатуры соответствует числу повторений кода нажатой клавиши за одну секунду. В совместимых с PC/AT системах это значение варьируется в диапазоне от 2 до 30 символов в секунду. Если указана опция -r 0, то драйвер не устанавливает период повторения кода клавиатуры.

Задержка клавиатуры определяется как интервал времени от момента первого нажатия клавиши до момента выдачи первого повторяемого кода клавиши. В совместимых с PC/AT системах задержка клавиатуры может варьироваться в диапазоне от 250 до 1000 мс.

Описание:

Менеджер devc-con реализует интерфейс к VGA консоли и клавиатуре. Обычно он запускается в одном из системных стартовых сценариев (см. diskboot).

Примечание. Для последовательных портов используется соответствующий менеджер devc-ser*.

После запуска менеджер devc-con создает устройства (/dev/con1, /dev/con2 и т.д.; максимальное число логических консолей определяется опцией -n) и управляет ими.

Менеджер devc-con-hid аналогичен менеджеру devc-con, однако работает совместно с io-hid и поддерживает интерфейсы PS2, USB, и другие устройства с человеко-машинным интерфейсом.

Примечание. Менеджер devc-con-hid был добавлен в  Service Pack 3 QNX Momentics 6.3.0; утилита diskboot запускает этот менеджер вместо devc-con).

Если выполняется чтение из устройства /dev/console, эти менеджеры возвращают символы, введенные на клавиатуре. Если выполняется вывод в устройство /dev/console, эти менеджеры выводят информацию на экран.

Примечание. Если в приложении используется консоль /dev/console, следует привязать ее к одному из устройств (/dev/con1, /dev/con2, …) путем добавления следующей строки в файл построения образа, используемый в команде mkifs:

[type=link] /dev/console = /dev/con1


Менеджеры devc-con и 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 и devc-con-hid можно выбирать используемые наборы символов из "палитры" наборов, каждая из которых программируется независимо и содержит один из нескольких встроенных наборов символов.

Используемый диапазон символов разделен на четыре группы, содержащие символы с шестнадцатеричными кодами от 0x00 до 0xff. Две группы представляют собой фиксированные наборы управляющих символов, а другие две группы могут быть настроены и содержать следующие варианты наборов символов:

Шестнадцатеричное значение

Имя

Варианты выбора

0x00–0x1f

C0 (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 и GR:

Набор

Значение

Используемый код

GL

G0

{LS0} = {SI} (0f)

GL

G1

{LS1} = {SO} (0e)

GL

G2

{LS2} = {ESC n} (1b 6e) or {SS2} (8e)

GL

G3

{LS3} = {ESC o} (1b 6f) or {SS3} (8f)

GR

G1

{LS1R}= {ESC ~} (1b 7e)

GR

G2

{LS2R}= {ESC }} (1b 7d)

GR

G3

{LS3R}= {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)



Набор символов PC 0x00–0x7f


Набор символов PC 0x80–0xff


Управляющие коды экрана ANSI

Примечание. В таблицах используются следующие обозначения и аббревиатуры:

(220+)

Функция VT220 уровня 2

(NA)

Not ANSI standard (не относится к стандарту ANSI)

(NI)

Not implemented (не реализовано)

(NFI)

Not fully implemented (реализовано не полностью)

Управляющие коды C0

В следующей таблице приведены управляющие коды C0.

ASCII

ANSI-мнемоника

Шестнадцатеричный код

Действие

{NUL}


00

Отсутствует

{BEL}


07

Звонок

{BS}


08

Возврат на одну позицию (по умолчанию для VT100 – без переноса текста от левой границы)

{HT}


09

Горизонтальная табуляция (по умолчанию для VT100 – без автоматического переноса текста)

{LF}


0A

Перевод строки или новая строка

{VT}


0B

То же, что и LF

{FF}


0C

Очистка экрана (расширение QNX)

{CR}


0D

Возврат курсора к левой границе

{SO}

{LS1}

0E

Для GL установить G1

{SI}

{LS0}

0F

Для GL установить G0 (по умолчанию)

{XON}

{DC1}

11

XON

{XOFF}

{DC0}

13

XOFF

{CAN}


18

Отмена ESC-последовательности

{SUB}


1A

Отмена ESC-последовательности и вывод символа ?

{ESC}


1B

Запуск ESC-последовательности

{DEL}


7F

Игнорируется при выводе


Управляющие 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. Например, печать двух пробелов:

printf( "%c%c", 0x9b, 0x32 ) ;

В следующей таблице приведены коды управляющих последовательностей группы 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


Отображение клавиатуры QNX на клавиши 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 `

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 и devc-con-hid поддерживают международные раскладки клавиатуры. По умолчанию они используют исходную раскладку US-101.

Если обнаружен файл /etc/kbd.tbl (при запуске devc-con или devc-con-hid), то он загружается и используется вместо исходного файла. Этот файл можно перезагрузить во время работы системы с помощью комбинации клавиш Ctrl- Alt-Space. (При использовании VMWare может потребоваться двойное нажатие.)

Примечание. Как и все другие комбинации клавиш, эта комбинацию можно изменить! Однако переопределить составную последовательность невозможно.

Предоставляются следующие файлы раскладок (в каталоге ${QNX_TARGET}/etc/):

kbd.tbl.de

раскладка DE-102 (немецкая)

kbd.tbl.us

раскладка US-101 (по умолчанию)Файл раскладки клавиатуры имеет очень простую и жесткую структуру. Он должен содержать ровно 5 х 96 или ровно 6 х 96 шестнадцатеричных записей, разделенных пробельными символами, переводами строк или запятыми.
Длина каждой записи не должна превышать четырех шестнадцатеричных цифр (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 ; 30

F6, F7, F8, F9, F10, Num, Scr, Hom Up, PgU, K-, Lft, K5, Rig, K+, End ; 40

Dwn, PgD, Ins, Del, , , , F11 F12, , , , , , , ; 50


Каждому скэн-коду соответствуют два байта данных из записей. Старший байт определяет флаги для клавиши (см. ниже), а в младшем байте обычно содержатся фактические данные, выдаваемые пользователю при нажатии клавиши. Для клавиш Shift, Lock и специальных клавиш в младшем байте содержится дополнительная зависящая от функции информация (см. ниже).

Старшие разряды записей:

Примеры:

Типичная командная строка запуска:

devc-con -n4

Файлы:

/dev/con1, /dev/con2, …

Устройства логических консолей.

/etc/kbd.tbl


Раскладка клавиатуры; см. раздел "Международные раскладки клавиатуры" выше.

Ошибки:

При возникновении ошибки клавиатура в текстовом режиме не работает.