#module
#deffunc UP val,val
mref a,24:mref b,25:strlen l,b:repeat l:peek i,b,cnt:if i>='a' & (i<='z'):i-=32
poke a,cnt,i:loop:poke a,l:return
#global
title "DQN プロンプト"
sdim data,80*40 : sdim temp,1024 : sdim dir,1024 : sdim buf,256 : sdim tmp,256
dir ="DQN:\\ ?ANTARES/\nDQN:\\ ?neo/\nDQN:\\ ?tokage/\nDQN:\\ ?bakaki/\nDQN:\\ANTARES ?.\nDQN:\\ANTARES ?..\nDQN:\\ANTARES kankodori\nDQN:\\neo ?.\nDQN:\\neo ?..\n"
dir+="DQN:\\neo kankodori\nDQN:\\tokage ?.\nDQN:\\tokage kankodori\nDQN:\\tokage ?..\nDQN:\\bakaki kankodori\nDQN:\\bakaki ?.\nDQN:\\bakaki\n ?..\n"
tm=':' , ';' , ',' , '-' , '.' , '/' , '@' , '*' , '+' , '<' , '=' , '>' , '?' , '`':tm2='[' , '\' , ']' , '^' , '{' , '|' , '}' , '~'
mes "":ln=csry:width ,25*ln:sdim cdir,80:cdir="DQN:\\":data=cdir+">":gosub out:onkey key
*main:wait 5:lc=lc+1\10:if lc=0:gosub csr
goto main
*out:redraw 0:color 0,0,0:boxf:color 168,168,168:pos 0,0:strlen l,data:repeat 25:memcpy tmp,data,80,0,80*cnt:if tmp="":break
mes tmp:loop:redraw 1:cbk=1
*csr:strlen px,cdir:px+:color 168,168,168:color 255*cbk,255*cbk,255*cbk:boxf bfp.1\80+px*8 , py*ln+15 , bfp.1\80+px*8+7 , py*ln+17:cbk=cbk+1\2:return
*key:getkey ky,16:i=iparam
if i=32:goto inp
if (i>='0') & (i<='9'):i+='!'-'1'*ky:if i!' ':goto inp
if (i>=186) & (i<=192):i-=186-(ky*7):i=tm.i:goto inp
if (i>=219) & (i<=222):i-=219-(ky*4):i=tm2.i:goto inp
if i=226:i='\'+(ky*3):goto inp
if (i>='A') & (i<='Z'):i+=32*(ky=0):goto inp
if i=8 & (bfp.1>0) : strlen l.1,buf:memcpy buf,buf,256-bfp.1,bfp.1-1,bfp.1:bfp.1-:poke buf,l.1-1:goto inp2
if i=46:strlen l.1,buf:if bfp.1<l.1:memcpy buf,buf,256-bfp.1,bfp.1,bfp.1+1:poke buf,l.1-1:goto inp2
if i=37:if bfp.1>0:bfp.1-:goto inp2
if i=39:strlen l,data:if bfp.1<l:bfp.1+:goto inp2
if i=13{
repeat 1
strlen l,buf