Подключение PS/2 клавиатуры через COM порт

Публичный форум для http://www.nedopc.org/nedopc

Moderator: Shaos

User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Подключение PS/2 клавиатуры через COM порт

Post by Lavr »

rw6hrm wrote:Я не думаю, что от ASCII-ввода можно ждать всех новых фишек, что обеспечивают современные клавиатуры, всё же в те времена их не существовало и не было необходимости.
Прямой вопрос: как ASCII-клавиатура передает коды стрелок курсора, а также PgUP и PgDOWN?
Управление курсором, фишка, пожалуй, не такая уж и новая...
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Подключение PS/2 клавиатуры через COM порт

Post by Lavr »

rw6hrm wrote:Прямой ответ - никак, поскольку на ASCII-клавах таких клавиш не было изначально.
Вот тут меня и гложут сомнения: есть фирменные клавиатуры IBM, где такие клавиши издавна были.
Но за давностью времени информации по ним нет, попадались лишь пару раз на Е-бей...
rw6hrm wrote:Скакание курсором по экрану делалось через Ctrl-коды (в основном S,D,E,X), но особого "стандарта" я не наблюдаю (исходя из СР/М-ных программ).
Для примера цитата из хелпа редактора SED:
^S НА СИМВОЛ ВЛЕВО
^D НА СИМВОЛ ВПРАВО
^E НА СТРОКУ ВВЕРХ
^X НА СТРОКУ ВНИЗ
^R НА СТРАНИЦУ ВВЕРХ
^C НА СТРАНИЦУ ВНИЗ
В WordStar'е примерно аналогично.
С таким работать приходилось - но это зависит от программы.
rw6hrm wrote:С другой стороны, существовала отечественная клавиатура типа 15ВВВ-97-005/006, в ней клавиши курсора были.
...
В исходнике это выглядело так (что передаётся на "Иришу"):
SC_CURSOR_LEFT, 0x1a,
SC_CURSOR_RIGHT, 0x19,
SC_CURSOR_DOWN, 0x1d,
SC_CURSOR_UP, 0x1c,
Забавно... видимо - тоже отсебятина... популярным было вот такое соглашение:
08h - перевод курсора влево на одну позиции.
0Ah - перевод курсора на строку вниз с установкой в начало строки, если курсор на нижней строке, то осуществляется сдвиг экрана вверх на строку, нижняя строка очищается, и курсор устанавливается в начало строки.
0Сh - перевод курсора в начало экрана.
0Dh - перевод курсора в начало строки.
18h - перевод курсора вправо на одну позиций.
19h - перевод курсора на строку вверх с установкой в начало строки, если курсор на верхней строке, то осуществляется сдвиг экрана вниз на строку, верхняя строка очищается, и курсор устанавливается в начало строки.
1Ah - перевод курсора на строку вниз, если курсор на нижней строке, то устанав-ливает его в начало строки и сдвигает экран вверх на строку, нижняя строка очищается.
Но это опять же вступает в некоторое противоречие с ASCII...
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Подключение PS/2 клавиатуры через COM порт

Post by Lavr »

Lavr wrote:
rw6hrm wrote:Прямой ответ - никак, поскольку на ASCII-клавах таких клавиш не было изначально.
Вот тут меня и гложут сомнения: есть фирменные клавиатуры IBM, где такие клавиши издавна были.
Возможно, существует некая путаница в терминах, но вот - типичый пример того, о чем я говорю:
Wyse ASCII Keyboard
042ba1eb.jpg
Как мы видим, клавиши курсора есть... и это не единственный пример, если хорошо поискать.

И, кстати, если я не ошибся, то из мануала на эту клавиатуру (в представлении Гугл):
cursor.gif

P.S. Но с другой стороны в этом же мануале написано следующее:
A Wyse 60 will send D0-D3 when the arrow-keys are hit provided the
terminal is in "application key mode".
Но D0-D3 в ASCII-представлении нам совершенно не подходят в качестве кодов курсора...
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Подключение PS/2 клавиатуры через COM порт

Post by Lavr »

Lavr wrote:меня конкретно интересует, что понимает вот этот драйвер Венды, когда включается галка "Поддержка альтернативных устройств" на COMx.

Image

Я предполагаю, что по умолчанию (а подробностей нигде нет) он должен понимать стандартную ASCII Serial KeyBoard, ...
Я всё забываю отписаться в этот топик, что вот эту фичу я сподобился проверить еще за месяц
до карантина по короновирусу.
Правда, я делал отдельное устройство на основе этой вот своей схемы, и передача кодов в РС
по RS-232 была лишь частью функций, но я проверил практически все коды и некоторые их комбинации.

Результат меня несколько обескуражил: да, коды ASCII передаются, но коды интерпретируются Вендой
по-разному, в зависимости от того, какое приложение Венды активно в данный момент.

Если кому-либо это интересно - можно соединить 2 компьютера по COM-портам, на одном - включить
эту фичу, на другом - терминал, через который подавать коды.

ПРЕДУПРЕЖДАЮ: Включенная и настроенная фича начинает работать только ПОСЛЕ ПЕРЕЗАГРУЗКИ ВЕНДЫ!
Я чуть не бросил из-за этого всю затею, потому как после просто включения - ничего не происходит.
А вот после ПЕРЕЗАГРУЗКИ ВЕНДЫ, если на COM-порту есть устройство, система бибикнет, что увидела его,
если выключить устройство - система бибикнет, что почуяла отключение и т.п.

Самый простой способ проверить фичу, если нет двух компьютеров, - воткнуть в COM-порт старую
мышь с интерфейсом RS-232. 8) Я для проверки так и сделал... :lol:
Сначала огорчился - ничего не произошло, но после ПЕРЕЗАГРУЗКИ ВЕНДЫ, если двигать мышь и жать
кнопки - много неожиданного может произойти! Венда может захотеть удалить некоторые иконки
с рабочего стола... :ewink: Так что будьте осторожны! :mrgreen:

Кстати: если фича отключена, Венда-98 слушается сразу двух мышей и по RS-232 и по PS/2.
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Подключение PS/2 клавиатуры через COM порт

Post by Lavr »

Ниже в архиве таблица, каким шестнадцатеричным кодам соответствуют действия при включении
фичи "Альтернативные устройства ввода".

Для определённости активным приложением Венды в этот момент был Блокнот (aka Notepad).
Send_byte.zip

P.S. А про устройство на основе вот этой моей схемы я как-нибуть в другой раз с фотками расскажу... :wink:
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Подключение PS/2 клавиатуры через COM порт

Post by Lavr »

Lavr wrote: 18 Jul 2019 11:41Но возникает ряд вопросов: как, примеру, ASCII Serial KeyBoard передаст код от клавиши [PrntScreen]?
Или тот же [Ctrl]+[Alt]+[Del] как ASCII Serial KeyBoard сможет передать?
Вероятно, следует всё же различать ASCII Serial KeyBoard и просто Serial KeyBoard.
ASCII Serial KeyBoard должна по идее передавать ASCII-символы (возможно, ESC-последовательности,
и ничего иного, на то она и ASCII !

А вот Serial KeyBoard - передаёт всё то, что и обычная клавиатура, но по интерфейсу RS-232.

Тут вот попалось мне, как один пользователь подключал свою брендовую Serial KeyBoard к обычному
РС под Линукс: https://www.linux.org.ru/forum/linux-ha ... id=8747902
Tayler wrote:Есть экзотическая клавиатура с RS-232 портом.
Нужно подключить ее к обычной PC-шке с (современным, для примера Ubuntu) Linux на борту.
У производителя в документации написано, что клавиатура передает на порт стандартные AT SCAN коды.
Клавиатура 100% рабочая, т.к. с железкой, с которой она совместима, она нормально работает.

Пробовал с помощью minicom читать с RS-232 порта (9600 бод, нечетность, стоп и т.п. выставлял согласно документации производителя). В момент нажатий клавиш читаются некие символы (понятно, что не буквы 1 в 1, она же SCAN-коды выдает, а не plain ascii).
Но т.к. что-то выдает, то я заключаю, что клавиатура действительно (на железячном уровне, на уровне сигналов) имеет стандартный RS-232.
В итоге он справился с бубном и плясками...

Я хотел документацию посмотреть на подобную клавиатуру, но не случилось: ссылки древние протухли... :-?
iLavr
imsushka
Maniac
Posts: 237
Joined: 01 Jan 2022 04:34
Location: USSR, Tashkent

Re: Подключение PS/2 клавиатуры через COM порт

Post by imsushka »

https://aliexpress.ru/item/1005004921267843.html?spm=a2g2w.orderdetail.0.0.4c594aa6dEiLIt&sku_id=12000031026003988

есть у меня токое
когда лень делать PS/2 протокол на плисине или на z80
Mondx
Doomed
Posts: 518
Joined: 10 Aug 2022 07:27
Location: Crimea

Re: Подключение PS/2 клавиатуры через COM порт

Post by Mondx »

imsushka wrote: 06 Mar 2025 07:43 есть у меня токое
Я гляжу, release нет? И в параллельном код только при нажатии? И со светодиодами не поиграться?
Всегда!
imsushka
Maniac
Posts: 237
Joined: 01 Jan 2022 04:34
Location: USSR, Tashkent

Re: Подключение PS/2 клавиатуры через COM порт

Post by imsushka »

Mondx wrote: 06 Mar 2025 10:57
imsushka wrote: 06 Mar 2025 07:43 есть у меня токое
Я гляжу, release нет? И в параллельном код только при нажатии? И со светодиодами не поиграться?
честно говоря не помню
мне нужна была просто клава
Mondx
Doomed
Posts: 518
Joined: 10 Aug 2022 07:27
Location: Crimea

Re: Подключение PS/2 клавиатуры через COM порт

Post by Mondx »

imsushka wrote: 06 Mar 2025 11:16 честно говоря не помню
мне нужна была просто клава
PS/2 -> куда? через какой интерфейс?
imsushka
Maniac
Posts: 237
Joined: 01 Jan 2022 04:34
Location: USSR, Tashkent

Re: Подключение PS/2 клавиатуры через COM порт

Post by imsushka »

Mondx wrote: 06 Mar 2025 11:30
imsushka wrote: 06 Mar 2025 11:16 честно говоря не помню
мне нужна была просто клава
PS/2 -> куда? через какой интерфейс?
на сериале