実行速度が速く、ポータブルであることを目標に書きました。
C++のクラスになっており、複数のZ80CPUを持つマシンを簡単に実装できます。
ビッグエンディアン/リトルエンディアンの両方をサポートしています。
download (version1.04)
version1.04の変更点
OUTI/OUTD/OTIR/OTDR命令で、出力前にBレジスタをデクリメントするように修正
使い方
その他のメソッド
未定義命令および未定義のフラグ変化のサポート
以下の環境で動作確認済みです。
CodeWarriorPro6/Mac
gcc2.95.2/Linux(x86)
gcc3.3/Mac OS X
このソースはどのような目的に使用してもかまいません。
なお、保証やサポートはありません。
Macintosh用PC8001エミュレータ
上記Z80クラスを使ったサンプルです。
無印PC8001から吸い出したROMイメージをpc8001.romという名前でアプリケーションと同じフォルダに置いて起動します。
ROMイメージを持っていない場合でも、雰囲気だけは楽しめるかも。
いろいろなマシンで試せるように、3種類用意しました。
Mac8001(68k) (version0.22)
Mac8001(PPC) (version0.22)
Mac8001(Carbon) (version0.22)
version0.22の変更点
Z80クラスversion1.03でビルド
j80用のcmtファイルを読めます。cmtファイルをMac8001のアイコンにドロップしてください。
上書きセーブすると、独自フォーマットに置き換えるのでご注意ください。
音に関しては実装していません。
スクリーンショット
ウィンドウを2枚開いて、別々のプログラムを走らせたところ。
Z80エミュレーションがクラスになっているので、複数のCPUのエミュレーションも簡単です。
エミュレーションスピード(version0.22)
下の表は、PC8001実機を4MHzとしたとき、何MHzに相当するかを表しています。
「N-BASIC入力待ち」は60fps出せる状態でも実際には画面の更新がない場合で、ほぼZ80クラスの性能を表します。
「走れ!スカイライン」(スクリーンショットの左上に映っているゲーム)は実際に60fps以上で画面更新をしている場合で、マシンの描画性能も含めた性能です。
| 機種 |
OS |
種別 |
画面モード |
N-BASIC入力待ち |
走れ!スカイライン |
| Quadra800 |
7.5.3 |
68k |
16色 |
3.1MHz |
2.1MHz |
| 8500/180 |
8.1 |
PPC |
256色 |
44MHz |
23MHz |
| G4/400(GBE) |
9.2.2 |
Carbon |
256色 |
130MHz |
120MHz |