最近、幸か不幸の巡り合わせか、IBM 5550のシステムROMが見つかってしまったので、まだ諦め切れていない私はこれを解析していました。私が一番気になっているブートストラップの謎(ディスクI/O周り)については未だ分からない点が多いが、それ以外ではそこそこの収穫があったと思う。

ここではIBM 5550のハードウェア仕様はモデル5551-G06の情報を参考にしているため、初期モデル (A, B, C)と異なる可能性がある。

ハードウェアの違い

IBM 5550 IBM 5160
ブランド名 マルチステーション5550 Personal Computer XT
発表時期 1983年3月 1983年3月
CPU 8086 8MHz 8088 4.77MHz
ROM 16KB 40KB
RAM 256KB 128KB
FDD 1-3 x 2DD 720KB 0-2 x 2D 360KB
FDC μPD765A μPD765A
キーボードI/O XTプロトコル互換? XTプロトコル
ビデオ出力 内蔵 オプションの増設アダプター
CRTC HD46505 HD46505 (MDA/CGA)
フォントROM なし(後にオプション) 8KB (MDA/CGA)
テキスト画面解像度 1066 x 725(5551-B型) 720 x 350 (MDA)
グラフ画面解像度 1024 x 768(5551-B型) 640 x 200 (CGA)

IBM 5550はIBM PCとアーキテクチャーが違うと言われているが、詳細を見ると、ハードウェア周りでは類似点が多い。割り込みコントローラーやDMAコントローラーなどの主要部分はI/Oポートも同じ。大きな違いは、IBM 5550はROMにBASICやBIOSを持たないことと、ディスプレイ周りはCRTコントローラーに日立HD46505(モトローラ6845として知られる)を使っていること以外に共通点がない。キーボード(5556-001など)は同じプロトコルを使用しているとみられるが、5576キーボードのスキャンコードセット8Ahと同じだとすれば、スキャンコードに互換性がない。

メモリーマップ

アドレス IBM 5550 IBM 5160
A0000 全角フォント/APAバッファー -
B0000 ^ MDA
B4000 ^ -
B8000 ^ CGA
BC000 ^ -
C0000 - -
C8000 - Fixed Disk Control
CC000 - -
D8000 半角フォント -
DC000 - -
E0000 属性バッファー -
E1000 - -
E8000 ハードディスク・コントロール・ローカル・メモリー -
? - -
F0000 漢字フォント・カード System ROM (BIOS/BASIC)
? - ^
FC000 システムROM (IPL) ^
FFFFF ^ ^

IPLを解析して分かったことは、IBM 5550はROMにフォントを持たない。例外的に、システムの電源オン時に実行されるBAT (Basic Assurance Test) という自己診断の画面表示用として、16進数(0から9とAからF)のフォントをIPL ROMに持っている。これ以外のフォントはOS(日本語DOSや文書プログラム)のディスクからビデオメモリーにロードされると考えられる。BASICをROMに持たない(日本語DOSのディスクに収録)ため、BIOSもROMに置く必要がなく、ROMにはBATとディスク起動に必要なコードしかない。IPL内でBIOS呼び出しを一切使っていないので、断片的に分かっているメモリーマップとI/Oポートから処理内容を推測するしかなく、ブートストラップの謎は未だに解明できていない。

ディスプレイ・アダプター

IBM 5550のディスプレイ・アダプターは機能的にはPS/55のものとほぼ同じ。アーキテクチャーはPS/55の初代ディスプレイ・アダプターと似ている。

初代ディスプレイ・アダプターの特異なテキストモード [PS/55]

IPL ROMにHD46505用ビデオフォーマットのパラメーターテーブルに1066x725(82桁×25行)の画面モードがあり、紙面上以外で初めてこの画面モードの存在を確認できた。日本語DOSのコードを解析したところでは、漢字フォントカードのI/OポートとROMアドレスが違う。CRTCのI/OポートはIBM 5550ではCGAと同じ位置にある。DOSでのフォントの管理についてはまだ解明できていない部分が多い。

用途不明のI/Oポートがいくつかある。FDCに関連すると考えられる3F3hとか、システム構成情報やテストスイッチ、デバッグLEDに関係していそうなA0h-A2hとか。DOSBoxにエミュレーションを実装するなら、その辺りは誤魔化せそう。86Boxだとそうはいかないから難しい。


※コメント欄が表示されない場合はdisqusについてJavascriptが有効であることを確認して下さい。コメントはスパム防止フィルターによる承認制のため、投稿してもすぐに反映されない場合があります。

管理人 : Akamaki (akm)

は、PCとVTuberに夢中になっている電気技術者です。

私はレトロコンピューティングの愛好家ですが、そのようなリグはもう収集していません。

私の活動はトップページで見ることができます。読んでくれてありがとう!