> KBDTest 1.10 6 Display keypress codes and expected keyboard key : (WA%=0:X%=1:os%=((&FFF4)&FF00)256:A%=254:X%=0:Y%=255:K%=(((&FFF4)&FF00)256)128 2JescOn$="ESC ON":escOff$="ESC OFF": escOn$="FX229":escOff$="FX229,1" :escOn$="":escOff$="":11,11:60;13; FPescOff$: A%=0 7:"FX"+(221+A%)+","+((A%4)*16+128)::"FX219,9":*FX4,2 P/key%=0:kbd%=(os%<8):(-256&DB)=&53:kbd%=1 Z4"Keypress input/character output test"'36,"-") d/"Program running on ";s(host(os%));". "; n xI key%=0 kbd%=0:"NativeForced",(K% 64)10+1,6);" keycodes are:" 7 key%=0 kbd%=0:kbdinfo(kbd%):"Esc+Esc to end"'  last%=key%:key%= R h0(key%,2);" ";c3(key%);" ";c1(key%);10);c0(key%);15);keyname(key%) key%=key% 255 key%=27 K%=K% 64:"FX254,"+K%  key%=27 last%=27 )escOn$:"FX225,1":"FX254,"+K%:*FX4  : $ݤkeyname(A%): A$,K%:K%=A% 15  A%=8:="Ctrl-H BACKSPACE"  A%=9:="Ctrl-I TAB"  A%=13:="Ctrl-M RETURN"  A%=27:="Ctrl-[ ESCAPE" " A%<31:="Ctrl-"+(A%+64) , A%=32:="SPACE" 6 A%<127:="" @ A%=127:="DELETE" J" kbd%>0: A%=&80:="Ctrl-Left" T# kbd%>0: A%=&81:="Ctrl-Right" ^\ kbd%>0: (A% &F0)=&80:="HomeEnd PgUpPgDnIns Del LeftRghtDownUp MsDnMsUp",K%*4-7,4) h kbd%>0:A%=A%-16 r A% 16:A$="Shift-" | A% 32:A$=A$+"Ctrl-" % kbd%=0: (A% 48)=48:A$="Alt-" , kbd%=0: (A% &CF)=&80:=A$+"Print/f0" A kbd%>=0: (A% &CE)=&8E:="ScrllBreak",K%*5-69,5)+"/f"+K% " kbd%>=0: A%<192:=A$+"f"+K% ^ kbd%=0:A$=A$+"WindMenuWideKanjRomjTAB Ins Del HomeEnd PgDnPgUpLeftRghtDownUp",K%*4+1,4) @ kbd%=0:=A$+8,K%=5)+"/f"+(K%+16),K%<5)+"/NoConv",K%=5)  A%<192: K%<10:=A$+"f"+K% : A%<192:=A$+"BreakCopy Left RightDown Up",K%*5-49,5) 2 K%>9:="f10 f11 f12 Ins MsDnMsUp",K%*4-39,4) ! K%<2:="WindMenu",K%*4+1,4) =A$+"Japan"+K% : kbdinfo(A%) ^ A%>0: (-256&DB)=&53:"&8x: c<-,c->,Home,End,PgUp,PgDn,Ins,Del,<-,->,Dn, Up,MsDn,MsUp" g A%>0: (-256&DB)=&53:"&9x: F0, F1, F2, F3, F4, F5, F6, F7, F8,F9,F10,F11,F12,F13,F14,F15": N A%=0:"&8x: F0,F1,F2,F3,F4,F5,F6, F7, F8, F9, F10, F11, F12,F13,F14,F15" &C A%=0:"&Cx:"18"Ins,Del,Home,End,PgDn,PgUp, <-, ->, Dn, Up": 0J A%<0:"&8x: F0,F1,F2,F3,F4,F5,F6,F7,F8,F9,Break,Copy,<-,->, Dn , Up" :< A%<0:"&9x:"48"PgDn,PgUp"'"&Cx:"32"F10, F11,F12,Ins" D N: Xݤhost(A%) bv A%>27: A%<33:="Commodore 64/128TI Calculator Amstrad CPC ZX Spectrum DOS/Windows ",A%*16-447,16) lq A%<11:="ElectronBBC B BBC B+ Master MasterETCompact RISC OS SpringbdUnix 6809UnixApple ",A%*8+1,8) vY A%=17:="6809Beeb" A%=24:="CP/M" A%=43:="RT11/RSX/RSTS" A%=57:="6809DOS" ="unknown" :  Character conversions #ݤh0(A%,N%)="0000000"+~A%,N%) /ݤs(A$):A$,1)=" ":A$=A$,2):A$,1)<>" " +A$,1)=" ":A$=A$,A$-1):A$,1)<>" " =A$ )ݤc0(A%): A%>127:="|!"+c0(A% 127) @ A%<32 A%=127:="|"+(A% 64) ="|",A%=34 A%=124)+A% 7ݤc1(A%): ((A%+1) 127)<33:="^"+(A% 64) =A% 1ݤc2(A%): (A% 127)<32 A%=127:="." =A% ,ݤc3(A%): ((A%+1) 127)<33:="." =A%