注意:実際には番号順に変換される
[$00 ~ $7F] 長さはデータ値+1クロック。
[$80 ~ $DF] + [長さ-1]b 音程は$80がo0d+、$DFがo8d。ChPではデータ番号。
[$FF] + [???]b @tコマンド対応
[$FE] + [レジスタ番号]b + [出力データ]b
[$FD] + [???]b @コマンド対応
[$FC] + [???]b pコマンド対応
[$FB] + [$00~$15]b vコマンド対応 [$FB] + [$80~$FF]b @vコマンド対応(ビット7無効)
[$FA]
[$F9]
[$F8] + [$01~$08]b qコマンド対応 [$F8] + [$FF~$80]b @qコマンド対応(2の補数)
[$F7] 次のNOTE発音後キーオフしない
[$F6] + [リピート回数]b + [$00]b
[$F5] + [開始コマンドへのオフセット+2]w
[$F4] + [終端コマンドへのオフセット+1]w
[$F3] + [???]w Dコマンド対応
[$F2] + [変移※1]w
変移 = 1クロックあたりの変化量
[$F1] + [$00]b 演奏終了 [$F1] + [ループポインタ]w ポインタ位置から再演奏
[$F0] + [???]b kコマンド対応
[$EF] + [チャネル番号(0~8)]b
[$EE]
[$ED] + [???]b ノイズ周波数設定。ビット7はノイズON/OFF
ON : 128+周波数
OFF : 0
[$ED] + [???]b Fコマンド対応
[$EC] + [$80]b MPON [$EC] + [$81]b MPOF [$EC] + [WAVE]b + [周期※2]w + [変移※1]w
WAVE0 [ 鋸波 ] : 周期 = 設定値×4 : 変移 = 設定値×周期÷512
WAVE1 [矩形波] : 周期 = 設定値×2 : 変移 = 設定値×256
WAVE2 [三角波] : 周期 = 設定値×2 : 変移 = 設定値×周期÷512
[$EB] + [$80]b MAON [$EB] + [$81]b MAOF [$EB] + [WAVE]b + [周期※2]w + [変移※1]w
WAVE0 [ 鋸波 ] : 周期 = 設定値×4 : 変移 = 設定値×周期÷256
WAVE1 [矩形波] : 周期 = 設定値×2 : 変移 = 設定値×256
WAVE2 [三角波] : 周期 = 設定値×2 : 変移 = 設定値×周期÷256
[$EA] + [$80]b MHON [$EA] + [$81]b MHOF [$EA] + [SYNC]b + [WAVE]b + [LFRQ]b + [PMD]b + [AMD]b + [PMS/AMS]b
[SYNC*$40+WAVE]b + [LFRQ]b + [PMD+128]b + [AMD]b + [PMS/AMS}b
[$E9] + [???]b MDコマンド対応
[$E8]
[$E7] + [拡張コマンド]b
[$00]b ERROR=強制終了
[$01]b + [SPEED]b FADEOUT
[$02]b + [d0.w] + [d1.l] PCM8を直接ドライブする
[$03]b + [FLAG]b $00=KEYOFFする/$01=KEYOFFしない
[$04]b + [CH]b + [MML]? 他のチャンネルをコントロール
[$05]b + [DATA]b 音長加算する
[$06]b + [FLAG]b まだフラグを使用してない?
[$00]b ERROR = 強制終了
[$01]b + [DETUNE]w 相対ディチューン (-32768~32768)
[$02]b + [KEY TRANS]b 移調 (-127~127)
[$03]b + [KEY TRANS]b 相対移調 (-127~127)
WAVE = 1 : 1/2周期のクロック数
WAVE = 2 : 〃
a1.l: データアドレス
エラーコードはバッファサイズ+$80000000
a1.l: データアドレス
エラーコードはバッファサイズ+$80000000
a2.l: ?
a1.l: ?
実際に1割り込み分演奏します。
FUNC$16で有効にしておいて下さい。
P HGFE DCBA
(付加情報の先頭からの物 .W)
(MML同様に偶数。PDXファイル名の次ぎまでの値)
| offset | 内容 | サイズ | 備考 |
| $0000 | title | 不定 | 終端は $0d $0a $1a |
| - - - | PDX FileName | 不定 | 終端は $00 |
| ($0000) | BASE POINT | PDXファイル名の直後を新たに始点とする。 以後BASE POINTからのoffset | |
| ($0000) | TONE data offset | 2 | 音色データへのオフセット(big endian) |
| ($0002) | Ch.A offset | 2 | channel.Aのmmlへのオフセット(big endian) |
| ($0004) | Ch.B offset | 2 | channel.Aのmmlへのオフセット(big endian) |
| ($0006) | Ch.C offset | 2 | channel.Aのmmlへのオフセット(big endian) |
| ($0008) | Ch.D offset | 2 | channel.Aのmmlへのオフセット(big endian) |
| ($000A) | Ch.E offset | 2 | channel.Aのmmlへのオフセット(big endian) |
| ($000C) | Ch.F offset | 2 | channel.Aのmmlへのオフセット(big endian) |
| ($000E) | Ch.G offset | 2 | channel.Aのmmlへのオフセット(big endian) |
| ($0010) | Ch.H offset | 2 | channel.Aのmmlへのオフセット(big endian) |
| ($0012) | Ch.P offset | 2 | channel.Aのmmlへのオフセット(big endian) |
| ($0014) | Ch.Q offset | 2 | channel.Aのmmlへのオフセット(big endian) |
| ($0016) | Ch.R offset | 2 | channel.Aのmmlへのオフセット(big endian) |
| ($0018) | Ch.S offset | 2 | channel.Aのmmlへのオフセット(big endian) |
| ($001A) | Ch.T offset | 2 | channel.Aのmmlへのオフセット(big endian) |
| ($001C) | Ch.U offset | 2 | channel.Aのmmlへのオフセット(big endian) |
| ($001E) | Ch.V offset | 2 | channel.Aのmmlへのオフセット(big endian) |
| ($0020) | Ch.W offset | 2 | channel.Aのmmlへのオフセット(big endian) |
| Ch.Q - W のオフセットは EX-PCMモードの時に設けられる | |||
| binary | mml表記 | 備考 |
| $00 : $7f |
r%1 : r%128 |
休符 |
| $80 %1 : $df %1 |
o0d+%(%1 + 1) : o8d%(%1 + 1) |
音符 %1 = $ff のとき、音長は256clock |
| $e0 : $e6 |
未定義 | |
| $e7 | 拡張コマンド定義。続く1バイトでコマンド確定 | |
| $e7 $01 %1 | $FO%1 | フェードアウト |
| $e8 | #EX-PCMモードの宣言 | |
| 編集中・・・ | ||