MS-DOS版N88BASIC(Ver1.0) PC-9801-14用拡張機能 MUSIC.EXE で使える機能一覧 ※実機・マニュアル未所持につき未検証 |
ON PLAY GOSUB ON PLAY([チャンネル番号],[残バイト数]) GOSUB [行番号] チャンネル番号のサウンドバッファ内の未演奏データが 残バイト数以下になったとき、割込を行う 残バイト数は0 - 32767 スタック領域の扱いに要注意 例 ON PLAY(1,512) GOSUB 100 PLAY (割込) PLAY [ON/OFF/STOP] 割込の許可・禁止・停止を設定 あらかじめON PLAY GOSUBで割込条件を定義する ON: 条件を満たすたびに定義した処理ルーチンへ分岐する OFF: 条件を満たしても処理ルーチンへ分岐しない STOP: 条件を満たしても処理ルーチンへ分岐しない ただし割込条件を満たしていた事を記憶しており、 PLAY ONによって割込許可となると処理ルーチンへ分岐する PLAY (演奏) PLAY (CH1の演奏データ),(CH2の演奏データ)... CHxの演奏データ省略可能で、例えばCH3とCH6だけ演奏したい場合、 PLAY ,,"O4CDEF",,,"O5CDEF" みたいに書く。 演奏データのMMLコマンド Cx, Dx, Ex, Fx, Gx, Ax, Bx 音程指定。xにはx分音符といった音長を指定 (x=1-64) 省略時はLxで指定した音長 Lx Cx, Dx, Ex, Fx, Gx, Ax, Bxで 音長を省略した時の音長を指定 (x=1-64) Sx,x,x,x,x エンベロープ。 省略不可で必ず5つの値を都度設定する必要あり。 Ox オクターブ値。xは4-7。 Kx 指定された高さの音を発生。 O4C=1, O7B+=49 の49段階 Rx,Px 休符 x分休符の要領で音長を指定 (x=1-64) +/- 半音上げ/半音下げ 例 O6C+8O7E-16 . 符点音符 例:C8. ^ 前後の音長をつなぐ。例えばC8^8=C4 Tx テンポ MF/MB PLAYの演奏形態 MF : フォアグラウンド演奏(デフォルト) MB : バックグラウンド演奏 MFでは演奏終了後に次の命令が実行 MBではデータをバッファに格納後、すぐに次の命令へ移る PLAY ALLOC PLAY ALLOC (バッファ指定) サウンドバッファの確保および初期化 PC-9801-14は8CHまであるため最大8CH分指定する。 省略は0となる。 また、バッファ確保にはCLEARを併用する 例 (DISK-BASIC) CLEAR ,&H1FDF-(16*8) PLAY ALLOC 255,255,255,255,255,255,255,255 例 (DOS版N88BASIC) CLEAR 16*8+32 PLAY ALLOC 255,255,255,255,255,255,255,255 CLEAR 16*4+32 PLAY ALLOC 255,255,255,255 ★関数 STATUS PLAY STATUS PLAY(CH) サウンドバッファの未演奏データのバイト数 例 PRINT STATUS PLAY(2) |