SPSETとSPCOLは一回実行しておけばその後は再度実行するか、プログラムを終了させるかしなければずっと有効なので、ループの中に入れておく必要があるのはSPOFS命令とSPHITSP命令とIF文だけだと思いますけど、 もしかしたら、当たり判定をする処理のところだけラベルジャンプして素通りしてるとかだったりしません?