“Fly me to the moon”: gli emulatori dei computer di bordo della missione Apollo 11 (ed il codice sorgente!)

Apollo Guidance Computer

E’ ormai risaputo e quasi un luogo comune che i computer che hanno portato i primi uomini sulla luna fossero potenti “quanto un Commodore 64”.
Si tratta di un luogo comune piuttosto banale. E sbagliato.

Nel 2009, per festeggiare il trentennio dello sbarco sulla luna della missione Apollo 11, i ragazzi di Google Code hanno rilasciato una serie di emulatori (disponibili per una vasta base di piattaforme) sia del computer del modulo di comando, sia del LEM: un’immagine abbastanza famigliare per tutti coloro che abbiano visto il film Apollo 13 (in cui vengono riproposte diverse scene di ‘programmazione’).
E’ stato rilasciato anche il codice sorgente dei computer di bordo (partendo dalla scansione dei listati): un’occasione per leggere e studiare la programmazione di più di 40 anni fa e scoprire alcune particolarità.

Una speranza per una parte di codice temporaneo!

Apollo Guidance Computer Codice Sorgente 2

… e scopriamo persino cabalismo, numerologia e superstizione nel codice!

Apollo Guidance Computer Codice Sorgente

L’emulatore dell’Apollo Guidance Computer è visibile in questo video (mentre gira su un ‘ormai vecchio’ Palm Centro):

Insieme all’AGC, esisteva anche l’AGS, Abort Guidance System: ovviamente, dato il nome, un computer di riserva nel caso e nello scenario peggiore di un ‘abort mission’.

Ma come era costruito, in realtà, l’AGC?

L’Apollo Guidance Computer (AGC) era il computer di bordo del Programma Apollo della Nasa utilizzato, oltre che nel Modulo di Comando, anche all’interno del LEM, Lunar Excursion Module, per le manovre di atterraggio e di decollo dal suolo Lunare.

L’AGC fu progettato al MIT Instrumentation Laboratory sotto la guida di Charles Stark Draper, con progetto dell’hardware condotto da Eldon C. Hall. I primi sviluppi architetturali furono di J.H. Laning Jr., Albert Hopkins, Ramon Alonso e Hugh Blair-Smith. L’hardware per il volo fu costruito dalla Raytheon.

Era basato su una unità di calcolo da 2 MHz di velocità di clock, di 2 Kwords di memoria RAM e di una trentina abbondante di Kwords di memoria ROM. Quest’ultima conteneva, principalmente, dati e programmi.

Fin qui, le analogie con il già citato Commodore 64, ma c’è qualcosa di più…

L’AGC era multitasking, essendo in grado di eseguire fino a 8 programmi contemporaneamente.

Fu il primo computer ad utilizzare circuiti integrati: nella sua prima versione utilizzava 4.100 chip di porte logiche NOR. Nella seconda versione, che utilizzava due porte logiche NOR all’interno di ogni integrato, il numero complessivo di chip fu ridotto a 2.800.

Tutti questi integrati erano tra loro interconnessi con un sistema wire-wrapping, ovvero a filo, che garantiva un collegamento migliore rispetto alle saldature su circuito stampato.

Le RAM e le ROM dell’AGC non erano basate su circuiti integrati, ma erano memorie a nuclei di ferrite: per ogni bit di informazione era necessario magnetizzare (o smagnetizzare) un piccolo anello calamitato, posto all’intersezione delle righe e delle colonne della matrice stessa di memoria; le righe e le colonne della matrice, erano costituite da sottilissimi cavi elettrici per la memorizzazione / cancellazione dell’informazione, che consentivano inoltre di leggere l’informazione memorizzata.


Un raro documento degli anni ’60 illustra la progettazione e l’utilizzo dell’AGC.

Gli emulatori, ripropongono quella che, in termini più moderni noi chiameremmo interfaccia utente: il display-keyboard (DSKY), già riproposto fedelmente nel film Apollo 13.

Il DSKY (pronuncia “dis-chi”, per display-keyboard) era l’unità di interfacciamento del complesso sistema informatico con l’equipaggio umano di bordo: si trattava di una semplice tastiera numerica simile a quella delle calcolatrici, più alcune spie e un display essenziale, a segmenti elettroluminescenti verdi, in grado di mostrare numeri positivi o negativi.

Insomma, un piccolo passo per un computer, un grande passo per il codice sorgente!

Vi consigliamo un film, doveroso, ed un paio di libri di grande spessore:
Apollo 13
The Apollo Guidance Computer: Architecture and Operation (Springer Praxis Books / Space Exploration)
Journey to the Moon: The History of the Apollo Guidance Computer.

Fonti:
Wikipedia
il codice sorgente dell’AGC
il progetto Virtual AGC

Share

Un pensiero riguardo ““Fly me to the moon”: gli emulatori dei computer di bordo della missione Apollo 11 (ed il codice sorgente!)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *