NX,NYはどのような値なのでしょう? 変数の初期値は0なのでなにも計算されてないのなら14,15行目の条件に引っかかりSPの位置が0,0に固定されてしまいます。 NX,NYを普通のX,Yに変更してみて下さい。そうすると14,15行目の条件が働かなくなってしまいますのでIFの条件を"画面外に出たら"にするとよいと思います。