Locomotive BASIC

linguaggio di programmazione

Il Locomotive BASIC è un interprete BASIC scritto da Locomotive Software per l'uso esclusivo sui computer Amstrad CPC, dov'era preinstallato in ROM. Dal Locomotive BASIC è derivato il Mallard BASIC, presente nel sistema operativo CP/M fornito con l'Amstrad PCW e successivamente nello ZX Spectrum +3 di Amstrad.[1]

Locomotive BASIC
software
Schermata di esempio
Schermata di esempio
GenereInterprete
SviluppatoreLocomotive Software Ltd.
Data prima versione1984
Ultima versione1.1 (1984)
Sistema operativo
Licenzasoftware proprietario
(licenza non libera)

È stato pubblicato in 2 versioni: la 1.0, presente solo nel CPC modello 464, e la 1.1, presente in tutti gli altri modelli, compresi quelli della serie Plus.[2]

Caratteristiche

modifica

Il Locomotive BASIC era un interprete semplice ma potente, con dei comandi dedicati alla gestione della grafica come DRAW, PLOT, INK, PAPER FILL(quest'ultimo nella versione 1.1) e per creare schermi multipli o finestre. Nonostante la sua semplicità, surclassava gli interpreti BASIC degli altri computer con alcune peculiarità quali la gestione di interrupt software basati sul tempo: usando i comandi EVERY e AFTER si poteva far eseguire una riga del listato ad intervalli regolari oppure dopo un certo lasso di tempo, rispettivamente.[1]

Forniva inoltre il pieno controllo sul chip sonoro del CPC, un AY-3-8912 dotato di 3 generatori musicali ed 1 generatore di rumore. Questo chip fu usato anche negli ultimi modelli dello ZX Spectrum così come negli Atari ST e nei computer MSX, anche se nessuno degli interpreti BASIC di queste macchine aveva i comandi per gestirlo pienamente come invece faceva il Locomotive BASIC tramite il comando SOUND: questo accettava 7 parametri per definire ogni aspetto del suono da riprodurre, dai canali da usare al volume alle caratteristiche dell'onda sonora.

L'interprete offriva anche comandi per la gestione dei file, dei dischi e delle cassette con comandi come GET, PUT, ERASE, SAVE, LOAD, RUN, MERGE, ma si trattava di un fattore comune a molti BASIC per sistemi ad 8 bit dato che spesso questi interpreti assolvevano anche al compito di sistema operativo del computer.

La gestione della memoria era affidata a comandi quali MEMORY, per impostare la memoria da riservare al BASIC, LOAD/SAVE, per caricare/salvare dei dati direttamente a partire da uno specifico indirizzo RAM, CALL, per chiamare delle routine presenti in particolari punti della memoria del computer, PEEK e POKE per modificare/leggere il contenuto di una cella di RAM.

I rivali dell'epoca

modifica

Se comparato con il Commodore BASIC del Commodore 64, che non aveva comandi per la gestione della grafica e del suono, il Locomotive BASIC permetteva di sfruttare quasi tutte le caratteristiche del computer, compresi gli sprite, la grafica e l'audio, che nel C64 potevano essere gestite solo tramite una complicata sequela di POKE oppure ricorrendo al linguaggio macchina. Gli MSX e lo Spectrum offrivano invece dei BASIC con potenzialità simili e con un set di comandi più o meno completo per la gestione della grafica e del suono.

Le uniche cose non gestibili dal Locomotive BASIC erano la modalità overscan, usata in alcuni giochi, i modi grafici a 27 colori, la riproduzione di audio in sottofondo, e lo scorrimento dell'immagine.[1]

A differenza del Sinclair BASIC o del BASIC del C64, che usavano molte abbreviazioni da tastiera per l'inserimento dei comandi o dei tasti speciali per la selezione di simboli e colori, il Locomotive BASIC richiedeva la digitazione completa di quasi tutte le parole chiave, che erano poi processate dall'interprete e rese in forma di token, usando solo pochissime abbreviazioni, come "?" per PRINT. I programmi potevano essere memorizzati su dischetto o su cassetta, sia in forma binaria che ASCII.

  1. ^ a b c Elenco dei comandi e storia del Locomotive BASIC, su cpcwiki.eu. URL consultato il 23/10/10.
  2. ^ Dettagli e sintassi del Locomotive BASIC, su cpcwiki.eu. URL consultato il 23/10/10.

Bibliografia

modifica

Voci correlate

modifica

Altri progetti

modifica
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica