適当だけどエラーを直して見やすくしました。
screen 0,750,500,4 :title "マップ製作ソフト"
mname=".bmp" :mname2=".bmp" :sx=0 :sy=0 :key=0
*Start
clrobj
pos 0,0 :mes"マップチップ選択"
pos 0,20:mesbox mname,300,20,,0
pos 300,20 :objsize 20,20 :button gosub"...",*imageload
pos 0,40 :objsize 100,20 :button gosub"チップ選択",*imagechoose
stop
*imageload
dialog "bmp",16,"ビットマップ イメージ"
if stat=0 :return
exist refstr
if strsize=-1 :dialog "指定したファイルが存在しません!",1,"エラー" :return
mname=""+refstr
goto *Start
*imagechoose
clrobj
exist mname
if strsize=-1 :dialog "指定したファイルが存在しません!",1,"エラー" :return
buffer 1
color 255,255,255 :boxf :picload mname
screen 2,ginfo_sx,ginfo_sy,4,0,0 :title "チップ画像"
pos 0,0 :gcopy 1,0,0,ginfo_sx,ginfo_sy
gsel 0,1
mes"マップ読み込み"
pos 0,80:mesbox mname2,300,20,,0
pos 300,80 :objsize 20,20 :button gosub"...",*mapload
pos 0,100 :objsize 100,20 :button gosub"マップ選択",*mapchoose
mes"マップ保存"
mname3=""+mname+"(作成済みマップ).bmp"
mesbox mname3,300,24,,0
button gosub"マップ保存",*imagesave
button gosub"マップ塗",*paint
button gosub"チップ変",*Start
*main
repeat
await 30
getkey key,1
if key=1 :break ;break命令でぬける(ここでgotoを使うと[サブルーチンやループのネストが深すぎます]というエラーになる)
loop
pos mousex,mousey :gcopy 1,0,0,ginfo_sx,ginfo_sy ;gcopyで描画
goto *main
*mapload
dialog "bmp",16,"ビットマップ イメージ"
if stat=0 :return
exist refstr
if strsize=-1 :dialog "指定したファイルが存在しません!",1,"エラー" :return
mname2=""+refstr
goto *imagechoose
*mapchoose
exist mname2
if strsize=-1 :dialog "指定したファイルが存在しません!",1,"エラー" :return
buffer 3 ;マップ読み込み
picload mname2 :gsel 0,1
return
*imagesave
dialog "bmp",17,"ビットマップ イメージ"
dialog "ここでとりあえず保存したことにします",0,"プログラム"
return
*paint
repeat
pos sx,sy :gcopy 1,0,0,ginfo_sx,ginfo_sy ;gcopyで描画
sx+=15 ;他のところもだけど整数値を指定するときは""で囲んだらダメ。
if sx>=ginfo_sizex :break ;ここもbreak命令でぬける
await 30
loop
sy+=15
sx=0
if sy>=ginfo_sizey :goto *main
goto *paint