37,6 → 37,8 |
|
#include <drivers/shark_keyb26.h> |
|
//#define SHOW_EVT |
|
void my_sysclose(KEY_EVT *e) |
{ |
kern_printf("S.Ha.R.K. closed.\n\n"); |
43,14 → 45,24 |
exit(0); |
} |
|
TASK my_getch(void *arg) { |
TASK my_get(void *arg) { |
#ifdef SHOW_EVT |
int status; |
KEY_EVT ev; |
#else |
BYTE ch; |
#endif |
|
BYTE ch; |
|
while (1) { |
#ifdef SHOW_EVT |
status = keyb_getcode(&ev, NON_BLOCK); |
if (status == TRUE) |
cprintf("[%c %d %d %d]\n", ev.ascii, ev.scan, ev.status, ev.flag); |
#else |
ch = keyb_getch(NON_BLOCK); |
if (ch) |
cprintf("%c", ch); |
#endif |
task_endcycle(); |
} |
} |
68,6 → 80,14 |
cprintf("Keyboard Enabled.\n"); |
} |
|
void my_test(KEY_EVT *e){ |
cprintf("<test>\n"); |
} |
|
void my_arrow(KEY_EVT *e){ |
cprintf("<arrow>\n"); |
} |
|
int main(int argc, char **argv) |
{ |
SOFT_TASK_MODEL mp; |
80,7 → 100,16 |
ev.status = KEY_PRESSED; |
ev.flag = CNTR_BIT; |
keyb_hook(ev, my_pause, FALSE); |
|
|
set_keyevt(&ev, 'a', KEY_A, 0, KEY_PRESSED|KEY_REPEATED); |
keyb_hook(ev, my_test, FALSE); |
|
set_keyevt(&ev, 0, EXT_UP, 0, KEY_PRESSED); |
keyb_hook(ev, my_arrow, FALSE); |
|
set_keyevt(&ev, 'b', KEY_B, CNTL_BIT, KEY_PRESSED); |
keyb_hook(ev, my_test, TRUE); |
|
ev.ascii = 'c'; |
ev.scan = KEY_C; |
ev.status = KEY_PRESSED; |
95,7 → 124,7 |
soft_task_def_met(mp,700); |
soft_task_def_period(mp,1000); |
soft_task_def_usemath(mp); |
pid = task_create("Keyb_Print", my_getch, &mp, NULL); |
pid = task_create("Keyb_Print", my_get, &mp, NULL); |
if (pid == NIL) { |
perror("Could not create task <Keyb_Print>"); |
exit(1); |