直線上に配置

N88BASIC: MUSIC拡張命令


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)
直線上に配置

トップ アイコン