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 }