MSX-DOS

MSX-DOS（エムエスエックスドス）は、MSX規格向けに開発された、CP/M上位互換のディスクオペレーティングシステムである。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

 脚注 

関連項目
 MSX-BASIC
 HALNOTE
 MSX-VIEW

Category:マイクロソフトのオペレーティングシステム
Category:ディスクオペレーティングシステム
dos
Category:1984年のソフトウェア