32 lines
609 B
C
32 lines
609 B
C
#include "include/kbc.h"
|
|
|
|
__code struct Kbc KBC = {
|
|
.control = &KBHICR,
|
|
.irq = &KBIRQR,
|
|
.status = &KBHISR,
|
|
.keyboard_out = &KBHIKDOR,
|
|
.mouse_out = &KBHIMDOR,
|
|
.data_in = &KBHIDIR,
|
|
};
|
|
|
|
void kbc_init(void) {
|
|
*(KBC.irq) = 0;
|
|
*(KBC.control) = 0x48;
|
|
}
|
|
|
|
unsigned char kbc_status(struct Kbc * kbc) {
|
|
return *(kbc->status);
|
|
}
|
|
|
|
unsigned char kbc_read(struct Kbc * kbc) {
|
|
return *(kbc->data_in);
|
|
}
|
|
|
|
void kbc_keyboard(struct Kbc * kbc, unsigned char data) {
|
|
*(kbc->keyboard_out) = data;
|
|
}
|
|
|
|
void kbc_mouse(struct Kbc * kbc, unsigned char data) {
|
|
*(kbc->mouse_out) = data;
|
|
}
|