Jump to content

MSX-DOS

From Alfawiki
MSX-DOS
Company typeSoftware
IndustryComputer software
Founded1983
FounderMicrosoft Japan branch, ASCII Corporation, Tim Paterson (developer)
ProductsDisk operating system for MSX computers

MSX-DOS was a disk operating system, now obsolete, created by the Japanese branch of Microsoft specifically for the 8-bit home computer standard known as MSX. It integrated functionalities from both MS-DOS version 1.25 and CP/M-80 v2.2.

MSX-DOS

The development of MSX-DOS, alongside an enhanced BASIC interpreter supporting 3½-inch floppy disk drives, was a collaborative effort between Microsoft and ASCII Corporation aimed at advancing the MSX standard. This initiative introduced disk operations to BASIC, providing a more affordable software distribution method compared to ROM cartridges and more efficient data storage than cassette tapes. Although the standard MSX BIOS did not natively support disks, it contained interfaces for disk extensions. The floppy disk add-on included its own BIOS extension ROM located on the disk controller, commonly referred to as the BDOS.

The BDOS extended MSX BASIC with floppy disk commands and facilitated booting from an authentic disk operating system. MSX-DOS maintained binary compatible status with CP/M-80, allowing users to access its broad software ecosystem economically.

Boot processing

Upon loading MSX-DOS, the system seeks out the COMMAND.COM file on the inserted disk and loads it into memory. The BDOS bypasses the BASIC ROMs entirely, releasing the full 64 KB address space of the Z80 CPU for DOS or other bootable software such as games. Original BIOS ROMs remain accessible through "memory bank switching," enabling DOS applications to interact with hardware controls via BIOS calls. Furthermore, the BDOS ROM supports basic file operations without requiring a command interpreter by means of extended BASIC commands.

During startup, COMMAND.COM attempts to execute an optional batch script named AUTOEXEC.BAT. If MSX-DOS is not initiated and Disk BASIC runs instead, an "AUTOEXEC.BAS" script will be executed if present.

Similarities and differences between MSX-DOS and MS-DOS

  • Similar to MS-DOS 1.25, MSX-DOS1 utilizes the FAT ID located in the first byte of the FAT to determine parameters for its FAT12 file system rather than relying on the BIOS Parameter Block (BPB) found in the boot sector.
  • The MSX system supported multiple floppy disk controllers installed in cartridge slots, permitting booting from various floppy drives (such as 5¼" or 3½"), depending on which contained a bootable disk.
  • The initial release of MSX-DOS, like MS-DOS 1.25, did not support subdirectories.

Commands

The set of internal commands included in MSX-DOS comprised:

Development history

MSX-DOS version timeline
Version Release Date
1.00 June 1984
1.01 March 1985
1.02 July 1985
1.03 August 1985
2.20 July 1988
2.22
2.30 November 1990
2.31 December 1991

On August 10, 1983, Paul Allen reached out to Tim Paterson, who originally developed both 86-DOS and early versions of MS-DOS, to create a "Z80 variant of MS-DOS" tailored for the MSX platform. Although Paterson was initially unavailable due to commitments with his startup Falcon Systems, Allen insisted on his participation; they finalized an agreement on August 17 involving a payment of US$100,000 plus distribution rights for royalty-free versions of MS-DOS.

Paterson's contribution primarily involved translating existing MS-DOS code into Z80 assembly language using his prior experience with a Z80-to-8086 code translator (TRANS.COM). Given that MS-DOS was designed following CP/M's API conventions, this approach allowed MSX-DOS to run CP/M programs with minimal adjustments.

For development purposes, Paterson built a Z80 emulator that operated under MS-DOS, enabling full-scale development on that platform. The MSX-DOS I/O System was directly connected to this emulated environment's I/O layer, allowing precise control over disk formatting—a critical feature for testing file management routines.

By October 1983, Microsoft BASIC along with the M80 macro assembler were functional within MSX-DOS; shortly thereafter COMMAND.COM was completed. After debugging and showcasing progress to Allen, a beta release was delivered on October 26 containing an easter egg encoding Paterson’s name via FAT codes. Subsequently, this codebase was forwarded to ASCII in Japan for further I/O system enhancements by Jay Suzuki, who added his own signature easter egg.

ASCII encountered difficulties adapting MSX-DOS for actual hardware due to lack of direct access to an MSX machine for Paterson. To resolve synchronization issues caused by independent code changes, Paterson traveled to Tokyo in January 1984. Following this visit, Microsoft engineers together with Suzuki brought an MSX unit equipped with debugging tools back to Seattle early that year, addressing remaining problems. Microsoft accepted final delivery and processed payment on April 23, 1984.

At that time, CP/M-80 was the dominant disk operating system for Intel 8080-compatible and Zilog Z80 microprocessors. Microsoft aimed for compatibility with CP/M programs by implementing similar BIOS-level routines for disk operations but replaced CP/M’s less intuitive CCP command processor with an MS-DOS-based COMMAND.COM interface.

Microsoft also introduced its proprietary FAT12 file system instead of CP/M’s filesystem methods to ensure floppy disk compatibility between MSX-DOS and MS-DOS machines—an important factor for business interoperability since CP/M disks were generally incompatible across different hardware platforms.

MSX-DOS incorporated standard disk commands familiar from MS-DOS but absent in CP/M and included pipelining capabilities inspired by MS-DOS. The outcome was a user-friendly DOS environment capable of running major CP/M applications such as WordStar, Turbo Pascal, as well as Microsoft's own "M80" assembler and "L80" linker tools.

Enhanced versions

  • MSX-DOS2: Released in 1988, this version brought significant improvements including support for subdirectories, expanded memory management up to 16MB, and environment string capabilities. Subsequent MSX2 models featured a built-in real-time clock, allowing MSX-DOS to record file timestamps.
  • Nextor: A sophisticated successor to MSX-DOS2 created by Konamiman, built upon the original MSX-DOS2 source code.

Available commands

The command set supported by MSX-DOS version 2 includes:


  • ASSIGN
  • ATDIR
  • ATTRIB
  • BASIC
  • BUFFERS
  • CD
  • CHDIR
  • CHKDSK
  • CLS
  • COMMAND2
  • CONCAT
  • COPY
  • DATE
  • DEL
  • DIR
  • DISKCOPY
  • ECHO
  • ERA / ERASE
  • EXIT
  • FIXDISK
  • FORMAT
  • HELP
  • MKDIR / MD
  • MODE
  • MOVE / MVDIR
  • PATH
  • PAUSE
  • RAMDISK
  • RMDIR / RD / RNDIR
  • REM
  • REN / RENAME
  • SET
  • TIME
  • TYPE
  • UNDEL
  • VER
  • VERIFY
  • VOL
  • XCOPY
  • XDIR


In addition, ASCII developed extra MSX-DOS2 Tools that extend the system's capabilities:


  • ADDAUX
  • BEEP
  • BIO
  • BODY
  • BSAVE
  • CAL / CALC
  • DUMP
  • EXPAND
  • GREP
  • HEAD
  • KEY
  • LIST
  • LS
  • MENU
  • MORE
  • PATCH
  • SLEEP
  • SORT
  • SPEED
  • TAIL
  • TR
  • UNIQ
  • VIEW
  • WC


Related topics

  • SymbOS
  • 86-DOS
  • MIDAS (operating system)
  • DOS Plus