エラーになっているのは、$0の中に、$0があるからだと思います。 例えば、BGMPLAY "$0=16:0ABCDET120$0" はエラーになります。 変数の中に、同じ変数があると、無限ループになってしまいます。