BとBBをまとめたのはよかったと思います。 あと個人的にはB=BUTTON()は@IDOUサブルーチンの中じゃなくて外(メインループ)の頭に持ってきてもいいような気もしますが、まあ今でも呼び出し順を間違えなければ問題ないので好みの差もあるかな…。