MSX-DOS(エムエスエックスドス)は、MSX規格向けに開発された、CP/M上位互換のDOSである。MSX-DOSとMSX-DOS2がある。

## 開発

MSX-DOSは、アスキーとマイクロソフト、国内家電各社などを中心として1983年に策定されたホームコンピュータ(家庭用テレビに接続し直ぐに使用できる安価で便利なコンピュータの事)の統一規格「MSX」のシステム環境、OS(オペレーティングシステム)環境としてMSX-BASICと共に開発された。1983年、マイクロソフトは、MS-DOSをMSXに移植する契約をティム・パターソンと交わした。パターソンは彼の会社に資金を助成するという契約を受け入れ、1984年にMSX-DOSオペレーティングシステムを完成させた。

## 互換性

OSとしては、当時80系(インテル8080系)CPUを搭載したコンピュータで広く利用されていた米デジタルリサーチ社開発のCP/M-80に対する上位互換性を確保したクローンOSである。構造的には、CP/M 1.4相当の機能を持つ。フロントエンドとなるCOMMAND.COMコマンドラインインタプリタは、CP/MのCCPの代わりにMS-DOS環境で標準的に用いられていたCOMMAND.COM環境をZ-80向けに移植したサブセットである。このため、MSX-DOSとMS-DOSはシステムコールやバイナリには互換性はない。

MSX-DOSは、CP/Mに対してシステムコール(BIOS)およびバイナリ互換を持ち、TPAの容量に注意すればCP/M用の WordMaster/WordStar や Turbo Pascal などの各種アプリケーションはファイルシステムをコンバートするのみでMSX-DOS上でそのまま動作する。

ファイルシステムとしては、当時すでに普及が始まっていた86系(インテル8086系)コンピュータ向けのMS-DOS 1.25 で用いられていたFAT12と互換性を持つファイルシステムを採用しており、制限はあるもののMS-DOSとフロッピーディスクを共用できる。なお、MSXの半角平仮名(1バイトの平仮名文字)などをサポートするために8bit透過性が保証されているなどの特色もある。

## MSX用のMSX-DOS

フロッピーディスクドライブやパーソナルコンピュータ本体、アプリケーションソフトウェアに付属して配布された。使用には最低64KBのメインメモリが必要。MSX-DOSだけが個別に販売されることはなかった。ただし、開発環境などが同梱された MSX-DOS Tools というパッケージはあった。

BIOSと拡張されたシステムコールは併せてBDOSと呼ばれ、ディスクドライブのインターフェースカートリッジのROMに内蔵されているものを呼び出して実行している。このためDISK-BASICからもBDOSの実行ができる。またDOSからMSXのROM-BIOSやスロットの使用もできる。システムファイルはMSXDOS.SYS・COMMAND.COM・AUTOEXEC.BATであり、MS-DOSにあるCONFIG.SYSや、デバイスドライバを記述するコマンドなどはない。MSXの特徴として、その柔軟かつ強力なBIOSシステムによって拡張機器にはBIOSが搭載されており、接続すると自動的にBIOSが組み込まれるため、デバイスドライバ等の組み込みは構造上必要なかった。

構造的な特徴としては、MSXの強力なBIOSシステムおよびそれらを共有するMSX-BASIC環境との間に、次のような親和性の高さがある。

- コマンドプロンプトから互いの環境を行き来することが可能。
- DOSとBASICの双方で単一のファイルフォーマット(FAT12ファイルシステム)を使用。
  - これにより MS-DOS 搭載パソコンと、フロッピーディスクのフォーマットをコンバートすることなく共用してデータを交換できる。ただし、MS-DOS で作成されたディスクのサブディレクトリは認識できるが(DIRコマンド等で表示可能)、アクセスは不可能である。したがって MS-DOS とデータを交換する場合は、ルートディレクトリにファイルを置く必要がある。
- MSX-DOS上のアプリケーションからBIOSを、MSX-BASIC環境からMSX-DOSのBDOSを利用可能。
- CP/M用のアセンブラ(M80)やコンパイラ等を用いてコーディングする際にもMSX用のBDOSやBIOSをシームレスに利用可能。

これにより、当時の8bitコンピューター用のDOS環境としては破格の機能と柔軟性を確保した上で、豊富なCP/Mのアプリケーションやデータおよび知見なども活かすことが可能だった。

ファイルの時刻の管理はパソコンの本体にカレンダー時計機能があればそれを利用し、なければ起動時に日時を入力するようになっている。

MSX-DOSは4台までのフロッピーディスクのほかハードディスクドライブなどにも対応している。ただしファイルシステムがFAT12相当であるため、ドライブ1パーティションあたりの容量は最大32MBまでという制限がある。またドライブレターもワークエリアの容量の関係上、A:からH:までの最大8台分に限定され、MSX-DOSおよびDISK-BASICで取り扱い可能なストレージの最大容量は32MB×8の256MBとなっている。なお、当時のPC/ATやPC-9801などの一般的なMS-DOS環境に対応したESDIやSASIのHDDの容量は20~80MB程度であり、発売当時としてはこれだけの容量を管理できれば十分と言えた。

## MSX用以外のMSX-DOS

MSX-DOSは本来MSX用のオペレーティングシステムとして開発された製品である。しかし、マイクロソフトの表計算ソフトウェアであるMicrosoft Multiplanを日本電気製のPC-8800シリーズやシャープ製のX1シリーズ、MZ-2500シリーズに移植する際にMS-DOSとのファイルの互換性が重視されたためMSX-DOSは両機種にもサブセットとして移植され、専用のメモリボードと組み合わせて販売された。MSX用のMSX-DOSと同様に、これらの移植版についてもMSX-DOSだけが個別に販売されることはなかった。

PC-8801とX1には、MS-DOS互換フォーマットやCP/Mをサポートする類似のOSとしてC-DOSがあった。

パチンコ基板にも搭載された。MSXの総生産台数500万台に加え、パチンコ基板の年間生産台数が420万台に及んだことから、当時の日本のOSシェアのトップは実はMSX-DOSだったと元マイクロソフトの古川享は指摘している。

## 後継

### MSX-DOS2

MSX-DOS2(エム・エス・エックス・ドス・ツー)は1988年にMSX2用にアスキーが開発し、OS単体(ディスク+カートリッジ)で販売したものである。因みに商品名は『日本語MSX-DOS2』

MSX-DOS2では、ファイルシステムにMS-DOS Version 2.11とほぼ同等の仕様の階層ディレクトリやファイルの特殊属性機能、環境変数とパス、リダイレクトやパイプなどが追加されたほか、日本語表示(全角文字、漢字ROM)への対応や、マッパーRAM(EMSに似た切り替え機構を備えた大容量RAM)の管理ルーチンと、これを使用したRAM DISKの機能が備え付けられた。COMMAND.COMなどのヘルプ機能も充実した。同時に、DISK-BASICの拡張もなされた。ファイルシステムはFAT12のままだが、後年ユーザー有志の手によるパッチを当てることによりFAT16のアクセスも一応可能となった。

専用のROMカートリッジには、拡張されたBIOS/BDOSがROMに収められている。動作するために最低128KBのマッパーRAMが要求され、作業領域として32KBのRAMをマッパーRAMから確保する。そのため、内蔵増設RAMがあるものとないものの2つのバージョンがある。RAMがあるものはカートリッジ内部でスロットを拡張しているため、セカンダリスロットでは動作しない。

なお、MSX-DOS2のROMカートリッジの内容はMSXturboRでは本体に内蔵された。

### MSX-DOS3

2003年11月30日に行われた「MSXマガジンまつり」にて西和彦からコメントがあり、「2HDとTCP/IPに対応し2004年にリリース予定」とされていた。1チップMSXのアスキーからの製品化が白紙になったこともあり、その後の状況は不明。

## MSX-DOSの主なアプリケーション

- MSX-DOS TOOLS : CP/Mから移植したM80(アセンブラ)、L80(リンカ)、MED(エディタ)などの開発ツールをまとめたもの。
- MSX-DOS2 TOOLS : MSX-DOS TOOLSの、DOS2専用の日本語(漢字)対応版。
- MSX-SBUG : シンボリックデバッガ
- MSX-SBUG2 : MSX-SBUGの、DOS2専用の日本語(漢字)対応版。
- MSX-C : MSX用のC言語コンパイラ(LSI C-80セルフ版相当)と、そのライブラリ。使用するにはDOS TOOLSが必要。

## MSX-DOS以外のMSX用DOS

MSXではMSX-DOS以外にも以下のOSが動作する。開発年順に列記する。

- CP/M
- S-OS"SWORD"
- UZIX
- SymbOS
- Contiki
- Nextor