Add preliminary PS/2 keyboard support
diff --git a/src/scan_codes.tsv b/src/scan_codes.tsv
new file mode 100644
index 0000000..d036329
--- /dev/null
+++ b/src/scan_codes.tsv
@@ -0,0 +1,102 @@
+IBM Key No.	Set 1 Make/Break	Set 2 Make/Break	Set 3 Make/Break	Base Case	Upper Case	Is ASCII char	Symbol	Uppercase Symbol

+1	29/A9	0E/F0 0E	0E/F0 0E	`	~	yes	'`'	'~'

+2	02/82	16/F0 16	16/F0 16	1	!	yes	'1'	'!'

+3	03/83	1E/F0 1E	1E/F0 1E	2	@	yes	'2'	'@'

+4	04/84	26/F0 26	26/F0 26	3	#	yes	'3'	'#'

+5	05/85	25/F0 25	25/F0 25	4	$	yes	'4'	'$'

+6	06/86	2E/F0 2E	2E/F0 2E	5	%	yes	'5'	'%'

+7	07/87	36/F0 36	36/F0 36	6	^	yes	'6'	'^'

+8	08/88	3D/F0 3D	3D/F0 3D	7	&	yes	'7'	'&'

+9	09/89	3E/F0 3E	3E/F0 3E	8	*	yes	'8'	'*'

+10	0A/8A	46/F0 46	46/F0 46	9	(	yes	'9'	'('

+11	0B/8B	45/F0 45	45/F0 45	0	)	yes	'0'	')'

+12	0C/8C	4E/F0 4E	4E/F0 4E	-	_	yes	'-'	'_'

+13	0D/8D	55/F0 55	55/F0 55	=	+	yes	'='	'+'

+15	0E/8E	66/F0 66	66/F0 66	Backspace		no	KBD_BACKSPACE	NULL

+16	0F/8F	0D/F0 0D	0D/F0 0D	Tab		no	KBD_TAB	NULL

+17	10/90	15/F0 15	15/F0 15	q	Q	yes	'q'	'Q'

+18	11/91	1D/F0 1D	1D/F0 1D	w	W	yes	'w'	'W'

+19	12/92	24/F0 24	24/F0 24	e	E	yes	'e'	'E'

+20	13/93	2D/F0 2D	2D/F0 2D	r	R	yes	'r'	'R'

+21	14/94	2C/F0 2C	2C/F0 2C	t	T	yes	't'	'T'

+22	15/95	35/F0 35	35/F0 35	y	Y	yes	'y'	'Y'

+23	16/96	3C/F0 3C	3C/F0 3C	u	U	yes	'u'	'U'

+24	17/97	43/F0 43	43/F0 43	i	I	yes	'i'	'I'

+25	18/98	44/F0 44	44/F0 44	o	O	yes	'o'	'O'

+26	19/99	4D/F0 4D	4D/F0 4D	p	P	yes	'p'	'P'

+27	1A/9A	54/F0 54	54/F0 54	[	{	yes	'['	'{'

+28	1B/9B	5B/F0 5B	5B/F0 5B	]	}	yes	']'	'}'

+30	3A/BA	58/F0 58	58/F0 58	Caps Lock		no	KBD_CAPS_LOCK	NULL

+31	1E/9E	1C/F0 1C	1C/F0 1C	a	A	yes	'a'	'A'

+32	1F/9F	1B/F0 1B	1B/F0 1B	s	S	yes	's'	'S'

+33	20/A0	23/F0 23	23/F0 23	d	D	yes	'd'	'D'

+34	21/A1	2B/F0 2B	2B/F0 2B	f	F	yes	'f'	'F'

+35	22/A2	34/F0 34	34/F0 34	g	G	yes	'g'	'G'

+36	23/A3	33/F0 33	33/F0 33	h	H	yes	'h'	'H'

+37	24/A4	3B/F0 3B	3B/F0 3B	j	J	yes	'j'	'J'

+38	25/A5	42/F0 42	42/F0 42	k	K	yes	'k'	'K'

+39	26/A6	4B/F0 4B	4B/F0 4B	l	L	yes	'l'	'L'

+40	27/A7	4C/F0 4C	4C/F0 4C	;	:	yes	';'	':'

+41	28/A8	52/F0 52	52/F0 52	'	"	yes	'\''	'"'

+43	1C/9C	5A/F0 5A	5A/F0 5A	Enter	Enter	no	KBD_ENTER	NULL

+44	2A/AA	12/F0 12	12/F0 12	Left Shift		no	KBD_LEFT_SHIFT	NULL

+46	2C/AC	1A/F0 1A	1A/F0 1A	z	Z	yes	'z'	'Z'

+47	2D/AD	22/F0 22	22/F0 22	x	X	yes	'x'	'X'

+48	2E/AE	21/F0 21	21/F0 21	c	C	yes	'c'	'C'

+49	2F/AF	2A/F0 2A	2A/F0 2A	v	V	yes	'v'	'V'

+50	30/B0	32/F0 32	32/F0 32	b	B	yes	'b'	'B'

+51	31/B1	31/F0 31	31/F0 31	n	N	yes	'n'	'N'

+52	32/B2	3A/F0 3A	3A/F0 3A	m	M	yes	'm'	'M'

+53	33/B3	41/F0 41	41/F0 41	,	<	yes	','	'<'

+54	34/B4	49/F0 49	49/F0 49	.	>	yes	'.'	'>'

+55	35/B5	4A/F0 4A	4A/F0 4A	/	?	yes	'/'	'?'

+57	36/B6	59/F0 59	59/F0 59	Right Shift		no	KBD_RIGHT_SHIFT	NULL

+58	1D/9D	14/F0 14	11/F0 11	Left Ctrl		no	KBD_LEFT_CTRL	NULL

+60	38/B8	11/F0 11	19/F0 19	Left Alt		no	KBD_LEFT_ALT	NULL

+61	39/B9	29/F0 29	29/F0 29	Spacebar		no	KBD_SPACEBAR	NULL

+62	E0 38/E0 B8	E0 11/E0 F0 11	39/F0 39	Right Alt		no	KBD_RIGHT_ALT	NULL

+64	E0 1D/E0 9D	E0 14/E0 F0 14	58/F0 58	Right Ctrl		no	KBD_RIGHT_CTRL	NULL

+75	E0 52/E0 D2 (base)	E0 70/E0 F0 70 (base)	67/F0 67	Insert		no	KBD_INSERT	NULL

+76	E0 4B/E0 CB (base)	E0 71/E0 F0 71 (base)	64/F0 64	Delete		no	KBD_DELETE	NULL

+79	E0 4B/E0 CB (base)	E0 6B/E0 F0 6B (base)	61/F0 61	Left Arrow		no	KBD_LEFT_ARROW	NULL

+80	E0 47/E0 C7 (base)	E0 6C/E0 F0 6C (base)	6E/F0 6E	Home		no	KBD_HOME	NULL

+81	E0 4F/E0 CF (base)	E0 69/E0 F0 69 (base)	65/F0 65	End		no	KBD_END	NULL

+83	E0 48/E0 C8 (base)	E0 75/E0 F0 75 (base)	63/F0 63	Up Arrow		no	KBD_UP_ARROW	NULL

+84	E0 50/E0 D0 (base)	E0 72/E0 F0 72 (base)	60/F0 60	Down Arrow		no	KBD_DOWN_ARROW	NULL

+85	E0 49/E0 C9 (base)	E0 7D/E0 F0 7D (base)	6F/F0 6F	Page Up		no	KBD_PAGE_UP	NULL

+86	E0 51/E0 D1 (base)	E0 7A/E0 F0 7A (base)	6D/F0 6D	Page Down		no	KBD_PAGE_DOWN	NULL

+89	E0 4D/E0 CD (base)	E0 74/E0 F0 74 (base)	6A/F0 6A	Right Arrow		no	KBD_RIGHT_ARROW	NULL

+90	45/C5	77/F0 77	76/F0 76	Num Lock		no	KBD_NUM_LOCK	NULL

+91	47/C7	6C/F0 6C	6C/F0 6C	Keypad 7		no	KBD_KEYPAD_7	NULL

+92	4B/CB	6B/F0 6B	6B/F0 6B	Keypad 4		no	KBD_KEYPAD_4	NULL

+93	4F/CF	69/F0 69	69/F0 69	Keypad 1		no	KBD_KEYPAD_1	NULL

+95	E0 35/E0 B5 (base)	E0 4A/E0 F0 4A (base)	77/F0 77	Keypad /		no	KBD_KEYPAD_/	NULL

+96	48/C8	75/F0 75	75/F0 75	Keypad 8		no	KBD_KEYPAD_8	NULL

+97	4C/CC	73/F0 73	73/F0 73	Keypad 5		no	KBD_KEYPAD_5	NULL

+98	50/D0	72/F0 72	72/F0 72	Keypad 2		no	KBD_KEYPAD_2	NULL

+99	52/D2	70/F0 70	70/F0 70	Keypad 0		no	KBD_KEYPAD_0	NULL

+100	37/B7	7C/F0 7C	7E/F0 7E	Keypad *		no	KBD_KEYPAD_*	NULL

+101	49/C9	7D/F0 7D	7D/F0 7D	Keypad 9		no	KBD_KEYPAD_9	NULL

+102	4D/CD	74/F0 74	74/F0 74	Keypad 6		no	KBD_KEYPAD_6	NULL

+103	51/D1	7A/F0 7A	7A/F0 7A	Keypad 3		no	KBD_KEYPAD_3	NULL

+104	53/D3	71/F0 71	71/F0 71	Keypad .		no	KBD_KEYPAD_.	NULL

+105	4A/CA	7B/F0 7B	84/F0 84	Keypad -		no	KBD_KEYPAD_-	NULL

+106	4E/CE	79/F0 79	7C/F0 7C	Keypad +		no	KBD_KEYPAD_+	NULL

+108	E0 1C/E0 9C	E0 5A/E0 F0 5A	79/F0 79	Keypad Enter		no	KBD_KEYPAD_ENTER	NULL

+110	01/81	76/F0 76	08/F0 08	Esc		no	KBD_ESC	NULL

+112	3B/BB	05/F0 05	07/F0 07	F1		no	KBD_F1	NULL

+113	3C/BC	06/F0 06	0F/F0 0F	F2		no	KBD_F2	NULL

+114	3D/BD	04/F0 04	17/F0 17	F3		no	KBD_F3	NULL

+115	3E/BE	0C/F0 0C	1F/F0 1F	F4		no	KBD_F4	NULL

+116	3F/BF	03/F0 03	27/F0 27	F5		no	KBD_F5	NULL

+117	40/C0	0B/F0 0B	2F/F0 2F	F6		no	KBD_F6	NULL

+118	41/C1	83/F0 83	37/F0 37	F7		no	KBD_F7	NULL

+119	42/C2	0A/F0 0A	3F/F0 3F	F8		no	KBD_F8	NULL

+120	43/C3	01/F0 01	47/F0 47	F9		no	KBD_F9	NULL

+121	44/C4	09/F0 09	4F/F0 4F	F10		no	KBD_F10	NULL

+122	57/D7	78/F0 78	56/F0 56	F11		no	KBD_F11	NULL

+123	58/D8	07/F0 07	5E/F0 5E	F12		no	KBD_F12	NULL

+124	E0 2A E0 37/E0 B7 E0 AA	E0 12 E0 7C/E0 F0 7C E0 F0 12	57/F0 57	Print Screen		no	KBD_PRINT_SCREEN	NULL

+125	46/C6	7E/F0 7E	5F/F0 5F	Scroll Lock		no	KBD_SCROLL_LOCK	NULL

+126	E1 1D 45/E1 9D C5	E1 14 77 E1/F0 14 F0 77	62/F0 62	Pause Break		no	KBD_PAUSE_BREAK	NULL

+29	2B/AB	5D/F0 5D	5C/F0 5C	\	|	yes	'\\'	'|'
\ No newline at end of file