Add KBC and PMC objects

This commit is contained in:
Jeremy Soller
2019-09-28 20:43:22 -06:00
parent b479defcc4
commit e9897a321e
5 changed files with 182 additions and 21 deletions

View File

@ -1,6 +1,31 @@
#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) {
KBIRQR = 0;
KBHICR = 0x48;
*(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;
}