Add scancode command
This commit is contained in:
parent
387811a882
commit
89fb9dca12
@ -11,6 +11,7 @@ enum KbcState {
|
|||||||
KBC_STATE_NORMAL,
|
KBC_STATE_NORMAL,
|
||||||
KBC_STATE_WRITE_CONFIG,
|
KBC_STATE_WRITE_CONFIG,
|
||||||
KBC_STATE_SET_LEDS,
|
KBC_STATE_SET_LEDS,
|
||||||
|
KBC_STATE_SCANCODE,
|
||||||
};
|
};
|
||||||
|
|
||||||
void kbc_event(struct Kbc * kbc) {
|
void kbc_event(struct Kbc * kbc) {
|
||||||
@ -62,6 +63,17 @@ void kbc_event(struct Kbc * kbc) {
|
|||||||
case 0xED:
|
case 0xED:
|
||||||
printf(" set leds\n");
|
printf(" set leds\n");
|
||||||
state = KBC_STATE_SET_LEDS;
|
state = KBC_STATE_SET_LEDS;
|
||||||
|
kbc_keyboard(kbc, 0xFA);
|
||||||
|
break;
|
||||||
|
case 0xEE:
|
||||||
|
printf(" echo\n");
|
||||||
|
// Hey, this is easy. I like easy commands
|
||||||
|
kbc_keyboard(kbc, 0xEE);
|
||||||
|
break;
|
||||||
|
case 0xF0:
|
||||||
|
printf(" get/set scancode\n");
|
||||||
|
state = KBC_STATE_SCANCODE;
|
||||||
|
kbc_keyboard(kbc, 0xFA);
|
||||||
break;
|
break;
|
||||||
case 0xF4:
|
case 0xF4:
|
||||||
printf(" enable scanning\n");
|
printf(" enable scanning\n");
|
||||||
@ -74,6 +86,7 @@ void kbc_event(struct Kbc * kbc) {
|
|||||||
case 0xFF:
|
case 0xFF:
|
||||||
printf(" self test\n");
|
printf(" self test\n");
|
||||||
kbc_keyboard(kbc, 0xFA);
|
kbc_keyboard(kbc, 0xFA);
|
||||||
|
while (kbc_status(kbc) & KBC_STS_OBF) {}
|
||||||
// Yep, everything is still good, I promise
|
// Yep, everything is still good, I promise
|
||||||
kbc_keyboard(kbc, 0xAA);
|
kbc_keyboard(kbc, 0xAA);
|
||||||
break;
|
break;
|
||||||
@ -88,6 +101,16 @@ void kbc_event(struct Kbc * kbc) {
|
|||||||
state = KBC_STATE_NORMAL;
|
state = KBC_STATE_NORMAL;
|
||||||
kbc_keyboard(kbc, 0xFA);
|
kbc_keyboard(kbc, 0xFA);
|
||||||
break;
|
break;
|
||||||
|
case KBC_STATE_SCANCODE:
|
||||||
|
printf(" get/set scancode\n");
|
||||||
|
state = KBC_STATE_NORMAL;
|
||||||
|
switch (data) {
|
||||||
|
case 0x02:
|
||||||
|
printf(" set scancode set 2\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
kbc_keyboard(kbc, 0xFA);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user