Gastone Garziera spiega il funzionamento della Programma 101

Gastone Garziera è nato a Vicenza nel 1942. E’ ingegnere e informatico italiano. Insieme agli ingegneri Pier Giorgio Perotto e Giovanni De Sandre ha realizzato nel 1964 la “Programma 101” o “P101” dell’Olivetti, il primo personal computer della storia, cioè il primo calcolatore commerciale ad essere digitale, programmabile, piccolo ed economico.

I registri della P101 contengono fino a 22 cifre[40] (con segno e virgola) oppure 24 istruzioni composte ognuna da un carattere e un simbolo. Il linguaggio di programmazione è alfanumerico e simbolico, analogo a quello dell’Assembler, ma più semplice, simile al “linguaggio macchina” dei grandi calcolatori (come ad esempio la serie ELEA, anni ’50 inizio anni ’60) ma leggermente più evoluto anche se con meno istruzioni. Ad esempio, per effettuare un salto in memoria nella P101 non si doveva più indicare un indirizzo preciso ma solo un riferimento; la P101 gestiva automaticamente la virgola e disponeva di funzioni matematiche complete. Il linguaggio di programmazione era progettato per essere semplice all’utente inesperto così da superare lo scoglio di una visione contemporanea dell’ epoca di un computer destinato solo a tecnici specializzati.

Nella P101 il codice di un programma poteva usare fino 120 istruzioni (memorizzabile su uno dei due lati della cartolina magnetica), ogni istruzioni occupava “1 Byte”. Nella versione base dell’Elea 9003 la memoria totale era di 20 KB, un’istruzione occupava 8 caratteri (di 6 bit) quindi 120 istruzioni utilizzavano quasi l’equivalente di 1 KB. Nella P101 era possibile anche usare programmi composti da oltre 120 istruzioni usando più cartoline magnetiche e salvando i dati temporanei nei registri di memoria. Nella P101 era possibile creare dei sotto programmi (o subroutine) caricabili tramite cartolina magnetica dopo aver caricato il programma principale, per modificarlo o inserire altri dati.

Nella Programma 101 si operava solo su dati numerici a causa della memoria limitata, ma la programmazione e la stampa includeva anche caratteri alfanumerici. L’evoluzione di altre simbologie e modalità grafiche si è sviluppata di pari passo con l’aumento di potenza di calcolo e di memoria. A titolo di esempio possiamo ricordare l’ENIAC (quarto computer elettronico digitale della storia) che utilizzava il sistema numerico decimale e la sua memoria poteva contenere solo 20 numeri di 10 cifre.

Limitatamente alla memoria e alle schede magnetiche si poteva eseguire ricerche e ordinamenti, il suo utilizzo spaziava dall’archiviazione dati e contabilità alle simulazioni scientifiche e finanziare. I registri per memorizzare i dati sulla cartolina erano 3 (D, E, F) essi erano divisibili per due in maniera automatica raddoppiando i registri di memoria, per numeri di poche cifre era possibile usare altre tecniche per inserirli tutti in un unico registro. Questo vale anche per i registri B e C.

Le istruzioni predeterminate erano quelle riguardanti:

  • le quattro operazioni matematiche fondamentali (somma, sottrazione, moltiplicazione e divisione);
  • la radice quadrata;
  • operazioni con i registri: azzeramento, spostamento di dati tra di essi, lettura dall’utente;
  • definizioni di etichette di riga, salti condizionati e incondizionati;
  • stampa del valore di un registro.

La memoria era organizzata in 10 registri, 3 dei quali di calcolo (A, M, R), 2 di memoria (B, C) e ulteriori 3 di memoria dati e/o memoria di programma (D, E, F, ripartibili a seconda dell’esigenza). Gli ultimi 2 registri erano riservati alla memorizzazione del programma (non sono definiti da lettere). Uno dei registri di calcolo, identificato dalla lettera “M”, era destinato allo scambio di informazioni con la memoria ed immagazzinava anche i dati ricevuti dalla tastiera.

La stampa avveniva su un nastro di carta e i programmi potevano essere registrati su schede delle dimensioni approssimative di 10 centimetri di larghezza per 20 di altezza che recavano due piste magnetiche. Tali piste erano leggibili una alla volta, inserendo la scheda nell’apposito lettore prima in un senso, poi nell’altro.

La memoria di lavoro era a linea di ritardo magnetostrittiva, della capacità di meno di un quarto di kilobyte; l’elettronica era realizzata in componentistica discreta (transistor inpackage TO-18 e diodi montati su basette in bachelite). La macchina non era dotata di microprocessore, come d’altronde non lo era nessun computer realizzato fino a quel tempo.