z80.hで設定できる項目は以下の通りです。
(1) エンディアン
実行するマシンのエンディアンにより、
#define ENDIAN_SWITCH 0
を設定します。Intelなどのリトルエンディアンでは0、PowerPCなどのビッグエンディアンでは1にします。
(2) ビルトインメモリ
メモリ空間がバンク切り替えや書き込み禁止などのない、単純なRAMであれば、メモリの読み書きをZ80クラスの中で処理し、より高速化できるオプションがあります。これを使うには、
#define BUILTIN_MEMORY 1
とします。そして、実行時に
void SetMemoryPtr(uint8_t *p);
でメモリの先頭アドレスを与えます。
これを呼ぶ前にReset()以外のメソッドを呼んではいけません。
(3) クロック数のカウント
デフォルトでは、各命令のクロック数を数える機能はありません。クロック数を数える場合、
#define CLOCK_EMU 1
とします。実行速度が少し落ちます。
バスアクセスがある場合、M1サイクルとI/Oサイクルは4クロック、M1以外のメモリサイクルは3クロックでカウントします。
さらに、これらで別々に指定したウェイト数をエミュレートしたい場合、
#define CLOCK_EMU 2
とします。実行速度がさらに少し落ちます。ただし、BUILTIN_MEMORYが1のときは2つめの機能は使えません。