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-1 AND 16)+(INKEY-2 AND 32)+(INKEY-3 AND 48):IFA%<128:=A%
80 IFA%<&82:=A%+&6C
90 IFA%>&9F:=A%-16
100 IFA%>&9B:IF(S%AND32):=(A%+&4C)EOR((A%>&9D)AND1)
110 IFA%=&9A:IF(S%AND16):=&D1
120 IFA%>&8F:=A%-16
130 =EVAL("&"+MID$("89BA67CDEF0000",A%-129,1))+S%+&C0