PC-BASIC: il ritorno di GW-BASIC

di Francesco Sblendorio

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×2004 colori)
  • SCREEN 2 (CGA, 640×2002 colori)
  • SCREEN 7 (EGA, 320×20016 colori)
  • SCREEN 8 (EGA, 640×20016 colori)
  • SCREEN 9 (EGA, 640×3504 colori)

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

 




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.


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.


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


Commenti

Post popolari in questo blog

Commodore 16: CPU 7501/8501 FPGA Replacement

Zork, CP/M, le adventure Infocom e la personalizzazione del terminale

APPENDere in Turbo Pascal per CP/M

YAZE: un ottimo emulatore Z80 + CP/M

Modi di andare a capo

Turbo Pascal porting: dal 7.0 (DOS) al 3.01 (CP/M) – parte 1

Un MIST-ico Amiga

CP/M su Commodore 128: terminali e sequenze di escape

CP/M su Commodore 128: non solo “DIR”

Emulare un modem Wi-Fi tramite Raspberry Pi ZeroW