MBASIC: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 1:
{{WIP|Leo72}}
{{Infobox Software
| nome = MBASIC
Riga 21 ⟶ 20:
==Caratteristiche tecniche==
===Interazione con il sistema===
L'MBASIC versione 5 richiedeva un sistema CP/M con almeno 2 828 [[byte|kB]] di memoria [[Random Access Memory|RAM]] libera ed almeno un'[[floppy disk drive|unità floppy]]. A differenza del BASIC-80, la versione per computer con [[CPU]] [[Intel 8080|8080]]/[[Zilog Z80|Z80]] dell'[[Altair BASIC]] che Microsoft distribuiva personalizzato per lo specifico [[hardware]] del sistema su cui doveva poi girare, l'MBASIC si appoggiava direttamente al sistema CP/M, sfruttandone le chiamate di sistema per la gestione delle operazioni di [[input/output]], ed era in questo modo indipendente dall'hardware sottostante.
 
L'MBASIC non usava tutti i servizi del CP/M ma solo la [[terminale (informatica)|console]], la gestione della stampante e l'accesso ai [[floppy disk|floppy]]: il linguaggio non supportava la modalità [[Computer grafica|grafica]], i colori, i [[joystick]], il [[mouse]], le [[Local Area Network|reti locali]], il suono o gli [[Real-time clock|orologi in tempo reale]]. Inoltre l'MBASIC non supportava le aree utente messe a disposizione del CP/M per l'organizzazione dei file sul disco. Siccome il CP/M era un sistema pensato per computer mono-utente, anche l'MBASIC non supportava nessuna forma di [[multitasking]] come ad esempio il blocco dei file. Nonostante queste limitazioni, l'MBASIC era considerato comunque un BASIC potente e funzionale.
Riga 30 ⟶ 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.
 
===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</coder> 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.
 
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).<!--
Program text, variables, disk buffers and the CP/M operating system itself all had to share the 64 kilobyte address space of the 8080 processor. Typically when first starting MBASIC there would be less than 32 kB memory available for programs and data, even on a machine equipped with a full 64 kilobytes of RAM. Comment lines, prefixed with the <code> REM </code> keyword or an apostrophe, could be placed in the program text but took up valuable memory space, which discouraged BASIC users from fully documenting their code. To allow larger and more complex programs to be run, later versions of MBASIC supported functions that allowed portions of program text to be read in and executed under program control (the "[[chain loading|<code> CHAIN </code>]]" and <code> MERGE </code> statements). No support for "shell" command execution was provided, though this functionality could be duplicated by a determined programmer.
 
A particular advantage of MBASIC was the full-text error messages provided for syntax and run-time errors. MBASIC also had a "trace" function that displayed line numbers as they were executed. While this occupied the same screen space as normal program output, it was useful for detecting conditions such as [[endless loop]]s.
 
=== Files and input/output ===
Riga 87 ⟶ 85:
[[Category:Discontinued Microsoft BASICs]]
-->
{{Portale|Informatica}}
 
[[Categoria:BASIC]]
 
[[de:MBASIC]]