Oct 19, 2023
Создание контроллера терминала 3270
Нам нравится говорить о том, что большинство наших компьютеров сегодня были бы мэйнфреймами.
Нам нравится говорить о том, что большинство наших сегодняшних компьютеров были бы мэйнфреймами всего лишь 40 или 50 лет назад. По этой причине многие люди, желающие использовать мэйнфреймы IBM, такие как IBM 360 или 370, используют эмулятор Hercules для запуска большого железа на своих ПК. Однако на мейнфреймах IBM использовался терминал странного типа, и его эмуляция на ПК не всегда приносит такое удовлетворение. По крайней мере, так думал [lowobservable], поэтому он решил заставить терминал 3270 работать с Геркулесом.
В старые добрые времена компьютеров существовало два основных типа терминалов. Некоторые компании, например DEC, по сути использовали терминалы как «стеклянный телетайп». То есть экран был аналогом рулона бумаги — более или менее — а клавиатура сразу отправляла вещи в удаленную систему. Однако такие компании, как IBM и HP, предпочли другой подход. Их терминалы работали с экранами, заполненными данными. Терминал был достаточно умен, чтобы позволить вам заполнять формы, редактировать текст на экране, а затем отправлять весь экран одним махом. Обе системы имели свои плюсы и минусы, но, как и следовало ожидать, экранные терминалы были более сложными.
Проект оказался насыщенной детективной работой. Многие из этих старых протоколов были плохо задокументированы или даже секретны. Однако в некоторых таблицах данных для старых интерфейсных чипов были некоторые подробности, и на eBay даже были упомянутые чипы. Мы забыли, что в 3270 использовался коаксиальный кабель сопротивлением 93 Ом, но мы так и не узнали, почему они выбрали именно это значение.
Оказывается, существовало два разных стиля терминалов. Требовался очень сложный контроллер, который выполнял большую часть работы. Другой выполнял большую часть работы на месте. В любом случае мэйнфрейм имел дело только с обработанными данными. К счастью, [lowobservable] документирует то, что он узнал, на GitHub.
В начале проекта [lowobservable] подобрал излишек терминала. Однако у него был поврежденный образ диска, поэтому он не работал. Однако у него был пригодный для использования диагностический диск, который мог взаимодействовать с терминалом. Это позволило провести некоторый анализ трафика и ответить на некоторые вопросы.
Конечным результатом является контроллер, который не завершен (пока), но работоспособен. Есть планы по созданию версии FPGA, которая не будет опираться на устаревшие чипы.
Конечно, нам хотелось бы иметь настоящий IBM 360. Хотя вы могли бы согласиться и на AS400.