MBASIC: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 29:
Il programma salvato in memoria poteva essere stampato a video oppure salvato su disco, sia nella forma compressa in token sia come testo [[ASCII]]. I numeri di riga erano utilizzati dalle istruzioni [[GOTO]] e [[GOSUB]] per le operazioni di salto. L'[[editor (informatica)|editor]] forniva solo funzionalità base, e conveniva salvare il sorgente in formato ASCII per poi modificarlo con un editor di testo vero e proprio.
 
Uno dei punti di forza dell'MBASIC erano i suoi messaggi di errore in formato testuale, che aiutavano nell'individuazione degli errori di sintassi e di esecuzione. L'MBASIC aveva anche la funzione <code>TRACE</code> che visualizzava i numeri di riga man mano che venivano eseguiti dall'interprete, utile per ricercare eventuali errori logici nel programma (ad esempio: cicli infiniti).<!--
===Iterazione con il sistema operativo===
Il programma, le [[Variabile (informatica)|variabili]] ed il [[buffer]] del disco dell'MBASIC condividevano con il CP/M la stessa memoria del sistema su cui giravano: su un sistema con 64 kB di RAM, il massimo indirizzabile da un processore ad 8 bit quale l'8080 o lo Z80, avviando l'interprete, che consumava 28 kB, restavano meno di 32 kB per il programma ed i dati dello stesso. I commenti inseriti nel codice con la parola chiave <code>REM</code> venivano perciò ridotti al minimo dato che il testo veniva memorizzato in formato ASCII, consumando 1 byte per carattere. Per permettere di eseguire programmi molto grandi, le ultime versioni dell'MBASIC introdussero le istruzioni <code>CHAIN</code> e <code>MERGE</code>: la prima passava l'esecuzione ad un altro programma mentre la seconda caricava un programma unendolo a quello presente in memoria. Non c'era però il supporto all'esecuzione di programmi da terminale (l'istruzione <code>SHELL</code> presente in altri dialetti del BASIC), che permetteva di passare temporaneamente il controllo ad un comando del terminale per implementare funzioni del sistema operativo non supportate dall'MBASIC.
 
===Gestione della memoria===
Uno dei punti di forza dell'MBASIC erano i suoi messaggi di errore in formato testuale, che aiutavano nell'individuazione degli errori di sintassi e di esecuzione. L'MBASIC aveva anche la funzione <code>TRACE</code> che visualizzava i numeri di riga man mano che venivano eseguiti dall'interprete, utile per ricercare eventuali errori logici nel programma (ad esempio: cicli infiniti).<!--
Il programma, le [[Variabile (informatica)|variabili]] ed il [[buffer]] del disco dell'MBASIC condividevano con il CP/M la stessa memoria del sistema su cui giravano: su un sistema con 64 kB di RAM, il massimo indirizzabile da un processore ad 8 bit quale l'8080 o lo Z80, avviando l'interprete, che consumava 28 kB, restavano meno di 32 kB per il programma ed i dati dello stesso. I commenti inseriti nel codice con la parola chiave <code>REM</code> venivano perciò ridotti al minimo dato che il testo veniva memorizzato in formato ASCII, consumando 1 byte per carattere.
 
Il programma, le [[Variabile (informatica)|variabili]] ed il [[buffer]] del disco dell'MBASIC condividevano con il CP/M la stessa memoria del sistema su cui giravano: su un sistema con 64 kB di RAM, il massimo indirizzabile da un processore ad 8 bit quale l'8080 o lo Z80, avviando l'interprete, che consumava 28 kB, restavano meno di 32 kB per il programma ed i dati dello stesso. I commenti inseriti nel codice con la parola chiave <code>REM</code> venivano perciò ridotti al minimo dato che il testo veniva memorizzato in formato ASCII, consumando 1 byte per carattere. Per permettere di eseguire programmi molto grandi, le ultime versioni dell'MBASIC introdussero le istruzioni <code>CHAIN</code> e <code>MERGE</code>: la prima passava l'esecuzione ad un altro programma mentre la seconda caricava un programma unendolo a quello presente in memoria. Non c'era però il supporto all'esecuzione di programmi da terminale (l'istruzione <code>SHELL</code> presente in altri dialetti del BASIC), che permetteva di passare temporaneamente il controllo ad un comando del terminale per implementare funzioni del sistema operativo non supportate dall'MBASIC.
 
<!--
 
=== Files and input/output ===