void main(void) { console_getchar_init(); while (1) { u8_t c = console_getchar(); printk("char: [0x%x] %c\n", c, c); } }
static OSKIT_COMDECL read(oskit_ttystream_t *si, void *buf, oskit_u32_t len, oskit_u32_t *out_actual) { int i = 0, c; char *str = (char *) buf; /* implement simple line discipline */ while (i < len) { c = console_getchar(); if (c == EOF) break; if (my_termios.c_lflag & ICANON) { if (c == '\r') c = '\n'; else if (c == '\b') { if (i > 0) { if (my_termios.c_lflag & ECHO) { console_putchar(c); console_putchar(' '); console_putchar(c); } i--; } continue; } else if (c == '\025') { /* ^U -- kill line */ while (i) { if (my_termios.c_lflag & ECHO) { console_putchar('\b'); console_putchar(' '); console_putchar('\b'); } i--; } str[0] = '\0'; continue; } } if (my_termios.c_lflag & ECHO) console_putchar(c); str[i++] = c; if (c == '\n' && (my_termios.c_lflag & ICANON)) break; } if (i < len && (my_termios.c_lflag & ICANON)) str[i] = '\0'; *out_actual = i; return 0; }
static int get(int x, int y) { return console_getchar(x, y) & CH_MASK; }
int fgetc(FILE *f) { // return (getkey()); return (console_getchar()); }