Oct 19, 2023
Construcción de un controlador de terminal 3270
Nos gusta hablar sobre cómo la mayoría de nuestras computadoras hoy en día habrían sido mainframes.
Nos gusta hablar de cómo la mayoría de nuestras computadoras hoy habrían sido mainframes hace apenas 40 o 50 años. Debido a eso, muchas personas que quieren ejecutar mainframes de IBM, como IBM 360 o 370, usan el emulador Hercules para ejecutar el gran hierro en sus PC. Sin embargo, las computadoras centrales de IBM usaban un estilo extraño de terminal y emularlo en una PC no siempre es tan satisfactorio. Al menos, eso es lo que pensó [lowobservable], por lo que decidió hacer que una terminal 3270 funcionara con Hercules.
En los viejos tiempos de la informática, había dos estilos principales de terminales. Algunas empresas, por ejemplo DEC, utilizaban esencialmente terminales como un "teletipo de cristal". Es decir, la pantalla era un análogo de un rollo de papel, más o menos, y el teclado enviaba inmediatamente las cosas al sistema remoto. Sin embargo, empresas como IBM y HP favorecieron un enfoque diferente. Sus terminales se ocupaban de pantallas repletas de datos. La terminal era lo suficientemente inteligente como para permitirle completar formularios, editar texto en la pantalla y luego enviar toda la pantalla de un solo trago. Ambos sistemas tenían ventajas y desventajas, pero, como era de esperar, los terminales orientados a la pantalla eran más complejos.
El proyecto resultó ser mucho trabajo de detective. Muchos de estos protocolos antiguos estaban mal documentados o incluso eran secretos. Sin embargo, algunas hojas de datos de chips de interfaz antiguos tenían algunos detalles y eBay incluso tenía los chips en cuestión. Habíamos olvidado que el 3270 usaba coaxial de 93 ohmios, pero nunca supimos por qué eligieron ese valor en particular.
Resulta que había dos estilos diferentes de terminales. Uno requería un controlador muy sofisticado que hiciera la mayor parte del trabajo. El otro hizo la mayor parte del trabajo localmente. De cualquier manera, el mainframe solo se ocupaba de los datos procesados. Afortunadamente, [lowobservable] está documentando lo que ha aprendido en GitHub.
Al comienzo del proyecto, [lowobservable] recogió una unidad terminal excedente. Sin embargo, tenía una imagen de disco dañada, por lo que no funcionaría. Sin embargo, tenía un disco de diagnóstico utilizable que podía comunicarse con la terminal. Esto permitió un análisis del tráfico que ayudó a responder algunas preguntas.
El resultado final es un controlador que no está completo (todavía), pero funciona. También hay planes para una versión de FPGA que no dependa de chips obsoletos.
Por supuesto, desearíamos tener un IBM 360 real. Sin embargo, podría conformarse con un AS400.