#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)); }