Режим передачи с клавиатуры в эмуляторе терминала vt100

Я реализую эмулятор терминала vt100 в javascript и спецификации vt100 (из man terminfo а также infocmp) говорит мне, что smkx=\E[?1h\E= код для входа в режим передачи с клавиатуры и rmkx=\E[?1l\E> код для выхода из режима передачи с клавиатуры. Я не мог понять, что такое режим передачи с клавиатуры.

С http://vt100.net/dec/ek-vt220-tm-001.pdf,

7.4.4.1 Режим передачи с клавиатуры - коды клавиатуры и несколько других специальных кодов передаются через последовательный линейный выход в ПОРТ 8051. Передаваемый сигнал поступает с 8051 на драйвер через кабель клавиатуры, монитор и видеокабель в процессор. UART в 8051 контролирует передачу "

Я получаю эти коды при входе и выходе vimсоответственно. Могу ли я безопасно игнорировать эти коды или мне нужно их обрабатывать? В последнем случае, что я должен делать?

2 ответа

Решение

Эти две строки содержат две последовательности каждая; они тонко контролируют разные вещи:

Первый из них,

CSI ? 1h
CSI ? 1l

управляет частным режимом DEC № 1, DECCKM, режим курсора. Этот режим определяет, будут ли четыре клавиши со стрелками (вверх, вниз, влево, вправо) отправлять последовательности с префиксом SS3 или CSI.

Вторая пара последовательностей,

ESC =
ESC >

называются DECKPAM, режим приложения клавиатуры, и DECKPNM, цифровой режим клавиатуры. Это определяет, будет ли цифровая клавиатура отправлять управляющие последовательности или нормальные числа (т. Е. Считать, что это похоже на функцию Numlock).

smkx/rmkx контролирует, будет ли клавиатура передавать цифры или escape-код. Кроме того, это "клавиатура-режим передачи", а не "клавиатура-режим передачи"

Другие вопросы по тегам