Schermata di GW-Basic

RetroNews – GW-BASIC diventa Open Source

Per i nati negli anni ’70/’80, questo potrebbe essere un giorno piuttosto importante: Microsoft ha pubblicato su GitHub il codice sorgente di GW-BASIC!

Cosa significa? Che molto probabilmente avremo, a breve, la possibilità di mettere nuovamente mano su versioni più o meno migliorate di uno dei linguaggi di programmazione più noti ed amati della nostra gioventù.

10 PRINT “COSA DIAVOLO È GW-BASIC?”

Scritto in assembly, praticamente linguaggio macchina, GW-BASIC è un interprete di linguaggio BASIC studiato per i PC IBM e rilasciato per la prima volta nel Febbraio del 1983. Parliamo di un periodo in cui l’informatica era un campo ancora molto settoriale, acerbo ed affascinante quanto una foresta vergine.

In quest’ottica, GW-BASIC permetteva all’utente di interagire con la propria macchina in maniera tutto sommato intuitiva e semplice, con l’uso di alcuni comandi ‘listati’ in serie. Ad esempio, volendo chiedere al nostro PC di presentare a schermo un breve testo, avremmo dovuto scrivere:

10 (numero della riga) PRINT (comando) “Ciao mondo!” (contenuto del comando, chiuso tra virgolette)

Classico esempio di una riga di comando in BASIC

La quasi totalità delle macchine prodotte negli anni ’80 e basate sul modello IBM Compatible (Commodore, Atari ed altri avevano proprie versioni ed interpreti BASIC) sono state vendute con una qualche versione di GW-BASIC e questo ne ha facilitato ampiamente la diffusione.

Pensato per girare su sistemi DOS, è rimasto principe dell’introduzione all’informatica fino alla seconda metà degli anni ’90.

20 INPUT “CI SI POTEVANO CREARE ANCHE PROGRAMMI”,PROGRAMMI$

Buona parte dei programmi di contabilità personale, ma anche giochi e strumenti vari, erano scritti in BASIC da ditte specializzate od utenti casuali. Non era strano che un ragazzino potesse creare da solo un programma per la gestione delle finanze familiari. O magari un semplice gioco per intrattenere la famiglia.

Certo non era cosa facile, ma con un po’ d’impegno e dedizione era assolutamente possibile creare lavori anche molto complessi e con funzioni avanzate. Fu uno dei primi linguaggi ad utilizzare variabili ed array per immagazinare i dati e permetterne il richiamo in tempo reale.

Manuale alla mano era possibile trovare il modo di cambiare il colore del testo, o magari chiedere al sistema di disegnare elementi sullo schermo basandosi su vettori. Ancora, si poteva chiedere alla macchina di riprodurre note musicali o suoni attraverso il PC Speaker integrato e creare così dei programmi per imparare a suonare il pianoforte. Personalmente lo usai alle elementari, ad esempio, per creare un semplice programma che potesse calcolare area e perimetro di varie forme geometriche.

SYNTAX ERROR

Molte delle riviste d’informatica dell’epoca erano solite allegare veri e propri archivi di cosiddetti ‘listati’: serie di comandi da inserire negli interpreti delle varie macchine. Questo permetteva all’utente domestico di prendere familiarità col linguaggio, ma anche di aggirare la necessità di acquistare programmi da terze parti, evitando così lungaggini e problemi relativi alla smagnettizzazione dei dischi o alla semplice reperibilità.

Ai tempi Internet era poco più di una rete interna e, per quanto esistessero già delle primissime BBS (gruppi di discussione e condivisione), queste erano dedicate ad un pubblico molto limitato di persone. Anche solo recuperare un floppy od una cassetta contenenti i codici necessari sarebbe stata una piccola impresa, tra telefonate e viaggi alle poste.

Tuttavia, spesso e volentieri si presentava un problema non da poco: errori di battitura, nella sintassi o nella logica del programma erano soliti fare capolino tra le le righe. Questo finiva invariabilmente per causare il temutissimo ‘syntax error‘, errore sintattico, che ci avrebbe costretto a girare come trottole alla ricerca della riga incriminata. Semplice in un programma da 5, 10 o 50 righe ma un pelino più complesso su listati da 5-6000.

BASRUN GUERRA.BAS

Uno dei giochi più belli che io ricordi legati a GW-Basic è sicuramente ‘Artillery‘ o, come è più noto in italia, ‘Guerra‘. Un semplice simulatore di postazioni d’artiglieria in cui lo scopo è quello di distruggere la postazione avversaria tenendo conto di condizioni quali inclinazione, vento e potenza.

Pur non il prodotto più spettacolare di sempre, questo semplice gioco con colline generate in maniera casuale e completamente monocromatico riuscirebbe a risultare divertente ancor oggi. Specialmente se consideriamo il fatto che non c’è alcuna IA da mettere in campo, e la sfida sarebbe soltanto tra due giocatori umani.

30 INPUT “COSA IMPLICA AVERE GW-BASIC OPEN SOURCE”, OPEN$

Implica la possibilità di andare a scoprire le basi di uno dei più noti ed amati interpreti di linguaggio di un’epoca che ormai sembra preistorica. Questo può essere utile, tuttavia, tanto per gli appassionati di programmazione quanto per chi volesse tentare di creare dei progetti derivativi dello stesso.

Attualmente è disponibile, ad esempio, un programma chiamato PC-Basic che è in grado di interpretare e far funzionare su PC moderni il nostro GW-BASIC. Su questi è anche possibile far girare i nostri vecchi programmi .bas o crearne di nuovi, rendendo di fatto fruibile il lavoro che abbiamo creato nel 1988 e di cui ormai non ricordavamo più l’esistenza.

L’avere a disposizione i codici sorgente originali di GW-BASIC, tuttavia, può essere utile anche nell’ottica di ricostruire, aggiungere ed implementare funzioni moderne nel nostro beniamino che potrebbe, o così almeno spero io da buon nostalgico, vivere una seconda giovinezza in un’epoca in cui in quasi tutte le case è presente ormai un Personal Computer.

40 END

Per maggiori informazioni vi rimando all’articolo (in inglese) spuntato direttamente sui canali ufficiali di Microsoft.

Dal canto mio non posso che consigliarvi, qualora aveste tempo e voglia di provare a fare questo viaggio nel tempo, di mettere le mani dentro a questo vecchio gigante buono dell’informatica. Vi servirà chiaramente un manuale per impararne i comandi, pazienza per sopportarne i limiti, ed una buona dose di caparbietà per non farvi prendere dal panico quando le cose non funzioneranno e non ci sarà un debugger a dirvi perchè.

D’altra parte, ed è questa la cosa importante, potreste scoprire un mondo ancora in parte inesplorato, che è quello della vostra fantasia. Non sarà comodo come mettersi di fronte ad uno schermo e produrre affascinanti applicazioni con un paio di click, ma vi assicuro che poche cose al mondo vi faranno sentire fieri come un ciclo FOR NEXT o IF THEN ELSE funzionante.

Chissà, potreste persino trovarvi ad essere gli autori del prossimo GORILLAS.BAS.

0 commenti

Lascia un Commento

Vuoi partecipare alla discussione?
Fornisci il tuo contributo!

Lascia un commento