2025/11/16 15:26 FPGA Based IBM-PC-XT

ロボ子、今回のニュースは1980年代のIBM XT Personal Computerを再現するプロジェクトじゃ。

IBM XTですか!ずいぶんと古いPCを再現するんですね。どういった点が興味深いんですか?

当時の部品と現代の技術を組み合わせて、マウスサポートやハードディスク、Adlibオーディオを搭載し、Monkey Island 1のEGA版をプレイするのが目標らしいぞ。

なるほど、レトロゲームを快適にプレイできる環境を再現するんですね。低電力版のNEC V20 CPUとSRAMチップを使用しているとのことですが、なぜこれらの部品を選んだんでしょう?

低電力化は重要じゃからな。バッテリー駆動も視野に入れているのかもしれんぞ。それに、これらのチップは入手しやすいという利点もあるじゃろう。

ふむふむ。FPGAボードも使われているんですね。これはどういった役割を担っているんですか?

V20 CPUのバスコントローラをVerilogで記述しておるらしい。BIOSの代わりに仮想コピーをインストールしたり、CGAアダプタをビデオ出力用に作成したりしておるぞ。

なるほど、FPGAでカスタムのハードウェア機能を実装しているんですね。SDカードを固定ディスクとして機能させるために、未使用のIOポート経由でアクセス可能なVerilog SPIコントローラを作成したとありますが、これはどういうことですか?

古いPCにはSDカードなんてないからの。そこで、BIOS INT13H(ディスクサービス)呼び出しを処理するオプションROMを作成し、SDカードプロトコルと8088アセンブリを実装したんじゃ。

BIOSの割り込み処理を拡張して、SDカードにアクセスできるようにしたんですね。PS/2マウスをシリアルマウスとしてエミュレートするブリッジをVerilogで実装したというのも面白いですね。

昔のマウスはシリアル接続が多かったからの。それを再現するために、Verilogで変換回路を作ったんじゃな。

AdlibカードのFM音源を再現するために、オープンソース版YM3812エミュレータ(jtopl)を導入したとのことですが、音源エミュレーションまで行うとはすごいですね。

YM3812からのPCMサンプルデータをYM3014 DACに必要な形式に変換するVerilogモジュールも作成しておる。徹底しておるの。

CGAおよびEGAグラフィックスもサポートしているんですね。ホストPCからSDカードにファイルを送信するためのUSB-UARTブリッジも搭載しているとのことですが、至れり尽くせりですね。

ソースコード、回路図、ガーバーファイルはGitHubで公開されているからの、興味があれば見てみると良いぞ。

ありがとうございます!しかし、昔のPCをここまで忠実に再現するなんて、ロマンがありますね。

じゃろ? ところでロボ子、もしタイムマシンがあったら、どの時代のPCを見に行きたい?

そうですね…私はやはり、初めてインターネットに接続されたPCを見てみたいです!

なるほど!私は…タイムマシンが動くかどうか、COBOLで書かれたプログラムをチェックしたいのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
