banner
Centro notizie
Competenza impeccabile nel settore.

Collegamento di una tastiera a un PC vintage

Jun 03, 2023

Non siamo sicuri che esista una singola caratteristica che qualifichi qualcuno come hacker. Dopotutto, siamo un gruppo piuttosto eclettico, con abilità che spaziano su tutta la mappa e ciò che una persona ritiene banale, altri lo considererebbero magia nera. Ma di una cosa siamo sicuri: se ti ritrovi a leggere il codice POST originale della scheda madre PC-XT solo per far funzionare una tastiera, sei praticamente il nostro tipo di persone.

Questa è stata la posizione in cui [Anders Nielsen] si è trovato mentre il lavoro procede sul suo progetto "PC-XT from Scratch", che cerca di costruire un IBM modello 5160 vintage della metà degli anni '80 funzionante utilizzando il maggior numero possibile di parti adatte all'epoca. Il primo capitolo della serie prevedeva il delicato processo di sollevamento della scheda madre, per evitare che il fumo magico venisse rilasciato. Dopo aver visto un po' di vita nella vecchia scheda, [Anders] aveva bisogno di un po' di IO, in particolare di video e tastiera. Il lato video dell'equazione era relativamente banale, con una scheda VGA dei primi anni '90 di eBay: non esattamente corretta per il periodo, ma abbastanza buona per ottenere qualcosa da visualizzare.

La tastiera era tutta un'altra cosa. Non è un compito arduo trovare una tastiera che comunichi con un PC-AT, ma il PC-XT aveva un protocollo completamente diverso, per non parlare del grosso connettore DIN a 5 pin. Come per molte altre cose, la soluzione prevedeva la creazione di un adattatore da un Arduino, ma il processo non era esattamente a basso attrito. Innanzitutto c'era la questione della gestione delle uscite open-collector sulla tastiera, che richiedevano modifiche al codice. Successivamente, [Anders] ha aperto l'oscilloscopio per controllare le forme d'onda e ha trovato una strana onda quadra da 9 Hz sopra il segnale del clock della tastiera. Ciò si è rivelato un segno che la tastiera era bloccata in una modalità di test di produzione, secondo una lettura del codice sorgente POST (power on self-test). Una piccola modifica al codice di Arduino ha fatto funzionare tutto.

Dobbiamo dire che adoriamo questo tuffo profondo nelle viscere di un pezzo di storia del computer. [Anders] ha anticipato il passo successivo, che utilizzerà un socket ROM vuoto su una vecchia scheda di rete per caricare del codice assembly sull'XT. Non vediamo l'ora che arrivi questo exploit.