1974年に登場したIntelのCPU「8080」を、わずか512バイトのRAMしか持たない安価なマイコン「ATtiny85」の上で再現する。そんなエミュレーターを、Ted Fried氏が公開した。CP/M(初期のパソコン用OS)や、Microsoftの「Altair BASIC」といった当時のソフトがそのまま動く。
8080は、初期のパソコンを支えた歴史的なCPUだ。一方のATtiny85は、RAMが512バイト、書き込めるプログラム領域が8KBと、極めて小さい。本来の8080を動かすシステムより乏しい資源で、そのCPUの動きをそっくり再現するのが、この「MCL8080+」だ。
工夫はバスの作り方にある。元の8080は40本の端子で外部とやり取りするが、Fried氏はこれをSPIという数本の信号線に置き換えた。ATtiny85は8080のCPUだけを担い、メモリやROM、周辺機器、ディスクの中身はすべて、より強力なTeensy 4.0が受け持つ。ATtiny85の5Vの信号は、抵抗で分圧してTeensy側の3.3Vに合わせる。
プログラムやデータはSPIの先にあるため、毎回読みに行くと遅くなる。そこでFried氏は、ATtiny85の中に128バイトの小さなキャッシュを置き、読み込みの回数を減らした。コードはC言語で書き、関数の呼び出しを減らすなど、容量と速度を切り詰めている。SPIも、連続するアドレスをまとめて転送するなど独自に最適化した。
こうした積み重ねで、エミュレーターは8080のすべての命令テスト(ZEXALLを含む)に通った。CP/Mの起動では、本物の8080と比べてもわずかに遅いだけだという。設計とコードはGitHubで公開している。