ô > KBDTrans (ô Universal keyboard character input 9ô Translates top-bit keypresses to uniform key values (: 2%escOn$="ESC ON":escOff$="ESC OFF" <(î … escOn$="FX229":escOff$="FX229,1" Fÿ escOn$:î … ‡ P: Z òkbd_Init d ÿ escOff$ nñ"Press Esc+Esc to finish" xcol%=0:key%=0 ‚õ Œlast%=key% –key%=¤kbd_GET  ñ ¤h0(key%,3)'Äcol%,½9); ªã A%=0 ¸ 3:ç A%=2:A%=3 ´)A$= ("FNc"+Ã(A%)+"("+Ã(key%€255)+")") ¾ñ A$;'Äcol%,½9); Èí A% Òñ Ä4,½11);Ä5,½9); Ü$col%=col%+5:ç ±<5:ñ½8'''':col%=0 æ*ý (key%=27 € last%=27) „ (¦-1 € ¦-113) ð.ÿ "FX4":ÿ "FX225,1":ÿ escOn$:ç col%:ñ '''' úà : ô Character conversions )ݤ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% 6)ݤc2(A%):ç A%<32 „ A%=127:="." ‹ =½A% @,ݤc3(A%):ç ((A%+1) € 127)<33:="." ‹ =½A% J#ݤh0(A%,N%)=Â"0000000"+Ã~A%,N%) T: ^: hÝòkbd_Init r&A%=0:X%=1:os%=((º&FFF4)€&FF00)256 |(kbd%=(os%<8):ç(¦-256€&DB)=&53:kbd%=1 †ô kbd% f1 f10 cursor 1ô -1 81 CA 8C+n RISC OS semi-regular š$ô 0 81 8A CC+n Regular ¤/ô 1 91 9A 88+n RTR offset regular ®5ã A%=0 ¸ 7:ÿ"FX"+Ã(221+A%)+","+Ã((A%‚4)*16+128):í ¸'ÿ "FX4,2":ÿ "FX219,9":ÿ "FX254,128" Âá Ì: Ö.ô General cross-platform regular key input à4ݤkbd_GET:ê A%:õ A%=¤kbd_INKEY(100):ý A%<>-1:=A% êݤkbd_INKEY(T%):ê A%,S% ô(A%=¦T%:S%=(¦-1€16)+(¦-2€32)+(¦-3€48) þ2ç A%=30:ç kbd%<0:ç¦-63:=&C8+S% :ô RISC OS Home 1ç A%=127:ç kbd%<0:=&C7+S% :ô Delete 9ç A%<128 „ kbd%=0:=A% :ô No translation ;ç kbd%>0:A%=A%-16 :ô RTR topset keys &cç kbd%>0:ç(A%€&F0)=&70:= ("&"+Á"CD89BA67CDEFABAB",A%-&6F,1))+S%+&C0 :ô RTR editing keys 0gç kbd%>0:ç(A%€&F0)=&80:çA%>&8A:çS%€48:=((A%+&5C)‚((A%>&8D)€1))+18*(A%=&8B) :ô RTR Ctrl-editing keys :ç kbd%>0:=A% D2ç (A%€&CF)=&CD:=A%-7 :ô Insert N9ç (A%€&8F)>&89:A%=A%‚&40 :ô f10-f12/cursors X/ç (A%€&CF)=&CB:=A%-2 :ô End bFç (A%€&DE)=&CE:=A%+(¦-1€12) :ô Down/Up or Shift-PgDn/Shift-PgUp lFç (A%€&DE)=&DE:=A%-20+(¦-1€20) :ô Shift-Down/Shift-Up or PgDn/PgUp v=A% €: ÿ