PC-BASIC: il ritorno di GW-BASIC

Quanti di noi hanno iniziato la loro avventura informatica con il linguaggio BASIC? E tra questi, quanti non ricordano il classico GW-BASIC di Microsoft, che ha ispirato tanti altri interpreti e compilatori degli anni ’80 e ’90?

Oggigiorno un progetto su Sourceforge chiamato PC-BASIC ha come obiettivo la realizzazione di un interprete BASIC al 100% compatibile con il classico ambiente Microsoft. È scritto in Python, pertanto è cross-platform, su tutte le piattaforme per cui esiste un runtime di questo linguaggio.

Non è l’unico progetto del genere: ricordiamo ad esempio il compilatore FreeBASIC, che punta alla compatibilità con QuickBASIC, estendendolo con feature che permettono lo sviluppo di applicazioni discretamente complesse ma che non include un IDE. Ricordiamo anche qb64, altro compilatore compatibile con QuickBASIC, con estensioni, e che include un clone dell’IDE di QuickBASIC.

Caratteristiche principali di PC-BASIC

PC-BASIC è un interprete (non produce file eseguibili) che ha la peculiarità di riprodurre in toto solo ed esclusivamente l’originario GW-BASIC, senza estensioni, puntando alla totale compatibilità, comprese le limitazioni, e riproducendo parimenti l’editor full-screen, su cui è possibile spostare liberamente il cursore con i quattro tasti direzionali su uno schermo di 80×25 caratteri (oppure 40×25).

Una delle innovazioni di GW-BASIC rispetto alle precedenti implementazioni di Microsoft (ricordiamo MBASIC-80 su CP/M) era proprio il poter muovere liberamente il cursore nelle 4 direzioni per poter riprendere comandi digitati “a spasso” per lo schermo. Con MBASIC-80 una volta premuto il tasto di invio non era più possibile invece “tornare indietro” su quanto precedentemente digitato a causa della mancanza di un editor full screen.

Come in GW-BASIC sono obbligatori i numeri di linea per l’introduzione del programma in memoria, e il lancio di comandi senza numeri di linea produce l’esecuzione “immediata” (direct mode) della linea digitata.

PC-BASIC è in grado di caricare i file .BAS binari di GW-BASIC, cioè quelli salvati con il normale comando SAVE”nomefile” senza l’opzione “,A” che invece salva il testo del programma in formato ASCII.

Modalità grafica CGA/EGA

Lanciato con i parametri di default, include una completa emulazione in una finestra dedicata di una scheda grafica EGA, permettendo quindi le modalità grafiche ottenibili con:

  • SCREEN 0 (CGA, testo 80×25 oppure 40×25)
  • SCREEN 1 (CGA, 320×200, 4 colori)
  • SCREEN 2 (CGA, 640×200, 2 colori)
  • SCREEN 7 (EGA, 320×200, 16 colori)
  • SCREEN 8 (EGA, 640×200, 16 colori)
  • SCREEN 9 (EGA, 640×350, 4 colori)

Per testare queste modalità, è possibile caricare i classici MUSIC.BAS e DONKEY.BAS e lanciarli as-is, senza alcuna modifica o adattamento:

PC-BASIC in modalità CGA: MUSIC.BAS PC-BASIC in modalità CGA: MUSIC.BAS

Modalità grafica Hercules

L’eseguibile pcbasic comprende diverse opzioni, tra cui quella di poter emulare la modalità grafica dell’antica scheda grafica Hercules, che permetteva una risoluzione monocromatica di 720×348 pixel. È sufficiente lanciare pcbasic con:

./pcbasic --video=hercules

Con questa configurazione sono disponibili due modalità grafiche:

  • SCREEN 0 (CGA, testo 80×25 oppure 40×25)
  • SCREEN 3 (Hercules, 720×348, 2 colori)

Modalità ANSI Terminal

PC-BASIC permette di utilizzare direttamente l’interfaccia a caratteri della finestra di terminale usata per lanciare l’interprete:

./pcbasic --interface=ansi

I codici ASCII del vecchio CODEPAGE 437 sono correttamente convertiti in maniera trasparente nei loro corrispettivi UTF-8 quando stampati a schermo. In questa modalità sarà possibile utilizzare solo il “modo testo”, e ogni tentativo di utilizzare comandi grafici genererà un errore di Illegal function call.

PC-BASIC in modalità ANSI

Modalità batch

È possibile lanciare PC-BASIC anche senza interfaccia utente, come se fosse uno script di shell. Per fare questo l’opzione da utilizzare è:

./pcbasic --interface=none <filename.bas>

È importante ricordare di terminare il programma che si intende lanciare con il comando SYSTEM (che provoca l’uscita dall’interprete), diversamente si otterà il prompt “Ok” in attesa di ulteriori comandi.

PC-BASIC in modalità BATCH

Conclusioni

PC-BASIC è un interessante progetto di retrocomputing dal punto di vista software. La compatibilità con GW-BASIC è altissima e potrete divertirvi far girare su nuovi schermi i vostri vecchi lavori sviluppati sul glorioso ambiente MS-DOS 3.20.

Buon divertimento!

Riferimenti esterni

Francesco Sblendorio

Francesco Sblendorio

Francesco Sblendorio nasce nel 1977. Nel 1985 fa conoscenza con il mondo dei computer attraverso un Commodore 16: da quel momento la discesa verso il lato oscuro è inesorabile e si trasforma in un geek impenitente. Nell'ambito del retrocomputing ha un sogno: che i vecchi computer non debbano semplicemente sopravvivere (conservando la loro funzionalità), piuttosto devono vivere, attraverso nuovi software sviluppati oggi per i computer di ieri.

Potrebbero interessarti anche...