投稿日: Apr 01, 2017 8:51:40 AM
エミュレータが作りたいのではなくて、Arduinoの上でSRAM上のプログラムを実行できるヴァーチャルマシンなら何でも良い。しかし、出来れば既存のアセンブラなどを使えるといろいろ捗るので既存のCPUベースだと尚よし。
ヴァーチャルマシン完成後、ハードウェア構成などを変更する場合にはヴァーチャルマシン上で動いているプログラムの修正によって可能でなければならない。というのがわたしのなかのルール。
Arduino上でどれくらいのモノを動かせるのか、速度はどうなのか。
最初はさっぱり見当もつかなかった。
8080に行き着くまでにはいろいろなモノを見たり調べたり。
実際に動かしたのは6802エミュレータとAltair8800シミュレータだけなのだけど。
Altair8800シミュレータはCP/Mも動くし4K Basicも動くというかなり本格的に実用まっしぐらなものだったのだけど、とりあえず8080のエミュレーションがArduinoで可能だという事実だけいただいて自分で8080のコードを書いた。
CPUエミュレーションのコードをビルドすると想像していた以上に小さかった(5Kbyteくらい) これはz80もいけるかも、という期待をもちつつ、とりあえず8080のエミュレータ単体動作を目指している。
というのが現在の状況。
CPUのコードが5Kで済んだとしてもCPUがArduinoの機能にアクセスする部分やuSD、メモリ操作その他などのコードを入れると20Kbyte近いサイズになってしまう。
どれくらいz80に近づけるかは謎だけど、最終的にはできる限り近づけたいと思う。