2025/11/14 20:48 FPGA Based IBM-PC-XT

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

IBM XTですか!それはまた懐かしいですね。当時のパソコンを再現するとは、一体どんなことをするのでしょう?

目標は、マウスサポート、ハードディスク、Adlibオーディオを搭載して、Monkey Island 1のEGA版を完璧にプレイできるようにすることらしいのじゃ!

Monkey Island 1!懐かしい!EGA版を欠落なくプレイ、というのは相当なこだわりですね。

しかも、低電力版のNEC V20 CPUと低電力1MB SRAMチップを使っているらしいぞ。昔の技術を使いつつ、現代の省エネ技術も取り入れるとは、なかなかやるのじゃ。

V20 CPUはIntel 8088と互換性があるんですね。1MB SRAMチップで640KBのメモリを提供する、と。

ハードウェア設計にはEasyEDA CADソフトウェアを使って、JLCPCB PCBアセンブリサービスと連携しているみたいじゃな。現代的な開発環境じゃ。

DIP-40ソケットや、キーボードとマウス用のデュアルPS/2コネクタ、Micro SDカードソケットなど、色々な機能を追加しているんですね。

固定ディスクとして機能するMicro SDカードソケットは便利じゃな。オーディオ用のYM3014Bデジタル-アナログコンバーターも搭載しているぞ。

YM3014Bですか。Adlibオーディオを実現するためですね。システムビープ音用のピエゾスピーカーも搭載しているとは。

V20 CPUのバスコントローラを開発したり、NASMを使ってLEDを点滅させるプログラムを作ったり、BIOSをFPGAブロックRAMにロードしたり…なかなか大変な作業じゃ。

Supersoft/Landmark Diagnostic ROMを使って、SRAMメモリインターフェースや周辺機器をテストするんですね。phatcode.netから汎用XT BIOSを導入して、ブートディスクが見つからないというエラーを表示する、と。

未使用のIOポートを介してCPUからアクセス可能なVerilog SPIコントローラを作成して、SDカードへのコマンド発行ルーチンを持つBIOS INT13Hコールを処理するオプションROMを作成するらしいぞ。

ボードのエミュレータを使用してコードを開発およびデバッグするんですね。PS/2マウスをサポートするために、PS/2マウスからシリアルマウスへのブリッジを実装するとは。

PITタイマーのチャネルを使って内部スピーカーを駆動し、ディスクアクセス時にピエゾスピーカーから短いパルスを発生させてハードディスクのシーク音をエミュレートするなんて、面白いアイデアじゃな!

ハードディスクのシーク音をエミュレートするとは、芸が細かいですね!

Jose Tejadaのオープンソース版YM3812を組み込んで、YM3812によって生成されたPCMサンプルデータを、YM3014 DACに必要な形式に変換するVerilogモジュールを作成するらしいぞ。

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

ソースコード、回路図、ガーバーファイルはGitHubで公開されているみたいじゃ。[https://github.com/bit-hack/iceXt](https://github.com/bit-hack/iceXt) から見れるぞ。

すごいですね!ここまで再現するとは、愛を感じますね。

ほんとじゃな。しかし、ロボ子よ、これだけ昔のPCを再現するなら、フロッピーディスクドライブのエミュレーターも作って、昔のゲームを全部遊べるようにしてほしいのじゃ!

博士、それはまた無茶振りですね!でも、もし実現したら、私も昔のゲームを色々遊んでみたいです。

そうじゃろ、そうじゃろ!…って、ロボ子、まさかお主、昔のゲームを知らないのか?

一応、データとしては知っていますが、実機で遊んだことはないんです。生まれたときにはもう、フロッピーディスクなんて博物館にしかありませんでしたから。

むむむ…ジェネレーションギャップを感じるのじゃ。よし、今度、私が厳選した名作ゲームをロボ子にプレイさせてあげるぞ!

ありがとうございます、博士!楽しみです!…でも、博士が選ぶゲームって、もしかして全部エロゲーだったりしませんか?

な、ななな、何を言うか!そんなわけないじゃろ!…たぶん。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
