From: mapson AT mapson DOT com (Mapson) Newsgroups: comp.os.msdos.djgpp Subject: Keyboard access Date: Wed, 28 Oct 1998 15:25:55 GMT Organization: Yale University Lines: 26 Message-ID: <36372e72.158861338@news.cis.yale.edu> NNTP-Posting-Host: logan.eng.yale.edu X-Newsreader: Forte Free Agent 1.11/32.235 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com I'm trying to implement some user-definable keyboard traps in a program I'm writing, and am running in to problems with the keyboard buffer. Basically, the user is inputs much more often on the keyboard that I will need to access- the problem: when I am interested, I have all the old characters in the buffer to empty out before I get to the one of interest (the last). So far, I've simply done a while (kbhit()) tempc=getch(); and then used tempc once it has exited- which is usually OK, albeit clunky. But since the keyboard buffer is not recirculating, sometimes the user will enter too many keystrokes ahead of time and fill the buffer, losing the char I am looking for. And emptying the buffer at other times in the program is not practical, since the programs are constructed by a general purpose "translator", so I can't know in advance when a good time would be. Perhaps a timer routine (simulating a sort of multi-tasking) would be the right thing- any tips on that? I guess I'd need to write an ISR for that- yikes. But before I need to go to that level: is there a high-level way in DJGPP to manipulate, directly access, or even temporarily disable the keyboard buffer? If I could make it "recirculating", that would at least be a sure (if clunky) solution. Please post here- no e-mail. Thanks!