すみません、上のは検証しないで書きました。
理由がわかりました。リンク先のソースはHSP2用のもので、HSP3の仕様に合っていない部分が多いのです。
HSP3の仕様に合わせた形で書き直してみました。
dim forwardx,4
dim forwardy,4
dim direction,1
forwardx=0,-1,0,1
forwardy=-1,0,1,0
exist "maze.dat"
if strsize<0 : dialog "マップデータがありません" : end
sdim map,strsize+1
bload "maze.dat",map
notesel map
ichix=6 : ichiy=10
gosub *draw
repeat
stick key,15
if key&15 : gosub*move
wait 1
loop
*move
x=0 : y=0
if key=2 {
x=forwardx.direction : y=forwardy.direction
noteget tmp,ichiy+y
tmp=strmid(tmp,ichix+x,1)
if tmp="0" : ichix+=x : ichiy+=y : gosub*draw
}
if key=1 : direction=(direction+1)\4
if key=4 : direction=(3-(direction*-1))\-4
if key&5 : gosub*draw
wait 10
return
*draw
redraw 2
repeat 9
noteget tmp,(cnt/3+ichiy)-1
tmp=strmid(tmp,cnt\3+ichix-1,1)
if tmp="1" : color 100,150,150 : else : color 255,255,255
if direction=0 : tmp=cnt
if direction=1 : tmp=(1+(cnt\3))*3-(cnt/3)-1
if direction=2 : tmp=8-cnt
if direction=3 : tmp=(2-(cnt\3))*3+(cnt/3)
boxf tmp\3*(ginfo_winx/3),tmp/3*(ginfo_winy/3),tmp\3*(ginfo_winx/3)+(ginfo_winx/3),tmp/3*(ginfo_winy/3)+(ginfo_winy/3)
color ,100
tmp=(3-direction+1)\4
pos forwardx.tmp*30+ginfo_winx-50,forwardy.tmp*30+ginfo_winy-50 : mes "北"
pos ginfo_winx-50,ginfo_winy-50 : mes"▲"
loop
color 200 : boxf ginfo_winx/3+10,ginfo_winy/3+10,ginfo_winx*2/3-10,ginfo_winy*2/3-10
redraw
return