IBM 5550用とPS/55用との日本語DOSの違い [PS/55]
最近、運良くIBM 5550用の日本語DOSを入手することができたので、実動作環境は持っていないが、ディスクの中を調べてみた。
対応機種はPS/55 モデル5530,5540-M/P(24ドットフォント、3.5インチFDDデスクトップモデル)。この機種はシリーズ名こそPS/55となっているが、アーキテクチャーはマルチステーション5550を引き継いでいるらしい。バージョンはK3.44と書かれている。様々な文献からバージョンK3.3とJ4.0の間にK3.4が存在することは知っていたが、3.44とはなんぞ。こうなってくるともうK3.47とかあったとしても不思議じゃないな。
バージョン表記
まず、COMMANDのバージョン表示から。PS/55 MCA機(モデル5550-S/T,5570)用バージョンK3.3は次のようになっている。
IBM Personal System/55
Japanese DOS Version K3.31
5605-JBK (C) Copyright IBM Corp. 1983,1988
(C) Copyright Microsoft Corp. 1983,1988
Licensed Material - Program Property of IBM
次に旧5550モデル(5530,5540-M/P)用。
IBM Personal System/55 (TM)
Japnese Business/Personal Computer Series
Kanji DOS Version K3.44
(C) Copyright IBM Corp. 1983,1989
(C) Copyright Microsoft Corp. 1983,1988
Licensed Material - Program Property of IBM
TM(商標登録)表記の追加や著作権表示の変更はさておき。まずJapnese Business/Personal Computer Series
の部分だが、これはPS/55用のMultiplanやパーソナル・エディターの起動画面でも見られる表記で、マルチステーション5550の頃から引き継いでいるものと予想できる。5550の売り文句である「1台3役」(日本語ビジネス・パーソナル・コンピューター、日本語ワード・プロセッサー、日本語オンライン端末)に出てくる言葉で、日本語DOSプラットフォームのことをそう呼んでいるのだろう。
MCA機用がJapanese DOS
となっているのに対し、5550用がKanji DOS
となっている点はどう解釈すべきだろう。5550の日本語DOSでは当初からこの表記だったようだが、そもそも、製品名は最初のバージョン(K2.0)から日本語DOSと呼ばれていたのに、なぜDOS内の表記はKanji DOSだったのか興味深い。この理由は内部事情を知っている人に聞かない限り明らかにならないだろうが、今回の違いについては5550用はKanji DOS、PS/55 MCA機用はJapanese DOSとして区別しているのかもしれない(サンプルが少ないのでまだ信頼性は乏しい)。
ブートセクター
DOSの起動ディスクの生データを見ると、誰の目にも明らかな違いがあった。ディスクの先頭に配置されるブートセクターのコードが、MCA機用 (Japanese DOS) の場合はPC DOSとそう違いないのに対し、旧5550用 (Kanji DOS) の場合はすっかすか。以下に逆アセンブルしたコードを載せる。
0x00: EB 2A jmp 0x2c
...
この間にBPB (BIOS Parameter Block)などがある
...
0x2c: 80 3E EF 01 01 cmp byte ptr [0x1ef], 1
0x31: 74 06 je 0x39
0x33: B8 12 FF mov ax, 0xff12
0x36: EB 04 jmp 0x3c
0x38: 90 nop
0x39: B8 F0 01 mov ax, 0x1f0
0x3c: CB retf
...
この間は0埋め
...
0x1e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01
0x1f0: 0E 00 80 00 5E 00 00 00 40 05 00 00 00 00 55 AA
本当にこれだけ。AXレジスタにセットしている数字の意味はよく分からないが、retf命令で呼び出し元にリターンしているので、5550本体のBIOS ROMにディスクからRAMへデータを取り込むルーチンが入っているのだろうか。
フォントファイル
5550は描画にDOS/V同様のソフトウェアフォントを使用していると知られているが、このKanji DOSにはフォントは含まれていない。正確には、フォントファイル自体は存在するが、そこには本体内蔵の漢字フォントカードを読み込む為のプログラム?テーブル?が入っているだけ。
DOS上位レベルの互換性
MS-DOSのIO SYSに相当するファイルはPC DOSではIBMBIO COMというファイルであり、日本語DOSもこれに倣っている。ブートセクターとIBMBIO COMだけJapanese DOSから持ってきて、それ以外のファイルはKanji DOSのものを使ってみたところ、CONFIG.SYSで読み込まれるバンクメモリー用のドライバをロード中にこけたが、それを抜いたら正常に動作した。
Kanji DOSにはIBM アプリケーション・セレクターというメニューアプリが入っているのだが、これも正常に動作した。
アプリケーションレベルではJapanese DOSとKanji DOSはかなり互換性があるのかもしれない。まあ、そうでもなければ同じ「PS/55」でくくるのは変だ。顧客に混乱をもたらすだろう。
これ以上深掘りする所はないな。ブートセクターの謎を解決するには5550のBIOSを手に入れるしかないのだろうけど、まあ入手性から言って難しい。
それに、その謎を解決したところでエミュレーターがすぐ作れるって言うわけでもない。割り込みとかI/Oポートとか、アーキテクチャーも不明な点が多すぎる。それと今回のことで分かってきたことは、5550用のアプリケーションはJapanese DOSでも動く可能性が高いということ。これは、わざわざ5550用に作らなくても、PS/55のJapanese DOSが動くならそれで事足りるのでは。
まあでも、単純に興味本位で知りたいっていう気持ちはある。