IBM 日本語DOS K3.3のベースはIBM DOS 3.2?
この前、NEC PC98のMS-DOS 3.3がMS-DOS 3.21をベースであることを検証したけども、IBMの日本語DOS K3.3を調べてみたところ、こちらもベースはMS-DOS 3.3より前である可能性が高い。ただ、MS-DOS 3.21かというと、そうとも言えない。
まず、日本語DOS K3.3がMS-DOS 3.2x以前もしくはIBM DOS 3.2以前であることは、以下のことから分かる。
- コードページの切り替えに対応していない。
- CALLコマンドやCHCPコマンドがない。
- FDISKで論理ドライブを作成できるが、DOSで論理ドライブを認識するにはドライバを組み込む必要がある。
また、COMMANDでInt 21h, AX=6300h(DBCSベクタアドレスの取得)、AX=6301h、AX=6302h(非公開機能?)、を使用していることから、MS-DOS 3.21ベースのようにも見受けられるが、そうとも言えない面が多くある。
DOSコマンドのバージョン別比較
対応するコマンドを比較してみる。左から、MS-DOS 3.1、IBM DOS 3.2、MS-DOS 3.2、沖電気 (AX) MS-DOS 3.21、NEC 日本語MS-DOS 3.3C、IBM 日本語DOS K3.3、IBM DOS 3.3、MS-DOS 3.3。英語版の比較情報は末尾の資料1より。
DOS Version | 3.1 (MS) | 3.2 (IBM) | 3.2 (MS) | MS-DOS 3.21ベース? | 3.3 (IBM) | 3.3 (MS) | ||
---|---|---|---|---|---|---|---|---|
コマンド | 3.21 (AX) | 3.3C (PC98) | K3.31 (IBMJ) | |||||
APPEND | × | × | ○ | ○ | ○ | × | ○ | ○ |
ATTRIB +A | × | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
ATTRIB /S | × | × | × | × | × | × | ○ | ○ |
CALL | × | × | × | × | × | × | ○ | ○ |
CHCP | × | × | × | × | × | × | ○ | ○ |
FC | ○ | × | ○ | ○ | ○ | × | × | ○ |
FC /A | × | × | ○ | ○ | ○ | × | × | ○ |
MODE | × | ○ | ○ | ○ | × | ○ | ○ | ○ |
REPLACE | × | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
TREE | × | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
XCOPY | × | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
日本語DOS K3.3がDOS 3.3未満であることは黄色背景の部分から分かる。また、日本語DOS K3.3がDOS 3.2以上であることは水色背景の部分から分かる。ただし、青色背景で表したように、MicrosoftのMS-DOSにはあってIBMのDOSにはないコマンドというのがあり、日本語DOS K3.3はIBM DOS 3.2と一致することが分かる。
また、外部コマンドの多くはバージョン3.20、クレジット(著作権表示)は1986年となっていて、IBMスタッフの名前が入っている。
IBM 5550 Multistation Directory Path Display Utility Version 3.20 (C)Copyright IBM Corp 1983,1986 Licensed Material - Program Property of IBM Author - David Litton Modified - Mark Tyson, W. Russell Whitehead Modified for IBM 5550 - Takashi Itoh
クレジットを読むに、幾つかのDOSコマンドを5550用に移植していたのはItoh Takashiさんで、おそらく1977年から2007年までに日本IBMに在籍していらっしゃった伊藤孝さんのことと思われる。
COMMANDの要求するDOSバージョンも3.30ではなく3.20。K3.2がルーツだろうか。こうなってくると、そもそも日本語DOSのバージョン体系がどのようなものだったか調べる必要があるだろう。
IBM 日本語DOSのバージョン体系
そもそも日本語DOSというのは、日本IBMが日本市場向けに発売したマルチステーション5550やパーソナルシステム/55用のDOSであって、そのバージョン体系は本家たる米国IBMのPC DOSとは大きく異なる。バージョン体系がある程度統一されるのは、英語モードへの切り替えが実装された1989年発売のDOS J4.0以降になる。
DOSの新バージョンは新機種に合わせて発表されるので、その時の発表レターさえ見つければ発表日は分かる。
- 日本語DOS K2.0からK2.7(5550用) - 1983年から1986年にかけてリリース。詳細不明。
- 日本語DOS K3.2(5550用) - 1986年5月発表?(5550-J/Kと同時発表?)
- 日本語DOS K3.3(PS/55用) - 1987年5月発表(PS/55シリーズと同時発表)
- 日本語DOS K3.4(PS/55用) - 1988年9月発表(5570-T0Cと同時発表)
- DOS J4.0(PS/55用) - 1989年5月発表(5550-Vと同時発表)
日本語DOS K3.2については発表レターではなく別の資料(資料2)で1986年5月発表とあるのを見つけた。これを5550ファンのサイトの年表と合わせると、5551-J,Kモデルが発表された時期と被る。ただ、同サイトのOSページではK2.7でJ,Kモデルに対応したとあるので、これらの情報が正しいなら、K2.7とK3.2は同時発表だったということになる。
なお、米国IBMがPC DOS 3.2を発表したのは1986年3月のこと。それからわずか2ヶ月後に日本IBMがDOS K3.2を発表したことになる。
結論:日本語DOS K3.3はDOS 3.3ベースではない
本題に戻ると、資料3によれば、日本語版MS-DOS 3.21のOAK β版がリリースされたのが1988年5月。日本語DOS K3.2の推定リリースである1986年5月とは離れすぎている。しかし、実際には日本語DOS K3.3には日本語版MS-DOS 3.21で追加されたDBCSベクタテーブルが実装されている。つまり、日本語DOS K3.3はPC DOS 3.2をベースとしながらも、日本語版MS-DOS 3.21の成果を取り込んでいるという、どっちつかずの状態だったということになる。
日本語DOS K3.2にDBCSベクタテーブルが実装されているかどうかは直接確認できないが、パーソナル・エディターがAX=6300hを使用していてかつ日本語DOS K3.2以降で動作するということなので、既に実装されていた可能性がある。そうなると、MS-DOS 3.21との前後関係はもはや成立しない。
資料4によると、1985年10月にMS-DOS 2.25がリリースされ、Ralf Brown’s Interrupt Listによれば、Int 21h, AX=6300h(DBCSベクタアドレスの取得)が実装されていると書かれている。MS-DOS 2.25の成果を共有して日本語DOS K3.2に取り込んでいると考えられるだろうか。ただ、MS-DOS 2.25については、EPSON PC用MS-DOS 2.11のベースになっていると噂では聞いたことあるが、文献等の公的な資料でその存在を確認したことはない。
ここで分かったことは、日本語DOS K3.3はDOS 3.2相当がベースではあるが、IBM PC DOS 3.2寄りでありながら、MS-DOS 2.25またはMS-DOS 3.21のDBCSベクタテーブルを実装しているということ。
参考資料
- List of DOS commands - PC DOS Retro
- 戸塚正康『日本IBMのパソコン新戦略 DOS/Vの衝撃波』、日本工業新聞社、1991年
- PC98のMS-DOS 3.3がMS-DOS 3.21であることを実証する
- Timeline of DOS operating systems - Wikipedia