[Back to KEYBOARD SWAG index] [Back to Main SWAG index] [Original]
{
> How do I stuff a string into the keyboard buffer?
I've got two things for you:
1: Turbo Power's Object Professional's OpCRT unit has the following
useful routines:
procedure StuffKey(W : Word);
{-Stuff one key into the keyboard buffer}
procedure StuffString(S : string);
{-Stuff the contents of S into the keyboard buffer}
{
2: If you don't have Object Professional (it's $895.00 but worth it)
Before I noticed that OpCRT would do what I needed, I sat down and
wrote the following code. It's rough, but gives a pretty good idea
of how the keyboard buffer works, and there's a chance that you can
use it to create your own Stuffer
}
program ViewKbdBufr;
(********************************************************************
***
Written By Kevin R. Pierce - June 25, 1994
*********************************************************************
**)
Uses
OpString, {This is where HexB is. You can write your own easy
enough}
CRT;
var
Buffer_Head : Byte absolute $0040:$001A;
Buffer_Tail : Byte absolute $0040:$001C;
Buffer_Start: Byte absolute $0040:$0080;
Buffer_End : Byte absolute $0040:$0082;
var
t : byte;
begin
clrscr;
repeat
gotoxy(1,1);
writeln('Buffer Head = ',HexB(Buffer_Head));
writeln('Buffer Tail = ',HexB(Buffer_Tail));
writeln('Buffer Start = ',HexB(Buffer_Start));
writeln('Buffer End = ',HexB(Buffer_End));
writeln;
if Buffer_Tail >Buffer_Head then {simple list}
begin
for t:=Buffer_Head to Buffer_Tail do
write(Byte(Ptr(Seg0040,t)^):4);
end
else {loop back to START}
if Buffer_Head<>Buffer_Tail then
begin
for t:=Buffer_Head to Buffer_End do
write(Byte(Ptr(Seg0040,t)^):4);
for t:=Buffer_Start to Buffer_Tail do
write(Byte(Ptr(Seg0040,t)^):4);
end;
clreol;
writeln;
writeln(Byte(Ptr(Seg0040,Buffer_Head)^):3);
writeln(Byte(Ptr(Seg0040,Buffer_Tail)^):3);
writeln(Byte(Ptr(Seg0040,Buffer_Start)^):3);
writeln(Byte(Ptr(Seg0040,Buffer_End)^):3);
writeln;
for t:=ofs(Buffer_Head) to ofs(Buffer_Tail) do
write(Byte(Ptr(seg(Buffer_Head),t)^):3);
until FALSE;
{endless Loop - Use Ctrl-Break to stop (you might have to reboot if
you run BP under Windows.}
end.
[Back to KEYBOARD SWAG index] [Back to Main SWAG index] [Original]