Oct 19, 2023
Costruire un controller terminale 3270
We like to talk about how most of our computers today would have been mainframes
Ci piace parlare di come la maggior parte dei nostri computer oggi sarebbero stati mainframe appena 40 o 50 anni fa. Per questo motivo, molte persone che desiderano eseguire mainframe IBM come IBM 360 o 370 utilizzano l'emulatore Hercules per eseguire il big iron sui propri PC. Tuttavia, i computer IBM mainframe utilizzavano uno stile di terminale strano e emularlo su un PC non è sempre così soddisfacente. Almeno, questo è quello che [lowobservable] pensava, così ha deciso di far funzionare un terminale 3270 con Hercules.
Ai vecchi tempi dell’informatica, c’erano due stili principali di terminali. Alcune aziende, ad esempio la DEC, utilizzavano essenzialmente i terminali come "telescrivente di vetro". Cioè, lo schermo era più o meno l'analogo di un rotolo di carta e la tastiera inviava immediatamente le cose al sistema remoto. Tuttavia, aziende come IBM e HP hanno preferito un approccio diverso. I loro terminali si occupavano di schermi pieni di dati. Il terminale era abbastanza intelligente da consentirti di compilare moduli, modificare il testo sullo schermo e quindi inviare l'intero schermo in un solo sorso. Entrambi i sistemi avevano pro e contro, ma, come ci si potrebbe aspettare, i terminali orientati allo schermo erano più complessi.
Il progetto si è rivelato un sacco di lavoro investigativo. Molti di questi vecchi protocolli erano scarsamente documentati o addirittura segreti. Tuttavia, alcune schede tecniche di vecchi chip di interfaccia contenevano alcuni dettagli e eBay aveva persino i chip in questione. Avevamo dimenticato che il 3270 utilizzava un cavo coassiale da 93 ohm, ma non abbiamo mai saputo perché avessero scelto quel particolare valore.
Si scopre che c'erano due diversi stili di terminali. Uno richiedeva un controller molto sofisticato che svolgesse la maggior parte del lavoro. L'altro ha svolto la maggior parte del lavoro a livello locale. In ogni caso, il mainframe si occupava solo dei dati elaborati. Fortunatamente, [lowobservable] sta documentando ciò che ha imparato su GitHub.
All'inizio del progetto, [lowobservable] ha raccolto un'unità terminale in eccedenza. Tuttavia, aveva un'immagine del disco danneggiata, quindi non funzionava. Tuttavia, aveva un disco diagnostico utilizzabile che poteva comunicare con il terminale. Ciò ha consentito alcune analisi del traffico che hanno aiutato a rispondere ad alcune domande.
Il risultato finale è un controller che non è completo (ancora) ma è realizzabile. Ci sono piani per una versione FPGA che non si basi su chip obsoleti.
Naturalmente, vorremmo avere un vero IBM 360. Potresti accontentarti di un AS400, però.