FM音源ICに対して音程を指定して発音させるドライバはできましたが既存の楽譜データから鳴らすのは結構大変です。
昔、8ビットパソコンのBASICにもMUSIC文とかPLAY文として実装されていて処理は容易そうです。
ただここは楽して
http://www.cubeatsystems.com/firmware/tinymml/ で公開されているタイニーMMLパーサ(解析ルーチン)を使わさせてもらいました。ソースコードは全く修正なしでLSIC-86でコンパイルできました。
MMLの文字列を先頭から解釈していきコールバック関数を呼び出すというインターフェースでコールバック関数の中でイベントごとに分岐し、それぞれに相当する音源制御をしてやれば良いことになります
例えば「L8O3CDEFGAB>C」という文字列を渡すと以下のようにイベントに分解されます
NOTEイベントが来たら、渡されたNOTEナンバーの音程でTicks期間だけOPMを鳴らせばOKです