Amarcord: Hewlett-Packard 97 Calculator
Sul finire degli anni settanta, l'HP 97 è stato uno dei primi calcolatori programmabili, portatili, 'all in one', mai realizzati.
Correva l'anno, grosso modo, 1977. A quei tempi, poco più che ragazzino (fresco di prima o seconda liceo!), quel gioiello tecnologico sì e no potevo guardarmelo al di qua di una luccicosa vetrina di negozio. Parliamo, calcolatrice alla mano (tanto per rimanere in tema...) di ben 38 anni fa. Alcuni anni prima di MC, del primo PC propriamente detto (l'IBM 5150), del primo sistema commerciale basato su mouse e finestre, l'indimenticato e indimenticabile Apple Lisa.
L'HP-97 era il fratello maggiore di un altro portento tecnologico di quegli anni, l'HP-67, che era la versione tascabile dello stesso computer. Non integrava la stampante termica, aveva un display di dimensioni minori, ma non sacrificava nulla in termini di potenza di calcolo, anche se oggi parlare in questi termini può solo far sorridere.
I byte, questi sconosciuti...
Verrebbe quasi la voglia di non crederci. Eppure dispositivi di questo tipo aiutavano gli ingegneri a progettare (e a non far crollare...) ponti e palazzi, i fisici a portare a termine con successo i loro esperimenti, i matematici a risolvere le equazioni e i problemi più complessi. Il tutto contando su poche centinaia di byte di memoria centrale, su memorie di massa basate su schede magnetiche, su output esclusivamente numerici tramite display a led rossi o, quando eravamo fortunati (come nel caso dell'HP-97) su una stampantina termica... disposta a tutto. Anche a tracciarci qualche grafico si fa per dire, plottando asterischi un po' più a destra, un po' più a sinistra, sul bianco rotolo di carta termica man mano spinto fuori a rumorosi colpi di paper advance.
La memoria disponibile assommava a 224 passi di programma più 26 registri numerici dove immagazzinare tutti i dati iniziali e i risultati dei nostri calcoli. La memoria era, ovviamente, volatile, nel senso che spegnendo l'apparecchio si cancellava tutto. Dati e programmi si potevano però salvare su piccole schede magnetiche, così come erano disponibili librerie di programmi, già belli e fatti, su apposite schede a sola lettura. Uno dei più diffusi era certamente lo Standard Pac, che comprendeva programmi di vario genere, dal calcolo matriciale e vettoriale alle funzioni calendario, dalle conversioni numeriche a quelle statistiche di base, senza dimenticare qualche giochino tipico dell'epoca, come il solito simulatore di atterraggio lunare! (a quei tempi puzzavamo ancora un po' tutti di Apollo). Poi c'erano i Pac più seri, come il Business Decisions Pac, il Clinical Lab and Nuclear Medicine Pac, il Navigation, il Surveying, lo Stat e il Math Pac, solo per citarne alcuni.
La programmazione avveniva tramite la cosiddetta Notazione Polacca Inversa (RPN) con la quale si risparmiavano diversi passi di programma, pre-trattando (in un certo senso... :-) i calcoli da svolgere. Così, se volevamo scrivere un programma per il calcolo dell'area del cerchio, bastavano le seguenti righe di codice:
001 LBL A
002 x²
003 π
004 x
005 RTN
La prima riga (LBL A) abbina il codice seguente a uno dei 5 tasti funzione disponibili, le lettere dalla A alla E. Segue l'istruzione (x²) che eleva al quadrato quanto digitato sul display al momento di lanciare il programma. Dopodiché con la funzione π si richiama, appunto, il pi greco che alla riga successiva viene moltiplicato (x) con il calcolo precedente, ovvero il quadrato del raggio originariamente immesso. RTN, dulcis in fundo, termina il programma mostrando sul display il risultato del complicatissimo calcolo! :-)))
Naturalmente i tipici programmi per la bestiolina HP in questione erano ben più complessi dell'esempietto prima riportato. In particolare si poteva contare su strutture di programmazione ben più complesse, che comprendevano salti condizionati e incondizionati, indirizzamenti indiretti, fino a tre livelli di subroutine nidificate e quattro Flags per tenere traccia di determinati stati interni durante i calcoli.
Che tempi...