Per 38 anni

#1
L'analisi (e ne conservo ancora qualcuna) era un passaggio obbligato. Veniva scritta e disegnata con appositi normografi su moduli dedicati e poi logicamente testata, "step by step", con il committente per controllare se tutto quanto richiesto era stato previsto correttamente.

#2
La scrittura del programma avveniva con il lapis sempre su moduli prestampati con 20 righe (istruzioni) a pagina. Il tutto andava poi consegnato alle "perforatrici", ovvero signorine in camice bianco che con macchine rumorose provvedevano alla creazione delle schede perforate (1 scheda per ogni riga). Spesso, in funzione della delicatezza e urgenza del prodotto, avveniva anche il passaggio della verifica. Praticamente, una signorina diversa dalla prima, ripassava quanto fatto con una macchina che simulava la perforazione mentre, al contrario, verificava che quanto riperforato fosse esattamente uguale a quanto presente sulla scheda! La numerazione automatica delle schede era fondamentale. Generalmente si usava una numerazione di 100 in 100 affinchč fosse poi possibile inserire eventuali dimenticanze. Ogni tanto, ma pił spesso di quanto si possa credere, lo scatolone contenente un programma che spesso era composto da oltre 1000 schede, si rovesciava tutto per terra! Nessun timore. Veniva messa in funzione la "sortatrice" ovvero una macchinetta che leggendo le schede una alla volta, in molti passaggi, proprio per quel numero progressivo perforato nelle ultime 6 colonne, ricostituiva la sequenza originale.

Foto
Una pagina di un programma Assembler

#3
Lo scatolone contenente le schede veniva adesso consegnato in sala macchine per la compilazione del programma. Ovviamente c'era da riempire il solito modulo obbligatorio nel quale si doveva scrivere una serie infinita di informazioni per l'operatore. In rigoroso camice bianco, pur non conoscendo assolutamente niente di programmazione, era il vero "Deus ex machina" della sala e, prima di congedarci, leggeva attentamente il modulo consegnatogli. Quanta memoria era richiesta, quanto spazio disco, quali periferiche eccetera. L'ultima cosa che diceva era "Ti chiamo appena finito..."

#4
"Finito, puoi venire a prendere il tuo job". Essendo impossibile che tutto fosse andato bene, insieme allo scatolone, si ritirava la lista degli errori formali, si preparavano i moduli con le istruzioni corrette (procedure diverse per aggiungere, cancellare o inserire schede) e si ripeteva lo step della perforazione fino a quando non usciva alcuna segnalazione di errore che veniva evidenziata dalla scritta "compilation done". Il programma adesso poteva essere provato.

#5
Cominciava il difficile. Quasi sempre dovevamo creare archivi di prova con moduli che facevano impazzire e che venivano, dopo la logica perforazione, messi a monte del programma. A questo punto, in sala macchine e sotto la supervisione dell'operatore, il programma andava in "run". La sala macchine del Centro Elaborazione Dati del Comune di Viareggio era esattamente 24 passi per 16, tutta piena di "armadi" con lampadine, "mobili bassi" contenenti pacchi di dischi rotanti ed altri "armadi" con nastri sempre in movimento. La potenza totale era esattamente un decimo di un PC 486!!! Quando il programma si bloccava (e quante volte si bloccava!) a causa di un errore di programmazione, dalla stampante veniva emesso ii "dump" della memoria e con questo erano cazzi tuoi. La stampa, totalmente in esadecimale (!?), rappresentava la memoria centrale al momento del blocco e quindi con una serie di calcoli non semplici, si andava a scoprire che, per esempio, si chiedeva una somma tra il contenuto del campo A dove trovavamo il numero 678, con il contenuto del campo B nel quale era il valore 456. Peccato che avevamo richiesto solo 3 posizioni per il risultato ed il ciclo ricominciava dalle perforatrici.

#6
La messa a regime (su disco) del programma o della procedura era un compito condiviso con l'operatore al quale andava comunque illustrato, con altro modulo, tutta una serie di caratteristiche tra le quali una tabella contenente anno, mese, giorno ed orario di "run".