The Computer History Simulation Project が開発している SIMH は、 今は手に入らないレトロ・コンピュータを 実体験するには大変便利なシュミレータです。 私は執筆中の連載においても 良く活用しているのですが、 その連載の都合から SIMH の機能追加を試みざる得なくなりました。 このページに私が作業中の SIMH の改造について備忘録を残しておきます。


SIMH のマニュアル
取り敢えず SIMH に関するマニュアルです。

SIMH Document
ソースコードに付属するドキュメントです。
SIMH のコマンドについて解説してあります。

Writing a Simulator for the SIMH System [PDF]
SIMH の内部構造を解説しています。これが最も重要かな?

Adding An I/O Device To A SIMH Virtual Machine [PDF]
SIMH に新しいデバイスを追加する方法を説明しています。
「TM03/TE16 のサポート」を始める前に読めば良かった。

その他にも、 ちょっとしたドキュメントがチョコチョコあります。


SIMH による VAX-11/780 のエミュレーション
UNIX/32V をオリジナルの状態で動かすため、 VAX-11/780 のエミュレーションをする必要が出てきました。 困ったことに SIMH の VAX は Micro VAX III しかエミュレートできませんし、 更に UNIX/32V のディストリビューションテープは RP0[456] と TE16 しかサポートしていません。 ということで、どうにかして SIMH で VAX-11/780 のエミュレーションができるようにすることを決意しました。

SIMH はさまざまなレトロ・コンピュータをサポートしていますが、 そのソースコードは エミュレートを行う機種に依存するコードと 共通のコードがきれいに整理されています。 また、 "Writing a Simulator for the SIMH System" [PDF] という内部を解説した資料もあります。 なので 「機能追加は比較的楽なのでは?」 と私は考えました。(考えが甘かったかも知れない)

で、VAX-11/780 エミュレーションをサポートするための戦略ですが、、、
主要な課題は次の2つです。

で、どっちから始めるか??


TM03/TE16 のサポート
結局 PDP-11 のエミュレータでの TE16 のサポートから着手することにしました。 理由はこっちの方が簡単そうに見えたから。(もちろん KA780 と比較しての話) それに UNIX V7 もこのテープユニットをサポートしているので、 ほぼ完璧にエミュレーションができる PDP-11 を対象に、 SIMH の内部の勉強を兼ねて、 新しいデバイスを追加する作業をすることにしました。

詳細は こちら