更新日: 2011 年 11 月 15 日
060opmp.x の説明
説明
060opmp.x の添付ドキュメントです。末尾に記載されている連絡先は無効です。
060opmp.doc
────────────────────────────────────
FM 音源ポートのアクセスにウェイトを入れてみるテスト
060opmp.x v0.01 (1998.01.28) by M.Kamada
────────────────────────────────────
●このプログラムの機能
68060 の MMU を使って、FM 音源ポートのアクセスにウェイトを入れます。
具体的には、FM 音源アドレスポート($00E90001)および FM 音源データポー
ト($00E90003)のアクセスで一時的にページフォルトを発生させることによっ
て、FM 音源ポートのアクセスを read/write 共にアクセスの前後を合わせて実
測で約 6 μs遅延させます。
古い音源ドライバの中には、060turbo で動かすには FM 音源ポートのアクセ
スのウェイトが足りないものがあります。ウェイトが足りないと音が外れたり鳴
らなかったりします。このプログラムを組み込むことによって十分なウェイトが
追加されるので、正常に演奏できるようになることがあります。
●動作環境
060turbo の 68060 モードで動作します。
●使用法
デバイスドライバまたはコマンドラインで常駐します。
DEVICE = 060opmp.x
または
> 060opmp.x
機能停止状態で常駐させたいときは、パラメータに off を指定して組み込ん
で下さい。
DEVICE = 060opmp.x off
または
> 060opmp.x off
常駐後は、コマンドラインで機能の on/off が可能です。
> 060opmp.x on
または
> 060opmp.x off
解除するときは -r を指定して実行して下さい。
> 060opmp.x -r
●注意
アクセスフォルトのベクタが衝突するため、デバッガと共存できません。デバ
ッガを起動する前に、必ずウェイトを解除して下さい(常駐を解除する必要はあ
りません)。ウェイトを入れたままデバッガを起動すると、以下のような影響が
出ます。
・FM 音源で演奏している状態でデバッガを起動するとハングアップします。
・デバッガ上で FM 音源ポートをアクセスできなくなります。
・FM 音源を使うプログラムをデバッガ上で実行することができなくなります。
FM 音源ポートをユーザモードでアクセスしようとするとハングアップします。
FM 音源ポートを MOVES 命令でアクセスできなくなります。
$00E90000〜$00E91FFF の範囲に FM 音源ポート以外のポートを増設している
場合、そのポートをアクセスできなくなります。
●備考(X68030 のハードウェアによるウェイトについて)
X68030 では FM 音源レジスタのアクセスにはハードウェアでウェイトが入っ
ていると言われていますが、実測してみたところ、実際には FM 音源のアドレス
レジスタへの書き込みに限って約 1.2 μsのウェイトが追加されているだけで、
データレジスタの読み書きにはウェイトの追加はないようです。そのため、複数
の FM 音源レジスタに続けて書き込もうとすると、2 回目のアドレスの設定に失
敗してしまうのです。また、1.2 μsという時間も十分ではなく、書き込みに失
敗することがあるようです。
●お約束
正しく動作することを期待して作成しましたが、このプログラムの動作は無保
証です。
●連絡先
Mankai Special X680x0 user's Net: MKSX0109:かまだ
(EOF)