M5Atom の MZ-700 エミュレータ で BASIC プログラム読み込み

M5Atom の MZ-700 エミュレータでは、メモリが少ないため、テープイメージの MZT ファイルをエミュレータ読み込み用のイメージにメモリ上で展開することができず、MZT ファイルを直接メモリにコピーするという方式のみ対応していました。

このため、リセット後に1回しかプログラムの読み込みができません。マシン語2段ロードや、BASIC 本体を読み込んだ後に BASIC プログラムを読み込む、ということもできませんでした。

BASICに関しては、S-BASIC / SP-5030 のワークエリアに直接読み込む方式もやってみたのですが、やはり裏技っぽい感じなので、もうちょっとなんとかしたいところ…。


そこで、移植元プログラムではメモリ上に展開していたテープイメージを、SPIFFS 上に展開してみることにしました。(フラッシュメモリなのであまり頻繁に書き込みしたくないところではありますが、このさいヨシとしましょう!)

BASIC はメモリに直接読みこみ、その後、BASICプログラムを SPIFFS に展開したうえでロードしています。


プログラムはこちら。M5Atom はバイナリデータでの配布は難しいので、ソースのみ公開です。PlatformIO でビルド&実行してください。

MZ-700 Emulator for M5Atom + AtomDisplay +Bluetooth Keyboard
https://github.com/shikarunochi/m5z80/tree/master/m5z700AtomHDMI

エミュレータ詳細はこちらをごらんください。

M5Atom + AtomDisplay で MZ-700 エミュレータ
https://shikarunochi.matrix.jp/?p=4547


最初に移植した M5Stack Fire 用よりもだいぶ高性能になったので、フィードバックもかけたいところではありますが…。(ソース整理ニガテ)