Merge "Add scanlib for producing keyboard scancodes"
This commit is contained in:
commit
ec2615fa7c
302
labs/lib/osbash/scanlib
Normal file
302
labs/lib/osbash/scanlib
Normal file
@ -0,0 +1,302 @@
|
||||
# The functions in this library are used to get scancode strings for VirtualBox
|
||||
# keyboard input (keyboardputscancode).
|
||||
#
|
||||
# It was generated mostly from output of Cameron Kerr's scancodes.l:
|
||||
# http://humbledown.org/keyboard-scancodes.xhtml
|
||||
#
|
||||
# The library works with bash 3.2 (shipped with Mac OS X as of 2014).
|
||||
|
||||
function char2scancode {
|
||||
local KEY=$1
|
||||
case "$KEY" in
|
||||
'a')
|
||||
echo -n " 1e 9e"
|
||||
;;
|
||||
'b')
|
||||
echo -n " 30 b0"
|
||||
;;
|
||||
'c')
|
||||
echo -n " 2e ae"
|
||||
;;
|
||||
'd')
|
||||
echo -n " 20 a0"
|
||||
;;
|
||||
'e')
|
||||
echo -n " 12 92"
|
||||
;;
|
||||
'f')
|
||||
echo -n " 21 a1"
|
||||
;;
|
||||
'g')
|
||||
echo -n " 22 a2"
|
||||
;;
|
||||
'h')
|
||||
echo -n " 23 a3"
|
||||
;;
|
||||
'i')
|
||||
echo -n " 17 97"
|
||||
;;
|
||||
'j')
|
||||
echo -n " 24 a4"
|
||||
;;
|
||||
'k')
|
||||
echo -n " 25 a5"
|
||||
;;
|
||||
'l')
|
||||
echo -n " 26 a6"
|
||||
;;
|
||||
'm')
|
||||
echo -n " 32 b2"
|
||||
;;
|
||||
'n')
|
||||
echo -n " 31 b1"
|
||||
;;
|
||||
'o')
|
||||
echo -n " 18 98"
|
||||
;;
|
||||
'p')
|
||||
echo -n " 19 99"
|
||||
;;
|
||||
'q')
|
||||
echo -n " 10 90"
|
||||
;;
|
||||
'r')
|
||||
echo -n " 13 93"
|
||||
;;
|
||||
's')
|
||||
echo -n " 1f 9f"
|
||||
;;
|
||||
't')
|
||||
echo -n " 14 94"
|
||||
;;
|
||||
'u')
|
||||
echo -n " 16 96"
|
||||
;;
|
||||
'v')
|
||||
echo -n " 2f af"
|
||||
;;
|
||||
'w')
|
||||
echo -n " 11 91"
|
||||
;;
|
||||
'x')
|
||||
echo -n " 2d ad"
|
||||
;;
|
||||
'y')
|
||||
echo -n " 15 95"
|
||||
;;
|
||||
'z')
|
||||
echo -n " 2c ac"
|
||||
;;
|
||||
'A')
|
||||
echo -n " 2a 1e 9e aa"
|
||||
;;
|
||||
'B')
|
||||
echo -n " 2a 30 b0 aa"
|
||||
;;
|
||||
'C')
|
||||
echo -n " 2a 2e ae aa"
|
||||
;;
|
||||
'D')
|
||||
echo -n " 2a 20 a0 aa"
|
||||
;;
|
||||
'E')
|
||||
echo -n " 2a 12 92 aa"
|
||||
;;
|
||||
'F')
|
||||
echo -n " 2a 21 a1 aa"
|
||||
;;
|
||||
'G')
|
||||
echo -n " 2a 22 a2 aa"
|
||||
;;
|
||||
'H')
|
||||
echo -n " 2a 23 a3 aa"
|
||||
;;
|
||||
'I')
|
||||
echo -n " 2a 17 97 aa"
|
||||
;;
|
||||
'J')
|
||||
echo -n " 2a 24 a4 aa"
|
||||
;;
|
||||
'K')
|
||||
echo -n " 2a 25 a5 aa"
|
||||
;;
|
||||
'L')
|
||||
echo -n " 2a 26 a6 aa"
|
||||
;;
|
||||
'M')
|
||||
echo -n " 2a 32 b2 aa"
|
||||
;;
|
||||
'N')
|
||||
echo -n " 2a 31 b1 aa"
|
||||
;;
|
||||
'O')
|
||||
echo -n " 2a 18 98 aa"
|
||||
;;
|
||||
'P')
|
||||
echo -n " 2a 19 99 aa"
|
||||
;;
|
||||
'Q')
|
||||
echo -n " 2a 10 90 aa"
|
||||
;;
|
||||
'R')
|
||||
echo -n " 2a 13 93 aa"
|
||||
;;
|
||||
'S')
|
||||
echo -n " 2a 1f 9f aa"
|
||||
;;
|
||||
'T')
|
||||
echo -n " 2a 14 94 aa"
|
||||
;;
|
||||
'U')
|
||||
echo -n " 2a 16 96 aa"
|
||||
;;
|
||||
'V')
|
||||
echo -n " 2a 2f af aa"
|
||||
;;
|
||||
'W')
|
||||
echo -n " 2a 11 91 aa"
|
||||
;;
|
||||
'X')
|
||||
echo -n " 2a 2d ad aa"
|
||||
;;
|
||||
'Z')
|
||||
echo -n " 2a 2c ac aa"
|
||||
;;
|
||||
'Y')
|
||||
echo -n " 2a 15 95 aa"
|
||||
;;
|
||||
'1')
|
||||
echo -n " 02 82"
|
||||
;;
|
||||
'2')
|
||||
echo -n " 03 83"
|
||||
;;
|
||||
'3')
|
||||
echo -n " 04 84"
|
||||
;;
|
||||
'4')
|
||||
echo -n " 05 85"
|
||||
;;
|
||||
'5')
|
||||
echo -n " 06 86"
|
||||
;;
|
||||
'6')
|
||||
echo -n " 07 87"
|
||||
;;
|
||||
'7')
|
||||
echo -n " 08 88"
|
||||
;;
|
||||
'8')
|
||||
echo -n " 09 89"
|
||||
;;
|
||||
'9')
|
||||
echo -n " 0a 8a"
|
||||
;;
|
||||
'0')
|
||||
echo -n " 0b 8b"
|
||||
;;
|
||||
'!')
|
||||
echo -n " 2a 02 82 aa"
|
||||
;;
|
||||
'@')
|
||||
echo -n " 2a 03 83 aa"
|
||||
;;
|
||||
'#')
|
||||
echo -n " 2a 04 84 aa"
|
||||
;;
|
||||
'$')
|
||||
echo -n " 2a 05 85 aa"
|
||||
;;
|
||||
'%')
|
||||
echo -n " 2a 06 86 aa"
|
||||
;;
|
||||
'^')
|
||||
echo -n " 2a 07 87 aa"
|
||||
;;
|
||||
'&')
|
||||
echo -n " 2a 08 88 aa"
|
||||
;;
|
||||
'*')
|
||||
echo -n " 2a 09 89 aa"
|
||||
;;
|
||||
'(')
|
||||
echo -n " 2a 0a 8a aa"
|
||||
;;
|
||||
')')
|
||||
echo -n " 2a 0b 8b aa"
|
||||
;;
|
||||
'-')
|
||||
echo -n " 0c 8c"
|
||||
;;
|
||||
'_')
|
||||
echo -n " 2a 0c 8c aa"
|
||||
;;
|
||||
'=')
|
||||
echo -n " 0d 8d"
|
||||
;;
|
||||
'+')
|
||||
echo -n " 2a 0d 8d aa"
|
||||
;;
|
||||
' ')
|
||||
echo -n " 39 b9"
|
||||
;;
|
||||
'[')
|
||||
echo -n " 1a 9a"
|
||||
;;
|
||||
']')
|
||||
echo -n " 1b 9b"
|
||||
;;
|
||||
'{')
|
||||
echo -n " 2a 1a 9a aa"
|
||||
;;
|
||||
'}')
|
||||
echo -n " 2a 1b 9b aa"
|
||||
;;
|
||||
';')
|
||||
echo -n " 27 a7"
|
||||
;;
|
||||
':')
|
||||
echo -n " 2a 27 a7 aa"
|
||||
;;
|
||||
',')
|
||||
echo -n " 33 b3"
|
||||
;;
|
||||
'.')
|
||||
echo -n " 34 b4"
|
||||
;;
|
||||
'/')
|
||||
echo -n " 35 b5"
|
||||
;;
|
||||
'\')
|
||||
echo -n " 2b ab"
|
||||
;;
|
||||
'|')
|
||||
echo -n " 2a 2b ab aa"
|
||||
;;
|
||||
'?')
|
||||
echo -n " 2a 35 b5 aa"
|
||||
;;
|
||||
'"')
|
||||
echo -n " 2a 28 a8 aa"
|
||||
;;
|
||||
"'")
|
||||
echo -n " 28 a8"
|
||||
;;
|
||||
">")
|
||||
echo -n " 2a 34 b4 aa"
|
||||
;;
|
||||
"<")
|
||||
echo -n " 2a 33 b3 aa"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function esc2scancode {
|
||||
echo -n " 01 81"
|
||||
}
|
||||
|
||||
function enter2scancode {
|
||||
echo -n " 1c 9c"
|
||||
}
|
||||
|
||||
# vim: set ai ts=4 sw=4 et ft=sh:
|
Loading…
x
Reference in New Issue
Block a user