#include <drivers/8259.h>
#include <ubixos/io.h>
#include <ubixos/types.h>
void initMouse() {
static uInt8 s1[] = { 0xF3, 0xC8, 0xF3, 0x64, 0xF3, 0x50, 0 };
static uInt8 s2[] = { 0xF6, 0xE6, 0xF4, 0xF3, 0x64, 0xE8, 0x03, 0 };
uInt8 *ch;
enableIrq(12);
outportByte(0x64,0xA8);
for (ch = s1; *ch; ch++) {
outportByte(0x64,0xD4);
outportByte(0x60,*ch);
}
for (ch = s2; *ch; ch++) {
outportByte(0x64,0xD4);
outportByte(0x60,*ch);
}
outportByte(0x64,0xA8);
outportByte(0x60,0xF2);
kprintf("inByte: [%i]\n",inportByte(0x64));
kprintf("inByte: [%i]\n",inportByte(0x60));
kprintf("inByte: [%i]\n",inportByte(0x64));
kprintf("inByte: [%i]\n",inportByte(0x60));
}
asm(
".global mouseISR \n"
"mouseISR: \n"
// "xchgl %eax,(%esp) \n"
// "pushl %ecx \n"
// "pushl %edx \n"
// "push %ds \n"
// "push %es \n"
// "push %fs \n"
"call mouseISR2 \n"
// "pop %fs \n"
// "pop %es \n"
// "pop %ds \n"
// "popl %edx \n"
// "popl %ecx \n"
// "popl %eax \n"
"iret \n"
);
void mouseISR2() {
kprintf("MouseByte: [%i]\n",inportByte(0x60));
}