エラーの原因はカンマ(,)が抜けています。よくあることです。
その後ろ[1]ではなくて[I]です。
RESTORE @BGはREAD文を@BGの後から読み込んでという命令です。
-1の理由はループが0からなので、文字数より1つ減らしてます。
ループ内のREAD M$は24行目からのDATAを1行ずつ読み込んでます。
主に何をやっているかといえば
マップのY座標のループ
マップデータを1行を読み込む
マップのX座標のループ
BGの番号を探すループ
1文字ごとに該当する背景番号があったら表示
こんな感じです。エラーがあったら まず、その行をよくみてください。
0そうだね プレイ済み