PIC用に色々とサブルーチンを作ってました。空想でコードを書くのって気楽でいいですね。「動かない動かない」と唸らなくて済むので。
具体的には「デューティ比50%、25%、12.5%の矩形波、4bit三角波、32k周期/93周期のノイズを作る」サブルーチン(何だかファミコン音源の一部みたいだ!)と、「1bitデルタシグマ型D/Aコンバータ風、4bit波形用」(何だかファミコン音源の一部を1ポートで鳴らそうとしてるみたいだ!)。
前者は一応アセンブリ言語のコードの俺様チューンアップ完了(後記)。後者はまだ冗長。唯一の問題は、こんなものを作っても使い道を考えていないということ。妄想に近い話です。
以下が波形の生成ルーチンです。適当なカウンタをインクリメントしてWregに渡し、どれかのサブルーチンを呼ぶと、Wregに次の波形を返してくれます。三角波は0-15の値、それ以外は0/8の値。
必要な変数は適当に定義して下さい。ちなみに動作未確認。
参考
・2A03 technical reference.txt - ファミコンの中の石について。続きを読む
具体的には「デューティ比50%、25%、12.5%の矩形波、4bit三角波、32k周期/93周期のノイズを作る」サブルーチン(何だかファミコン音源の一部みたいだ!)と、「1bitデルタシグマ型D/Aコンバータ風、4bit波形用」(何だかファミコン音源の一部を1ポートで鳴らそうとしてるみたいだ!)。
前者は一応アセンブリ言語のコードの俺様チューンアップ完了(後記)。後者はまだ冗長。唯一の問題は、こんなものを作っても使い道を考えていないということ。妄想に近い話です。
以下が波形の生成ルーチンです。適当なカウンタをインクリメントしてWregに渡し、どれかのサブルーチンを呼ぶと、Wregに次の波形を返してくれます。三角波は0-15の値、それ以外は0/8の値。
必要な変数は適当に定義して下さい。ちなみに動作未確認。
参考
・2A03 technical reference.txt - ファミコンの中の石について。続きを読む