320~335の値をループさせる必要があるのにそれ以外の値になってしまうのが表示崩れの原因ですね。 そうなるのはなぜかというと逆方向に動かしたときが考慮されたプログラムになってない(正しく判定が行われてない)ためです。 SPVAR I,0,SPVAR(1,0)-1とした時には値が負数になる可能性もあるためIF SPVAR(I,0)<16 THEN ~だけでは条件が不十分ということです。