コード例 #1
0
ファイル: keyboard.c プロジェクト: kyle-johnson/RippleKernel
// takes the scancode set, sets the kbd to it
// returns 1 if succes, or 0 upon failer
u_char kbd_set_scancode_set(u_char sc_set)
{
	if(write_kbd_await_ack(0xF0))
	{
		return(write_kbd_await_ack(sc_set));
	};
	return(0);
};
コード例 #2
0
ファイル: keyboard.c プロジェクト: BeatrizMaria/ics-os
static int init_kbd(unsigned ss, unsigned typematic, unsigned xlat)
{
	while(read_kbd() != -1)
		/* nothing */;
/* disable keyboard before programming it */
	write_kbd_await_ack(0xF5);
/* disable PS/2 mouse, set SYS bit, and Enable Keyboard Interrupt... */
	write_kbd(0x64, 0x60);
/*jach: enable mouse */
	//write_kbd(0x64, 0xA8);
/* ...and either disable or enable AT-to-XT keystroke conversion */
	write_kbd(0x60, xlat ? 0x65 : 0x25);
/* program desired scancode set */
	write_kbd_await_ack(0xF0);
	write_kbd_await_ack(ss);
/* we want all keys to return both a make code (when pressed)
and a break code (when released -- scancode set 3 only) */
	if(ss == 3)
	{
		write_kbd_await_ack(0xFA);
	}
/* set typematic delay and rate */
	write_kbd_await_ack(0xF3);
	write_kbd_await_ack(typematic);
/* enable keyboard */
	write_kbd_await_ack(0xF4);
	return 0;
}
コード例 #3
0
ファイル: keyboard.c プロジェクト: kyle-johnson/RippleKernel
// returns current scancode set, or 0 upon failer
u_char kbd_curr_scancode_set()
{
	write_kbd_await_ack(0xF0);
	write_kbd(0x60, 0);
	return(read_kbd());	// return scancode set
};