Board index » delphi » Keyboard-Buffer

Keyboard-Buffer

Does anyone know howto write more than 15 characters in the keyboard-buffer?

Thanks to anyone who can help me solving this problem?

 

Re:Keyboard-Buffer


Quote
On Fri, 11 Aug 2000, DCK wrote:
> Does anyone know howto write more than 15 characters in the keyboard-buffer?

Hmm, never tryed to do this, but i have an idea.

As you know, there is a lower memory area. There the keyboard buffer and
two pointers are located. The first pointer points at the head of the
keyboard buffer and the 2th at the tail of the keyboard buffer. AFAIK
there is another value stored somewhere there what tells you how long the
buffer is. These values are to be changed.

But i think it is not too safe, and hard to do. So if i were you with the
same problem, i would save my BIOS keyboard handling algorythms, debug it
and modify. Also hard work i think, but really would solve the problem.

BTW why do you need to make it larger? Maybe a much more easy thing can be
done. (for example saving the buffer often in a more larger one and then
process the content of that buffer, not using the readkey or myabe
emulating keypresses to transfer back those chars to the keyboard buffer
to make it able to use readkey later).

Quote

> Thanks to anyone who can help me solving this problem?

Re:Keyboard-Buffer


Quote
> Does anyone know howto write more than 15 characters in the keyboard-buffer?

> Thanks to anyone who can help me solving this problem?

There are TSR utils to tackle this. Just search DOS and pascal
filearea's on a SIMTEL mirror. You might be able to use it for your own
programs too.

I only recall the name of a commercial one (which was great btw):
hyperkey, which was a part of a larger suite that also contained
hyperdisk diskcache.

--

Marco van de Voort (Mar...@stack.nl or ma...@freepascal.org)

Re:Keyboard-Buffer


JRS:  In article <Pine.GSO.4.21.0008111207490.2122-100000@ural2> of Fri,
11 Aug 2000 12:11:45 seen in news:comp.lang.pascal.borland, Palinkas

Quote
Tibor <pt...@hszk.bme.hu> wrote:
>On Fri, 11 Aug 2000, DCK wrote:

>> Does anyone know howto write more than 15 characters in the keyboard-buffer?

>Hmm, never tryed to do this, but i have an idea.

>As you know, there is a lower memory area. There the keyboard buffer and
>two pointers are located. The first pointer points at the head of the
>keyboard buffer and the 2th at the tail of the keyboard buffer. AFAIK
>there is another value stored somewhere there what tells you how long the
>buffer is. These values are to be changed.

There are four 16-bit near pointers; to the beginning and end of the
buffer, and to the beginning and end of the contents of the buffer - see
Ralf Brown's List.

As they are 16-bit offsets, into Segment $04, a new buffer *must* be
loaded low (unless the Segment can be changed); I have used, and could
possibly find, code to do the job which, in order to load low, loads as
a driver.  IIRC, it was OK on earlier DOS, but I've preferred not to try
it on the Win98 machine.

Quote
>But i think it is not too safe, and hard to do. So if i were you with the
>same problem, i would save my BIOS keyboard handling algorythms, debug it
>and modify. Also hard work i think, but really would solve the problem.

--
? John Stockton, Surrey, UK.  j...@merlyn.demon.co.uk   Turnpike v4.00   MIME. ?
 Web <URL: http://www.merlyn.demon.co.uk/> - FAQish topics, acronyms, & links.
 Proper 4-line sig. separator is as above, a line exactly "-- " (SonOfRFC1036)
 Do not Mail News to me. Before a reply, quote with ">" or "> " (SonOfRFC1036)

Re:Keyboard-Buffer


Quote
DCK wrote:

> Does anyone know howto write more than 15 characters in the keyboard-buffer?

> Thanks to anyone who can help me solving this problem?

I have a routine to increase KBD buffer to 128 bytes. It
relocates BIOS pointer to unused area. Since I made it over 10 years
ago, I don't know, if works on every Pentium.

Here is the code:
Begin
   MemW[$40:$80]:=$140;
   MemW[$40:$82]:=$240;
   MemW[$40:$1A]:=$140;
   MemW[$40:$1C]:=$140;
   Writeln( 'Keyboard buffer is now 128 bytes long.' ) ;
End.

Other Threads