|This article does not cite any references or sources. (December 2009)|
|Company / developer||Microsoft Corporation|
|Source model||Closed source|
|Marketing target||Home computers|
|Available programming languages(s)||Assembler, MSX BASIC, Pascal|
|Supported platforms||MSX home computer architecture|
|Kernel type||Monolithic kernel|
|Default user interface||Command line interface, Text user interface|
MSX-DOS and the extended BASIC with 3½-inch floppy disk support were simultaneously developed by Microsoft for the developing home computer standard MSX to add disc capabilities to BASIC, and to give the system a cheaper software medium than Memory Cartridges, and a more powerful storage system than cassette tape. The standard BIOS of an unexpanded MSX did not have any floppy disk support, so the additional floppy disk expansion system came with its own BIOS extension ROM (built-in on the disk controller) called the BDOS, it not only added floppy disk support commands to MSX BASIC but also a booting system, with which it was possible to boot a real disk operating system. In that case BDOS bypassed the BASIC ROMs so that the whole 64K of address space of the Z80 microprocessor inside the MSX computer could be used for the DOS or for other boot-able disks, for example disk based games. At the same time the original BIOS ROM's could still be accessed through a "memory bank switch" mechanism, so the DOS based software could still use BIOS calls to control the hardware and other software mechanisms the main ROM's supplied. Also, because of the BDOS ROM, basic file access capacity was available even without a command interpreter by using the BASIC extended commands.
One major difference between MSX-DOS and MS-DOS was that MSX-DOS did not use the "boot sector" on the floppy to boot, but booted using the BDOS ROM routines, and used the media descriptor value from the first byte of the FAT to select file system parameter profiles for its FAT12 file system instead of from the BIOS parameter block in the bootsector. Also, because there could be more than one floppy disk controller in two or more cartridge slots, MSX-DOS could boot from several different floppy disk drives. This meant that it was possible to have both a 5¼" floppy disk drive and a 3½" disk drive, and you could boot from either one of them depending on which drive had a boot-able floppy in it.
At the time (1984) MSX-DOS was written, there was only one popular disk operating system for 8-bit Intel 8080 compatible microprocessors, which was the CP/M system, written by Digital Research. It was also often used with Z80 systems, because the Z80 used an extended 8080 architecture. Microsoft's own disk operating system was also inspired by CP/M.
To be able to run (slightly modified) CP/M software Microsoft decided to implement functionality similar to major parts of the CP/M BIOS, routines that CP/M systems used to do specific disk operating tasks, such as opening files etc. Instead of basing the command processor on CP/M's CCP, which was known for some user unfriendliness, a command line interpreter (COMMAND.COM) inspired on its MS-DOS counterpart was used. Microsoft also chose its own FAT12 file system over CP/M's filing methods. This ensured that MSX-DOS floppies could also be used on an MS-DOS machine, and that only one single formatting and filing system would be used. This was an important decision, because CP/M disk were often not interchangeable between machines, incompatible disc formatting schemes being a factor in this.
Microsoft also added a standard set of disk commands to MSX-DOS, that were compatible with MS-DOS but not with CP/M. Finally they converted their "Pipelineing" system from MS-DOS to MSX-DOS. The resulting DOS was a system that was much user friendlier than CP/M, but was (in principle) compatible with major CP/M software packages such as WordStar, Turbo Pascal and the "M80" assembler and "L80" linker.
The first version of MSX-DOS did not have subdirectories, but in 1988 it evolved to version 2, offering facilities such as subdirectories, memory management and environment strings. Later versions of MSX computers (MSX-2) added an internal real-time clock which MSX-DOS could use for time stamping files.