Categories: 工作・開発

父のために作ったPC/XT互換機、CPUは実物でチップセットはFPGA

1980年代のPCで当時のソフトを動かそうとすると、まず実機が手に入らない。エミュレーターで済ませる手はあるが、それでは本物のCPUが命令を処理している感触は得られない。オランダのMathijs van den Berg氏は、CPUだけ実物を残して周りを固めていたチップ群をすべてFPGAに置き換えたIBM PC/XT互換機「Gertieboard」を作り、設計と資料をGitHubで公開した。

構成は2階建てになっている。上段が自作の基板で、ソケットに挿したNEC V20のCPU、SPIフラッシュ、VGA、PS/2、USB端子2つ、POSTコードを出す7セグメント表示を載せる。下段は市販のFPGAボードTerasic DE0-Nanoが受け持ち、バス制御、メモリーコントローラー、CGAとEGAの映像出力、割り込みコントローラー8259、タイマー8253、DMA 8237、フロッピーコントローラー8272、USBホストコントローラー、ブートROMまでを担う。CPUもFPGAの中に作れたはずだが、そこは譲らなかったと同氏は書く。1983年に周辺チップが担った役割だけをFPGAに任せる、という線引きだ。

もう1つの設計方針は、父親が自分の手ではんだ付けできることだった。基板の部品はほぼすべてスルーホールで、表面実装はSPIフラッシュとPSRAMのSOIC-8が2個だけ。FPGAに既製のボードを選んだのも、微細ピッチのはんだ付けを誰にも強いないためだ。実際に組み立てたのは父親のGeert氏で、その愛称Gertieがそのまま基板の名前になっている。

動作は単体で完結する。FPGAは自前のフラッシュから構成情報を読み、BIOSは基板上のSPIフラッシュから、DOSはUSBハードディスクから起動する。USBホストコントローラーをFPGAに、Bulk-Only TransportとSCSIのスタックをBIOSに実装したため、USBメモリーが504MBのCドライブとして見える。EGAは64KBのビットプレーン4枚をSDRAM上に置いてCommander Keen 4が動き、USBマウスはINT 33hを叩くのでMonkey Islandのカーソルも動く。

上段の基板は2021年にできていた。ただしメモリーの化け、タイミング収束、消えない負のスラックの3つが解けず、起動のたびに挙動が変わる状態で約4年間引き出しに入っていた。再開の理由は父親の67歳の退職で、BIOSのバナーには「Retirement Edition」と入る。2度目の作業ではAIエージェントのClaudeと組んだと同氏は明記しており、まず4年来の3つの障害が片づき、そこからCGA、キーボード、DMA、DOS、USBホストへ一気に進んだ。コミットも本人とClaudeの連名になっている。

動作クロックは10MHzで、POSTがタイマーに対して校正ループを測り、実測値を画面に表示する。実家にあったPhilips P2120は出荷時4.77MHzながら中身は10MHz定格の8088-1で、父と祖父がターボピンを有効にして10MHzで使っていた。今回のV20は8MHz品なので、定格を超える側からの到達になる。ライセンスはMITだが回路図はまだ公開しておらず、出すときは基板向けのCERN-OHL-Pが自然だとしている。

関連情報

FabScene編集部

FabScene編集部