Visualizzazione post con etichetta basic. Mostra tutti i post
Visualizzazione post con etichetta basic. Mostra tutti i post

mercoledì 15 maggio 2024

I "basic" della mia vita (seconda parte): Simons' Basic

 


Simons' Basic - 1983 - Versione Commodore 64

In un articolo precedente ho raccontato di come la programmazione, in particolare quella in Basic, per me è sempre stata uno degli aspetti più divertenti degli home computer che ho avuto la fortuna di possedere, in particolar modo il Commodore 64 e l'Amiga, ma anche lo Spectrum e, successivamente il Pc (di cui parlerò in articoli futuri). L'oggetto di oggi è invece un'estensione per il basic del Commodore 64, il famigerato Simons' Basic, un prodotto che veniva venduto su cartuccia ma che io, ovviamente, avevo su nastro.

Il problema principale del basic standard caricato nella rom del C64 (prodotto da Bill Gates, tra l'altro) era la totale mancanza di comandi specifici per sfruttare la grafica e il sonoro della macchina, per cui era necessario agire direttamente sulle "locazioni" di memoria con dei generici comandi POKE, anche solo per operazioni elementari come cambiare il colore dello schermo. Con il Simons' Basic invece diventava semplicissimo cambiare i colori, ma anche disegnare immagini, cerchi, linee, scritte eccetera su schermo, così come diventava davvero elementare gestire gli sprite, suonare melodie multitimbriche, ma anche utilizzare comandi di sorting, funzioni matematiche avanzate e c'erano persino alcuni comandi utili per editare i listati.


Esistevano anche altre estensioni di questo tipo, cioè programmi che andassero ad integrare il basic esistente modificando alcuni comandi standard ed introducendone tanti altri che andavano ad arricchire il linguaggio, e potrei citare come esempi il GwBasic e il "Basotter", che era il basic del plotter (cioè serviva a guidare i disegni di dispositivi di stampa a pennini). Addirittura feci anche io una di queste estensioni, il "Basazzo" (indovinate perché si chiamasse così....) che non aveva la portata del Simons' Basic, ma aveva comunque dei comandi interessanti. Purtroppo però è andato perso, ma questa è un'altra storia.


Tornando al Simons' Basic, questo programma era fantastico sulla carta ma non ha mai fatto davvero breccia nel cuore giovane Barabba programmatore per tutta una serie di motivi. Il motivo principale era che prima di eseguire un listato basic bisognava aver caricato il Simons' Basic in memoria, per cui c'era da fare questa doppia operazione di caricamento (non avendo il linguaggio residente su una cartuccia rom) e soprattutto i programmi non erano eseguibili da tutti, ma solo da chi possedesse a sua volta il Simons' Basic. Questa mancanza di universalità mi era insopportabile. Inoltre lo spazio in memoria per i propri listati diminuiva sensibilmente, circa di 8 kb, rispetto a quanto normalmente a disposizione, per cui c'era anche questa sensazione di castrazione che non mi è mai piaciuta. Per finire, piccolo ma non insignificante particolare, i colori di sistema passavano dal riposante e rassicurante blu/azzurro ad un terrificante bianco e blu che sulle tv in videocomposito si traduceva in colori impastati e spaccapupille. Insomma, mi indisponeva anche l'editor!

In ogni caso Simons' Basic ebbe un grande fascino anche solo per il fatto che mi ha aperto all'uso delle funzioni grafiche con le quali finalmente potevo disegnare grafici e funzioni matematiche, come si vedeva sulle locandine pubblicitarie di questo computer, e che erano un miraggio con il basic standard. Fu quindi un passaggio imprescindibile nella mia formazione (amatoriale) come programmatore, e al netto di tutti i difetti elencati, mi ci divertii parecchio.


lunedì 4 dicembre 2023

I "basic" della mia vita (prima parte)



I linguaggi BASIC della mia vita (prima parte): Commodore 64 e Amiga

La mia passione per i videogiochi è sfociata, nel 1984, nell'acquisto di un Commodore 64, che voleva dire per il sottoscritto che non solo potevo usufruire dell'enorme quantità di giochi che erano già disponibili per quella macchina (tutti gratuitamente) ma che potevo addirittura crearmi i miei giochi programmandoli direttamente con la tastiera. Importante corollario a questa tesi era che quindi avrei preso totale controllo dello schermo televisivo, un traguardo a cui ambivo fin dai primissimi timidi colpi di "Pong" dati con la console Polistil del mio vicino di casa. Se ti chiedi cosa significasse per me questo traguardo devi ricordare che negli anni 70 noi bambini potevamo solo cambiare canale (in tutto una dozzina o poco più) e guardare cartoni animati e telefilm solo quando venivano trasmessi: il nostra era un uso totalmente passivo del mezzo televisivo, e poter manipolare l'immagine era quindi una specie di sogno bagnato di tutti quelli che come me vedevano nello schermo un potenziale sistema per esprimere la proprio creatività.


Fatto sta che l'arrivo del piccolo home computer spalancò un portone sulla mia creatività e iniziai a programmare in basic ancora prima di possedere fisicamente la macchina, grazie a pubblicazioni come Input, Commodore Computer Club e HC. Sono partito dai primi programmi "indovina il numero" fino ad arrivare a vere e proprie avventure testuali o grafico testuali, con animazioni e musica. Naturalmente in basic più di tanto non si poteva fare, e infatti poi passai anche alla programmazione del linguaggio macchina. Ma restando al basic, sempre su Commodore 64 programmai anche con il diffuso"GW BASIC", grazie ad un rimaneggiamento di quello standard Commodore, e soprattutto col Simon's Basic, grazie al quale era possibile davvero fare qualunque cosa con semplicità, sonoro e grafica compresi. Ma di questo parlerò più diffusamente in un prossimo articolo. Infine non posso non citare un emulatore che mi consentì in modo fantastico di programmare anche col basic delle Spectrum, aprendomi la possibilità di provare tanti altri listati che mi erano precedentemente rimasti preclusi. Unico limite di questo programma: "Can't do machine code", cioè gli era impossibile emulare anche il linguaggio macchina (e quindi la totalità dei giochi commerciali), ma per quanto riguarda il basic il nostro C64 diventava uno spectrom 48k a tutti gli effetti!


Quando infine arrivò l'Amiga arrivò anche l'Amiga Basic, rivoluzionario rispetto ai vetusti linguaggi implementati sugli home a 8 bit, ma molto meno "user friendly" di quanto si potesse sperare. Per iniziare a meno di non possedere un monitor dedicato, la lettura/scrittura dei listati era piuttosto difficoltosa per la dimensione e la forma dei caratteri. La distribuzione delle finestre era abbastanza confusionaria e la lentezza generale, sia dell'editor che degli eseguibili, era davvero bassa. Ricordo insomma che programmare in basic era abbastanza una pena, e pur avendo prodotto decine di giochi (dal Simon al gioco del 15, passando per avventure testuali, quiz musicali, modellatori tridimensionali, persino un CAD funzionante al tutto e per tutto) non ho ricordi felici, anzi era sempre una lotta con la miopia e lo stress dato da un editor poco flessibile. Grazie al cielo poi arriverà l'Amos, ma anche di questo parlerò in un futuro articolo perché merita davvero un discorso a parte, come anche sarà per gli altri "basic" a cui approderò dopo su Pc. L'Amiga Basic era invece un prodotto ancora non ottimizzato e, per quanto funzionasse alla perfezione, avesse l'implementazione delle "procedure", e avesse anche abolito finalmente i numeri di linea, richiedeva dotazioni hardware maggior di quanto non fosse un semplice Amiga 500 liscio. In ogni caso i 3 basic di cui ti ho parlato (C64, Spectrum e Amiga) hanno fatto parte della mia vita per anni come veri e propri compagni di giochi e come autentici mezzi creativi. Purtroppo oggi nessuno potrà rivivere una situazione analoga a quella che abbiamo vissuto noi hobbisti degli anni 80 quando, acquistando un computer, ci veniva lasciata aperta una finestra sull'informatica e la programmazione di questo tipo. Per questo motivo mi dispiace constatare che tutte queste esperienze e situazioni andranno perdute e spero quindi che con questo articolo si possa preservare almeno la mia testimonianza per le generazioni future.