MSX-DOS

MSX-DOS（エムエスエックスドス）は、MSX規格向けに開発された、CP/M上位互換のDOSである。MSX-DOS1とMSX-DOS2がある。 MSX-DOSは、アスキーとマイクロソフト、国内家電各社などを中心として1983年に策定されたホームコンピューター(家庭用テレビに接続し直ぐに使用できる安価で便利なコンピューターの事)の統一規格「MSX」のシステム環境、OS（オペレーティングシステム）環境としてMSX-BASICと共に開発された。1983年、マイクロソフトは、MS-DOSをMSXに移植する契約をティム・パターソンと交わした。パターソンは彼の会社に資金を助成するという契約を受け入れ、1984年にMSX-DOSオペレーティングシステムを完成させた。 OSとしては、当時80系（インテル 8080系）CPUを搭載したコンピューターで広く利用されていた米Digital Research社開発のCP/M80との上位互換性を確保したクローンOSの一種である。構造的には、CP/M 1.4相当の機能に加え当時すでに普及が始まっていた86系（インテル 8086系）コンピューター向けのMS-DOSの Version 1.25 で用いられていたFAT12と互換性を持つファイルシステムを採用した。 フロントエンドとなるCOMMAND.COMコマンドインタプリターは、CP/MのCCPの代わりにMS-DOS環境で標準的に用いられていたCOMMAND.COM環境を移植したサブセットである。ただし、MSX-DOSとMS-DOSはシステムコールやバイナリーには互換性の無いまったく別のOSである。 MSX-DOSは、CP/Mとのシステムコール(BIOS)およびバイナリー互換を持っている。FAT12とほぼ同一のファイルシステムを採用しているが、MSXの半角平仮名（1バイトの平仮名文字）などをサポートするために8bit透過性が確保されているなどの特色もある。 CP/MとはTPAの容量に注意すればバイナリーにも互換性があり、CP/M用の Word Master/WordStar や Turbo Pascal などの各種アプリケーションはファイルシステムをコンバートすると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 DISK-BASICでもファイルシステムにはFAT12を採用。 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およびMSX DISK-BASICで取り扱い可能なストレージの最大容量は32MB×8の256MBとなっている。なお、当時のPC/ATやPC-9801などの一般的なMS-DOS環境に対応したESDIやSASIのHDDの容量は20～80MB程度であり、発売当時としてはこれだけの容量を管理できれば十分と言えた。 MSX-DOSは本来MSX用のオペレーティングシステムとして開発された製品である。しかし、マイクロソフトの表計算ソフトウェアであるマルチプランを日本電気製の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（エム・エス・エックス・ドス・ツー）は1988年にMSX2用にアスキーが開発し、OS単体（ディスク+カートリッジ）で販売したものである。因みに商品名は『日本語MSX-DOS2』 MSX-DOS2では、ファイルシステムにMS-DOS Version 2.11とほぼ同等の仕様の階層ディレクトリやファイルの特殊属性機能、環境変数とパス、リダイレクトやパイプなどが追加されたほか、日本語表示(全角文字、漢字ROM)への対応や、マッパーRAM（EMSに似た切り替え機構を備えた大容量RAM）の管理ルーチンと、これを使用したRAM DISKの機能が備え付けられた。COMMAND.COMなどのヘルプ機能も充実した。同時に、MSX DISK-BASICの拡張もなされた。ファイルシステムはFAT12のままだが、後年ユーザー有志の手によるパッチを当てることによりFAT16のアクセスも一応可能となった。 専用のROMカートリッジには、拡張されたBIOS/BDOSがROMに収められている。動作するために最低128KBのマッパーRAMが要求され、作業領域として32KBのRAMをマッパーRAMから確保する。そのため、内蔵増設RAMがあるものとないものの2つのバージョンがある。RAMがあるものはカートリッジ内部でスロットを拡張しているため、セカンダリスロットでは動作しない。 なお、MSX-DOS2のROMカートリッジの内容はMSXturboRでは本体に内蔵された。 2003年11月30日に行われた「MSXマガジンまつり」にて西和彦からコメントがあり、「2HDとTCP/IPに対応し2004年にリリース予定」とされていた。1チップMSXのアスキーからの製品化が白紙になったこともあり、その後の状況は不明。 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ではMSX-DOS以外にも以下のOSが動作する。開発年順に列記する。 CP/M S-OS"SWORD" UZIX SymbOS Contiki Nextor MSX-BASIC HALNOTE MSX-VIEW ^ Paterson, Tim (2014年2月17日). “The History of MSX-DOS”. Jorito, Maggoo, John Hassink, MSX Resource Center. 2014年5月31日閲覧。 ^ 古川享のtweet