From fc7022286a14e7325907fb4e77aa44330037229b Mon Sep 17 00:00:00 2001 From: miguel Date: Mon, 25 Aug 2014 16:48:00 +0200 Subject: minor changes and some notes on keyboard driver --- README.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ bochsrc | 2 +- kernel/kernel.c | 1 + 3 files changed, 53 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f3be90c..0bd2a18 100644 --- a/README.md +++ b/README.md @@ -116,6 +116,57 @@ REFERENCES MY NOTES BELOW THIS LINE ======================== +Keyboard Driver +--------------- + +//some thoughts on redesign of the keyboard driver +//use uint8_t for proc_pos and buff_pos and a BUF_SIZE of 256 for auto wrap!? + +// kb input ringbuffer +#define BUF_SIZE 256 +kb_scancode kb_buff[BUF_SIZE]; + +buff_pos=0; +proc_pos=0; +buffered=0; + +void kb_irq() +{ + cli + + //we get one interrupt for EACH scancode! + kb_scancode val=get_scancode(); + + // think about race condition if called while inside kb_proc(); + if(buffered+1