Ricostruzione della Macchina Ridotta del 1957

Il simulatore modella la prima CEP, o Macchina Ridotta, nella sua versione finale, documentata dal manuale utente redatto a marzo 1958 e utilizzata nei mesi successivi per servizi di calcolo scientifico a favore di diversi altri progetti di ricerca, pisani e non. Il modello della macchina è stato ricostruito al dettaglio degli schemi logici della macchina, utilizzando come fonti i disegni originali. In alcuni casi, come per la simulazione dei triodi a catodo freddo Z50T usati sul pannello di controllo, il dettaglio arriva al funzionamento dei componenti elettronici. Per ulteriori notizie sulla MR si rimanda alla pagina della bibliografia di progetto e all'archivio storico.

Il simulatore è in corso di sviluppo. La versione attuale riproduce 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.
La simulazione è in tempo reale con un errore medio intorno al centesimo di secondo su hardware ordinario.

È attualmente oggetto di ricerche e di sperimentazione la modellazione fedele del comportamento delle periferiche della 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 in corso riguardano le funzionalità accessorie per avere più semplicità d'uso e più controllo della simulazione, quali l'ispezione di registri e memoria e la visualizzazione in decimale dello stato del quadro di controllo manuale.

Il simulatore della MR57 è un one-man-project di Giovanni A. Cignoni: lo sviluppo dipende dal tempo e dalle risorse disponibili.
Il lavoro è stato parzialmente supportato nell'ambito di alcuni progetti del Dipartimento di Informatica cofinanziati dalla Fondazione Pisa. Per avere un'idea dell'impegno e del valore del simulatore è periodicamente calcolata una misura del codice (aggiornamento alla versione corrente). La misura è realizzata con SLOCCount utilizzando il modello di base COCOMO e i costi di mercato di default (USA 2004). Il risultato di oltre 230mila dollari US (del 2004) è una stima, ma è un buon riferimento specialmente tenendo conto che riguarda solo lo sviluppo del codice, non include le attività di ricerca storica e tecnologica, né altre fonti di impegno come il disegno delle bitmap necessarie per l'interfaccia grafica.

Il simulatore sarà rilasciato con licenza GPL 3. In attesa di una versione del sorgente stabile e distribuibile, è rilasciato in forma binaria
per Linux. In dipendenza della distribuzione/versione di Linux, può richiedere versioni aggiornate delle librerie C/C++, WxWidgets, OpenAL Utility Toolkit.

Software e documentazione

Per mostrare il funzionamento e la programmazione della MR57 durante i laboratori didattici al Museo degli Strumenti per il Calcolo, è stato sviluppato un esempio breve e semplice, ma curioso: un gioco che rende la MR in una macchina mangiasoldi del tempo.
Cioè una slot-machine basata su 3 rulli con 8 simboli ciascuno.
I simboli sono, ovviamente, codificati in binario; i rulli sono rappresentati dai 3 bit centrali dei 3 gruppi di 5 in cui è organizzato l'indicatore della memoria. Dopo aver caricato il programma, i rulli si fanno girare con il pulsante di avviamento e si bloccano con la chiave di arresto condizionato più a destra. Buona fortuna!

Il programma si basa su un generatore di numeri pseudocasuali congruenziale: un algoritmo che ai tempi della MR ancora non si usava, cioè la MR gira un programma che appartiene al suo futuro: un paradosso temporale per riflettere sulla tesi di Church-Turing.
Inoltre, l'algoritmo richiede una moltiplicazione che però non c'è fra le istruzioni di macchina della MR: con un po' di aritmetica si può aggirare la mancanza. Infine, l'esempio usa i breakpoint hardware per ottenere il massimo dell'interattività possibile per la MR.

Caratteri

La ricerca per simulare fedelmente tutti i dettagli delle periferiche della MR è ancora in corso. Fra le cose fatte, è disponibile
la replica digitale del carattere delle telescriventi Olivetti T2 usate dalla MR. Il carattere Truetype è 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, secondo l'alfabeto standard CCITT ITA2 adottato dalle telescriventi a partire dagli anni '30, include i 26 glifi letters (le maiuscole dell'alfabeto internazionale, nel TTF corrispondenti alle minuscole) e i 26 glifi figures (cifre, punteggiatura e simboli, nel TTF corrispondenti alle maiuscole, cioè alle letters shiftate). Per comodità i glifi figures sono replicati anche nei codici ASCII corrispondenti e sono realizzati anche alcuni dei glifi ASCII non inclusi nell'insieme ITA2.