РЕДАКТИРОВАТЬ: Изменен основной пример с Zork Dungeon на оболочку ОС по умолчанию.
У меня есть консольное приложение, работающее на современной машине. У меня также есть Apple //e с Super Serial Card, которая позволяет ему функционировать как немой терминал через последовательное COM-соединение (подробности бесполезны за этим). Я могу прекрасно подключить эти два устройства, используя последовательный порт USB.
Когда на современном компьютере загружен Linux, я могу запустить программу, настроив параметры COM и предоставив себе права на группу, к которой принадлежит файл устройства.
$ bash </dev/ttyUSB1 >/dev/ttyUSB1 2>/dev/ttyUSB1
и получить сессию bash на Apple - машина с Linux работает как сервер и запускает программу, но ввод и вывод идут в Apple, которая является простым клиентом. Это также работает с более специализированными программами, такими как dungeon
(Zork).
Как мне сделать то же самое в Windows? Очевидно, что я не могу точно воспроизвести вышеупомянутое решение, поскольку Windows позволяет мне открывать COM
порт только в одном месте одновременно - запускать аналог Windows для указанной выше команды:
C:\> cmd <COM4 >COM4 2>COM4
выдает ошибку «Отказано в доступе».
Я могу отправить данные на COM-порт:
C:\> echo "Hello" >COM4
и читать необработанный ввод (включая управляющие и escape-символы!) из COM порта:
C:\> type <COM4
но я не могу делать оба одновременно, в одном и том же или в отдельных процессах.
Я пытался использовать PuTTY и RealTerm, но оба из них позволяют мне управлять Apple только с компьютера с Windows, что доказывает, что соединение работает, но в точности противоположно тому, что я хочу. Как разместить консольное приложение Windows для доступа с подключенного терминала?