Ricostruzione della Macchina Ridotta del 1957

Simulatore della MR57

Il simulatore modella la MR57 nella sua versione finale, documentata dal manuale utente redatto a marzo 1958 [NI38] e utilizzata nei mesi successivi per servizi di calcolo scientifico a favore di diversi altri progetti di ricerca [NI59, NI65].
Il simulatore è in corso di sviluppo. In particolare, è attualmente oggetto di ricerche e di sperimentazione la modellazione fedele del comportamento delle periferiche connesse alla MR57: una telescrivente Olivetti T2CN in ingresso/uscita, una telescrivente Olivetti T2ZN con perforatore di nastro in ingresso/uscita, un lettore di nastro perforato Olivetti T2TA10, un lettore fotoelettrico di nastro perforato Ferranti TRMk2. L'obiettivo è ricreare fedelmente il contesto d'uso della MR incluse le situazioni limite quali, per esempio, la perdita di caratteri durante il ritorno carrello delle telescriventi.

Altre attività di sviluppo tuttora in corso riguardano le funzionalità accessorie per offrire all'utente maggior controllo e semplicità d'uso, quali l'ispezione di registri e memoria e la visualizzazione in decimale dello stato del quadro di controllo manuale.

La versione attualmente disponibile riproduce accuratamente l'uso della MR57 attraverso il quadro di controllo manuale. Permette inoltre il caricamento di immagini della memoria, anche parziali, da file di testo in formato leggibile.

Il simulatore della MR57 è un one-man-project: lo sviluppo dipende dal tempo e dalle risorse disponibili. Per avere una stima della dimensione del lavoro è periodicamente calcolata una misura del codice (ultimo aggiornamento: 29 aprile 2013). La misura è realizzata con SLOCCount utilizzando il modello di base COCOMO e i costi di mercato di default (USA 2004), il risultato non è precisissimo ma rende l'idea, specialmente tenendo conto che riguarda solo lo sviluppo del codice, non include la ricerca storica, né i costi dei contenuti grafici. Ah, la virgola separa le migliaia :)

Il simulatore sarà rilasciato con licenza GPL 3. In attesa di una versione presentabile, è distribuito in forma binaria per Linux/i386 (compilato e provato su Ubuntu 11.04). In dipendenza della distribuzione/versione di Linux, può richiedere versioni aggiornate delle librerie C/C++ e WxWidgets.

Software

Solo un esempio, per ora, ma abbastanza curioso. È un generatore di numeri pseudocasuali che usa un metodo congruenziale: un algoritmo ai tempi della MR ancora non usato, ovvero un paradosso temporale per riflettere sulla tesi di Church-Turing.
L'algoritmo richiede una moltiplicazione, che però non c'e' fra le istruzioni di macchina supportate: il codice aggira la mancanza con un po' di aritmetica. Infine, l'esempio mostra l'uso dei breakpoint hardware per generare un numero alla volta e usare, al massimo dell'interattività possibile, la MR come una slot-machine.

Documentazione

Non molta, essenziale, ma sufficiente.

Caratteri

Ancora la simulazione delle periferiche della MR non è completa: la ricerca riguardo i dettagli del loro funzionamento è ancora in corso. Fra le cose fatte (o quasi) è disponibile la replica digitale del carattere usato dalle telescriventi Olivetti T2 connesse alla MR. Il carattere Truetype è stato ricavato dalla documentazione originale Olivetti e dall'analisi diretta dei martelletti degli esemplari di telescriventi conservate al Museo degli Strumenti per il Calcolo.

L'insieme di caratteri, conformemente all'alfabeto standard CCITT ITA2 adottato da tutte le telescriventi a partire dagli anni '30, include i 26 caratteri alfabetici maiuscoli (letters, nel TTF corrispondenti alle minuscole) e i 26 caratteri numerici, di punteggiatura e speciali (figures, nel TTF corrispondenti alle maiuscole, cioè alle letters shiftate). Per comodità i caratteri del set delle figures sono replicati anche nei codici asci corrispondenti e sono realizzati anche alcuni dei caratteri ASCII non inclusi nell'insieme ITA2.