================== MSX−MUSIC ================== MSX−MUSICはYM2413(OPLL)という音源チップを使用したFM音源です。外付用のFM−PACまたはMSX2+(オプションだが一部の機種をのぞき内蔵),turboRで利用可能です。 ●YM2413(OPLL)の機能 2オペレータ 15音色+1ユーザ音色 9重和音 又は 6重和音+リズム(5音) ●拡張BASICコマンド _AUDREG _BGM _MUSIC _PITCH _STOPM _TEMPER _TRANSPOSE _VOICE _VOICE COPY _PLAY ●FM−BIOSのあるスロットを探す方法  FM−BIOSがあるスロットの4018H番地から4バイトは"OPLL"となっているので、すべてのスロットを検索していけば良い。 ●FM−BIOS WRTOPL (4110H)  機能 OPLLレジスタにデータ書き込み  入力 A=OPLLのレジスタ番号 E=書き込むデータ  出力 なし  レジスタ なし INIOPL (4113H)  機能 OPLL用ミュージックドライバを初期化する  HLレジスタで指定したアドレスにドライバーが使用するワークエリアを設定し、ワークエリアとOPLLレジスタを初期化します。ワークエリアのアドレスはSLTWRK(FD09H〜)に保存されます。指定されたアドレスがRAMでない場合は動作保証しません。EI状態でもどる。  入力 HL=ワークエリアの先頭アドレス(偶数)  出力 なし  レジスタ すべて MSTART (4116H)  機能 演奏開始  HLレジスタで指定されたアドレスにあるミュージックデータを演奏開始します。あらかじめ、OPLDRVを割り込みで呼ばれる様にしておかなければ演奏しません。EI状態で戻ります。  入力 HL=ミュージックデータの先頭アドレス A=演奏回数 0 = 無限 1〜254=くり返し回数の指定 255=動作保証無し  出力 なし  レジスタ すべて MSTOP (4119H)  機能 演奏停止  EI状態で戻る  入力 なし  出力 なし  レジスタ すべて RDDATA (411CH)  機能 ROM上の音色データを得る  HLレジスタで指定したアドレスから8バイトの空きエリアが必要です。  HLレジスタで指定したアドレスからOPLLレジスタの0〜7の形で値が順に格納されます。  入力 HL=データを格納するアドレス A=音色番号(0〜63)  出力 なし  レジスタ F OPLDRV (411FH)  機能 OPLLドライバーエントリー  INIOPLコール後H.TIMIフックを書き換えてOPLDRVをコール出来る状態にしてください。INIOPLコール前にフックを書き換えた場合の動作は保証できません。  入力 なし  出力 なし  レジスタ なし TSTBGM (4122H)  機能 演奏状態を得る  入力 なし  出力 A=0:演奏終了 0以外:演奏中  レジスタ AF