X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;f=src%2Fcli%2Fkeyboard.c;h=ae0cd9105e44ba971036f3ec08d68aac4156d530;hb=HEAD;hp=654087e8768ebb12c3006018c93b10848d2b531e;hpb=1eb382f72510d50b3636fb88c4bfaf17183672b6;p=emu8051.git diff --git a/src/cli/keyboard.c b/src/cli/keyboard.c index 654087e..ae0cd91 100644 --- a/src/cli/keyboard.c +++ b/src/cli/keyboard.c @@ -4,19 +4,7 @@ * Copyright (C) 1999 Jonathan St-André * Copyright (C) 1999 Hugo Villeneuve * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + * This file is released under the GPLv2 */ #include @@ -30,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; } @@ -48,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; @@ -71,7 +66,7 @@ InitUnixKB(void) } void -ResetUnixKB(void) +keyboard_reset(void) { tcsetattr(0, TCSANOW, &orig); }