10
20
30 :
40 DEFFNkbd_GET:LOCAL A%:REPEATA%=FNkbd_INKEY(100):UNTILA%<>-1:=A%
50 :
60 DEFFNkbd_INKEY(T%):LOCAL A%,S%:IFT%<0:=INKEYT%
70 A%=INKEY(T%):S%=(INKEY-1AND16)+(INKEY-2AND32)+(INKEY-3AND48)
80 IFA%=8ORA%=&87:A%=&7F
90 IFA%<&80:=A%
100 A%=A%-&10:IFA%>&7F:IF(A%AND15)>9:A%=A%EOR&40:IFS%=0:=A%
110 IFS%:IFA%>&CA:IFA%<&D0:=EVAL("&"+MID$("09E8ABAFAE",A%*2-405,2))
120 IFA%<&80:=EVAL("&"+MID$("8C8DC88B9F9ECD7F8C8D8E8FCECFCECF",A%*2-223,2))EORS%
130 =A%