MBASIC: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
ValterVBot (discussione | contributi)
m Bot: Elimino tutti gli interlinks vedi Wikidata: D:Q623610
m Corretto: "erano però"
 
(4 versioni intermedie di 4 utenti non mostrate)
Riga 1:
Il [[linguaggio di programmazione]] '''MBASIC''' è una versione del [[Microsoft BASIC]] sviluppata da [[Microsoft]] per i [[sistema operativo|sistemi operativi]] [[CP/M]]. L'MBASIC era uno dei 2 linguaggi BASIC contenuti nel pacchetto software offerto da [[Osborne Computer Corporation]] insieme ai suoi [[Osborne 1]], [[Osborne Executive]] e [[Osborne Vixen]].
 
==Caratteristiche tecniche==
===Interazione con il sistema===
L'MBASIC versione 5 richiedeva un sistema CP/M con almeno 28 [[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 deldal 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.
 
===L'editor del linguaggio===
Riga 33:
I [[Array|vettori]] potevano avere fino a 7 dimensioni ma nessuna funzione od operatore poteva operare su di essi: ad esempio, non si potevano eseguire operazioni di assegnamento. A differenza di altri dialetti BASIC di quel periodo, l'MBASIC non supportava le operazioni sulle [[matrice|matrici]] ed i [[Numero complesso|numeri complessi]] né un tipo di [[Binary-coded decimal|dato decimale (BCD)]].
 
Tutte le operazioni in virgola mobile erano eseguite via software dato che quasi nessun sistema CP/M aveva un [[coprocessore matematico]]: per questo motivo le funzioni matematiche precostituite quali il [[Seno (matematica)|seno]], il [[coseno]], la [[Tangente (trigonometriamatematica)|tangente]], il [[logaritmo naturale]], la [[funzione esponenziale]], la [[radice quadrata]], davano solo risultati in singola precisione.
 
L'MBASIC fornva anche un [[Numeri pseudo-casuali|generatore di numeri pseudo-casuali]], a cui l'utente poteva fornire un "seme" usato per ottenere una sequenza di numeri utili per i giochi o le simulazioni.
Riga 40:
 
===Strutture di controllo===
Nell'MBASIC il flusso del programma era gestito tramite le [[Struttura_di_controlloStruttura di controllo#Strutture_di_controllo_della_programmazione_strutturataStrutture di controllo della programmazione strutturata|strutture di controllo]] <code>IF...THEN...ELSE</code> e <code>WHILE...WEND</code> e le istruzioni di salto <code>[[GOTO]]</code> e <code>GOSUB</code>. All'assenza dell'istruzione <code>CASE</code>, per la scelta fra più di 2 opzioni, si sopperiva con l'istruzione di salto multiplo <code>ON...GOTO</code>. Le sub-routine non aveva parametri e tutte le variabili erano globali. L'MBASIC non metteva a disposizione strumenti per la [[programmazione strutturata]] ed era facile scrivere "[[spaghetti code]]".
 
==PEEK, POKE e funzioni definite dall'utente==
Riga 49:
Erano inoltre disponibili le istruzioni <code>INP</code> e <code>OUT</code> per leggere e scrivere direttamente nelle porte di I/O dell'8080: grazie a ciò si poteva controllare direttamente una periferica. Su alcuni computer CP/M, come il diffuso [[Osborne 1]], tutte le istruzioni di I/O erano però riservate dal sistema.
 
Programmi in MBASIC che usavano <code>PEEK</code>, <code>POKE</code> o le funzioni scritte in linguaggio macchina non peranoerano però eseguibili su macchine differenti da quelle per cui erano stati scritti.
 
==Varianti e derivati==