11 years agoWarn user when all moves have been collected
H.G. Muller [Thu, 19 Apr 2012 20:43:11 +0000 (22:43 +0200)]
Warn user when all moves have been collected

A line 'OK to exclude' is printed disguised as Thinking-Output, to inform
the user that he can start using the exclude command.

11 years agoImplement WB exclude feature
H.G. Muller [Thu, 19 Apr 2012 19:18:28 +0000 (21:18 +0200)]
Implement WB exclude feature

UCI2WB collects moves sent by the engne in analysis mode from the currmove,
currmovenumber info commands. After the full set for the current position
has been completed, UCI2Wb becomes sensitive for WB include and exclude
commands, to switch the moves in the list on or off. If not all moves
are on, the 'go infinite' will be accompanied by 'searchmoves'. If all
moves are off, the current search is allowed to continue.

11 years agoBump version number to 1.8
H.G. Muller [Thu, 19 Apr 2012 20:51:26 +0000 (22:51 +0200)]
Bump version number to 1.8

11 years agoWait for uciok before handling GUI input
H.G. Muller [Tue, 17 Apr 2012 18:09:56 +0000 (20:09 +0200)]
Wait for uciok before handling GUI input

WinBoard does not apply a feature timeout when restarting an engine that
had reuse=0, but immediately starts sending commands. This caused the
memory command to be ignored, because it arrived when UCI2WB had not seen
the engine's Hash option yet. Now UCI2WB stalls processing GUI commands
after receiving 'protover' until it sees 'uciok' from the engine.

11 years agoMake translation of FEN with holdings also handle S-Chess
H.G. Muller [Tue, 17 Apr 2012 18:05:20 +0000 (20:05 +0200)]
Make translation of FEN with holdings also handle S-Chess

Like in Shogi FEN, UCI S-Chess engines have the holdings not immediately
behind the board, but before the move counters. Since Shogi FENs are
missing a few fields in this area (castling, e.p. and 50-move), some
recoding was necessary to make this work.

11 years agoPut move translation in separate routines
H.G. Muller [Tue, 17 Apr 2012 18:00:29 +0000 (20:00 +0200)]
Put move translation in separate routines

11 years agoTranslate S-Chess gating moves
H.G. Muller [Tue, 17 Apr 2012 05:44:50 +0000 (07:44 +0200)]
Translate S-Chess gating moves

The only existing UCI S-Chess engine requires the gating square to be
repeated after the gating piece suffix. Also gating-at-Rook castlings
have a different format: they mention the King move. UCI2WB now handles
these move translations.

11 years agoUpdate README file
H.G. Muller [Tue, 17 Apr 2012 06:56:39 +0000 (08:56 +0200)]
Update README file

Add description of the debug and -var options.

11 years agoMake supported variants run-time configurable
H.G. Muller [Tue, 17 Apr 2012 05:36:21 +0000 (07:36 +0200)]
Make supported variants run-time configurable

A new command-line argument "-var XXX" is accepted to set the variant
list reprted at startup to variants="XXX". It has to go between "debug"
and the engine name.

11 years agoUse 30msec margin in st->movetime translation
H.G. Muller [Tue, 17 Apr 2012 05:31:24 +0000 (07:31 +0200)]
Use 30msec margin in st->movetime translation

Because of the different definition of the time mentioned in the WB st
and UCI movetime (max time vs exact time), a margin is needed to not make
the engine forfeit on time.


11 years agoAlways pass info string with timing info
H.G. Muller [Sun, 12 Feb 2012 21:53:35 +0000 (22:53 +0100)]
Always pass info string with timing info

Even with nopost a sting starting with "info string times @" will be passed
to the GUI as debug output.

11 years agoFix some spurious output
H.G. Muller [Sun, 12 Feb 2012 21:47:44 +0000 (22:47 +0100)]
Fix some spurious output

Not all debug prints towards the GUI were controlled through the
"UCI2WB debug output" option. This is now repaired. The method for
matching an info string is made a bit more efficient, by only looking
at the beginning.

11 years agoBump version number to 1.6
H.G. Muller [Sat, 14 Jan 2012 13:05:12 +0000 (14:05 +0100)]
Bump version number to 1.6

Also update changelog in README file.

11 years agoFix engine names with spaces
H.G. Muller [Sat, 14 Jan 2012 12:53:08 +0000 (13:53 +0100)]
Fix engine names with spaces

Only the first word in the "id name" command was recognized by scanf.

11 years agoMake debug output optional
H.G. Muller [Sat, 14 Jan 2012 12:46:45 +0000 (13:46 +0100)]
Make debug output optional

The debug output sent by UCI2WB to the GUI is made subject to an option
"UCI2WB debug output", which by default is set to false. A command-line
argument "debug" can set it to true from the beginning, so that you will
also be able to see the option handshaking.

11 years agoEliminate polling in Windows
H.G. Muller [Sat, 14 Jan 2012 12:13:20 +0000 (13:13 +0100)]
Eliminate polling in Windows

Also use pipe-based synchronization here.

11 years agoImplement ping
H.G. Muller [Sat, 14 Jan 2012 11:14:57 +0000 (12:14 +0100)]
Implement ping

Use readyok / isready to really ping the engine before acknowledging the GUI.

11 years agoEliminate polling in Linux
H.G. Muller [Sat, 14 Jan 2012 10:56:13 +0000 (11:56 +0100)]
Eliminate polling in Linux

The sleep-spaced polling for readyok or bestmove has now been replaced
by pipe-based blocking of the waiting thread, waking it up by writing
a character into the pipe.

12 years agoCheck in Windows icon
H.G. Muller [Fri, 15 Oct 2010 09:16:45 +0000 (11:16 +0200)]
Check in Windows icon

12 years agoCheckin README
H.G. Muller [Fri, 15 Oct 2010 09:15:25 +0000 (11:15 +0200)]
Checkin README

12 years agoPort UCI2WB to Linux
H.G. Muller [Thu, 14 Oct 2010 19:58:39 +0000 (21:58 +0200)]
Port UCI2WB to Linux

If WIN32 is not defined, POSIX calls are used to create the engine
thread, pipes and engine process, and an own implemntation of
GetTickCount() is suppled.

12 years agoCheck in UCI2WB source
H.G. Muller [Thu, 14 Oct 2010 17:12:03 +0000 (19:12 +0200)]
Check in UCI2WB source