
980年代のZ80やMC68000ベースのマイコンボードを動作させるには、プログラムを格納したROMが必要となる。しかし、EPROMやマスクROMは入手が困難になりつつあり、プログラムの書き換えにも専用のライターが必要だ。
FabSceneの読者投稿フォームから、秋月電子通商で280円で投げ売りされていたSuper AKI-80を、Raspberry Pi Pico2だけで動作させる作品が寄せられた。製作者のDragonballEZ氏は、ROMエミュレータ、クロック、リセット回路、シリアルUSB変換のすべてをPico2に統合し、GitHubとnoteで公開している。
RP2350の機能を活用した設計
製作者のDragonballEZ氏が公開した「Pico2ROMEmu」は、Raspberry Pi Pico2(RP2350A搭載)を使用したROMエミュレータだ。このプロジェクトの特徴は、Pico2単体で動作する点にある。クロック生成、リセット出力、UART-USB変換、電源供給(5V)機能をすべて内蔵しており、Z80ベースのSuper AKI-80であれば、このモジュールだけで動作させることができる。
RP2350の5Vトレラント仕様を活用し、3.3V動作のPico2と5V動作のレトロマイコンを直結している。ROMエミュレーション部分はRP2350のPIO機能で実装されており、Z80を10MHz、MC68HC000を12MHzでノーウェイト動作させることが可能だ。この設計により、従来のROMエミュレータで必要だったレベル変換回路やウェイト挿入回路が不要となっている。
従来、Super AKI-80を動作させるには、ROM、クロック発振器、リセット回路、シリアル通信用のUSB-UART変換モジュールなど、複数の外付け部品が必要だった。Pico2ROMEmuでは、これらすべての機能をRP2350のペリフェラルとPIOで実装することで、Raspberry Pi Pico2単体ですべてをまかなえる設計となっている。
エミュレーション対象は27256規格のDIP-28ピンROMで、基本構成では8KBだが、32KBに対応したブランチも公開されている。動作確認済みのターゲットボードには、Super AKI-80、Tom’s SBC(Grant Searle氏のCP/Mマシン)、68k-nano(Matt Sarnoff氏のMC68000ボード)が含まれる。
Note記事では、Super AKI-80向けの最小部品での組み立て方法が詳細に解説されている。必要な部品はDIP28Pソケット、10kΩ抵抗7本、0.1μF積層セラミックコンデンサ5個、ヘッダピン4本のみで、総部品点数は極めて少ない。これらをSuper AKI-80基板にはんだ付けし、Pico2ROMEmuを接続するだけで、BASICインタプリタが起動する。
ファームウェアの書き込みは、GitHubから配布されているuf2ファイルをPico2のBOOTSELモードでドラッグ&ドロップするだけで完了する。PC接続後は、Tera Termなどのターミナルソフトウェアでシリアル通信が可能となり、BASICプログラムの入力や実行ができる。Note記事では、ASCIIアートを描画するBASICプログラムを実行し、Z80が10MHzで正常動作していることを確認する手順が紹介されている。プログラムの実行時間を計測することで、クロック周波数が設計通りであることを検証できる仕組みだ。
GitHubリポジトリには、ソースコード、KiCadの回路・基板データ、ビルド用スクリプトが公開されており、RP2350Bコアボード版の資料も別リポジトリで提供されている。プロジェクトはMITライセンスで公開されているが、ROMデータ部分は各元サイトのライセンスに従う必要がある。
なお、今回紹介した作品の派生プロジェクトとして、Raspberry Pi Pico2がCOSMAC CPUのメモリとして動作するPico2MEMEmuCosmacも別の作者が公開している。興味のある読者は併せて参考にしよう。
※この記事は読者投稿フォームからの応募に基づいて作成しました。
FabSceneでは、あなたが開発したユニークな作品を募集しています。詳しくはこちらから

