Common Source Code Project のMZ-1500エミュレータをM5Stack FIREに移植しました。
https://github.com/shikarunochi/CommonSourceCodeProjectM5Stack/tree/master/src/mz-1500
ビルド済みの bin ファイルも用意してあります。
https://github.com/shikarunochi/CommonSourceCodeProjectM5Stack/tree/master/bin
mz1500.bin
SDファイル直下の「機種名」+「ROM」が、各機種のROMイメージフォルダになります。「/mz1500ROM」という感じです。
必要なROMファイル詳細については、本家エミュレータ(Binary Archive)をダウンロードして、ドキュメントを参照してください。
Common Source Code Project
http://takeda-toshiya.my.coocan.jp/common/index.html
MZ-1500動きましたー。
クイックディスクは、テープの時みたいにでっかいバッファに展開しなくてよくて、オンメモリで処理できました。 pic.twitter.com/abtM6mMDBX— Nochi (@shikarunochi) 2019年5月2日
クイックディスクも読み込めました!ディスクイメージ片面64KBなので、まるごとメモリに読み込んで処理できました。なのですごく動作速いです!
メディア種別の判定は、基本的にファイル拡張子で行っているので、クイックディスクの拡張子は「Q20」にしておいてください。「MZT」だと、テープとして扱われます。
「MZT」テープイメージの読み込みにも対応しています。バイナリイメージを逐次テープの音信号に変換して、エミュレータのテープ信号読み込み処理に渡す処理なので、読み込みは遅いです。進行パーセントを表示するようにしてますので、ゆっくりとお待ちください…。実機比較でも、数倍遅いと思います。
(2019/05/12追記)
MZTファイル選択時に、赤くなるまで長押ししてファイル選択すると、MZTファイル内容を直接RAMにコピーする処理を追加しました。
(Common Source Code Project の過去バージョンに暫定的に入っていた処理を復活させて移植しています。)
MZTテープイメージ読み込み、さすがに処理が遅かったので、ファイル名の長押し選択で、MZTファイルの内容を直接RAMにコピーする方式も使えるようにしました。読み込み早い! pic.twitter.com/r8dIaml9rh
— Nochi (@shikarunochi) 2019年5月9日
読み込み方式としては邪道ではありますが、起動の速さはすばらしいですね。
単純にメモリにデータをコピーして、無理やり実行アドレスに飛ばす処理なので、起動直後に読み込むマシン語ファイルのみ、正しく動作させることが可能です。
RAMファイル機能に対応しています。サウンドには対応していません。漢字/辞書ROMと、EMMには対応してません。
このエミュレータが実行可能なのは、2019/05/06(ゴールデンウィーク最終日) 時点では M5Stack FIRE のみです!
海外からの通販に抵抗が無い場合は、本家M5Stack の AliExpress で購入してみるのもいいかと思います。販売されている商品の種類も多くて、価格も少し安めです。ただし、到着まで半月~1ヶ月ぐらいかかります。