マップを表示するのに変数PYをBGのY座標に使っていますが この変数を設定してるところが無いため最初に表示したマップで 15になったままで新しいマップを描こうとするとBG画面の範囲を 越えてしまうためエラーになります。マップを読み込む前にPY=0を 追加してみましょう。 あとマップを読み込む前にどこのDATAから読み込むかをラベルを 付けてRESTORE命令で指定する必要がありますね。 読み込むMAPデータの前に@MAP00とか任意のラベルを付けて マップデータを読み込むループの前にRESTORE ラベル名とすれば きちんとマップデータが読み込めると思います。