私もそうなんですが、ほぼASFからのコピーですよね。
ざっくり見たけどわかりません。
何をもって1バイトはいけて2バイト以上はだめとわかりました?
デバッグ方法の問題で実はちゃんと動いているのかも。
動作終了時の結果を格納するところにブレークしかけてみたりしました?