MSX Datapack wiki化計画

4章 アプリケーションの開発

※
※ このページは書きかけです。以下の可能性があります。
※ ・誤字、脱字等のチェックをおこなっていません。
※ ・テキスト、表などフォーマットがされていない。
※ ・画像が抜けている。
※

 4.1 アプリケーション開発についての注意点

 MSX-MIDI対応のアプリケーションプログラムを作成するときは、以下の点に注意して下さい。

1. フックはMSX-MIDIが本体に内蔵されているか、外付けされているかで異なります。フックを設定する際は、内蔵タイプか外付けタイプかを確認して下さい。
2. MIDIインターフェイス初期化後などに割り込みを許可するときは、すでに割り込みフラグがセットされている可能性があるので、割り込みフラグをリセットしなければなりません。
割り込みフラグには、以下のものがあります。

表4.4 MIDIインターフェイスの割り込みフラグ

割り込みの種類割り込みの判別割り込みの解除方法
タイマー0E9Hまたは0E1Hのbit7(DSR)EAHへの任意の書き込み
MIDI IN 0E9Hまたは0E1Hのbit1(RRDY)E8HをIN命令で読み込む

3. 外付けカートリッジでは、MIDI INおよび8253タイマー以外の割り込みもH.KEYIに来ます。したがって、割り込み処理ルーチン内では、現在の割り込みがどういう割り込みなのか判別しなければなりません。
MIDI IN割り込みかどうかは、I/Oポート0E9H番地のbit1で確認します。
8253タイマーからの割り込みかどうかは、I/Oポート0E9H番地のbit7で確認します。
4. MIDI IN受信の割り込みは、最短320μ秒間隔で発声します。フックから割り込み処理ルーチンを呼ぶときにRST 30H命令を使うと、インタースロットコールの処理に時間がかかり、320μ秒間隔の受信に間に合わなくなります。
そのため、割り込みに関しては次のように設定して下さい。

  • 割り込み処理ルーチンはページ3に置く。
  • フックからはJP命令で割り込み処理ルーチンへジャンプする。

 4.2 サンプルプログラム

 MIDIインターフェイスとフックの設定・解除は、付属のサンプルプログラム(THRU.MAC)を参照して下さい。