Uno dei grandi vantaggi della tecnologia attuale è la possibilità di riprodurre il funzionamento di vecchi sistemi con un alto livello di precisione. Due esempi classici e ricorrenti sono la macchina Enigma e il modulo di navigazione Apollo, ma oggi menzioneremo un caso ancora più estremo. David Given, meglio conosciuto come Hjalfi su YouTube e Twitter, ha deciso di creare il simulatore di un computer degli anni '60 utilizzato in diversi progetti spaziali, e la cosa più impressionante è che ha condiviso il suo lavoro in un video di otto ore e mezza…
Simulatore OBP, un computer degli anni '60
L'OBP, acronimo di On-Board Processor, è stato progettato originariamente nel 1968 e utilizzato in diversi progetti spaziali. Uno dei più importanti è stato il telescopio OAO-3 Copernicus, il più riuscito dell'intera serie OAO (Orbiting Astronomical Observatory), con una missione che si è estesa da agosto 1972 a febbraio 1981.
David Given, anche conosciuto come Hjalfi, ha condiviso dettagli tecnici molto interessanti sull'OBP nella sua pagina ufficiale: 18 bit, architettura Von Neumann, dati e codice che condividono lo stesso spazio di indirizzi, protezione della memoria, DMA… in sintesi, un sistema molto gradevole con cui lavorare. Ora, con una frequenza di 250 KHz, l'OBP ha serie limitazioni per quanto riguarda la velocità, ma David non si è accontentato di un'analisi superficiale e ha deciso di creare un simulatore… dall'inizio alla fine.
I tuoi occhi non ti ingannano: il video dura otto ore e mezza, e corrispondono a tre giorni di lavoro. L'introduzione dura cinque minuti, ma l'assemblatore copre più di un'ora, e il resto è incentrato sul simulatore. Uno dei dettagli più interessanti dell'assemblatore è che secondo la documentazione originale, doveva essere programmato usando linguaggio naturale. In realtà, l'assemblatore non «capisce» le parole per così dire, ma certe frasi chiave sono associate a istruzioni specifiche.
Questo dimostra che programmare in linguaggio naturale è qualcosa che abbiamo esplorato per decenni, e che non ha mai finito di guadagnare trazione. David spiega che la lingua inglese è fondamentalmente ambigua e dipendente dal contesto, mentre i linguaggi di programmazione sono l'esatto opposto. Forse il linguaggio è facile da leggere e interpretare per noi, ma anche facile che l'assemblatore ci vada a testa in giù. Di fronte alla possibilità di errori, è più comodo per il programmatore eliminare qualsiasi fonte di ambiguità e scrivere le istruzioni direttamente.
Vuoi saperne di più? Ecco il link qui sotto!
Sito ufficiale: Clicca qui
Fonte: Hackaday