16,20 → 16,11 |
|
/* temporary: for console i/o */ |
#include <ll/i386/cons.h> |
#include <drivers/keyb.h> |
static int __getch(int flag) |
{ |
KEY_EVT key; |
for (;;) { |
if (!keyb_getcode(&key,flag)) return -1; |
if (isScanCode(key)) continue; |
if (isLeftCtrl(key)||isRightCtrl(key)) { |
if (key.ascii>='a'&&key.ascii<='z') return key.ascii-'a'+1; |
if (key.ascii>='A'&&key.ascii<='Z') return key.ascii-'A'+1; |
} |
if (key.ascii==0x0d) return 0x0a; // 'Enter' is '\n' |
return key.ascii; |
} |
|
return 0; |
|
} |
|
__ssize_t k_read(int fd, __ptr_t buf, __ssize_t nbytes) |