1. Help needed please
- Posted by Sid Sidebottom - Snr Ops Technician <Sid.Sidebottom at ST.COM> Jul 20, 2000
- 371 views
Hi there fellow Eu4ians I've got a bit of a problem, and I can't seem to find the answer in RefMan. How do you flush the kbd buffer (DOS)? I've tried flush(0), but it comes back with an error, and I've tried close(0), but I can't seem to open it again. Or, failing that, is there a way of closing off the kbd, and then re-opening after? It seems a simple thing to want, but it's driving me up the wall at the minute. TIA Sid -- Sid Sidebottom - Senior Operations Technician STMicroelectronics Tel: +44 (0)131 336 6116 Fax: +44 (0)131 336 6001 Email: sid.sidebottom at st.com WWW: http://www.vvl.co.uk www.st.com
2. Re: Help needed please
- Posted by Colin Taylor <ctaylor at RACSA.CO.CR> Jul 20, 2000
- 358 views
Sid Sidebottom wrote: > How do you flush the kbd buffer (DOS)? Here are some snippets of code from keys.e by D.Cuny: Colin Taylor ----- constant KEY_BUFFER = 1054, -- keyboard buffer; circular queue FIRST_INDEX = 1050, -- index to first key in buffer LAST_INDEX = 1052 -- index to last key in buffer -- buffer is empty is indexes point to each other if peek( FIRST_INDEX ) = peek( LAST_INDEX ) then -- nothing in the buffer end if SCAN_CODE = peek( KEY_BUFFER + peek( FIRST_INDEX ) - 29 ) KEY_CODE = peek( KEY_BUFFER + peek( FIRST_INDEX ) - 30 ) -- clear the buffer poke( FIRST_INDEX, peek( LAST_INDEX ) ) -----
3. Re: Help needed please
- Posted by Mike Sabal <MikeS at NOTATIONS.COM> Jul 20, 2000
- 359 views
Colin's answer was pretty good, but if you're just trying to get rid of = extra CRLF's, etc., perhaps this line could work: while getc(0)!=3D-1 do end while As long as getc() returns a character, the buffer isn't flushed. When it = returns -1, that's the end of it all. HTH, Michael J. Sabal >>> Sid.Sidebottom at ST.COM 07/20/00 04:01AM >>> I've got a bit of a problem, and I can't seem to find the answer in = RefMan. How do you flush the kbd buffer (DOS)?
4. Re: Help needed please
- Posted by David Cuny <dcuny at LANSET.COM> Jul 20, 2000
- 351 views
Colin Taylor wrote: > Here are some snippets of code from keys.e by D.Cuny: > ... > -- buffer is empty is indexes point to each other Oops. That should have been "...IF indexes point to each other" -- David Cuny
5. Re: Help needed please
- Posted by Sid Sidebottom <sid at VVL.CO.UK> Jul 24, 2000
- 397 views
On Thu, 20 Jul 2000 08:48:12 -0400, Mike Sabal <MikeS at NOTATIONS.COM> wrote: >Colin's answer was pretty good, but if you're just trying to get rid of extra CRLF's, etc., perhaps this line could work: > >while getc(0)!=-1 do end while > >As long as getc() returns a character, the buffer isn't flushed. When it returns -1, that's the end of it all. > >HTH, >Michael J. Sabal Sorry for the delay in reply, and thanks to Colin and Mike for the response. I lazily opted for Mike's simpler solution (sorry Colin), but found that the line needed to be changed to while get_key() !=-1, presumably getc doesn't return an end of file marker for the kbd. Anyway, all sorted now, thanks again Sid