“Como estas Amiga?” L’esoterica arte della tecnologia iniziatica: un viaggio tra meraviglie e misteri!

vintage gray game console and joystickSicuramente vi starete chiedendo cosa ci faccia un post apparemente di natura tecnica in un contesto che privilegia la musica e la letteratura (soprattutto, poesia). La verità è duplice: innanzi tutto, questo non è un post tecnico e, in secondo luogo, il mio punto di vista e l’approccio descrittivo vanno ben oltre gli aspetti meramenti “meccanici”, per cercare sia di dare un senso a una passione che affascinava in modo irresistibile, che di far rivivere, seppur in modo limitato, le emozioni suscitate dall’arte esoterica della programmazione informatica.

Quando tutto ebbe inizio

Ben prima che gli IBM compatibli, computer assemblati comprando le singole componenti che più aggradavano, si diffondessero a macchia d’olio, il panorama di cosidetti “personal computer” (ovvero, macchine non destinate a grandi aziende o enti) era dominato da alcuni produttori: Sinclair, Amstrad, Atari, Apple e, soprattuto, Commodore. Se le prime tre avevano sviluppato computer più o meno interessanti, ma decisamente limitati, Apple si era focalizzata più sul settore aziendale e i suoi prezzi non erano di certo accessibili ai più. Inoltre, la comunità degli sviluppatori (i.e., le cosidette software houses) Sinclair, Amstrad e Atari vantava solo un piccolo numero di esempi validi.

Un modello di computer Sinclair ZX80Insomma, conoscevo personalmente amici che avevano il Sinclair ZX80 o l’Amstrad CPC 464 e ricordo bene quante difficoltà avessero nel procurarsi videogiochi divertenti o programmi applicativi con elevata (per quegli anni) usabilità. Nel panorama dei produttori informativi, si unì anche la gloriosa Olivetti, che, alle porte di Torino, iniziò a fare ricerca e a produrre alcuni esemplari di personal computer con caratteristiche notevoli. Tuttavia, anche la sua sorte fu da subito segnata: pochi programmatori, una scarsa distribuzione internazionale e l’adozione di standard poco diffusi, rese infernale la vita di molti utenti.

Ricordo un compagno di scuola elementare che, dopo aver comprato un Olivetti (rigorosamente presso un concessionario ufficiale), imparò qualche elemento di programmazione, ma consumava molte più energie emotive nell’andare quasi giornalmente presso il concessionario a chiedere se i giochi ordinati fossero arrivati.

Il primo modello di Commodore 64

Come potete immaginare, la risposta era quasi sempre negativa. Le poche cassette (sì, il formato di memorizzazione era basato su (audio-)cassette) che possedeva, scandevano un tempo infinito prima di mostrare qualche schermata monocromatica che coronava lo sforzo dell’attesa. Tuttavia, la soddisfazione era bassa, soprattutto a causa della diffusione a macchia d’olio del vero protagonista del personal computing di quegli anni.

La regina dei personal computers

La Commodore aveva immesso sul mercato dei modelli affatto economici, ma straordinariamente rivoluzionari. Il PET, Vic-20, Commodore 16 e, il primo indiscusso re dei computer personali, il Commodore 64, impiegarono un baleno a sbaragliare la concorrenza, relegando i loro prodotti nella categoria: “computer per sfortunati”! Da questo momento in poi, parlando di Commodore, mi riferirò in modo spesso indistinto sia al Commodore 64 che al suo successore al trono, il (anche si dovrebbe parlare al femminile), celeberrimo, sontuoso e vincente Amiga! Ma per adesso procediamo con calma.

Schermata iniziale del Commodore 64La mia prima esperienza informatica fu proprio su un Commodore 64, con una porta d’uscita per collegarlo al televisore (i monitor erano poco diffusi e costosissimi), un registratore a cassetta esterno (chiamato Datassette) e un joystick a due pulsanti. Dopo l’accensione, si attendeva qualche istante, per poi vedere comparire una traballante (a causa del collegamento rumoroso alla TV) di una schermata con due toni di azzurro. Il Commodore 64 era vivo e il suo cuore pulsava senza sosta. Le informazioni riportate, inoltre, apparivano come magiche rivelazioni: il computer era equipaggiato con ben 64 KB di RAM, di cui circa 32 disponibili per l’uso (gli altri, a meno di non usare tecniche particolari, erano occupate dall’embrionale sistema operativo con interfaccia BASIC). Tanto per fare un semplice rapporto, uno smartphone di un paio di anni fa, montava comenemente 6 GB di RAM, ovvero circa 6.000.000.000 di bytes. Il commodore 64 ne montava 64.000, di conseguenza, aveva un quantitativo di memoria circa 98.000 volte minore!

Alla ricerca delle sorgenti perdute

Ovviamente siamo in un mondo senza reti globali, senza telefoni cellulari, con pochissimi negozi di informatica che, dati gli investimenti necessari, centellinavano le loro scorte e avevano a disposizione pochissimi prodotti. L’unica rivista veramente al passo era ZZap!64 (conosciuta solo come ZZap in Italia) e io ricordo che l’unica edicola in cui era disponibile (in una cittadina di circa 40,000 abitanti) era un bugigattolo nel centro storico del paese, costituito per il 90% da carta e per il resto da aria ed esseri umani: un paradiso. Per ragioni di privacy non cito il nome, anche se il proprietario è passato a miglior vita da un paio di decenni), ma ricordo con straordinaria emozione l’ingresso in quel paradiso della carta stampata. Un corridoio strettissimo, a sinistra scaffali zeppi di ogni sorta di pubblicazione, a destra un lungo bancano tutto coperto da giornali e riviste. Dietro di esso, in una sorta di cunicolo impenetrabile, il gestore, assiso sul suo minuscolo trono e sempre pronto a intrattenersi con gli avventori.

Data la mia giovane età e che questo posto non fosse proprio nel mio circondario, mi impediva di visitarlo spesso. Ci andavo generalmente la domenica pomeriggio (era sempre aperto), quando, con tutta la famiglia, visitivamo i nonni paterni, che abitavano in un’enorme casa non molto distante dalla piazza principale del centro storico. Già solo il percorso era assimilabile a un turbinio di aspettative, da rivulare sempre con i pochi soldi che un ragazzini di scuola elementare poteva avere in tasca. La strada era tutta in salita, ma io correvo senza sosta e arrivavo di fronte all’ingresso sempre sudato e un pò ansimante. Poi iniziava l’esplorazione. Il gestore non chiedeva nulla, ci si limitava ai saluti. E io, dal canto mio, non desideravo affatto consumare quell'”amplesso” in poche domande mirate che mi avrebbero fatto ardere il cuore o sprofondare nella più totale delusione.

Registratore a cassette (Datassette) del Commodore 64Esploravo, scorrevo le riviste, le sfogliavo e poi, timidamente, guardavo il prezzo. Ne mettevo da parte qualcuna, poi, periodicamente, rivalutavo il budget e la spesa e facevo a malincuore le dovute correzioni. In quell’edicola c’erano anche molte riviste con cassette di giochi (spesso non propriamente legali, in quanto la “pirateria” era pratica diffusa e, a mio indiscutibile parere, fondamentale) e, ricordo ancora, mentre scorrevo le minuscole liste di titoli per cercare qualcosa che attirasse la mia attenzione.

Se sono rose, lo saprai dalle spine!

Tuttavia, come molti sapranno, i supporti magnetici a nastro dell’epoca erano estremente poco affidabili. Le copie potevano contenere errori dovuti a interferenze e, in più, ogni registratore personale aveva una precisione che subiva lieve modifiche con l’uso. La testina di lettura tendeva a disallinearsi e non esistevano metodi di controllo automatico di quello che, in gergo, si chiamava azimuth. Il risultato era che, dopo una lunga attesa (i tempi di caricamento superavano spesso i 5-7 minuti), la schermata iniziava a riempirsi di strani segni e colori e rimaneva congelata. Nella maggior parte dei casi, non c’era nulla da fare, se non rinunciare a quel gioco/programma e saltare al successivo. Visto che la testina era fissa e il nastro scorreva a velocità costante, il registratore riportava un contatore e, quando una cassetta conteneva più giochi, normalmente veniva indicato il punto di inizio di ciascuno. Perciò, bisognava prima riavvolgere la cassetta, poi azzerare il contatore e quindi farla avanzare sino a raggiungere il punto indicato (a scatti, perchè il “Rewind” and “Fast-Forward” non permettevano un controllo fine).

L’attesa, le aspettative, l’apparire delle prime schermate, povere con pochi colori e pixel grossi come le icone di uno smartphone, erano una successione emotiva degna di una composizione musicale della complessità di una forma-sonata. Credetemi, non scrivo eresie o esagerazioni: il processo, nel suo dispiegarsi, modellava il tempo psicologico in una sequenza di momenti, ognuno con le sue caratterstiche, sempre oscillanti tra tensione e rilassamento, come un “dondolio” tra tonica e dominante in musica. L’apparire di una schermata corretta dava il sollievo di una cadenza perfetta, mentre uno schermo monocromatico, mentre il nastro continuava a scorrere, pareva simile a una cadenza d’inganno, con la ripresa di un tema che riaccendeva la tensione. Ogni gesto era sempre incerto, talvolta destinato al successo, ma spesso foriero di imprevisti. La magia non si celava nella quasi artificiale perfezione degli smartphone di fascia alta, nè nei “prodigi” dell’intelligenza artificiale. Essa covava sotto la cenere, si nascondeva, e, cosa fondamentale, parlava una lingua occulta, che bisognava assolutamente imparare.

Come estas Amiga? Sinuosa come una modella, dura come il granito!

Un modello di computer Commodore Amiga 500La più grande rivoluzione arrivò tuttavia alcuni anni dopo, quando si cominciò a sentire parlare di un meraviglioso computer Commodore dallo strano nome spagnoleggiante “Amiga 500”. Ben più grande del Commodore 64, aveva anche quello che in gergo si chiama tastierino numerico e, cosa ben più importante, anche un lettore di floppy disk da 3.5″ che sostituiva i molto meno capienti, veloci e affidabili floppy da 5.25″ del Commodore 64 (ovviamente previo acquisto del lettore esterno). L’Amiga montava un processore innovativo per l’epoca, il Motorola 68000 che operava a 16 bit (al contrario del Commodore 64 che montava il 6502 a 8 bit). Aveva “ben” 512 KB di memoria espandibili a 1 MB comprando una scheda grande come una cortolina postale. Inoltre era basato su un’architettura molto avanzata con coprocessori dedicati (dai nomi che ancora echeggiano nella mia testa: Copper, Blitter, etc.) a processare grafica di “alta qualità” a 32 colori, far muovere velocemente oggetti sullo schermo (i cosidetti sprites o bobs – l’ultimo voleva dire letteralmente “Blitter objects” e, tanto per essere esaustivo, “Blitter” significava “Block Image Transferrer“) e produrre musica di alta qualità.

Una schermata del Workbench dell'Amiga 500Che dire? Un sogno. Giochi simili a quelli da bar (i cosidetti “coin-op“, ovvero “operati a moneta”), velocità supersonica, e un sistema operativo multitasking (altro che MS-DOS) con un’interfaccia grafica chiamata “Workbench“, con tanto di icone, cassetti, e funzioni simili a quelle dei moderni sistemi operativi.

Ma come ho spiegato nella sezione “Su di me” di questo sito, il mio interesse era sempre stato rivolto alla programmazione. Sin da ragazzino di quarta elementare, continuavo a domandarmi “Come diavolo si fanno i giochi?” Era una domanda assillante che non trovava risposta nel manuale del Commodore 64, dove veniva spiegato per grandi linee il BASIC (i.e., Beginner’s All-purpose Symbolic Instruction Code), utile per piccoli programmi gestionali, ma totalmente inadeguato a gestire la grafica, far muovere personaggi, etc. Quando finalmente riuscii ad acquistare un’Amiga 500, leggendo riviste specializzate, iniziaii a sentir parlare di un linguaggio che definire esoterico è un eufemismo: l’Assembly. Per i non addetti ai lavori, posso sintetizzare il concetto dicendo che, mentre il BASIC si basava su istruzioni di alto livello (come “se A allora ripeti B 10 volte”), l’Assembly era il linguaggio del microprocessore, con il quale si comandava direttamente l’hardware, chiedendo di spostare dati in memoria, attivare un comando di un coprocessore (ricordate Copper, Blitter, etc.?) e così via.

Assembly: capiamo l’incomprensibile

Esempio di programma in Assembly per AmigaGrazie al sito Amiga Storage, posso mostrare una schermata che la dice tutta. Comandi stranissimi come “MOVE.L” or “BNQ” contenevano l’arcano mistero che celava l’arte delle programmazione dei videogiochi. Ma come ogni conoscenza che riserva meraviglie, il prezzo da pagare per l’iniziazione è talvolta proibitivo.

Innanzi tutto, già solo nominare la parola “Assembly” (o la sua variante non propriamente corretta “Assembler”) in un negozio di informatica provocava sguardi sbigottiti e silenzi religiosi. Inoltre, come potete immaginare, la diffusione di libri tecnici (in italiano, visto che allora non parlavo inglese) era bassissima. L’unica salvezza era offerta dalle pubblicità sulle rivisite. Molti negozi presenti in grandi città pubblicavano spesso i loro listini prezzi e, talvolta, erano presenti anche libri di programmazione (la gloriosa casa editrice Jackson è ancora nel mio cuore). Così, facendo telefonate interurbane stringate per evitare costi esorbitanti in bolletta, iniziai a ordinare qualche volume.

Ovviamente, non partii da linguaggi di alto livello come il C (che imparai solo in seguito), ma mirai dritto allo scoglio più grosso: Assembly del processore 68000). Il mio primo libro, purtroppo perso durante qualche trasloco, divenne fonte di gioia e dolore. Iniziai a leggerlo in estate e lo portai con me durante un breve soggiorno in una località balneare. Ricordo perfettamente le letture sotto l’ombrellone, mentre altri miei coetanei giocavano con i racchettoni o correvano sul bagnasciuga. Mentre gli altri si rilassavano, io mi sottoponevo, con smania masochistica, a un tormento inenarrabile.

Copertina del libro Amiga Assembler della JacksonIl libro era chiaro, ma presupponeva molte conoscenze tecniche che non avevo e dava per scontato che il lettore avesse già una discreta esperienza. Io continuai le lettura con tenacia, ripetendo a mente determinati concetti e, mentre facevo il bagno, quasi infastidito da un piacere inopportuno, con la mente ripercorrevo le frasi più enigmatiche, cercando la chiave per l’arcano mistero dei registri dati, registri indirizzi, assegnazioni dirette e indirette, e così via.

Naturalmente, appena ne ebbi la possibilità, mi procurai il software necessario, ovvero un “assemblatore”, e iniziai a scrivere i miei primi programmi. Se un linguaggio di programmazione interpretato come Python richiede solo una linea di codice per stampare la fatidica scritta “Hello World!“, l’assembly ne richiedeva una ventina. Bisognava “puntare” allo stringa in memoria, impostare un altro puntatore alla base delle librerie del sistema operativo, inserire il numero di caretteri da scrivere a schermo e, infine, fare un salto ad una sotto-routine (o funzione) di sistema che avrebbe svolto il “lavoro sporco” di stampare i caratteri sullo schermo.

Punizioni draconiane sulla via dell’iniziazione

Nonostante si trattasse di un’operazione semplice e alquanto insulsa, commettere errori era facilissimo. Bastava una svista, una comprensione errata di un concetto o, qualsivoglia altro banale motivo per scatenare le ire degli dei occulti designati a presidiare l’accesso a tale nobilissima e riservatissima arte. Tutti i valorosi e combattivi “eroi della programmazione a basso livello” conoscevano bene quanto frustranti potessero essere le punizioni inflitte dal sistema. Parlo del temutissimo e sempre in agguato “Guru Meditation“.

Schermata dell'Amiga indicante un messaggio di Guru MeditationSe pensate che un errore grossolano venisse semplicemente segnalato con un cortesissimo messaggio, vi sbagliate di grosso. Ciò che accadeva era molto più agghiacciante. Bisogna, innanzi tutto, premettere che per avviare il sistema e l’assemblatore, nonostante si lavorasse con floppy disk e non cassette, richiedeva almeno un paio di minuti e forse anche di più. Dopo aver completato la procedura e essere quindi pronti a scrivere e provare il proprio programmino Assembly, i polsi iniziavano generalmente a tremare, si chiudevano gli occhi e, con coraggio, si selezionava la funzione “Run” dal menu dell’assemblatore.

La spietatezza del sistema era degna delle prove tribali per assurgere al rango di guerriero. Un banale errore, un indirizzamento innocuamente sbagliato, si trasformarva in un demoniaco processo. Lo schermo si congelava per un paio di secondi, poi, i due led posti in alto a destra, sopra la tastiera, iniziavano a lampeggiare in alternanza, proprio come un rullo di tamburi e, infine, il sistema andava in crash e si riavviava mostrando, dopo almeno una ventina di secondi, una schermata nera, in cui lampeggiava un messaggio rosso sangue: Guru Meditation!

Chip Paula dell'AmigaQuella terribile realtà era, in fin dei conti, nient’altro che un innocuo messaggio che informava il programmatore a che indirizzo di memoria si era verificato un errore che aveva compromesso il funzionamento del sistema. Tuttavia, definirlo innocuo, era di certo quanto di più inesatto ci potesse essere. Perchè, non soltanto lasciava il povero programmatore con l’incognita del suo stesso errore, ma gli imponeva di riavviare tutto dal principio, con un dispendio di tempo non indifferente. Se poi non si aveva affatto la cognizione di cosa avesse scatenato tali ire, si restava immobili a fissare il programma, scandendo ogni riga come i versi di una preghiera, nella (spesso vana) speranza di vedere improvvisamente la luce. Purtroppo, era molto più probabile tornare a vedere le luci dei led lampeggiare, piuttosto che la raggiante bellezza del messaggio “Hello World!” comparire sullo schermo.

Chip Denise dell'AmigaNon intendo dilungarmi troppo in questa descrizione, ma è bene che i lettori più inesperti e giovani sappiano quanto dura fosse la strada per conquistare il dominio anche solo su una frazione di questa arcana conoscenza. Ricordo ancora quando, dopo aver scalato le prime vette, imperterrito, iniziai a esplorare la più profonda programmazione di sistema, quella che coinvolgeva i coprocessori (a cui, i progettisti dell’Amiga avevano dato dolci nomi femminili, quali Paula o Denise – grazie a Wikipedia, ho potuto mostrare gli innuovi chip responsabili delle principali funzioni dell’Amiga). La prima volta che riuscii a colorare lo schermo interamente di nero e far comparire un puntino bianco in mezzo ad esso, il mio cuore palpitò come un cavallo al galoppo, mentre il respiro dondolava tra l’incedere del singhiozzo e il pianto di un neonato.

Conclusioni

Altro che XBox o Playstation! Io, indomito aspirante alla più profonda conoscenza iniziatica, ero infine giunto alle soglie del tempio occulto, pronto a iniziare una nuova esplorazione. Quel puntino bianco era un dono ben più grande di una console di ultima generazione, capace di far muovere centinaia di oggetti in scenari vividi come quelli di un film. Cosa farei per poter comunicare tutta l’emozione sprigionata da un così piccolo elemento! Ecco perchè, senza remore alcune, parlo tranquillamente di arte. Il dominio della conoscenza non era infatti limitato a conoscere il più vicino negozio di elettronica, ma richiedeva la più profonda dedizione, una pazienza serafica degna di un francescano maturo e, soprattutto, l’impiego di quel tempo che, i ragazzi della mia stessa età, normalmente dedicavano a giocare a calcio o a girare con le biciclette da cross nei campetti sterrati della periferia.

Credo di aver scritto fin troppo, ma il mio compito non era quello di raccontare una storiella della buonanotte, ma di trasmettere al lettore quanto straordinario sia stato questo viaggio nei meandri di una conoscenza tanto oscura. Quanto duro fosse il lavoro richiesto per salire anche solo un gradino e, cosa più importanto, quanto immensa fosse la gioia di un piccolo successo. Ecco perchè, quando ormai tutto ciò è un retaggio sepolto da montagne di tecnologia sempre più “amichevole”, posso gridare a gran voce che quella era l’arte della programmazione! Non un passatempo o un gioco, ma una nobile arte, capace di aprire la mente e trasportare oggi in paradiso e domani all’inferno, in un processo incontrollabile e assuefancente, la cui forza superava di gran lunga quella del pur piacevole banale divertimento.


 

Share this post on:
FacebookTwitterPinterestEmail

Articoli correlati

  • Stiamo assistendo un nuovo tipo di umanesimo. In un periodo caratterizzato da una continua 'ondata' di miglioramenti tecnologici, l'idea più antica di persona è di nuovo pronta per essere considerata un punto focale concreto. Anche…

  • Se potessi far capire una cosa al tuo animale domestico, quale sarebbe? Cercherei di far capire al mio animale domestico il concetto di arte. So cosa state pensando: "E' impazzito! Come può gestire la complessità…

  • Descrivi un oggetto a cui eri incredibilmente legato da giovane. Che fine ha fatto? Ero un ragazzino, di circa nove anni, quando ho iniziato a sentire parlare di strumenti "magici" chiamati computer. Come altri compagni…