X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;f=src%2Fcli%2Fkeyboard.c;h=ae0cd9105e44ba971036f3ec08d68aac4156d530;hb=HEAD;hp=44927e589009db2f4c4fc862bc0b69ce05710bf0;hpb=3c838204cd78bcf106fdd65476180659ab629fcb;p=emu8051.git diff --git a/src/cli/keyboard.c b/src/cli/keyboard.c index 44927e5..ae0cd91 100644 --- a/src/cli/keyboard.c +++ b/src/cli/keyboard.c @@ -18,17 +18,21 @@ kbhit(void) { char ch; int nread; + if (peek != -1) return 1; + newtio.c_cc[VMIN] = 0; tcsetattr(0, TCSANOW, &newtio); nread = read(0, &ch, 1); newtio.c_cc[VMIN] = 1; tcsetattr(0, TCSANOW, &newtio); + if (nread == 1) { peek = ch; return 1; } + return 0; } @@ -36,17 +40,20 @@ int getch(void) { char ch; + if (peek != -1) { ch = peek; peek = -1; return ch; } + read(0, &ch, 1); + return ch; } void -InitUnixKB(void) +keyboard_init(void) { tcgetattr(0, &orig); newtio = orig; @@ -59,7 +66,7 @@ InitUnixKB(void) } void -ResetUnixKB(void) +keyboard_reset(void) { tcsetattr(0, TCSANOW, &orig); }