始めの公開キーはDL出来なかったのでとりあえず2つめのやつだけちょっとコメント。
IFが多いので全部ちゃんとみてませんが、例えば32〜34行目のIFでは、TIMEが500とか小さいときでも必ずYUGAは0になりますよね。たぶんそれは正しい意図じゃないと思いますが、そのようなIFの判定漏れが多いんじゃないかと推測されますね。
この場合はちゃんと条件を厳密に〜以上〜以下と&&(アンド)条件をつけて判断させるか、IFの順番を入れ替えて
IF TIME<36000 THEN YUGA=0
IF TIME<25200 THEN YUGA=2
IF TIME<18000 THEN YUGA=1
とすれば、流れ的には動作するようになると思います。他の部分はちゃんとみてないのでわからないですが、たぶんそんな感じだと感じだと思います。
どういうやり方で動かしているかわかりませんが、動かしているからには座標を計算していると思います。
たとえばそれが変数Xだとしたら、それ画面外に出ないように、
IF X>画面内の座標 THEN X=画面内の座標
みたいな感じにそれ以上はみ出たりした場合は戻すような処理を追加すればいい感じになります。
座標はコンソール(テキスト)画面なのか、上画面なのか下画面なのかによっても変わってきます。
ただ画面の左や上は0だと思うので、
IF X<0 THEN X=0
みたいな感じでいけると思います。