# MSX-DOS

MSX-DOS is een diskette-besturingssysteem ontwikkeld door Microsoft voor de 8-bits homecomputerstandaard MSX; het is een kruising tussen de revisie 1.0 van MS-DOS en het besturingssysteem CP/M.

## MSX-DOS

MSX-DOS en de uitbreiding met diskettecommando's voor BASIC werden tegelijkertijd door Microsoft ontwikkeld in de vorm van een ROM-BIOS-uitbreiding met de naam BDOS. De reden hiervoor was dat men een alternatief wilde bieden voor de dure softwarecartridges, en een eenvoudiger, sneller en betrouwbaarder opslagsysteem wilde dan compact cassettes. Niet alleen bracht deze BDOS-ROM nieuwe MSX BASIC-opdrachten, maar ook kon hiermee een diskettebesturingssysteem van diskette geladen worden, dat Microsoft tegelijkertijd ook uitbracht: dit was MSX-DOS.
Tijdens het opstarten van MSX-DOS (of bijvoorbeeld een speldiskette) schakelde het BDOS boot-systeem de BDOS en MSX-BASIC ROMS uit, en daarvoor in de plaats RAM in, zodat de van diskette opgestarte software het hele 64K adresseringsgebied ter beschikking had. Wel was het nog steeds mogelijk om subroutines uit de BASIC ROM en de BDOS-ROM aan te roepen via een zogenaamde "bankswitching-mechanisme". Hierdoor kon een via de boot-routine opgestart spel ook zonder de aanwezigheid van DOS toegang hebben tot standaard diskette-aanstuurroutines, en andere basis routines voor het aansturen van de computer.
Een belangrijk verschil tussen MS-DOS en MSX-DOS was dat MS-DOS alleen via een zogenaamde "bootsector" op de diskette (of harddisk) kon starten, terwijl MSX-DOS deze niet nodig had. MSX-DOS had de bootsector óók niet nodig om te bepalen wat voor een soort diskette er opgestart werd, maar kon dit uit de eerste byte van de FAT opmaken. Dit betekende tevens dat het mogelijk was van twee of meer verschillende drives op te starten en niet alleen van "diskette A:". Als de gebruiker bijvoorbeeld in het gelukkige bezit was van zowel een 5¼" diskette-station, als een 3½" diskette-station, kon hij van beide opstarten, afhankelijk van in welk station zich een opstartbare diskette bevond.

## Ontwikkelingsgeschiedenis

In de tijd (1984) dat MSX-DOS werd geschreven bestond er slechts één veel gebruikt diskette-besturingssysteem voor computers op basis van een Intel 8080 compatibele 8-bits microprocessor, namelijk het door Gary Kildalls bedrijf Digital Research ontwikkelde CP/M. Dit besturingssysteem werd ook vaak toegepast door systemen die uitgerust waren met andere met de 8080 compatibele microprocessors, zoals de Zilog Z80 of de Intel 8085. Microsofts eigen MS-DOS besturingssysteem was ook van CP/M afgeleid. En er was relatief veel software voor CP/M beschikbaar. Omdat MSX van een Z80 gebruikmaakte vond Microsoft het blijkbaar een goed idee om MSX-DOS compatibel te maken met CP/M, maar tegelijkertijd ook zo veel mogelijk met MS-DOS. Hiertoe herschreven ze standaard diskette-aanstuurroutines die ook in CP/M aanwezig waren, zodat CP/M software deze ook net zo in MSX-DOS zou aantreffen. Als "bedieningsinterface" gebruikten ze echter niet CP/M's CCP (console command processor), maar herschreven ze hun MS-DOS COMMAND.COM. Ook verwijderden ze CP/M's diskette-opslagsysteem, en vervingen deze door hun eigen FAT-12-systeem. Tevens standaardiseerden ze het formatteringsformaat. Dat was een goede zet, omdat CP/M de implementatie daarvan aan de computerfabrikant overliet. Hierdoor waren CP/M-diskettes vaak niet uitwisselbaar. Door dit alles hadden ze een besturingssysteem gemaakt dat CP/M-programma's kon gebruiken, maar veel gebruiksvriendelijker was en waarvan de diskettes ook door MS-DOS gelezen konden worden. Op deze DOS konden met kleine aanpassingen in principe softwarepakketten zoals WordStar, Turbo Pascal en de assembler "M80" en de linker "L80" gebruikt worden.

## Verbeterde versies

De eerste versie van MSX-DOS kende geen subdirectory's, maar in 1988 kwam Microsoft met de sterk verbeterde versie 2 uit die dit wel had en daarnaast een geheugenbeheersysteem alsmede "omgevingsvariabelen" kende. De latere MSX-2-machines waren in het algemeen ook uitgerust met een klok die op batterijen doorliep als de machine was uitgezet, en waarvan MSX-DOS gebruik kon maken om de datum en tijd in de bestandsgegevens te noteren bij het aanmaken of aanpassen van een bestand.