assertで出たデバッグウィンドウを見ると、bにaのバイナリデータがきちんとコピーされていないことが分かります。
sdim a,256 sdim b,256 for k,0,256 poke a,k,k next b=a assert
「memcpy使えよ」? もっともな意見です。
でも、memcpyはヘルプに、
>memcpy p1,p2,p3,p4,p5
>
>p1 : コピー先の変数
>p2 : コピー元の変数
>p3 : コピーするサイズ(1byte単位)
>p4 : コピー先の変数メモリオフセット(省略時=0)
>p5 : コピー元の変数メモリオフセット(省略時=0)
と明記されていることから分かるように、p1とp2が両方「変数」でないと使えません。
何が言いたいかというと、
「モジュール関数or命令で、strでバイナリデータを渡して(内部でコピーして)『変数として』処理することができない」
と言うことです。もちろんvarで参照渡しすればいいのですが、そうなるとstr版とvar版を両方作製する必要があり(var版に"abcde"とかいった形式で渡せないため)、明らかに不便です。
上手い解決策はないものでしょうか……。ご教示お願いします。