Pubblichiamo un guest post di Cesare Di Mauro
L’arrivo dei computer in tante famiglie (da cui, infatti, venne coniato il termine di “home” computer) è stato uno dei periodi più interessanti per l’informatica.
In passato la Apple aveva già tentato l’impresa coi suoi Apple I e II, ottenendo un discreto successo (principalmente negli USA), ma è soltanto agli inizi degli anni ’80, complice un generale abbassamento dei prezzi dei componenti e una congiuntura economica favorevole, che si arrivò al boom del mercato degli home.
Computer come il Commodore Vic 20 e il Sinclair ZX81 fecero da apripista, seguiti poco dopo dai “fratelloni” Commodore 64 e ZX Spectrum, che avevano una dotazione hardware superiore e vendettero milioni di pezzi.
I giovani li vedevano principalmente come macchine da gioco, con la classica cassetta da infilare nel lettore e il fido joystick (con UN solo tasto) da impugnare; ma sotto la scocca c’era molto di più, e tanti se ne accorsero.
I produttori di questi gioielli tecnologici avevano pensato bene, infatti, di dotarli di interpreti del linguaggio BASIC (su ROM), che era immediatamente disponibile dopo l’accensione. Quindi non soltanto erano in grado di eseguire programmi con questo linguaggio ma… era possibile creare programmi in casa!
Perché proprio il BASIC? Perché i suoi ideatori erano due professori universitari che l’avevano creato appositamente per avvicinare più facilmente alla programmazione i loro studenti. La sua sintassi, infatti, era molto semplice e costituita da poche istruzioni (il linguaggio quindi poteva essere assimilato velocemente).
Questo permetteva anche di scrivere un interprete BASIC in poco tempo occupando, al contempo, anche poco spazio. Spazio che, a quei tempi, era essenziale ridurre all’osso, perché la memoria costava parecchio e i computer di allora ne avevano a disposizione soltanto pochi KB.
Nonostante le pesanti limitazioni, si andò creando una schiera di programmatori “in erba” che contribuì a dare un notevole impulso allo sviluppo del software. Fiorirono programmi di gestione magazzino, contabilità, archivi, fogli di calcolo, perfino piccoli CAD, e immancabilmente il classico calcolo delle strutture tanto caro a geometri e ingegneri.
Fu aperta, insomma, la porta a persone di ogni estrazione culturale, che si cimentarono nella risoluzione dei problemi relativi alla loro area di interesse, oppure semplicemente volevano provare il gusto di smanettare per scoprire “com’era fatto il computer”.
Per addentrarsi nelle parti “più nascoste” (e interessanti), però, il BASIC da solo non sarebbe bastato: ciò che fece la fortuna di questo linguaggio (e ne decretò anche il successivo declino) era la varietà di “dialetti” disponibili, che dal linguaggio “di base” pensato dai suoi creatori fecero derivare delle estensioni che introducevano delle particolari istruzioni.
Praticamente tutti i dialetti BASIC presentavano estensioni che permettevano di leggere e scrivere qualunque parte della memoria, e di eseguire codice in linguaggio macchina. Alcuni ricorderanno le famose PEEK, POKE e SYS presenti nei dialetti delle macchine Commodore, che servivano proprio allo scopo.
Particolarmente interessante fu il Commodore 64, che veniva venduto con un manuale contenente un’appendice elencante le principali locazioni di memoria del sistema, e addirittura i registri dell’hardware: un’autentica manna, che permise di realizzare perfino videogiochi con l’ausilio del solo BASIC, interagendo coi chip dedicati a video, audio e I/O, oppure richiamando direttamente delle routine presenti nella ROM (famosissima fu la SYS 64738 che serviva a resettare il Commodore 64) o nella RAM.
Con questi mezzi si riuscivano a superare in maniera abbastanza semplice i numerosi limiti del BASIC. Ad esempio, quando serviva, si poteva caricare nella RAM del codice in linguaggio macchina per implementare e utilizzare funzionalità precluse dal BASIC, e che venivano poi richiamate all’occorrenza (con la SYS dei Commodore, esposta prima, o la CALL di altri sistemi).
Tutto ciò rappresentò il trampolino di lancio per i programmatori più dotati, che a questo linguaggio affiancarono prima il summenzionato linguaggio macchina e, quando finalmente arrivarono, strumenti di più alto livello: i ben più comodi assemblatori. Questi permettevano di utilizzare il linguaggio assembly che, pur essendo una sorta di codifica mnemonica del precedente, era di gran lunga più semplice da usare.
Era iniziata, insomma, una vera e propria rivoluzione, che da lì a poco avrebbe cambiato il modo di concepire i computer e il software, trasformandoli sempre più in parti integranti della vita di tutti i giorni.