6 months agoFix Linux Makefile test
H.G.Muller [Thu, 11 Jul 2019 11:43:14 +0000 (13:43 +0200)]
Fix Linux Makefile

The Makefile specified the libraries (-lm and -lpthread) before the
object files, and on newer versions of gcc that no longer works.

5 years agoMake some Bonanza commands available as CECP option
H.G.Muller [Thu, 18 Dec 2014 14:11:31 +0000 (15:11 +0100)]
Make some Bonanza commands available as CECP option

The commands book on/off, book wide/narrow, resign N, hash learn on/off,
and hash learn create are made available in XBoard mode as engine-defined

5 years agoMake separate make target for Cygwin
H.G.Muller [Wed, 17 Dec 2014 21:37:43 +0000 (22:37 +0100)]
Make separate make target for Cygwin

The options that were added on the gcc target to work on Cygwin were
breaking use of the Makefile on Linux.

6 years agoAdd WB2 suffix to version number
H.G. Muller [Wed, 27 Nov 2013 21:18:50 +0000 (22:18 +0100)]
Add WB2 suffix to version number

6 years agoFix Cygwin gcc compiling
H.G. Muller [Wed, 27 Nov 2013 21:08:26 +0000 (22:08 +0100)]
Fix Cygwin gcc compiling

Te strtok_r function seems unknown in Cygwin, so we provided our own.
Some Windows-specific stuff was under #ifdef _MSC_VER, like that would
be the same as #ifdef WIN32. Checking for input in console mode is taken
care of. The Makefile was adapted to make MINGW compiles.

6 years agoFix force mode after setboard cygwin
H.G. Muller [Fri, 20 Dec 2013 12:07:52 +0000 (13:07 +0100)]
Fix force mode after setboard

6 years agoImplement WB setboard command
H.G. Muller [Wed, 27 Nov 2013 21:02:37 +0000 (22:02 +0100)]
Implement WB setboard command

This uses a FEN parser that converts the FEN to the CSA 'SU' position
notation, and hands that to Bonana wit a 'new' command.

6 years agoAllow setting up position from scratch
H.G. Muller [Wed, 27 Nov 2013 20:33:23 +0000 (21:33 +0100)]
Allow setting up position from scratch

The position string in Bonanza's native 'new' command can now have a new
format, starting with 'SU' in stead of 'PI', which adds the mentioned pieces
to an empty board, rather than deleting them from the standard initial
position. Holdings pieces are encoded by '00' for square coordinates.
A '+' or '-' embedded in the string can be used to switch between Sente
and Gote. (By default it assumes Sente, so all Gote pieces could be mentioned
at the end after a single '-'.)

6 years agoAdd forgotten dfpn files
H.G. Muller [Wed, 30 Oct 2013 09:04:44 +0000 (10:04 +0100)]
Add forgotten dfpn files

These files were new in v6.0 and not automatically checked into git
on the update. They are needed even when building without the -DDFPN*
switches because of a deficiency in the Makefile.

6 years agoFix building without MNJ_LAN flag
H.G. Muller [Wed, 30 Oct 2013 08:56:31 +0000 (09:56 +0100)]
Fix building without MNJ_LAN flag

The declaration of moves_ignore had to be enabled in XBoard mode,
as well as the test for excluded moves to decide on book probing.

6 years agoCheck in forgotten file bitop.h
H.G. Muller [Mon, 28 Oct 2013 22:19:48 +0000 (23:19 +0100)]
Check in forgotten file bitop.h

6 years agoImplement XBoard memory command
H.G. Muller [Sun, 27 Oct 2013 21:04:19 +0000 (22:04 +0100)]
Implement XBoard memory command

This can simply be translated to the native 'hash' command.

6 years agoWrite ponder move (in parentheses) in XBoard thinking output
H.G. Muller [Tue, 24 Sep 2013 20:04:24 +0000 (22:04 +0200)]
Write ponder move (in parentheses) in XBoard thinking output

6 years agoLet exclude command also work outside analyze mode
H.G. Muller [Tue, 24 Sep 2013 18:09:54 +0000 (20:09 +0200)]
Let exclude command also work outside analyze mode

This adds native Bonanza commands exclude and include, so that the XBoard
commands can be translated to them, and then executed after aborting the

6 years agoSuppress book probing in analyze mode
H.G. Muller [Sun, 15 Sep 2013 13:00:52 +0000 (15:00 +0200)]
Suppress book probing in analyze mode

6 years agoFix pondering in XBoard mode
H.G. Muller [Sun, 15 Sep 2013 10:44:40 +0000 (12:44 +0200)]
Fix pondering in XBoard mode

Even the root move list was wrong during pondering, because it was
the list from the position after the ponder move was made. We now make
a copy of the board position in ponder(), before it starts to do anything,
so we can get the moved piece from that copy if a move comes in during

6 years agoForce iteration to start at 1 in analyze mode
H.G. Muller [Sat, 14 Sep 2013 12:20:14 +0000 (14:20 +0200)]
Force iteration to start at 1 in analyze mode

Starting at a high depth based on a previous PV is undesirable here,
especially when that PV might start with a move that is now excluded.

6 years agoImplement exclude-moves feature
H.G. Muller [Sat, 14 Sep 2013 11:54:23 +0000 (13:54 +0200)]
Implement exclude-moves feature

The WinBoard include and exclude commands are implemented to maintain
an exclude_list of moves, which is then used during analyze mode in stead
of the restraint.dat file to exclude root moves. The exclude_list contains
moves in their internal encoding, which is now calculated as a side effect
of the xboard -> CSA move conversion.

6 years agoFix analysis mode in non-XBoard build
H.G. Muller [Sat, 14 Sep 2013 10:05:26 +0000 (12:05 +0200)]
Fix analysis mode in non-XBoard build

The declaration of the analyze_mode flag was in an XBOARD-controlled
conditional code section.

6 years agoFix Linux sigint problem
H.G. Muller [Sat, 14 Sep 2013 09:27:18 +0000 (11:27 +0200)]
Fix Linux sigint problem

Bonanza does not disable signals, and would thus be killed by XBoard
sending SIGINT. The sigint=0 feature now pervents that.

6 years agoFix pondering in XBoard mode
H.G. Muller [Sat, 14 Sep 2013 09:24:13 +0000 (11:24 +0200)]
Fix pondering in XBoard mode

The piece ID needed in CSA move notation is now obtained from the
root_move_list in case a ponder search is in progress, so that it
cannot be obtained from the BOARD.

6 years agoMake multi-PV mode accessible from XBoard protocol
H.G. Muller [Fri, 13 Sep 2013 17:37:59 +0000 (19:37 +0200)]
Make multi-PV mode accessible from XBoard protocol

Multi-PV mode uses another routine for printing the PVs, which had to be
adapted. In native mode Bonanza repeats all PVs all the time; in XBoard mode
it suppresses printing of all but the latest. Option features were added
to set number of PVs and margin.

6 years agoImplement analyze command
H.G. Muller [Fri, 13 Sep 2013 15:49:44 +0000 (17:49 +0200)]
Implement analyze command

To implement infinite analysis, the 'analyze' and 'exit' commands are added.
A search with flag_ponder set is used to do the analysis. When in analyze
mode, such a search will be automatically restarted after receiving a move
or undo command.

6 years agoImplement undo command
H.G. Muller [Fri, 13 Sep 2013 13:42:27 +0000 (15:42 +0200)]
Implement undo command

This is decoded with the native bonanza commands, and should thus work
both in xboard and native mode. It resets the game by faking a 'new' command,
and then loads all moves except the last. For this the move list and startup
string needed to be remembered.

6 years agoAdd XBoard protocol drivers
H.G. Muller [Wed, 20 Oct 2010 18:25:57 +0000 (20:25 +0200)]
Add XBoard protocol drivers

So far only those commands needed for playing games from the initial
position. Commands like 'memory', 'post', 'nopost', 'analyze' do not
work yet. Neither does pondering, as Bonanza's board is not valid when a
move comes in during pondering, so the wrong piece type is appended to
the move to convert t to CSA format.

6 years agoUpgrade to Bonanza 6.0
H.G. Muller [Sun, 15 Sep 2013 08:05:54 +0000 (10:05 +0200)]
Upgrade to Bonanza 6.0

9 years agoCheck in Bonanza Feliz 0.0
H.G. Muller [Wed, 20 Oct 2010 17:52:29 +0000 (19:52 +0200)]
Check in Bonanza Feliz 0.0