# MSX-DOS

L'MSX-DOS è un sistema operativo su disco sviluppato da Microsoft per gli home computer ad 8 bit compatibili con lo standard MSX. L'MSX DOS è ispirato al CP/M anche se deriva dall'MS-DOS, di cui riprende non solo molti dei comandi ma anche il file system FAT12.

## Storia

Quando l'MSX-DOS fu scritto (1984) esisteva per i microprocessori ad 8 bit compatibili con l'Intel 8080 (come lo Z80) un solo sistema operativo su disco molto diffuso, il CP/M, di Digital Research. Questo DOS era molto usato in abbinamento ai sistemi Z80 per via del fatto che questo processore era basato su un'architettura estesa di quella dell'8080. Anche l'MS-DOS di Microsoft era ispirato al CP/M (vedi 86-DOS).
Per far sì che l'MSX-DOS potesse far girare il software CP/M in circolazione (anche se leggermente modificato), Microsoft decise di implementare nel suo DOS delle funzionalità simili a quelle del BIOS del CP/M, routine che i sistemi CP/M utilizzavano per eseguire determinati compiti di gestione del disco, come l'apertura dei file ad esempio. Decise però di non utilizzare il gestore dei comandi del CP/M perché ritenuto poco intuitivo sostituendolo con un interprete a riga di comando (il command.com) derivato da quello del suo MS-DOS. Microsoft scelse anche il suo FAT12 come file system al posto di quello del CP/M, permettendo così ai dischi dell'MSX-DOS di poter essere usati sulle macchine MS-DOS, impiegando un solo sistema di formattazione e di gestione dei file. Questa scelta si rivelò molto importante dato che i dischi formattati CP/M spesso non erano interscambiabili fra macchine diverse per via dei differenti schemi di formattazione utilizzati. Microsoft aggiunse anche all'MSX-DOS un insieme di comandi compatibili con quelli dell'MS-DOS ma non con quelli del CP/M e, per ultimo, convertì il sistema di pipeline del suo MS-DOS per l'MSX-DOS.
Il risultato di tutto questo fu un DOS molto più "user friendly" del CP/M ma (in linea di massima) compatibile con la maggior parte dei pacchetti software CP/M in circolazione come WordStar, Turbo Pascal, il compilatore M80 ed il linker "L80".

## Caratteristiche

L'MSX-DOS ed il BASIC esteso con il supporto ai dischi da 3"½ furono sviluppati congiuntamente da Microsoft per il nuovo standard per home computer MSX per aggiungere al BASIC le funzionalità per gestire i dischi e per dare al sistema un supporto di memorizzazione più economico delle cartucce e più performante rispetto alle cassette a nastro. Il BIOS standard degli MSX di serie non supportava le unità dischi per cui il sistema di espansione per implementare il supporto ai floppy era dotato di un'estensione ROM per il BIOS chiamata BDOS. Similarmente al BDOS del CP/M, il BDOS era un livello software intermedio tra il BIOS e l'MSX-DOS che non solo metteva a disposizione dei nuovi comandi per gestire i dischi ma conteneva anche un sistema di boot grazie al quale era possibile avviare da floppy un vero e proprio sistema operativo. In questo caso il BDOS disattivava le ROM del BASIC per cui l'intero spazio indirizzi di 64 kB gestibili dal processore Z80 all'interno del computer MSX potevano essere utilizzati dal DOS o per altri dischi avviabili, ad esempio quelli contenenti i giochi. Contemporaneamente si poteva continuare ad accedere alla ROM del BIOS originale usando il meccanismo del bank switching per cui il software basato sul DOS poteva continuare ad usare le chiamate al BIOS per gestire l'hardware ed invocare le routine software contenute nella ROM principale. Questo era possibile anche con i comandi estesi del BASIC dato che il BDOS integrava un sistema base di accesso ai file anche senza l'uso di un interprete dei comandi.
La differenza più rilevante tra l'MSX-DOS e l'MS-DOS era che il primo non usava il "settore di boot" del disco per l'avvio ma partiva usando le routine contenute nella ROM del BDOS ed utilizzava il valore di descrizione del tipo di supporto memorizzato nel primo byte della FAT per determinare i parametri del file system, a differenza dell'MS-DOS che conteneva questo valore nel settore di boot. Inoltre, dato che poteva esserci più di un controller per unità dischi in 2 o più porte di espansione, l'MSX-DOS poteva effettuare l'avvio da diverse unità dischi: ciò significava che era possibile avere sia un'unità per i dischi da 5"¼ sia un'unità per quelli da 3"½ con il sistema che poteva avviarsi da ognuna di esse, a seconda di quale contenesse un disco avviabile.

## Versioni migliorate

La prima versione dell'MSX-DOS non gestiva le sub-directory, supporto che fu introdotto successivamente con la versione 2. I computer MSX-2 presentavano un orologio in tempo reale, che l'MSX-DOS poteva usare per marcare i metadati temporali dei file.