Author: Steve Maughan
Date: 12:03:02 09/24/04
Go up one level in this thread
Martin,
Here's the Delphi version of Monarch's routine to poll input. In a quick test,
with it running but not thinking (i.e. polling input), the CPU utilization was
between 2% and 4%.
I hope it helps
Steve
=============================================================================
procedure read_winboard;
var
s :string;
c :char;
quit : boolean;
begin
quit:=false;
while not(quit) do
begin
s:='';
repeat
read(input,c);
s:=s+c;
until (c in [#10 ,#13]) and (s<>'') or Quit;
if Quit then exit;
s:=trim(s); //parse command
if assigned(chess) and (s<>'') then
begin
//benchmark
if UpperCase(s)='TEST' then
chess.test2
else if UpperCase(s)='BENCH' then
chess.bench
//UCI Commands
else if UpperCase(s)='UCI' then
Chess.SetUCI
else
if UpperCase(s)='ISREADY' then
chess.uciIsReady
else if UpperCase(s)='QUIT' then
begin
quit:=true;
chess.Quit;
end
else if UpperCase(s)='STOP' then
chess.uciStop
else if pos('GO',UpperCase(s))=1 then
chess.uciGo(s)
else if UpperCase(s)='PONDERHIT' then
chess.uciPonderHit
else if pos('POSITION',UpperCase(s))=1 then
begin
chess.uciPosition(s);
end
else if pos('SETOPTION',UpperCase(s))=1 then
chess.uciSetOption(s)
else
begin
{$IFDEF DEBUG}
WriteCommand('Unknown.txt',s);
{$ENDIF}
end;
end;
Application.ProcessMessages;
sleep(1);
end;
end;
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.