ref: 3cc6c38f1347e3a9d61f27d28dbafad7fe4cae7b
dir: /pc/ps2.c/
#include <u.h> #include <x86.h> #include <ps2.h> uint8 ps2_read_status(void) { return inb(KB_CTR); } void ps2_init() { int a = 256 - 3; // 11111100 outb(0x64, SET_RATE); outb(0x64, a); } char ps2_getc() { char c; while(1) { if(!(ps2_read_status() & 1)) continue; c = inb(KB); if(c & 0x80) continue; return keymap[c]; } }