Basic Radiotext (Sperimentare, 1985)

di Andrea Pachetti

Questo articolo vuole essere un'integrazione parziale di quanto detto ormai molti anni fa su Radiotext, l'innovativa trasmissione radiofonica della Rai che proponeva il download attraverso l'etere di programmi per i principali home computer dell'epoca; in particolare, se da molto tempo sono presenti in rete alcuni software per Sinclair Spectrum trasmessi durante le varie puntate di Radiotext, mancava il corrispettivo per Commodore 64.

Come abbiamo già sottolineato allora, uno dei punti di forza di Radiotext era proprio la collaborazione tra redazione e ascoltatori, nell'ottica di poter esaminare e poi proporre il software homebrew autoprodotto, donandogli una visibilità nazionale. Così fece infatti un ascoltatore di Firenze, Marco Barbini, che realizzò un'estensione BASIC proprio per il C64.

In quel periodo, infatti, c'erano già stati numerosi tentativi di estendere il limitato BASIC 2.0 attraverso l'introduzione di nuovi comandi, che semplificassero e rendessero più facilmente gestibili alcune delle caratteristiche grafiche e sonore del Commodore 64, senza dover ricorrere alle interminabili liste di PEEK & POKE e le subroutine in Linguaggio Macchina.

Ci furono esempi di applicazioni commerciali piuttosto note tra gli utenti, la più famosa dei quali è stata senza dubbio il Simons' Basic di David Simons; una lista di tali estensioni è presente sul sito Commodore.software. Il programma di Barbini si inserisce in questo contesto senza ovviamente l'ambizione di volerle sostituire, dato che si presenta in una forma senza dubbio spartana: non vi è l'introduzione di veri e propri nuovi token, ma piuttosto il ricorrere a chiamate a subroutine BASIC (attraverso il comando GOSUB) oppure direttamente in L.M. (tramite una SYS).

Così, giusto per fornire un esempio d'uso operativo, si può disegnare un'ellisse chiamando GOSUB 40, dopo aver definito alcune variabili nel listato: R (asse orizzontale), XC, YC (coordinate del centro), RR (rapporto tra asse verticale ed orizzontale) e C (colore). Per ottenere la pagina grafica, si dovrà prima entrare nella modalità bit-map GOSUB 6 e multicolor GOSUB 45, avendo magari cura di pulire lo schermo con una SYS 49157.

È in questo modo che è stata ottenuta l'immagine iniziale di questo articolo, con l'ovvia segnalazione che con RR=1 si ottiene un cerchio invece di un'ellisse. Tra i vari comandi, mi sono sembrati particolarmente utili quelli relativi ai caratteri giganti e lo scrolling del testo, con cui erano possibili elementari forme di titolazione, come quella che mostro qui sotto. In ogni caso, ho trascritto le istruzioni complete per l'uso di questa estensione sul solito sito accessorio, se qualcuno volesse fare qualche esperimento.

Il recupero è stato possibile poiché questo BASIC del RADIOTEXT era stato pubblicato come listato completo sulla rivista Sperimentare, e precisamente sull'allegato di 32 pagine A tutto Commodore n. 5, del giugno 1985. Attraverso le ottime digitalizzazioni ad alta risoluzione realizzate da Retroedicola è stato quindi possibile procedere a una trascrizione integrale.

Se si legge attentamente il manuale si noterà come, una volta digitato il tutto, si dovessero effettuare alcune operazioni "una tantum" in modo da poter richiamare in automatico la lunghissima routine in Linguaggio Macchina che è il fulcro del programma stesso. Nel dischetto in .d64 che ho creato queste operazioni sono già state fatte, per cui è possibile caricare direttamente il primo programma "BASIC RADIOTEXT" e questo da solo caricherà anche la successiva routine "L.M.". Per completezza, nel dischetto è stato comunque inserito anche l'originale listato completo, chiamato "RADIOTEXT SOURCE", per chi volesse replicare le operazioni per conto proprio.

Per chiudere, una nota di costume sulla "lunghissima routine in LM." Si è trattato di inserire a mano 173 linee DATA composte ciascuna da 10 numeri di 3 cifre. Per fortuna l'articolo su Sperimentare comprendeva anche un disassemblato completo della routine, che mi ha permesso di verificare l'assenza di errori di digitazione.

Commenti