テキストで記述されたMMLファイルを、本音源ドライバーNSD.Lib用のデータに変換します。
デフォルトでは、cc65に付属のクロスアセンブラ`ca65'用のアセンブリ言語ソースを出力します(未実装)。
出力するアセンブリ言語ソースは、単体でオブジェクトファイルにアセンブル可能となっていますので、
ユーザーアプリケーションのビルドの際に、当該オブジェクトファイルをリンクして下さい(未実装)。
また、NSFファイルの簡易生成も可能です。
複数の曲に対応していますが、コンパイラにてNSFを生成する場合は、
曲データは合計で16kByte以内となります。
現状は、NSFへのコンパイルのみ対応しています。
nsc -option MML-file name
MMLの構文は、`#'で始まる定義命令・疑似命令及び、
データ(エンベロープパターン、シーケンスデータ)を記述する記述ブロックで構成されます。
音色、音量、周波数、音程の推移パターンを定義します。
BGM,SE,サブルーチンの演奏パターンを定義します。
未実装!
曲データのシンボルは、_nsd_ファイル名_番号となります。
(C言語から参照する場合は、nsd_ファイル名_番号となります。)
このシンボルのアドレスを引数に、nsd_play_bgm()関数を呼び出すことで、
その曲データが再生されます。
例えば、ファイル名がfooで、MMLファイル中の2番目の曲データは、
_nsd_foo_2
と命名され、.export
宣言されます。
ユーザーアプリケーション側からは、このシンボル名を.import
することで、参照が可能になります。
.rodata
セグメントに配置されます。
曲データ、効果音データ共にROM中に配置されていても再生可能ですので、
別途、RAM領域に転送したり、.data
セグメントに書き換える必要はありません。