@BATTELのラベル先のWHILE文の中にBUTTON()命令が無いので、BTの値がジャンプ前の処理で代入された16のままなので、カーソル選択のループが即終了してるんですね。 バトルのサブルーチンから最初に戻らない様にするなら、GOTO @STARTをGOTO @BATTELに変えてみるといいかも。