doskeyb
annotate test.c @ 0:c2b210a70ce9
initial DOS keyboard driver commit
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Mon, 23 Sep 2013 03:42:39 +0300 |
parents | |
children | da4c014bb055 |
rev | line source |
---|---|
nuclear@0 | 1 #include <stdio.h> |
nuclear@0 | 2 #include <ctype.h> |
nuclear@0 | 3 #include <assert.h> |
nuclear@0 | 4 #include "keyb.h" |
nuclear@0 | 5 |
nuclear@0 | 6 int main(void) |
nuclear@0 | 7 { |
nuclear@0 | 8 int key; |
nuclear@0 | 9 |
nuclear@0 | 10 /* The argument to kb_init specifies how many keypresses to buffer up. |
nuclear@0 | 11 * If you don't need any keypress buffering, pass 0 to disable it. |
nuclear@0 | 12 */ |
nuclear@0 | 13 kb_init(16); |
nuclear@0 | 14 |
nuclear@0 | 15 for(;;) { |
nuclear@0 | 16 kb_wait(); /* wait for any keypress */ |
nuclear@0 | 17 key = kb_getkey(); /* get the pressed key */ |
nuclear@0 | 18 assert(key != -1); /* this should never happen since kb_wait returned */ |
nuclear@0 | 19 |
nuclear@0 | 20 if(key == 27) break; /* quit on esc */ |
nuclear@0 | 21 |
nuclear@0 | 22 /* if it's a printable character print it along with the key value */ |
nuclear@0 | 23 if(isprint(key)) { |
nuclear@0 | 24 printf("key: %d '%c'\n", key, (char)key); |
nuclear@0 | 25 } else { |
nuclear@0 | 26 printf("key: %d\n", key); |
nuclear@0 | 27 } |
nuclear@0 | 28 } |
nuclear@0 | 29 |
nuclear@0 | 30 kb_shutdown(); |
nuclear@0 | 31 return 0; |
nuclear@0 | 32 } |