--- /dev/null
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place - Suite 330, Boston, MA
+ 02111-1307, USA.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+\f
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+\f
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+\f
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+\f
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+\f
+ Appendix: How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
--- /dev/null
+XBoard -- a graphical chessboard for X
+
+Original authors: Dan Sears and Chris Sears
+Enhancements (Version 2.0 and later): Tim Mann
+
+Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts.
+Enhancements Copyright 1992-98 Free Software Foundation, Inc.
+
+XBoard's alternative piece bitmaps (bitmaps.xchess) are derived from the
+bitmaps in the XChess program, which was written and is copyrighted by
+Wayne Christopher.
+
+The following terms apply to Digital Equipment Corporation's copyright
+interest in XBoard:
+------------------------------------------------------------------------
+All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+------------------------------------------------------------------------
+
+The following terms apply to the enhanced version of XBoard distributed
+by the Free Software Foundation:
+------------------------------------------------------------------------
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+------------------------------------------------------------------------
--- /dev/null
+ChangeLog for XBoard/WinBoard
+
+* 11/26/2003: In WinBoard, setting the -debug flag now logs ICS output
+to WinBoard.debug too. (This isn't needed in xboard because ICS
+output already goes to stdout, so it's easy to capture along with the
+debug output on stderr.) This was issue #280 in the ToDo file.
+
+* 11/23/2003: Cleaned up some minor problems in cygwin.mak. Thanks to
+Hans Werner Strube for the problem report.
+
+* 11/23/2003: Updated the default list of chess servers in
+winboard/defaults.h. Deleted two that appear to be dead and added a
+new one that is active.
+
+* 11/19/2003: Swapped icon_white.bm and icon_black.bm in XBoard.
+Hopefully this will get them the right way around by default on more X
+window managers. I wish I understood this better.
+
+* 11/18/2003: Implemented a simple 32-bit random number generator for
+WinBoard, replacing the Windows rand(), which ranges only up to
+0x7fff. Formerly on Windows, only zippy.lines sayings that started in
+the first 32767 bytes of the file could ever be used. This was issue
+#505 from the ToDo file.
+
+* 11/16/2003: The xboard man page and info files are now built from a
+common set of texinfo source files, and the xboard man page now covers
+cmail as well. Formerly, ever since the texinfo file was first
+contributed to the project, it was separate from the man page and the
+two files had to be updated in parallel, making for a maintenance
+nightmare. To make combining the files possible, I took the Perl
+script "texi2man" from the GNU Units project and added support for a
+larger subset of the texinfo markup language. I then carefully
+compared the old man page and old texinfo file to make sure the latest
+and clearest words survived into the new combined texinfo file. It
+would be great to merge in WinBoard's help file too, but that's a
+larger project. It would have to be heavily conditionalized to
+deal with differences in features between XBoard and WinBoard.
+
+* 11/15/2003: Cleaned up and applied a small patch from Daniel
+Mehrmann, to stop overly long PVs in thinking output from causing a
+buffer overflow crash in backend.c.
+
+* 11/5/2003: When a chess engine sends a "telluser" command (including
+the cases where "tellall" or "tellopponent" acts like telluser), the
+information now goes into a nonmodel popup that is automatically
+dismissed when the user clicks anywhere on the board. This fix is
+more significant on WinBoard, where formerly you got a fully modal
+dialog that had to be dismissed by clicking on OK before anything else
+could happen. The bug was issue #406 in the ToDo file.
+
+* 11/1/2003: Removed email addresses from this file to reduce spam
+load, as it gets linked to from the Web.
+
+* 11/1/2003: Updated READ_ME and winboard/READ_ME.txt.
+
+* Modified xboard and winboard makefiles to be able to build the
+project in the new combined directory structure.
+
+* Applied a small security fix to pxboard, from Martin Maeok.
+
+* Fixed a bug in the game list dialog. The change in 4.2.6 to opening
+games in text mode (meant to avoid getting extra \r's into comments)
+caused a new bug in determining seek offsets when parsing a game file
+to form the game list. Also, the change was incomplete; on some code
+paths games were still being opened in binary mode. Thanks to Lenik
+Terenin for reporting the offset bug. I've now gone back to always
+using binary mode when reading game files, and I've fixed the comment
+bug by adding code to remove \r's from parsed comments explicitly. I
+still use text mode for writing game files so that games written by
+WinBoard will have Windows-style line endings.
+
+* Fix for minor bug in WinBoard installer. If you chose a non-default
+destination directory, the default directory was still used for a
+couple of unimportant things, namely setting the App Paths registry
+keys (unused by WinBoard) and trying to copy the existing WinBoard.ini
+file to WinBoard.old. I inherited this bug from the InstallShield 5
+sample template. Thanks to "l.d." for noticing the incorrect keys.
+
+* Patch from Chris Priest: when two engines are being run through rsh,
+avoid reusing the same stderr port for both. I'm not sure why this
+should be needed, but it's harmless, at least.
+
+* Bugfix: The kludge to deal with old engines that give an error
+message because they don't know the "st" command was too sloppy; it
+could hit on an "st" substring anywhere in an error message. GNU
+Chess 4 is the only engine I know of where the kludge was needed, so I
+changed the kludge to match a longer, more GNU-specific string.
+
+* Changed the WinBoard self-extracting installer to choose a unique
+temporary subdirectory name within the Windows temp directory instead
+of always putting wb-setup directly in temp. Besides being better
+practice, this avoids the need to deltree wb-setup first, which
+occasionally alarms someone who thinks that deltree is only used by
+trojans to delete all your files. (Yes, I'm serious.)
+
+* Fixed a bug where FICS-style "wild/0" strings were not parsed as the
+proper wild type. The "/" was not being skipped.
+
+* Fixed a WinBoard bug where temporary files created by game
+copy/paste were being created in the root directory of the current
+drive instead of the TMP directory and were not always deleted on exit.
+
+* Fixed a small bug in winboard.c's ErrorDialog() function. Thanks to
+"Ron" (no last name given). The bug might have caused a problem when
+pressing OK or Cancel in an error dialog when more than one error
+dialog was being displayed, but I'm not really sure.
+
+* Removed a hack that worked around a bug in very old versions of
+Crafty, where it would sometimes reply "illegal move" to a "."
+command. The hack kept us from recognizing real illegal move messages
+in analyze mode from engines that don't respond to the "." command.
+Thanks to Fabien Letouzey for the report.
+
+* Fixed a bug in the xboard version of GetDelayedEvent. It would
+return the most recently scheduled event even if it had already fired.
+This caused at least one visible error: in -ics -xreuse mode, starting
+the engine again and seeing another "feature done=1" would re-run the
+initialization code in InitBackEnd3, including the code that opens the
+connection to ICS. The WinBoard version didn't have this bug. Thanks
+to Bob Hyatt for the bug report.
+
+* The promotion popup for ICC wild 26 (giveaway) now includes King.
+Thanks to Fredrik Josefsson for the bug report.
+
+* The first game in a file (or being pasted from the clipboard) can
+now start with a bare move -- no PGN tags, no move number "1", etc.
+Suggested by Shane Harrelson. One could imagine taking this farther
+and accepting something like "e4 e5 1/2-1/2 d4 d5" as two games, but
+I haven't done that.
+
+* Bug fix: xboard didn't really accept a paste of multiple games,
+contrary to what I wrote when adding the feature to WinBoard in
+4.2.4. Now it works in both.
+
+* Fixed generic start/end of game messages to work on chess.net, where
+they put ratings in parens after the player names.
+
+* Updated config.sub and config.guess to newer versions from
+automake-1.4p5-2. This makes configure work with MacOS X + X11.
+
+* Bugfix: when examining a game fragment on FICS where black plays
+first, don't show two "(0:00.000)" times on the initial "none" move.
+
+* If TestLegality is on and one of the engines makes an illegal move
+in TwoMachines mode, it forfeits immediately. Formerly the game would
+get stuck at that point and the engine that made the illegal move
+would eventually lose on time.
+
+xboard/WinBoard 4.2.6 -- Fri Feb 1 22:26:31 PST 2002
+Tim Mann
+
+Another small bugfix release.
+
+* Put in a small change from Alexander Mai to allow xboard to build in
+an OS/2 EMX environment.
+
+* Fix WinBoard-only bug where editing a PGN file with comments would
+insert more \r characters before the \n after every Load/Save cycle.
+For some unknown reason we were reading the files in "rb" mode but
+writing them in "a" mode, so we kept the \r characters on reading and
+added an extra one on writing. Fix: change the "rb" to "r". Thanks
+to Joel (last name not given) for the bug report.
+
+* Put the arguments to rsh/remsh in the right order for better
+portability. Thanks to Michael Kalisz.
+
+* FreezeUI is now implemented in WinBoard; it was previously only
+implemented in xboard. This function prevents the user from entering
+moves or other commands while we are waiting for an engine to
+initialize itself. Implementing it fixes a bug where the user could
+start a game (etc.) during feature negotiation. One of the symptoms
+of this bug was that we could send "new" one or move moves *after* the
+first game started!
+
+* Fixed some handle leaks (WinBoard only), including a nasty one that
+leaked one handle per command sent to ICS. Thanks to several folks
+who helped characterize the bug and tried to look for leaks.
+
+* We now install and look for the info file in ${prefix}/share/info
+instead of ${prefix}/info. The latter is still the default in
+autoconf, but the former is currently used in Red Hat Linux and
+probably elsewhere.
+
+xboard/WinBoard 4.2.5 -- Sat Dec 15 11:42:51 PST 2001
+Tim Mann
+
+* Changed the bundled GNU Chess 5.02 in the WinBoard package to
+include a much smaller book and to use much less hash table space by
+default (8 MB transposition table, 0.5 MB pawn evaluation table). The
+large book included with 4.2.4 made the WinBoard download too big for
+some people, and the default hash tables were larger than the
+available physical memory on some people's computers. I built the
+small book by running Crafty's "small.zip" book line collection
+through a Perl script that makes it look enough like real PGN games
+that the GNU Chess book builder will accept it. The script and some
+minor patches to GNU Chess 5 are available in the WinBoard source
+distribution and at http://www.tim-mann.org/gnuchess.html.
+
+* Fixed a bug in the code that deals with engines that complain that
+"time" and "otim" are illegal moves. This was a new bug in 4.2.4.
+
+* Revamped the implementation of ToStart in analysis mode. Formerly
+there was some ill-conceived code that would try to get back to the
+start of the game by doing a "new" command (and all the followup
+commands that requires) while remaining in analysis mode. This is
+problematic for engine authors to support, though it works with
+Crafty. This code was trying to solve the problem of ToStart being
+slow because the engine would try to start an analysis after every
+"undo" command all the way back to the start. But ToEnd already had a
+much better solution to this problem, and now ToStart does the same
+thing: we exit from analysis mode and enter force mode instead,
+make/unmake moves to get to the end/start of the game, and then
+reenter analysis mode.
+
+* Formerly, Zippy could try to start playing a game before the engine
+was initialized; that is, during the initial timeout for protover 1
+engines, or before "feature done=1" for protover 2 engines. We now
+wait until the engine is initialized before connecting to ICS, which
+fixes this in the common case. If you turn off engine reuse for
+multiple games (that is, if you give the -xreuse option), there could
+still be problems; see item 503 in the ToDo file. Thanks to Dieter
+Buerssner for the bug report.
+
+* Bugfix: All WinBoard versions since the merge with WinBoard Plus
+(but not xboard) have had a bug in changing the PeriodicUpdates,
+PonderNextMove, and ShowThinking options from the menu. The bug
+mostly just caused changing these options during a game to not take
+effect until after the next reset. For TwoMachines games, though,
+changing PonderNextMove just before the game would take effect
+immediately for the second engine but not until the next game for the
+first engine. Thanks to Koundinya Veluri for the bug report.
+
+* Bugfix: In 4.2.4, we sometimes got confused when trying to leave and
+reenter analyze mode. One symptom was that Analyze File did not work.
+Thanks to Igor Syry for the bug report.
+
+xboard/WinBoard 4.2.4 -- Sun Dec 9 14:56:30 PST 2001
+Tim Mann
+
+* WinBoard now includes GNU Chess 5.02 in place of GNU Chess 5.00.
+
+* WinBoard's PasteGameFromClipboard will now handle a paste with
+multiple games in it, popping up the game list dialog. xboard
+already did this. Suggested by Robert Gerstman.
+
+* We now use the "clearboard" command on ICC where appropriate.
+
+* Bugfix: don't generate a bogus "variant normal" command to an engine
+for the loadable ICC wild types that we internally flag as
+VariantLoadable. Also clarified the message that Zippy sends when
+declining such wild games -- it can't deal with the possibility of
+loading an arbitrary position into the game. Thanks to Dieter
+Buerssner for reporting the problem. It would be nice to be able to
+actually play these wild types some day; presumably there would have
+to be an option to either send "loadgame" with a specified position,
+or to deal with an opponent sending it.
+
+* If we get a holdings message from ICS when we thought we were
+playing normal chess, we now try asking for a move list so that we can
+find out from the header what's really happening. Formerly we guessed
+bughouse in this case. Response to a comment from Gian-Carlo
+Pascutto.
+
+* Fixed two longstanding bugs in the clock code. These affected only
+play between a user and a local engine, or between two local engines,
+not ICS play. (1) The last fractional second used by a player before
+moving and virtually pushing his clock was being charged to his
+opponent instead of to him. (2) The time and otim commands were being
+sent to an engine before the (buggy) fractional second update was
+done. The second bug was pretty harmless in itself, but the first one
+was serious. Many thanks to Peter Rosendahl for carefully diagnosing
+and reporting these bugs!
+
+* Changed WinBoard timestamp key. Nothing is changed other than the
+key and a recompilation. ICC may phase out the old key soon; if they
+do, you'll need to use the timestamp.exe from WinBoard 4.2.4 or later
+to connect to chessclub.com.
+
+* Fixed an xboard-only bug where most dialogs would not take keyboard
+input unless the mouse was actually over the dialog, even if the
+dialog window had focus. Thanks to Jason Varsoke for the bug report.
+
+* Bugfix; Remember to send time and otim commands to engine before
+sending playother. Thanks to Bob Hyatt for the bug report. Also
+fixed a bug where time and otim were sometimes sent even with feature
+time=0.
+
+* Added small patches from Wilkin Ng that are meant to fix a crash in
+CopyGameToClipboard and a "can't unlock clipboard memory" error in
+PasteTextFromClipboard, under Windows 2000.
+
+* Changed cygwin.mak to not use -mno-cygwin. In other words, it now
+uses cygwin1.dll instead of the mingw libraries. This works around
+bugs in fileno() and stat() that I encountered in mingw. (fileno
+seems to always return 0. stat fails because the library routine uses
+a different definition of struct stat than the header files provide.)
+Thanks to Robert Gerstman for reporting the symptoms these bugs caused
+when WinBoard was compiled with Cygwin.
+
+* Added -showButtonBar option. This lets you delete the << < P > >>
+buttons and thus widen the message widget a bit.
+
+* Added code to address a very obscure bug. If an engine dies and
+needs to be restarted while in one of the analyze modes, it was not
+getting put back into analyze mode. This bug should not really ever
+have gotten tickled unless reuse was turned off and the engine sends
+game end commands (such as 1-0) when a game ends by rule while in
+analyze mode. The next version of the protocol spec will say that
+engines should not do that, but version 2 and earlier didn't address
+the issue.
+
+* We now use the FICS "iset ms 1" feature to get times in ms instead
+of seconds. Thanks to DAV for email telling me about this feature.
+
+* Changed clock display to show tenths of seconds for 9.9 seconds and
+less, instead of 0.9 seconds and less as before.
+
+* It has been discovered that Zippy can play simuls on ICC (but not on
+FICS). If you arrange for Zippy to send the ICC command "simulize" in
+the -zippyGameStart string, it will accept additional games while
+playing. Zippy will use the same engine for every game, so whenever
+it switches opponents, the engine's state will be reset with the "new"
+command. This will of course weaken its play, so don't enable simuls
+if you want your engine to have the highest possible rating. Zippy
+was never designed to work with simuls; it just works by accident, and
+it hasn't been tested much. So please report any bugs you notice, but
+don't expect them to be fixed rapidly. Thanks to Paul McGuire for
+noticing that this works.
+
+* Bugfix: Suppress the direct command to engine popup if there is no
+engine. In WinBoard this case used to cause a crash. Thanks to
+"Dargon" for the bug report.
+
+* Bugfix: formerly we did part of the engine initialization for the
+very first game too soon, before feature negotiation. One result of
+this is that engines would never get the "ics" command for the first
+game.
+
+* Lengthened timeout to detect protocol version 1 chess engines to 10
+seconds. This should reduce problems with protocol version 2 engines
+that are slow to initialize missing the timeout and not getting a
+chance to send their feature commands before the first game starts.
+
+* Klaus Friedel says that adding a short sleep to WinBoard after
+starting a new chess engine solves a problem that occurs under Windows
+2000, in which engines sometimes don't see the initial command(s) from
+WinBoard and hang. I don't understand how that can happen, but the
+sleep is harmless, so I've put it in. Others have also reported what
+may be the same problem, so hopefully this will fix it for them too.
+
+* Bugfix: editing the Result field in EditTags will no longer cause a
+later crash. Thanks to DAV for a clear bug report that let me
+reproduce the problem.
+
+* ICC wild 28 is now recognized as shatranj, but it is not supported.
+You might be able to play it by turning off Test Legality.
+
+* Formerly we would always turn off "feature time" if the engine
+printed an error message with the string "time" or "otim" in it; now
+we do that only if the message comes before the engine makes its first
+move. This change is useful because some engines spew a lot of bogus
+error messages about commands they don't fully parse, so something
+like "result 0-1 {White lost on time}" could generate such a message.
+Engines shouldn't do that, but if they do, mysteriously turning off
+"feature time" is not a good way to react.
+
+* Fixed an infrequently occurring Zippy bug: formerly, resuming from
+adjournment by position (that is, with GetMoveList turned off) or
+starting/resuming a wild game (nonstandard starting position) would
+try to set up the position without putting the engine into force mode
+first. That was probably tolerated by most engines, but if the
+position was black-to-play and the engine hadn't set feature
+setboard=1, then the fake "a2a3" move (which we use as a kludge to get
+black to be on move before sending the edit command) would appear to
+be a real move, and the engine might reply to it! This bug could also
+be seen when trying to use Zippy to play a simul -- something that
+Zippy was never designed to support, but which seems to mostly work
+anyway. Thanks to Paul McGuire for sending a WinBoard.debug file that
+showed the bug occurring. Some other cases of resuming adjournments
+or starting games from nonstandard positions may have been broken too;
+I think I've straightened out the problems.
+
+* Agreeing to a draw in the human vs. local engine case formerly did
+not work if the human offered first; now it does. A human's
+unsolicited offer is considered valid until he makes another move.
+Thanks to Bruce Moreland for the bug report.
+
+* Bugfix: We used to look for just "fr" in Event tags or strings from
+ICSes to recognize Fischer Random games. This caused a lot of false
+matches. Now we look for "wild/fr" instead, which is what FICS uses.
+
+* Bugfix: Clicking on a move in the MoveList window only updated the
+displayed position; if a chess engine was active, its state was not
+updated. Thanks to Alejandro Dubrovsky for the bug report.
+
+* Bugfix: The "resign" command from engine to xboard formerly did not
+work in ICS (Zippy) mode.
+
+* Bugfix: Formerly we would register a garbage premove if the user
+clicked on a piece, then clicked on an edge or outside the board. Now
+such an errant click is ignored.
+
+* Bugfix: GameEnds would send "exit" to an engine in analyze mode even
+if we did not actually want to leave analyze mode.
+
+* Bugfix: "feature pause" was being rejected. We don't currently use
+it, but that is no reason to reject it. Thanks to Gian-Carlo Pascutto
+for the bug report.
+
+* Bugfix: when "partner" needed to be sent both to ICS and the engine,
+Zippy was erroneously sending the ICS prefix character to the engine
+too. Thanks to Gian-Carlo Pascutto for the bug report.
+
+* Zippy now declines challenges when the engine is not yet ready to
+play again, instead of ignoring them. This is needed so that the
+server will let the opponent repeat the challenge. It might be better
+to remember such challenges and accept them when the engine is ready,
+but that would be a bit more complicated to implement.
+
+* Bugfix: Zippy's emotes didn't work on FICS because there, "i" is a
+built-in alias for "it", not a real command. So sending "$i foo" gave
+an error message instead of doing "it foo". We now leave out the
+alias-suppressing prefix for emotes.
+
+xboard/WinBoard 4.2.3 -- Mon Feb 19 19:55:05 PST 2001
+Tim Mann
+
+* Bugfix: The error message "Variant X not supported by gnuchessx"
+formerly could pop up even in -ncp mode.
+
+* Fixed an xboard bug in premove highlighting. If you had
+HighlightLastMove turned on, premoves got highlighted in
+highlightSquareColor (yellow) instead of premoveHighlightColor (red).
+
+* Modified premove again. Now we are back to displaying the move
+locally immediately after sending it to the server, as in versions
+prior to 4.2.1. This is good because it lets you register your next
+premove sooner. As a better fix to the problem that the change in
+4.2.1 had been trying to address, we now suppress animating the
+opponent's move if you have a premove reply pending. However, it's
+probably still a good idea for you to turn off AnimateMoves entirely
+if you are trying to play extremely fast games.
+
+* Removed an erroneous patch that left zombie chess engines around
+when both sigterm and reuse were turned off. (Bug was in xboard only,
+not winboard.)
+
+* Bugfix: loading a game with autostepping did not work for games with
+PGN result "*" (unfinished). This bug was introduced in 4.1.0, caused
+by some outdated code that was supposed to leave you in EditGame mode
+after loading an unfinished game. I fixed this, and also changed it
+to leave you in EditGame mode after loading *any* game, but without
+changing the tags to say it's an edited game. It's not really clear
+whether that is the best thing is to do here -- ideally, perhaps, the
+tags should change to say "edited game" if you actually make any
+changes, but that is harder to make work.
+
+xboard/WinBoard 4.2.2 -- Tue Feb 6 20:00:00 PST 2001
+Tim Mann
+
+* Fixed a problem introduced in 4.2.1. In -zippyPlay mode, 4.2.1
+started sending the initString immediately after the old game ended,
+but then when the next game started, it would still send "force" and
+another initString. Another problem was that the first initString put
+the engine out of sync with the displayed board position, though that
+might not usually have been noticeable. This is now changed to do a
+full Reset at the end of the previous game, and avoid doing a Reset at
+the start of a new game if we are still in BeginningOfGame mode.
+
+* Fixed some limitations in -zippyPlay mode. The engine was not being
+fed the moves or history of games that were displayed but not being
+played, so it would get confused if you tried to do something like
+examine a game, then enter EditGame mode from somewhere in the middle
+of the game.
+
+* Made a small change so that cygwin can compile xboard for Windows
+(an X server is required to run it). Thanks to Volker Zell. Most
+people would probably prefer to run WinBoard on Windows, however; note
+that cygwin could already compile WinBoard.
+
+* Added some missing documentation to engine-intf.html: It is okay to
+send "feature done=0" even before you receive the xboard and protover
+commands, if this is needed to give your engine enough time to
+initialize. See engine-intf.html for more discussion.
+
+* Bugfix: "feature done=0" did not work for the second engine; now it does.
+
+xboard/WinBoard 4.2.1 -- Sat Feb 3 19:52:26 PST 2001
+Tim Mann
+
+* Bugfix: in Zippy mode with feature san=1, the elapsed time was being
+sent to the engine after the SAN move; for example, "e4 (0:01)" was
+sent instead of just "e4".
+
+* It seems that scroll wheel mice with incompletely installed software
+(under Windows 95, at least) can send repeated middle button up events
+when the wheel is turned. Moved QuickPaste from middle button up to
+middle button down to avoid problems with this.
+
+* A premove is now sent *before* the opponent's move that it replies
+to is animated. The premove itself is no longer displayed (or
+animated) when sent; instead, it is displayed when the chess server
+echoes it back as a board update.
+
+* Bug fix: in -xreuse mode, xboard was only sending command line
+arguments to the engine the first time it was started. (WinBoard
+didn't have this bug.)
+
+* In -zippyPlay mode, we now initialize the chess engine for a new
+game immediately after the old game ends. (In -xreuse mode, this
+means starting a new engine process; in the default -reuse mode, it
+just means sending "new".) If the engine supports ping, we don't
+accept challenges until the "new" has finished. This should help
+avoid losing time (re)initializing the engine after the game starts.
+
+* We now handle the new FICS field in style 12 that says whether the
+clocks are ticking.
+
+* whiteFlag and blackFlag are now reset whenever an ICS board image
+arrives, giving autoflag a fresh chance to work.
+
+* Suppressed "geometry error" debug messages unless -debug flag is given.
+
+* Bugfix: avoid core dump on Solaris with -debug flag, caused by
+passing NULL to a %s format in GameEnds.
+
+* Added -firstProtocolVersion and -secondProtocolVersion. This will
+allow use of extremely broken engines that hang or die when given the
+"protover 2" command. It should be rarely if ever needed.
+
+* Zippy now strips highlights from player names in the Creating
+message; previously the ratings would not be extracted from this
+message properly if you had set the highlight variable.
+
+* Bug fix: Zippy with -zp but not -zt used to be fooled by false
+partner tells inside channel tells; e.g.:
+Garf(24): Garf (your partner) tells you: sit
+
+* Bug fix: when an engine reported its name with the new "feature
+myname=" command, we had been putting just that name into the window
+title even when in TwoMachines mode.
+
+* By default, WinBoard no longer uses the new feature introduced in
+4.2.0beta of keeping the ICS menu, ICS server list, and lists of chess
+engine command lines in separate files; instead, the lists are back in
+the winboard.ini file. This gets rid of some problems where the
+separate files could not be opened because the working directory was
+not set to WinBoard's installation directory.
+
+* WinBoard command lines and ini files now have another optional
+syntax for quoting an option value. All characters within { } curly
+braces are interpreted literally except for '}' itself. SaveSettings
+now uses this syntax for string values that contain a backslash or
+newline and do not contain a '}'. This should address the problem
+that the separate .ini files had been meant to fix; engine command
+line lists can now be written without \-escapes.
+
+* Fixed three bugs in relaying moves between engines in TwoMachines
+mode: an engine would be sent SAN if the *other* engine had set
+feature san=1, a relayed SAN move did not end with a newline, and
+feature usermove was not implemented for relayed moves.
+
+* Fixed several bugs in exiting: File/Exit would sometimes hang;
+timestamp/timeseal would not get killed off; an engine crash would
+cause error messages to be printed recursively until stack overflow.
+
+* Fixed a bug in the code to detect which ICS is in use and adapt to
+it; the chess.net case was broken.
+
+* Removed the leading alias-suppression character when sending a move
+to ICS, because it seemed to break accuclock on chess.net.
+
+* Fixed a bug where a FICS prompt like "10:01_fics%" would be matched
+as finger note number 10, causing a problem detecting when the user is
+logged in.
+
+* Added tellicsnoalias command to protocol.
+
+* Changed st command in protocol back to old behavior.
+
+* Added done=0 feature to protocol, to lengthen initial timeout.
+
+* Added missing -colorSeek command line option to xboard. (Was
+present in WinBoard.)
+
+* Bug fix: setting feature reuse=0 was not working.
+
+xboard/WinBoard 4.2.0beta -- Sat Dec 16 16:34:56 PST 2000
+Tim Mann
+
+* Setting -searchTime no longer turns off -clockMode. Note that when
+-searchTime is set, some engines may search for the lesser of
+searchTime and the amount of time their normal clock management would
+dictate, while others will disable their normal clock management and
+always search for exactly searchTime.
+
+* Fixed WinBoard bug where on Windows 2000 (and maybe Windows 98) the
+ICS Interaction window would scroll back to the top whenever it filled
+to capacity and WinBoard trimmed some text off the top.
+
+* Changed xboard dragging so that the center of the dragged piece is
+forced to be over the mouse cursor. (WinBoard dragging already worked
+that way.) This should avoid confusing cases when you start a drag
+with the mouse near the edge of a square -- formerly most or all of
+the piece could be over one square but the mouse cursor over another.
+Suggested by DAV.
+
+* Added move list window for xboard. Code contributed by Manuel
+Hoelss and re-hacked a bit by me. Performance of this window is poor,
+because the implementation regenerates the entire window contents
+whenever anything changes. It's hard to avoid this when using the
+Athena List widget, though we could be a little smarter and notice
+when the current move number has changed but the move list has not.
+There are also several drawing problems caused by bugs in the Athena
+Form and List widgets. The window should not really allow a
+horizontal scroll bar, but the bugs are much worse if I turn it off.
+In both Xaw and Xaw3d, the List widget tries to resize itself when
+XawListChange is called, even if you tell it not to; and what's worse,
+if the widget cannot resize itself to be large enough to avoid
+clipping any of the list item, it does not change the list! Arrgh.
+On top of that, the Xaw Form widget is very buggy in XFree86 4.0.1
+(X11R6.4.3).
+
+* The OK button in the WinBoard startup dialog is now simply disabled
+if none of the radio buttons is selected, instead of bringing up an
+error dialog. Suggested by Ted Milbaugh.
+
+* Used ping to address the worst of the race conditions in the
+protocol. Now if an engine supports ping, we ping it after sending
+the "new" command and after trying to place it in force mode at the
+end of a game. When a ping has been sent and the corresponding pong
+has not yet come back, we (1) ignore or undo any moves the engine
+sends, (2) ignore game end messages (such as "offer draw", etc.) from
+the engine, (3) ignore thinking output from the engine, (4) delay
+starting the next game if in -matchGames mode, (5) in -zippyPlay mode,
+respond to challenges with a polite message to try again soon instead
+of accepting them. There are a few more things that should be done
+(and item 5 might not be quite what we want), but it's hard to fit
+them all into the existing code.
+
+* Patched the version of GNU Chess 5.00 included with WinBoard to
+support protover, feature, setboard, and ping, and to fix some minor
+bugs. See gnu500+.patch.
+
+* Changed the GNU Chess 4 kludges for missing "st" and "sd" commands
+to be invoked only if the engine gives an error message for "st" or
+"sd", and to always use protocol commands instead of engine
+command-line options. See "Idioms" in engine-intf.html.
+
+* Added new protocol command "protover 2" to tell the engine what
+version of the protocol is in use. Version 2 is still compatible with
+old engines; see engine-intf.html.
+
+* Add new protocol command "feature ..." The engine can send this in
+response to the protover command command, to say what extended
+protocol features it would like to enable, etc. xboard responds
+"accepted F" or "rejected F" for each feature F that is set. See
+engine-intf.html.
+
+* Added new protocol command "setboard <fen>". This is an alternative
+to "edit", used only if the engine says "feature setboard=1".
+
+* Added new protocol command "ping <msg>". The engine is supposed to
+respond "pong <msg>". This gives us a tool to fix some race
+conditions in the protocol, but it is not used to the fullest yet.
+
+* Added new protocol command "tellopponent". This will do a "say" if
+you're on a chess server in Zippy mode, or pop up an information
+dialog otherwise.
+
+* Added new protocol command "tellall". This will do a "kibitz" if
+you're on a chess server in Zippy mode, or pop up an information
+dialog otherwise.
+
+* Added new protocol command "tellothers". This will do a "whisper" if
+you're on a chess server in Zippy mode, or do nothing otherwise.
+
+* Changed the WinBoard /icsNames, /icsMenu, /firstChessProgramNames,
+and /secondChessProgramNames options to accept a filename preceded by
+"@", meaning to find the value in the file. Changed the defaults to
+use this feature, with filenames icsnames.ini, icsmenu.ini, fcp.ini,
+and scp.ini. This should make it easier for users to edit the values,
+since one less level of quoting is needed, and each value is in its
+own file, not mixed into winboard.ini. Those who upgrade from an
+older winboard version and already have a winboard.ini file will not
+automatically have these values moved to a file; that has to be done
+by hand if desired.
+
+* We now strip .exe from engine names for "name" command, tags, etc.
+
+* Allowed WinBoard input widget to hold more than one line. You can get
+a newline into the widget with copy/paste or with Ctrl+Enter.
+
+* Fixed an xboard bug where the [P] button would appear in the
+opposite highlight state from what it should be after being pressed.
+
+* We now use the "/" or "$" alias suppression feature on the chess
+servers, to avoid problems if the user inadvertently aliases a
+needed command to something else.
+
+* Changed the method used to deiconize xboard in AutoRaise and cmail.
+This may fix bugs under some window managers where after
+deiconization, the board window was mapped but nothing was drawn
+inside.
+
+* Preliminary, partial support for playing several chess variants
+against a local engine or editing variant games. The -variant option
+must be given on the command line or WinBoard startup dialog; there is
+no menu. The current variant is not displayed (except in the
+Tags/EditTags window). Many variants will not work quite right even
+if the engine supports them; see item 326 in the ToDo file for
+details.
+
+* Added a workaround to detect the variant type when examining a
+scratch wild game on an ICS.
+
+* Fixed two cases where "variant" command should be sent to the engine
+when necessary but was not: loading a game from a file and restarting
+a dead engine. Thanks to Gian-Carlo Pascutto.
+
+* Added missing support for FICS games that start from a bsetup position
+with Black moving first.
+
+* Fixed a bug in loading a file from the game list window while in
+Analysis or AnalyzeFile mode. This now leaves us in AnalyzeFile
+mode, analyzing the new file.
+
+* Fixed a bug in loading games with a comment before the first move.
+
+* Fixed a bug in handling LoadGame (or -lgf) with -td 0.
+
+* Added a command line option to select an initial minor mode from the
+Mode menu. This should satisfy requests from a couple of users with
+special applications.
+
+* Fixed a problem where some things in WinBoard's General Options
+dialog box were grayed out at the wrong time.
+
+* We look for a few messages from the chess engine pipe that are
+intended to catch problems starting an engine via rsh, such as "No
+such file". Moved code so that these strings won't match until other
+protocol messages have been looked for, and documented the messages in
+engine-intf.html.
+
+* Fixed the WinBoard bug that sometimes made the console input box
+white-on-white even when not in password-entry mode.
+
+* Small changes to WinBoard to be compilable with the latest Cygwin
+net release (as of 10-16-2000). Thanks to Mark Schoenberg.
+
+* Recompiled GNU Chess 5.0 for WinBoard with the latest Cygwin net
+release (as of 10-16-2000). Also rebuilt the book just to be sure,
+since I had one bug report about it. It came out identical and seems
+to work fine.
+
+* Added messages for some common InstallShield errors instead of just
+printing InstallShield's stupid error code numbers.
+
+* Added -firstComputerString and -secondComputerString, allowing you
+to suppress or change the command that is sent to a chess engine when
+its opponent is another computer.
+
+* Added "configure --with-Xaw3d" to allow use of Xaw3d widgets instead
+of Xaw widgets in xboard. Thanks to Johnny C. Lam of the NetBSD
+project. I've left Xaw as the default because Xaw3d is too ugly.
+
+* The version of the Xaw Form widget released in XFree86 4.0.1
+(X11R6.4.3) has a bug that causes xboard to display the button bar
+on top of the message widget. I've reported the bug and have
+installed a kludge workaround into xboard.
+
+xboard/WinBoard 4.1.0 -- Sun Sep 17 17:30:14 PDT 2000
+Tim Mann
+
+* Merged Winboard Plus 4.0.8 from Mark Williams into xboard
+ source pool. Status of Winboard Plus features in xboard:
+
+ - White pieces now have borders, but the implementation is
+ completely different from WinBoard's; see below.
+
+ - Options menu not changed, probably won't be.
+
+ - Copy&paste support working, using Mark's changes to backend.c, Ben
+ Nye's changes to xboard.c for FEN positions, and some code of my
+ own in xboard.c for PGN games.
+
+ - Premove hooked up and working. No pre-first-move, though.
+
+ - ICS Alarm hooked up and working.
+
+ - Auto-flip working.
+
+ - PGN Training mode hooked up and working.
+
+ - Improved menu item enable/disable working.
+
+ - Improved >> button working.
+
+ - Auto activate board working. I changed this to be optional; you
+ might not always want it, especially in Zippy mode.
+
+ - Blindfold working.
+
+ - Documentation updated.
+
+* Fixed more colorization bugs. Commands like "message foo tells you:
+xxx" and "tell 33 tells you: xxx" will no longer generate bogus
+colorization.
+
+* Added low-tech sound support to xboard, by invoking an external
+program on a filename for each sound to be played.
+
+* ICC wild 27 is now recognized as VariantAtomic, and it sets the
+"ignore check" flag, but is not otherwise supported.
+
+* Converted the piece bitmaps from .bm to .xpm for use with xboard's
+xpm support. (An .xim version was not created.) Wrote a shell script
+using ImageMagick to do the conversion and to bucket fill from
+coordinate 0,0 with the background color. Used xpaint by hand to
+clean up a few pieces where background color "leaked" into the inside
+or didn't flow all the way around the outside, then a sed script to
+fix up color names and bitmap names in the xpaint output. If any more
+sizes are added later, they should be straightforward to convert with
+reference to the existing scripts. With this conversion, not only do
+the white pieces now have dark borders, but (unlike with WinBoard) the
+light details on the black pieces are opaque.
+
+* If the XPM library is found when building xboard, the new xpm pieces
+are compiled in as the default. External bitmap (or xpm) pieces can
+still be used by giving the -bitmapDirectory (or -xpmDirectory)
+option. If the XPM library is not found, the old bitmap pieces are
+the default. In this case external bitmap (or xim) pieces can be used
+by giving the -bitmapDirectory (or -xpmDirectory) option. There is no
+way to compile in xim pieces.
+
+Winboard Plus 4.0.8 -- Sat Aug 5 15:51 PDT 2000
+Mark Williams
+
+* Bugfix release.
+
+* Main menu now visible in Win NT. Thanks to Microsoft for creating a
+compiler which auto-mutilates the WinBoard.rc file so that the menu is
+displayed under Win 98 but not Win NT. I fixed the problem by hand editing the
+.rc file. Sigh.
+
+* "Reset game" now works properly when invoked from Analysis mode when two
+engines are present. Correction of bug introduced in Winboard Plus. Thanks to
+Mogens Larsen for reporting the bug.
+
+* Pasting a FEN position with Black to move now works in all modes.
+Thanks to Mogens Larsen for reporting the bug.
+
+* Added gnuchess.dat to the distribution and a couple of text files that were
+missing in 4.0.7.
+
+*** Merged in the following changes from Tim Mann:
+
+* Bugfix: Highlights would sometimes not be taken down, at least in
+xboard. The problem is that SetHighlight works in chess coordinates,
+not view coordinates, so if flipView has been toggled since the
+highlight was put up, it gets taken down from the wrong square. Fixed
+by being careful to call ClearHighlights before toggling flipView, not
+after. Ugh.
+
+* Bugfix: HighlightLastMove would sometimes highlight square a1 after
+a FICS "tomove black" command.
+
+* Bugfix: a move list with initial position that has black to play was
+not being handled correctly.
+
+* Removed "decline abort" and "decline adjourn" commands from Zippy.
+The syntax is changing on FICS, and Zippy really doesn't have to
+explicitly decline the requests anyway; it's sufficient to not accept
+them.
+
+* ICC wild 26 is now recognized as VariantSuicide (the FICS name; ICC
+calls it "giveaway").
+
+* Bugfix: PGN games with black to move in the initial position weren't
+being legality checked correctly. I think this was introduced in
+4.0.6 when I fixed a different PGN bug. Thanks to Mark Williams for
+spotting the bug and suggesting a fix.
+
+* Bugfix: the initial "name(" of a kibitz wasn't being colorized.
+
+Winboard Plus 4.0.7 -- Thu May 12 17:57 PDT 2000
+Mark Williams
+
+* New white pieces with black borders.
+
+* Major overhaul to Options menu. New dialogs for setting General Options,
+ Board Options, ICS Options, Sounds, Fonts, Colors.
+
+* Clipboard support for PGN game scores and FEN positions.
+
+* Optional ICS Premove with user-specified first moves for White and Black.
+
+* New sound events: ICS Win, ICS Loss, ICS Draw, ICS Unfinished, ICS Alarm.
+
+* New auto-flip option when playing against a chess program.
+
+* Added PGN Training mode.
+
+* Certain menu options now disabled while program is thinking.
+
+* ">>" button now always goes to the end of the game.
+
+* In ICS mode, the board is automatically activated at the start of a
+new game.
+
+4.0.7 -- Sun Mar 5 17:17:49 PST 2000 Tim Mann
+
+* Fixed a nasty bug in parsing ICS game histories that was introduced
+in 4.0.6.
+
+4.0.6 -- Fri Mar 3 16:20:11 PST 2000 Tim Mann
+
+* Fixed bugs in Zippy's code for responding to messages sent with the
+ICS "message" command.
+
+* Fixed bugs where xboard could still create dialogs partially off the
+top of the screen. Fixed unwanted interactions between initial sizes
+and positions of various unrelated xboard dialogs. Deleted
+borderXoffset and borderYoffset resources.
+
+* Fixed restoring the xterm name on exit to work in more cases.
+
+* Small fix to the WinBoard self-extracting installer: when it starts
+up, it now always deletes any old wb-setup directory left over from a
+previous installation. Formerly this worked only on Windows 95/98, so
+on NT the self-extractor would sometimes stop and ask the user whether
+it was OK to overwrite the old wb-setup files.
+
+* Modified WinBoard to be compilable with the free Cygwin tools
+available from http://sourceware.cygnus.com/cygwin/. Based on work by
+Mark Schoenberg. (His mods were enough to get WinBoard through the
+compiler, but a few things were broken along the way, so I reworked them.)
+
+* Merged changes from Don Fong to make WinBoard compilable with
+Borland C++ 4.5. I do not have Borland C++ and am unable to test with
+it, but I did make sure the changes don't stop it working with MSVC++
+5.0 and Cygwin.
+
+* Forbade entering TwoMachines mode from MachineWhite or MachineBlack
+mode when machine is on move. This used to confuse the engine and
+cause problems, because when we try to get the engine to stop, it
+might make a move first, and it might not do that immediately.
+
+* Variant classification now deals with new ICC wild 25, classifying
+it as "3check". Also, we are now conservative about new wild numbers
+we don't know about, classifying them as "unknown" instead of
+"normal".
+
+* Replaced bad GNU Chess 5.00 book in WinBoard distribution with a
+correct one. 1.e4 now no longer takes GNU Chess 5.00 out of book!
+Thanks to Pete Galati.
+
+* Made move parser accept and ignore nonstandard ep suffix on PGN moves,
+e.g., "exf6ep" or "exf6e.p."
+
+* Fixed bugs in parsing PGN files starting with no move number, or
+with a move number other than "1." (including "1..."). Thanks to
+Michael Soulier and Stefan Zipproth for example PGN files
+demonstrating the bugs.
+
+* Changed InitComboStringsFromString to not modify the input string;
+this caused an exception when WinBoard was compiled with MSVC++ 6.
+Thanks to Bert Tuyt for the report.
+
+* In WinBoard, dragging a piece off the edge of the board without
+releasing the mouse button no longer instantly aborts the move. You
+still must release the mouse button inside a square to complete a
+move, but you can now drag off the edge and come back inside.
+
+* WinBoard bugfix: If you went into EditGame or EditPosition mode
+while observing or playing an ICS game, and a new move came in
+(snapping you back to ICSClient mode) while you were dragging a piece
+around, the drag state would not be reset, causing the piece you were
+dragging to remain on the board wherever you dropped it. Thanks to
+David Brinegar for the bug report.
+
+* WinBoard bugfix: If you moved or resized the board while your
+opponent was moving, and you had AnimateMoving on, his move would not
+be displayed until after your next move. Thanks to DAV for reporting
+the bug repeatedly until I finally understood it.
+
+* Added a Zippy "farewell" feature; see zippy.README.
+
+* Fixed a bug (xboard only) in processing -zippyReplayTimeout on the
+command line. Thanks to Steve Beer for the report and patch.
+
+* Send "computer" command to both sides in TwoMachines matches.
+
+* Fixed a Y2K bug in Evan's cmail code! Thanks to Brian Mays for the
+report and patch.
+
+* Bugfix: Initialize variant field of GameInfo struct in gameinfo.c.
+This could cause crashes in LoadGame. Thanks to Andrzej Nagorko.
+
+* Fixed several pattern matching problems: Finger notes and formula
+vars no longer get replied to by zippyTalk or colorized. Channel
+tells by players with many titles are now colorized fully, and
+zippyTalk handles channel tells by such players correctly. The shout
+"--> foo(99): bar" no longer gets colorized as a channel tell. Code
+is cleaned up a bit, and autocomment capture now uses the same
+criteria as colorization.
+
+* xboard fix: Enter key now closes error popups as in WinBoard.
+Especially nice for the "Exiting: Connection closed by ICS" popup.
+
+4.0.5 -- Tue Dec 7 10:30:40 PST 1999 Tim Mann
+
+* Added missing documentation of SIGTERM usage into engine-intf.html.
+
+* Bugfix: New -zippyReplayTimeout option was misspelled in WinBoard as
+-zippyReplyTimeout. Thanks to Francesco Di Tolla.
+
+* xboard -ics now restores the xterm's original title upon exit, at
+least if $WINDOWID is set.
+
+* Bugfix: -matchGames mode wasn't terminating properly. Final score
+popup would come up twice and engines would not be killed off. Thanks
+to Frank Quisinsky for the bug report. Bug was introduced in 4.0.4.
+
+* Bugfix: "tell 50 foo shouts: bar" no longer gets colored as a shout;
+similarly for "...s-shouts:" and "...c-shouts:". Thanks to David Lee
+for the bug report.
+
+4.0.4 -- Fri Dec 3 17:51:27 PST 1999 Tim Mann
+
+* Bug fix: formerly if you invoked SaveGame from EditPosition mode
+with black to play, the position was not saved properly. As a quick
+fix, SaveGame now takes you out of EditPosition mode before saving.
+
+* Changed -matchGames to keep track of the score (won-lost-drawn) and
+display it in the banner. The final score is displayed in a modal
+popup before the program exits.
+
+* Changed "Connection closed by ICS" to display in a model popup
+before the program exits.
+
+* Added -popupExitMessage option, default on. Setting this to false
+suppresses the modal popups that you sometimes get just before
+xboard/winboard exits -- both the two new ones listed above and the
+existing Fatal Error popup. This is useful when running Zippy
+unattended from a shell script (or .bat file) that loops and starts a
+new copy after a time delay when there is an error.
+
+* In xboard, added missing support for WM_DELETE_WINDOW to all
+windows. This makes xboard a better citizen, and is much needed with
+the newer X window managers that put an [X] button on every window and
+bind it to "kill application" if the applicationd does not support
+"delete window". We can't allow xboard to be thoughtlessly killed,
+since that leaves the chess engine running in the background.
+
+* We now avoid positioning tops of xboard dialog boxes offscreen.
+
+* zippy.lines can now use the caret ('^') character as an inter-saying
+separator. You no longer need to dig up a text editor that can put NUL
+('\000') characters in text files.
+
+* Bugfix: In traditional chess clock mode, White now gets time added
+to its clock as soon as it makes time control. Previously both White
+and Black got their time added only when Black made time control,
+which would cause some engines to make their 41st move as White too
+quickly, thinking they were low on time.
+
+* The zippyAcceptOnly feature no longer sends a decline command or
+a tell. Thus you can use it to put Zippy into a manual accept mode.
+
+* Bugfix: "tell 50 foo tells you: bar" no longer gets colored as a
+personal tell; similarly for "...whispers:" and "...kibitzes:".
+
+* WinBoard no longer blanks the message line when you start a new
+move, unless there was an error message there from the previous move.
+
+* WinBoard now never puts the white piece drop menu on the middle
+mouse button. Both colors are always on the right button. Windows
+users often don't think to look for a middle button menu, or don't
+really have a working middle button despite what Windows says.
+
+* Guest login handles on ICC are now parsed again; an ICC wording
+change had broken this feature.
+
+* Autodetect when the engine does not support the "draw" command and
+don't relay the command to it in that case. Needed because sending an
+unsupported command to GNU Chess makes it move immediately, so people
+could make Zippy move without thinking by continually offering a draw.
+Thanks to Frank Walker for the problem report.
+
+* Small changes based on code from Robert Jurjevic: The WinBoard
+analysis window can be minimized (though not to the taskbar). The
+WinBoard ICS Interaction window will autoscroll if you drag the mouse
+above or below the window while selecting, and password entry mode
+leaves the entry line as the background color instead of using 75%
+gray. Seeks are now colorized with a new color of their own.
+
+* Added -zippyMaxGames feature.
+
+* -zippyNoplayCrafty command line option was missing in xboard; fixed.
+Thanks to John Perry.
+
+* Fixed bug in detecting when Zippy loses his bughouse partner.
+Thanks to Ben Dean-Kawamura.
+
+* allobs fix in 4.0.3 didn't work; corrected it.
+
+* WinBoard will now update the board immediately if a move is made
+while the window is being moved or resized.
+
+4.0.3 -- Sun Aug 15 18:44:39 PDT 1999 Tim Mann
+
+* Bugfix: moved winboard wizard functions that send a command directly
+to the chess engine from Ctrl+Alt+1 and Ctrl+Alt+2 to Alt+1 and Alt+2.
+Ctrl+Alt is equivalent to the European AltGr key, so the old assignments
+conflicted with typing an @-sign on some keyboards.
+
+* Bugfix: prevent "If this message stays up, your chess program does
+not support analysis" from appearing if AnalysisMode is selected when
+already in Analysis or AnalyzeFile mode. Also, deleting analysis window
+in WinBoard now switches you to EditGame mode, to avoid the anomaly of
+being in an analysis mode with no analysis window present.
+
+* Change all Zippy environment variables to work as command line
+options. For now they still work as environment variables too, but
+the environment variables are deprecated.
+
+* Use unsigned long to hold node counts from engines.
+
+* Print error instead of crashing on attempts to use xpm or xim pieces
+in monochrome mode. Thanks to Jim Torrance for the bug report.
+
+* Tightened pattern recognition for ICS messages sent to Zippy; should
+no longer match ICC allobs output. Fixed recognition of when Zippy is
+sent a message; small change to FICS output had broken it.
+
+* Zippy now exits if the engine dies unexpectedly.
+
+* Added Zippy "spoofedby" feature; see zippy.README.
+
+* Narrowed the margins on some older WinBoard dialogs to make their
+style uniform with the newer ones.
+
+* Bugfix: Changing Ponder Next Move from the Options menu did not take
+effect until the next game. This bug was in WinBoard only. Thanks to
+Stefan Zipproth for the bug report.
+
+* Got rid of "Internal error: bad move type" message when the engine
+makes a move that we can parse but think is illegal. Now the move is
+just passed on (which also may be the wrong thing to do).
+
+4.0.2 -- Thu Feb 25 19:55:32 PST 1999 Tim Mann
+
+* Added one more built-in sound choice to WinBoard: move.wav from Pete
+Galati.
+
+* Added new larger piece sizes: big, huge, giant, colossal, titanic.
+
+* Modified the xboard font searcher to be able to use scalable fonts.
+The new -fontSizeTolerance flag controls how closely a nonscalable
+font must match to be used in preference to a scalable font.
+
+* Zippy environment variables ZIPPYABORT and ZIPPYADJOURN now control
+whether Zippy will accept abort and adjourn requests.
+
+* We now determine the variant type being played on ICS, send it as a
+command "variant VARTYPE" to the chess engine (if in Zippy mode), and
+put it in the PGN tags. See engine-intf.txt for variant names. See
+ZIPPYVARIANTS in zippy.README to control what variants Zippy will
+accept. Note that this now applies to bughouse, too.
+
+* Zippy now won't do -zippyTalk in a channel unless his handle is
+mentioned there.
+
+* Zippy now ignores bughouse holdings if not actually playing, instead
+of stupidly trying to abort the game. Let me know if other strange
+things happen when Zippy is observing a game.
+
+* Set ICS Interaction title bar to "user@server". User name is
+determined by parsing message during the login sequence. Zippy now
+uses this method to get its name too, so ZIPPYNAME is eliminated.
+Problem: with xboard, the title bar gets set to "xterm" upon exit,
+since we didn't know what it was to start with.
+
+* Fixed xboard-only bug in -colorChannel1 command line option. Thanks
+to Fredrik Sandstrom for the bug report and fix.
+
+* Check for overflow of MAX_MOVES. Still not sure this is checked for
+everywhere it needs to be.
+
+* Added .epd to suffixes recognized by WinBoard as position files.
+This is a bit of a kludge, as the .fen reading code was not written
+with .epd files in mind, but reading them with it is said to work.
+
+* Added ZIPPYGAMESTART feature, suggested by Jason Hoblit. See
+zippy.README.
+
+* Restored the feature of soaking up the moves from a user-typed "moves",
+"oldmoves", or "smoves" ICS command when xboard/WinBoard is idle, but
+changed it so that the move list is also echoed to the screen. Some folks
+still liked the old feature since it is faster than examine mode, and
+printing the moves to the screen should eliminate the confusion it caused
+for other people.
+
+* Bugfix: in WinBoard, starting a click-click move and then clicking on
+a black line would cause the source square to be forgotten without taking
+the highlight down. Now the errant click is ignored.
+
+* Corrected shortcut key labels for LoadNext/PrevPosition in WinBoard's
+File menu. Thanks to Andreas Stabel for the bug report.
+
+* Bugfix: if you had a completely full ICS context menu in WinBoard
+(90 items), the last one would do nothing if selected.
+
+* The "computer" engine command added in 4.0.1 was not working; I had
+left out part of the code patch. Oops.
+
+4.0.1 -- Fri Feb 12 21:24:15 PST 1999 Tim Mann
+
+This is a minor bugfix release. The first item listed below is the
+only interesting new feature.
+
+* You can now type in moves from the keyboard in WinBoard. Either
+select TypeInMove from Step menu, or (if you are not in ICS mode),
+just start typing. In ICS mode you can type moves into the ICS
+interaction window anyway, so I've retained the feature that typing
+switches you there. Not implemented in xboard.
+
+* Removed the "noise 1000" command that used to be sent to the chess
+engine when entering analysis modes.
+
+* Deleted the feature where we soak up the output of a user-typed ICS
+"moves" or "oldmoves" command. This ancient feature is not really
+useful anymore, now that "examine" exists, and it caused a lot of
+complaints.
+
+* Increased maximum size of ICS text menu to 90 entries and added
+overflow checking.
+
+* The command sent to ICS by Zippy at the end of each game can now be
+customized with the ZIPPYGAMEEND environment variable.
+
+* We treat xboard.info as a pseudo-source since most people don't have
+the tools to rebuild it. But "make install" erroneously had a
+dependency on it, even though "make all" did not. Fixed.
+
+* Miscellaneous minor updates and clarifications to engine-intf.txt.
+In particular, documented the st and sd commands (support for command
+line options -searchTime and -searchDepth), warts and all.
+
+* Added a small code patch from Bob Hyatt to detect when Zippy's ICS
+opponent is a computer and send the command "computer" to the engine.
+Added this command to engine-intf.txt. Thanks, Bob.
+
+* Bugfix: configure was looking for usleep(), but config.h.in didn't
+have an entry for it, so HAVE_USLEEP was never defined. Also, in the
+non-HAVE_USLEEP case, there was a possible race condition between the
+signal handler and the pause() call. Thanks to Ben Dean-Kawamura for
+the bug reports.
+
+* Bugfix: a "1..." preceding Black's first move (usually present if
+there is a comment on White's first move) would cause the parser
+to think a new game started there and report "End of game" on the
+current game. Thanks to Dell Garner for the bug report.
+
+* Changed the abbreviation for -searchDepth from -sd to -depth to fix
+a clash with -secondDirectory.
+
+* Changed -searchDepth to be orthogonal to the various timing options.
+Previously it would search for an unlimited time to the given depth;
+now the engine is allowed to choose its search time in the normal way,
+but is told to cut off the search early if it reaches the given depth.
+
+* Bugfix: SaveSettings in WinBoard was saving both the long form
+option highlightSquareColor and its abbreviation (hsc).
+
+* Fixed a redisplay bug in DisplayBothClocks that could cause White's
+clock to be highlighted in EditPosition mode when Black's should have been.
+
+* Fixed Zippy's feature of passing on draw offers from the ICS opponent.
+The colorization code was eating the offer before Zippy saw it, so I disabled
+colorization of offers while in -zp or -zt mode. (Other types of
+colorization are already disabled in Zippy mode for similar reasons.)
+
+* Added some more commands to the default ICS context menu in WinBoard,
+and put "(name)" on the ones that insert a playername (or game number).
+
+* Added missing documentation to WinBoard help file: PonderNextMove, the
+-ponder/-xponder argument, and the up/down arrow history feature in the
+ICS Interaction window.
+
+* Fixed ZIPPYNOPLAYCRAFTY feature to fire only if the opponent is Crafty,
+not if some other Crafty is observing the game and kibitzes.
+
+* Fixed bugs in generating "partner" commands when Zippy is playing
+bughouse.
+
+4.0.0 -- Sat Jun 20 16:59:47 PDT 1998 Tim Mann
+
+* Fixed WinBoard resizing so that the edges you do not drag remain in
+place, even when the final size is different from what you dragged to.
+(This doesn't work on NT 3.51 or earlier, if anyone cares.)
+
+* Fixed problems with resizing WinBoard on Windows NT: you no longer get
+whitespace around the board, a clipped board, or a lot of flashing during
+the drag.
+
+* Added customization for highlight-square color.
+
+* Bugfix: backend.c wrote to stderr in a few obscure places, which doesn't
+work in WinBoard.
+
+* Added Index Number field back to LoadGame/LoadPosition dialog boxes in
+WinBoard. This required some extra code to work with both the
+Explorer-style dialog boxes and the old-style NT 3.51 dialog boxes. Ugh.
+
+* WinBoard startup dialog now understands -zp mode. The first chess
+engine selector is enabled and the value is used.
+
+* Bugfix: ResetGame would send "exit" to engine twice if it was in an
+analysis mode.
+
+* Bugfix: The response "Illegal move: bk" to the "bk" command, indicating
+that it is not implemented, would confuse xboard.
+
+* Bugfix: Ignore empty hints ("Hint:\n") instead of printing a message
+saying that some bogus string (often "Hint:") is illegal.
+
+* Bugfix: LoadNextGame/LoadPreviousGame/ReloadSameGame were broken.
+
+3.6.12 -- Sat Jun 13 14:57:10 PDT 1998 Tim Mann
+
+Beta test release of xboard and WinBoard.
+
+* Spruced up xboard man page a bit.
+
+* Added Highlight Last Move to xboard too.
+
+* The revamped xboard mouse click code had several more bugs than the
+previous version, so I revamped it again. All fixed now, I hope.
+
+* xboard bugfix: crash in CreatePieceMenu.
+
+* Oops. winboard-3_6_11beta.exe installed 3.6.10beta, not the new version.
+
+3.6.11 -- Fri Jun 12 20:00:48 PDT 1998 Tim Mann
+
+Beta test release of xboard and WinBoard.
+
+* Major reorganization to engine-intf.txt. Some new features added,
+many existing features clarified and hints for engine programmers added.
+Support for new features added to program.
+
+* Changed defaults for -scp (etc.) back to being independent of -fcp, as
+in 3.6.2. That is, the default is no longer to copy the value from -fcp if
+-scp is not specified. This will sometimes make command lines longer but
+will remove some confusing situations.
+
+* Split -reuseChessPrograms into two options: -reuseFirst and
+-reuseSecond. Fixed obscure bugs when reuse is off.
+
+* Detect ICC and change some command usage slightly there: only ICC has
+set-quietly; only FICS has iset and bsetup clear. With this feature, we
+can now safely use bsetup clear when appropriate instead of deleting each
+piece one by one.
+
+* Added indent to lines that are wrapped by WinBoard ICS Interaction
+window. This seems to tickle a Microsoft bug in the RichEdit control:
+occasionally the start of the next line after the wrapped line is indented
+too. I think the wrapped indent feature is useful enough that it's worth
+having in spite of the bug.
+
+* WinBoard bugfix: bounding box for the board was computed incorrectly by
+mouse code. It would think you moved off the bottom of the board before
+you really did, so it was hard to drag pieces along the bottom rank on
+smaller board sizes.
+
+* Fixed obscure parser.l bug: ambiguity between capture using : instead of
+x and email header line. Also removed or simplified a lot of complex
+patterns for English (as opposed to PGN) end-of-game indications while I
+was in there.
+
+* Added PonderNextMove option.
+
+* xboard EditPosition piece menus now let you set the side to play by
+selecting the "White" or "Black" label at the top of the menu, like
+WinBoard. (Both xboard and WinBoard still let you set the side to play by
+clicking on the clock.)
+
+* Merged documentation of Crafty and GNU Chess thinking output in
+engine-intf.txt. Corrected code in backend.c to match documentation; it
+used to require the PV to start in column 27 (!).
+
+* Fixed bug that caused crashes in "-reuseChessProgram false" mode.
+
+* Draw by agreement in Two Machines mode now works as it is supposed to.
+Other minor bugs in handling game end messages from machines are also
+fixed, and engine-intf.txt is revised in this area.
+
+* Revamped xboard code for handling mouse clicks on the board. In
+particular, it had a bug if a click-click promotion move was made.
+
+* Fixed and reinstated optimization for << in analysis modes: send
+initString and re-send the board if needed. Sending repeated undos
+is bad because Crafty prints some analysis after every one.
+
+* Don't go into a spin loop while pausing between xboard animation frames.
+This caused problems, especially when compiling with -O2 on HP-UX.
+
+* WinBoard Options/Colors/RevertToDefaults now also turns off Monochrome
+if it was on, and similarly for Options/ICSInteractionColors/RevertToDefaults.
+This seemed to confuse people before.
+
+* Bugfix: ICS Interaction context menu items with neither of the two
+optional flags set did not work.
+
+* Bugfix: PGN move numbers are optional, but we were insisting on "1"
+right after the tags.
+
+* Bugfix: only the first game of an -mg match was loading -lpf or -lgf.
+
+* Other minor fixes and code cleanup.
+
+3.6.10 -- Mon Jun 1 01:32:31 PDT 1998 Tim Mann
+
+* Added ZIPPYNOPLAYCRAFTY feature; see zippy.README.
+
+* Added timestamps for chess engine interaction to -debug output.
+
+* Now allow 10 seconds (was 5) between games in match mode for engines to
+respond to "force" command that ended previous game.
+
+* When a game is picked from the game list and the names of White and
+Black are known, display them in the window banner instead of the filename
+and game number.
+
+* Changed default for -scp and -sd to be the values of -fcp and -fd.
+
+* Added boxes for both engines to WinBoard startup dialog. Changed to
+dropdown boxes whose content can be set from winboard.ini, similar to
+the box for ICS name.
+
+* Accept "offer draw" (or "*offer*draw*") from engine to offer a draw.
+
+* Accept "move mmmm" from engine as well as silly "1. ... mmmm" syntax.
+
+* Added support for bughouse engines (Zippy mode only).
+
+* Move bombproofing for engines sending illegal or out of turn moves.
+
+* Always send "xboard\n" to engine as first command. Eliminates need
+to run crafty as "crafty xboard".
+
+* Rewrote xboard code for input from engines to fix longstanding bugs.
+Previously an engine that sent one line in two separate writes with
+some time lapse in between (or perhaps that sent several lines in one
+write) could make xboard hang. WinBoard did not have this bug.
+
+* Fixed minor bugs in dealing with illegal moves.
+
+* Added "iset startpos 1" for FICS.
+
+* Removed special support to put "GNU Chess" or "Crafty" in the window
+banner instead of the engine's base filename. This gives a more level
+playing field for other engines. Also fixed bugs in the code that finds the
+engine's base filename.
+
+* Bugfix: Abort or Resign at the very start of a game in chess engine mode
+would fail to send "force" to the engine.
+
+* Fixed some minor bugs in new "result" messages, and changed format to
+include a trailing PGN comment giving the reason the game ended.
+
+* Changed syntax of /font options in WinBoard; old syntax was assuming
+that a font name can't contain a digit, which is wrong. Old font names in
+WinBoard.ini files are still accepted.
+
+* Serious further work on getting WinBoard to read/write files in the
+"right" directories and documenting exactly what it does.
+
+* Added LoadPreviousPosition, LoadNextPosition, ReloadSamePosition.
+
+* Misc. tiny fixes and cleanup.
+
+3.6.9 -- Sun May 24 20:53:08 PDT 1998 Tim Mann
+
+xboard and WinBoard beta release.
+
+* Tightened up illegal move handling. Illegal or meaningless moves from a
+file or chess engine should no longer get translated into a1a1 and blindly
+applied. Explicit moves to the same square (like a1a1) no longer make the
+piece on that square capture itself and vanish.
+
+* Added AlwaysOnTop feature to winboard.
+
+* Fixed bug in winboard "@" command line indirection operator.
+
+* Removed buggy "optimization" code for ToStart in analysis modes.
+
+* Fixed typo bug in zippy.c that would often cause winboard to crash
+right after starting a game in -zp mode.
+
+3.6.8 -- Sat May 23 22:23:19 PDT 1998 Tim Mann
+
+xboard and WinBoard beta release.
+
+* Added -firstDirectory and -secondDirectory so that chess engines can
+be started in a different directory from xboard/WinBoard itself.
+
+* Added -matchGames to allow more than one game in -matchMode. The games
+are played with colors alternating between the two chess engines. Had to
+add a time delay at the end of each game to catch up with game ending
+messages from both chess engines -- yuck.
+
+* Changed TwoMachines mode to have firstChessProgram play White by
+default. Added -firstPlaysBlack to restore old behavior.
+
+* Major rework of code in backend.c for dealing with first and second
+chess engines. Generalized the code and created a struct type with one
+instance for each engine. Several small bugs fixed along the way.
+
+* Fixed bugs in Abort in local chess engine mode.
+
+* Tightened pattern matching to recognize moves from machine. Should cure
+bogus "Illegal move" errors while Crafty is pondering with Show Thinking
+on, among other things.
+
+* WinBoard keeps focus in board window after popping up a comment due to
+Forward/Backward/ToStart/ToEnd commands.
+
+* Finally got rid of warnings on compiling moves.c under Windows.
+
+* Fixed so WinBoard will compile on machines where WM_MOUSELEAVE is not
+defined.
+
+* Removed various bits of unused code.
+
+* Parse (and ignore) NAGs in PGN files.
+
+* Updated engine-intf.txt.
+
+* Send "result R" to the chess program at the end of each game, where
+R is the PGN result 1-0, 0-1, 1/2-1/2, or *.
+
+* Bugfix: suppress animation when loading a game with timeDelay=0.
+
+* Bug fix: pondering output from Crafty that contained "..." could be
+mistaken for a move, causing bogus error messages and general chaos.
+
+* xboard "make clean" bug fix: moved things created by configure to be
+removed only by "make distclean".
+
+* Fixed a remaining case where move was being animated before being
+relayed to opponent.
+
+* Backend was reversing time/otim commands to the chess program (new bug),
+and was often not sending them on the first move of a game or the first
+move after a mode change (old bug). Fixing the latter required a kludge
+to work with both GNU Chess and Crafty, because Crafty swaps white and
+black clock times when it swaps sides, while GNU Chess does not. The
+kludge is that we always make sure the chess engine thinks its opponent is
+on move before we set the clock. This will sometimes result in sequences
+like "white\ntime xxx\notim yyy\nblack\ngo", or the same with white and
+black interchanged.
+
+* Removed last trace of old -whiteString and -blackString arguments.
+
+* Fixed so that you can type "bd" into the Direct Command dialog when
+debugging gnuchess, without having xboard parse the clock display
+(starting with "White") as "White wins" and end the game.
+
+* Changed moves.c to make a distinction between IllegalMove (where we
+could tell what move was intended, but it violates the chess rules) and
+MeaninglessMove (where we could not tell). This is a step towards getting
+rid of cases where we translate meaningless moves into "a1a1", but some
+work is probably needed to track them all down.
+
+* Fixed bug in WinBoard monoMode dragging.
+
+* Changed WinBoard to new style file dialogs. In the process, disabled
+the feature that let you enter the index number of a game or position within
+the file in the dialog. This is no loss in LoadGame, as you can pick your
+game from the game list dialog that follows, but it does remove some
+functionality from LoadPosition.
+
+3.6.7 -- Mon May 18 21:25:00 PDT 1998 Tim Mann
+
+xboard and WinBoard beta test release. I've been unable to reproduce some
+reported drawing bugs, so they may still not be fixed.
+
+* Changed PopUpErrors option to PopupMoveErrors, which is more useful, and
+changed default to off. Errors other than move errors should always be in
+popups; they are often too big for the message area and too important to
+put where they can be easily missed. But it seems good to get rid of the
+popups for move errors by default.
+
+* xboard analysis window no longer forces itself to top whenever there is
+new output. Also, now uses built-in Xaw word wrapping instead of trying
+to do its own; works better.
+
+* Bugfix: Reset did not take Crafty out of analyze mode.
+
+* A chess engine no longer has to claim to be Crafty to be able to use
+AnalysisMode and AnalyzeFile; it just has to implement the analyze
+command as Crafty does. Put in heuristics to generate more informative
+error messages if the engine does not support analyze, and checked that
+they work at least with GNU Chess.
+
+* Added click-click moving, HighlightLastMove, and HighlightDragging to
+WinBoard. The highlight features are unlikely to go into xboard unless
+the xboard drawing code is cleaned up to do *all* drawing on the board
+from DrawPosition, as WinBoard does. This is low priority for me.
+
+* Eliminated bogus "Error gathering move list: no header" popup. You
+could get this by observing two fast games at once without turning off
+GetMoveList.
+
+* Disable WinBoard Sounds menu entirely in -ncp mode, since not even
+MoveSound is used in that mode.
+
+* WinBoard bugfix: Several problems were caused if the user changed
+WinBoard's current directory in a Load, Save, or Browse dialog. In
+particular, WinBoard.ini would get saved in the wrong directory, and
+sound .wav file names would not get saved with a full pathname. I think
+all such problems are now fixed.
+
+* WinBoard bugfix: iconizing the board after an aborted mouse resize would
+(partially) resize it to Tiny.
+
+* WinBoard bugfix: board was not being drawn in color on 256-color
+displays. This bug was introduced in 3.6.6.
+
+3.6.6 -- Tue May 12 17:43:43 PDT 1998 Tim Mann
+
+xboard and WinBoard beta release. Note: not all reported bugs are fixed.
+
+* Move animation in WinBoard, programmed by Henrik Gram. Great stuff!
+
+* Animate backward moves too.
+
+* xboard bugfix: -font (and friends) can now specify a font alias (such
+as "fixed"), not just a full X Consortium name pattern. Previously this
+would give a resource conversion error message.
+
+* Some coding style cleanup in xboard.c.
+
+* Earlier error check for moving wrong color piece in EditGame mode.
+
+* Completed fix to pattern matching; see 3.6.5.
+
+* Fixed some software rot bugs in Zippy.
+
+* Split AnimateDragging as separate option from AnimateMoves.
+
+* Added FlashMoves to options menu and -flash/-xflash to command line
+options (xboard only).
+
+* Some preliminary work on visible bughouse holding support. Most of the
+code is not present in this release because I have not gotten it working
+properly yet; my first approach went down a blind alley and I had to
+remove most of the partially working code in preparation for a rewrite.
+
+3.6.5 -- Fri May 8 14:22:09 PDT 1998 Tim Mann
+
+Not generally released.
+
+* Pack bughouse holdings display in banner more tightly when board is one
+of the smaller sizes (when smallLayout or tinyLayout is true, that is).
+An interim measure, but should help.
+
+* Completed fix to make move list parsing recognize the end condition and
+final comment.
+
+* Fixed pattern matching for chatter (tells, etc.) to be more reliable.
+This should reduce the incidence of colors starting in the wrong place and
+of incorrectly matching things that look like other patterns inside
+chatter, such as "shout <12>". (These errors were already rare.)
+
+* WinBoard now lets you customize the list of ICS's in the startup dialog.
+For now, at least, requires editing WinBoard.ini with a text editor.
+
+* Bug fix: WinBoard window sizing and position setting save/restore did
+not work right when the taskbar was at the top (or left side) of the
+screen and not in autohide mode.
+
+* Merged xboard click/click mode and drag mode, and deleted
+ClickClickMoving option on menu. Now if you click on a piece, it
+highlights and a further click on another square will move it. (A second
+click on the same square takes down the highlight.) Or if you press down
+on a piece and start to drag, you can drag it to a new square.
+
+* When making click/click style moves, if your second click is on a piece
+of the same color, instead of saying "Illegal move", we now cancel the first
+starting square, replace it with the second, and wait for another click to
+finish the move.
+
+* Separate -secondInitString. Default: same as -initString. Suggested by
+Remi Coulom.
+
+* Patch from Frank McIngvale to make animation work with XIMs. Yay!
+
+* Changed move animation to happen after move is passed on to ICS or the
+chess engine, where applicable. Fixed problems with updating moveList
+that this uncovered.
+
+* Changed game list to show PGN result token for each game.
+
+* The usual minor bug fixes.
+
+3.6.4 -- Thu Apr 30 23:14:43 PDT 1998 Tim Mann
+
+xboard and WinBoard beta test release.
+
+* xboard documentation updated, both man page and info file. An attempt
+to generate both from the same source with LinuxDocSGML was abandoned, at
+least for now. WinBoard doc updated too.
+
+* Merged updates to animation code from Hugh. Fixed a couple of remaining
+bugs, mostly to do with handling Pause mode correctly.
+
+* Added SaveSettingsOnExit to WinBoard.
+
+* WinBoard now saves the last screen position of the Comment, Edit Tags,
+Game List, and Analysis windows (in addition to the board and ICS
+Interaction windows) in WinBoard.ini.
+
+* WinBoard now provides a way to customize the right-button context menu
+in the output area of the ICS Interaction window. For now, requires
+editing WinBoard.ini with a text editor.
+
+* Various minor fixes to ICS message recognition, most affecting only Zippy.
+
+* Colorize the notification when someone sends you a message while you are
+logged in, not the output of the "messages" command.
+
+* Fixed colorization to turn off at the right place more reliably.
+
+* Added a new color and WinBoard sound for "requests": abort, adjourn,
+draw, pause, and takeback. The same color and sound are used for all of
+these.
+
+* Added GUI to change sounds in WinBoard.
+
+* Suppressed WinBoard error popup when a sound can't be played. They were
+popping up when two separate WinBoards tried to play a sound at the same
+time (such as during a bughouse match).
+
+* Fixed WinBoard crash when a sound file didn't exist.
+
+* WinBoard ports of timestamp and timeseal now produce decent error
+messages if they fail to connect, and WinBoard captures the messages and
+puts them into a popup. Previously WinBoard would exit with no message on
+such errors.
+
+* WinBoard resizing with mouse improved; now accurately picks the largest
+size that fits in the new area.
+
+* Added option to turn off error message popups.
+
+* Added sizes slim, dinky, and teeny.
+
+* Fixed some minor problems with error message wording.
+
+3.6.3 -- Mon Feb 23 19:08:57 PST 1998 Tim Mann
+
+xboard beta test release only. Man page is updated for the changes, but info
+file is not.
+
+* Bug fix: LoadGame could not load a PGN game whose first move was
+castling (which is possible from setup positions).
+
+* Bug fix: we were ignoring illegal move messages from chess engines in
+modes where the engine is refereeing but not participating (EditGame,
+LoadGame, AnalyzeFile). The problem was in a workaround for a Crafty bug,
+where Crafty generates a bogus illegal move message if a "." (used by
+the PeriodicUpdates feature) is sent in analysis mode when the current
+analysis reveals a forced mate. Installed a different workaround (that
+works in most but not all cases) and reported the Crafty bug. Bob Hyatt
+replied with a fix, so the Crafty bug should be gone in Crafty 14.12 or so.
+
+* WinBoard only: enabled resizing board with the mouse. It snaps to the
+nearest (but not too much larger) predefined size.
+
+* The xboard default font is now sized according to piece size, just as
+clockFont and coordFont have always been.
+
+* Added more sizes: bulky, moderate, average, middling, mediocre, petite.
+
+* xboard only: Added Animate Moves and Click-Click Moving to Options menu.
+
+* xboard only: Added code to animate piece movement, from Hugh Fisher.
+
+* New feature: autoflag is implemented in MachineWhite, MachineBlack, and
+TwoMachines modes. If it is on and either a chess program or the user
+oversteps his time, xboard will automatically call the flag and end the
+game. This feature was requested by someone who runs matches between
+programs and wants to penalize GNU Chess for its habit of running slightly
+over at the end of a time control. I personally think it's pointless.
+
+* Fixed a bug in Zippy's pattern matching; he can now reply to ICC
+messages again.
+
+* Generate prettier notation for illegal moves. If a move is illegal only
+because it leaves the player in check, generate notation as if that were
+not illegal. For instance, if two knights are a knight's move away from
+f3, one on g1 and one on e5 that is pinned, the notation would be Nf3 to
+move the g1 knight, Nef3 to move the e5 knight. (Suggested by Philippe
+Schnoebelen.) In addition, if a move is illegal because the type of piece
+moved cannot go that way, would be jumping over another piece, etc., we
+give fully disambiguated coordinate notation; for example, Ng1g3, Ke1xe8,
+d2xd8=Q, etc. An alternative would be to still write Ng3 if there is only
+one knight on the board, or Ngg3 if the other knight is not on the g file,
+but life is too short to code up all this stuff, and perhaps the way I did
+it is better as it emphasizes that this move was really made despite being
+illegal. I wonder if the new PGN standard revision will speak to notation
+of illegal moves?
+
+* Fixed gross bug from 3.6.2: if a chess program said "checkmate" and
+White was left on move, the PGN outcome was "1-0 {Black mates}" instead
+of "0-1 {Black mates}"! The bug occurred only for that specific string.
+
+3.6.2 -- Wed Jul 23 16:47:29 PDT 1997 Tim Mann
+
+* There was a bug in backing up from the end of a game against a chess
+engine, introduced when -reuse mode was added. Fixed.
+
+* Recognize "{" as terminating an ICS move list. Previously we needed to
+see a prompt (containing %), but occasionally ICC can send more stuff
+right after a move list with no prompt in between.
+
+* In WinBoard, -mm now implies -cp, so you don't get the startup dialog.
+
+* WinBoard startup dialog no longer sets -scp. People used to get
+confused because they would give the -fcp and -scp arguments, but omit
+-cp. This would bring up the startup dialog, which would set both -fcp
+and -scp to the value in the engine name box. Now you can change -scp
+only with the command-line argument. That will confuse some people too,
+but hopefully fewer. I think overall it's better than putting spaces for
+both -fcp and -scp in the dialog, which would puzzle newbies.
+
+* Bug fix: Analyze File mode now works in WinBoard.
+
+* Bug fix: WinBoard window no longer cuts off part of the bottom row if
+the menu bar wraps to a second line.
+
+* Accept game end messages of the form "PGN-result {comment}" from the
+chess engine, where PGN-result is 0-1, 1-0, or 1/2-1/2. Accept "resign"
+or "computer resigns" from the chess engine as a synonym for "0-1 {White
+resigns}" or "1-0 {Black resigns}". Accept any message from the chess
+engine containing "game is a draw" as a synonym for "1/2-1/2 {Draw}".
+Accept "White resigns" or "Black resigns".
+
+* Enable "Action / Draw" menu item in chess engine mode. It sends the
+command "draw" to the engine. Accept any message from the chess engine
+containing "offers a draw" as a draw offer. WARNING: Draw offers from the
+user and the engine (or from two engines) are not yet matched up by xboard
+in chess engine mode. Two engines could get into a loop offering each
+other draws.
+
+* Bug fix: Game end messages from the chess engine are always ignored in
+Zippy mode. Previously they could sometimes be processed, which was
+sometimes making Zippy hang at the start of a new game that followed
+quickly after an old one.
+
+* Zippy can now respond to titled players in channels. Zippy will avoid
+talking to himself in a channel if he knows his own name.
+
+* Bug fix: in colorization arguments, the bold setting was being ignored
+if the background color was defaulted. (xboard only.)
+
+* Extended ParseFEN to accept Crafty 12.2's interpretation of FEN.
+If fewer than 8 squares are given in a row, or fewer than 8 rows are
+given, the uncovered squares are empty. Also, there can be a / after the
+8th row.
+
+3.6.1 -- Sat May 17 01:02:33 PDT 1997 Tim Mann
+
+* Bug fix: Hitting escape while entering a password on WinBoard no longer
+sets the font color back to black (which made further typing visible).
+
+* Bug fix: On Windows NT 4.0, WinBoard /ics /icshelper=timestamp would
+often hang if you tried to exit with the Exit menu item, the [X] button,
+etc. The same fix may also have corrected the problem where running a
+chess program with /xreuse would sometimes crash Windows 95 (but not NT)
+when the chess program was killed and quickly restarted.
+
+* Bug fix: Periodic Updates would not work if turned on after having been
+off. Also, the default was needlessly "off" in WinBoard.
+
+* Zippy bug fix: Continuing an adjourned game was totally broken. The
+wrong moves, or no moves at all, were being fed to the chess program.
+
+* WinBoard change: Giving -ics without -icshost now pops up the startup
+dialog with "Use an Internet Chess Server" pre-selected, so that you get a
+menu of chess servers instead of going directly to ICC.
+
+* Bug fix: WinBoard's SaveSettings was saving -icshost, -icsport, and
+-icshelper in winboard.ini. This causes a problem if you use a different
+icshost later that needs the default values for icsport (5000) and
+icshelper ("", meaning none).
+
+* Disabled complaints about unexpected "[Ii]llegal move" messages from
+the chess program; we still get them at times.
+
+* Greatly simplified the code for Move Now and SIGINT (ATTENTION). Fixes
+the bug where Move Now did not work with GNU Chess in WinBoard, and
+several more obscure bugs as well. Reintroduces a minor bug: GNU Chess might
+not think on your time after a Move Now command. Trying to fix this
+causes too many other problems. Documented change in engine-intf.txt.
+
+* Cleaned up code for obtaining ratings from ICS. It was kludgey and may
+have had bugs on systems with no "Creating:" message. It should fail
+gracefully there, just not finding the ratings.
+
+3.6.0 -- Thu May 8 19:55:58 PDT 1997 Tim Mann
+
+* WinBoard now has right-button context menus in the ICS Interaction
+window. Some of the items do immediate commands on the player name you
+have selected or pointed to. (Suggested by Paolo Casaschi.) Also, the
+middle button or shift+right does a immediate Copy and Paste.
+
+* Fixed a bug in Zippy's wild rejection. The bug was causing Zippy to
+reject all forms of wild. Now it rejects only 1, 9, 16, 17, and 24, as
+was intended. These variants have different rules, while the other
+variants defined so far only have different starting positions.
+(Actually, wild 2, 3, and 4 never allow castling, but may sometimes by
+chance have king and rook start on squares where castling appears legal.
+This could cause a problem later.)
+
+* Zippy now resumes adjourned games by feeding the chess program
+the move list instead of the position. Setting -getMoveList to False
+restores the old behavior. Feeding in the move list is better because
+it enables the chess program to correctly handle en passant legality,
+castling legality, draw by repetition, and draw by the 50 move rule.
+
+* Added a WinBoard startup dialog for people who run WinBoard.exe without
+using the Start menu or reading the help file. Instead of being dumped
+directly into GNU Chess mode, you now get a menu of choices. You now have
+to give the new WinBoard -cp option to go directly into chess engine mode.
+I did not add this feature to xboard.
+
+* Handling of "illegal move" from Crafty is now back on. (It was turned
+off in 3.4.6; see below.) Crafty 12.0 doesn't seem to send bogus ones
+anymore. I did have to suppress sending time and otim in analyze mode to
+make this work, but there is no harm in that.
+
+* Zippy now sends "gameend" to ICS at the end of each game. You can alias
+this to "seek" or whatever you like.
+
+* Added Crafty support for Move Now, using the "?" command. We test
+whether this command exists by trying it once at the start of the first
+game, before it really makes sense. If we don't get a message like
+"Illegal move ... ?", we assume it's OK. (We're careful about this
+because sending a "?" to GNU Chess on Move Now keeps it from pondering the
+next move as it should.)
+
+* Added support for a tellusererror command from the chess engine. See
+engine-intf.txt.
+
+* Attempted to make engine-intf.txt complete.
+
+* Minor fixes/cleanup to GameEnds code, to be sure we always interrupt
+when needed, and always undo an extra move generated by stopping the chess
+program while it is thinking.
+
+3.5.7 -- Sat May 03 22:37:44 PDT 1997 Tim Mann
+
+Beta release of both xboard and WinBoard.
+
+* Updated xboard documentation. I really wish the man page was built from
+the info file instead of being separate! It's a pain to update them both.
+
+* Updated documentation of the interface between XBoard/WinBoard and chess
+programs, and renamed it to engine-intf.txt.
+
+* Added support for tellics, telluser, and askuser commands from the chess
+engine. See engine-intf.txt.
+
+* Various bug fixes. On WinBoard, 256 color displays are finally handled
+right; no more color flashing when you switch windows unless the colors
+really need to be updated. Also, I think the problem of the console font
+failing to change or changing back by itself is finally fixed.
+
+3.5.6 -- Tue Apr 29 03:08:00 PDT 1997
+
+Beta release, WinBoard only. ChangeLog was out of date in release,
+updated here.
+
+* Added ICC timestamp and FICS timeseal to WinBoard distribution. These
+are my own ports to Win32, based on and used by permission of the owners
+of the proprietary source code (Daniel Sleator for timestamp, Henrik Gram
+for timeseal). The owners permit these programs to be distributed only in
+binary form (to help prevent cheating), so to avoid running afoul of the
+GPL, I have kept them as separate programs, not linked into the WinBoard
+address space. Updated Start menu icons to use them.
+
+* Miscellaneous smaller changes.
+
+3.5.5 -- Fri Apr 25 03:06:00 PDT 1997
+
+Beta release, WinBoard only. ChangeLog was out of date in release;
+updated here.
+
+* Added simple sound support to WinBoard.
+
+* Updated WinBoard documentation.
+
+* Internal implementation of the telnet protocol is now more complete.
+You can now hop through a VMS host on the way to ICS. For example, do
+"xboard -ics -icshost vms.host.edu -icsport 23", then log in. Do not use
+the -telnet flag; that says to use an *external* telnet program. To avoid
+double echoes, you need to force character mode in VMS telnet after
+connecting from VMS to ICS. Do "^]^Mset mode char^M^M".
+
+* Display opponent names in the title bar for MachineWhite, MachineBlack,
+and TwoMachines modes.
+
+* WinBoard now has an installer, built with InstallShield. The installer
+works with a binary-only distribution. Sources are still freely
+available, but now separately.
+
+* Added SaveSettings to WinBoard, which saves current option settings to
+winboard.ini. Made sure all options can be saved and loaded, including
+fonts and com port settings.
+
+* If the game ends while you are dragging a piece, we now don't let you
+finish the move. Formerly the move was accepted and your opponent's clock
+would start running again.
+
+3.5.4 -- Fri Apr 18 01:15:24 PDT 1997 Tim Mann
+
+Beta test release of WinBoard and xboard. The documentation remains
+out of date.
+
+* Many fixes and improvements to new WinBoard user interface code.
+
+* In Zippy mode, avoid sending another copy of the same move to the chess
+program if ICS sends us another copy of the board image. Hard to believe
+it took me until now to diagnose and fix this problem!
+
+3.5.3 -- Sat Apr 12 19:49:33 PDT 1997 Tim Mann
+
+Beta test release of WinBoard and xboard.
+
+* Fixed fatal bug in WinBoard input handling.
+
+* Made code to stop chess program for reuse a bit smarter. Removed kludge
+of "white" in initString; it didn't work well, and is unneeded
+with Crafty 11.21 and later.
+
+3.5.2 -- Sat Apr 12 15:40:01 PDT 1997 Tim Mann
+
+Beta test release of WinBoard.
+
+* Ignore check and permit promotion to King during suicide games; no need
+to turn off TestLegality.
+
+* Renamed CheckLegality to TestLegality to avoid confusion with the chess
+term "check".
+
+* Added Rematch to Action menu.
+
+* WinBoard now has a custom ICS interaction window with scrollback, a
+separate line for input, and colorization. Accelerators that conflict
+with normal editing keys were changed (by requiring Alt+) so they can work
+in both the console and the main window.
+
+* WinBoard error popups are now non-modal and disappear when you make a
+new move, as in xboard.
+
+* Configure now defaults to --disable-ptys on all systems. If anyone has
+an ancient SysV system where pipes don't work with select, they can still
+do "configure --enable-ptys" explicitly. I would appreciate getting a bug
+report if this happens to anyone, with complete output from configure and
+"uname -a".
+
+* "make install" now makes the installation directories too.
+
+* Fixed a bug that would cause an "Illegal move" message for Black from
+GNU Chess to be incorrectly considered bogus.
+
+* Handle name changes during an ICS game (FICS bname and wname commands).
+
+* You can force both chess programs to be killed at the end of each game
+by turning off the reuseChessPrograms option. There are still some
+problems with reusing Crafty even in version 11.20.
+
+* Now the second chess program stays around by default too, if it ever
+gets started.
+
+3.5.1 -- Sat Apr 5 16:47:48 PST 1997 Tim Mann
+
+Beta test release.
+
+* Don't kill off and restart the chess program for each game; keep the
+same one running, using the "new" command to start a new game. This
+change works around the problem in Windows 95 that makes WinBoard crash it
+at times, and is generally desirable to make new games start faster. The
+second chess program (for TwoMachines) is still killed at the end of the
+game, and unfortunately this can still crash Windows 95. Temporarily
+added "white" to the initString to make this work with Crafty 11.20, which
+has a minor bug in "new". Older versions of Crafty have worse bugs in
+"new"; they should not be used with this version of xboard.
+
+* Support for FICS suicide chess: Parse illegal moves (that leave King in
+check) in game history. If CheckLegality is off, allow promotion to King
+and illegal moves in game files. We still generate e2e4 style notation
+for illegal moves.
+
+* Handle FICS "has timeseal; checking" message.
+
+* Changed the coords from white back to black; this was a bug.
+
+* Fixed problems compiling with K&R compilers.
+
+* Fixed an old bug in RegisterMove that was crashing cmail on some systems
+(notably linux).
+
+3.5.0 -- Thu Jan 2 16:59:49 PST 1997 Tim Mann
+
+Thanks to Frank McIngvale for much of the work on versions 3.4.4 and above!
+
+* Fix Crafty resumed game time bug (frankm)
+
+* Word wrap text in Analysis window (frankm)
+
+* More debug info for XPM loading (frankm)
+
+* Replaced config.sub, config.guess, etc., with up-to-date versions from
+autoconf 2.12. Hopefully this will fix problems on Pentium Pro machines.
+
+* Removed some Makefile gunk that was causing looping for one person.
+
+3.4.7 -- Thu Dec 19 14:22:41 PST 1996 Tim Mann
+
+All changes from Frank:
+
+* Retrieve ratings from ICC (and FICS, etc., when they add the Creating:
+message), save them in the PGN tags, and pass them to Crafty in Zippy mode.
+
+* Add settable time delay between characters in ICS login script.
+
+* Colorize messages like personal tells. Fix false recognition of channel
+tells.
+
+* Pass "tells" from Crafty through to ICS (in Zippy mode).
+
+* Implement ~/ filename convention from C shell for game and position file
+names.
+
+* ZIPPYACCEPTONLY feature for testing.
+
+3.4, patchlevel 6 -- Sat Nov 23 16:58:50 PST 1996 Tim Mann
+
+* Put recognition of "illegal move" messages from Crafty for
+illegal castling, etc., inside an #if that is currently turned off,
+because of a bug in Crafty that generates bogus "illegal move" messages
+after some moves that are actually legal and accepted by Crafty.
+
+* Added -checkLegality option; previously this could not be turned off.
+
+* Fixed an old bug in finding default board size parameters.
+
+* Differentiated among channel tell, kibitz/whisper, and personal tell/say.
+
+* Fixed a bug in detecting Xpm in the configure script.
+
+3.4, patchlevel 5 -- Mon Nov 18 16:22:53 PST 1996 Tim Mann
+
+* Added zic2xpm to the kit; it had been omitted by mistake.
+
+* Added some default colors for -colorize
+
+3.4, patchlevel 4 -- Sat Nov 16 18:10:17 PST 1996 Tim Mann
+
+This is meant to be a beta release in preparation for version 3.5.
+
+* Added InfoXBoard and ManXBoard to the Help menu.
+
+* Made Frank's ICS input box optional, defaulting to off.
+
+* Merged in Frank McIngvale's XbKit. Many new features, including
+-clickClick mode, the Analysis modes, piece flashing, ZIICS import,
+ICS text colorization, and the ICS input box. Many thanks to Frank for
+supplying and documenting this code.
+
+3.4, patchlevel 3 -- Mon Nov 11 18:23:14 PST 1996 Tim Mann
+
+Small set of changes made while Frank McIngvale was working on XbKit in
+parallel. Unreleased in this form.
+
+* Updated zippy.README.
+
+* Removed useless X event handler and removed strange code for copying
+form translation table to board that worked around the bug it caused.
+This makes changing bindings in .Xdefaults more straightforward.
+
+* Now pressing the Control key steps back one move, and releasing it steps
+forward again.
+
+* Moved quit from "q" to "Q" for greater safety.
+
+* Use "unobserve" instead of "observe" to stop observing; needed on FICS.
+
+* Support for interface variable.
+
+* Strip titles from people who are talking to us, so (for example) Zippy
+won't try things like "tell Darooha(*) hello". Needed on FICS.
+
+3.4, patchlevel 2 -- Tue Jul 9 19:06:42 PDT 1996 Tim Mann
+
+This patchlevel is not planned to be an announced release. It's in
+preparation for integrating Frank McIngvale's XbKit. It mostly contains
+minor fixes I've accumulated since 3.4.pl1.
+
+* WinBoard /telnet option now fires up an external program, as
+with xboard, instead of trying to use a feature of NT 3.1 that does not
+exist in later versions of NT or in Windows 95. ChangeLog for 3.4.pl1
+said this had been implemented there, but it really wasn't.
+
+* Indicating player to move by the icon color now works under Windows 95.
+
+* WinBoard now kills the chess program when you exit using the system menu
+or the [X] button. Thanks to Michael Lowe.
+
+* Minor changes to Zippy, including: Now understands wild challenges on
+FICS; these used to crash it. Removed limit on how fast a game will be
+accepted. Use "set formula ..." on the chess server to limit this if you
+are using GNU Chess. Now sends correct opponent name to Crafty.
+
+* Added some missing default values to documentation. Thanks to Stuart
+Cracraft.
+
+* Bugfix: Trying to print "No fonts match pattern" error message would
+crash. This can happen to Linux users who don't install Helvetica, for
+example.
+
+* Bugfix: Defaulting feature in -size n,n,n,n,n,n would put us in an
+infinite loop.
+
+* Added more directories to search for Athena widgets on HPUX.
+
+* New cmail (3.12) from Evan Welsh; includes small fix from Kayvan Sylvan.
+
+* Recognize "illegal move" messages from Crafty for illegal castling, etc.
+
+* Bugfix: "name" command added to zippy.c for Crafty was producing error
+message if GNU Chess was in use.
+
+* In bughouse mode, suppress holding messages from console window; show
+holdings only in banner.
+
+* Minor fixes/cleanup to Makefile.in and configure.in.
+
+3.4, patchlevel 1 -- Mon Dec 11 13:43:12 PST 1995 Tim Mann
+
+* This patchlevel updates WinBoard to match xboard, and includes a few
+fixes and minor improvements. "-size tiny" and "-size n,n,n,n,n,n"
+are still not implemented for WinBoard.
+
+* Installed support for Crafty based on code from Bob Hyatt.
+Currently the only documentation for this is in the FAQ, and a few
+things don't work with Crafty 8.23. Please do not report these
+problems as bugs in either xboard or Crafty. Bob and I know about
+them. The worst ones (if not all of them) should be fixed in Crafty
+8.24.
+
+* Changed the kludge command we send when gnuchess wants to print
+something that doesn't end with a newline, from "help" to "bogus".
+This works because the error message gnuchess prints ends with a
+newline. It also improves compatibility with Crafty, which doesn't
+need the kludge, but for which sending "help" causes a problem.
+
+* Don't draw grid at all if lineGap is 0; previously we drew the grid
+with X "0-width" lines (usually 1 pixel wide) and then overwrote it.
+
+* Makefile: Removed xboard.info from "all" target so we won't try to
+rebuild it, because this fails on hosts that don't have makeinfo
+installed. Other minor fixes to "clean" targets, etc.
+
+* Fixes and cleanup to Auto Comment code that handles continuation
+lines and highlighting.
+
+* Auto Observe now tries to observe the game from the point of view of
+the player who was on your gnotify list. Requested by rng.
+Limitations: We can't tell which player it was unless you have ICS
+highlighting turned on. Also, currently "observe foo" works as
+required (observing from foo's point of view) only on ICC, but FICS
+will probably implement this soon.
+
+* "-size tiny" now makes the default font smaller automatically. This
+was implemented by introducing an extra Form widget in the hierarchy
+for all xboard windows, named either normalLayout, smallLayout, or
+tinyLayout. So you can have resource specifications that apply only
+to certain layouts; in particular, XBoard*tinyLayout*font.
+
+* Bug fix: EditGame or EditPosition while playing or examining still was
+not really being permitted.
+
+* WinBoard bug fix: On the EditPosition menu, King did not work.
+
+* Added text catalog of WinSock error messages to WinBoard, because
+Microsoft still has not put them in the system message catalog.
+
+* Removed support for older ICS game-ending messages that do not have
+a PGN result token (*, 0-1, 1-0, or 1/2-1/2) after the closing '}'.
+The code for older messages was sometimes firing on the newer
+messages, due to parsing ambiguity. If the current code sees an old
+message, it will understand that the game is over, but will always
+display * as a result token instead of trying to guess the result by
+interpreting the text message.
+
+3.4, patchlevel 0 -- Tue Nov 21 01:02:50 PST 1995 Tim Mann
+
+* This patchlevel was released for xboard only.
+
+* Updated the info file. It should now be as up-to-date as the man page,
+with good English except in the parts that pertain only to AmyBoard.
+
+* Added "-size tiny", requested by Bob Hyatt. Also cleaned up bitmap
+support and added "-size n,n,n,n,n,n" to allow arbitrary-sized bitmaps,
+if the actual bitmaps are supplied by the user.
+
+* Updated bughouse support.
+
+3.3, patchlevel 4 -- Sat Nov 18 02:27:21 PST 1995 Tim Mann
+
+* Unreleased beta that works with preliminary FICS bughouse code. Will
+need changes before release to track FICS message changes.
+
+* Removed use of .EX macro from man page. It is not supported by some
+nroff -man macro packages, notably the one on Slackware Linux. Switched
+to boldface for references to xboard and other commands within the man
+page, as this seems to be the modern way.
+
+* Bug fix: If ICS rejected a move, it was correctly undone on the board,
+but the message widget still displayed the bad move. Reported by DAV.
+
+* Normally, xboard in ICS mode fetches the move list whenever the board
+display switches to a new game. Doing this is now an option
+(getMoveList) that can be turned off, which is useful if you are watching
+multiple blitz games. Requested by rng.
+
+* Move list fetching code is now smarter: it ignores a move list if it is
+not for the right game.
+
+* Added support for bughouse as implemented on FICS. Holdings are shown
+in the window title in place of the strength numbers. A menu on mouse
+buttons 2 and 3 (same on both) lets you drop pieces. There is no checking
+as to whether you actually hold the piece you are trying to drop; we rely
+on ICS to check that. Notation of the form P@f7 is generated and parsed.
+The mate detector does not understand that non-contact mate is not really
+mate in bughouse, but this does no real harm. It results in a "#"
+suffix being displayed on the move notation, but xboard does not assume the
+game is over.
+
+* Bug fix: Promotion to a knight was not working with ICC! Thanks to
+Wendigo for the report.
+
+* Bug fix: Special pty code for host types *-*-aix3* and *-*-irix3*
+(supplied from configure.in) had a bug that would cause childio.c to
+fail to compile, due to a "continue" that was not within a loop.
+
+* Bug fix: In pgntags.c, memory was being freed while still in use. One
+symptom this caused was that on some machines, cmail would fail with a
+message that it could not find the BlackNA tag. The error was in some
+submitted code that I included in version 3.2.pl3 without reading
+carefully enough. Anders Forberg noticed the symptoms, and Evan Welsh
+(who had nothing to do with causing the bug) found the bug and submitted a
+fix; thanks to them both.
+
+* Removed restriction against using EditGame while playing, observing,
+or examining on ICS. You still get a warning popup.
+
+3.3, patchlevel 3 -- Sat Sep 16 11:44:05 PDT 1995 Tim Mann
+
+* Bug fix: Going directly from MachineWhite to TwoMachines mode would kill
+off the second chess program after Black's first move.
+
+* Added -timeIncrement feature. Thanks to Joel Rivat.
+
+* Deleted code that tries to keep you from observing more than one game,
+or observing while playing or examining. There is actually no problem in
+doing this, except that every time an update comes in from a different
+game than is currently being displayed, xboard fetches the history of the
+new game, which may be time-consuming if you are on a slow link.
+
+* Fixed configure so as not to crash when neither lex nor flex is found.
+lex or flex is needed only if the user wants to rebuild parser.c. Thanks
+to Phil Humpherys for reporting the crash.
+
+* Bug fix: config.h.in used #define instead of #undef for some macros used
+in the pty code in childio.c. This causes the code to fail to compile on
+some architectures, because the symbols are supposed to be undefined, not
+defined to empty, when they are not set in configure. Bug originated in
+3.3.pl0 when config.h was introduced. Thanks to Phil Humpherys for report.
+
+* Bug fix: ShowThinking would not show anything when current position had
+no move to display in the move window. E.g., if position was created by
+LoadPosition or EditPosition.
+
+3.3, patchlevel 2 -- Mon Aug 28 11:11:11 PDT 1995 Tim Mann
+
+* Zippy code was omitted from xboard-3.3.pl1 by mistake; now included.
+
+* For WinBoard, added hint to help file that you may need to turn off
+LocalLineEditing while typing dialing commands to your modem.
+
+3.3, patchlevel 1 -- Sat Aug 19 15:13:30 PDT 1995 Tim Mann
+
+* Zippy distribution is no longer separate from regular xboard distribution.
+
+* Deal properly with Show Thinking output from GNU Chess when it is
+thinking on its opponent's time. In TwoMachines mode this output is
+suppressed to avoid interfering with the output from the machine that is
+on move; in other modes it is displayed (including the move that GNU Chess
+is predicting the user will make next). GNU Chess produces this output
+only if it is built without -DQUIETBACKGROUND defined; this symbol is
+defined by default in patchlevels before pl75, but undefined by default in
+pl75.
+
+* Bug fix: Handling of initial board position in move list for wild games
+was broken, so wild games could not be observed and adjourned wild games
+could not be continued. Thanks to "Maximum Entropy" for the bug report.
+
+* Added feature: algebraic notation now shows "+" indicator for check
+and "#" for checkmate, as called for in PGN standard. Thanks to Kevin
+Maher for the suggestion.
+
+3.3, patchlevel 0 -- Thu Jul 27 22:21:07 PDT 1995 Tim Mann
+
+* Changed configuration to use a config.h file instead of passing zillions
+of -D options on the cc command line.
+
+* Merged a small fix and some updates to the texinfo file from Jochen
+Wiedmann. The texinfo file still needs work.
+
+3.2, patchlevel 5 -- Tue Jul 18 20:29:39 PDT 1995 Tim Mann
+
+* Beta test release of xboard only.
+
+* Updated WinBoard code to include new xboard features.
+
+* Added texinfo file from Jochen Wiedmann to the release, but not as the
+primary documentation. It needs updating, and the English needs work.
+I did make a few improvements, mostly to change incorrect uses of @var to
+either @samp or @code as appropriate.
+
+* Merged in code changes to 3.2.pl4beta from Jochen Wiedmann.
+
+* Fixed EditComment; did not pop up window in previous beta.
+
+* Added AutoComment feature.
+
+* Added GameListDestroy to disable the outdated game list popup in cases
+where we load a new game file without building a new popup.
+
+* Added yyskipmoves feature to parser.l to speed up building of gamelist.
+
+* gamelist.c wouldn't compile with a non-ANSI compiler. Fixed.
+
+* Change to yy_text handling in patchlevel 3 still had problems. Can't
+use AC_DECL_YYTEXT in configure.in, because that defines YYTEXT_POINTER
+according to whether the lexer on the current host makes yytext a pointer.
+But most people will be using a parser.c that was generated on another
+host and shipped with the package.
+
+3.2, patchlevel 4 -- Sun Jun 25 19:13:43 PDT 1995 Tim Mann
+
+* Beta test release of xboard only.
+
+* Added FIREWALLS section to man page.
+
+* Changed -icsport to be a string. Now with the -telnet option,
+specifying -icsport "" suppresses the second argument to telnet.
+
+* Added EditTags feature. Removed AboutGame from menu, because EditTags
+subsumes it. EditTags suggested by Jochen Wiedmann and first implemented by
+him in AmyBoard. xboard implementation is my own.
+
+* Fixed some missing or incorrect prototypes.
+
+3.2, patchlevel 3 -- Sat Jun 3 18:57:38 1995 Tim Mann
+
+* Beta test release of xboard only.
+
+* New version of cmail from Evan Welsh, to fix compatibility problems with
+perl 5.0.
+
+* Added game list feature on Load Game, based on code from Jochen
+Wiedmann. Integrated it with cmail.
+
+* Several bug fixes from Jochen Wiedmann, including one to my yy_text
+workaround for the difference in the type of yytext between lex and flex.
+
+* Handle clock pause on FICS.
+
+* Suppress clocks in untimed FICS games (time control 0 0).
+
+* Rebuilt configure script with autoconf 2.3. This fixes a bug in
+configuring for X11R6, where -lSM -lICE would not be added when needed.
+
+* Fixed inconsistent type declarations on IntSigHandler and
+CmailSigHandler. Bug report from Josh Daynard.
+
+* backend.c wouldn't compile with a non-ANSI compiler. Fixed.
+
+3.2, patchlevel 2 -- Tue Feb 7 14:50:30 1995 Tim Mann
+
+* Minor release of both xboard and WinBoard.
+
+* Added recognition of some FICS messages. On the other hand FICS is also
+changing some of its messages to match what xboard already recognizes.
+
+* Temporarily went back to using "promote" command on ICS instead of
+"a7a8=Q", because FICS doesn't implement the latter yet.
+
+* We now avoid using overlapped I/O on pipes in WinBoard, to make Windows
+95 beta 2 happy. This lets WinBoard work with GNU Chess on Windows 95!
+
+* Installed patches from Jochen Wiedmann to coordinate with Amiga XBoard.
+
+* Installed patch to cmail bug in LoadGame from Evan Welsh.
+
+* Bugfix: checkmate and stalemate moves entered with EditGame in ICS mode
+were not being handled correctly. Bug was in GameEnds().
+
+* Implemented EchoOn and EchoOff for xboard, using system("stty echo\n").
+Now passwords won't be echoed when you connect directly to ICS. Also,
+telnet negotiation characters aren't displayed (when possible).
+
+* Implemented more of the telnet protocol. Now connecting to a telnet
+server with "-icsport 23" should work even without giving the -telnet
+option. The telnet is in "old line-by-line mode".
+
+3.2, patchlevel 1 -- Sat Dec 10 13:50:46 1994 Tim Mann
+
+* This patchlevel released for WinBoard only.
+
+* winboard.c: Fixed ConsoleInputThread(). Needed to change CRLF to LF,
+not to CR. This was stopping normal /ics mode from working. Thanks to
+Asher Kobin for the bug report.
+
+* winboard.c: Fixed Raw(), EchoOn(), EchoOff(). Now they take effect
+immediately, not on the next console read after the one in progress.
+
+* winboard.c: Attempted to make WinBoard work with gnuchessx running
+directly on Windows (not remotely via rsh). It now works on NT, but only
+if gnuchess is told not to think on its opponent's time ("easy\n" removed
+from initString). The problem seems to be that GenerateConsoleCtrlEvent
+is not doing anything. On Windows 95 beta 2, we get error messages on
+both reading and writing to gnuchessx; I didn't investigate why.
+
+3.2, patchlevel 0 -- Wed Dec 7 13:23:36 1994 Tim Mann
+
+* Thanks to all the beta testers who gave me feedback: Josef Nelissen,
+Steve Booth, Evan Welsh, Dima Dakhnovsky, Chris Petroff, Peter Jansen,
+Derek Terveer, Michel van der List, Richard Lloyd, Shelly Mistry, and Mike
+Lee. Sorry if I forgot anyone. Thanks to Virendra Kumar Mehta for
+information about DYNIX/ptx.
+
+* Don't exit on keyboard EOF unless we get two in a row.
+
+* WinBoard only: added -localLineEdit switch to allow turning off local
+line editing if you really want to. It is still a bad idea to let the
+echoing be done remotely, however; see below.
+
+* Fixed some configure problems on HP-UX. [Steve Booth]
+
+* Fixed (I hope) configure problem on SunOS 5.3/Solaris 2.3. [Josef Nelissen]
+
+* cmail bugfix from Evan Welsh (cmail 3.4).
+
+3.1, patchlevel 9 -- Fri Dec 2 23:54:56 1994 Tim Mann
+
+* Beta distribution only
+
+* Always do local echo/edit of user typing in ICS mode. Doing the echo
+downstream may seem nicer in some modes, and it can be hard to turn that
+echo off, but the echoed characters can be interleaved with ICS output
+and make it impossible to parse correctly. For xboard this involved only
+a change to recommendations in the man page, as Raw() isn't implemented.
+For WinBoard, removing Raw() made a real difference. Added code in
+WinBoard to change /r/n back into /r on keyboard input, as we get the
+former when Raw() is not called.
+
+* Do not issue ICS "refresh" command after we start to observe a game
+unless we get to the next prompt without seeing a board image. Newest
+version of ICS doesn't require this refresh, but old versions around still
+do.
+
+* cmail bugfix and small code cleanup in LoadGame, from Evan Welsh.
+
+* Added keyboard accelerators N/P for LoadNextGame/LoadPreviousGame. Evan
+Welsh request.
+
+* Using "-" on the command line as a filename for loading (saving) games
+or positions specifies the standard input (standard output). Alain Picard
+suggestion.
+
+* On WinBoard only, a command line option without a leading '-' or '/' is
+now taken as the value of -lgf.
+
+* Changed to not use stdin, stdout, stderr as initializers in backend.c;
+needed for GNU libc compatibility. You also must build parser.c with flex
+(not lex) if you are using GNU libc, to avoid having the same problem
+there.
+
+* Changed WinBoard to avoid using "overlapped" input on the console. It
+now seems to fully work on Windows 95 beta 2.
+
+* Improved comment popups on WinBoard. Now newlines are handled properly,
+and the plain Comment popup window doesn't disappear and reappear when we
+step to a new move with a new comment.
+
+* Fixed bugs in detecting the absence of the time and otim commands.
+
+* Added built-in implementation of rcmd protocol to WinBoard. Windows NT
+does not implement passing signals through rsh, and Windows 95 does not
+have rsh at all.
+
+* Added -remoteUser option.
+
+3.1, patchlevel 8 -- Mon Nov 28 15:26:07 1994 Tim Mann
+
+* Beta distribution only
+
+* Rearranged ChangeLog file into reverse chronological order to be closer
+to GNU standards.
+
+* Integrated new cmail code from Evan Welsh (including cmail RCS rev 3.2).
+Includes a bug fix to TruncateGame.
+
+* Updated ICS address to be chess.lm.com.
+
+* Bug fixes to handling the aftermath of FatalError. Thanks to Chris
+Petroff for the bug report.
+
+* Test for remsh before rsh, other fixes for HP-UX. Thanks to Richard
+Lloyd. I wasn't able to do all the things he suggested, so there may
+still be some rough edges in building on HP-UX. See the FAQ file for hints.
+
+* Bug fix; added missing check for HAVE_SYS_SYSTEMINFO. Thanks to Josef
+Nelissen for testing on Solaris 2.x.
+
+* Updated WinBoard to match xboard. (WinBoard still has a few option
+dialogs that don't exist in xboard.)
+
+* Changed Hint output to a popup.
+
+* ShowThinking output and move output no longer overwrite each other.
+ShowThinking output won't appear if the displayed position is not current.
+ShowThinking output in TwoMachines mode made clearer and documented.
+
+* Implemented --enable-ptys and --disable-ptys arguments to configure.
+
+* Fixed Book and Hint code to work over a pty with echo enabled and tabs
+expanded to spaces. Thanks to Dima Dahknovsky for the bug report.
+
+* Moved Attention calls from all over xboard to one place, inside
+SendToProgram.
+
+* Added bulletproofing to ShowThinkingEvent.
+
+* Added code to handle "refresh N" boards that come in from ICS properly,
+assuming ICS is changed to mark them with a new relation code (-3).
+
+3.1, patchlevel 7 -- Sun Nov 13 22:16:01 PST 1994 -- Tim Mann
+
+* Beta distribution only
+
+* Changed ShowThinking to just show the current best line in the
+DisplayMessage area, instead of dumping everything to stdout.
+
+* Installed new cmail (RCS rev 3.1) and cmail.man (RCS rev 1.10), and
+changes to cmail code in backend.c, from Evan Welsh.
+
+* Miscellaneous minor fixes.
+
+3.1, patchlevel 6 -- Fri Nov 4 12:53:53 PST 1994 -- Tim Mann
+
+* This patchlevel was not actually released to anyone.
+
+* Updated the pty code to be based on GNU Emacs 19.24, and moved it to a
+separate file. It was hard to split out just the pty configuration from
+all the stuff emacs does with its custom configure script and .h files,
+but I did my best.
+
+* Converted from imake to GNU autoconf. This was a serious upheaval.
+
+* Put in code to help trap "error gathering move list" problem reported by
+Michel van der List if it recurs. I couldn't reproduce it.
+
+3.1, patchlevel 5 -- Mon Oct 31 21:12:00 PST 1994 -- Tim Mann
+
+* Beta distribution only.
+
+* We now test for checkmate or stalemate in EditGame mode after every user
+move, and in LoadGame mode whenever we hit the end of a game without
+seeing a PGN end marker. cmail needs an update to deal with this
+correctly; Evan promises one.
+
+* Bugfixes in new move generator. Thanks to Mike Lee for reporting one of
+the bugs.
+
+* Imakefile was omitted from patchlevel 4.
+
+3.1, patchlevel 4 -- Mon Sep 19 18:19:46 PDT 1994 -- Tim Mann
+
+* Beta distribution only.
+
+* The move generator includes a mate tester. Initially this is used only
+by cmail, and even that usage needs further work.
+
+* Wrote a true move generator and used it to replace all the move
+disambiguation and legality checking code in parser.l. The move generator
+is capable of dealing correctly with en passant and castling availability,
+but the rest of the program still does not keep track of this information.
+
+* Bug fix: xboard did not handle "foo has made you an examiner of game 23"
+message. Thus you could not use examine features until the next board
+came in, showing your new relation to the game. Thanks to POOKIEWOOKIE on ICS
+for the bug report.
+
+* Added AutoObserve feature. Thanks to Chris Petroff for the idea.
+
+* Added Book feature to use new gnuchess "bk" command. Mike McGann request.
+
+* Redid code to handle missing "time" command in gnuchess, because latest
+gnuchess no longer sends a response to this command.
+
+* Eliminated need for -DFLEX. Thanks to Michael Shields (Vladimir?) for
+the idea.
+
+* Added missing code to implement MoveNow in TwoMachines mode.
+
+* Added ShowThinking feature. Thanks to Richard Lloyd for the idea.
+
+* Applied patches from Evan Welsh; some fixes and improvements to the
+cmail code.
+
+* Fixed bug in moving from EndOfGame mode to MachineWhite or MachineBlack,
+introduced in previous patchlevel. Also fixed related bug in ending a
+game in ICS mode; was entering EndOfGame mode instead of IcsIdle.
+
+* Added patch to implement internetChessServerLogonScript flag, from Kevin
+O'Connor. Thanks!
+
+3.1, patchlevel 3 -- Wed Sep 7 13:22:07 PDT 1994 -- Tim Mann
+
+* Beta distribution only.
+
+* Merged in new cmail code from Evan Welsh. He added the ability to have
+more than one game per message, needed for official IECG matches. I added
+the ability to resign or offer/accept/decline a draw in a cmail game.
+
+* Bugfix: invalid -tc option caused segmentation fault; DisplayFatalError
+was called too early in initialization. Georges Honore reported this bug.
+
+* Decided to keep EndOfGame mode as an element of the user interface---it
+means that a gnuchess game or loaded game has ended, and the user must
+explicitly select EditGame to edit it, rather than just being able to
+enter more moves freely. But internally there is no longer an invariant
+tying this mode to whether the chess program is running.
+
+* Zippy bugfix: Was saving only the final position in the -sgf file when
+the game ended by something other than resignation or flag. Also fixed
+the longstanding bug that Zippy would think the final board of such a game
+was a new game and restart the chess program.
+
+* Now does a better job of faking castling availability in FEN. We still
+don't really keep track of it, but now at least we don't say that castling
+is still available when the king or rook is not on its home square.
+
+* Bugfix: Initial board of game history for wild games was going through
+too much processing, causing us to forget the game length, which is now
+needed by ParseGameHistory. This was causing problems with resuming
+adjourned wild games.
+
+* Updated ICS host to ics.onenet.net.
+
+* Zippy now accepts challenges where the opponent specified his color.
+
+* Added ZIPPYPASSWORD2 to let operator give commands directly to gnuchess.
+
+* Bitmap directory can include alternative icons now, too.
+
+* Handle "Game * (*) has no examiners" message from ICS.
+
+* Revamped window title and icon name selection.
+
+3.1, patchlevel 2 -- Sun Jun 12 17:16:28 PDT 1994 -- Tim Mann
+
+* "Beta" distribution for Zippy users only.
+
+* Bugfix: common.h was assuming that X11 type Boolean is char, which is
+not always true. This might have caused all sorts of obscure bugs!
+
+* Installed new bitmaps from Elmar Bartel as the default. Many thanks!
+The old bitmaps can be used by changing the "bitmaps" symbolic link before
+compiling xboard, or by using the -bitmapDirectory option at runtime.
+
+* Loading a game that ends with the PGN unfinished symbol ("*") now always
+leaves you in EditGame mode.
+
+* Added documentation of -icscomm to man page. Thanks to Maarten Remkes
+for the linux script.
+
+* ^C now kills gnuchess as well as xboard. Thanks to Dima Dakhnovsky for
+reminding me how to do this.
+
+* Bitmap icon color now indicates player to move. Stuart Cracraft
+suggestion.
+
+* Changed piece bitmap flags to have just one flag, which points to a
+directory full of bitmaps, instead of a flag for each bitmap. Also
+changed bitmap naming convention.
+
+* "Connection closed by ICS" is no longer a FatalError popup. This was
+too annoying in the normal case where the user typed "quit".
+
+* Changed default font to 14 pixels instead of 10 points. This seems to
+make it close to the size I want it to be on more displays.
+
+* Major mode (GNU Chess, etc.) appears in title bar. Stuart Cracraft
+request.
+
+* Bug fix: EditGameEvent, MachineBlackEvent, MachineWhiteEvent, and
+TwoMachinesEvent were calling PauseEvent to get out of pause mode, which
+now has undesired side effects, such as advancing the display to the
+forwardMostMove. It works fine to just set pausing = FALSE instead.
+
+* IcsExamining mode now lets you access ICS edit position commands using
+the same popup menus as xboard's EditPosition mode. Thanks to DAV on ICS
+for inspiring the idea.
+
+* Corrected test for gcc on HP in Imakefile; thanks to Richard Lloyd.
+
+3.1, patchlevel 1 -- Wed Jun 1 16:25:11 PDT 1994 -- Tim Mann
+
+* Added parser.c.lex and parser.c.flex to the distribution.
+
+* Added HP gcc options to Imakefile, from Mats Nylen.
+
+* EndOfGame mode no longer highlights EditGame mode indicator, because the
+modes really do differ. I would like to get rid of EndOfGame mode in the
+future, at least as far as users can see.
+
+* Larger %a in parser.l, needed for RS/6000 users.
+
+* Minor improvements to Mail Move error messages.
+
+* When -debug flag is given to xboard, -v is passed to cmail.
+
+* Old Save Style uses "1. ..." instead of "1..." when black moves after a
+comment; more like xboard 3.0's actual style.
+
+* New version of cmail from Evan Welsh. Looks for UCB Mail in a more
+portable way and has some minor bug fixes.
+
+* Bug fix: Saving a FEN position while in EditPosition mode with black to
+play was showing white to play in the saved position.
+
+3.1, patchlevel 0 -- Fri May 20 16:36:15 PDT 1994 -- Tim Mann
+
+* This is the first general release since 3.0, patchlevel 9. Releases
+since then have been limited-distribution or beta releases.
+
+* Thanks to my version 3.1 beta testers: Dmitry Dakhnovsky, Ed Hanway,
+Richard Lloyd, Mike McGann, Shelly Mistry, Josef Nelissen, Chris Petroff,
+Jack Robertson, Michel van der List, Ky Macpherson, Derek Terveer, and
+Evan Welsh. Sorry if I've forgotten anyone who gave me feedback.
+
+* Updated man page.
+
+* Minor cleanup on menu sensitivity code.
+
+* Integrated another even better version of cmail from Evan Welsh,
+including some code he supplied in xboard itself.
+
+* A few more fixes to cmail support.
+
+* Automatically update clocks after an ICS "moretime" command.
+
+* Handle ICS automatic examine mode (set examine 1) after a game.
+
+3.0, patchlevel 14 -- Tue May 17 13:41:44 PDT 1994 -- Tim Mann
+
+* Beta test release only.
+
+* Don't suppress prompt on first board of game being examined; otherwise
+it looks like nothing happened at all (i.e., like you're lagged).
+
+* Added StopExamining and StopObserving (Chris Petroff suggestion).
+
+* Made Reset do a refresh on ICS. John Chanak's original ICS code for
+xboard tried to do this; I finally decided it was a good idea after all.
+
+* Fixed bugs in handling updates that come in while you are pausing in
+examine mode. This is pretty tricky to do right.
+
+* Made un-Pausing immediately pop you to the current position. This is
+always necessary in examine mode, since the game may have changed under
+you; your remembered moves might no longer be right. So I made it do the
+same in all modes.
+
+* Took Detach Examine mode back out...used Pause mode for this instead!
+
+* Put in a trap for the GNU Chess bug of printing an Illegal Move message
+when its own hint move is illegal.
+
+* Attempted to fix a Zippy bug; bogus "exited unexpectedly" messages after
+it checkmates its opponent. This involved adding an argument to GameEnds
+to say who says it ended (ICS, GNU, etc.) and taking different actions in
+different cases. Unfortunately, this just restored an older Zippy bug, where
+Zippy restarts gnuchess when it gets the board with the final position,
+because GameEnds still puts xboard in EndOfGame mode. Sigh.
+
+* We now capture elapsed time on last move when getting game history.
+(Josef Nelissen bug report)
+
+* Rewrote code to redisplay last file title so it really works.
+
+* Fixed bug in oldSaveStyle.
+
+* Larger %a and %o were needed for lex.
+
+3.0, patchlevel 13 -- Mon May 16 16:26:22 PDT 1994 -- Tim Mann
+
+* Beta test release only.
+
+* FatalError popups stay on the screen now. If the error is really fatal,
+all functions are disabled, and the program exits when you press OK.
+
+* Redisplay last file title when using Load (Next/Previous/Same) Game.
+
+* Zippy understands new match challenge message format on ICS.
+
+* Added Revert command.
+
+* When examining a game on ICS, < > buttons do ICS backward/forward
+commands, unless you set the Detach Examine option. Thanks to Dima
+Dakhnovsky for the idea.
+
+* Fixed various minor problems in cmail mode.
+
+* cmail generates the tags now. New version of cmail from Evan Welsh.
+
+* cmail mode won't let you do MailMove unless the currently displayed
+position is exactly one move past the end of the game you loaded.
+
+* Fixed building of man pages in Imakefile
+
+* Updates to INSTALL file
+
+3.0, patchlevel 12 -- Sat May 7 21:10:03 PDT 1994 -- Tim Mann
+
+* Beta test release only.
+
+* Brought man page up to date.
+
+* Added Shift+R to resign from keyboard.
+
+* Some items on Action menu available in GNU Chess mode now.
+
+* Revamped Action menu.
+
+* Reordered functions in backend.c as a small step toward reorganizing
+this whole mess.
+
+* Generate TimeControl PGN tag.
+
+* Get type of ICS game (e.g., rated blitz) and save in PGN tags.
+
+* Bug fix: Clocks were not redisplayed when entering EditGame mode.
+
+* Bug fix: Clocks were not being redisplayed after loading a game file
+with -td 0, so they could show the wrong color active.
+
+* Bug fix: Chess programs would be killed and match mode would exit
+prematurely when loading a PGN game fragment ending with "*".
+
+* ICS command "sposition" no longer confuses xboard.
+
+* Integrated new version of cmail (with support code in xboard) from Evan
+Welsh.
+
+* Added TruncateGame, MoveNow, RetractMove, and QuietPlay.
+
+* Bug fix: switching between MachineWhite and MachineBlack was not calling
+Attention(). Reported by Dino Dini.
+
+* More improvements to INSTALL and Imakefile.
+
+* Pack moves into 79 character lines in PGN output. We don't generate
+check indications, and we always break the line before the result,
+so this is not quite PGN export format.
+
+* Use FEN tag in PGN.
+
+* Improved finding and counting of game starts in save files.
+
+* Negative position or game numbers in -lpi/-lgi mean to seek to that byte
+offset. Hook for possible future features, not in man page.
+
+* Detect and handle absence of either "time" or "otim" commands in
+gnuchess.
+
+* Don't use "promote" command to ICS anymore.
+
+* Handle switching sides and taking back moves on FICS.
+
+* Handle flip state flag in style 12 board.
+
+* Handle examine mode on ICS.
+
+* Improved error popups for various kinds of illegal moves.
+
+* Suppress unasked-for hints from gnuchess (which it generates in post
+mode).
+
+* Load/save position functions use FEN. Old style also supported.
+
+* Added detailed error messages if loading a bitmap file fails.
+
+* Small board has 2-pixel lines between squares instead of 3-pixel.
+
+* Added OldSaveStyle and AboutGame.
+
+* Renamed ForceMoves to EditGame.
+
+3.0, patchlevel 11 -- Tue Sep 21 15:25:36 PDT 1993 -- Tim Mann
+
+* The following changes were present in xboard 3.0, patchlevel 11, but the
+first group did not make it into WinBoard 3.0 until later. xboard
+3.0.pl11 was a limited-distribution release only, mostly to Zippy users.
+
+* Man page minor fixes.
+
+* Added a missing file close.
+
+* Removed automatic error popdown on Reset, which was destroying some
+error messages before they could be read.
+
+* Fixed char vs. unsigned char warnings on bitmaps.
+
+* Use ICS board style 12. Some improvements to ICS parsing.
+
+* Comment window is now labelled with the move the comment is on, and
+comments don't pop down when you step to the next move.
+
+* Save files now in PGN format.
+
+* Support for loading PGN files. PGN tags pop up when a PGN game file
+is loaded.
+
+* More info in INSTALL and Imakefile about building for Suns (and
+other systems).
+
+* WinBoard 3.0 patchlevel 11 split off from an early version of xboard
+3.0 patchlevel 11, so it does not have all the features of that
+patchlevel. The following changes made it into both xboard and
+WinBoard:
+
+* Made Comment dialog non-modal in WinBoard.
+
+* EndOfGame mode is now more transparent. It looks like ForceMoves
+mode except that there is no chess program running.
+
+* Small bug fixes in clock management. Most noticeably, pausing when
+it is gnuchess's move now works as documented (again).
+
+* Add minimal support for -icscomm option. Not documented yet because
+I haven't sorted out the issues with setting the tty modes on the comm
+port device, or with locking it properly. But it's usable by wizards.
+
+* Don't restart the chess program upon Backward event from EndOfGame mode.
+
+* Suppress extra prompt after ICS sends us a board.
+
+3.0, patchlevel 10 -- Sat Sep 11 18:44:03 PDT 1993 -- Tim Mann
+
+* Beta test release only.
+
+* Zippy now plays chess. zippy.c and zippy.h are still not included
+in the standard distribution, but are available on request.
+
+* Switched to using style 12 on ICS.
+
+* Updated man page, and documented use of XBoard*form.translations to
+add more shortcut keys.
+
+* Added shortcut keys "d" to claim/offer/accept a draw, and "t" to
+call flag. Suggested by venu on ICS.
+
+* More explicit instructions in INSTALL file.
+
+3.0, patchlevel 9 -- Tue Sep 7 14:02:00 PDT 1993 -- Tim Mann
+
+* General release, minor update to 3.0.pl8.
+
+* Loosened checking on whether it's okay to start a move, to satisfy
+ICS ultra-blitz players. Now we don't check whether it's your turn
+until you let go of the piece.
+
+* Parser now recognizes "+-+" as meaning the game ended in a draw.
+
+* Got rid of S_NONE symbol, which seems to conflict with some symbol
+Sun defines.
+
+* Tweaked the man page. Clarified that there is currently no way for
+two people running copies of xboard to play each other without going
+through the Internet Chess Server.
+
+* Fixed a bug in color name conversion. Asking for two different
+colors whose names were the same in the first four characters would
+get you two copies of the first one. Thanks to Volker Zink for the
+bug report.
+
+* Improved confusing Usage() message.
+
+* Added a bunch of Sun information to the Imakefile and INSTALL file.
+Thanks to Ed Hanway, Arik Klingensmith, and others who responded.
+
+* Test for defined(WIN32) instead of !defined(unix).
+
+* Avoid using (void *) type with non-ANSI C compilers. Thanks to
+James Altucher for the bug report.
+
+3.0, patchlevel 8 -- Thu Sep 2 12:23:01 PDT 1993 -- Tim Mann
+
+* Note: Patchlevel 8 was the first non-beta release of xboard 3.0
+
+* Added cmail to distribution. Contributed (and still maintained) by
+Evan Welsh.
+
+* Bug fix: -queen option wasn't initializing menu check. Reported by
+Pat Surry.
+
+3.0, patchlevel 7 -- Thu Aug 26 13:23:24 PDT 1993 -- Tim Mann
+
+* Sent WinBoard 3.0.pl7 to Torre on ICS
+
+* Added parser.h to hold the interface to parser.l
+
+* Upgraded COPYING file and copyright notices to GNU GPL version 2.
+
+3.0, patchlevel 6 -- Tue Aug 24 15:16:13 PDT 1993 -- Tim Mann
+
+* We no longer display intermediate positions or intermediate comments
+while loading a game file with -timeDelay 0 or loading an opening to
+start up a -matchMode game.
+
+* Loading an empty game from an xboard save file now gives a status
+message "No moves in game" instead of an error popup saying "Game not
+found in file."
+
+* Added comment.awk to distribution.
+
+3.0, patchlevel 5 -- Tue Aug 17 16:45:54 PDT 1993 -- Tim Mann
+
+* Bug fix: xboard would crash if it couldn't get all its colors; now
+it switches to monoMode instead. Also, xboard was trying to convert
+color resources even when using a b/w display. Reported by Larry
+Rogers.
+
+* Bug fix: Declared fields of TimeMark as signed so that we get signed
+instead of unsigned arithmetic. SubtractTimeMarks was breaking on
+Alpha AXP (which has 64-bit longs) with old declarations. Reported by
+Michel van der List.
+
+* Bug fixes: Keyboard accelerators now work after EditComment window is
+popped down. Iconize keyboard accelerator now works even if xboard
+was started with -iconic flag and later deiconized.
+
+* Bug fix: The routine that tests whether a move is illegal because it
+would leave you in check was not handling e.p. captures properly.
+Reported by Patrick Surry.
+
+* Bug (?) fix: Was adding time to clocks at time control even when
+loading a game file. Actually it's not entirely clear how time
+controls should be dealt with when some moves are loaded from a file
+or clicked in with ForceMoves. For now ForceMoves mode does add the
+time (because it can be used to change moves during a live game), but
+LoadGame mode does not.
+
+* Updated usage message.
+
+* Previous attempted fix to matchMode had broken TwoMachines mode and
+generally needed more work. Also simplified command line interface to
+matchMode.
+
+3.0, patchlevel 4 -- Thu Aug 5 14:17:18 PDT 1993 -- Tim Mann
+
+* Thanks again to the beta testers listed for 3.0 patchlevel 3, and also
+Desnogues, Steve Cariglia, Niklas Engsner, Mark Silver, and Roger Rowe.
+
+* Reorganized man page, splitting OPTIONS into subsections.
+
+* matchMode was very broken; fixed.
+
+* Changed convention for turning off command line options from --opt
+to -xopt, to be less inconsistent with GNU standards. Also changed
+the long command line options to take True/False arguments like
+resources; seems to make more sense this way.
+
+* Added AlwaysQueen option -- suppresses promotion dialog and always
+promotes to a queen if you move a pawn to the last rank. Has no
+effect on gnuchess (or your ICS opponents!) -- they can still
+underpromote.
+
+* Subtracted an extra fudge term when determining how wide message and
+title widgets should be. This fixes a problem some beta testers had.
+Wish I knew why it's needed.
+
+* Bugfix in parser; symptom was that you couldn't do LoadGame after
+observing a game on ICS.
+
+* Bugfix in Forward; didn't work after game ended while Pause was turned on.
+
+* Removed bogus execute bits on .h files.
+
+* Use REMOTE_SHELL and TELNET_PROGRAM definitions.
+
+* MachineWhite and MachineBlack now work from TwoMachines mode.
+
+* Popping down an error message with the [ok] button was not turning off
+the errorUp flag, so the next move would cause xboard to try to pop it
+down again, resulting in a wild memory reference and sometimes a crash.
+
+3.0, patchlevel 3 -- Tue Aug 3 17:40:27 1993 -- Tim Mann
+
+* Thanks to my beta testers: Patrick Surry, Takuya Kojima, Robert J. Luoma,
+Chris L. Petroff, Richard K. Lloyd, Michel van der List, Craig Metz,
+Antoon Frehe, Simon Clift, Shelly, Eric Peterson, Christopher Mitchell,
+Martin Koch, Ed Hanway, Steve Booth, Udo, Ken Hobday, and Joseph Duhamel.
+
+* Improved error messages for trying to move the wrong color pieces or
+to move when it's not your turn.
+
+* Special code for monoMode on 1-bit displays now understands displays
+where 1=white and 0=black.
+
+* Declare getenv() if <stdlib.h> not included; avoids a compiler warning.
+
+* Documented borderXoffset and borderYoffset.
+
+* Added -titleInWindow option for use with X window managers that
+don't let us set the title in the window banner.
+
+* Fixed error message printing in WinBoard; system error messages no
+longer appear as numeric codes.
+
+* The error message popup is now non-modal; you don't have to press the
+[ok] button before you can do something else. In addition, the popup is
+positioned so that it doesn't cover up the board (too much), and making a
+move or otherwise clicking on the board pops it down. (Not implemented in
+WinBoard.)
+
+* You can now call your opponent's flag in ICS mode by clicking on his
+clock.
+
+* Fixed minor bugs in -flipView option and documented exactly how xboard
+decides which way to flip the view.
+
+3.0, patchlevel 2 -- Fri Jul 30 22:20:23 PDT 1993 -- Tim Mann
+
+* Added Autosave to Options menu. Would be better to have Save
+Options dialog as in WinBoard, but this was quick to do and gives the
+most-needed functionality.
+
+* Changed "Reload Game" on menu to "Reload Same Game".
+
+3.0, patchlevel 1 -- Thu Jul 8 21:22:59 PDT 1993 -- Tim Mann
+
+* Sent a copy of patchlevel 1 to Patrick Surry to beta-test.
+
+* Added -cmail option that sets appData.cmailMode. Currently a no-op.
+In the future this may set special modes for use by the cmail script
+for playing chess by email.
+
+* Added LoadNextGame, LoadPreviousGame, and ReloadGame to File menu.
+ReloadGame suggested by Patrick Surry.
+
+* Added -flipView command-line option. Suggested by Patrick Surry.
+
+* Fixed bugs in parser.l: (1) Pattern for "# xboard game file ..."
+needed to match to end of line. (2) Start of a new file was not matching
+the ^ start-of-line character. The fix for this is a kludge.
+
+* Made game counting code in LoadGame more robust, and made LoadGame
+able to detect the end of a saved partial game (by noticing the start
+of the next game) in game files created by XBoard itself. We don't
+try to find the start of the next game that way in other kinds of game
+files, because the only way I can think of to do that is to look for
+another move #1, and that technique gets too many false hits.
+
+* Fixed recently introduced bug in LoadGame when game starts with a
+position diagram.
+
+3.0, patchlevel 0 -- Fri Jun 25 14:17:17 PDT 1993 -- Tim Mann
+
+* Changes in this patchlevel were too numerous to list. Larger ones are
+listed below.
+
+* Added a popup dialog to enter and edit comments. Inspired by some
+code from Patrick Surry. Changed the normal read-only comment popup
+to the same style.
+
+* Added ICS init script feature from Karl Schwamb.
+
+* Added some ESIX fixes and OMIT_SOCKETS ifdef option, from Kayvan Sylvan.
+
+* Revamped code to allow use of flex instead of lex on parser.l.
+Using flex requires adding -DFLEX to defines in Imakefile.
+
+* Source code is split into front end (xboard.c), which knows about X
+and Unix, and back end (backend.c), which knows about chess, gnuchess,
+and the ICS. There is also a front end for Windows NT.
+
+* Boolean command line options now use "-foo" to turn on and "--foo"
+to turn off instead of "-foo true" and "-foo false". [Later -xfoo;
+see above.]
+
+* Added menu commands to control autoflag, bell, and coords options.
+
+* User interface has a new look: (1) Menu bar instead of array of
+buttons. A few very commonly used features have small buttons in
+addition to being on the menus. (2) Large font for clock. (3) Pop-up
+dialogs for errors.
+
--- /dev/null
+log off
+hash=48M
+hashp=8M
+learn=7
+ponder on
+swindle on
+resign 0
+book random 1
+book width 5
+exit
--- /dev/null
+
+
+
+
+
+
+
+ Crafty Command Documentation (version 18)
+ -----------------------------------------------
+Crafty is nothing more than a long-time hobby of mine, dat-
+ing back to Blitz and later Cray Blitz. People ask me how I
+keep doing this, and that is the one question that generally
+leaves me at a loss for words.
+
+Perhaps the most common question I'm asked is "is this ver-
+sion of Crafty some dumbed-down version of what you play on
+ICC or what you use at a computer chess event?" The answer
+is a resounding *NO*. The current version is *exactly* what
+is running on ICC under this version number. Note that a
+new version can, on occasion, introduce weaknesses or out-
+right bugs that were not present in previous "gold" ver-
+sions. As a result, you should be careful to back up your
+"favorite" before trying the latest and greatest. If you
+aren't satisfied with the new version, you can then go back
+to what you believe is a better version.
+
+If you are looking for the strongest playing computer chess
+program available, you should likely look to Fritz, Rebel,
+Tiger, and the other commercial entries. There you will
+find strong opponents with polished interfaces that have
+been tested in a systematic and careful way. If you are
+looking for a program that plays good chess, has a reason-
+able set of features for you to use, is available in source
+form, and one where the author welcomes feedback, code or
+suggestions, then you are at the right place. I welcome
+comments and suggestions, and also feedback from ideas you
+try yourself that seem to work.
+
+Crafty is a state-of-the-art computer chess program, and
+uses all of the search algorithms you have probably read
+about, negascout search, killer/history move ordering, SEE
+(Static Exchange Evaluation) quiescence move ordering and
+pruning, hash (transposition/refutation) tables as well as
+evaluation caches, selective extensions, recursive null-move
+search, and a host of other features that have been used and
+are still being used in most computer chess programs. If
+it's not in Crafty, either it is on the "to do" list, or it
+has been tried, found wanting, and discarded.
+
+Chess Knowledge is growing, and suggestions (or even better,
+real code) are welcome. This is the best place to con-
+tribute your ideas, because knowledge can be used to sup-
+plant search and make it play better. The evaluation is
+probably the easiest place to start studying Crafty because
+of the comments and simplicity of using bitmaps, *once* you
+get "into" them.
+
+My purpose for doing this is an exercise in computer chess
+efficiency. I can't begin to count the number of people I
+know that started from scratch to write a chess program.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Even larger is the group that started from scratch, and gave
+up before finishing, because of the basic size of the pro-
+ject.
+
+Crafty offers everyone a very clean starting point, if you
+are fascinated by the bitmap chess board implementation (as
+I am). The search and quiescence code is reasonably
+straightforward, as is the evaluation,
+
+It offers a great starting point, so that if you are inter-
+ested in trying a new search extension, you can be testing
+tomorrow, rather than next year, because you start with a
+fully functional chess engine that is not a "toy" applica-
+tion, but is a functional and "dangerous" chess player. It
+offers a rapid start, although you can certainly replace it
+piece by piece until it is "yours" if you want. It also
+offers a fairly complete set of commands and an interface
+for a GUI as well as support for chess server play, so that
+testing and debugging your new ideas is greatly simplified.
+
+If you'd like more information, please check out the read.me
+document and the crafty.FAQ that are distributed with
+Crafty. These contain recent news and specific instructions
+for commonly asked questions, like "where can I obtain
+tablebase files and how do I use them?"
+ How to play a game.
+ -------------------
+When you execute Crafty, you will immediately be greeted by
+the prompt string "white(1): " and Crafty will wait for com-
+mands. This prompt means it is white on move, and we are at
+move #1 for white. You can first use any of the commands
+from the alphabetic command listing below to tailor the game
+to your liking (time control, hash table size, book random-
+ness, etc.) and then you have two choices. If you want to
+play white, just enter your move, and Crafty will take it
+from there and make a move in response. You will then be
+prompted by "white(2):" and it is your move again. If you
+would prefer to play black, just enter either "move" or "go"
+at the prompt and crafty will move for that side rather than
+accepting a move from you. After it makes its move for
+white, you will then see the prompt "black(1): " indicating
+it is now time for blacks first move. You can enter a move,
+or you can once again enter "move" or "go" and Crafty will
+again move for the current side, change sides, and prompt
+you for what to do next.
+
+If you find yourself continually using a set of commands to
+configure crafty to play as you want, you can put these com-
+mands in a startup file called .craftyrc (Unix) or crafty.rc
+(DOS/Windows). The format for this file is just like you
+would type the commands at the keyboard, with the require-
+ment that the last line of the file must be "exit" on a line
+by itself. Using this, each time you start Crafty, it will
+
+
+
+
+
+
+
+
+
+
+
+
+
+first execute the commands from this file before it prompts
+you for input.
+
+While Crafty is running, you can control what it displays,
+but here's a couple of samples to explain what it is saying
+and why:
+
+ depth time score variation (1)
+ book moves {d4, c3, Nc3, d3, b3, c4, g3, b4, Be2, Bb5}
+ book 0.0s 70% d4
+
+White(3): d4
+ time used: 0.01
+
+This is the normal output for those cases where Crafty is in
+book. The book moves line gives the set of book moves that
+made the first selection cut (see the book selection expla-
+nation given later), followed by the move actually played,
+in this case d4.
+
+If Crafty is out of book, then the output looks somewhat
+different as given below:
+
+ depth time score variation (1)
+ 4-> 0.81 2.09 6. dxe4 Bxe4 7. Rad8 Qf2 8. Qb5
+ 5 1.37 2.41 6. dxe4 Bxe4 7. Ne5 Qf4 8. Bxe4+
+Qxe4 9. f5
+ 5-> 1.88 2.41 6. dxe4 Bxe4 7. Ne5 Qf4 8. Bxe4+
+Qxe4 9. f5
+ 6 7.38 -- 6. dxe4
+ 6 11.90 1.97 6. dxe4 Bxe4 7. Rab8 Qf2 8. Qc7
+Nc5 9. Qe5
+ 6 12.92 ++ 6. Ne5
+ 6 13.71 2.23 6. Ne5 Qg2 7. Ng6 h5 8. Nh4 Qg4
+ 6-> 15.59 2.23 6. Ne5 Qg2 7. Ng6 h5 8. Nh4 Qg4
+ time: 15.60 cpu:99% mat:1 n:246565 nps:15927
+ ext-> checks:4706 recaps:1336 pawns:0 1rep:301
+ nodes full:45951 quiescence:200614 evals:104657
+ endgame tablebase-> probes done: 0 successful: 0
+
+Let's take this stuff one line at a time. Lines that have
+something like 4-> in the depth column are printed when that
+iteration (depth) is completely finished. The time and
+score columns should be obvious as to their meaning as is
+the PV, the sequence of moves that led to this score. One
+note about the "score" column. As of version 18, Crafty
+displays the score with + values good for white, - values
+good for black, no matter which side it is playing in the
+game. All output now follows this convention, from playing,
+to analysis mode, to annotating your games, to whisper-
+ing/kibitzing on the chess servers, and so forth. This is
+unlike other engines, but once you get used to it, it is
+much less confusing when you remember that negative scores
+
+
+
+
+
+
+
+
+
+
+
+
+
+are good for black and bad for white, and vice-versa.
+
+the line that has -- in the score column means that when we
+started depth 6, dxe4 turned out to be worse than we thought
+(notice score dropped from 2.411 last search to 1.972 for
+this move this search.) To resolve this, Crafty lowers the
+lower search bound (alpha) and re-searches the move to find
+the score. The line with ++ means that this move (Ne5) is
+better than the best move so far, so Crafty raises the upper
+search bound (beta) and re-searches this move to find the
+new score.
+
+the first line of statistics gives the total time taken for
+this search, the cpu percentage which should stay at 98-100%
+unless your machine is heavily loaded or unless Crafty is in
+an endgame that is having lots of contact with endgame
+databases. If this drops below 98%, it means that Crafty is
+not getting full CPU usage and will be playing weaker than
+normal. The mat:1 is simply the true material score, since
+Crafty's positional scores are often larger than a pawn.
+
+ Alphabetic Listing of Commands
+ ------------------------------
+
+1. alarm on|off This command is used to control Crafty's
+"beep" after it makes a move. Turning this off will make
+Crafty "quiet" when it plays, but also makes it easy to miss
+a move if you are using crafty to play in a tournament.
+This is primarily designed to make Crafty tolerable during
+late night matches.
+
+2. analyze This command puts crafty into analyze mode. In
+this mode, Crafty starts computing for whichever side is on
+move, and it continues computing and showing its analysis
+until a move is entered. This move is made, Crafty changes
+sides, and starts thinking and printing analysis all over,
+but for the other side now.
+
+This command is useful to play through a game, because you
+get instant feedback when you try a move. If you want to
+try a different move from the one you just entered, use the
+"back" command to back up one move, or use "back <n>" to
+back up <n> moves. Note that one move is a single move for
+the last player, not a move for both sides. To unmake the
+most recent 2 moves (one for black, one for white) use "back
+2".
+
+3. annotate|annotateh <filename> <colors|name> <moves>
+<margin> <time> This command is used to annotate (make com-
+ments in) a game that has already been played.
+
+The annotate command produces a file with the .can extension
+added to the original name. This file will contain pure
+
+
+
+
+
+
+
+
+
+
+
+
+
+ascii information from the annotation pass. "annotateh"
+produces an HTML file instead (with the .html extension).
+This includes the normal output, plus a nice bitmapped
+graphical board display for every position where crafty had
+'something to say'.
+
+<filename> is the name of the file that has the game moves
+stored in it. This should be a PGN-compatible file,
+although Crafty can read nearly any file with chess moves
+and convert it to pgn using the "read" and "savegame" com-
+mands to perform the conversion.
+
+<colors|name> indicates which side Crafty will annotate.
+The valid choices are w, b, and wb/bw for white only, black
+only, and both, respectively. Crafty will search and pro-
+duce results for the indicated color only, making moves for
+the other side silently as they are read in.
+
+Alternatively, you can specify the player's name (useful if
+you want to annotate several of your own games in one large
+pgn file, for example, and you alternated colors so that you
+can't pick the right one easily). Crafty will then figure
+out which side to annotate for in each game. Note that the
+name is case-sensitive, but that you only have to enter a
+string that is unique in the name field. IE if one name is
+"Anatoly Karpov" and the other is "unknown" then specifying
+Karpov as the name would be sufficient. If the same
+'string' appears in both names, Crafty will complain.
+
+<moves> indicates the moves that should be annotated. If
+this is a single integer, annotation starts at this move
+number (for the color given above) and proceeds for the rest
+of the game. If a range is given, as (20-33), then only
+moves 20-33 inclusive are annotated. To annotate the com-
+plete game, you can use 1-999.
+
+<margin> gives a score "window" that controls whether Crafty
+will produce comments (see below). The larger this number
+this number, the fewer annotations Crafty will produce. A
+negative number will result in an annotation for every move
+selected.
+
+<time> indicates the time limit for each search. Since each
+move selected requires two searches, you can take the number
+of moves, double this number and multiply by <time> to
+determine how long the annotation process will take. This
+time is in seconds.
+
+How it works. Suppose you use the command "annotate game1 w
+1-999 1.000 30" This asks Crafty to read the file "game1",
+and annotate the white moves for the entire game. The mar-
+gin is 1 pawn and the search time limit is 30 seconds. The
+output for the annotate command is found in <filename>.can,
+
+
+
+
+
+
+
+
+
+
+
+
+
+in this case this is game1.can.
+
+Crafty first searches the move actually played in the game
+to determine the score for it. Crafty then searches the
+same position, but tries all legal moves. If the score for
+the best move found in this search is greater than the score
+for the move actually played plus the margin, then a comment
+is added to the output file. This output file is quite
+short, with all the game moves (plus any PGN tags in the
+original, for identification purposes) plus the brief com-
+ments. An annotation looks like this:
+
+{real_value (depth:best_value PV moves)}
+
+real_value is the score for the move actually played. depth
+is the depth Crafty searched to produce the best_value and
+PV for what it thinks is the best sequence of moves for both
+sides. If you set <margin> to 1.000, you are asking Crafty
+to only annotate moves that either lost a pawn or more, or
+moves that failed to win a pawn or more. If you set <mar-
+gin> to .300, you are asking for annotations for any move
+that makes the score drop about 1/3 of a pawn below the
+value for the best move Crafty found.
+
+If you have other moves you would like to see analyzed dur-
+ing this annotate process, at the point where the move can
+be played, insert it into the PGN file as an analysis com-
+ment, surrounded by () or {} characters. Crafty will pro-
+duce analysis for this move as well. If more than one move
+appears inside a single set of delimiters, only the first
+will be analyzed. To force Crafty to analyze more than one
+move, enter them like this: (move1) (move2) as though they
+were two separate comments.
+
+4. ANSI on|off This command is used to control whether or
+not Crafty attempts to display its move in reverse video or
+not. For PC's, Linux, and most Unix boxes, this works fine.
+Should you find yourself playing crafty via a dumb terminal,
+this might hose the terminal and interfere with your ability
+to see or input moves. If moves are not displayed in
+reverse video, it's probably wise to turn this off to avoid
+hanging the terminal you are using.
+
+5. black|white This command simply toggles the side on
+move. if it is white to move, and you enter white, nothing
+happens. If it is white to move and you enter black, then
+it becomes blacks turn to move immediately from the same
+position. Used only infrequently.
+
+6. book (see the book explanation near the end of this doc-
+ument for a full explanation of this command and its many
+options.) Note that there are special commands available
+(*only* on the command line, *not* in the
+
+
+
+
+
+
+
+
+
+
+
+
+
+crafty.rc/.craftyrc files) to direct crafty to specific
+directories for the book files (bookpath=/a/b/c), the table-
+base files (tbpath=/i/j/k) and the log files (log-
+path=/x/y/z). Note that these commands can *only* be used
+on the command line, because they must be executed before
+the engine is initialized. Putting them in the
+crafty.rc/.craftyrc file will produce error messages without
+affecting how the files are opened.
+
+If you need to specify multiple directories (tbpath only)
+you may do so by using "tbpath=path1:path2:path3:etc" or
+else use the more Unix- like
+"tbpath=(path1:path2:path3:etc)" instead. The paths are
+separated by ":" (colon) characters and everything is case-
+sensitive as usual. For dos/windows users, the separator
+can be a semi-color (;) or a comma(,) to avoid the drive
+designation ambiguity.
+
+7. cache=N This command is used to alter the cache size
+used for endgame database probes. N can be a simple inte-
+ger, representing the number of bytes to use or it can be
+specified as nK or nM representing n * 1024 bytes or n *
+1024 * 1024 bytes. This should be in multiples of the
+database "chunk" size, which might vary. Using the nM form
+guarantees that you will have a reasonable number.
+
+8. clock <ctime> <otime> This command is primarily
+intended for use when Crafty is playing in a tournament,
+such as the WMCCC or WCCC events. If the operator is some-
+what slow in entering moves, or forgets to stop the clock
+after making a move for Crafty, the chess clock for the game
+will drift from the values that Crafty maintains internally.
+<ctime> is the time (in minutes or hh:mm format) crafty has
+left until the next time control, and <otime> is the oppo-
+nent's remaining clock time. This command can be used at
+any time, but will only affect the time per move *after*
+crafty makes the current move and starts to think about what
+the opponent might do next.
+
+9. computer This command usually comes from xboard/win-
+board, but can be used at any time to tell Crafty it is
+playing a computer. This will prevent some things from hap-
+pening, such as a draw score that varies, as well as adjust-
+ing the book selection code to be more selective in what it
+plays.
+
+10. display this command is used to display the game
+board. This board is displayed using the ICS style #1 type
+of ASCII display, with white always at the bottom of the
+screen, black at the top. Very unusable to play a game
+with, but good to verify a position after it has been set
+up.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This command is also used to display the various
+piece/square tables, by typing "display <piece>" where
+<piece> is replaced by pawn, knight, bishop, rook, queen or
+king. The board is oriented in the same way as the display
+board with a one-to-one correspondence between the squares.
+Perhaps useful for curiosity, but not for anything else.
+These values can not be modified by the user.
+
+The final version of this command is used to control what
+kind of output you will see when crafty runs. Currently the
+following options are available.
+
+ display time: this will make Crafty display the
+ amount of time each side takes after making a move.
+
+ display changes: this will make Crafty display the
+ PV each time it changes during the search, including
+ when a move fails high or becomes a new best move.
+
+ display variation: this will make Crafty display the
+ PV at the end of each iteration, but it will only show
+ the best PV for the entire iteration, not all of the
+ changes.
+
+ display stats: this enables basic search statistics
+ output including time, nodes and so forth.
+
+ display extstats: this enables extended search stats
+ including the hashing statistics, search extension
+ statistics and so forth.
+
+ display movenum: causes all PV output to have move num-
+ bers embedded in them to make the PV possibly easier to
+ read. This causes the PV to look like this: 12. ...
+ Nxe4 13. Bxe4 h6 rather than simply Nxe4 Bxe4 h6. This
+ is very helpful when playing on a server and whispering
+ or kibitzing analysis. It will also be useful when
+ crafty is run from within a database program as the
+ move numbers will sync up with the actual game.
+
+ display moves: will display each root move as it is
+ searched, along with updating the search time at the
+ bottom of the screen, so you can see what move is cur-
+ rently being analyzed.
+
+ display general: will display general information mes-
+ sages whenever Crafty wants to tell you something (ie
+ "clearing hash tables" or other such things like "Mate
+ in n moves."
+
+If you put a "no" in front of any of these options, that
+will disable that particular type of output.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+11. draw offers Crafty a draw. It generally will look at
+the value returned by the last search, and compare it with
+the value returned by an internal function DrawScore(). If
+the search value is not above this result, then Crafty will
+accept the draw. If the search value is above the theoreti-
+cal value for a draw, Crafty will decline the draw. Note
+that crafty will offer draws based on internal analysis.
+When it offers a draw, you can respond with "draw" although
+the game does not really end until you exit Crafty.
+
+12. drawscore N sets the draw score (or contempt factor) to
+N. If you want crafty to avoid draws, set this number to
+something that is negative. IE -50 says that a repetition
+(draw) is the same as being 1/2 pawn down. Setting it to
++100 will make it try very hard to draw because that looks
+like it is winning a pawn when it does so. Note that this
+is dangerous (either way) as a -50 in a king and pawn ending
+is very likely dead lost... and a repetition is better.
+
+13. echo <text> This command is normally used inside a
+command file that you are going to use to "feed" crafty some
+positions for analysis or whatever. Since crafty depends on
+the operating system to echo commands as they are typed,
+commands read in from a file are "invisible." This gives
+you the ability to insert commands into such a file so that
+crafty displays a message on the screen to give you an idea
+of where it is in processing the file.
+
+14. edit This command has been "cloned" from GnuChess to
+provide an interface with Xboard. After entering the "edit"
+command, you are in "edit.white" mode, where any
+piece/square combination you enter will add the indicated
+white piece on the given square. Piece/squares are entered
+as "qa3", or "bc4" for example. This puts a white queen on
+a3 and a white bishop on c4. Once all white pieces are
+entered, typing a "c" changes to "edit.black" mode where
+piece/square combinations now place black pieces. Typing a
+"." character exits edit mode. To clear the board ini-
+tially, you use the "#" character.
+
+Here's a sample to set up the original starting position,
+after white has played 1. e4, but no other moves have been
+played.
+
+ edit
+ #
+ ra1 nb1 bc1 qd1 ke1 bf1 ng1 rh1
+ pa2 pb2 pc2 pd2 pe4 pf2 pg2 ph2
+ c
+ ra8 nb8 bc8 qd8 ke8 bf8 ng8 rh8
+ pa7 pb7 pc7 pd7 pe7 pf7 pg7 ph7
+ .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Note that input is free form, so piece/squares can be
+entered one per line or all on one line. Ditto for the #,
+c, and . special characters. Note also that there is no way
+to enter castling status here. It is far better to use the
+"setboard" command which uses a FEN-like syntax and allows
+you to set both castling and enpassant status.
+
+15. egtb This command enables the endgame databases.
+Crafty will use the "tbpath" directory (if provided) to
+locate and register all of the databases you have down-
+loaded. It will report the largest class it found, as in "5
+piece tablebase files found" if you downloaded at least one
+5-piece file. If you use this command to enable databases,
+you should also consider using the "cache" command to spec-
+ify the egtb cache size.
+
+16. end|quit These commands are used to terminate crafty.
+Note that you can resume a game later without having to
+replay the moves, by starting Crafty using the "crafty c"
+command. It will immediately read in the moves for the last
+game, although you will have to set the time controls and
+clock time remaining yourself.
+
+17. evaluation option <value> This command is used to mod-
+ify the evaluation scores.
+
+The option "asymmetry" is used to make crafty evaluate king
+safety differently for each side. "evaluation asymmetry 25"
+will increase the king safety scores for the opponent only,
+meaning it will pay less attention to its own king safety
+than to that of its opponent. This will make it play more
+aggressively. "evaluation asymmetry -25" will reduce the
+king safety scores for for the opponent by 25%, making it
+care more about its own king safety than that of its oppo-
+nent. This will make it play more defensively.
+
+The "bscale" option will adjust the scores for blocked
+pawns. The default value is 100. Increasing this will tend
+to make Crafty dislike blocked pawn positions more, which
+will lead to more open positions. Note that this only
+affects moves _after_ the opening book has been followed,
+which means that the position might be blocked before the
+evaluation term has a chance to affect the game.
+
+The "kscale" option will adjust all king safety scores based
+on the 'value' entered. For example, "evaluation kscale 50"
+will reduce all king safety scores to 50% of their normal
+value. "evaluation kscale 133" will increase all king
+safety scores to 133% of their normal values.
+
+The option "tropism" is used to scale king tropism scores.
+This will attract pieces toward kings. A value of 100 means
+no change. other values are treated as a percentage (like
+
+
+
+
+
+
+
+
+
+
+
+
+
+scale) to increase (> 100) or decrease (<100) the king
+tropism scores.
+
+When you use this command, you will see something like this:
+
+modified king-safety values:
+white: 0 4 16 26 39 45 58 77 87 90 93 96 100 103 106 109
+ 112 116 119 122 125 128 128 128 128 128 128 128 128 128 128 128
+
+black: 0 5 20 32 48 56 72 96 108 112 116 120 124 128 132 136
+ 140 144 148 152 156 160 160 160 160 160 160 160 160 160 160 160
+
+Those values represent the king-safety evaluation as the
+king gets more and more exposed. This is always based on
+the fast that "crafty" will be the side on move when the
+search starts. In the above, it was white's move when this
+was typed, meaning that it appears that crafty will be play-
+ing black. Notice that white's king safety numbers are
+scaled by 20% to make it slightly more cautious about its
+own king. If you type "go" in this position, the scores get
+reversed as Crafty's scores are always left alone (with the
+asymmetry option) and the opponent's scores are scaled down
+as indicated.
+
+You will see similar numbers (but not black and white sets)
+that represent the actual scores produced for king tropism.
+Note that pieces interact to choose which element of this
+vector is used, but in general, the more pieces are close to
+the king, the larger the element from this array.
+
+The "pscale" option is used to scale normal pawn structure
+scoring in the same way as the other scaling options. 100
+is the default. Values less than 100 reduce this term, val-
+ues over 100 inflate it.
+
+The "ppscale" option is used to scale some passed pawn scor-
+ing in the same way as the other scaling options. 100 is
+the default. Values less than 100 reduce this term, values
+over 100 inflate it. This mainly effects outside passed
+pawns/protected passed pawns. The normal pawn scoring com-
+putes the value of a passed pawn. This term is then used to
+scale those terms that modify this value further, such as
+two connected passed pawns on the 6th, or a passed pawn with
+the king supporting it in an endgame.
+
+18. extensions type value
+
+This command is used to control the extension depth for the
+various extensions done in Crafty's search. The extensions
+are set as decimel numbers that represent plies (or frac-
+tions of plies) to extend for each particular reason. Most
+default to 1.0 and .75, but any value can be used. Note
+that value > 1.0 are _very_ dangerous as they can cause the
+
+
+
+
+
+
+
+
+
+
+
+
+
+search to become non-terminating (crafty will stop when it
+runs out of time for the move, but it might not be able to
+get anything useful from such a search).
+
+These extensions are presently limited to a maximum of one
+ply of extensions at any point in the tree. IE no matter
+what you set these values to, they can not exceed one ply at
+present.
+
+incheck This is the amount to extend when the side on move
+makes a move that leaves the opponent in check. Note that
+Crafty extends on the ply where the check is played, not on
+the next ply where the opposite side is in check.
+
+onerep This is the one-reply-to-check extensions, and is
+done at the point where one side is in check and has exactly
+one legal move to escape from the check.
+
+pushpp This is the extension used for certain passed pawn
+pushes in the endgame.
+
+recapture This is the recapture extension, and is applied
+when the current move recaptures an equal-valued piece that
+made a capture at the previous ply. IE BxN, PxB. Note that
+this can only be applied once for every two plies so that
+BxN, BxB, NxB, NxN won't look like three recaptures.
+
+mate This is the mate threat extensions and is applied when
+a null move search returns -MATED, which means that doing
+nothing gets the side on move mated. The opponent must have
+some sort of serious mate threat in such a position.
+
+19. flag on|off This command is used to force crafty to
+end a game where the opponent runs out of time with win-
+board/xboard (on) or to ignore this (off) if desired.
+
+20. force [move] This command is used to force Crafty to
+play a move that is different from the one chosen and played
+by the tree search. If [move] is given, and it is a legal
+move, Crafty will retract its last move and make this move
+instead. It does not change the side on move, but does
+change the position of course. If [move] is not given,
+Crafty will prompt you for a move to make.
+
+21. help This command displays multiple pages of one-line
+help, one command per line. If a line ends with [help],
+then you can use help followed by the specific command to
+get detailed help.
+
+22. history This command displays the history in a verti-
+cal column with one move for white and one per black per
+line. There are other ways to display the current game
+moves and also to save them in files that are explained
+
+
+
+
+
+
+
+
+
+
+
+
+
+later.
+
+23. hash=x and hashp=x These commands are used to adjust
+the size of the hash tables in Crafty. hash modifies the
+size of the transposition/refutation table, while hashp mod-
+ifies the size of the pawn structure/king safety hash table.
+The sizes may be entered as one of the following two types
+of values: nnnK where nnn is an integer indicating how many
+Kbytes Crafty should use for this hash table; nnnM where nnn
+is an integer indicating how many Mbytes Crafty should use.
+
+The transposition/Refutation table is the most critical of
+the two, because it directly affects search efficiency, par-
+ticularly in the endgame. For this reason this should be
+maximized. The most effective size for this hash table is
+3/4 of your available memory. If you don't know how to fig-
+ure this out, but know that you have 16 megs for example,
+they you can say hash=16M and crafty will round that down to
+12M, which is 3/4 of a power of two size. If you study the
+sizes that are possible, you will find 3M, 6M, 12M, 24M,
+48M, and so forth. Anything up to, but not including, the
+next size will be rounded down to the next lower size.
+hashp should be set to approximately 1/2 of what is left.
+For example, the P6 Crafty runs on when playing on ICC often
+uses hash=48M and hashp=8M. The only thing to watch for is
+that if you make this too large, particularly under windows,
+performance will suffer badly because of paging I/O over-
+head. When Crafty is searching in a normal (non-book, non-
+endgame database) position, the disk light should *not* be
+on, indicating lots of I/O.
+
+There is no danger in making this table too large, although
+you have to watch out because if Crafty barely fits in mem-
+ory, doing something else on the machine can cause Crafty to
+be swapped out completely or partially, depending on the
+operating system you are using. If you are going to use the
+machine for anything else while Crafty is running, it is
+better to "pretend" that the machine only has 1/2 of the
+memory it actually does when computing the size of the hash
+tables you want to use.
+
+24. import <filename> [clear] This command is used to
+import any sort of learning data that Crafty supports, which
+currently includes book learning data and position learning
+data. This command reads the appropriate <filename> and
+imports that learned data, just as though Crafty had learned
+it by playing the games. The [clear] option, if specified,
+caused all old learned results to be cleared before the
+import operation, otherwise the imported data is simply
+added to what is already present.
+
+25. input <filename> This command is used to redirect the
+console input I/O stream from the keyboard to a file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Crafty will then read commands from this file, rather than
+from the keyboard, and execute them just as though they were
+typed in. Such a command file *must* be terminated by an
+"exit" command (no quotes) as the last command in the file.
+This reverts the input stream back to the keyboard, and
+prompts you for another command or move.
+
+This command might be used to configure crafty for a spe-
+cific time control, by putting the appropriate time control
+commands in the file, or to customize the hash table sizes
+as needed.
+
+26. info This command is used to display information about
+Crafty and the current game. Such things as the time con-
+trol, the time left on the clocks and other information is
+shown.
+
+27. learn n controls the learning facilities in crafty.
+Currently this is a 3-bit boolean switch, bit 1 (001) con-
+trols book learning, bit 2 (010) controls position learning,
+and bit 3 (100) controls result learning. learn=0 disables
+all learning, learn=1 enables book learning only, learn=2
+enables position learning only, and learn=4 enables result
+learning. Add the values together to turn on more than one
+type of learning (default=7 to enable everything).
+
+28. level <m> <t> <inc> This command was taken directly
+from GnuChess so that the Xboard/WinBoard interface would
+interface with Crafty. There are other better ways to set
+the time, but this one is well-known. The three parameters
+are <m> (number of moves in the game) <t> initial time on
+the clock. After <m> moves are made, this amount of time is
+added to the clock again. <inc> is the Fischer-Clock incre-
+ment that is added back to each clock after a move is made.
+It may be zero for a non-increment game.
+
+Examples:
+
+level 0 5 0 (ICS 5 0 game)
+level 0 5 3 (ICS 5 3 game)
+level 0 15 30 (ICS 15 30 game)
+
+29. list GM|IM|C|AK|S +name [+name ...] -name [-name ...]
+This command is used to maintain the internal "lists" Crafty
+uses to auto-tune itself when playing on a chess server.
+There are three lists, GM, IM and C. If Crafty's opponent
+is in any of these lists, Crafty adjusts internal controls
+that affect how/when it resigns or offers draws, and how
+randomly it will choose moves from the opening book. For
+example, Crafty resigns much sooner against a GM, because it
+assumes he knows how to win a rook-up ending, regardless of
+how much time is left. By the same token, when playing
+against computers, Crafty will always assume that a draw is
+
+
+
+
+
+
+
+
+
+
+
+
+
+0.000, so that it doesn't wreck its position trying to avoid
+repeating a position.
+
+The AK list will automatically kibitz scores/PV's if the
+opponent is in this list. The S list will turn on special
+scoring for opponents in this list. The only current member
+is "mercilous".
+
+The syntax +name1 +name2 simply adds these players to the
+specified list. To remove a name, use -name1 -name2. You
+can use one command per name to remove or add, or you can
+use one command to add and remove multiple names. Note that
+all names must be entered in lowercase characters, using any
+uppercase characters will break the matching algorithm.
+
+30. log off|on|<n> This command is used to disable log-
+ging. The default is log on, which causes crafty to produce
+a new log.nnn file for each game played. If you are running
+Crafty on a server, you might use log off, which disables
+creating these files as well as the game.nnn files used to
+restart a game after you exit crafty and come back later.
+If you use the form "log n" crafty will simply display the
+last n lines of the log on the screen. If you use "log n
+file" crafty will copy the last n lines of the log to "file"
+which could be your hard drive, or a floppy.
+
+Note that if you run with log off, you will be unable to
+find out what Crafty was thinking about since there is no
+other record of the game. You will always see a game.001
+because as crafty plays a game, this contains all the real
+moves played so far so that you can back up if needed. you
+will also see a log.001 file, but it will be empty.
+
+31. ls <filename> will list all the files that match the
+filename wildcard (the wildcards depend on the system you
+are using, but generally *, ? will work fine. you can also
+supply path information in the filename if you want to list
+the contents of a different directory. Just use the same
+syntax you would if you were using "ls" under unix or "dir"
+under windows.
+
+32. mode tournament|normal This command is primarily used
+to put Crafty into "tournament" mode, which is intended for
+use when Crafty is playing in computer chess events. It
+accomplishes two things: (1) makes all draws return a score
+of 0.000, and (2) makes crafty issue a message after each
+move showing the internal chess clock time, and requesting
+that that operator check and adjust as needed using the
+"clock" command. This primarily makes Crafty comply with
+computer chess rules that say the operator can't do anything
+not specifically requested by the program.
+
+33. name <name> This command is an ICS-play specific
+
+
+
+
+
+
+
+
+
+
+
+
+
+command. Xboard/WinBoard uses this to inform Crafty of the
+opponent's name. Crafty uses the name, and looks it up in
+its GM/IM/C lists, and if found, adjusts itself accordingly.
+This is not used by the PGN code and this will not cause the
+players <name> to show up in the PGN tag section.
+
+34. new This command wipes everything out and starts a
+brand new game. It closes the old log-file and game-file,
+and opens the next sequential numbered file. It also resets
+the game to the beginning and prepares to start a brand new
+game. This was added for Xboard, but it turns out that
+Xboard does not use this, rather it starts Crafty fresh for
+each new game by first terminating the old copy then start-
+ing a new one. Not nearly as efficient as using "new" but
+likely safer it a program can't be sure of resetting every-
+thing back to the initial state.
+
+35. noise <n> This command sets the "noise" level in
+Crafty. Basically, until <n> nodes have been searched,
+crafty will be silent and not display analysis.
+
+This is useful in two ways. First, in end-games, 20+ ply
+searches are not uncommon, and the search analysis for the
+first few plies arrives so quickly that it is distracting.
+Second, when observing games (new interface only) on ICS
+servers, this can be used to avoid having Crafty generate
+too many analysis kibitzes. A value of 100000 will basi-
+cally shut off any output for the first second or so (on a
+P6/200). Similarly, 1000000 will eliminate any output for
+about the first 10 seconds. When watching and kibitzing
+games like the World Championship games on ICC, I generally
+use 5000000, which is almost one minute of silence so that
+the first PV it kibitzes is a pretty deep search.
+
+noise 0 will cause *all* analysis to be displayed, which on
+a fast machine causes no problems. On a slower machine, or
+over a slow phone connection, this might cause a big commu-
+nication backlog. The default is roughly one second on a
+P6/200 (100000) but can be modified by this command.
+
+36. operator <n> Another command intended for use when
+Crafty is playing in a tournament, operated by a human.
+This tells crafty to "hide" <n> minutes of time and not use
+them. This time is basically allocated to the operator to
+make up for the time it takes to type in moves and/or cor-
+rect mistakes. At the WMCCC events, the normal value we use
+is 5. Playing on a server, this is not needed, as it is not
+needed if you are playing Crafty yourself.
+
+37. perf This command is primarily used in optimizing
+Crafty, or to test the speed of the move generator and Make-
+Move()/UnMakeMove() on different platforms. It produces two
+results, the moves it can generate per second, and the moves
+
+
+
+
+
+
+
+
+
+
+
+
+
+is can generate and make/unmake per second. While this is
+not a perfect performance indicator, it does give an
+"approximation" for how fast Crafty might run. In general,
+the higher the numbers, the better the program will play,
+although machines are certainly different. It's not uncom-
+mon to find a machine that searches slower than another, but
+has a higher "perf" value.
+
+38. perft <depth> This command is generally used to con-
+firm that the move generator and bitmap operators are work-
+ing properly. It simply takes the current position, and
+generates/makes/unmakes moves and counts them. Many pro-
+grams use this from a "standard" position to make sure that
+their move generator does not miss generating odd moves like
+enpassant/promotions and also to confirm that the
+make/unmake code correctly updates the board so that the
+totals remain constant across different machines and pro-
+grams, since there is no alpha/beta or evaluation things
+done. if <depth> is greater than 5 or 6, it will take a
+*long* time, since this is basically a minimax tree traver-
+sal that will visit *every* node within the <depth> search
+horizon.
+
+39. pgn <tag> <value> This command is used to set the
+usual PGN tags to meaningful values. The recognized tags
+are Event, Site, Round, Date, White, WhiteElo, Black, Black-
+Elo, and Result, and the tags *are* case sensitive. The
+<value> can be any valid input and blanks and special char-
+acters are allowed. Note that the date is clearly specified
+in the PGN standard and must be yyyy.mm.dd with no variance.
+Valid results are 1-0 (white won), 0-1 (black won), 1/2-1/2
+(drawn) and * (unknown). Some examples:
+
+pgn Event 14th World MicroComputer Chess Championship
+pgn Date 1996.10.8
+pgn Site Jakarta, Indonesia
+pgn Round 1
+pgn White Crafty
+pgn WhiteElo 2400
+pgn Black assassin
+pgn BlackElo 2400
+pgn Result 1-0
+
+Setting these values will result in a proper PGN file when
+using the savegame command. Note that if you use the "read"
+command to input a PGN game, these values will be extracted
+from that game if they are given.
+
+40. ponder off|on|<move> This command serves two purposes.
+First, it can be used to disable (off) or enable (on) think-
+ing on the opponent's time (or pondering as it is called in
+many programs including Crafty.) Turning it off will weaken
+Crafty since it will not use any machine time while waiting
+
+
+
+
+
+
+
+
+
+
+
+
+
+on the opponent to move. It is sometimes useful, however,
+when playing Crafty against another computer and the
+machines are not equal. If crafty is on a faster machine,
+and you attempt to adjust for this by giving the opponent
+more time than Crafty, it doesn't work quite as expected,
+because while the opponent is thinking, so is Crafty, which
+lets it use the extra opponent time in an unexpected way.
+In such a case, it's best to stop pondering in both pro-
+grams.
+
+If <move> is given, it directs Crafty to use that <move> to
+ponder, rather than the one from the previous search. Most
+commonly this is used to set the right move to ponder after
+Crafty has been stopped and then restarted, assuming that it
+is the opponent's turn to move when this happens. Other-
+wise, it is probably better to not try to influence things,
+although if you are watching and suddenly wonder "what would
+Crafty do if the opponent plays move 'X'?", you can answer
+this by simply typing "ponder X" and then watching the anal-
+ysis. You should reset the correct ponder move after you do
+this of course.
+
+41. reset <n> This command lets you back up in the current
+game to any move of your choice. reset <n> backs up the
+game to move <n> with the same side on move. If you want to
+first change the side to move, use the white/black command,
+then use the reset command to back up to the right move.
+Note that you can also go forward as well, just so there are
+moves in the current game history.
+
+42. resign <n> This command sets the resign threshold.
+When running on ICC I typically use "resign 9" which will
+make crafty resign roughly five moves after the score drops
+below -9.000. For IM's I change this to 6, and for GM's I
+often use 3, so that it will resign quicker and not drag a
+lost game out unnecessarily.
+
+43. read/reada [<filename>] This command will read input,
+and extract the chess moves and make them to set up the
+position at the end of the game. It first resets the chess
+board to the initial position (read command only) and then
+extracts the PGN tags (if present) from the front of the
+input. The rest of the input is parsed for chess moves
+(comments and similar things are culled automatically) and
+the moves are made and added to the game history. Once this
+is done, you can back up, go forward, or play from any point
+in the game. If you specify a <filename> everything is read
+from the file, otherwise it is read from the console key-
+board.
+
+The reada command reads moves, but appends them to the cur-
+rent game history/ position rather than resetting to the
+initial chess position. This lets you read in a game, then
+
+
+
+
+
+
+
+
+
+
+
+
+
+use reada to manually add some more moves to see the result-
+ing position.
+
+44. savegame <filename> This command is used to save the
+current game in a PGN-compliant file with the PGN tags
+included. Note that the default TAG values might not be
+what you want if you do not either use the pgn command to
+set them or else input a valid PGN file with the tags
+already filled in.
+
+Be aware that this command doesn't check the filename for
+legality since anything goes in UNIX. In DOS, you might
+produce a bad filename with either too many characters, too
+many periods, or whatever, so be careful with the name you
+choose. Note also that this file will be overwritten if it
+already exists, so be sure to choose a name that is not the
+name of a file that has something you consider important in
+it.
+
+45. savepos <filename> This command writes a single line
+into <filename> in FEN-like notation. This lets you save a
+position, and then come back later to re-examine it. You
+would use the "in <filename>" command to input this file and
+set the position up.
+
+46. search <move> This command allows you to specify one
+particular move for the side on move, and then when you tell
+Crafty to search this position, this is the only move that
+will be searched. This is used internally by the annotate
+command, but can be used to investigate one specific move.
+If the move is not the best move, a normal search won't show
+you why it is bad, but this will. It is also quite a bit
+faster since the other moves in the position are not
+searched at all.
+
+47. settc <moves> <ctime> <otime> This command is primar-
+ily used in tournaments, and is an error-recovery command.
+If the machine crashes and corrupts the game history file,
+frequently the operator will have to simply set the position
+using the setboard command, and then use the settc command
+to restore the time control values. <moves> is moves until
+the next time control (from Crafty's perspective, be careful
+and don't look at the opponent's moves to time control by
+accident.) <ctime> is minutes left on Crafty's clock,
+<otime> is minutes left on the opponent's clock.
+
+48. setboard <FEN input> This command is used to set a
+chess position up for analysis and is the preferred way to
+do this, rather than using the gnu EDIT interface. It uses
+a classic Forsythe-like notation to encode the position and
+also has provisions for castling status and enpassant cap-
+ture status.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+the standard piece codes p,n,b,r,q,k are used to denote the
+type of piece on a square, upper/lower case are used to
+indicate the color of the piece (uppercase=white pieces,
+lowercase=black pieces).
+
+the pieces are entered from the classic chess diagram's ori-
+entation of a8 being the upper-left-hand corner of the
+board, and this square is entered first, followed by the
+remainder of the 8th rank left to right. To indicate empty
+squares, use a number between 1 and 8 to indicate how many
+adjacent squares are empty. use a / to terminate each rank
+after all of the pieces for that rank have been entered.
+Note that you do not have to account for all 8 squares on a
+given rank, although many test suites do this for clarity.
+
+the following input will setup the board position that given
+below:
+
+ k2r/ppp////Q/5PPP/7K/ B
+
+this assumes that k represents a white king and -q repre-
+sents a black queen.
+
+ -k * * -r * * * *
+ -p -p -p * * * * *
+ * * * * * * * *
+ * * * * * * * *
+ * * * * * * * *
+ q * * * * * * *
+ * * * * * p p p
+ * * * * * * * k
+ *
+the field after the final "/" should be either b or w to
+indicate which side is "on move." after this side-to-move
+field any of the following characters can appear to indicate
+the following: KQ: white can castle king-side/queen-
+side/both; kq: same for black; a1-h8: indicates the square
+occupied by a pawn that can be captured enpassant.
+
+49. score This command simply gives the positional score
+for the current position. This score is from whites per-
+spective, so a + score is good for white, a - score is good
+for black. Crafty also breaks the score down into major
+categories (from Evaluate()) to indicate things like pawn
+structure, piece evaluation, passed pawns, development, and
+so forth. Note that some of Crafty's evaluation is asymmet-
+ric, so that if you simply change sides with the white/black
+command and then enter "score" again, you may get a differ-
+ent value. This is *not* a bug. :)
+
+50. sd <n> This command lets you specify a specific search
+depth limit that Crafty can not exceed. It still pays
+attention to the clock, however, so often you will use the
+
+
+
+
+
+
+
+
+
+
+
+
+
+st <n> command (below) in conjunction with this if the
+search is going to take an extended amount of time. <n> is
+the depth (in plies or 1/2 moves) that the search must
+reach. Note that if Crafty is pondering, it still honors
+this limit and will stop a ponder search after this depth
+has been completed as well. This is *not* the way to make
+Crafty play weaker, although this will be covered in a later
+section of this document.
+
+51. show <category> This command forces Crafty to display
+additional information about certain actions it takes. Cur-
+rently the only <category> is "book" which will make crafty
+display information about all the book moves it found in the
+database. More is given about this information in the BOOK
+section later in this file.
+
+52. smpmt=n This command is used to set the number of
+threads to use on a machine with more than one processor.
+For optimal performance, "n" should be set to the number of
+processors you have, although using fewer will reduce the
+load on your machine. For this command to work, Crafty must
+have been compiled with SMP defined. When compiled with SMP
+enabled, mt=0 effectively disables the SMP code completely.
+
+This command also has two that are closely related. smpmin
+and smpmax. Both accept single numerical arguments. smpmin
+is used to control the minimum tree depth required at a node
+for it to be eligible for parallel searching. IE smpmin 2
+says don't split unless at least two more plies are left to
+search below this node. smpmax sets the maximum for the
+same idea, is smpmax 10 says don't split if more than 10
+plies are remaining below this node.
+
+53. sn <n> This command is similar to the sd command, but
+instead of setting a specific search depth, it sets a number
+of nodes to search. Once the search has searched this num-
+ber of nodes (+ maybe one more second of searching to check
+the time) the search will exit.
+
+54. st <n> This command lets you specify a specific search
+time limit for Crafty. Again, this is not the preferred way
+to set a time per move, because this limit is absolute and
+Crafty will never go over this limit, even if it sees that
+it is losing or getting mated. Setting the time control
+with the usual "time" or "level" command is *much* better.
+<time> is given in seconds, although it may also be entered
+as mm:ss if preferred.
+
+55. swindle on|off This command gives you control over
+"swindle mode." When on, and playing a game, Crafty will
+try to win drawn endings (according to the tablebases) if it
+has winning chances (like KR vs KB, for example). This will
+put up very stiff "resistance" to accepting the draw, while
+
+
+
+
+
+
+
+
+
+
+
+
+
+with this mode off, it may be very easy to draw a position
+once the tablebases say "drawn." This mode is automatically
+turned "off" during analysis or when annotating a game, and
+is only used when actually playing a game against an oppo-
+nent. If there are no tablebases then this has no effect on
+the game at all.
+
+56. tags This command will simply display the current PGN
+tags (you can edit them with the various PGN commands).
+
+57. test <filename> [n] This command will run a suite of
+positions (the file must be in "Crafty" format as explained
+below) and produce a summary of how many it got right,
+wrong, etc. It uses the time per move you set with the
+(typically) st <n> command. The optional parameter [n] is
+the "early exit" counter. If Crafty finds, and holds the
+solution move for n iterations, it will terminate the
+search. I use this to make a win at chess run take < 15
+minutes, even though the time per position is set to 1
+minute, by setting n to 2. After two correct iterations,
+Crafty goes on to the next problem. For absolutely correct
+results, this is not advisable as it could obviously change
+its mind later on, but for performance analysis, this saves
+a lot of time.
+
+The test suite contains the following lines: (this is a
+sample from my test suite for Win At Chess.)
+
+title wac299
+setboard 1n2rr2/1pk3pp/pNn2p2/2N1p3/8/6P1/PP2PPKP/2RR4 w
+solution Nca4
+
+title wac300
+setboard b2b1r1k/3R1ppp/4qP2/4p1PQ/4P3/5B2/4N1K1/8 w
+solution g6
+
+end
+
+The title command simply displays this message in the log
+file so you can look at the output and figure out which
+position it goes with. This is optional, but useful.
+
+The setboard command sets the position as explained before.
+
+The solution command gives the set of solution moves (one or
+more moves that are separated by blanks) and/or a set of
+"anti-solution" moves (moves that must not be played to
+count the position as correct.) "anti-solution" moves are
+simply followed by a "?" character, for example:
+
+solution Bxa7?
+
+The solution command supplies a set of key moves, and then
+
+
+
+
+
+
+
+
+
+
+
+
+
+starts the search. If, after the search terminates, one of
+the key solution moves was chosen (or none of the anti-solu-
+tion moves were chosen) the position is counted as correct.
+
+The final line should be "end" although end-of-file or EOF
+will also be detected in this case.
+
+57. time CPU|elapsed|<values> This command controls
+whether the program uses CPU time or wall-clock time for
+timing. for tournament play, it is safer to use wall-clock
+timing, for testing it may be more consistent to use CPU
+timing if the machine is used for other things concurrently
+with the tests being run.
+
+time is also used to set the basic search timing controls.
+the general form of the command is as follows:
+
+ time nmoves/ntime/[nmoves/ntime]/[increment]
+
+nmoves/ntime represents a traditional first time control
+when nmoves is an integer representing the number of moves
+and ntime is the total time allowed for these moves. the
+[optional] nmoves/ntime is a traditional secondary time con-
+trol. increment is a feature related to ICS play and emu-
+lates the Fischer clock where <increment> is added to the
+time left after each move is made.
+
+as an alternative, nmoves can be "sd" which represents a
+sudden death time control of the remainder of the game
+played in ntime. the optional secondary time control can be
+a sudden-death time control, as in the following example:
+
+ time 60/30/sd/30
+
+this sets 60 moves in 30 minutes, then game in 30 additional
+minutes. an increment can be added if desired.
+
+One final example is the following:
+
+ time sd/15
+
+which is a simple game/15 setting. This command can also be
+used to perform the same function as the "level" command.
+For example, to set up a classic ICS 2 12 game, the follow-
+ing would would work:
+
+ time sd/2/12
+
+59. trace <n> This command is used to make crafty display
+the tree as it searches a position. Due to the incredible
+speed at which this program can search, however, this is
+less than useful since it can swamp any known display driver
+and make things scroll impossibly fast.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Also note that this command usually is disabled, because
+Crafty is generally compiled with the -DFAST flag, which
+removes the trace output code from the search to make things
+slightly faster. You will have to recompile, without the
+-DFAST, if you want to use this. It's utility is limited,
+except for debugging, anyway.
+
+60. usage <n> is simply a way to modify Crafty's time usage
+to fit your tastes. You can "suggest" a time limit with any
+of the options discussed previously, but if you use anything
+other than the "st" command, Crafty will do its best to use
+time as you suggest, but it also anticipates that it will
+save some time by pondering, etc., and will therefore be
+more aggressive at trying to use time. if <n> is a positive
+integer, it is taken as a percentage and crafty will compute
+the time limit it thinks is appropriate for the current
+clock settings, then increase this limit by this percentage
+(50 would make it take 1.5 times longer than normal.) -50
+would make it take 1/2 the time it would normally take.
+
+Crafty adjusts the usage internally based on time left,
+opponent's time left, how quickly or slowly the opponent is
+moving, etc. Further modifying things with this is danger-
+ous, but possible.
+
+61. whisper/kibitz <n> These commands are used to control
+what Crafty will whisper or kibitz on a chess server. The
+options are (1) only whispers or kibitzes mate announce-
+ments; (2) adds time, score, depth to the previous option,
+but no PV or moves. (3) adds the PV. (4) adds book move
+information to the output. The remaining two options gener-
+ate a lot of output and should be used with caution. (5)
+displays the PV after each iteration completes. I use this
+when using my custom interface to let Crafty observe/comment
+on games in progress on ICC. Noise can be used to prevent
+shallow searches from generating output and keeping "noise"
+down on the games being watched. (6) basically will whis-
+per/kibitz nearly everything you see on the console from a
+search, each PV when it changes, fail highs and fail lows,
+etc. A significant amount of output that should be care-
+fully weighed before turning it "loose."
+
+62. xboard This command turns on Xboard/WinBoard compati-
+bility mode, and makes Crafty behave somewhat like GnuChess.
+This is designed to be used *only* when Crafty is interfac-
+ing with Xboard/WinBoard. Crafty will not work with these
+two GUIs without this option, and really won't work very
+well with this option if it is not connected to one of them.
+
+63. There are other commands that are not documented. They
+are part of the xboard protocol and really should not be
+used by the normal user. You can find all the commands in
+option.c should you be interested.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Opening Book Setup and Usage
+ ----------------------------
+
+Crafty uses two pre-compiled opening books, called
+"book.bin" and "books.bin".
+
+The file book.bin is usually build from a large text file
+containing PGN games, often taken from collections of GM
+games. Building book.bin is a simple exercise and requires
+nothing other than the raw input file you are going to use.
+Generally this will be either medium.zip or the set of four
+files large[1-4].zip, all of which are stored on the ftp
+machine ftp.cis.uab.edu/pub/hyatt/.
+
+To create the file book.bin, you need a PGN game collection
+that is a *real* PGN-compliant file. Supposing this file is
+called "large.pgn" you would use the following command:
+
+book create large.pgn <m> [n] [wpct]
+
+The only thing you have to supply is <m>, a number indicat-
+ing how many moves from each game are to be stored in the
+book.bin database. I typically use 60, which stores the
+first 60 moves from each game. Increasing this number
+slightly increases the probability that Crafty will stay in
+book longer, but it also increases the probability that it
+will follow a game too far, so that it begins to reach posi-
+tions where the move actually played might not be the best
+move, letting it fall into a bad hole. Increasing this also
+increases the size of the database as well.
+
+You can decrease the size of the book, and also reduce the
+number of ugly moves by specifying <n>, which says that
+unless a move is played in at least N games, the move is
+discarded. This will substantially decrease the size of the
+book.bin file, and also eliminate single game moves that
+often have significant errors or blunders.
+
+You can increase the quality of book lines by specifying
+<wpct> which is the "winning percentage". This is specified
+as a percentage of lost games, and is used to discard moves
+that led to mostly losses. A safe value is 50, which says
+that if a particular opening move didn't win at least 50% as
+many games as it lost, the move is culled. A value of 100
+would mean that moves are culled if they produced more
+losses than wins, and is really a strict criterion.
+
+After creating book.bin, you need to create books.bin. This
+is a small version of book.bin, which is intended to give
+you more control over the moves/openings Crafty will play.
+This is usually built from the file start.pgn on the ftp
+machine, but you can modify this file to suit your taste
+easily. To build books.bin, you use the following command:
+
+
+
+
+
+
+
+
+
+
+
+
+
+books create start.pgn 60
+
+Again, 60 is what I use, but none of my start.pgn lines go
+anywhere near that many moves. The main point here is that
+in start.pgn, you can append a "!" to any move you want, and
+when it is Crafty's turn to move for that color, it will
+play from the set of moves with "!" if there are any, ignor-
+ing the rest of the book moves. If you only want it to play
+1. e4 as white, you would just enter the short game:
+
+[Crafty only plays 1. e4] 1. e4!
+
+and you are finished!. You can enter as many as you want.
+If on the other hand there is a move you don't want Crafty
+to play, then follow that move with a "?" and it will never
+play it. Moves in books.bin that are not flagged with ! or
+? don't have any influence on Crafty's choice at all.
+
+Here's how the files are used. When searching a position,
+Crafty first enumerates the set of moves it can find in the
+opening database. It then does the same for the books.bin
+database, and performs a "merge" operation to combine the ?
+and ! flags... The purpose of the books.bin file is to give
+you a small database that you can easily modify, rebuild,
+and repeat this process over and over. Since it takes a
+fraction of a second to completely rebuild this file, it is
+very easy to modify this to control what Crafty will play,
+without having to rebuild the large database.
+
+One important characteristic of the PGN input is the Result
+tag must be specified in most of the lines, because Crafty
+counts wins, losses and draws for each book move and uses
+these counts with some of the book selection options given
+below.
+
+How the flags are used.
+
+The ! and ? flags should only appear in the small books.bin
+file, although there is no reason why they can not appear in
+the large file as well. For this discussion, it doesn't
+matter since Crafty takes the moves from both files and
+"merges" the flags/etc into one entry for each move.
+
+Quite simply, if any book legal book move has a ! flag, then
+Crafty will only play moves from the set of moves which all
+have the ! flag. If a move has a ? flag, then that move is
+immediately removed from the set of possible book moves. If
+the only legal book move has a ? flag, it will not be played
+as a book move and Crafty will simply pretend that it found
+no book moves and will execute a normal tree search. Pretty
+simple.
+
+How to control the frequency of opening move selection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+A new feature in version 15.15 and beyond allows you to
+append a PGN comment to any move in a text file used to cre-
+ate books.bin, of the form {play nn%}. This will force the
+move it follows to be played that percentage of the time,
+regardless of the normal book-ordering values based on fre-
+quency and so forth.
+
+Note that {play 0%} will not prevent a move from being
+played at all, as this will look just like a move with no
+percent specified. To avoid playing a move, use the ? flag.
+
+How does Crafty choose book moves?
+
+Crafty's book selection algorithm depends on two user-
+defined values that can be set at any time during a game:
+
+book random <n>
+
+book width <w>
+
+The selection algorithm first finds the set of legal book
+moves as above. This set will either be all ! moves, or
+will have no ! moves in it. This set is then sorted based
+on the setting of book random. Here's the options:
+
+book random 0. This is a special case for book selection.
+Crafty simply takes the set of book moves, and searches only
+these moves using a normal alpha/beta search, but with a
+shorter than usual time limit. It then plays the move that
+produces the best search value. This has one serious disad-
+vantage in that there is no randomness to this at all. It
+will always play the same move in the same position, unless
+the evaluation is modified, or the time per move is differ-
+ent enough to let the search find a different move from the
+book move set.
+
+book random 1. This enables a random form of book move
+selection, but you have a lot of control over how moves are
+randomly chosen. The moves are ordered, based on 4 parame-
+ters: frequency of play, win/lose ratio, static evaluation
+and learned results. Normally these are factored into the
+value used to sort the moves, based on default settings that
+you can modify by using the command "bookw option N"
+"option" should be "freq", "ratio", "eval" and "learn". N
+should be a number between 0 and 1.
+
+Crafty finds the min and max values for each of the 4 param-
+eters, and then maps this into the range 0-1000 for each
+parameter. Each parameter is multiplied by the correspond-
+ing "weight" you have assigned, and this is used as a value
+to sort the moves from low to high. Note that the first
+sort value is always the "play percent" to move them to the
+top of the list. For moves with equal "play percent"
+
+
+
+
+
+
+
+
+
+
+
+
+
+values, the normal sort-value is used as the second-level
+sort variable (if no moves have a play-percent, then this
+second-level variable is the only one used, of course.)
+
+Once Crafty has sorted the moves as given above, it next
+excludes any book moves which have 0 wins. This culls the
+odd lines where a player chose a bad line and lost quickly.
+With zero wins, it will never be chosen, although Crafty
+will happily follow it from the other side. :) This is not
+anywhere near perfect, however, because an opening could
+have 1 win and 19 losses and that still would stay in the
+list.
+
+If a move has a learned value of > 100, this move is ele-
+vated in priority to that of a ! move, since it appears to
+win material instantly. If a value is < -100, it is given a
+? since it appears to be a lemon.
+
+After this, the setting for "book width <w>" is used to keep
+the first <w> moves in the list, after the above culling has
+been completed. The smaller you make <w> the less random-
+ness you get, but the chance of Crafty popping out a really
+bizarre book move gets smaller as well.
+
+After sorting, the final step is to fold in any mandatory
+"play percent" values. What this step does is that it finds
+all the moves in the "playable move set" just computed,
+which have no percent-to-play value set. It sums the sort-
+values for these moves, then adjusts the sort-values for the
+other moves so that their percentages will be honored.
+
+Once this has been done, crafty simply uses the "sort value"
+for each move to compute a total for all moves. It then
+generates a random number between 1 and this limit, and
+chooses the move that this probability distribution matches.
+This will certainly evolve over time as new ideas are devel-
+oped.
+
+For my play on ICC, I use book random 1, and book width 5
+normally, although for titled players this is reduced to
+book width 3. For computers, I reduce this further to 2, to
+try to play reasonable openings and cull the gambits and
+things that don't work out.
+
+How does book learning work and how can I share learned
+results?
+
+1. *all* of crafty's "learned knowledge" is in the book.bin
+file. It keeps the learned value and learned count right in
+the book file for speed. You can't modify it, although
+"show book" will make crafty display all the book stuff
+before it makes a move.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2. the book.lrn file has two purposes: (a) to serve as a
+log for your prying eyes, so you can see what it's learned,
+against whom, and what the score was that got its attention
+in the first place. The values on the end of each book
+line, inside the {} characters are as follows:
+ {value, depth, rating_difference} value is the value of
+the "key" search that comes from the first 10 moves out of
+book. it's in centipawns, and + is good - is bad. depth is
+the depth the search reached at this "key" position, the
+deeper the search, the more the value is "trusted." rat-
+ing_difference is crafty's rating - opponent's rating a neg-
+ative value means pay more attention to the score since the
+opponent is better than crafty, a positive value means to
+take the score with a grain of salt, because the opponent
+was weaker than Crafty.
+
+You can delete this file at any time, and it has no effect
+on learning. As I mentioned, the learning takes place in
+book.bin... this is mainly for you to peek at if you are
+interested. However, this is the "portable learning data
+file" also, and can be given to others to import into their
+crafty, where it will affect the opening book just like
+their crafty had played the openings and got the same
+scores. There are two ways to use such "lrn" files:
+
+1. "import <filename>" will read <filename> and import the
+knowledge therein into your book.bin. Since I use the same
+learning code as is used when playing games, this informa-
+tion also gets appended to *your* book.lrn file as well, so
+that your book.lrn always reflects *everything* your program
+has learned, so long as you don't ever remove this file. It
+would be a mistake to use this command on your own book.lrn
+file, because the things would get counted twice, which
+might or might not be a good thing.
+
+2. "import <filename> clear" will read <filename) and
+import the knowledge as above, but first clears *all*
+learned results from book.bin. you will want to do this if
+you import my book.lrn, *and*, you have contributed to my
+book.lrn data by sending me yours. I'll take care of elimi-
+nating duplicates if you screw up in what you send me, but
+once you send me something, you run the risk of getting it
+"back again" later. This is going to be a problem until
+everyone gets used to sharing something that is rather
+"vapid" like this "learned info" is...
+
+Other than that, we are now "open for business"... when the
+urge strikes you, email me your .lrn file, I'll keep a large
+master here and update it on occasion. Probably the best
+thing to do is to send me your .lrn and at the same
+*instant* delete yours. This will capture anything learned
+*after* you send me the file, but you'll get it all right
+back with the next version of book.lrn that I distribute.
+
+
+
+
+
+
+
+
+
+
+
+
+
+after getting this new book.lrn back, here's what you should
+do:
+
+1. rename your old book.lrn to something else. I'll call
+it "book.lrn.old" here.
+
+2. copy my blearn.dat to your machine, but *do not* put it
+in the directory with your book.bin and books.bin file
+because it will get confusing very quickly if you do. put
+it somewhere else, because you are going to remove it
+quickly anyway. I'll call it new.lrn for this example.
+
+3. import new.lrn clear
+ import book.lrn.old
+
+and you are ready to rumble again. The first command clears
+the learned values, sucks in my new learn file and updates
+everything. the second command re-learns everything you've
+learned since you sent me the last book.lrn file. After
+doing this your book.lrn will have my .lrn stuff, plus your
+old.lrn stuff, just waiting to be sent to me again...
+
+If this is confusing, I can probably add an automatic com-
+mand to do all of this by renaming book.lrn, etc. Hopefully
+this is not too error-prone for the time being anyway...
+
+What is this new Position Learning I've heard about?
+
+Crafty now has a "permanent" hash table that is kept from
+game to game. A position gets into this "hash file" when
+Crafty executes a search and the search value is signifi-
+cantly lower than the last search value.
+
+When this happens, Crafty stores the current information for
+this position in the permanent hash file, which can hold up
+to 65536 positions. Once it fills up, the positions are
+replaced on a FIFO basic always keeping the most recent 64K
+entries.
+
+Each time crafty starts a search, the positions/scores from
+this file are stuffed into the normal transposition table,
+and used during the search just like any other table entry.
+Here's how it helps: In a game that was played, the follow-
+ing moves and scores were found by crafty (playing white):
+
+1. Ng5 (+.277) h6 2. Nh7 (+.321) Kg8 3. Qh5 (+.133)
+Qg7 4. Ng5 (-2.122) hxg5
+
+So, the knight got trapped at h7, and at move 4 crafty dis-
+covered that this is gross and "learns" this result/posi-
+tion.
+
+We play the exact same game again: except that two things
+
+
+
+
+
+
+
+
+
+
+
+
+
+can happen here. It might be that Ng7 is the *only* square
+the knight can move to here, which means this whole thing is
+forced. the first search would find:
+
+1. Ng5 (-2.122) if the search can reach 8 plies deep, which
+happens even in 5 second games. It's learned that Ng5 is
+bad. It stores *this* position in the permanent hash file
+also, and the next time you try this same trap, it will dis-
+cover 4-5 moves earlier that if the knight gets to g5 it is
+in trouble. Each game will diverge from the first game 3-4
+moves earlier. Simple and effective.
+
+2. Ng5 might not be forced, and if not, it knows Ng5 loses
+a piece for a pawn, so it will promptly play something else,
+which is exactly what is desired.
+
+This is implemented with two (count 'em, two) files. One
+file "position.bin" is a binary file that contains the hash
+table entries, and it right at one megabyte in size, *max*.
+(16 bytes per hash entry X 65536 entries = exactly one meg,
+but I have 8 extra bytes for the FIFO queue implementation
+and to see how many entries are currently in the file if it
+is not full.
+
+The second file is "position.lrn" and is, you guessed it, a
+file that can be shared with others, just like book.lrn. It
+contains all information needed to reconstruct the position,
+the score, the depth, etc. and also included the pgn tags
+for who was what color and when the game was played...
+
+This data can be imported with the new "import" command (the
+old book learn <filename> is no longer around) which will
+import either book.lrn type data or position.lrn type data
+and can tell them apart without your having to do anything.
+The <clear> option is still there, should you want to use
+it, and simply removes the position.lrn and position.bin
+files before starting the import process for position learn-
+ing.
+
+This can be turned off, if you like, by checking out the
+"learn" command, which gives you the ability to turn off
+book learning (as it presently works), position learning,
+and the next book learning stage which will add to the book
+in addition to learning which book lines are good and bad.
+
+What is this new "result" learning?
+
+Result learning works just like normal book learning, except
+that if Crafty is checkmated or resigns, it will step back
+through the book line to find the last point where it had
+more than one move to choose from. It will flag the move it
+chose as "never play again".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This handles the case where the first ten non-book moves
+produce reasonable scores, but the position is one that
+Crafty simply can't handle very well. If it loses such a
+game, it will still vary the next time this opening is
+played, as otherwise it would possibly repeat the same open-
+ing, and would certainly repeat the remainder of the game.
+
+All three learning modes are turned on by default, although
+any of them can be disabled with the appropriate command
+option to "learn".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null
+<HTML><HEAD><TITLE>
+XBoard and WinBoard: Frequently Asked Questions</TITLE></HEAD>
+<BODY>
+<H1>XBoard and WinBoard: Frequently Asked Questions</H1>
+
+This document answers some frequently asked questions about the
+graphical chess interfaces XBoard and WinBoard.
+A hyperlinked version of this FAQ is available on
+the Web through the page
+<A HREF=
+"http://www.tim-mann.org/chess.html"
+>http://www.tim-mann.org/chess.html</A>.
+
+<i>This FAQ is in need of revision. Please contact us if you'd like
+to help update it.</i>
+
+<HR>
+<H2>Outline</H2>
+
+<UL>
+<LI><A HREF="#[A0]">[A] Introduction and hot topics</A></LI>
+<LI><A HREF="#[B0]">[B] XBoard and WinBoard</A></LI>
+<LI><A HREF="#[C0]">[C] XBoard and WinBoard, bugs and problems</A></LI>
+<LI><A HREF="#[D0]">[D] Crafty and other topics</A></LI>
+</UL>
+
+<HR>
+<H2>Detailed contents</H2>
+
+<UL>
+<LI><A NAME="[A0]" HREF="#[A]">[A] Introduction and hot topics</A></LI>
+<UL>
+<LI><a href="#[A.1]">[A.1] What are XBoard and WinBoard?</a></li>
+<LI><A HREF="#[A.2]">[A.2] Where can I get chess information and chess
+ software?</A></LI>
+<LI><A HREF="#[A.3]">[A.3] What are the current version numbers for
+ XBoard and WinBoard?</A></LI>
+<LI><A HREF="#[A.4]">[A.4] Who is working on this project?</A></LI>
+<LI><A HREF="#[A.5]">[A.5] How do I report bugs, offer help, etc.?</A></LI>
+<LI><a href="#[A.6]">[A.6] What are the future plans for XBoard and
+ WinBoard?</A></LI>
+</UL>
+
+<LI><A NAME="[B0]" HREF="#[B]">[B] XBoard and WinBoard</A></LI>
+<UL>
+<LI><A HREF="#[B.1]">[B.1] What is XBoard?</A></LI>
+<LI><A HREF="#[B.2]">[B.2] Is there an XBoard for Microsoft Windows? What is
+ WinBoard? How do I install WinBoard?</A></LI>
+<LI><A HREF="#[B.3]">[B.3] Is there an XBoard for the Amiga? What is
+ AmyBoard?</A></LI>
+<LI><A HREF="#[B.4]">[B.4] Is there an XBoard for the Macintosh?</A></LI>
+<LI><A HREF="#[B.5]">[B.5] Does XBoard run on VMS?</A></LI>
+<LI><A HREF="#[B.6]">[B.6] What is cmail?</A></LI>
+<LI><A HREF="#[B.7]">[B.7] How do I build XBoard? Do I have to have
+ gcc?</A></LI>
+<LI><A HREF="#[B.8]">[B.8] Can I use XBoard or WinBoard to play a game
+ of chess with another human?</A></LI>
+<LI><A HREF="#[B.9]">[B.9] Will WinBoard run on Windows 3.1?
+ How about Windows CE (also known as Pocket PC)?</A></LI>
+<LI><A HREF="#[B.10]">[B.10] How do I use XBoard or WinBoard as an external
+ viewer for PGN files with my Web browser?</A></LI>
+<LI><A HREF="#[B.11]">[B.11] How do I use WinBoard as an external viewer for
+ PGN files with the MS Windows File Manager or Explorer?</A></LI>
+<LI><A HREF="#[B.12]">[B.12] How do I use ICC timestamp or FICS timeseal
+ with XBoard?</A></LI>
+<LI><A HREF="#[B.13]">[B.13] How do I use ICC timestamp or FICS timeseal
+ with WinBoard?</A></LI>
+<LI><A HREF="#[B.14]">[B.14] How do I play bughouse with XBoard or WinBoard?
+</A></LI>
+<li><a href="#[B.16]">[B.16]
+ What is Zippy? How can I interface a chess program to the Internet
+ Chess Servers?</a></li>
+<li><a href="#[B.17]">[B.17]
+ How can I interface my own chess program to XBoard or WinBoard?</a></li>
+<li><a href="#[B.18]">[B.18]
+ How can I recompile WinBoard from source?</a></li>
+<li><a href="#[B.19]">[B.19]
+ How can I use XBoard or WinBoard to talk
+ to an Internet Chess Server through a firewall or proxy?</a></li>
+<li><a href="#[B.20]">[B.20]
+ How can I use XBoard or WinBoard on chess.net with accuclock?</a></li>
+<li><a href="#[B.21]">[B.21]
+ Can I get Zippy to do one or more ICS commands automatically at the
+ start or end of each game?</a></li>
+<li><a href="#[B.22]">[B.22]
+ How do I print from WinBoard?</a></li>
+<li><a href="#[B.23]">[B.23]
+ Can I get Zippy to automatically reconnect to ICS when its connection
+ breaks?</a></li>
+<li><a href="#[B.24]">[B.24]
+ The chess engines are too strong and always beat me. How can I adjust
+ the difficulty level to make them weaker?</a></li>
+<li><a href="#[B.25]">[B.25]
+ May I use the piece bitmaps from XBoard/WinBoard in my own program?</a></li>
+
+</UL>
+
+<LI><A NAME="[C0]" HREF="#[C]">[C] XBoard and WinBoard, bugs and
+ problems</A></LI>
+<UL>
+<LI><A HREF="#[C.1]">[C.1] I can't build XBoard because the
+ X11/Xaw/... include files are not found.</A></LI>
+<LI><A HREF="#[C.2]">[C.2] Configuring or building XBoard fails due to
+ missing header files, missing libraries, or undefined symbols.</a></li>
+<LI><A HREF="#[C.3]">[C.3] I have problems using WinBoard on ICS with a modem.
+ I'm not running SLIP or PPP, but just dialing in to an ordinary login account
+("shell account").</A></LI>
+<LI><A HREF="#[C.4]">[C.4]
+ I have problems using WinBoard on ICS with Windows 95 and SLIP
+ or PPP. When trying to start up, it gets the error "Address family
+ not supported by protocol family" (or some equally strange message).
+</A></LI>
+<LI><A HREF="#[C.5]">[C.5] When I try to run WinBoard, I get the message
+ "Failed to start chess program gnuchess on localhost: NO LANGFILE (file
+ gnuchess.lan not found)".</A></LI>
+<LI><A HREF="#[C.6]">[C.6] I want to use XBoard or WinBoard as an Internet
+ Chess Server interface, but the ICS Client option is grayed out on the
+ menu.</A></LI>
+<LI><A HREF="#[C.7]">[C.7] How do I give command-line options to
+ a Windows program like WinBoard?</A></LI>
+<LI><A HREF="#[C.9]">[C.9]
+ When I exit from WinBoard after using it to play against a chess
+ program on my machine, the chess program keeps running in the background.
+</A></LI>
+<li><a href="#[C.12]">[C.12]
+ Why do my ICS
+ opponents often get extra time after they make their moves?
+ Why do I sometimes lose time off my clock after I make my move?
+</a></li>
+<li><a href="#[C.13]">[C.13]
+ I can't run WinBoard unless I delete the WinBoard.ini file each time!
+</a></li>
+<li><a href="#[C.15]">[C.15]
+ I get errors compiling XBoard's parser.c.
+</a></li>
+<li><a href="#[C.16]">[C.16]
+ I get an error building WinBoard from source because "flex" is not found.
+</a></li>
+<li><a href="#[C.17]">[C.17]
+ XBoard hangs shortly after connecting to an ICS when used with dxterm,
+ cmdtool, dtterm, kterm, konsole, or other substitutes for xterm.
+</a></li>
+<li><a href="#[C.18]">[C.18]
+ The WinBoard pieces show up in the wrong colors, appear distorted,
+ or are not visible at all.
+</a></li>
+<LI><A HREF="#[C.19]">[C.19] XBoard or WinBoard tells me
+"Error: first chess program (...) exited unexpectedly".</A></LI>
+<li><a href="#[C.20]">[C.20]
+ XBoard tells me "Warning: Cannot allocate colormap entry", or
+ "too few colors available; trying monochrome mode", or
+ "XPM pieces cannot be used in monochrome mode".
+</a></li>
+<li><a href="#[C.21]">[C.21]
+ When I log in to freechess.org, the Enter key doesn't work, and I
+ have to use Ctrl+J instead. But when I use WinBoard, Ctrl+J doesn't
+ work either, so I'm stuck.
+</a></li>
+<li><a href="#[C.22]">[C.22]
+ XBoard says, "Failed to start first chess program gnuchessx
+ on localhost: gnuchessx: No such file or directory."
+</a></li>
+</UL>
+
+<LI><A NAME="[D0]" HREF="#[D]">[D] Crafty and other topics</A></LI>
+<UL>
+<LI><A HREF="#[D.1]">[D.1] What is XChess?</A></LI>
+<LI><A HREF="#[D.2]">[D.2] What is Winsock Chess?</A></LI>
+<LI><A HREF="#[D.3]">[D.3] What is Crafty?</A></LI>
+<LI><A HREF="#[D.4]">[D.4] How do I use Crafty with XBoard?</A></LI>
+<LI><A HREF="#[D.5]">[D.5] How do I use Crafty with WinBoard?</A></LI>
+<LI><A HREF="#[D.6]">[D.6] How do I use GNU Chess 5 with XBoard?</A></LI>
+</UL>
+</UL>
+
+<HR>
+<H2><A NAME="[A]">[A] Introduction and hot topics</A></H2>
+<HR>
+<H3><A NAME="[A.1]">[A.1] What are XBoard and WinBoard?</A></H3>
+
+XBoard and WinBoard are graphical user interfaces for chess.
+XBoard runs with the X Window System on Unix systems (including
+GNU/Linux); see topic
+<A HREF="#[B.1]">[B.1]</A>.
+WinBoard runs on true 32-bit Microsoft Windows operating
+systems, such as Windows 95, 98, NT,
+2000, ME, XP, and should continue to work
+on future 32-bit Windows systems. It does
+not work on Windows CE (also known as Pocket PC), nor does it work on
+16-bit Windows systems such as Windows 3.1. See topic
+<A HREF="#[B.2]">[B.2]</A>.
+
+<HR>
+<H3><A NAME="[A.2]">[A.2] Where can I get chess information and chess
+software?</A></H3>
+
+As a shortcut to most things mentioned in this FAQ, try Tim Mann's
+Chess Web page, <A HREF= "http://www.tim-mann.org/chess.html"
+>http://www.tim-mann.org/chess.html</A>. This page page is a good
+place to get the latest released versions of XBoard and WinBoard and
+the most up-to-date version of this FAQ. Also see our Savannah
+project pages at <a href="https://savannah.gnu.org/projects/xboard/"
+>https://savannah.gnu.org/projects/xboard/</a>.
+
+<p>If you have other questions about XBoard/WinBoard that aren't answered
+in this FAQ, you can try Aaron Tay's WinBoard and Chess Engines FAQ, at
+<a href="http://www.aarontay.per.sg/Winboard/"
+>http://www.aarontay.per.sg/Winboard/</a>.
+
+<P>For general news and information about chess, try the newsgroup hierarchy
+rec.games.chess.*, especially the groups rec.games.chess.misc and
+rec.games.chess.computer. Both of the latter groups have very informative
+FAQs maintained by Steve Pribut; look for them on the newsgroups or at
+<A HREF=
+"http://www.clark.net/pub/pribut/chess.html"
+>http://www.clark.net/pub/pribut/chess.html</A>.
+
+<P>Like other GNU software, you can get XBoard, and
+WinBoard by anonymous FTP from
+<A HREF=
+"ftp://ftp.gnu.org/pub/gnu/"
+>ftp://ftp.gnu.org/pub/gnu/</A>
+and its many mirror sites. Look in the subdirectories xboard, and winboard.
+The .tar.gz suffix on the files there indicates they were packed with tar
+and compressed with gzip. The .exe or .zip suffixes indicate files that
+were packed and compressed with zip.
+
+<P>For other chess software, try the Internet Chess Library. Use anonymous FTP
+to connect to ftp.freechess.org, or go to the Web page
+<A HREF=
+"http://www.freechess.org/"
+>http://www.freechess.org/</A>.
+You can get chess software, game
+collections, the FAQ file for rec.games.chess, and other chess-related
+material there, in the directory pub/chess. The FTP server can
+automatically decompress files for you as you download them, useful if you
+don't have gzip.
+
+<P>Here is a sample anonymous ftp session. Some of the ftp server's responses
+are abbreviated, but all the commands you must type are included.
+
+<p><PRE>
+ % ftp ftp.gnu.org
+ Connected to ftp.gnu.org
+ Name: anonymous
+ Password: your-email-address@your-site
+ ftp> binary
+ 200 Type set to I.
+ ftp> cd /pub/gnu/xboard
+ ftp> dir
+ -rw-r--r-- 1 14910 wheel 1057625 May 20 00:25 xboard-4.2.7.tar.gz
+ ftp> get xboard-4.2.7.tar.gz
+ 150 BINARY connection for xboard-4.2.7.tar.gz (1057625 bytes).
+ 226 Transfer complete.
+ ftp> quit
+</PRE>
+
+<HR>
+<H3><A NAME="[A.3]">[A.3] What are the current version numbers for
+XBoard and WinBoard?</A></H3>
+
+At this writing, the current version numbers are:
+
+<UL>
+<LI>XBoard 4.2.7</LI>
+<LI>WinBoard 4.2.7</LI>
+</UL>
+
+<HR>
+<H3><A NAME="[A.4]">[A.4] Who is working on this project?</A></H3>
+
+Please see our Savannah project pages at <a
+href="https://savannah.gnu.org/projects/xboard/"
+>https://savannah.gnu.org/projects/xboard/</a> for a list of active
+developers. Many others occasionally contribute suggestions and
+snippets of code, for which we are grateful.
+
+<HR>
+<H3><A NAME="[A.5]">[A.5] How do I report bugs, offer help, etc.?</A></H3>
+
+<P>Bug reports, suggestions, and offers to help on XBoard
+or WinBoard should be sent to
+bug-xboard<a name="nospam">@</a>gnu.org. <i>(Note: as of 4 Nov 2003,
+this mailing list is temporarily broken. You can send mail to
+bug-xboard<a name="nospam">@</a>tim-mann.org instead until it is fixed.)</i>
+
+<p>Beginner questions and discussion about the program may get faster
+answers on the WinBoard Forum at <a
+href="http://f11.parsimony.net/forum16635/"
+>http://f11.parsimony.net/forum16635/</a>.
+
+<p>If you are developing a
+chess engine that works with XBoard or WinBoard (or an alternative
+GUI that works with such engines), see the Chess Engines mailing
+list, hosted at
+<a href="http://groups.yahoo.com/group/chess-engines"
+>http://groups.yahoo.com/group/chess-engines</a>.
+
+<P>Any time you want to report a possible bug in XBoard or WinBoard,
+we need to know exactly what you did, and exactly what error (or
+other) messages you got.
+
+<P>If you are using Unix, run the "script" program, run XBoard with
+the -debug flag (if you get as far as running it), do whatever is
+necessary to reproduce the problem, type "exit" to the shell, and mail
+us the resulting typescript file. We also need to know what
+hardware/operating system combination you are using. The command
+"uname -a" will usually tell you this; include its output in your
+typescript.
+
+<P>If you are using MS Windows, run WinBoard with the -debug flag, and
+send us a copy of the WinBoard.debug file. If you aren't sure how to
+add command-line flags to WinBoard, you can hit Ctrl+Alt+F12 to create
+a WinBoard.debug file after WinBoard starts, but that is not as good,
+because a few messages that would have been printed at the start are
+lost.
+
+<p>Either way, please send us the exact text of the commands you typed
+and the output you got, not just your recollection of approximately
+what they were. The messages may seem meaningless to you, but they
+are very meaningful to us and essential for diagnosing problems.
+
+<hr>
+<h3><a name="[A.6]">[A.6] What are the future plans for XBoard and
+ WinBoard?</a></h3>
+
+<p>Our plans are always in flux. As with most free software projects,
+the next release will happen when it happens -- or it may never
+happen. This has always been the policy for XBoard/WinBoard.
+Releases have never been promised in specific time frames.
+
+<p>Starting in November 2003, several new developers have joined the
+project, and work is now hosted at <a
+href="https://savannah.gnu.org/projects/xboard/"
+>https://savannah.gnu.org/projects/xboard/</a>. Lots of work is just
+getting underway, but nothing is far along yet.
+
+<p>Here is a partial list of items that have a nonzero probability of
+happening in finite time.
+
+<ul>
+<li>Small bug fixes. Occasionally someone sends us a fix, or reports
+a small bug very clearly so that we're able to fix it in a few minutes
+work.<p>
+
+<li>Protocol version 3. The members of the chess engine authors'
+mailing list discussed a set of proposed features for the next version
+of the XBoard/WinBoard chess engine communication protocol.
+Unfortunately, this project has gotten only as far as that discussion
+took it; no revisions of the protocol spec or coding have been done
+yet. A few simple features are very clearly needed, though, and will
+probably appear in time.<p>
+
+<li>Contributed features. Several people have mailed me code to add
+various features. Most of this code is available on the
+XBoard/WinBoard extensions page at <a
+href="http://www.tim-mann.org/extensions.html"
+>http://www.tim-mann.org/extensions.html</a>, but it is not in any
+official releases yet. We are in the process of getting folks to
+formally assign the copyrights on their contributions to the Free
+Software Foundation so that we can include it in official releases in
+the future.<p>
+
+<li>Internationalization. Several people have expressed interest in
+internationalizing XBoard/WinBoard, and so hopefully this project will
+go forward. Once the internationalization support is in, we will need
+more translators. Watch for news on the xboard-devel mailing list on
+our Savannah pages.
+
+</ul>
+
+<HR>
+<H2><A NAME="[B]">[B] XBoard and WinBoard</A></H2>
+<HR>
+<H3><A NAME="[B.1]">[B.1] What is XBoard?</A></H3>
+
+XBoard is a graphical user interface for chess. It displays a
+chessboard on the screen, accepts moves made with the mouse, and loads
+and saves games in Portable Game Notation (PGN). XBoard is free software.
+It serves as a front-end for many different chess services, including:
+
+<p><strong>Chess engines</strong> that will run on your machine and
+play a game against you or help you analyze, such as GNU Chess and
+Crafty (topic <A HREF="#[D.3]">[D.3]</A> below).
+
+<p><strong>Chess servers</strong> on the Internet, where you can
+connect to play chess with people from all over the world, watch other
+users play, or just hang out and chat.
+
+<p><strong>Correspondence chess</strong> played by electronic
+mail. The cmail program (topic <A HREF="#[B.6]">[B.6]</A> below)
+automates the tasks of parsing email from your opponent, playing his
+moves out on your board, and mailing your reply move after you've
+chosen it.
+
+<p><strong>The Web</strong> and your own saved games. You can use
+XBoard as a helper application to view PGN games in your
+Web browser, or to load and save your own PGN files.
+
+<P>XBoard runs under Unix or Unix-compatible systems. It requires the
+X Window System, version X11R4 or later. There are also ports of
+XBoard to 32-bit Microsoft Windows and to
+the Amiga. See topics <A HREF="#[B.2]">[B.2]</A> and <A
+HREF="#[B.3]">[B.3]</A> respectively.
+
+<HR>
+<H3><A NAME="[B.2]">[B.2] Is there an XBoard for Microsoft Windows? What is WinBoard? How do I install WinBoard?</A></H3>
+
+WinBoard is a port of XBoard to 32-bit Microsoft Windows systems, such
+as Windows 95, 98, NT, 2000, ME, and XP. It uses the same back end
+chess code as XBoard, but the front end graphics code is a complete
+rewrite. WinBoard is free software.
+
+<P>The WinBoard distribution includes a port of GNU Chess to Win32.
+The GNU Chess port is distributed in executable form, with instructions for
+rebuilding it from the standard GNU Chess sources (available separately). You
+should have at least 16 to 24 MB of memory to run GNU Chess with WinBoard.
+
+<P>The WinBoard distribution also includes the ICC timestamp and FICS
+timeseal programs (topic <A HREF="#[B.12]">[B.12]</A>).
+
+<P>cmail (topic <A HREF="#[B.6]">[B.6]</A>) has not been ported to
+Windows. All the other XBoard functions are included in WinBoard.
+The International Email Chess Group web site at <a
+href="http://www.iecg.org/" >http://www.iecg.org/</a> recommends
+ECTool (<a href="http://www.ectool.nu/" >http://www.ectool.nu/</a>)
+for playing correspondence chess under Windows.
+
+<p>You install WinBoard as follows. Download the WinBoard package to
+your PC (see topic <A HREF="#[A.2]">[A.2]</A>). It will be a file
+with a name like winboard-4_0_0.exe. Double-click on this file
+in the Explorer or File Manager to run it. Follow the on-screen
+prompts.
+
+<HR>
+<H3><A NAME="[B.3]">[B.3] Is there an XBoard for the Amiga? What is AmyBoard?</A></H3>
+
+AmyBoard is a port of XBoard to the Amiga, by Jochen Wiedmann.
+The distribution includes a port of GNU Chess.
+AmyBoard is free software.
+
+<p>The current version of AmyBoard is 330.5 (based on XBoard 3.3.0).
+No one is currently maintaining it.
+
+<P>System requirements:
+
+<UL>
+<LI>An Amiga (obviously :-), running OS 2.04 or later, 2Mb RAM or more.</LI>
+<LI>MUI 2.0 or later.</LI>
+<LI>Workbench or another screen with no less than 640x400 pixels (adjustable
+ with the MUI-Prefs); this restriction is just because we don't have
+ bitmaps with less than 40x40 pixels per square. If someone contributes
+ bitmaps with 20x20 or 20x25, they will work with any Hires mode.</LI>
+</UL>
+<P>
+If you would like to use an ICS, you need an Internet connection via either
+
+<UL>
+<LI>a telnet-like program, or</LI>
+<LI>a terminal program reading from stdin and writing to stdout.</LI>
+</UL>
+<P>
+AmyBoard is available in the Internet Chess Library (topic <A HREF="#[A.2]">[A.2]</A>).
+
+<HR>
+<H3><A NAME="[B.4]">[B.4] Is there an XBoard for the Macintosh?</A></H3>
+
+Because MacOS X has a Unix base, XBoard will compile and run on it.
+You do need an X11 (X Window System) server and client libraries.
+These do not come with Mac OS, but both free and commercial versions
+are available. Once you install the X11 package, XBoard is reported
+to compile and run without changes. I am not a Mac user and have not
+tried this myself, so I cannot answer questions about it.
+
+Version 4.2.6 and earlier of XBoard come with an old copy of the
+config.sub utility that does not recognize Mac OS X, so to build
+XBoard, you'll have to tell the configure program what OS you are
+running. Follow the instructions in topic <A HREF="#[B.7]">[B.7]</A>
+of this FAQ, but add the argument <tt>--host=powerpc-apple-bsd</tt> to
+the end of the "configure" command line.
+
+There is no version of XBoard or WinBoard that runs with the native
+(non-X11) Mac graphical interface, and none that runs on MacOS 9 or
+earlier.
+
+
+<HR>
+<H3><A NAME="[B.5]">[B.5] Does XBoard run on VMS?</A></H3>
+
+No. This port would probably be a lot easier than the Win32 and Amiga
+ports were, because VMS has the X Window system (under the name
+DECwindows) and is now POSIX compliant. However, I don't know enough
+about VMS to do the port myself, and I don't have time. If you do,
+give it a try! Send mail to me,
+tim<a name="nospam2">@</a>tim-mann.org (Tim Mann), if you're
+working on this.
+
+<HR>
+<H3><A NAME="[B.6]">[B.6] What is cmail?</A></H3>
+
+cmail is a program that helps you play and keep track of electronic mail
+correspondence chess games using XBoard. It is distributed with XBoard and
+has its own manual page. cmail is free software. It was written by
+Even Welsh. cmail has not been ported to Windows; sorry.
+
+<HR>
+<H3><A NAME="[B.7]">[B.7] How do I build XBoard? Do I need gcc?</A></H3>
+
+The first step to building XBoard is to get the distribution file. See topic
+<A HREF="#[A.2]">[A.2]</A> for places you can ftp the software from.
+
+<P>Next, decide what directory tree you are going to install XBoard
+in. The default is /usr/local, but you probably don't have write
+access to that directory unless you are a system administrator. If
+you do, type the following to install it there:
+
+<p><PRE>
+ gzip -cd xboard-*.tar.gz | tar -xvf -
+ cd xboard-*/
+ ./configure
+ make
+ su
+ make install
+</PRE>
+
+If you want to install xboard in your personal home directory ($HOME/bin),
+type this:
+
+<p><PRE>
+ gzip -cd xboard-*.tar.gz | tar -xvf -
+ cd xboard-*/
+ ./configure --prefix=$HOME
+ make
+ make install
+</PRE>
+
+<P>If the first step above fails because you don't have gzip, see
+topic <A HREF="#[A.2]">[A.2]</A>, and ask a local Unix expert if you
+need more help. If you have any problems with the last two steps,
+read the READ_ME and INSTALL files in the xboard-*/ directory. You
+will also find this FAQ there.
+
+<P>You don't need to have gcc to build XBoard. Almost any Unix C
+compiler should do.
+
+<HR>
+<H3><A NAME="[B.8]">[B.8] Can I use XBoard or WinBoard to play a game
+ of chess with another human?</A></H3>
+
+The only way for two humans on different machines to play chess in
+real time using XBoard/WinBoard is to use an Internet Chess Server
+as an intermediary. That is, each player runs his own copy of XBoard
+or WinBoard, both of them log into an ICS, and they play a game there.
+Two copies of XBoard/WinBoard cannot communicate with each other
+directly.
+
+<P>Instructions on how to get started with Internet chess are included
+with the XBoard and WinBoard distributions. The network addresses
+included in the distribution may not always be current. The oldest
+and largest ICS is the Internet Chess Club at chessclub.com, which now
+has a fee for registered use, but still allows free unregistered use.
+There are also many newer sites with no fees, using the Free Internet
+Chess Server implementation (FICS). The most active FICS site is
+freechess.org. On these and most other chess servers,
+the port number to use is 5000.
+
+<P>If you don't have network connectivity to any ICS site, you
+can run your own server using a version of the FICS code, but this
+is not easy. See <a href="http://www.tim-mann.org/ics.html#ownics"
+>http://www.tim-mann.org/ics.html#ownics</a> for advice and pointers.
+
+<P>The cmail program included with XBoard lets you play email postal games with
+another human; see topic <A HREF="#[B.6]">[B.6]</A>.
+
+<P>Two humans can play chess on the same machine using one copy of
+XBoard/WinBoard in
+Edit Game mode, but the clocks don't run in this mode, so it's of limited
+usefulness.
+
+<P>See also topic <A HREF="#[D.2]">[D.2]</A>, Winsock Chess.
+
+<HR>
+<H3><A NAME="[B.9]">[B.9] Will WinBoard run on Windows 3.1?
+ How about Windows CE (also known as Pocket PC)?
+</A></H3>
+
+WinBoard does not run on Windows 3.1, Windows for Workgroups 3.11, etc.,
+not even with the Win32s compatibility package. The main problem is
+that Win32s does not have threads or real concurrent processes. A
+port of WinBoard to Windows 3.1 is possible in theory, but it would be
+difficult and messy, and no one is going to do it.
+
+<p>WinBoard does not run on Windows CE (also
+known as Pocket PC). I don't know what would be required to port it.
+
+<P>WinBoard does run well on full 32-bit versions of Windows, such as
+Windows 95, 98, NT, 2000, ME, and XP, and should continue to work
+on future 32-bit Windows systems.
+
+<HR>
+<H3><A NAME="[B.10]">[B.10] How do I use XBoard or WinBoard as an external viewer for PGN files
+ with my Web browser?</A></H3>
+
+1) On Unix systems:
+<P>
+- Add the following line to the file .mime.types in your home directory.
+(Create the file if it doesn't exist already.)
+<PRE>
+ application/x-chess-pgn pgn
+</PRE>
+<P>
+- Add the following line to the file .mailcap in your home directory.
+(Create the file if it doesn't exist already.)
+<PRE>
+ application/x-chess-pgn; xboard -ncp -lgf %s
+</PRE>
+<P>
+- Exit from your Web browser and restart it.
+
+<P>2) On MS Windows systems:
+
+<P>The exact procedure depends on which Web browser you are using.
+The current version of WinBoard automatically configures itself as
+your PGN viewer for local files, Netscape 4.x and later, and Internet
+Explorer. This automatic setup probably works for all other current Web
+browsers, too.
+
+<HR>
+<H3><A NAME="[B.11]">[B.11] How do I use WinBoard as an external viewer
+ for PGN files with the MS Windows File Manager or Explorer?</A></H3>
+
+WinBoard sets this up automatically when you install it, except on old
+versions of Windows NT (prior to 4.0). On Windows NT 3.51 or earlier,
+go to the File Manager, click on the File menu, select Associate,
+enter "pgn" as the extension, and use the Browse button to find your
+copy of WinBoard and set up the association.
+
+<HR>
+<H3><A NAME="[B.12]">[B.12] How do I use ICC timestamp or FICS timeseal
+with XBoard?</A></H3>
+
+First, get the appropriate version of timestamp or timeseal for your
+machine from ftp.chessclub.com or ftp.freechess.org.
+Second, be sure that you can connect using XBoard <I>without</I>
+timestamp/timeseal. Third, be sure that you can connect using
+timestamp/timeseal without XBoard. See the help files on ICC and FICS
+or ask people online if you have problems.
+
+<P>If you are in a completely ordinary situation, where your machine
+is directly on the Internet and you can connect to ICC or FICS
+without timestamp/timeseal using
+just the command "xboard -ics" or "xboard -ics -icshost freechess.org",
+change that command to one of the following:
+
+<p><PRE>
+ xboard -ics -icshost 204.178.125.65 -icshelper timestamp
+
+ xboard -ics -icshost 164.58.253.13 -icshelper timeseal
+</PRE>
+
+<p>If you have a firewall between your machine and the ICS, see topic
+<A HREF="#[B.19]">[B.19]</A>.
+
+<P>If you normally have to use the "/icscomm" command line option on
+xboard to log into a second machine, and then telnet to ICC or FICS
+from there, you are going to have to run the Unix version of timestamp
+or timeseal on the second machine. (If the second machine is not
+running Unix, you are out of luck.) Get the appropriate version of
+timestamp or timeseal onto the shell machine via FTP; see the help
+files on ICC and FICS for instructions. Then simply run it when you
+would normally run telnet. In this configuration you are not
+protected against lag between your PC and the shell machine, or for
+lag caused by heavy load on the shell machine itself from other users.
+
+<P>For further information on timestamp and timeseal, see the help
+files on ICC and FICS.
+
+<HR>
+<H3><A NAME="[B.13]">[B.13] How do I use ICC timestamp or FICS timeseal
+with WinBoard?</A></H3>
+
+<P>If you select an ICS from either the WinBoard Startup dialog or the
+Windows Start submenu that WinBoard installs, WinBoard automatically
+runs timestamp or timeseal if the ICS you chose is known to support it.
+
+<P>If you are constructing a WinBoard command line by hand, add the
+option "/icshelper timestamp" or "/icshelper timeseal" to the WinBoard
+command line to use timestamp or timeseal. Both timestamp.exe and
+timeseal.exe are included in the WinBoard distribution. They both
+function identically to the Unix versions, as documented in "help
+timestamp" on ICC and "help timeseal" on FICS.
+
+<p>If you have a firewall between your machine and the ICS, see topic
+<A HREF="#[B.19]">[B.19]</A>.
+
+<P>If you normally have to use the "/icscomm" command line option on
+WinBoard to log into a shell account, and then telnet to ICC or FICS
+from there, you are going to have to run the Unix version of timestamp
+or timeseal on the shell machine. (If the shell account is not on a
+Unix machine, you are out of luck.) Get the appropriate version of
+timestamp or timeseal onto the shell machine via FTP; see the help
+files on ICC and FICS for instructions. Then simply run it when you
+would normally run telnet. In this configuration you are not protected
+against lag between your PC and the shell machine, or for lag caused by
+heavy load on the shell machine itself from other users.
+
+<P>For further information on timestamp and timeseal, see the help
+files on ICC and FICS.
+
+<HR>
+<H3><A NAME="[B.14]">[B.14] How do I play bughouse with XBoard or WinBoard?
+</A></H3>
+
+XBoard and WinBoard have simple but effective bughouse support.
+Offboard piece holdings are shown in the board window's banner, and
+you drop offboard pieces using the right mouse button. Press it over
+the destination square to pop up a menu of pieces.
+
+<P>XBoard and WinBoard can display only one board at a time, but you
+can observe your partner's game by running a second copy of the
+program and logging in as a guest. (Unfortunately, this is not
+possible if you are using the /icscomm option.) To observe your
+partner's games automatically, use the "follow" or "pfollow" ICS
+command; see the ICS online help for details.
+
+<HR>
+<h3><a name="[B.16]">[B.16] What is Zippy? How can I interface a
+chess program to the Internet Chess Servers?</a></h3>
+
+Zippy is an interface that lets a compatible chess engine (such as GNU
+Chess or Crafty) act as a computer
+player on an Internet Chess Server. Zippy is included in both the
+XBoard and WinBoard distributions. It is implemented as a small
+amount of additional code within XBoard or WinBoard.
+For documentation, see the file
+zippy.README, included in both distributions or available
+from my chess Web page,
+<A HREF=
+"http://www.tim-mann.org/chess.html"
+>http://www.tim-mann/chess.html</A>.
+The version of zippy.README on my Web page is often more up-to-date
+than those in the XBoard/WinBoard distributions.
+You'll also find a "biography" of Zippy and pointers to the original
+Zippy the Pinhead comic strips on my Web page.
+Please read zippy.README carefully before you ask me any questions about Zippy.
+
+<p>Using a computer to choose your moves on a chess server is
+considered cheating unless your account is on the computer (C) list.
+Read "help computer" on your favorite server for details on their
+policy. Most of the servers have plenty of computers running now, so they
+will not be excited about having you run a new one unless you have
+written your own chess engine. They don't really need yet another
+Crafty or GNU Chess clone.
+
+<HR>
+<h3><a name="[B.17]">[B.17] How can I interface my own chess program
+to XBoard or WinBoard?</a></h3>
+
+This is a non-trivial task. XBoard and WinBoard were not designed
+with a clean interface for talking to chess programs; they were
+written to work with an existing version of GNU Chess that expects to
+be talking to a person. Your program has to emulate GNU Chess's
+rather idiosyncratic command structure to work with XBoard and
+WinBoard. We are gradually cleaning up, improving, and documenting
+the interface as newer versions of XBoard and WinBoard come out,
+however.
+
+<p>For documentation, see the file engine-intf.html, included in both
+distributions or available from my chess Web page, <A HREF=
+"http://www.tim-mann.org/chess.html"
+>http://www.tim-mann.org/chess.html</A>.
+The version of engine-intf.html on my Web page is often more up-to-date
+than those in the XBoard/WinBoard distributions.
+
+<HR>
+<h3><a name="[B.18]">[B.18] How can I recompile WinBoard from source?</a></h3>
+
+The source code for WinBoard is available from the author's Web page,
+<A HREF=
+"http://www.tim-mann.org/chess.html"
+>http://www.tim-mann.org/chess.html</A>.
+
+<p>WinBoard is currently developed using Microsoft Visual C++ 5.0.
+You can build the program from the MSVC++ GUI by opening the project
+file (winboard.dsp) and telling MSVC++ to build the project. You can
+also build it from the the command line by using the nmake program
+supplied with MSVC++.
+
+<p>To build WinBoard with the free Cygwin tools, available from <a
+href= "http://www.cygwin.com/" >http://www.cygwin.com/</a>), use the
+command "make -f cygwin.mak". WinBoard 4.2.5 was successfully
+compiled with the net release of Cygwin as downloaded on 20-March-2001
+(cygwin1.dll 1.1.8, gcc 2.95.2-6, binutils 20001221-1, flex 2.5.4-1),
+but exhibits a command-line parsing bug; see item 511 in the ToDo file
+that comes with WinBoard. WinBoard 4.1.0 does not compile with
+Cygwin. WinBoard 4.0.7 is known to compile with Cygwin BL20.1.
+
+<p>To build WinBoard with Borland C++ 4.5, use "borland.mak", supplied
+with the WinBoard sources, as the Makefile. Support for Borland C++
+was contributed by Don Fong and has not been tested by the author of WinBoard.
+
+<p>WinBoard is a Win32 application, so you definitely need a compiler
+and tool set that supports Win32. In particular, older versions of
+DJGPP can build only 32-bit MSDOS programs; that is, programs that use
+a DOS extender to get a 32-bit address space and do not make any
+Windows calls. The latest versions of DJGPP are said to be able to
+build Win32 programs when used with the proper extension package(s),
+but this is not known to work with WinBoard. Use Cygwin instead.
+
+<p>See also topic <A HREF="#[C.16]">[C.16]</A>.
+
+<HR>
+<H3><A NAME="[B.19]">[B.19]
+How can I use XBoard or WinBoard to talk
+to an Internet Chess Server through a firewall or proxy?
+</A></H3>
+
+<p>There is no single answer to this question, because there are many
+different kinds of firewalls in use. They work in various different
+ways and have various different security policies. This answer can
+only provide hints.
+
+<p>Note that you can't access Internet Chess Servers through a Web proxy,
+because they are not a Web service. You talk to them through a raw
+TCP connection, not an HTTP connection. If you can only access the
+Web through a proxy, there may be a firewall that stops you from
+making direct TCP connections, but there may also be a way through it.
+Read on for hints, and contact your local system administrator if you
+need more information about your local configuration.
+
+<p>A helpful user mailed me the following explanation of how to use
+WinBoard with WinGate:
+<blockquote>
+"I have managed to setup WinBoard though my WinGate proxy. I have the
+Office version. What I needed to do was to setup the TCP/IP
+connection to add the User/Host name and my provider service name for
+the DNS, but I had to leave the HOST IP address blank. I have not
+played with all the variations, so it may be just that I have the DNS
+lookup enabled."
+</blockquote>
+I hope this helps, though I don't find it very clear. I don't have
+a copy of WinGate myself and can't help if you have questions about it.
+
+<p>If you are using some other non-SOCKS firewall, read the FIREWALLS section
+in your XBoard or WinBoard documentation (man page, info document, or
+Help file). If you can telnet to a chess server in some way, then you
+can almost certainly connect to it with xboard/WinBoard, though in
+some cases you may not be able to run timestamp or timeseal. The
+timestamp and timeseal protocols require a clean, 8-bit wide TCP
+connection from your machine to the ICS, which some firewalls do not
+provide.
+
+<p>If you have a SOCKS firewall and are using <strong>XBoard</strong>,
+you should be able to SOCKSify xboard and use it. See <a
+href="http://www.socks.nec.com/">http://www.socks.nec.com/</a> for
+information about SOCKS and socksification. However, if you do this,
+you can't use timestamp or timeseal; what you really need is a
+socksified version of timestamp or timeseal. This is hard because the
+source code for timestamp and timeseal is proprietary; the folks
+running the chess servers don't give it out because that would make it
+too easy to cheat. On some versions of Unix, you may be able to
+socksify a program that you don't have the source code to by running
+it with an appropriate dynamic library; see <a
+href="http://www.socks.nec.com/">http://www.socks.nec.com/</a>. For
+others, you might be able to get a pre-built socksified version from
+the chess server administrators. For timeseal versions, see <a
+href="ftp://ftp.freechess.org/pub/chess/timeseal/"
+>ftp://ftp.freechess.org/pub/chess/timeseal/</a>. For timestamp
+versions, the directory would be <a
+href="ftp://ftp.chessclub.com/pub/icc/timestamp/"
+>ftp://ftp.chessclub.com/pub/icc/timestamp/</a>, but at this writing
+there don't seem to be any socksified timestamps there. Once you have
+a socksified timestamp or timeseal, simply run it with a normal,
+non-socksified xboard in place of the standard timestamp or timeseal.
+
+<p>If you have a SOCKS firewall and you are using
+<strong>WinBoard</strong>, we now know how to make this configuration
+work, complete with timestamp or timeseal!
+
+<p>Start by getting SocksCap32. This software is freely available
+from <a href="http://www.socks.nec.com/">http://www.socks.nec.com/</a>.
+Install it on your machine, read the documentation, and learn to use
+it. You may find it useful with many other programs besides WinBoard.
+
+<p>Next, <strong>don't</strong> socksify WinBoard. Socksifying
+WinBoard itself doesn't let you use it with timestamp or timeseal.
+For some reason I don't understand -- something strange that
+SocksCap32 does -- the socksified WinBoard runs but does nothing, and
+timestamp/timeseal runs all by itself in its own window.
+
+<p>Instead, use the following workaround. Follow the instructions
+exactly; don't try to skip steps or simplify things.
+
+<p>First, make SocksCap32 application profiles for timestamp and
+timeseal. Use the following command lines in the SocksCap32
+profiles. Name the first profile "timestamp" and the second
+"timeseal".
+
+<p><pre>
+ "c:\program files\winboard\timestamp.exe" chessclub.com 5000 -p 5000
+ "c:\program files\winboard\timeseal.exe" freechess.org 5000 -p 5000
+</pre>
+
+<p>Second, run timestamp or timeseal by itself, socksified, using its
+profile. This will open an unneeded, black window that will not
+respond to typing. Minimize it to the task bar and ignore it. It will
+go away when you exit from WinBoard.
+
+<p>Next, run WinBoard using the following command line. Make a shortcut
+or type this command into an MS-DOS Prompt box. Don't run WinBoard
+itself socksified, just run it directly.
+
+<p><pre>
+ "c:\program files\winboard.exe" /ics /icshost=localhost /icsport=5000
+</pre>
+
+<p>After you get this working, you can try getting the timestamp window to
+auto-minimize by starting it from a shortcut instead of from the
+SocksCap32 control window. As it says in the SocksCap32 help file, put
+the following in the Target field of a shortcut's Properties page:
+
+<p><pre>
+ "c:\program files\sockscap32\sc32.exe" timestamp
+</pre>
+
+Then select "Run: Minimized" on the same page. Do the same for timeseal.
+
+<p>Another method that can work is to use a .bat file to start both
+timestamp and WinBoard. It would look something like this:
+
+<p><pre>
+ REM --
+ REM -- icc.bat
+ REM -- Start timestamp under SocksCap32 and use WinBoard to connect to it.
+ REM -- The string "timestamp" refers to a SocksCap32 profile for timestamp.
+ REM -- Do not change it to the filename of the timestamp program!
+ REM --
+ start /minimized "c:\program files\sockscap32\sc32.exe" timestamp
+ cd "c:\program files\winboard"
+ winboard /ics /icshost=localhost /icsport=5000
+</pre>
+
+<p>This workaround has a problem if you want to run two copies of
+WinBoard at once, talking to the same chess server twice (for
+bughouse) or to two different chess servers. If you need to do that,
+you will need to run a separate copy of timestamp with <i>a different
+port number</i> for each connection. You'll need to make a second set of
+profile entries with a different value after the -p flag (say, 5001)
+and you'll need to change the WinBoard command line /icsport=5000 for
+the second WinBoard to match.
+
+<HR>
+<H3><A NAME="[B.20]">[B.20]
+How can I use XBoard or WinBoard on chess.net with accuclock?
+</A></H3>
+
+<p>I believe chess.net provides a Win32 command-line version of
+accuclock that will work with WinBoard. Please see the documentation
+on the chess.net server itself; don't ask the author of WinBoard.
+
+<p>I don't know whether chess.net provides versions of accuclock for
+Unix at this time. Ask them.
+
+<hr>
+<h3><a name="[B.21]">[B.21]
+ Can I get Zippy to do one or more ICS commands automatically at the
+ start or end of each game?</a></h3>
+
+<p>By default, Zippy automatically sends the command "gameend" to ICS
+at the end of each game. You can alias this command (using the ICS
+"alias" feature) to anything you want. On ICC, you can use the
+"multi" feature to alias gameend to several commands, but other
+servers don't have that feature. Zippy doesn't send anything at the
+start of the game by default.
+
+<p>You can get Zippy to send one or more commands of your choosing, at
+the start and/or end of each game, by using the -zippyGameStart and
+-zippyGameEnd command line options, newly added in version 4.0.3.
+Both xboard and WinBoard have (somewhat obscure) ways of getting
+newlines into this option to send several commands. Here is an
+example of one way to do it for each.
+
+<p><pre>
+ xboard -ics -zp -xrm '*zippyGameStart: say hi\nsay prepare to die\n'
+
+ WinBoard /ics /zp /zippyGameEnd='say thanks\nseek 5 0\nseek 2 12\n'
+</pre>
+
+<hr>
+<h3><a name="[B.22]">[B.22]
+ How do I print from WinBoard?
+</a></h3>
+
+WinBoard does not have built-in printing functionality.
+If you want to print a picture of the board, press Alt+PrintScrn, run the
+standard Windows application Paintbrush, select Paste, and print from there.
+If you want to print a list of moves, save your game as a PGN file,
+then open the PGN file with Notepad or any other plain text editor and
+print it from there.
+
+<hr>
+<h3><a name="[B.23]">[B.23]
+ Can I get Zippy to automatically reconnect to ICS when its connection
+ breaks?</a></h3>
+
+<p>There isn't a perfect solution to this problem yet, but a pretty
+good one is to write a shell script (for xboard) or .bat script (for
+WinBoard) that automatically restarts the program whenever it exits.
+Use the -xexit flag so that you don't get a popup dialog that must be
+dismissed with the OK button before the program will exit. The gap in
+this solution is that your connection to ICS can sometimes get into a
+state where the program does not notice that the connection is broken
+until the next time it tries to send a command. Perhaps some future
+version of xboard/WinBoard will have an option to send a harmless
+command every five minutes or so.
+
+<p>Anyway, here is a sample Windows .bat file that restarts WinBoard each
+time it exits. Thanks to Jason Williamson. It assumes that you have put
+your computer account's name and password in a file named logon.ini.
+
+<pre>
+REM --
+REM -- wbrecon.bat
+REM -- Start WinBoard in Zippy mode, and restart it each time it exits.
+REM -- Add or change parameters as needed for your application.
+REM --
+:loop
+start /w winboard /zp /ics /icslogon logon.ini /xexit /xautoraise
+REM -- The next line is to have a short delay setup for 139 seconds.
+REM -- Leave it out if it doesn't work on the version of Windows you use.
+TYPE NUL | CHOICE.COM /N /CY /TY,99 >NUL
+goto loop
+</pre>
+
+<p>Here is a Unix shell script to do the same thing for xboard.
+It's a bit more elaborate. It is based on the script I use for the
+original Zippy. It logs all ICS output to a file named zippy.out,
+and it lets you type commands to Zippy by running "cat > zippy.fifo".
+
+<pre>
+#! /bin/sh
+host="204.178.125.65 -icsport 5000 -telnet -telnetProgram timestamp"
+#host="164.58.253.13 -icsport 5000 -telnet -telnetProgram timeseal"
+out=zippy.out
+fifo=zippy.fifo
+ZIPPYPASSWORD='something'
+export ZIPPYPASSWORD
+ZIPPYPASSWORD2='orother'
+export ZIPPYPASSWORD2
+ZIPPYLINES=`pwd`/all.lines
+export ZIPPYLINES
+ZIPPYGAMEEND='say Yow, that was FUN!
+gameend'
+export ZIPPYGAMEEND
+zippylogon=`pwd`/logon.ini
+DISPLAY=`hostname`:0.0
+export DISPLAY
+mv -f $out ${out}.old
+rm -f $fifo
+mkfifo $fifo
+pid=$$
+( while [ true ] ; do cat -u $fifo ; done ) | \
+ ( while [ true ] ; do
+ xboard -iconic -ics -icshost $host \
+ -zt -zp -xbell -xanimate \
+ -xautosave -xquiet -fcp "gnuchessx -h" \
+ -icslogon $zippylogon -xexit -autoflag -xautoraise $*
+ sleep 600
+ done ) > $out 2>&1 &
+</pre>
+
+<hr>
+<h3><a name="[B.24]">[B.24]
+ The chess engines are too strong and always beat me. How can I adjust
+ the difficulty level to make them weaker?</a></h3>
+
+<p>The simplest way to get that effect is to make sure the
+XBoard/WinBoard Auto Flag option is off, set a very fast time control
+so that the chess engine can't think for long, but take as much time
+over your own moves as you want. Also feel free to use Retract Move if
+you make a blunder.
+
+<p>Many chess coaches will let you switch sides after
+they get a stronger position so that you can get experience playing
+positions where you are winning. You can try this with XBoard/WinBoard
+by using the Machine White or Machine Black menu command to make the
+machine take over your position.
+
+<p>The -depth command-line option to XBoard/WinBoard can also be used to
+weaken the engine (see the man page or Help file). It's a bit of a
+nuisance to set command line options in Windows, but see topic <A
+HREF="#[C.7]">[C.7]</A> for instructions.
+
+<p>Other ways of weakening engines are engine-specific. Many of them
+let you adjust various parameters, and if you choose bad settings, the
+engine will play more poorly. Consult whatever documentation came with
+the engine you are using.
+
+<hr>
+<h3><a name="[B.25]">[B.25]
+ May I use the piece bitmaps from XBoard/WinBoard in my own program?</a></h3>
+
+<p>The piece bitmaps used in XBoard and WinBoard were designed by
+Elmar Bartel. He released them under the <a
+href="http://www.gnu.org/copyleft/gpl.html">GNU General Public
+License</a>. This means that if your program is also free software
+distributed under the GPL, you can use them freely. If your program
+is distributed under some other license, including commercial,
+shareware, or non-GPL freeware, then you cannot use the bitmaps unless
+you obtain special permission from Elmar. See the file README.bitmaps
+that comes with the XBoard and WinBoard source code for more
+information and an email address you can write to.
+
+<HR><H2><A NAME="[C]">[C] XBoard and WinBoard, bugs and problems</A></H2>
+
+<HR><H3><A NAME="[C.1]">[C.1] I can't build XBoard
+because the X11/Xaw/... include files are not found.</A></H3>
+
+These are the header files for the Athena Widgets library, which XBoard uses
+heavily. Some versions of Unix don't supply these files, but they are part of
+the standard X distribution, freely available from MIT.
+
+<P>For general information on getting missing X sources, see the FAQ on
+comp.windows.x. Note that you may be missing only the header files, or you
+may be missing the libraries themselves too.
+
+<P>HP-UX users are missing only the header files. You can get them by
+anonymous FTP as follows. (But first check with your system
+administrator to see if someone else at your site has already done
+this.) Get the archive file /hpux9/X11R5/Core/Xaw-5.00.tar.gz (Xaw
+header files) via anonymous FTP from the site hpux.csc.liv.ac.uk
+(138.253.42.172), or one of the other official sites---Germany:
+hpux.ask.uni-karlsruhe.de (129.13.200.57), US: hpux.cae.wisc.edu
+(144.92.4.15), France: hpux.cict.fr (192.70.79.53) or Netherlands:
+hpux.ced.tudelft.nl (130.161.140.100). Unpack the archive using gzip
+and follow the instructions in its README and/or HPUX.Install files.
+Thanks to Richard Lloyd for this information.
+
+<P>If you have the Xaw header files installed in a different place
+than the other X11 headers, you may need to configure XBoard with an
+extra flag to help it find them. For example, if yours are in
+/foo/bar/X11/Xaw, try this:
+
+<p><PRE>
+ rm config.cache
+ (setenv CFLAGS -I/foo/bar ; configure)
+</PRE>
+<P>
+Also see topic <A HREF="#[C.2]">[C.2]</A>.
+
+<HR>
+<H3><A NAME="[C.2]">[C.2] Configuring or building XBoard fails due to
+missing header files, missing libraries, or undefined symbols.
+</A></H3>
+
+Perhaps you have the X server and client programs installed on your
+machine, but not the X header files and link-time libraries. If so,
+you can run existing X programs, but you cannot compile a new X
+program from source code. In this case the XBoard configure script
+will fail and will tell you to look at this question in the FAQ. Many
+GNU/Linux distributions put the headers and libraries in a separate
+package, which you might not have installed. If you are using RedHat,
+install the XFree86-devel package. If you are using some other
+kind of Unix, ask your system administrator where to find the X header
+files and link-time libraries. If this is not your problem, read on.
+
+<p>The configure script for XBoard looks for X libraries and header
+files in some common places. Sometimes it fails: If yours are
+installed in an odd place, it may not find them at all. If you have
+more than one version of X installed on your system, it may find the
+"wrong" one, or occasionally it may find libraries from one version
+and incompatible header files from another. You can work around these
+problems by telling the configure script where the files are. For
+example:
+
+<p><PRE>
+ configure --x-includes=/odd/place/include \
+ --x-libraries=/odd/place/lib
+</PRE>
+
+<P>The directory named in the argument to --x-includes must have a
+subdirectory "X11" that contains the actual .h files. That is, if
+your X.h file has full pathname /odd/place/X11R6/include/X11/X.h, then
+you must give the argument --x-includes=/odd/place/X11R6/include.
+
+<P>Some linkers have bugs that cause bogus error messages when you try
+to link X programs. The configure script includes a workaround for a
+bug of this kind that exists in some SunOS 4.x.x installations. See
+the FAQ on comp.windows.x for more information about problems of this
+kind.
+
+<P>If all else fails, check whether anyone else at your site has been able to
+compile any X programs on your system. Your X installation might be buggy.
+If so, the system administrator at your site might know how to fix or work
+around the problem.
+
+<P>Also see topic <A HREF="#[C.1]">[C.1]</A>.
+
+<HR><H3><A NAME="[C.3]">[C.3] I have problems using WinBoard on ICS
+with a modem. I'm not running SLIP or PPP, but just dialing in to an
+ordinary login account ("shell account").</A></H3>
+
+Here are solutions to some common problems in this area.
+
+<P>Some people want to connect to ICS through HyperTerminal or some other
+terminal program first, then run WinBoard. This is not how it works.
+WinBoard wants to talk directly with your modem, acting as a terminal program
+itself. Start out with the modem "on hook" (not making a call).
+
+<P>Run WinBoard with a command line like this (adding more options if desired):
+
+<p><PRE>
+ WinBoard /ics /icscom com1
+</PRE>
+
+Use com2, com3, or com4 in place of com1 if your modem is connected to one of
+those ports.
+
+<P>After you start WinBoard, you may need to change some of the options in the
+Communications dialog (on the Options menu). The dialog has the usual options
+for talking to modems: bits per second, bits per byte, parity, number of stop
+bits. You will probably want to use Save Settings Now when you're done.
+
+<P>Next, type dialing commands to your modem in the text window that WinBoard
+creates. You may need to turn off Local Line Editing on the Options menu
+while you are typing commands to your modem. Turn it back on when you're
+done. See the WinBoard Help file for instructions if you see your typing
+echoed an extra time after you hit Enter.
+
+<HR>
+<H3><A NAME="[C.4]">[C.4]
+I have problems using WinBoard on ICS with Windows 95 and SLIP
+or PPP. When trying to start up, it gets the error "Address family
+not supported by protocol family" (or some equally strange message).
+</A></H3>
+
+WinBoard is a 32-bit application, but some Winsock (TCP/IP) implementations
+support only 16-bit applications. You get a strange looking error message
+if you try to use a 32-bit application because
+there is no standard Winsock error code number
+for "32-bit application not supported."
+
+<P>Microsoft TCP/IP works with both 16-bit and
+32-bit applications, supports SLIP, PPP, Ethernet, etc., and is included
+with Windows 95 and later Windows systems.
+If possible, I recommend that you uninstall
+whatever Winsock you are using and install Microsoft TCP/IP instead.
+For more information, see
+<A HREF=
+"http://walden.mo.net/~rymabry/95winfaq.html"
+>http://walden.mo.net/~rymabry/95winfaq.html (the Win95-L FAQ)</A>.
+
+<P>Trumpet Winsock 2.1 (and earlier) supports only 16-bit
+applications, and hence does not work with WinBoard. But there is a
+beta-test release available that does support 32-bit applications.
+I have not tried it with WinBoard, but it
+should work. See Trumpet's Web page
+<A HREF=
+"http://www.trumpet.com.au/wsk/winsock.htm"
+>http://www.trumpet.com.au/wsk/winsock.htm</A>
+for more information.
+
+<P>The 16-bit versions of America On-Line's software do not support
+32-bit Winsock applications. Get the 32-bit version. At one time the
+32-bit version was called "AOL for Windows 95," but I imagine that has
+changed. Hopefully the current versions are all 32-bit.
+
+<P>A few versions of Winsock may have bugs that prevent
+Windows timestamp/timeseal from working with them. I'm not sure if
+such bugs exist in any versions that actually have 32-bit support,
+so this point might be moot. Again, Microsoft TCP/IP is known to work.
+
+<HR><H3><A NAME="[C.5]">[C.5] When I try to run WinBoard, I get the
+message "Failed to start chess program gnuchess on localhost: NO
+LANGFILE (file gnuchess.lan not found)".</A></H3>
+
+<p>This message means that WinBoard is trying to run GNU Chess, but
+GNU Chess cannot find a file that it needs, named gnuchess.lan.
+If you see it, you've probably customized WinBoard's /fcp, /fd, /scp,
+and/or /sd options and made a mistake in the process. Review what
+you did, and see the WinBoard help file.
+
+<HR>
+<H3><A NAME="[C.6]">[C.6] I want to use XBoard or WinBoard as an Internet
+Chess Server interface, but the ICS Client option is grayed out on the
+menu.</A></H3>
+
+XBoard and WinBoard have three major modes that can't be changed from the
+menus: local chess engine mode,
+ICS mode, and standalone mode.
+
+<p>With XBoard, you have to set the mode using command-line options.
+Local chess engine mode is the default, -ics selects ICS mode, and
+-ncp ("no chess program") selects standalone mode.
+
+<p>With WinBoard, if you don't set the mode using command-line
+options, you get a dialog box asking which mode you want. To bypass
+the dialog box, use -cp ("chess program") for local chess engine mode,
+or -ics or -ncp as with XBoard. Also see topic <A HREF="#[C.7]">[C.7]</A>.
+
+<HR>
+<H3><A NAME="[C.7]">[C.7] How do I give command-line options to
+a Windows program like WinBoard?</A></H3>
+
+<P>There are many ways; pick your favorite:
+
+<P><UL>
+<LI>Type the command line into an MS-DOS Prompt box. Example:
+"WinBoard -ics".
+
+<LI>Make a Windows shortcut for WinBoard. You can do this by
+right-dragging WinBoard.exe to the desktop and selecting "Create
+Shortcut(s) Here" from the menu that appears. Right-click on the
+shortcut, select Properties, and click the Shortcut tab. The
+command-line text box is labelled "Target" instead of "Command line"
+just to confuse you. Edit the text in this box, adding the command
+line options to the end.</LI>
+
+<LI>Choose Run from the Start menu, or File / Run from the Program
+Manager or File Manager, and type the command line into the dialog you
+get. You may have to give WinBoard's full drivespec and filename if
+it is not in a directory on your search path.</LI>
+
+<LI>Make a Program Manager icon for WinBoard. You can do this by
+dragging WinBoard.exe from the File Manager into the Program Manager,
+or by using File / New in the Program Manager. Select the icon and
+choose File / Properties. Edit the Command Line text box to add the
+command-line options to the end.</LI>
+</UL>
+
+<HR>
+<H3><A NAME="[C.9]">[C.9]
+When I exit from WinBoard after using it to play against a chess
+program on my machine, the chess program keeps running in the background.
+</A></H3>
+
+<p>Be sure you have the current versions of WinBoard and the chess
+engine you are using. WinBoard 3.4.1 and earlier had a bug that
+caused this problem to occur with all chess engines. A buggy chess
+engine that does not respond to the "quit" command will also cause
+this.
+
+<p>If you still see this problem, you can stop the rogue chess engine
+by pressing Ctrl+Alt+Del, selecting the chess engine process from the
+menu, and pressing the End Task button.
+
+<hr>
+<h3><a name="[C.12]">[C.12]
+Why do my ICS
+opponents often get extra time after they make their moves?
+Why do I sometimes lose time off my clock after I make my move?
+</a></h3>
+
+If you are playing with the ICS incremental clock, both you and your
+opponent get a set amount of extra time after each move.
+
+<p>If your or your opponent has netlag, your opponent might appear to
+get extra time, especially if your opponent is using timestamp or
+timeseal. The ICS charges each player who is using timestamp or
+timeseal only for the time between when the player received his
+opponent's move and the time he sent his own move. Thus delays in
+network transmission do not count against either player. But WinBoard
+counts down the display of your opponent's clock on your screen under
+the assumption that there is no netlag. When his move comes in, if
+there was netlag, the ICS may not have really charged him for that
+much time, and WinBoard corrects the clock to what the ICS says it
+should read.
+
+<p>If you are not using timestamp or timeseal, you may appear to lose
+time off your clock at some point after you make your move. In this
+case, the ICS charges you for the time between when it sent you your
+opponent's move and the time it received your move. Thus delays in
+network transmission count against you. WinBoard stops counting down
+the display of your clock on your screen (and starts your opponent's)
+when you make your move. When the ICS echoes your move back to you, it
+may have charged you for more time than that, and WinBoard corrects
+the clocks to what the ICS says they should read.
+
+<p>See "help lag" and "help timestamp" or "help timeseal" on your ICS for
+more detailed information.
+
+<hr>
+<h3><a name="[C.13]">[C.13]
+I can't run WinBoard unless I delete the WinBoard.ini file each time!
+</a></h3>
+
+<p>Most people don't have this problem, but two or three people using
+Windows NT 4.0 with Service Pack 3 or 4 have reported it. I have no
+idea what causes this problem. Contrary to what was reported in a
+previous version of this FAQ, reinstalling the service pack after
+installing WinBoard does not seem to solve the problem.
+
+<hr>
+<h3><a name="[C.15]">[C.15]
+I get errors compiling XBoard's parser.c.
+</a></h3>
+
+<p>The file parser.c is automatically generated from parser.l. The
+copy included with XBoard 4.0.2 was generated by lex on Tru64 Unix and
+has problems compiling and linking on current GNU/Linux versions. The
+copy included with XBoard 4.0.3 was generated by flex on a GNU/Linux
+machine, but it too won't necessarily work on other versions of Unix.
+If you have this problem, you can fix it by deleting parser.c and
+letting the Makefile re-create it from parser.l. This will work if
+you have either lex or flex on your system. Flex is available in all
+GNU/Linux distributions and can be obtained at no charge from the Free
+Software Foundation, www.fsf.org.
+
+<hr>
+<h3><a name="[C.16]">[C.16]
+I get an error building WinBoard from source because "flex" is not found.
+</a></h3>
+
+<p>The file parser.c is automatically generated from parser.l. The
+Makefile included with the WinBoard source kit has a rule for
+generating parser.c using the program "flex", which will fail if you
+don't have flex. However, the source kit also includes a ready-made
+copy of parser.c, so you don't really need flex unless you have made
+changes to parser.l. Check that you still have a copy of parser.c; if
+you don't, unpack the WinBoard source zip file again to get one.
+Either set the last-modified time of parser.c to be later than that of
+parser.l, delete parser.l, or comment out the Makefile rule for
+building parser.c from parser.l, and then try building WinBoard again.
+
+<p>If you do want to change parser.l and rebuild parser.c, you can get
+flex as part of the free Cygwin kit from
+<a href="http://sourceware.cygnus.com/cygwin/"
+>http://sourceware.cygnus.com/cygwin/</a>. You can
+probably also get flex for Windows by itself from various other places
+around the Internet. It is free software distributed by the Free
+Software Foundation, www.fsf.org.
+
+<hr>
+<h3><a name="[C.17]">[C.17]
+ XBoard hangs shortly after connecting to an ICS when used with dxterm,
+ cmdtool, dtterm, kterm, konsole, or other substitutes for xterm.
+</a></h3>
+
+<p>After connecting to a chess server, XBoard 4.0.2 and later sends an
+escape sequence to its terminal that is meant to display your handle
+and the ICS host name (for example, "user@chessclub.com") in the
+terminal's banner and icon. It seems that several of the alternative
+X terminal programs have a bug that makes them hang when sent this
+escape sequence.
+
+<p>You can work
+around the problem by using xterm, nxterm, rxvt, aterm, xiterm, or
+gnome-terminal, all of which seem to work fine. In fact, current
+versions of kterm and konsole seem to work fine too, so if you are
+having problems with one of them, be sure you are not running an
+outdated version.
+
+<p>Alternatively, you can disable this feature by commenting out the
+body of DisplayIcsInteractionTitle in xboard.c and recompling xboard.
+
+<hr>
+<h3><a name="[C.18]">[C.18]
+ The WinBoard pieces show up in the wrong colors, appear distorted,
+ or are not visible at all.
+</a></h3>
+
+<p>This can happen if you have a bug in your Windows display driver.
+Check with the manufacturer of your display card, the manufacturer of
+your computer, or Microsoft to see if there is an updated driver
+available. You can usually download updated drivers from the Web.
+
+<p>If you can't find an updated driver, you can try running Windows
+using a different number of colors and/or disabling some of the
+hardware acceleration features on your display card. To change the
+number of colors, go to Windows Start / Settings / Control Panel /
+Display / Settings / Color Palette. To disable hardware acceleration
+features, go to Windows Start / Settings / Control Panel / Display /
+Settings / Advanced Properties / Performance / Hardware Acceleration.
+
+<p>It's also possible that Windows has the right driver for your
+hardware already but you are not using it. It may help to reinstall
+your driver. Go to Windows Start / Settings / Control Panel / System
+and delete your display card (maybe even your monitor too), then
+reboot. Windows should automatically re-detect your card and monitor
+and re-install the drivers; if it doesn't, run Start / Settings /
+Control Panel / Add New Hardware to force it to.
+
+<p>If all else fails, try Monochrome mode. On WinBoard's menus, go
+to Options / Color and check Monochrome. WinBoard will display in black
+and white.
+
+<HR>
+<H3><A NAME="[C.19]">[C.19] XBoard or WinBoard tells me "Error: first chess
+ program (...) exited unexpectedly".</A></H3>
+
+<p>This message means that your chess engine crashed, probably due to
+a bug in the engine, or because you have it configured incorrectly.
+You can try running XBoard or WinBoard again with the "-debug" flag on
+the command line. This will print out all the messages received from
+the chess engine. (With WinBoard, the messages go into a file called
+WinBoard.debug; with XBoard, they go to the xterm that you started
+XBoard from.)
+
+<P>If you are using GNU Chess and you see this problem as soon as it
+starts up, most likely GNU Chess is exiting with an error message. If
+you see the message "NO LANGFILE", it means that you did not install
+GNU Chess correctly, and it is unable to find the file gnuchess.lang.
+Make sure that you defined LIBDIR in the gnuchess Makefile, and that
+gnuchess.lang is in that directory. If gnuchess.lang is not there,
+you probably didn't type "make install" in the gnuchess src directory;
+you must do this to install gnuchess.lang (and the gnuchess book). If
+you defined LIBDIR to something that is not an absolute pathname (that
+is, to something that does not start with a "/"), GNU Chess will work
+only if you run it from the GNU Chess "src" directory where you built
+it.
+
+<hr><h3><a name="[C.20]">[C.20]
+ XBoard tells me "Warning: Cannot allocate colormap entry", or
+ "too few colors available; trying monochrome mode", or
+ "XPM pieces cannot be used in monochrome mode".
+</a></h3>
+
+<p>You are running your X server with 8-bit color depth, and you are running
+some program that has used up all 256 of your colors. Netscape tends
+to do this, or maybe you have a background image that uses up all of
+your colors.
+
+<p>If you have a modern machine, you probably have enough display
+memory to run your X server with 16-, 24-, or 32-bit color depth. If
+you're using "startx" to start the X server, try giving the command as
+"<tt>startx -- -bpp 24</tt>" (or 16, or 32). On newer X servers you
+may have to use -depth instead of -bpp. Further details on
+configuring your X server are beyond the scope of this FAQ.
+
+<p>If you must run in 8-bit mode, try the following:
+Avoid background images that use up all your colors. If you
+run Netscape, try starting it up with the <tt>-install</tt> command-line
+option; this gives Netscape its own private colormap that X will
+switch to when Netscape has the keyboard focus.
+
+<P>If all else fails, another possibility is to run xboard in
+monochrome (black and white) mode by giving it the <tt>-mono</tt>
+command-line option. XBoard will try this by itself in some cases.
+Monochrome mode works only with bitmap pieces, not pixmap pieces, so
+trying to use it may give you the error "XPM pieces cannot be used in
+monochrome mode". To get around this, either use the -bitmapDirectory
+command line option to point XBoard to the directory containing the
+bitmap pieces included with the XBoard source code, or rebuild XBoard
+with pixmap support disabled, using "./configure --disable-xpm ; make
+clean ; make".
+
+<hr><h3><a name="[C.21]">[C.21]
+ When I log in to freechess.org, the Enter key doesn't work, and I
+ have to use Ctrl+J instead. But when I use WinBoard, Ctrl+J doesn't
+ work either, so I'm stuck.
+</a></h3>
+
+<p>This is a pretty rare problem. It should only arise if you have to
+reach freechess.org by telnetting (or connecting with WinBoard
+/icsport=23) from a Windows PC to a Unix box, and then telnetting from
+there to freechess.org. The Enter key should always work when
+connecting directly from your PC to freechess.org.
+
+<p>The best way to get around the problem is to run timeseal on the
+intermediate Unix box instead of telnet. Get the appropriate version
+of timeseal for your box from ftp.freechess.org and follow the
+directions in the help files on FICS.
+
+<p>If you can't run timeseal for some reason, there are some things
+you can do to make telnet stay in line mode instead of going to
+character mode. Then the Enter key will work. First, try "telnet
+freechess.org 5000" instead of "telnet freechess.org."
+If that still doesn't work, then when the Enter key stops working,
+type the following. Here <tt><</tt> and <tt>></tt> surround the
+names of keys.
+
+<p><pre>
+ <Ctrl+S><Ctrl+]>mode line<Enter>
+</pre>
+
+<hr><h3><a name="[C.22]">[C.22]
+ XBoard says, "Failed to start first chess program gnuchessx
+ on localhost: gnuchessx: No such file or directory."
+</a></h3>
+
+<p>XBoard is looking for GNU Chess 4.0. If you didn't want to use
+XBoard with GNU Chess, please see topic <A HREF="#[C.6]">[C.6]</A>.
+If you did want to use GNU Chess 4.0, be sure you have it installed and
+that it is on your $PATH. If you wanted to use GNU Chess 5 instead,
+see topic <A HREF="#[D.6]">[D.6]</A>.
+
+<HR>
+<H2><A NAME="[D]">[D] Crafty and other topics</A></H2>
+<HR>
+<H3><A NAME="[D.1]">[D.1] What is XChess?</A></H3>
+
+XChess is an older chessboard program that is no longer supported. XChess was
+written for X version 10, and you may or may not be able to build and run it
+on an X11 system.
+
+<P>XChess has only one significant feature that is not present in XBoard: Two
+humans can play chess using XChess on different machines, without using the
+Internet Chess Server as an intermediary. This feature is of interest only if
+you don't have network connectivity to the Internet Chess Server.
+
+<P>Note: There actually have been several different programs called "XChess" in
+circulation at various times. The above describes one that was associated
+with GNU Chess.
+
+<HR>
+<H3><A NAME="[D.2]">[D.2] What is Winsock Chess?</A></H3>
+
+Winsock Chess is a program that lets two people play chess across a
+network. It runs only under Microsoft Windows. Some of the code in
+Winsock Chess is derived from GNU Chess, but it is not maintained by
+the GNU Chess team. You can get a copy from the Internet Chess
+Library; see topic <A HREF="#[A.2]">[A.2]</A>. For more information,
+contact its author, Donald Munro, ccahdm@beluga.upe.ac.za.
+
+<HR>
+<H3><A NAME="[D.3]">[D.3] What is Crafty?</A></H3>
+
+Crafty is a freely-available chess program written by Bob Hyatt.
+Bob is the main author of the well-known chess program Cray
+Blitz. Crafty is a very strong program, its code is available, commented
+and fairly readable, and its author is actively working on improvements.
+
+<p>You can download Crafty from <a
+href="ftp://ftp.cis.uab.edu/pub/hyatt/"
+>ftp://ftp.cis.uab.edu/pub/hyatt/</a>. Start by getting the <a
+href="ftp://ftp.cis.uab.edu/pub/hyatt/read.me" >read.me</a> file and
+reading it. Among other things, this file contains instructions on
+how to install Crafty as a command-line application on your machine.
+
+<p>There is a Crafty mailing list.
+To subscribe, send email to majordomo@cis.uab.edu, with
+"subscribe crafty-list" in the body.
+
+<HR>
+<H3><A NAME="[D.4]">[D.4] How do I use Crafty with XBoard?</A></H3>
+
+<p>First, you need to get Crafty and install it as a command-line
+application on your machine. See topic <A HREF="#[D.3]">[D.3]</A>.
+
+<p>To use Crafty with XBoard, give the -fcp
+parameter like this:
+
+<p><PRE>
+ xboard -fcp "./crafty" -fd <I>crafty_directory</I>
+</PRE>
+
+Here <I>crafty_directory</I> is the directory where you installed Crafty.
+You can add more xboard options at the end of the command line.
+
+<p>Crafty 15.14 or later is required to work properly with XBoard
+4.0.0 or later. We generally recommend using the latest versions of
+both XBoard and Crafty.
+
+<HR>
+<H3><A NAME="[D.5]">[D.5] How do I use Crafty with WinBoard?</A></H3>
+
+<p>First, you need to get Crafty and install it as a command-line
+application on your machine. See topic <A HREF="#[D.3]">[D.3]</A>.
+It is best to use the latest version of Crafty with the latest version
+of WinBoard to make sure all features are compatible and function
+correctly. You can install Crafty in any directory you like.
+
+<p>You also need to get WinBoard and install it in the normal way
+using its built-in installer. You can do that either before or after
+you install Crafty.
+
+<p>After both Crafty and WinBoard are installed separately, follow the
+directions in the WinBoard Help file (included with WinBoard) for
+connecting new chess engines to WinBoard.
+
+<p>If you want to have Crafty act as an automated computer player on a
+chess server, see topic <A HREF="#[B.16]">[B.16]</A>. Before you try
+to get that working, be sure you can play against Crafty locally,
+first without WinBoard, then with it. Also be sure you can use
+WinBoard to play on the chess server yourself, without having Crafty
+connected to it. You have to crawl before you can walk!
+
+<HR>
+<H3><A NAME="[D.6]">[D.6] How do I use GNU Chess 5 with XBoard?</A></H3>
+
+<p>By default, XBoard still tries to use GNU Chess 4 by running the
+command "gnuchessx". That's why if you don't have GNU Chess 4, you
+get the error message "Failed to start first chess program gnuchessx
+on localhost: gnuchessx: No such file or directory."
+
+<p>If you have GNU Chess 5, the command should be "gnuchess xboard"
+instead. To make XBoard use this command, give the -fcp parameter
+like this:
+
+<p><PRE>
+ xboard -fd <I>gnuchess_directory</I> -fcp "./gnuchess xboard"
+</PRE>
+
+Here <I>gnuchess_directory</I> is the directory where you installed
+GNU Chess 5 and its book. You can add more xboard options at the
+end of the command line.
+
+<p><HR>
+$Id$<br>
+** End of XBoard/WinBoard FAQ **
+</BODY></HTML>
--- /dev/null
+** Announcing the release of XBoard and WinBoard, version 4.2.7 **
+
+XBoard is a graphical chessboard for the X Window System that can
+serve as a user interface for GNU Chess, Crafty, and other chess
+engines, for the Internet Chess Servers, and for electronic mail
+correspondence chess. XBoard can also be used by itself. It can read
+and write game files in PGN (portable game notation).
+
+WinBoard is a similar program for 32-bit Microsoft Windows. It
+includes all the major features of XBoard except email correspondence
+chess.
+
+A new release of both XBoard and WinBoard is now available. Version
+4.2.7 corrects about two dozen bugs in the 4.2.6 release. See the
+ChangeLog for a list. In addition, WinBoard 4.2.7 comes bundled with
+GNU Chess 5.07 instead of the old 5.02+ version. The XBoard and
+WinBoard source code trees have been merged, so the xboard download
+now contains the complete source for both.
+
+The various larger contributions that people have submitted since the
+4.2.6 release are not yet included in 4.2.7. The source code for
+these contributions is now available, however (see
+http://www.tim-mann.org/extensions.html), and we plan to include most
+of them in a future release once the contributors complete necessary
+copyright assignment paperwork.
+
+You can get both XBoard and WinBoard from either our new Savannah
+project pages or their existing pages on Tim Mann's web site:
+
+- https://savannah.gnu.org/projects/xboard/
+- http://www.tim-mann.org/chess.html
+
+Most of the known bugs and deficiencies in previous versions have
+*not* been addressed in this release. It is not necessary to report
+your favorite bug again if you have reported it before, unless the
+ChangeLog erroneously says it has been fixed. Most known bugs,
+deficiencies, and suggestions received are now listed in the ToDo
+file. If you find a bug not listed there, please report it in the bug
+tracker at https://savannah.gnu.org/projects/xboard/ or by email to
+bug-xboard [AT] tim-mann.org.
--- /dev/null
+WinBoard is a graphical chessboard for 32-bit Microsoft
+Windows systems. It can serve as a user interface for
+GNU Chess or for internet chess servers, or it can be
+used to play out games manually or from game files.
+For full details, see the Help file (WinBoard.hlp).
+For answers for frequently asked questions, see the FAQ
+file (FAQ.html).
+
+WinBoard is free software. You can redistribute it
+and/or modify it under the GPL, as described in the
+files COPYRIGHT and COPYING. If your distribution does
+not include the source code, you can get it from the
+project's Web site:
+
+ http://savannah.gnu.org/projects/xboard/
+
+GNU CHESS
+
+Two versions of GNU Chess are included in the WinBoard
+distribution. GNU Chess is free software released
+under the GPL.
+
+Source code for GNU Chess 5 is available from:
+
+ http://savannah.gnu.org/projects/chess/
+
+Source code for GNU Chess 4 is available from:
+
+ http://tim-mann.org/gnuchess.html
+
+BUGS AND IMPROVEMENTS
+
+Report bugs in WinBoard or XBoard by email to
+<bug-xboard@gnu.org>. Report bugs in GNU Chess to
+<bug-gnu-chess@gnu.org>. Give full details, including
+the program's version number and the exact text of any
+error messages. If you improve WinBoard or XBoard,
+please send a message about your changes to
+<bug-xboard@gnu.org>. Remember that these programs
+are released under the GPL, so source code is freely
+available, but if you distribute modified versions, you
+must distribute the source code modifications under the
+GPL as well.
+
+HISTORY
+
+WinBoard is a port of the Unix program XBoard to Win32,
+the 32-bit Microsoft Windows API. The graphical front
+end (WinBoard.c, etc.) is all new, but the back end
+that understands chess rules, chess notation, GNU
+Chess, the ICS, etc., is shared with XBoard. See
+WinBoard.hlp for a list of contributors to WinBoard and
+XBoard.
--- /dev/null
+[Event "New Jersey State Open Championship"]
+[Site "East Orange, NJ USA"]
+[Date "1957.09.02"]
+[Round "7"]
+[White "Robert J. Fischer"]
+[Black "J. Sherwin"]
+[Result "1-0"]
+
+1. e4 c5 2. Nf3 e6 3. d3 Nc6 4. g3 Nf6 5. Bg2 Be7 6. O-O O-O 7. Nbd2 Rb8 8. Re1
+d6 9. c3 b6 10. d4 Qc7 11. e5 Nd5 12. exd6 Bxd6 13. Ne4 c4 14. Nxd6 Qxd6 15.
+Ng5 Nce7 16. Qc2 Ng6 17. h4 Nf6 18. Nxh7 Nxh7 19. h5 Nh4 20. Bf4 Qd8 21. gxh4
+Rb7 22. h6 Qxh4 23. hxg7 Kxg7 24. Re4 Qh5 25. Re3 f5 26. Rh3 Qe8 27. Be5+ Nf6
+28. Qd2 Kf7 29. Qg5 Qe7 30. Bxf6 Qxf6 31. Rh7+ Ke8 32. Qxf6 Rxh7 33. Bc6+ 1-0
+
+[Event "Portoroz Interzonal"]
+[Site "Portoroz, Yugoslavia"]
+[Date "1958.08.16"]
+[Round "8"]
+[White "Robert J. Fischer"]
+[Black "Bent Larsen"]
+[Result "1-0"]
+
+1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 g6 6. Be3 Bg7 7. f3 O-O 8. Qd2
+Nc6 9. Bc4 Nxd4 10. Bxd4 Be6 11. Bb3 Qa5 12. O-O-O b5 13. Kb1 b4 14. Nd5 Bxd5
+15. Bxd5 Rac8 16. Bb3 Rc7 17. h4 Qb5 18. h5 Rfc8 19. hxg6 hxg6 20. g4 a5 21. g5
+Nh5 22. Rxh5 gxh5 23. g6 e5 24. gxf7+ Kf8 25. Be3 d5 26. exd5 Rxf7 27. d6 Rf6
+28. Bg5 Qb7 29. Bxf6 Bxf6 30. d7 Rd8 31. Qd6+ 1-0
+
+[Event "Portoroz Interzonal"]
+[Site "Portoroz, Yugoslavia"]
+[Date "1958.08.27"]
+[Round "13"]
+[White "Tigran V. Petrosian"]
+[Black "Robert J. Fischer"]
+[Result "1/2-1/2"]
+
+1. c4 Nf6 2. Nc3 g6 3. g3 Bg7 4. Bg2 O-O 5. Nf3 d6 6. O-O Nc6 7. d3 Nh5 8. d4
+e5 9. d5 Ne7 10. e4 f5 11. exf5 gxf5 12. Nxe5 Nxg3 13. hxg3 Bxe5 14. f4 Bg7 15.
+Be3 Bd7 16. Bd4 Ng6 17. Re1 Rf7 18. Bf3 Qf8 19. Kf2 Re8 20. Rxe8 Qxe8 21. Bxg7
+Rxg7 22. Qd4 b6 23. Rh1 a5 24. Nd1 Qf8 25. Ne3 Rf7 26. b3 Qg7 27. Qxg7+ Kxg7
+28. a3 Rf8 29. Be2 Ne7 30. Bd3 h6 31. Rh5 Be8 32. Rh2 Bd7 33. Rh1 Rh8 34. Nc2
+Kf6 35. Nd4 Kg7 36. Be2 Ng8 37. b4 Nf6 38. Bd3 axb4 39. axb4 Kg6 40. Ra1 Ng4+
+41. Ke2 Re8+ 42. Kd2 Nf6 43. Ra6 Rb8 44. Ra7 Rc8 45. c5 bxc5 46. bxc5 dxc5 47.
+Nf3 Kf7 48. Ne5+ Ke7 49. Nxd7 Nxd7 50. Bxf5 Rf8 51. g4 Kd6 52. Bxd7 Kxd7 53.
+Ke3 Re8+ 54. Kf3 Kd6 55. Ra6+ Kxd5 56. Rxh6 c4 57. Rh1 c3 58. g5 c5 59. Rd1+
+Kc4 60. g6 c2 61. Rc1 Kd3 62. f5 Rg8 63. Kf4 Kd2 64. Rxc2+ Kxc2 65. Kg5 c4 66.
+f6 c3 67. f7 1/2-1/2
+
+[Event "Mar del Plata"]
+[Site "Mar del Plata, Argentina"]
+[Date "1959.03.30"]
+[Round "7"]
+[White "Robert J. Fischer"]
+[Black "G. Shocron"]
+[Result "1-0"]
+
+1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Re1 b5 7. Bb3 d6 8. c3
+O-O 9. h3 Na5 10. Bc2 c5 11. d4 Qc7 12. Nbd2 Bd7 13. Nf1 Rfe8 14. Ne3 g6 15.
+dxe5 dxe5 16. Nh2 Rad8 17. Qf3 Be6 18. Nhg4 Nxg4 19. hxg4 Qc6 20. g5 Nc4 21.
+Ng4 Bxg4 22. Qxg4 Nb6 23. g3 c4 24. Kg2 Nd7 25. Rh1 Nf8 26. b4 Qe6 27. Qe2 a5
+28. bxa5 Qa6 29. Be3 Qxa5 30. a4 Ra8 31. axb5 Qxb5 32. Rhb1 Qc6 33. Rb6 Qc7 34.
+Rba6 Rxa6 35. Rxa6 Rc8 36. Qg4 Ne6 37. Ba4 Rb8 38. Rc6 Qd8 39. Rxe6 Qc8 40. Bd7
+1-0
+
+[Event "Mar del Plata"]
+[Site "Mar del Plata, Argentina"]
+[Date "1959.04.03"]
+[Round "10"]
+[White "Herman Pilnik"]
+[Black "Robert J. Fischer"]
+[Result "0-1"]
+
+1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. Be2 e5 7. Nb3 Be7 8. O-O
+O-O 9. Be3 Be6 10. f3 Qc7 11. Qe1 Nbd7 12. Rd1 b5 13. Rd2 Nb6 14. Qf2 Rab8 15.
+Bxb6 Rxb6 16. Nd5 Nxd5 17. exd5 Bd7 18. f4 Bf6 19. c3 Rbb8 20. fxe5 Bxe5 21.
+Nd4 g6 22. a3 a5 23. Kh1 b4 24. cxb4 axb4 25. Rc2 Qb6 26. Nc6 bxa3 27. Qxb6
+Rxb6 28. bxa3 Ra8 29. Nxe5 dxe5 30. Rc3 Rb2 31. Rc7 Bf5 32. g4 Be4+ 33. Bf3 Bd3
+34. d6 Rd8 35. Re1 Rxd6 36. Rxe5 Rf6 37. Re3 Rxf3 38. Rxf3 Be4 39. Rxf7 Rf2 40.
+Rf8+ Kg7 0-1
+
+[Event "Mar del Plata"]
+[Site "Mar del Plata, Argentina"]
+[Date "1959.04.05"]
+[Round "12"]
+[White "Robert J. Fischer"]
+[Black "Hector Rossetto"]
+[Result "1-0"]
+
+1. e4 c5 2. Nf3 e6 3. d4 cxd4 4. Nxd4 a6 5. c4 Qc7 6. Nc3 Nf6 7. Bd3 Nc6 8. Be3
+Nxd4 9. Bxd4 Bc5 10. Bc2 d6 11. O-O Bd7 12. Na4 Bxd4 13. Qxd4 Rd8 14. Rfd1 O-O
+15. Rac1 Qa5 16. Qb6 Qxb6 17. Nxb6 Bc6 18. f3 Nd7 19. Nd5 Bxd5 20. exd5 e5 21.
+b4 g6 22. Ba4 b6 23. Rd3 f5 24. Ra3 Nb8 25. c5 bxc5 26. bxc5 dxc5 27. Rxc5 Kg7
+28. Rb3 Rf7 29. d6 Nd7 30. Rc7 Nf8 31. Rbb7 Rxc7 32. dxc7 Rc8 33. Bb3 a5 34. a4
+h6 35. h3 g5 36. g4 fxg4 37. hxg4 1-0
+
+[Event "Zurich"]
+[Site "Zurich, Switzerland"]
+[Date "1959.05.19"]
+[Round "1"]
+[White "Edgar Walther"]
+[Black "Robert J. Fischer"]
+[Result "1/2-1/2"]
+
+1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. Bg5 e6 7. f4 Be7 8. Qf3
+Nbd7 9. O-O-O Qc7 10. Bd3 b5 11. Bxf6 Nxf6 12. Rhe1 Bb7 13. Kb1 Rc8 14. g4 Nd7
+15. g5 Nb6 16. f5 e5 17. f6 gxf6 18. gxf6 Bf8 19. Nd5 Nxd5 20. exd5 Kd8 21.
+Nc6+ Bxc6 22. dxc6 Qxc6 23. Be4 Qb6 24. Qh5 Kc7 25. Bf5 Rd8 26. Qxf7+ Kb8 27.
+Qe6 Qc7 28. Re3 Bh6 29. Rc3 Qb7 30. f7 Bg7 31. Rcd3 Bf8 32. Qxe5 dxe5 33. Rxd8+
+Ka7 34. R1d7 h5 35. Rxb7+ Kxb7 36. c3 Kc7 37. Ra8 Kd6 38. Rxa6+ Ke7 39. Re6+
+Kxf7 40. Rxe5 b4 41. cxb4 Bxb4 42. h3 Kf6 43. Rb5 Bd6 44. Be4 Re8 45. Rf5+ Kg7
+46. Bf3 Re1+ 47. Kc2 Rf1 48. Rd5 Rf2+ 49. Rd2 Rxd2+ 50. Kxd2 h4 51. Kd3 Kf6 52.
+Kc4 Ke7 53. Kb5 Kd7 54. a4 Kc7 55. b4 Kb8 56. a5 Ka7 57. Kc4 Bg3 58. b5 Bf2 59.
+Be2 Be3 60. Kb3 Bd2 61. b6+ Kb7 62. Ka4 Kc6 63. Bb5+ Kc5 1/2-1/2
+
+[Event "Zurich"]
+[Site "Zurich, Switzerland"]
+[Date "1959.05.??"]
+[Round "3"]
+[White "Fridrik Olafsson"]
+[Black "Robert J. Fischer"]
+[Result "0-1"]
+
+1. c4 Nf6 2. Nc3 g6 3. d4 Bg7 4. e4 d6 5. Be2 O-O 6. Nf3 e5 7. d5 Nbd7 8. Bg5
+h6 9. Bh4 a6 10. Nd2 Qe8 11. g4 Nh7 12. Qc2 Ng5 13. h3 Nc5 14. O-O-O Bd7 15. f3
+Na4 16. Nxa4 Bxa4 17. b3 Bd7 18. Bf2 c5 19. h4 Nh7 20. Be3 b5 21. Nb1 f5 22.
+gxf5 gxf5 23. exf5 Bxf5 24. Qd2 e4 25. Rdg1 exf3 26. Bxh6 Ra7 27. Bxg7 Rxg7 28.
+Rxg7+ Kxg7 29. Bd3 bxc4 30. Rg1+ Kh8 31. Qc3+ Qe5 32. Qxe5+ dxe5 33. Bxf5 Rxf5
+34. bxc4 Nf6 35. Nd2 f2 36. Rh1 e4 37. Kd1 e3 38. Nf1 Re5 39. Ke2 Nh5 40. Kf3
+e2 0-1
+
+[Event "Zurich"]
+[Site "Zurich, Switzerland"]
+[Date "1959.05.??"]
+[Round "8"]
+[White "Robert J. Fischer"]
+[Black "Wolfgang Unzicker"]
+[Result "1-0"]
+
+1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Re1 b5 7. Bb3 d6 8. c3
+O-O 9. h3 Na5 10. Bc2 c5 11. d4 Qc7 12. Nbd2 Bd7 13. Nf1 Rfe8 14. Ne3 g6 15.
+dxe5 dxe5 16. Nh2 Rad8 17. Qf3 Be6 18. Nhg4 Nxg4 19. hxg4 Qc6 20. g5 Nc4 21.
+Ng4 Bxg4 22. Qxg4 f6 23. gxf6 Bxf6 24. a4 Nb6 25. axb5 axb5 26. Be3 Ra8 27.
+Red1 Kh8 28. b3 Bg7 29. Qh4 Bf6 30. Bg5 Bxg5 31. Qxg5 Rxa1 32. Rxa1 Nd7 33. Bd1
+Nf6 34. Ra7 Qd6 35. Be2 Re7 36. Rxe7 Qxe7 37. Bxb5 Kg7 38. Be2 Qc7 39. Qe3 Qa5
+40. g3 Qa3 41. Kg2 Qa5 42. Qd3 Qb6 43. Qc4 Qc6 44. Bd3 Qb6 45. b4 cxb4 46. cxb4
+Ng4 47. Qc5 Qxc5 48. bxc5 Kf7 49. f4 Ke7 50. Kf3 Nf6 51. Bb5 Ke6 52. Bc4+ Ke7
+53. c6 Ne8 54. fxe5 h6 55. Ke3 Nc7 56. Kd4 h5 57. Ke3 g5 58. Be2 h4 59. gxh4
+gxh4 60. Bc4 Ne8 61. Kf4 Kd8 62. Kg4 Kc7 63. Bf7 Ng7 64. Kxh4 Kxc6 65. Kg5 1-0
+
+[Event "Zurich"]
+[Site "Zurich, Switzerland"]
+[Date "1959.06.??"]
+[Round "12"]
+[White "Robert J. Fischer"]
+[Black "Paul Keres"]
+[Result "1-0"]
+
+1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Re1 b5 7. Bb3 O-O 8. c3
+d6 9. h3 Na5 10. Bc2 c5 11. d4 Qc7 12. Nbd2 cxd4 13. cxd4 Bb7 14. Nf1 Rac8 15.
+Bd3 Nc6 16. Ne3 Rfe8 17. Nf5 Bf8 18. Bg5 Nd7 19. Rc1 Qb8 20. Bb1 Nxd4 21. N3xd4
+Rxc1 22. Bxc1 exd4 23. Nh6+ gxh6 24. Qg4+ Kh8 25. Qxd7 Bd5 26. Qf5 Re5 27. Qf3
+f5 28. Bf4 Re8 29. Qh5 Bxe4 30. f3 Bc6 31. Rc1 Bd7 32. Bxh6 Re6 33. Bxf8 Qxf8
+34. Qh4 Qf6 35. Qxf6+ Rxf6 36. Kf2 Kg7 37. Rc7 Rf7 38. Ke2 f4 39. Ra7 Kf6 40.
+Rxa6 Re7+ 41. Kf2 Be6 42. Rxd6 Ke5 43. Rc6 Bd5 44. Rh6 Rc7 45. Rh5+ Kd6 46.
+Rh6+ Ke5 47. Rh5+ Kd6 48. Rf5 Rc1 49. Bd3 Rd1 50. Ke2 Rg1 51. Kf2 Rd1 52. Ke2
+Rg1 53. Rg5 Bxa2 54. Bxb5 Rb1 55. Kd3 h6 56. Rh5 Rxb2 57. Kxd4 Rxg2 58. Rxh6+
+Ke7 59. Ke4 Rg5 60. Ba6 Bf7 61. Bc8 Rg6 62. Rh7 Kf8 63. Bg4 Rg7 64. Rh6 Rg6 65.
+Rxg6 Bxg6+ 66. Kxf4 Kg7 67. Kg5 Bd3 68. f4 Be4 69. h4 Bd3 70. h5 Be4 71. h6+
+Kh8 72. Bf5 Bd5 73. Bg6 Be6 74. Kf6 Bc4 75. Kg5 Be6 76. Bh5 Kh7 77. Bg4 Bc4 78.
+f5 Bf7 79. Bh5 Bc4 80. Bg6+ Kg8 81. f6 1-0
+
+[Event "Yugoslavia Candidates Tournament"]
+[Site "Yugoslavia"]
+[Date "1959.09.07"]
+[Round "1"]
+[White "Paul Keres"]
+[Black "Robert J. Fischer"]
+[Result "0-1"]
+
+1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. Bg5 e6 7. f4 Be7 8. Qf3
+Qc7 9. O-O-O Nbd7 10. Be2 b5 11. Bxf6 Nxf6 12. e5 Bb7 13. exf6 Bxf3 14. Bxf3
+Bxf6 15. Bxa8 d5 16. Bxd5 Bxd4 17. Rxd4 exd5 18. Nxd5 Qc5 19. Re1+ Kf8 20. c3
+h5 21. f5 Rh6 22. f6 gxf6 23. Nf4 h4 24. Rd8+ Kg7 25. Ree8 Qg1+ 26. Kd2 Qf2+
+27. Ne2 Rg6 28. g3 f5 29. Rg8+ Kf6 30. Rxg6+ fxg6 31. gxh4 Qxh2 32. Rd4 Qh1 33.
+Kc2 Ke5 34. a4 Qf1 35. Nc1 Qf2+ 36. Kb3 bxa4+ 37. Ka3 Qc2 38. Nd3+ Kf6 39. Nc5
+Qc1 40. Rxa4 Qe3 41. Nxa6 f4 42. Rd4 Kf5 43. Nb4 Qe7 44. Kb3 Qxh4 45. Nd3 g5
+46. c4 Qg3 47. c5 f3 48. Kc4 f2 49. Nxf2 Qxf2 50. c6 Qxb2 51. Kc5 Qc3+ 52. Kd5
+g4 53. Rc4 Qe5# 0-1
+
+[Event "Yugoslavia Candidates Tournament"]
+[Site "Yugoslavia"]
+[Date "1959.09.11"]
+[Round "4"]
+[White "Robert J. Fischer"]
+[Black "Svetozar Gligoric"]
+[Result "1-0"]
+
+1. e4 c5 2. Nf3 Nc6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 d6 6. Bc4 Bd7 7. Bb3 g6 8. f3
+Na5 9. Bg5 Bg7 10. Qd2 h6 11. Be3 Rc8 12. O-O-O Nc4 13. Qe2 Nxe3 14. Qxe3 O-O
+15. g4 Qa5 16. h4 e6 17. Nde2 Rc6 18. g5 hxg5 19. hxg5 Nh5 20. f4 Rfc8 21. Kb1
+Qb6 22. Qf3 Rc5 23. Qd3 Bxc3 24. Nxc3 Nxf4 25. Qf3 Nh5 26. Rxh5 gxh5 27. Qxh5
+Be8 28. Qh6 Rxc3 29. bxc3 Rxc3 30. g6 fxg6 31. Rh1 Qd4 32. Qh7+ 1-0
+
+[Event "Yugoslavia Candidates Tournament"]
+[Site "Yugoslavia"]
+[Date "1959.09.22"]
+[Round "10"]
+[White "Robert J. Fischer"]
+[Black "Pal Benko"]
+[Result "1-0"]
+
+1. e4 c5 2. Nf3 Nc6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 d6 6. Bc4 Qb6 7. Nde2 e6 8.
+O-O Be7 9. Bb3 O-O 10. Kh1 Na5 11. Bg5 Qc5 12. f4 b5 13. Ng3 b4 14. e5 dxe5 15.
+Bxf6 gxf6 16. Nce4 Qd4 17. Qh5 Nxb3 18. Qh6 exf4 19. Nh5 f5 20. Rad1 Qe5 21.
+Nef6+ Bxf6 22. Nxf6+ Qxf6 23. Qxf6 Nc5 24. Qg5+ Kh8 25. Qe7 Ba6 26. Qxc5 Bxf1
+27. Rxf1 1-0
+
+[Event "Yugoslavia Candidates Tournament"]
+[Site "Yugoslavia"]
+[Date "1959.10.04"]
+[Round "16"]
+[White "Robert J. Fischer"]
+[Black "Tigran V. Petrosian"]
+[Result "1/2-1/2"]
+
+1. e4 c6 2. Nc3 d5 3. Nf3 Bg4 4. h3 Bxf3 5. Qxf3 Nf6 6. d3 e6 7. g3 Bb4 8. Bd2
+d4 9. Nb1 Bxd2+ 10. Nxd2 e5 11. Bg2 c5 12. O-O Nc6 13. Qe2 Qe7 14. f4 O-O-O 15.
+a3 Ne8 16. b4 cxb4 17. Nc4 f6 18. fxe5 fxe5 19. axb4 Nc7 20. Na5 Nb5 21. Nxc6
+bxc6 22. Rf2 g6 23. h4 Kb7 24. h5 Qxb4 25. Rf7+ Kb6 26. Qf2 a5 27. c4 Nc3 28.
+Rf1 a4 29. Qf6 Qc5 30. Rxh7 Rdf8 31. Qxg6 Rxf1+ 32. Bxf1 Rxh7 33. Qxh7 a3 34.
+h6 a2 35. Qg8 a1=Q 36. h7 Qd6 37. h8=Q Qa7 38. g4 Kc5 39. Qf8 Qae7 40. Qa8 Kb4
+41. Qh2 Kb3 42. Qa1 Qa3 43. Qxa3+ Kxa3 44. Qh6 Qf7 45. Kg2 Kb3 46. Qd2 Qh7 47.
+Kg3 Qxe4 48. Qf2 Qh1 1/2-1/2
+
+[Event "Yugoslavia Candidates Tournament"]
+[Site "Yugoslavia"]
+[Date "1959.10.22"]
+[Round "25"]
+[White "Svetozar Gligoric"]
+[Black "Robert J. Fischer"]
+[Result "1/2-1/2"]
+
+1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. Bg5 e6 7. f4 Be7 8. Qf3
+Qc7 9. O-O-O Nbd7 10. g4 b5 11. Bxf6 gxf6 12. f5 Ne5 13. Qh3 O-O 14. Nce2 Kh8
+15. Nf4 Rg8 16. Rg1 d5 17. fxe6 dxe4 18. Nd5 Qc5 19. Nxe7 Qxe7 20. Nf5 Qxe6 21.
+Qh6 Bd7 22. Rd6 Nxg4 23. Rxg4 Qxf5 24. Rxg8+ Rxg8 25. Rxf6 Qd5 26. Rd6 Qf5 27.
+Rf6 Qg5+ 28. Qxg5 Rxg5 29. Rxf7 Bg4 30. Kd2 Bf3 31. Ke3 Rg1 32. Bh3 Re1+ 33.
+Kf4 Bd1 34. Ke5 e3 35. Bf5 Rg1 36. Rxh7+ Kg8 37. Rc7 Bg4 38. Bxg4 Rxg4 39. Rc3
+e2 40. Re3 Rg2 41. Kd4 e1=Q 42. Rxe1 Rxc2 43. Rb1 Kf7 44. a3 Ke6 45. b3 Rxh2
+46. Kc5 Kd7 47. Kb6 Ra2 48. Kxa6 Rxa3+ 49. Kb7 Kd6 50. Kb6 Kd7 51. b4 Rh3 52.
+Rc1 Rh8 53. Kxb5 Rb8+ 54. Ka4 Ra8+ 55. Kb3 Rc8 56. Rxc8 Kxc8 57. Kc4 Kb8
+1/2-1/2
+
+[Event "Yugoslavia Candidates Tournament"]
+[Site "Yugoslavia"]
+[Date "1959.10.26"]
+[Round "27"]
+[White "Robert J. Fischer"]
+[Black "Mikhail N. Tal"]
+[Result "0-1"]
+
+1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. Bc4 e6 7. Bb3 b5 8. f4
+b4 9. Na4 Nxe4 10. O-O g6 11. f5 gxf5 12. Nxf5 Rg8 13. Bd5 Ra7 14. Bxe4 exf5
+15. Bxf5 Re7 16. Bxc8 Qxc8 17. Bf4 Qc6 18. Qf3 Qxa4 19. Bxd6 Qc6 20. Bxb8 Qb6+
+21. Kh1 Qxb8 22. Qc6+ Rd7 23. Rae1+ Be7 24. Rxf7 Kxf7 25. Qe6+ Kf8 26. Qxd7 Qd6
+27. Qb7 Rg6 28. c3 a5 29. Qc8+ Kg7 30. Qc4 Bd8 31. cxb4 axb4 32. g3 Qc6+ 33.
+Re4 Qxc4 34. Rxc4 Rb6 35. Kg2 Kf6 36. Kf3 Ke5 37. Ke3 Bg5+ 38. Ke2 Kd5 39. Kd3
+Bf6 40. Rc2 Be5 41. Re2 Rf6 42. Rc2 Rf3+ 43. Ke2 Rf7 44. Kd3 Bd4 45. a3 b3 46.
+Rc8 Bxb2 47. Rd8+ Kc6 48. Rb8 Rf3+ 49. Kc4 Rc3+ 50. Kb4 Ba1 51. a4 b2 0-1
+
+[Event "Yugoslavia Candidates Tournament"]
+[Site "Yugoslavia"]
+[Date "1959.10.29"]
+[Round "28"]
+[White "Vasily V. Smyslov"]
+[Black "Robert J. Fischer"]
+[Result "0-1"]
+
+1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. Bg5 e6 7. f4 Be7 8. Qf3
+Qc7 9. O-O-O Nbd7 10. g4 b5 11. Bxf6 Nxf6 12. g5 Nd7 13. Bh3 b4 14. Nce2 Bb7
+15. Kb1 Nc5 16. Ng3 d5 17. f5 dxe4 18. Qg4 exf5 19. Ndxf5 g6 20. Nxe7 Qxe7 21.
+Qf4 O-O 22. Rd6 Rad8 23. Rf6 Rd5 24. Bg4 Nd7 25. Rf1 e3 26. b3 Rd2 27. Bxd7
+Rxd7 28. Re1 Re8 29. h4 Qc5 30. Qc4 Qxc4 31. bxc4 Rd4 32. c5 Rxh4 33. c6 Bc8
+34. Rd6 Rc4 35. Kb2 Kg7 36. Kb3 Rg4 37. Ne2 Re6 38. Red1 Rg2 39. Nf4 Rxd6 40.
+Rxd6 Rd2 41. Rd3 Rf2 42. Rd4 e2 43. Nd3 Bf5 44. c7 Rf3 45. c8=Q Bxc8 46. Re4
+Bf5 47. Rxe2 Bxd3 48. cxd3 Rxd3+ 49. Kxb4 Rd5 50. Rg2 h6 51. gxh6+ Kxh6 52. a4
+g5 53. Rc2 Rd6 54. Kc5 Re6 0-1
+
+[Event "Mar del Plata"]
+[Site "Mar del Plata, Argentina"]
+[Date "1960.03.30"]
+[Round "2"]
+[White "Boris V. Spassky"]
+[Black "Robert J. Fischer"]
+[Result "1-0"]
+
+1. e4 e5 2. f4 exf4 3. Nf3 g5 4. h4 g4 5. Ne5 Nf6 6. d4 d6 7. Nd3 Nxe4 8. Bxf4
+Bg7 9. Nc3 Nxc3 10. bxc3 c5 11. Be2 cxd4 12. O-O Nc6 13. Bxg4 O-O 14. Bxc8 Rxc8
+15. Qg4 f5 16. Qg3 dxc3 17. Rae1 Kh8 18. Kh1 Rg8 19. Bxd6 Bf8 20. Be5+ Nxe5 21.
+Qxe5+ Rg7 22. Rxf5 Qxh4+ 23. Kg1 Qg4 24. Rf2 Be7 25. Re4 Qg5 26. Qd4 Rf8 27.
+Re5 Rd8 28. Qe4 Qh4 29. Rf4 1-0
+
+[Event "Reykjavik"]
+[Site "Reykjavik, Iceland"]
+[Date "1960.10.06"]
+[Round "2"]
+[White "Arinbjorn Gudmundsson"]
+[Black "Robert J. Fischer"]
+[Result "0-1"]
+
+1. d4 Nf6 2. Nf3 d5 3. e3 g6 4. c4 Bg7 5. Nc3 O-O 6. Qb3 e6 7. Be2 Nc6 8. Qc2
+dxc4 9. Bxc4 e5 10. dxe5 Ng4 11. O-O Ncxe5 12. Nxe5 Nxe5 13. Be2 c6 14. f4 Ng4
+15. h3 Bf5 16. e4 Qd4+ 17. Kh1 Nf2+ 18. Rxf2 Qxf2 19. exf5 Bxc3 20. bxc3 Rae8
+21. Bd3 Re1+ 22. Kh2 Qg1+ 23. Kg3 Rfe8 24. Rb1 gxf5 25. Bd2 Rxb1 26. Qxb1 Qxb1
+27. Bxb1 Re2 0-1
+
+[Event "14th Olympiad (Preliminary)"]
+[Site "Leipzig, Germany"]
+[Date "1960.10.24"]
+[Round "8"]
+[White "Rene Letelier"]
+[Black "Robert J. Fischer"]
+[Result "0-1"]
+
+1. d4 Nf6 2. c4 g6 3. Nc3 Bg7 4. e4 O-O 5. e5 Ne8 6. f4 d6 7. Be3 c5 8. dxc5
+Nc6 9. cxd6 exd6 10. Ne4 Bf5 11. Ng3 Be6 12. Nf3 Qc7 13. Qb1 dxe5 14. f5 e4 15.
+fxe6 exf3 16. gxf3 f5 17. f4 Nf6 18. Be2 Rfe8 19. Kf2 Rxe6 20. Re1 Rae8 21. Bf3
+Rxe3 22. Rxe3 Rxe3 23. Kxe3 Qxf4+ 0-1
+
+[Event "Exhibition Game"]
+[Site "Berlin, Germany"]
+[Date "1960.10.??"]
+[Round "nil"]
+[White "Robert J. Fischer"]
+[Black "Klaus Darga"]
+[Result "1-0"]
+
+1. e4 e6 2. d4 d5 3. Nc3 Bb4 4. e5 c5 5. a3 Bxc3+ 6. bxc3 Ne7 7. a4 Qc7 8. Nf3
+b6 9. Bb5+ Bd7 10. Bd3 Nbc6 11. O-O c4 12. Be2 f6 13. Ba3 fxe5 14. dxe5 Nxe5
+15. Re1 N7c6 16. Nxe5 Nxe5 17. f4 Nc6 18. Bg4 O-O-O 19. Bxe6 Bxe6 20. Rxe6 Rd7
+21. f5 Nd8 22. Re3 Qf4 23. Rf3 Qe4 24. a5 Nc6 25. axb6 axb6 26. Qb1 Kc7 27. Bc1
+Qe1+ 28. Rf1 Qxc3 29. Bf4+ Kb7 30. Qb5 1-0
+
+[Event "14th Olympiad (Final)"]
+[Site "Leipzig, Germany"]
+[Date "1960.11.01"]
+[Round "5"]
+[White "Robert J. Fischer"]
+[Black "Mikhail N. Tal"]
+[Result "1/2-1/2"]
+
+1. e4 e6 2. d4 d5 3. Nc3 Bb4 4. e5 c5 5. a3 Ba5 6. b4 cxd4 7. Qg4 Ne7 8. bxa5
+dxc3 9. Qxg7 Rg8 10. Qxh7 Nbc6 11. Nf3 Qc7 12. Bb5 Bd7 13. O-O O-O-O 14. Bg5
+Nxe5 15. Nxe5 Bxb5 16. Nxf7 Bxf1 17. Nxd8 Rxg5 18. Nxe6 Rxg2+ 19. Kh1 Qe5 20.
+Rxf1 Qxe6 21. Kxg2 Qg4+ 1/2-1/2
+
+[Event "14th Olympiad (Final)"]
+[Site "Leipzig, Germany"]
+[Date "1960.11.02"]
+[Round "6"]
+[White "Laszlo Szabo"]
+[Black "Robert J. Fischer"]
+[Result "0-1"]
+
+1. d4 Nf6 2. c4 g6 3. Nc3 Bg7 4. e4 O-O 5. Bg5 d6 6. Qd2 c5 7. d5 e6 8. Bd3
+exd5 9. Nxd5 Be6 10. Ne2 Bxd5 11. exd5 Nbd7 12. O-O Ne5 13. f4 Nxd3 14. Qxd3 h6
+15. Bh4 Re8 16. Rae1 Qb6 17. Bxf6 Bxf6 18. f5 g5 19. b3 Qa5 20. Rc1 Qxa2 21.
+Rc2 Re3 22. Qxe3 Qxc2 23. Kh1 a5 24. h4 a4 0-1
+
+[Event "14th Olympiad (Final)"]
+[Site "Leipzig, Germany"]
+[Date "1960.11.03"]
+[Round "7"]
+[White "Robert J. Fischer"]
+[Black "Max Euwe"]
+[Result "1-0"]
+
+1. e4 c6 2. d4 d5 3. exd5 cxd5 4. c4 Nf6 5. Nc3 Nc6 6. Nf3 Bg4 7. cxd5 Nxd5 8.
+Qb3 Bxf3 9. gxf3 e6 10. Qxb7 Nxd4 11. Bb5+ Nxb5 12. Qc6+ Ke7 13. Qxb5 Nxc3 14.
+bxc3 Qd7 15. Rb1 Rd8 16. Be3 Qxb5 17. Rxb5 Rd7 18. Ke2 f6 19. Rd1 Rxd1 20. Kxd1
+Kd7 21. Rb8 Kc6 22. Bxa7 g5 23. a4 Bg7 24. Rb6+ Kd5 25. Rb7 Bf8 26. Rb8 Bg7 27.
+Rb5+ Kc6 28. Rb6+ Kd5 29. a5 f5 30. Bb8 Rc8 31. a6 Rxc3 32. Rb5+ Kc4 33. Rb7
+Bd4 34. Rc7+ Kd3 35. Rxc3+ Kxc3 36. Be5 1-0
+
+[Event "US Championship"]
+[Site "New York City, NY USA"]
+[Date "1960.12.19"]
+[Round "2"]
+[White "William Lombardy"]
+[Black "Robert J. Fischer"]
+[Result "0-1"]
+
+1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. f3 Nc6 6. c4 e6 7. Nc3 Be7 8. Be3
+O-O 9. Nc2 d5 10. cxd5 exd5 11. Nxd5 Nxd5 12. Qxd5 Qc7 13. Qb5 Bd7 14. Rc1 Nb4
+15. Nxb4 Qxc1+ 16. Bxc1 Bxb5 17. Nd5 Bh4+ 18. g3 Bxf1 19. Kxf1 Bd8 20. Bd2 Rc8
+21. Bc3 f5 22. e5 Rc5 23. Nb4 Ba5 24. a3 Bxb4 25. axb4 Rd5 26. Ke2 Kf7 27. h4
+Ke6 28. Ke3 Rc8 29. Rg1 Rc4 30. Re1 Rxc3+ 31. bxc3 Rxe5+ 32. Kd2 Rxe1 33. Kxe1
+Kd5 34. Kd2 Kc4 35. h5 b6 36. Kc2 g5 37. h6 f4 38. g4 a5 39. bxa5 bxa5 40. Kb2
+a4 41. Ka3 Kxc3 42. Kxa4 Kd4 43. Kb4 Ke3 0-1
+
+[Event "Match"]
+[Site "Los Angeles, CA USA"]
+[Date "1961.07.27"]
+[Round "5"]
+[White "Samuel Reshevsky"]
+[Black "Robert J. Fischer"]
+[Result "0-1"]
+
+1. d4 Nf6 2. c4 e6 3. Nc3 d5 4. cxd5 Nxd5 5. Nf3 c5 6. e3 Nc6 7. Bd3 Be7 8. O-O
+O-O 9. a3 cxd4 10. exd4 Nf6 11. Bc2 b6 12. Qd3 Bb7 13. Bg5 g6 14. Rfe1 Re8 15.
+h4 Rc8 16. Rac1 Nd5 17. Ne4 f5 18. Nc3 Bxg5 19. Nxg5 Nf4 20. Qe3 Qxd4 21. Nb5
+Qxe3 22. fxe3 Nxg2 23. Kxg2 Nd4+ 24. Be4 Bxe4+ 25. Nxe4 Nxb5 26. Nf6+ Kf7 27.
+Nxe8 Rxe8 28. a4 Nd6 29. Rc7+ Kf6 30. Rec1 h6 31. Rxa7 Ne4 32. Ra6 Rd8 33. Rc2
+Rd3 34. Rxb6 Rxe3 35. a5 f4 36. Rf2 Nxf2 37. Kxf2 Re5 38. b4 Re3 39. a6 Ra3 40.
+Rc6 g5 41. hxg5+ hxg5 42. b5 g4 43. Rc8 Kf5 44. b6 g3+ 45. Ke1 Ra1+ 46. Ke2 g2
+47. Rf8+ Ke4 48. Rxf4+ Kxf4 49. b7 g1=Q 50. b8=Q+ Kf5 51. Qf8+ Ke4 52. Qa8+ Kd4
+53. Qd8+ Kc4 54. Qd3+ Kc5 55. Qc3+ Kd6 56. Qd2+ Ke5 57. Qb2+ Kf5 0-1
+
+[Event "Match"]
+[Site "New York City, NY USA"]
+[Date "1961.07.??"]
+[Round "2"]
+[White "Robert J. Fischer"]
+[Black "Samuel Reshevsky"]
+[Result "1-0"]
+
+1. e4 c5 2. Nf3 Nc6 3. d4 cxd4 4. Nxd4 g6 5. Nc3 Bg7 6. Be3 Nf6 7. Be2 O-O 8.
+f4 d6 9. Nb3 Be6 10. g4 d5 11. f5 Bc8 12. exd5 Nb4 13. Bf3 gxf5 14. a3 fxg4 15.
+Bg2 Na6 16. Qd3 e6 17. O-O-O Nxd5 18. h3 g3 19. Rhg1 Qd6 20. Bxd5 exd5 21. Nxd5
+Kh8 22. Bf4 Qg6 23. Qd2 Bxh3 24. Rxg3 Bg4 25. Rh1 Rfe8 26. Ne3 Qe4 27. Qh2 Be6
+28. Rxg7 Kxg7 29. Qh6+ Kg8 30. Rg1+ Qg6 31. Rxg6+ fxg6 32. Nd4 Rad8 33. Be5 Rd7
+34. Nxe6 Rxe6 35. Ng4 Rf7 36. Qg5 Rf1+ 37. Kd2 h5 38. Qd8+ 1-0
+
+[Event "Match"]
+[Site "Los Angeles, CA USA"]
+[Date "1961.08.10"]
+[Round "11"]
+[White "Samuel Reshevsky"]
+[Black "Robert J. Fischer"]
+[Result "1/2-1/2"]
+
+1. c4 Nf6 2. d4 g6 3. Nc3 Bg7 4. e4 O-O 5. Be2 d6 6. Nf3 e5 7. O-O Nc6 8. d5
+Ne7 9. Ne1 Nd7 10. Nd3 f5 11. exf5 Nxf5 12. f3 Nd4 13. Ne4 b6 14. Bg5 Qe8 15.
+Bd2 a5 16. Re1 Nxe2+ 17. Qxe2 h6 18. b3 g5 19. a3 Qg6 20. b4 Nf6 21. bxa5 g4
+22. Ndf2 gxf3 23. Qxf3 Nh5 24. Qe3 bxa5 25. Rac1 Bf5 26. c5 Nf4 27. Qg3 Bxe4
+28. Rxe4 Qxe4 29. Nxe4 Ne2+ 30. Kh1 Nxg3+ 31. hxg3 Ra6 32. cxd6 cxd6 33. a4 Rf7
+34. g4 Bf8 35. Kh2 Kh7 36. Rc8 Rb6 37. Ra8 Rb3 38. Bxa5 Rf4 39. Bc7 Rxe4 40.
+Rxf8 Rd3 41. Rf6 Rxg4 42. Rxd6 Rg7 43. Rc6 Rxd5 44. Rc2 e4 45. a5 Rd3 46. Bf4
+Rf7 47. g3 e3 48. Rc1 Re7 49. Re1 Ra3 50. Re2 Kg6 51. Kg2 Rxa5 52. Rxe3 Ra2+
+53. Kf3 Rb7 54. Re6+ Kf5 55. Re5+ Kf6 56. Rd5 Rb3+ 57. Kg4 1/2-1/2
+
+[Event "Bled Tournament"]
+[Site "Bled, Yugoslavia"]
+[Date "1961.09.03"]
+[Round "1"]
+[White "Svetozar Gligoric"]
+[Black "Robert J. Fischer"]
+[Result "1/2-1/2"]
+
+1. d4 Nf6 2. c4 g6 3. Nc3 Bg7 4. e4 d6 5. Nf3 O-O 6. Be2 e5 7. O-O Nc6 8. d5
+Ne7 9. Ne1 Nd7 10. Nd3 f5 11. exf5 Nxf5 12. f3 Nf6 13. Nf2 Nd4 14. Nfe4 Nh5 15.
+Bg5 Qd7 16. g3 h6 17. Be3 c5 18. Bxd4 exd4 19. Nb5 a6 20. Nbxd6 d3 21. Qxd3
+Bd4+ 22. Kg2 Nxg3 23. Nxc8 Nxf1 24. Nb6 Qc7 25. Rxf1 Qxb6 26. b4 Qxb4 27. Rb1
+Qa5 28. Nxc5 Qxc5 29. Qxg6+ Bg7 30. Rxb7 Qd4 31. Bd3 Rf4 32. Qe6+ Kh8 33. Qg6
+1/2-1/2
+
+[Event "Bled Tournament"]
+[Site "Bled, Yugoslavia"]
+[Date "1961.09.04"]
+[Round "2"]
+[White "Robert J. Fischer"]
+[Black "Mikhail N. Tal"]
+[Result "1-0"]
+
+1. e4 c5 2. Nf3 Nc6 3. d4 cxd4 4. Nxd4 e6 5. Nc3 Qc7 6. g3 Nf6 7. Ndb5 Qb8 8.
+Bf4 Ne5 9. Be2 Bc5 10. Bxe5 Qxe5 11. f4 Qb8 12. e5 a6 13. exf6 axb5 14. fxg7
+Rg8 15. Ne4 Be7 16. Qd4 Ra4 17. Nf6+ Bxf6 18. Qxf6 Qc7 19. O-O-O Rxa2 20. Kb1
+Ra6 21. Bxb5 Rb6 22. Bd3 e5 23. fxe5 Rxf6 24. exf6 Qc5 25. Bxh7 Qg5 26. Bxg8
+Qxf6 27. Rhf1 Qxg7 28. Bxf7+ Kd8 29. Be6 Qh6 30. Bxd7 Bxd7 31. Rf7 Qxh2 32.
+Rdxd7+ Ke8 33. Rde7+ Kd8 34. Rd7+ Kc8 35. Rc7+ Kd8 36. Rfd7+ Ke8 37. Rd1 b5 38.
+Rb7 Qh5 39. g4 Qh3 40. g5 Qf3 41. Re1+ Kf8 42. Rxb5 Kg7 43. Rb6 Qg3 44. Rd1 Qc7
+45. Rdd6 Qc8 46. b3 Kf7 47. Ra6 1-0
+
+[Event "Bled Tournament"]
+[Site "Bled, Yugoslavia"]
+[Date "1961.09.10"]
+[Round "6"]
+[White "Robert J. Fischer"]
+[Black "Efim P. Geller"]
+[Result "1-0"]
+
+1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 d6 5. O-O Bg4 6. h3 Bh5 7. c3 Qf6 8. g4
+Bg6 9. d4 Bxe4 10. Nbd2 Bg6 11. Bxc6+ bxc6 12. dxe5 dxe5 13. Nxe5 Bd6 14. Nxg6
+Qxg6 15. Re1+ Kf8 16. Nc4 h5 17. Nxd6 cxd6 18. Bf4 d5 19. Qb3 hxg4 20. Qb7
+gxh3+ 21. Bg3 Rd8 22. Qb4+ 1-0
+
+[Event "Bled Tournament"]
+[Site "Bled, Yugoslavia"]
+[Date "1961.09.20"]
+[Round "12"]
+[White "Robert J. Fischer"]
+[Black "Petar Trifunovic"]
+[Result "1-0"]
+
+1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Nxe4 6. d4 b5 7. Bb3 exd4 8.
+Re1 d5 9. Nc3 Be6 10. Nxe4 dxe4 11. Rxe4 Be7 12. Bxe6 fxe6 13. Nxd4 O-O 14. Qg4
+Nxd4 15. Rxd4 Qc8 16. Re4 Rf6 17. Be3 Qd7 18. Rd1 Qc6 19. Bd4 Rg6 20. Qe2 Rd8
+21. g3 Qd5 22. Re1 c5 23. Bc3 Rd6 24. Be5 Rd8 25. Bf4 c4 26. Rxe6 Rxe6 27.
+Qxe6+ Qxe6 28. Rxe6 Bf6 29. Rxa6 Rd1+ 30. Kg2 Bxb2 31. Rb6 Ra1 32. Rxb5 Rxa2
+33. Rc5 Ra4 34. Be5 Bxe5 35. Rxe5 Ra2 36. Re2 Kf7 37. Kf3 Kf6 38. Ke4 g5 39.
+Kd4 Kf5 40. f3 c3 41. Rf2 Ra3 42. Kc4 h5 43. Kb4 Ra8 44. f4 Ke4 45. fxg5 Ke3
+46. Rg2 Kd4 47. Re2 Rb8+ 48. Ka4 Rg8 49. h4 Rf8 50. Re7 Rf3 51. Rd7+ Kc4 52.
+Rc7+ Kd4 53. Rd7+ Kc4 54. Rc7+ Kd4 55. Kb3 Rxg3 56. Rd7+ Ke4 57. Rh7 Kd4 58.
+Rxh5 Rg1 59. Rh8 Rb1+ 60. Ka4 Ra1+ 61. Kb5 Rb1+ 62. Kc6 Rg1 63. Rd8+ Kc4 64.
+Re8 Kb4 65. Kd5 Rd1+ 66. Ke6 Re1+ 67. Kf7 Rf1+ 68. Kg6 Rf2 69. h5 Rxc2 70. h6
+Rh2 71. h7 c2 72. Rc8 Kb3 73. Kg7 1-0
+
+[Event "Bled Tournament"]
+[Site "Bled, Yugoslavia"]
+[Date "1961.09.30"]
+[Round "18"]
+[White "Robert J. Fischer"]
+[Black "Tigran V. Petrosian"]
+[Result "1-0"]
+
+1. e4 c6 2. d4 d5 3. Nc3 dxe4 4. Nxe4 Nd7 5. Nf3 Ngf6 6. Nxf6+ Nxf6 7. Bc4 Bf5
+8. Qe2 e6 9. Bg5 Bg4 10. O-O-O Be7 11. h3 Bxf3 12. Qxf3 Nd5 13. Bxe7 Qxe7 14.
+Kb1 Rd8 15. Qe4 b5 16. Bd3 a5 17. c3 Qd6 18. g3 b4 19. c4 Nf6 20. Qe5 c5 21.
+Qg5 h6 22. Qxc5 Qxc5 23. dxc5 Ke7 24. c6 Rd6 25. Rhe1 Rxc6 26. Re5 Ra8 27. Be4
+Rd6 28. Bxa8 Rxd1+ 29. Kc2 Rf1 30. Rxa5 Rxf2+ 31. Kb3 Rh2 32. c5 Kd8 33. Rb5
+Rxh3 34. Rb8+ Kc7 35. Rb7+ Kc6 36. Kc4 1-0
+
+[Event "Stockholm Interzonal"]
+[Site "Stockholm, Sweden"]
+[Date "1962.02.27"]
+[Round "19"]
+[White "Robert J. Fischer"]
+[Black "Viktor L. Kortchnoi"]
+[Result "1-0"]
+
+1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Re1 b5 7. Bb3 O-O 8. c3
+d6 9. d4 Bg4 10. Be3 exd4 11. cxd4 Na5 12. Bc2 Nc4 13. Bc1 c5 14. b3 Na5 15. d5
+Nd7 16. Nbd2 Bf6 17. Rb1 c4 18. h3 Bxf3 19. Nxf3 cxb3 20. axb3 Qc7 21. Be3 Bc3
+22. Re2 b4 23. Nd4 Rfe8 24. Nf5 Nb7 25. Bd4 g6 26. Nh6+ Kf8 27. Rc1 Rac8 28.
+Bd3 Qa5 29. Rec2 Ne5 30. Bf1 Nc5 31. Bxc3 bxc3 32. Rxc3 Kg7 33. Ng4 Nxg4 34.
+Qxg4 Rb8 35. Rf3 Nxe4 36. Qf4 f5 37. Re3 Re5 38. Rc6 Rbe8 39. Rxd6 Qa1 40. Rxa6
+Qd4 41. Rd3 Qb2 42. d6 g5 43. Qe3 f4 44. Qa7+ 1-0
+
+[Event "Stockholm Interzonal"]
+[Site "Stockholm, Sweden"]
+[Date "1962.03.03"]
+[Round "21"]
+[White "Robert J. Fischer"]
+[Black "Julio Bolbochan"]
+[Result "1-0"]
+
+1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. h3 Nc6 7. g4 Nxd4 8.
+Qxd4 e5 9. Qd3 Be7 10. g5 Nd7 11. Be3 Nc5 12. Qd2 Be6 13. O-O-O O-O 14. f3 Rc8
+15. Kb1 Nd7 16. h4 b5 17. Bh3 Bxh3 18. Rxh3 Nb6 19. Bxb6 Qxb6 20. Nd5 Qd8 21.
+f4 exf4 22. Qxf4 Qd7 23. Qf5 Rcd8 24. Ra3 Qa7 25. Rc3 g6 26. Qg4 Qd7 27. Qf3
+Qe6 28. Rc7 Rde8 29. Nf4 Qe5 30. Rd5 Qh8 31. a3 h6 32. gxh6 Qxh6 33. h5 Bg5 34.
+hxg6 fxg6 35. Qb3 Rxf4 36. Re5+ Kf8 37. Rxe8+ 1-0
+
+[Event "Stockholm Interzonal"]
+[Site "Stockholm, Sweden"]
+[Date "1962.03.04"]
+[Round "22"]
+[White "Mario Bertok"]
+[Black "Robert J. Fischer"]
+[Result "0-1"]
+
+1. d4 d5 2. c4 e6 3. Nc3 Be7 4. Nf3 Nf6 5. Bg5 O-O 6. e3 h6 7. Bh4 b6 8. cxd5
+Nxd5 9. Bxe7 Qxe7 10. Nxd5 exd5 11. Be2 Be6 12. O-O c5 13. dxc5 bxc5 14. Qa4
+Qb7 15. Qa3 Nd7 16. Ne1 a5 17. Nd3 c4 18. Nf4 Rfb8 19. Rab1 Bf5 20. Rbd1 Nf6
+21. Rd2 g5 22. Nxd5 Nxd5 23. Bxc4 Be6 24. Rfd1 Nxe3 25. Qxe3 Bxc4 26. h4 Re8
+27. Qg3 Qe7 28. b3 Be6 29. f4 g4 30. h5 Qc5+ 31. Rf2 Bf5 0-1
+
+[Event "Curacao Candidates Tournament"]
+[Site "Curacao, Netherlands Antilles"]
+[Date "1962.05.12"]
+[Round "7"]
+[White "Robert J. Fischer"]
+[Black "Paul Keres"]
+[Result "1-0"]
+
+1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Re1 b5 7. Bb3 d6 8. c3
+O-O 9. h3 Na5 10. Bc2 c5 11. d4 Nd7 12. dxc5 dxc5 13. Nbd2 Qc7 14. Nf1 Nb6 15.
+Ne3 Rd8 16. Qe2 Be6 17. Nd5 Nxd5 18. exd5 Bxd5 19. Nxe5 Ra7 20. Bf4 Qb6 21.
+Rad1 g6 22. Ng4 Nc4 23. Bh6 Be6 24. Bb3 Qb8 25. Rxd8+ Bxd8 26. Bxc4 bxc4 27.
+Qxc4 Qd6 28. Qa4 Qe7 29. Nf6+ Kh8 30. Nd5 Qd7 31. Qe4 Qd6 32. Nf4 Re7 33. Bg5
+Re8 34. Bxd8 Rxd8 35. Nxe6 Qxe6 36. Qxe6 fxe6 37. Rxe6 Rd1+ 38. Kh2 Rd2 39. Rb6
+Rxf2 40. Rb7 Rf6 41. Kg3 1-0
+
+[Event "Curacao Candidates Tournament"]
+[Site "Curacao, Netherlands Antilles"]
+[Date "1962.05.24"]
+[Round "14"]
+[White "Paul Keres"]
+[Black "Robert J. Fischer"]
+[Result "1/2-1/2"]
+
+1. e4 c5 2. Ne2 d6 3. g3 g6 4. Bg2 Bg7 5. O-O Nc6 6. c3 e5 7. d3 Nge7 8. a3 O-O
+9. b4 b6 10. f4 exf4 11. gxf4 d5 12. e5 Bg4 13. h3 Bxe2 14. Qxe2 f6 15. b5 Na5
+16. Nd2 fxe5 17. fxe5 Rxf1+ 18. Nxf1 Nb3 19. Rb1 Nxc1 20. Rxc1 Qc7 21. Re1 Rd8
+22. Nh2 d4 23. cxd4 cxd4 24. Nf3 Bh6 25. Qa2+ Kh8 26. Qe6 Nd5 27. Nh2 Ne3 28.
+Bc6 Rf8 29. Nf3 Bf4 30. Nxd4 Bxe5 31. Nf3 Bd4 32. Rxe3 Bxe3+ 33. Qxe3 Qg3+ 34.
+Kf1 Qxh3+ 35. Ke1 Qf5 36. d4 Kg7 37. Kf2 h5 38. Kg3 Qg4+ 39. Kh2 Rf4 40. Qe7+
+Kh6 41. Qe2 Qf5 42. Qe3 g5 43. Kg2 Rg4+ 44. Kf2 Rf4 45. Kg2 Qc2+ 46. Kh1 Qb1+
+47. Kh2 Qa2+ 48. Kh3 Qf7 49. Kh2 Qf6 50. Kg2 Kg7 51. Kg3 h4+ 52. Kg2 Rg4+ 53.
+Kh1 Rg3 54. Qe4 g4 55. Nh2 Qg5 56. Nf1 Rh3+ 57. Kg1 Rxa3 58. d5 g3 59. Bd7 Ra1
+60. Bf5 Qf6 61. Qf4 Re1 62. d6 Re5 63. Qg4+ Kf8 64. d7 Rd5 65. Kg2 Rxd7 66.
+Bxd7 Qf2+ 67. Kh3 Qxf1+ 68. Kxh4 g2 69. Qb4+ Kf7 70. Qb3+ Kg7 71. Qg3+ Kh7 72.
+Qe5 Qh1+ 73. Bh3 Qxh3+ 74. Kxh3 g1=Q 75. Qe7+ Kh8 76. Qf8+ Kh7 77. Qf7+ 1/2-1/2
+
+[Event "15th Olympiad (Final)"]
+[Site "Varna, Bulgaria"]
+[Date "1962.09.28"]
+[Round "2"]
+[White "Robert J. Fischer"]
+[Black "Miguel Najdorf"]
+[Result "1-0"]
+
+1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. h3 b5 7. Nd5 Bb7 8.
+Nxf6+ gxf6 9. c4 bxc4 10. Bxc4 Bxe4 11. O-O d5 12. Re1 e5 13. Qa4+ Nd7 14. Rxe4
+dxe4 15. Nf5 Bc5 16. Ng7+ Ke7 17. Nf5+ Ke8 18. Be3 Bxe3 19. fxe3 Qb6 20. Rd1
+Ra7 21. Rd6 Qd8 22. Qb3 Qc7 23. Bxf7+ Kd8 24. Be6 1-0
+
+[Event "15th Olympiad (Final)"]
+[Site "Varna, Bulgaria"]
+[Date "1962.09.30"]
+[Round "4"]
+[White "Robert J. Fischer"]
+[Black "Kark Robatsch"]
+[Result "1-0"]
+
+1. e4 d5 2. exd5 Qxd5 3. Nc3 Qd8 4. d4 g6 5. Bf4 Bg7 6. Qd2 Nf6 7. O-O-O c6 8.
+Bh6 O-O 9. h4 Qa5 10. h5 gxh5 11. Bd3 Nbd7 12. Nge2 Rd8 13. g4 Nf8 14. gxh5 Ne6
+15. Rdg1 Kh8 16. Bxg7+ Nxg7 17. Qh6 Rg8 18. Rg5 Qd8 19. Rhg1 Nf5 20. Bxf5 1-0
+
+[Event "15th Olympiad (Final)"]
+[Site "Varna, Bulgaria"]
+[Date "1962.10.04"]
+[Round "7"]
+[White "Wolfgang Unzicker"]
+[Black "Robert J. Fischer"]
+[Result "0-1"]
+
+1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. Be2 e5 7. Nb3 Be6 8. O-O
+Nbd7 9. f4 Qc7 10. f5 Bc4 11. a4 Be7 12. Be3 O-O 13. a5 b5 14. axb6 Nxb6 15.
+Bxb6 Qxb6+ 16. Kh1 Bb5 17. Bxb5 axb5 18. Nd5 Nxd5 19. Qxd5 Ra4 20. c3 Qa6 21.
+h3 Rc8 22. Rfe1 h6 23. Kh2 Bg5 24. g3 Qa7 25. Kg2 Ra2 26. Kf1 Rxc3 0-1
+
+[Event "15th Olympiad (Final)"]
+[Site "Varna, Bulgaria"]
+[Date "1962.10.07"]
+[Round "10"]
+[White "Mikhail M. Botvinnik"]
+[Black "Robert J. Fischer"]
+[Result "1/2-1/2"]
+
+1. c4 g6 2. d4 Nf6 3. Nc3 d5 4. Nf3 Bg7 5. Qb3 dxc4 6. Qxc4 O-O 7. e4 Bg4 8.
+Be3 Nfd7 9. Be2 Nc6 10. Rd1 Nb6 11. Qc5 Qd6 12. h3 Bxf3 13. gxf3 Rfd8 14. d5
+Ne5 15. Nb5 Qf6 16. f4 Ned7 17. e5 Qxf4 18. Bxf4 Nxc5 19. Nxc7 Rac8 20. d6 exd6
+21. exd6 Bxb2 22. O-O Nbd7 23. Rd5 b6 24. Bf3 Ne6 25. Nxe6 fxe6 26. Rd3 Nc5 27.
+Re3 e5 28. Bxe5 Bxe5 29. Rxe5 Rxd6 30. Re7 Rd7 31. Rxd7 Nxd7 32. Bg4 Rc7 33.
+Re1 Kf7 34. Kg2 Nc5 35. Re3 Re7 36. Rf3+ Kg7 37. Rc3 Re4 38. Bd1 Rd4 39. Bc2
+Kf6 40. Kf3 Kg5 41. Kg3 Ne4+ 42. Bxe4 Rxe4 43. Ra3 Re7 44. Rf3 Rc7 45. a4 Rc5
+46. Rf7 Ra5 47. Rxh7 Rxa4 48. h4+ Kf5 49. Rf7+ Ke5 50. Rg7 Ra1 51. Kf3 b5 52.
+h5 Ra3+ 53. Kg2 gxh5 54. Rg5+ Kd6 55. Rxb5 h4 56. f4 Kc6 57. Rb8 h3+ 58. Kh2 a5
+59. f5 Kc7 60. Rb5 Kd6 61. f6 Ke6 62. Rb6+ Kf7 63. Ra6 Kg6 64. Rc6 a4 65. Ra6
+Kf7 66. Rc6 Rd3 67. Ra6 a3 68. Kg1 1/2-1/2
+
+[Event "US Championship"]
+[Site "New York City, NY USA"]
+[Date "1962.12.22"]
+[Round "5"]
+[White "Robert J. Fischer"]
+[Black "Samuel Reshevsky"]
+[Result "1-0"]
+
+1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. h3 g6 7. g4 Bg7 8. g5
+Nh5 9. Be2 e5 10. Nb3 Nf4 11. Nd5 Nxd5 12. Qxd5 Nc6 13. Bg4 Bxg4 14. hxg4 Qc8
+15. Qd1 Nd4 16. c3 Nxb3 17. axb3 Qe6 18. Ra5 f6 19. Qd5 Qxd5 20. Rxd5 Kd7 21.
+gxf6 Bxf6 22. g5 Be7 23. Ke2 Raf8 24. Be3 Rc8 25. b4 b5 26. Rdd1 Ke6 27. Ra1
+Rc6 28. Rh3 Bf8 29. Rah1 Rc7 30. Rh4 d5 31. Ra1 Rc6 32. exd5+ Kxd5 33. Rd1+ Ke6
+34. Rd8 Kf5 35. Ra8 Re6 36. Rh3 Bg7 37. Rxh8 Bxh8 38. Rxh7 Re8 39. Rf7+ Kg4 40.
+f3+ Kg3 41. Kd3 e4+ 42. fxe4 Rd8+ 43. Bd4 Kg4 44. Rf1 Be5 45. Ke3 Bc7 46. Rg1+
+Kh5 47. Kf3 Rd7 48. e5 Rf7+ 49. Ke4 Rf5 50. e6 Bd8 51. Bf6 Bxf6 52. gxf6 Rxf6
+53. Ke5 Rf2 54. Re1 1-0
+
+[Event "New York State Open"]
+[Site "Poughkeepsie, NY USA"]
+[Date "1963.09.01"]
+[Round "5"]
+[White "Robert J. Fischer"]
+[Black "Arthur B. Bisguier"]
+[Result "1-0"]
+
+1. e4 e5 2. Nf3 Nc6 3. Bc4 Nf6 4. Ng5 d5 5. exd5 Na5 6. Bb5+ c6 7. dxc6 bxc6 8.
+Be2 h6 9. Nh3 Bc5 10. O-O O-O 11. d3 Bxh3 12. gxh3 Qd7 13. Bf3 Qxh3 14. Nd2
+Rad8 15. Bg2 Qf5 16. Qe1 Rfe8 17. Ne4 Bb6 18. Nxf6+ Qxf6 19. Kh1 c5 20. Qc3 Nc6
+21. f4 Nd4 22. Qc4 Qg6 23. c3 Nf5 24. fxe5 Rxe5 25. Bf4 Re2 26. Be4 Rxb2 27.
+Be5 Re8 28. Rxf5 Rxe5 29. Rxe5 1-0
+
+[Event "US Championship"]
+[Site "NY USA"]
+[Date "1963.12.18"]
+[Round "3"]
+[White "Robert Byrne"]
+[Black "Robert J. Fischer"]
+[Result "0-1"]
+
+1. d4 Nf6 2. c4 g6 3. g3 c6 4. Bg2 d5 5. cxd5 cxd5 6. Nc3 Bg7 7. e3 O-O 8. Nge2
+Nc6 9. O-O b6 10. b3 Ba6 11. Ba3 Re8 12. Qd2 e5 13. dxe5 Nxe5 14. Rfd1 Nd3 15.
+Qc2 Nxf2 16. Kxf2 Ng4+ 17. Kg1 Nxe3 18. Qd2 Nxg2 19. Kxg2 d4 20. Nxd4 Bb7+ 21.
+Kf1 Qd7 0-1
+
+[Event "US Championship"]
+[Site "NY USA"]
+[Date "1963.12.19"]
+[Round "4"]
+[White "Robert J. Fischer"]
+[Black "Arthur B. Bisguier"]
+[Result "1-0"]
+
+1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Re1 b5 7. Bb3 O-O 8. c3
+d6 9. h3 Na5 10. Bc2 c5 11. d4 Qc7 12. Nbd2 Nc6 13. dxc5 dxc5 14. Nf1 Rd8 15.
+Qe2 Nh5 16. g3 g6 17. h4 Be6 18. Ne3 f6 19. Nd5 Qb7 20. Nxe7+ Qxe7 21. Nh2 Ng7
+22. Ng4 c4 23. Qf3 Bxg4 24. Qxg4 Ne6 25. h5 Kh8 26. Kg2 g5 27. Be3 Nf4+ 28. Kh2
+Nd3 29. Bxd3 cxd3 30. Red1 Rd7 31. Rd2 Na5 32. b3 Qd6 33. Rad1 Re8 34. Rxd3
+Qxd3 35. Qxd7 1-0
+
+[Event "US Championship"]
+[Site "NY USA"]
+[Date "1963.12.22"]
+[Round "6"]
+[White "Robert J. Fischer"]
+[Black "Robert H. Steinmeyer"]
+[Result "1-0"]
+
+1. e4 c6 2. d4 d5 3. Nc3 dxe4 4. Nxe4 Bf5 5. Ng3 Bg6 6. Nf3 Nf6 7. h4 h6 8. Bd3
+Bxd3 9. Qxd3 e6 10. Bd2 Nbd7 11. O-O-O Qc7 12. c4 O-O-O 13. Bc3 Qf4+ 14. Kb1
+Nc5 15. Qc2 Nce4 16. Ne5 Nxf2 17. Rdf1 1-0
+
+[Event "US Championship"]
+[Site "NY USA"]
+[Date "1963.12.30"]
+[Round "10"]
+[White "Robert J. Fischer"]
+[Black "Pal Benko"]
+[Result "1-0"]
+
+1. e4 g6 2. d4 Bg7 3. Nc3 d6 4. f4 Nf6 5. Nf3 O-O 6. Bd3 Bg4 7. h3 Bxf3 8. Qxf3
+Nc6 9. Be3 e5 10. dxe5 dxe5 11. f5 gxf5 12. Qxf5 Nd4 13. Qf2 Ne8 14. O-O Nd6
+15. Qg3 Kh8 16. Qg4 c6 17. Qh5 Qe8 18. Bxd4 exd4 19. Rf6 Kg8 20. e5 h6 21. Ne2
+1-0
+
+[Event "Casual Game"]
+[Site "New York City, NY USA"]
+[Date "1963.??.??"]
+[Round "nil"]
+[White "Robert J. Fischer"]
+[Black "Reuben Fine"]
+[Result "1-0"]
+
+1. e4 e5 2. Nf3 Nc6 3. Bc4 Bc5 4. b4 Bxb4 5. c3 Ba5 6. d4 exd4 7. O-O dxc3 8.
+Qb3 Qe7 9. Nxc3 Nf6 10. Nd5 Nxd5 11. exd5 Ne5 12. Nxe5 Qxe5 13. Bb2 Qg5 14. h4
+Qxh4 15. Bxg7 Rg8 16. Rfe1+ Kd8 17. Qg3 1-0
+
+[Event "Davis Clock Simultaneous"]
+[Site "CA USA"]
+[Date "1964.??.??"]
+[Round "nil"]
+[White "Robert J. Fischer"]
+[Black "O. Celle"]
+[Result "1-0"]
+
+1. e4 e5 2. Nf3 Nc6 3. Bc4 Bc5 4. b4 Bxb4 5. c3 Be7 6. d4 d6 7. dxe5 Nxe5 8.
+Nxe5 dxe5 9. Qh5 g6 10. Qxe5 Nf6 11. Ba3 Rf8 12. O-O Ng4 13. Qg3 Bxa3 14. Nxa3
+Qe7 15. Bb5+ c6 16. Nc4 Qe6 17. Rad1 cxb5 18. Qc7 Bd7 19. Nd6+ Ke7 20. Nf5+
+gxf5 21. exf5 Rac8 22. Rxd7+ Qxd7 23. f6+ Nxf6 24. Re1+ Ne4 25. Rxe4+ Kf6 26.
+Qxd7 Rfd8 27. Qg4 1-0
+
+[Event "Capablanca Memorial"]
+[Site "Havana, Cuba"]
+[Date "1965.08.26"]
+[Round "2"]
+[White "Robert J. Fischer"]
+[Black "Vasily V. Smyslov"]
+[Result "1-0"]
+
+1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. d3 d6 6. c3 Be7 7. Nbd2 O-O 8. Nf1
+b5 9. Bb3 d5 10. Qe2 dxe4 11. dxe4 Be6 12. Bxe6 fxe6 13. Ng3 Qd7 14. O-O Rad8
+15. a4 Qd3 16. Qxd3 Rxd3 17. axb5 axb5 18. Ra6 Rd6 19. Kh1 Nd7 20. Be3 Rd8 21.
+h3 h6 22. Rfa1 Ndb8 23. Ra8 Rd1+ 24. Kh2 Rxa1 25. Rxa1 Nd7 26. b4 Kf7 27. Nf1
+Bd6 28. g3 Nf6 29. N1d2 Ke7 30. Ra6 Nb8 31. Ra5 c6 32. Kg2 Nbd7 33. Kf1 Rc8 34.
+Ne1 Ne8 35. Nd3 Nc7 36. c4 bxc4 37. Nxc4 Nb5 38. Ra6 Kf6 39. Bc1 Bb8 40. Bb2 c5
+41. Nb6 Nxb6 42. Rxb6 c4 43. Nc5 1-0
+
+[Event "US Championship"]
+[Site "NY USA"]
+[Date "1965.12.??"]
+[Round "10"]
+[White "Robert J. Fischer"]
+[Black "Nicholas Rossolimo"]
+[Result "1-0"]
+
+1. e4 e6 2. d4 d5 3. Nc3 Nf6 4. Bg5 Bb4 5. e5 h6 6. Bd2 Bxc3 7. bxc3 Ne4 8. Qg4
+g6 9. Bd3 Nxd2 10. Kxd2 c5 11. Nf3 Nc6 12. Qf4 Qc7 13. h4 f5 14. g4 cxd4 15.
+cxd4 Ne7 16. gxf5 exf5 17. Bb5+ Kf8 18. Bd3 Be6 19. Ng1 Kf7 20. Nh3 Rac8 21.
+Rhg1 b6 22. h5 Qc3+ 23. Ke2 Nc6 24. hxg6+ Kg7 25. Rad1 Nxd4+ 26. Kf1 Rhe8 27.
+Rg3 Nc6 28. Qh4 Nxe5 29. Nf4 Ng4 30. Nxe6+ Rxe6 31. Bxf5 Qc4+ 32. Kg1 1-0
+
+[Event "Piatigorsky Cup"]
+[Site "Santa Monica, CA USA"]
+[Date "1966.08.03"]
+[Round "11"]
+[White "Lajos Portisch"]
+[Black "Robert J. Fischer"]
+[Result "0-1"]
+
+1. d4 Nf6 2. c4 e6 3. Nc3 Bb4 4. e3 b6 5. Ne2 Ba6 6. Ng3 Bxc3+ 7. bxc3 d5 8.
+Qf3 O-O 9. e4 dxe4 10. Nxe4 Nxe4 11. Qxe4 Qd7 12. Ba3 Re8 13. Bd3 f5 14. Qxa8
+Nc6 15. Qxe8+ Qxe8 16. O-O Na5 17. Rae1 Bxc4 18. Bxc4 Nxc4 19. Bc1 c5 20. dxc5
+bxc5 21. Bf4 h6 22. Re2 g5 23. Be5 Qd8 24. Rfe1 Kf7 25. h3 f4 26. Kh2 a6 27.
+Re4 Qd5 28. h4 Ne3 29. R1xe3 fxe3 30. Rxe3 Qxa2 31. Rf3+ Ke8 32. Bg7 Qc4 33.
+hxg5 hxg5 34. Rf8+ Kd7 35. Ra8 Kc6 0-1
+
+[Event "Piatigorsky Cup"]
+[Site "Santa Monica, CA USA"]
+[Date "1966.08.11"]
+[Round "16"]
+[White "Robert J. Fischer"]
+[Black "Miguel Najdorf"]
+[Result "1-0"]
+
+1. e4 c5 2. Nf3 Nc6 3. d4 cxd4 4. Nxd4 e6 5. Nb5 d6 6. Bf4 e5 7. Be3 Nf6 8. Bg5
+Be6 9. N1c3 a6 10. Bxf6 gxf6 11. Na3 Nd4 12. Bc4 b5 13. Bxe6 fxe6 14. Ne2 Nc6
+15. Ng3 Qd7 16. c4 Nd4 17. O-O b4 18. Nc2 Nxc2 19. Qxc2 h5 20. Rfd1 h4 21. Nf1
+Rg8 22. a3 h3 23. g3 bxa3 24. Rxa3 Qc6 25. Qe2 f5 26. c5 Qxe4 27. Qxe4 fxe4 28.
+cxd6 Bh6 29. Ra5 Kd7 30. Rxe5 Bg7 31. Rxe4 Bxb2 32. Ne3 a5 33. Nc4 Rgb8 34. Rh4
+Kc6 35. Rh7 Bd4 36. Rc7+ Kd5 37. d7 a4 38. Nb6+ Rxb6 39. Rc8 Rd6 40. Rxa8 Rxd7
+41. Rxa4 e5 42. Kf1 Rb7 43. f4 Ke6 44. fxe5 Rf7+ 45. Ke2 Rf2+ 46. Kd3 Bxe5 47.
+Re1 1-0
+
+[Event "17th Olympiad (Preliminary)"]
+[Site "Havana, Cuba"]
+[Date "1966.10.30"]
+[Round "5"]
+[White "Robert J. Fischer"]
+[Black "Jacek Bednarsky"]
+[Result "1-0"]
+
+1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. Bc4 e6 7. Bb3 Nbd7 8. f4
+Nc5 9. f5 Nfxe4 10. fxe6 Qh4+ 11. g3 Nxg3 12. Nf3 Qh5 13. exf7+ Kd8 14. Rg1 Nf5
+15. Nd5 Qxf7 16. Bg5+ Ke8 17. Qe2+ Be6 18. Nf4 Kd7 19. O-O-O Qe8 20. Bxe6+ Nxe6
+21. Qe4 g6 22. Nxe6 1-0
+
+[Event "17th Olympiad (Final)"]
+[Site "Havana, Cuba"]
+[Date "1966.11.12"]
+[Round "8"]
+[White "Robert J. Fischer"]
+[Black "Svetozar Gligoric"]
+[Result "1-0"]
+
+1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Bxc6 dxc6 5. O-O f6 6. d4 Bg4 7. c3 exd4 8.
+cxd4 Qd7 9. h3 Be6 10. Nc3 O-O-O 11. Bf4 Ne7 12. Rc1 Ng6 13. Bg3 Bd6 14. Na4
+Bxg3 15. fxg3 Kb8 16. Nc5 Qd6 17. Qa4 Ka7 18. Nxa6 Bxh3 19. e5 Nxe5 20. dxe5
+fxe5 21. Nc5+ Kb8 22. gxh3 e4 23. Nxe4 Qe7 24. Rc3 b5 25. Qc2 1-0
+
+[Event "Monaco"]
+[Site "Monaco"]
+[Date "1967.03.28"]
+[Round "5"]
+[White "Bent Larsen"]
+[Black "Robert J. Fischer"]
+[Result "0-1"]
+
+1. d4 Nf6 2. c4 g6 3. Nc3 Bg7 4. e4 d6 5. Be2 O-O 6. Nf3 e5 7. O-O Nc6 8. Be3
+Re8 9. dxe5 dxe5 10. Qxd8 Nxd8 11. Nb5 Ne6 12. Ng5 Re7 13. Rfd1 b6 14. c5 Nxc5
+15. Rd8+ Bf8 16. Nxa7 Rxa7 17. Rxc8 Kg7 18. f3 Ne8 19. a3 Nd6 20. Rd8 h6 21.
+Nh3 Ne6 22. Rb8 Re8 23. Rxe8 Nxe8 24. Bb5 Nd6 25. Bf1 Nb7 26. Nf2 Bc5 27. Bxc5
+Nbxc5 28. Rd1 h5 29. Rd5 Kf6 30. h4 Ke7 31. Bc4 c6 32. Rd2 Nd4 33. Kf1 f5 34.
+b4 b5 35. Bg8 fxe4 36. fxe4 Nd7 37. Rd3 Ra6 38. Rc3 c5 39. g4 c4 40. gxh5 gxh5
+41. Bd5 Nf6 42. Rg3 Nxd5 43. exd5 Rf6 44. Kg2 Nf5 45. Rh3 Rg6+ 46. Kf3 Nd4+ 47.
+Ke3 Rg2 48. Rh1 Kd6 49. Ne4+ Kxd5 50. Nc3+ Ke6 51. Rc1 Rh2 52. a4 Rh3+ 53. Kf2
+Nb3 54. Kg2 Nxc1 55. Kxh3 bxa4 56. Nxa4 Ne2 57. b5 c3 58. b6 c2 59. Nc5+ Kd5
+60. Nb3 Kc6 61. Kg2 Kxb6 0-1
+
+[Event "Skopje"]
+[Site "Skopje, Yugoslavia"]
+[Date "1967.08.??"]
+[Round "2"]
+[White "Robert J. Fischer"]
+[Black "Efim P. Geller"]
+[Result "0-1"]
+
+1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 Nc6 6. Bc4 e6 7. Be3 Be7 8.
+Bb3 O-O 9. Qe2 Qa5 10. O-O-O Nxd4 11. Bxd4 Bd7 12. Kb1 Bc6 13. f4 Rad8 14. Rhf1
+b5 15. f5 b4 16. fxe6 bxc3 17. exf7+ Kh8 18. Rf5 Qb4 19. Qf1 Nxe4 20. a3 Qb7
+21. Qf4 Ba4 22. Qg4 Bf6 23. Rxf6 Bxb3 0-1
+
+[Event "Skopje"]
+[Site "Skopje, Yugoslavia"]
+[Date "1967.08.??"]
+[Round "16"]
+[White "Ratmit D. Kholmov"]
+[Black "Robert J. Fischer"]
+[Result "0-1"]
+
+1. d4 Nf6 2. Nf3 g6 3. g3 Bg7 4. Bg2 O-O 5. O-O d6 6. Nc3 Nbd7 7. b3 e5 8. dxe5
+dxe5 9. e4 Re8 10. Ba3 c6 11. Bd6 Qa5 12. Qd3 Re6 13. b4 Qa3 14. Bc7 Qxb4 15.
+Rab1 Qe7 16. Rfd1 Ne8 17. Ba5 Rd6 18. Qe2 Rxd1+ 19. Qxd1 Bf8 20. Nd2 Qa3 21.
+Nc4 Qc5 22. Bf1 b5 23. Nd2 Qa3 24. Nb3 Nc5 25. Bxb5 cxb5 26. Nxb5 Qa4 27. Nxc5
+Qxa5 28. Qd5 Rb8 29. a4 Bh3 30. Qxe5 Rc8 31. Nd3 Qxa4 32. Ne1 a6 0-1
+
+[Event "Sousse Interzonal"]
+[Site "Sousse, Tunisia"]
+[Date "1967.10.24"]
+[Round "7"]
+[White "Robert J. Fischer"]
+[Black "Leonid Z. Stein"]
+[Result "1-0"]
+
+1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Re1 b5 7. Bb3 d6 8. c3
+O-O 9. h3 Bb7 10. d4 Na5 11. Bc2 Nc4 12. b3 Nb6 13. Nbd2 Nbd7 14. b4 exd4 15.
+cxd4 a5 16. bxa5 c5 17. e5 dxe5 18. dxe5 Nd5 19. Ne4 Nb4 20. Bb1 Rxa5 21. Qe2
+Nb6 22. Nfg5 Bxe4 23. Qxe4 g6 24. Qh4 h5 25. Qg3 Nc4 26. Nf3 Kg7 27. Qf4 Rh8
+28. e6 f5 29. Bxf5 Qf8 30. Be4 Qxf4 31. Bxf4 Re8 32. Rad1 Ra6 33. Rd7 Rxe6 34.
+Ng5 Rf6 35. Bf3 Rxf4 36. Ne6+ Kf6 37. Nxf4 Ne5 38. Rb7 Bd6 39. Kf1 Nc2 40. Re4
+Nd4 41. Rb6 Rd8 42. Nd5+ Kf5 43. Ne3+ Ke6 44. Be2 Kd7 45. Bxb5+ Nxb5 46. Rxb5
+Kc6 47. a4 Bc7 48. Ke2 g5 49. g3 Ra8 50. Rb2 Rf8 51. f4 gxf4 52. gxf4 Nf7 53.
+Re6+ Nd6 54. f5 Ra8 55. Rd2 Rxa4 56. f6 1-0
+
--- /dev/null
+[Settings]
+NumFields=3
+
+[Field 1]
+Type=label
+Text=Associate WinBoard with the following file extensions:
+Left=0
+Right=-1
+Top=0
+Bottom=10
+
+[Field 2]
+Type=checkbox
+Text=" .PGN - Portable Game Notation (Games)"
+Left=0
+Right=-1
+Top=30
+Bottom=40
+State=1
+
+[Field 3]
+Type=checkbox
+Text=" .FEN - Forsyth-Edwards Notation (Positions)"
+Left=0
+Right=-1
+Top=50
+Bottom=60
+State=1
\ No newline at end of file
--- /dev/null
+; WinBoard-4.2.7 MUI
+;
+;
+
+;--------------------------------
+;Include Modern UI
+
+ !include "MUI.nsh"
+
+;--------------------------------
+
+!define InstName "WinBoard"
+!define InstVersion "4.2.7"
+!define InstBaseDir "WinBoard-4.2.7"
+
+;--------------------------------
+; General
+;
+
+Name "${InstName} ${InstVersion}"
+Caption "WinBoard - Chessboard For Windows"
+OutFile "WinBoard-4.2.7_full.exe"
+InstallDir $PROGRAMFILES\${InstBaseDir}
+
+SetCompressor lzma
+SetDateSave on
+SetDatablockOptimize on
+CRCCheck on
+SilentInstall normal
+BGGradient 000000 4682b4 FFFFFF
+;XPStyle on
+
+;--------------------------------
+;Variables
+
+ Var INI_VALUE
+ Var START_MENU_FOLDER
+ Var MUI_TEMP
+
+;--------------------------------
+
+
+;!define MUI_ICON "knight.ico"
+;!define MUI_UNICON "wc_uninst.ico"
+!define MUI_WELCOMEFINISHPAGE_BITMAP "welcome_chess.bmp"
+
+;--------------------------------
+;Interface Settings
+
+ !define MUI_ABORTWARNING
+ ;!define MUI_COMPONENTSPAGE_NODESC
+ !define MUI_COMPONENTSPAGE_SMALLDESC
+ !define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of ${InstName} ${InstVersion}.\n\n\n\n\nClick Next to continue."
+ !define MUI_LICENSEPAGE_TEXT_BOTTOM "$\nPress Continue to proceed with the installation."
+ !define MUI_LICENSEPAGE_BUTTON "Continue"
+
+;--------------------------------
+
+;--------------------------------
+; Pages
+
+ ; Install Section
+ ;--------------------------------------------------------------------
+ !insertmacro MUI_PAGE_WELCOME
+ !insertmacro MUI_PAGE_LICENSE "..\READ_ME.txt"
+ !insertmacro MUI_PAGE_COMPONENTS
+ Page custom FileAssoc
+ !insertmacro MUI_PAGE_DIRECTORY
+
+ ;Start Menu Folder Page Configuration
+ !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU"
+ !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\WinBoard"
+ !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
+ !insertmacro MUI_PAGE_STARTMENU Application $START_MENU_FOLDER
+
+ !insertmacro MUI_PAGE_INSTFILES
+ !insertmacro MUI_PAGE_FINISH
+ ;--------------------------------------------------------------------
+
+ ; Uninstall Section
+ ;
+ ;!define MUI_WELCOMEPAGE_TEXT "WARNING! THIS UNINSTALLER WILL COMPLETELY DELETE THE INSTALLATION DIRECTORY\n\n$INSTDIR !!!\n\nIF THERE ARE ANY FILES YOU WISH TO SAVE, MOVE THEM FROM THE INSTALLATION DIRECTORY FIRST!\n\n\n\nPress Next to Continue."
+ !define MUI_WELCOMEPAGE_TEXT "This will uninstall WinBoard from directory:\n\n$INSTDIR\n\n\n\nPress Next to Continue."
+ !insertmacro MUI_UNPAGE_WELCOME
+ !insertmacro MUI_UNPAGE_CONFIRM
+ !insertmacro MUI_UNPAGE_INSTFILES
+ !insertmacro MUI_UNPAGE_FINISH
+
+;--------------------------------
+;Languages
+
+ !insertmacro MUI_LANGUAGE "English"
+
+;--------------------------------
+
+;--------------------------------
+;Reserve Files
+
+ ;These files should be inserted before other files in the data block
+ ;Keep these lines before any File command
+ ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA)
+
+ ReserveFile "FA.ini"
+ !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
+
+;--------------------------------
+
+Section "WinBoard Core Components" Core
+
+SectionIn 1 RO
+
+ SetOutPath $INSTDIR
+
+ File ..\bughouse.bat
+ File ..\ChangeLog
+ File ..\COPYING
+ File ..\COPYRIGHT
+ File ..\cygncurses7.dll
+ File ..\cygreadline5.dll
+ File ..\cygwin1.dll
+ File ..\FAQ.html
+ File ..\kk13.pgn
+ File ..\NEWS
+ File ..\READ_ME.txt
+ File ..\RJF60.pgn
+ File ..\timeseal.exe
+ File ..\timestamp.exe
+ File ..\winboard.exe
+ File ..\winboard.hlp
+ File ..\zippy.lines
+ File ..\zippy.README
+
+ ;Create uninstaller
+ WriteUninstaller "$INSTDIR\UnInstall.exe"
+
+ !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
+
+ CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER"
+ CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Game Viewer.lnk" "$INSTDIR\winboard.exe" "-ncp" "$INSTDIR\winboard.exe" 1
+ CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Game Viewer - Bobby Fischer.lnk" "$INSTDIR\winboard.exe" "-ncp -lgf RJF60.pgn" "$INSTDIR\winboard.exe" 1
+ CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Game Viewer - Karpov vs Kasparov.lnk" "$INSTDIR\winboard.exe" "-ncp -lgf kk13.pgn" "$INSTDIR\winboard.exe" 1
+ CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard Help.lnk" "$INSTDIR\winboard.hlp"
+ CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Frequently Asked Questions.lnk" "$INSTDIR\FAQ.html"
+ CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard READ_ME.lnk" "$INSTDIR\READ_ME.txt"
+ CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard UnInstall.lnk" "$INSTDIR\UnInstall.exe"
+ CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Server - chessclub.com.lnk" "$INSTDIR\winboard.exe" "-ics -icshost chessclub.com -icshelper timestamp" "$INSTDIR\winboard.exe" 0
+ CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Server - freechess.org.lnk" "$INSTDIR\winboard.exe" "-ics -icshost freechess.org -icshelper timeseal" "$INSTDIR\winboard.exe" 0
+ CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Server - Other.lnk" "$INSTDIR\winboard.exe" "-ics" "$INSTDIR\winboard.exe" 0
+ CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard Startup Dialog.lnk" "$INSTDIR\winboard.exe" "" "$INSTDIR\winboard.exe" 2
+
+ !insertmacro MUI_STARTMENU_WRITE_END
+
+SectionEnd
+
+SubSection /e "Chess Engines" Engines
+
+ Section "GNU Chess 5.0" GNUChess5
+
+ SetOutPath "$INSTDIR"
+
+ File ..\book.dat
+ File ..\GNUChes5.exe
+ File ..\gnuches5.txt
+ File ..\gnuchess.dat
+ File ..\gnuchess.lan
+ File ..\gnuchess.README
+
+ CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines"
+
+ !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
+
+ CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\GNU Chess 5.0 Documentation.lnk" "$INSTDIR\gnuches5.txt"
+ CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\GNU Chess 5.0.lnk" "$INSTDIR\winboard.exe" "-cp -fcp 'GNUChes5 xboard' -scp 'GNUChes5 xboard'" "$INSTDIR\winboard.exe" 2
+
+ !insertmacro MUI_STARTMENU_WRITE_END
+
+ SectionEnd
+
+ Section "GNU Chess 4.0" GNUChess4
+
+ SetOutPath "$INSTDIR"
+
+ File ..\gnuchesr.exe
+ File ..\GNUChess.exe
+ File ..\gnuchess.txt
+
+ CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines"
+
+ !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
+
+ CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\GNU Chess 4.0 Documentation.lnk" "$INSTDIR\gnuchess.txt"
+ CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\GNU Chess 4.0.lnk" "$INSTDIR\winboard.exe" "-cp -fcp GNUChess -scp GNUChess" "$INSTDIR\winboard.exe" 2
+
+ !insertmacro MUI_STARTMENU_WRITE_END
+
+ SectionEnd
+
+ Section "Crafty 19.3" Crafty
+
+ SetOutPath "$INSTDIR\Crafty"
+
+ File ..\Crafty-WinBoard\wcrafty.exe
+ File ..\Crafty-WinBoard\book.bin
+ File ..\Crafty-WinBoard\books.bin
+ File ..\Crafty-WinBoard\Crafty.rc
+ File ..\Crafty-WinBoard\crafty.doc.txt
+
+ CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines"
+
+ !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
+
+ CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\Crafty Documentation.lnk" "$INSTDIR\Crafty\crafty.doc.txt"
+ CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\Crafty 19.3.lnk" "$INSTDIR\winboard.exe" "-cp -fcp Crafty\wcrafty.exe -fd Crafty -scp Crafty\wcrafty.exe -sd Crafty" "$INSTDIR\winboard.exe" 2
+
+ !insertmacro MUI_STARTMENU_WRITE_END
+
+
+ SectionEnd
+
+SubSectionEnd
+
+
+;--------------------------------
+;Installer Functions
+Function .onInit
+
+ ;Extract InstallOptions INI files
+ !insertmacro MUI_INSTALLOPTIONS_EXTRACT "FA.ini"
+
+FunctionEnd
+
+Function FileAssoc
+
+ !insertmacro MUI_HEADER_TEXT "Windows File Associations" "Do you want to use Winboard as your viewer for the following file types?"
+ !insertmacro MUI_INSTALLOPTIONS_DISPLAY "FA.ini"
+
+
+ ;Read a value from an InstallOptions INI file
+
+ !insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "FA.ini" "Field 2" "State"
+
+ ;Display a messagebox if check box was checked
+ StrCmp $INI_VALUE "1" "" CheckFEN
+ WriteRegStr HKCR ".pgn" "" "WinBoard.PGN"
+ WriteRegStr HKCR ".pgn" "Content Type" "application/x-chess-pgn"
+ WriteRegStr HKCR "WinBoard.PGN" "" "Chess Game"
+ WriteRegStr HKCR "WinBoard.PGN\DefaultIcon" "" "$INSTDIR\WinBoard.exe,1"
+ WriteRegStr HKCR "WinBoard.PGN\Shell\Open" "" "Open"
+ WriteRegStr HKCR "WinBoard.PGN\Shell\Open\command" "" '"$INSTDIR\WinBoard.exe" -ini "$INSTDIR\WinBoard.ini" -ncp -lgf "%1"'
+
+ CheckFEN:
+ !insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "FA.ini" "Field 3" "State"
+
+ ;Display a messagebox if check box was checked
+ StrCmp $INI_VALUE "1" "" Continue
+ WriteRegStr HKCR ".fen" "" "WinBoard.FEN"
+ WriteRegStr HKCR ".fen" "Content Type" "application/x-chess-fen"
+ WriteRegStr HKCR "WinBoard.FEN" "" "Chess Position"
+ WriteRegStr HKCR "WinBoard.FEN\DefaultIcon" "" "$INSTDIR\WinBoard.exe,1"
+ WriteRegStr HKCR "WinBoard.FEN\Shell\Open" "" "Open"
+ WriteRegStr HKCR "WinBoard.FEN\Shell\Open\command" "" '"$INSTDIR\WinBoard.exe" -ini "$INSTDIR\WinBoard.ini" -ncp -lpf "%1"'
+
+ Continue:
+
+FunctionEnd
+
+;--------------------------------
+;Descriptions
+
+ ;Language strings
+
+ LangString DESC_Core ${LANG_ENGLISH} "Winboard Core Components - Executable and Help Files"
+ LangString DESC_Engines ${LANG_ENGLISH} "Chess Engines to play against using the WinBoard Interface"
+ LangString DESC_GNUChess5 ${LANG_ENGLISH} "GNU Chess 5.0 Engine"
+ LangString DESC_GNUChess4 ${LANG_ENGLISH} "GNU Chess 4.0 Engine"
+ LangString DESC_Crafty ${LANG_ENGLISH} "Crafty 19.3 Chess Engine, by Robert Hyatt"
+
+
+ ;Assign language strings to sections
+
+ !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
+ !insertmacro MUI_DESCRIPTION_TEXT ${Core} $(DESC_Core)
+ !insertmacro MUI_DESCRIPTION_TEXT ${Engines} $(DESC_Engines)
+ !insertmacro MUI_DESCRIPTION_TEXT ${GNUChess5} $(DESC_GNUChess5)
+ !insertmacro MUI_DESCRIPTION_TEXT ${GNUChess4} $(DESC_GNUChess4)
+ !insertmacro MUI_DESCRIPTION_TEXT ${Crafty} $(DESC_Crafty)
+ !insertmacro MUI_FUNCTION_DESCRIPTION_END
+
+;--------------------------------
+
+;--------------------------------
+;Uninstaller Section
+
+; Function to delete install directory if non-empty on user request
+Function un.ForceDirectoryDelete
+
+ MessageBox MB_YESNO "The uninstaller was unable to delete the directory '$INSTDIR'. This is usually$\r$\ndue to user-created files such as WinBoard.ini, or other configuration files. If$\r$\nyou wish to keep your old configuration files, select No.$\r$\n$\r$\nForce deletion of install directory and all files in it?" IDNO End
+
+ RMDir /r "$INSTDIR"
+
+ End:
+
+FunctionEnd
+
+
+Section "Uninstall"
+
+ Delete "$INSTDIR\bughouse.bat"
+ Delete "$INSTDIR\ChangeLog"
+ Delete "$INSTDIR\COPYING"
+ Delete "$INSTDIR\COPYRIGHT"
+ Delete "$INSTDIR\cygncurses7.dll"
+ Delete "$INSTDIR\cygreadline5.dll"
+ Delete "$INSTDIR\cygwin1.dll"
+ Delete "$INSTDIR\FAQ.html"
+ Delete "$INSTDIR\kk13.pgn"
+ Delete "$INSTDIR\NEWS"
+ Delete "$INSTDIR\READ_ME.txt"
+ Delete "$INSTDIR\RJF60.pgn"
+ Delete "$INSTDIR\timeseal.exe"
+ Delete "$INSTDIR\timestamp.exe"
+ Delete "$INSTDIR\winboard.exe"
+ Delete "$INSTDIR\winboard.hlp"
+ Delete "$INSTDIR\zippy.lines"
+ Delete "$INSTDIR\zippy.README"
+ Delete "$INSTDIR\book.dat"
+ Delete "$INSTDIR\GNUChes5.exe"
+ Delete "$INSTDIR\gnuches5.txt"
+ Delete "$INSTDIR\gnuchess.dat"
+ Delete "$INSTDIR\gnuchess.lan"
+ Delete "$INSTDIR\gnuchess.README"
+ Delete "$INSTDIR\gnuchesr.exe"
+ Delete "$INSTDIR\GNUChess.exe"
+ Delete "$INSTDIR\gnuchess.txt"
+ Delete "$INSTDIR\UnInstall.exe"
+ Delete "$INSTDIR\Crafty\wcrafty.exe"
+ Delete "$INSTDIR\Crafty\book.bin"
+ Delete "$INSTDIR\Crafty\books.bin"
+ Delete "$INSTDIR\Crafty\Crafty.rc"
+ Delete "$INSTDIR\Crafty\crafty.doc.txt"
+ RMDir "$INSTDIR\Crafty"
+ RMDir "$INSTDIR"
+
+
+ !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
+
+ RMDir /r "$SMPROGRAMS\$MUI_TEMP"
+
+ ReadRegStr $1 HKCR ".pgn" ""
+ StrCmp $1 "WinBoard.PGN" "" DelFEN
+ ReadRegStr $1 HKCR "WinBoard.PGN\Shell\Open\command" ""
+ StrCmp $1 '"$INSTDIR\WinBoard.exe" -ini "$INSTDIR\WinBoard.ini" -ncp -lgf "%1"' "" DelFEN
+ DeleteRegKey HKCR ".pgn"
+ DeleteRegKey HKCR "WinBoard.PGN"
+
+ DelFEN:
+
+ ReadRegStr $1 HKCR ".fen" ""
+ StrCmp $1 "WinBoard.FEN" "" ContDelFEN
+ ReadRegStr $1 HKCR "WinBoard.FEN\Shell\Open\command" ""
+ StrCmp $1 '"$INSTDIR\WinBoard.exe" -ini "$INSTDIR\WinBoard.ini" -ncp -lpf "%1"' "" ContDelFEN
+ DeleteRegKey HKCR ".fen"
+ DeleteRegKey HKCR "WinBoard.FEN"
+
+ ContDelFEN:
+
+ DeleteRegKey HKCU "Software\WinBoard"
+
+
+ IfFileExists "$INSTDIR\*.*" GoDirDel Continue
+
+ GoDirDel:
+ Call un.ForceDirectoryDelete
+
+ Continue:
+
+
+SectionEnd
--- /dev/null
+@echo off
+REM Usage: bughouse -icshost chessclub.com -icshelper timestamp
+REM or: bughouse -icshost freechess.org -icshelper timeseal
+REM
+REM This batch file starts up two copies of WinBoard for use in playing
+REM bughouse. Each one has its own settings file and ICS logon file.
+REM Arrange the windows on the screen to your taste, then do Save
+REM Settings Now in both windows. You can create the logon files
+REM bh1ics.ini and bh2ics.ini if you like; have one of them log in
+REM as you and the other as a guest.
+REM
+winboard -ics -x 0 -y 0 -icsX 30 -icsY 30 -settingsFile bh1stg.ini -icslogon bh1ics.ini %1 %2 %3 %4 %5 %6 %7 %8 %9
+winboard -ics -x 120 -y 120 -icsX 150 -icsY 150 -settingsFile bh2stg.ini -icslogon bh2ics.ini %1 %2 %3 %4 %5 %6 %7 %8 %9
+
--- /dev/null
+README
+GNU CHESS 5
+by Stuart Cracraft <cracraft@gnu.org>
+copyright (c) 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993
+1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Modified Simon Waters <simon@wretched.demon.co.uk> 2001
+Modified Simon Waters <simon@wretched.demon.co.uk> 2003
+
+IMPORTANT: Please send all updates to Simon at the above address.
+
+Table of Contents
+
+ Introduction
+ Who We Are
+ Data Structures
+ Move Generator
+ Search
+ Evaluation
+ Book
+ Hash Table
+ Auxillary File Formats (PGN, EPD)
+ Universal Board
+ Caveats
+ Compilers
+ Internet
+ Xboard/Winboard
+ Command List
+
+
+INTRODUCTION
+
+Welcome to the GNU CHESS 5 README. This is somewhat different than
+a normal readme. You might consider this a manual. We've always found
+multiple documents confusing, overlapping and sometimes contradictory
+as far as software documentation goes. By putting it all together in
+one place we hope to avoid these traditional inadequacies and be able
+to maintain a single document. If you add documentation, add it to
+this document only.
+
+GNU Chess 5 is the new version of GNU Chess. The goal of creating this
+new version was to eliminate perceived problems with past versions, the
+major one being spaghetti-code that was extremely poorly documented, but
+another being antiquated data structures and especially the ignominous
+linked list. Another good reason was to have more standard file formats
+for game positions and game listings.
+
+
+WHO WE ARE
+
+We are the GNU Chess developers and you may reach us at
+
+ bug-gnu-chess@gnu.org
+
+We are indebted to our sponsor, the Free Software Foundation
+whose web page is:
+
+ http://www.gnu.org
+
+and which also serves as our software depository for new versions of
+GNU and GNU Chess.
+
+We also have a Usenet bulletin board, gnu.chess. Feel free to post and
+support. Please become a developer and contribute your time and coding skill
+to GNU Chess. Make a donation of your time and money.
+
+But, as developers we like to develop our own ideas. Thus, if you have
+an idea check to see that no one else is working on it (posting on the
+above bulletin board or sending an email should be sufficient to find
+if someone is working on the idea and if you can collaborate with
+them.)
+
+We don't like messages asking us to implement features. Everybody
+has a list a mile long. Instead, contribute by writing code or pointing
+out very clearly a bug. To report a bug, tell us the version number
+of the program ("./gnuchess --version").
+
+The code is provided for the purpose of encouraging you to do the
+programming. If you lack the programming skills to do so, try
+dabbling in it. You might surprise yourself.
+
+
+DATA STRUCTURES
+
+The primary data structure of GNU Chess is the bitboard. A bitboard
+is a 64-bit GNU C long long. It represents characteristics of a position.
+For example, 12 bitboards are sufficient to describe the whereabouts
+of all the pieces for both sides, i.e.
+
+ BitBoard board.b[2][6];
+
+So for example with a knight equal to 2 and white equal to 0 all the
+knights are located by the reference
+
+ #define white 0
+ #define knight 2
+
+ ... board.b[white][knight] ...
+
+Testing whether a particular square has a knight on it could be done
+with
+
+ if (BitBoard[B1] & board.b[white][knight]) { ... }
+
+Another set of move arrays is helpful for calculating the simple moves
+of a knight or a king
+
+ MoveArray[knight or king][sq]
+
+This returns a bitmap of the squares from which a knight or king
+could move from the square sq. Squares are based at 0 for a1 (White's
+queen's rook 1) and numbered left to right up until 63 for h8 (Black's
+king's rook 1).
+
+Another basic data structure is the board. It is defined in common.h
+as the Board typedef:
+
+ typedef struct
+ {
+ BitBoard b[2][7]; /* Pieces by side (0 - white, 1 black
+ by piece (1 - pawn ... 6 - king */
+ BitBoard friend[2]; /* Friendly (this side's) pieces */
+ BitBoard blocker; /* Enemy pieces */
+ BitBoard blockerr90;
+ BitBoard blockerr45;
+ BitBoard blockerr315;
+ short ep; /* Location of en passant square */
+ short flag; /* Relevant flags relating to castle privs */
+ short side; /* Color of side on move 0 - white 1 - black */
+ short material[2]; /* Total material by side not inc. king */
+ short pmaterial[2]; /* Total pawn material by side not inc. king */
+ short castled[2]; /* True (1) if side is castled */
+ short king[2]; /* Location of king 0 - a1 .. 63 - h8 */
+ } Board;
+
+Basic data structure typedefs are defined in common.h and allocated in
+main.c for the most part. Please read and understand those files. The
+best way to understand data structures is to add new evaluation terms.
+
+MOVE GENERATOR
+
+This is a rotated bit-board method which is considered state-of-the-art
+currently.
+
+SEARCH
+
+Based on Professor Tony Marsland's modification to alpha-beta minimax,
+called Principal Variation Search (PVS), this algorithm performs credibly.
+
+EVALUATION
+
+Evaluation in this version is quite a bit different than before.
+Earlier versions used piece/square tables with some end-leaf
+evaluation (but primary pc/sq tables). These are tables filled with
+values regarding the importance of having pieces on particular squares.
+It was filled once, at the beginning of the search.
+
+The drawback of pc/sq tables is that the information is typically of
+less and less importance the deeper a program searches because the
+board changes so much. With computers getting faster and faster, deeper
+and deeper searches are possible and so the pc/sq tables can provide
+misleading direction to the program, resulting in anti-positional moves.
+
+More recently there has been a return by some to what we espouse here:
+full end-leaf evaluation. Further, we use bitboards (64-bit quantities)
+to represents characteristics of the board. This harkens back, ironically
+to the early days of computer chess when giant number-crunching machines
+back in the 60's used bitmaps to describe positions.
+
+Bitboards in this version of GNU are defined using the "BitBoard" typedef
+defined in common.h. main.c contains most of the bitboards and these
+are accessed and used throughout the program and particularly by
+the move generator and the evaluator.
+
+The evaluator in eval.c consists of a series of scoring routines like
+ScoreP (), ScoreN (), ScoreB (), corresponding to the piece being
+scored. The routine evaluates all pieces of that type (P - pawn,
+N - knight, B - bishop, etc.) on the current board and returns a
+score.
+
+Typically a loop is used of the form
+
+ short sq; /* Location of the piece of this type */
+ short s; /* Score value for all pieces
+ BitBoard b; /* Stores the bitboard representing location of the piece */
+ s = 0; /* Score starts out as zero */
+ b = board.b[side][knight];
+ while (b) {
+ sq = leadz(b);
+ CLEARBIT (b, sq);
+ if (piece on sq has some property)
+ s += SOME_BONUS_OR_PENALTY; /* defined in eval.h */
+ }
+ return(s);
+
+As you can see, this routine locates each piece in the 64-bit map
+where the corresponding square of the 64 is set to 1 meaning a piece
+is there. Hence for example in the opening position, board.b[white][bishop]
+would have the 3rd and 7th low-order bits set corresponding to the original
+locations of bishops in a game on C1 and F1. Likewise the values
+BitPosArray[C1] and BitPosArray[F1] can be used to return 64-bit
+quantities for checking specific matches as in
+
+ if (BitPosArray[A1] & board.b[side][bishop])
+ s += SOME_VERY_NEGATIVE_PENALTY_FOR_BISHOP_IN_A1_CORNER
+
+Writing evaluation code comes very naturally using these methods. Try
+to avoid too many specific square checks as those are expensive. Ideas
+as shown in the CTL() routine can be used to check for piece placement
+on specific squares being advantageous or disadvantageous.
+
+Primary evaluation is done with Evaluate(). Certain specifics are
+calculated which are deemed very important such as king evaluation
+and pawn evaluation. Then a "lazy evaluation" scenario is checked
+for which can save time. Otherwise other pieces are also evaluated.
+
+Very important for evaluation is the ability to see what board you
+are evaluating. Typically this should be sufficient when you add
+the new term:
+
+ /* ... new logic ... */
+ {
+ s += SOME_NEW_BONUS (define in eval.h)
+ printf("The condition is triggered:\n");
+ ShowBoard ();
+ getchar();
+ }
+
+This lets you see the board at the point the condition is triggered
+which adds the bonus or penalty to the evaluation score.
+
+
+BOOK
+
+The opening book is implemented as a simple binary file consisting of
+a set of sequential records of struct hashtype as defined in the module
+book.c. This data structure is simply two part, a 64-bit HashType (see
+common.h) and a 32-bit score.
+
+The binary book stored in book.dat is compiled from the file book.pgn
+using the command "book add book.pgn" into a sequential set of binary
+records in the format as described above. book.pgn is simply a set of
+game records in portable game notation format. A set of master games
+may be used or specific openings programmed this way for a user-changeable
+opening book.
+
+HASH TABLE
+
+The hash table is simply an area of memory where information about
+positions is stored. In this version of the program there are two
+types of hash tables: general and pawn.
+
+The general hash table size is controlled by the variable HASHSLOTS
+as defined in common.h. Likewise the pawn hash table size is controlled
+by the variable PAWNSLOTS in common.h.
+
+The number of hashtable slots can be controlled from the command
+line (Type "gnuchess -help" for details), or via the interactive
+hashsize command.
+
+Typically middle-game searches are sped up by 25%-50% by the general
+hash table and by much more in endgames where there are few pieces
+(because so many of the positions turn out to be cached already in
+the hash table.)
+
+Pawn evaluation is traditionally expensive because there are so many
+things to evaluate. The pawn hash table remembers all the different
+pawn structures in the search. Typically pawn structure evaluation
+(without reference to pieces) may be calculated by simple table
+lookup this way 90-99% of the time. Hence, any amount of pawn logic
+that is pure-pawn and not related to pieces may be added without guilt.
+On the other hand, pawn structure that relates to pieces must be
+recalculated for every position. See ScoreP() in eval.c
+
+
+AUXILLARY FILE FORMATS
+
+.dat - binary book format, simply a 64-bit position hash and a 32-bit score
+.pgn - game listing like 1. e4 e5 2. Nf3 etc.
+.epd - epd-style format using FEN notation. See tests subdirectory for example.
+log.nnn - record of an entire game from computer's viewpoint (thinking, etc.)
+game.nnn - record of an entire game, similar to .pgn but auto-generated
+
+The .dat file format is a simple binary format for the compiled book
+which is read by the program when it is using book. See the section BOOK
+for more detail.
+
+EPD and PGN require little introduction. These are the uniformly accepted
+standards for position recording and game recording.
+
+Note that log.nnn and game.nnn files are written at the end of a game
+when you use the "name" command to give the computer your name. It is
+highly recommended to do this since the resulting two files that match
+in a monotonically-increasing extension numbered suffix may be used for
+reporting bugs and keeping track of your games.
+
+
+COMPILERS
+
+ We like GNU C in all its various forms. For Unix and Linux, use GNU C.
+
+ For Microsoft Windows platforms we compile and test using Cygwin,
+ which is a port of many GNU packages, including GCC.
+
+ Cygwin may require specific run time DLL's to provide the interface,
+ these should be provided with any executable you receive.
+
+ Whilst GCC is the supported compiler, a key goal is portability. If
+ you experience problems compiling GNU Chess with a modern C compiler
+ please let the developers know.
+
+INTERNET
+
+ GNU CHESS 5 has been tested substantially on the Free Internet Chess
+ Servers (freechess.org) with Xboard (See Zippy documentation in the
+ Xboard/Winboard distribution http://www.tim-mann.org/).
+
+ GNU Chess 5.06 and later should also operate with icsDrone. Testing
+ 5.06 with icsDrone 1.5.0 showed no immediate issues.
+
+XBOARD/WINBOARD
+
+ Running the program with the "--xboard" command line parameter sets it
+ to produce output acceptable to and accept input suitable for xboard
+ and winboard, the graphical display front-ends with mouse interface.
+
+ For historical reasons the option "xboard" does not need to be
+ preceeded by "--", however we would encourage the new syntax.
+
+COMMAND LIST
+
+ ^C
+ Typically the interrupt key stops a search in progress,
+ makes the move last considered best and returns to the
+ command prompt
+
+ quit
+ Quit the program.
+ exit
+ In analysis mode this stops analysis, otherwise it quits the program.
+
+ help
+ Produces a help blurb corresponding to this list of commands.
+
+ usage
+ Produce blurb on command line options.
+ (Same as "gnuchess --help")
+
+ book
+ add - compiles book.dat from book.pgn
+ on - enables use of book
+ off - disables use of book
+ best - play best move from book
+ worst - play worst move from book
+ random - play any move from book
+
+ prefer (default) - choose a good move from book
+ (Method subject to variation)
+
+ version
+ prints out the version of this program
+ (Same as "gnuchess --version")
+
+ pgnsave FILENAME
+ saves the game so far to the file from memory
+
+ pgnload FILENAME
+ loads the game in the file into memory
+
+ force
+ manual
+ Makes the program stop moving. You may now enter moves
+ to reach some position in the future.
+ (Same as "gnuchess --manual")
+
+ white
+ Program plays black, set white to move.
+
+ black
+ Program plays white, set black to move.
+
+ (White and black commands are mainly for icsDrone
+ and will cause the current en-passant capture
+ square to be forgotten).
+
+ go
+ Computer takes whichever side is on move and begins its
+ thinking immediately
+
+ easy
+ Disables thinking on opponent's time
+ (Same as "gnuchess --easy").
+
+ hard
+ Enables thinking on opponent's time
+
+ post
+ Arranges for verbose thinking output showing variation, score,
+ time, depth, etc.
+
+ If pondering (see hard) is on, the program will output
+ it's thinking whilst the opponent is thinking.
+
+ (Also "gnuchess --post")
+
+ nopost
+ Turns off verbose thinking output
+
+ name NAME
+ Lets you input your name. Also writes the log.nnn and a
+ corresponding game.nnn file. For details please see
+ auxillary file format sections.
+
+ result
+ Mostly used by Internet Chess server.
+
+ activate
+
+ This command reactivates a game that has been terminated automatically
+ due to checkmate or no more time on the clock. However, it does not
+ alter those conditions. You would have to undo a move or two or
+ add time to the clock with level or time in that case.
+
+ rating COMPUTERRATING OPPONENTRATING
+ Inputs the estimated rating for computer and for its opponent
+
+ new
+ Sets up new game (i.e. positions in original positions)
+
+ time
+ Inputs time left in game for computer in hundredths of a second.
+ Mostly used by Internet Chess server.
+
+ otim (NOT IMPLEMENTED)
+ Mostly used by Internet Chess server.
+
+ random (NOT IMPLEMENTED)
+ Randomizes play by perturbing the evaluation score slightly.
+ The degree of perturbation is adjustable.
+
+ hash
+ on - enables using the memory hash table to speed search
+ off - disables the memory hash table
+
+ hashsize N
+ Sets the hash table to permit storage of N positions
+ N is rounded down to nearest power of 2.
+ (Also "gnuchess --hashsize=N")
+
+ null
+ on - enables using the null move heuristic to speed search
+ off - disables using the null move heuristic
+
+ xboard
+ on - enables use of xboard/winboard
+ off - disables use of xboard/winboard
+ (Also "gnuchess --xboard")
+
+ depth N
+ Sets the program to look N ply (half-moves) deep for every
+ search it performs. If there is a checkmate or other condition
+ that does not allow that depth, then it will not be
+
+ level MOVES MINUTES INCREMENT
+ Sets time control to be MOVES in MINUTES with each move giving
+ an INCREMENT (in seconds, i.e. Fischer-style clock).
+
+ load
+ epdload
+ Loads a position in EPD format from disk into memory.
+
+ save
+ epdsave
+ Saves game position into EPD format from memory to disk.
+
+ switch
+ Switches side to move
+
+ solve FILENAME
+ solveepd FILENAME
+ Solves the positions in FILENAME
+
+ remove
+ Backs up two moves in game history
+
+ undo
+ Backs up one move in game history
+
+ show
+ board - displays the current board
+ time - displays the time settings
+ moves - shows all moves using one call to routine
+ escape - shows moves that escape from check using one call to routine
+ noncapture - shows non-capture moves
+ capture - shows capture moves
+ eval [or score] - shows the evaluation per piece and overall
+ game - shows moves in game history
+ pin - shows pinned pieces
+
+ test
+ movelist - reads in an epd file and shows legal moves for its entries
+ capture - reads in an epd file and shows legal captures for its entries
+ movegenspeed - tests speed of move generator
+ capturespeed - tests speed of capture move generator
+ eval - reads in an epd file and shows evaluation for its entries
+ evalspeed tests speed of the evaluator
+
+ analyze
+ Switches program into analysis mode, this is primarily intended for
+ communicating analysis to an external interface using the Xboard
+ chess engine protocol. It enables "force", "post", and
+ "hard", at the same time, whilst altering the
+ output format of post to conform with the engine protocol.
--- /dev/null
+The gnuchess.exe and gnuchesr.exe included here are compiled from
+unmodified GNU Chess 4.0.80 sources, available on the Internet as
+http://tim-mann.org//gnuchess/gnuchess-4.0.pl80.tar.gz. To recompile,
+get the source and unpack it using GNU gzip and GNU tar, then
+recompile with Microsoft Visual C++ by typing the command "nmake /f
+Makefile.nt" to an MSDOS Prompt box on Windows 95 or Windows NT. If
+you have a different compiler, you are on your own; sorry.
+Afterwards, rename gnuchesx.exe to gnuchess.exe.
+
+The gnuches5.exe included here is compiled from unmodified GNU Chess 5.07
+sources, available as ftp://ftp.gnu.org/gnu/chess/gnuchess-5.07.tar.gz.
+To recompile, get the free Cygwin tools from www.cygwin.org and use
+them to unpack the source (gzip and tar) and compile.
--- /dev/null
+001:eng:{ pnbrqk}
+001:ger:{ bsltdk}
+001:swe:{ bsltdk}
+002:eng:{ PNBRQK}
+002:ger:{ BSLTDK}
+002:swe:{ BSLTDK}
+003:eng:{abcdefgh}
+003:ger:{abcdefgh}
+003:swe:{abcdefgh}
+004:eng:{12345678}
+004:ger:{12345678}
+004:swe:{12345678}
+005:eng:{o-o}
+005:ger:{o-o}
+005:swe:{o-o}
+006:eng:{o-o-o}
+006:ger:{o-o-o}
+006:swe:{o-o-o}
+007:eng:{0-0}
+007:ger:{0-0}
+007:swe:{0-0}
+008:eng:{0-0-0}
+008:ger:{0-0-0}
+008:swe:{0-0-0}
+009:eng:{wWbB}
+009:ger:{wWsS}
+009:swe:{vVsS}
+010:eng:{ score depth nodes time }
+010:ger:{ Bewert Tiefe Posit Zeit }
+010:swe:{ eval djup noder tid }
+011:eng:{ score depth nodes time\n}
+011:ger:{ Bewert Tiefe Posit Zeit\n}
+011:swe:{ eval djup noder tid\n}
+012:eng:{ }
+012:ger:{ }
+012:swe:{ }
+013:eng:{ }
+013:ger:{ }
+013:swe:{ }
+014:eng:{ %s\n}
+014:ger:{ %s\n}
+014:swe:{ %s\n}
+015:eng:{ a b c d e f g h}
+015:ger:{ a b c d e f g h}
+015:swe:{ a b c d e f g h}
+016:eng:{ h g f e d c b a}
+016:ger:{ h g f e d c b a}
+016:swe:{ h g f e d c b a}
+017:eng:{ -}
+017:ger:{ -}
+017:swe:{ -}
+018:eng:{nocache}
+018:ger:{nocache}
+018:swe:{nocache}
+019:eng:{nopost}
+019:ger:{nohaupt}
+019:swe:{novariant}
+020:eng:{nott}
+020:ger:{nott}
+020:swe:{nott}
+021:eng:{noft}
+021:ger:{noft}
+021:swe:{noft}
+022:eng:{bk}
+022:ger:{bk}
+022:swe:{bk}
+023:eng:{ }
+023:ger:{ }
+023:swe:{ }
+024:eng:{ }
+024:ger:{ }
+024:swe:{ }
+025:eng:{ }
+025:ger:{ }
+025:swe:{ }
+026:eng:{ }
+026:ger:{ }
+026:swe:{ }
+027:eng:{ }
+027:ger:{ }
+027:swe:{ }
+028:eng:{# Clear board\n}
+028:ger:{# Loesche Brett\n}
+028:swe:{# Rensa braedet\n}
+029:eng:{. Exit to main\n}
+029:ger:{. Zurueck ins Spiel\n}
+029:swe:{. Tillbaka till spelet\n}
+030:eng:{/usr/games/lib/gnuchess.book}
+030:ger:{/usr/games/lib/gnuchess.book}
+030:swe:{/usr/games/lib/gnuchess.book}
+031:eng:{Abort? }
+031:ger:{Abbruch? }
+031:swe:{Avbryta? }
+032:eng:{Ambiguous Move!}
+032:ger:{Zug nicht eindeutig!}
+032:swe:{Tvetydigt drag!}
+033:eng:{Awindow}
+033:ger:{Awindow}
+033:swe:{Awindow}
+034:eng:{BAwindow= }
+034:ger:{BAwindow= }
+034:swe:{BAwindow= }
+035:eng:{BBwindow= }
+035:ger:{BBwindow= }
+035:swe:{BBwindow= }
+036:eng:{Beep: %-12s Transposition file: %s\n}
+036:ger:{Beep: %-12s Transposition file: %s\n}
+036:swe:{Beep: %-12s Transposition file: %s\n}
+037:eng:{Black %s White %s %d eps %d\n}
+037:ger:{Schwarz %s Weiss %s %d eps %d\n}
+037:swe:{Svart %s Vit %s %d\n}
+038:eng:{Bwindow: }
+038:ger:{Bwindow: }
+038:swe:{Bwindow: }
+039:eng:{Bwindow}
+039:ger:{Bwindow}
+039:swe:{Bwindow}
+040:eng:{CHESS command summary\n}
+040:ger:{CHESS Befehlsuebersicht\n}
+040:swe:{CHESS kommandon\n}
+041:eng:{CHESS}
+041:ger:{CHESS}
+041:swe:{CHESS}
+042:eng:{Castled White %s Black %s\n}
+042:ger:{Rochade Weiss %s Schwarz %s\n}
+042:swe:{Vit Rockad %s Svart %s\n}
+043:eng:{Chess\n}
+043:ger:{Schach\n}
+043:swe:{Schack\n}
+044:eng:{Computer mates!}
+044:ger:{Computer setzt matt!}
+044:swe:{Datorn mattar!}
+045:eng:{Computer will soon mate!}
+045:ger:{Computer setzt bald matt!}
+045:swe:{Datorn mattar snart!}
+046:eng:{Computer: %-12s Opponent: %s\n}
+046:ger:{Computer: %-12s Gegner: %s\n}
+046:swe:{Datorn: %-12s Motstaandare: %s\n}
+047:eng:{Computer: %s}
+047:ger:{Computer: %s}
+047:swe:{Datorn: %s}
+048:eng:{Could not open file}
+048:ger:{Konnte File nicht oeffnen}
+048:swe:{Kunde inte oeppna filen}
+049:eng:{Counting transposition file entries, wait!\n}
+049:ger:{Zaehle transposition File Eintraege, warten!\n}
+049:swe:{Raeknar posterna i transpositionsfilen, vaenta!\n}
+050:eng:{Create failed for %s\n}
+050:ger:{Erzeugung misslang wegen %s\n}
+050:swe:{Skapa misslickades foer %s\n}
+051:eng:{Depth: %-12d Response time: %d sec\n}
+051:ger:{Tiefe: %-12d Antwortzeit: %d Sek\n}
+051:swe:{Djup: %-12d Svarstid: %d sek\n}
+052:eng:{Depth: %d}
+052:ger:{Tiefe: %d}
+052:swe:{Djup: %d}
+053:eng:{Depth= %d%c }
+053:ger:{Tiefe= %d%c }
+053:swe:{Djup= %d%c }
+054:eng:{Draw %s\n}
+054:ger:{Zug %s\n}
+054:swe:{Drag %s\n}
+055:eng:{DrawPiece: color[sq] err}
+055:ger:{DrawPiece: color[sq] err}
+055:swe:{DrawPiece: color[sq] err}
+056:eng:{Drawn game! %s}
+056:ger:{Spiel unentschieden! %s}
+056:swe:{Remi! %s}
+057:eng:{Drawn game!\n}
+057:ger:{Spiel unentschieden!\n}
+057:swe:{Remi!\n}
+058:eng:{Drawn game!}
+058:ger:{Spiel unentschieden!}
+058:swe:{Remi!}
+059:eng:{Easy mode: %s}
+059:ger:{Leichter Mode: %s}
+059:swe:{Laett: %s}
+060:eng:{Editing: %s}
+060:ger:{Editieren: %s}
+060:swe:{Editering: %s}
+061:eng:{Enter [moves] minutes[:sec] [increment][+]: }
+061:ger:{Eingabe [Zuege] Minuten[:Sek] [Inkrement][+]: }
+061:swe:{Ange #drag #minuter: }
+062:eng:{Enter Level: }
+062:ger:{Eingabe Level: }
+062:swe:{Ange Nivaa: }
+063:eng:{Enter file name: }
+063:ger:{Eingabe Filename: }
+063:swe:{Ange Filnamn: }
+064:eng:{Enter piece & location: }
+064:ger:{Eingabe Figur & Ort: }
+064:swe:{Ange pjaes & ruta: }
+065:eng:{Enter piece: }
+065:ger:{Eingabe Figur: }
+065:swe:{Ange pjaes: }
+066:eng:{Filling transposition file, wait!\n}
+066:ger:{Erzeuge Transposition File, warten!\n}
+066:swe:{Fyller transpositionsfilen, vaenta!\n}
+067:eng:{GNU Chess display (MS-DOS, Mar 90)}
+067:ger:{GNU Schach display (MS-DOS, Mar 90)}
+067:swe:{GNU Schack display (MS-DOS, Mar 90)}
+068:eng:{GNU Chess display (Nov 89)}
+068:ger:{GNU Schach display (Nov 89)}
+068:swe:{GNU Schack display (Nov 89)}
+069:eng:{GNU Chess}
+069:ger:{GNU Schach}
+069:swe:{GNU Schack}
+070:eng:{Game saved}
+070:ger:{Spiel abgespeichert}
+070:swe:{Partiet sparat}
+071:eng:{Hin/Hout/Tcol/Coll/Fin/Fout = %ld/%ld/%ld/%ld/%ld/%ld\n}
+071:ger:{Hin/Hout/Tcol/Coll/Fin/Fout = %ld/%ld/%ld/%ld/%ld/%ld\n}
+071:swe:{Hin/Hout/Tcol/Coll/Fin/Fout = %ld/%ld/%ld/%ld/%ld/%ld\n}
+072:eng:{Hint: %s\n}
+072:ger:{Hinweis: %s\n}
+072:swe:{Foerslag: %s\n}
+073:eng:{Hit <RET> to return: }
+073:ger:{Druecke <RET> fuer weiter: }
+073:swe:{Tillbaks med <RET>: }
+074:eng:{Human}
+074:ger:{Mensch }
+074:swe:{Maenniska }
+075:eng:{Illegal move (no matching move)%s\n}
+075:ger:{ungueltiger Zug (kein passender Zug)%s\n}
+075:swe:{Felaktigt drag (inget matchande drag)%s\n}
+076:eng:{Illegal move (no matching move)}
+076:ger:{ungueltiger Zug (kein passender Zug)}
+076:swe:{Felaktigt drag (inget matchande drag)}
+077:eng:{Illegal move..(in check)}
+077:ger:{ungueltiger Zug..(wird geprueft)}
+077:swe:{Otillaatet drag..(i schack)}
+078:eng:{Illegal move\n}
+078:ger:{ungueltiger Zug\n}
+078:swe:{Otillaatet drag\n}
+079:eng:{Level: %ld}
+079:ger:{Level: %ld}
+079:swe:{Level: %ld}
+080:eng:{Max Moves}
+080:ger:{Max Zuege}
+080:swe:{Max Drag}
+081:eng:{Max Tree= %5d}
+081:ger:{Max Verzw= %5d}
+081:swe:{Max Traed= %5d}
+082:eng:{MoveLimit= }
+082:ger:{Zug Limit= }
+082:swe:{Draggraens= }
+083:eng:{My move is: %s\n}
+083:ger:{Mein Zug ist: %s\n}
+083:swe:{Mitt drag aer: %s\n}
+084:eng:{My move is: %s}
+084:ger:{Mein Zug ist: %s}
+084:swe:{Mitt drag aer: %s}
+085:eng:{Testing Eval Speed}
+085:ger:{Teste Auswert.geschw.}
+085:swe:{Testar Evalueringen}
+086:eng:{Nf3 move knight to f3 cache turn %s\n}
+086:ger:{Lf3 ziehe Laeufer nach f3 cache schalte %s\n}
+086:swe:{Lf3 dra loeparen till f3 pip tur %s\n}
+087:eng:{No moves}
+087:ger:{keine Zuege}
+087:swe:{Inga drag}
+088:eng:{No pieces}
+088:ger:{keine Figur}
+088:swe:{Inga pjaeser}
+089:eng:{Gen %ld Node %ld Tree %d Eval %ld Rate %ld EC %d/%d RS hi %ld lo %ld \n}
+089:ger:{Zug %ld Posit %ld Verz %d Eval %ld Rate %ld EC %d/%d RS hi %ld lo %ld \n}
+089:swe:{Drag %ld Nod %ld Traed %d Eval %ld Rate %ld EC %d/%d RS hi %ld lo %ld \n}
+090:eng:{Nodes= %8ld, Nodes/Sec= %5ld}
+090:ger:{Posit= %8ld, Posit/Sek= %5ld}
+090:swe:{Noder= %8ld, Noder/Sek= %5ld}
+091:eng:{Nodes= %ld Nodes/sec= %ld\n}
+091:ger:{Posit= %ld Posit/Sek= %ld\n}
+091:swe:{Noder= %ld Noder/Sek= %ld\n}
+092:eng:{OFF}
+092:ger:{AUS}
+092:swe:{AV}
+093:eng:{ON}
+093:ger:{EIN}
+093:swe:{PAA}
+094:eng:{Operator time(hundredths)= }
+094:ger:{Operator Zeit(hunderdstel)= }
+094:swe:{Operatoertid(hundradelar)= }
+095:eng:{Opponent mates!}
+095:ger:{Gegner setzt matt!}
+095:swe:{Motstaandaren mattar!}
+096:eng:{Opponent will soon mate!}
+096:ger:{Gegner setzt bald matt!}
+096:swe:{Motstaandaren mattar snart!}
+097:eng:{Opponent: %s}
+097:ger:{Gegner: %s}
+097:swe:{Motstaandare: %s}
+098:eng:{Playing without hashfile}
+098:ger:{Spiel ohne Hashfile}
+098:swe:{Spelar utan hashfil}
+099:eng:{Random: %-12s Easy mode: %s\n}
+099:ger:{Random: %-12s Leichter Mode: %s\n}
+099:swe:{Random: %-12s Laett Mode: %s\n}
+100:eng:{Random: %s}
+100:ger:{Random: %s}
+100:swe:{Random: %s}
+101:eng:{Repetition}
+101:ger:{Wiederholung}
+101:swe:{Upprepning}
+102:eng:{Gnuchess version %s patchlevel %s\n}
+102:ger:{Gnuchess Version %s Revision %s\n}
+102:swe:{Gnuchess version %s revision %s\n}
+103:eng:{S%d m%d ps%d m%d ps%d}
+103:ger:{S%d m%d ps%d m%d ps%d}
+103:swe:{S%d m%d ps%d m%d ps%d}
+104:eng:{Score= %d}
+104:ger:{Bewertung= %d}
+104:swe:{Vaerdering= %d}
+105:eng:{Score}
+105:ger:{Bewertung}
+105:swe:{Vaerdering}
+106:eng:{Setup successful\n}
+106:ger:{Aufstellung erfolgreich\n}
+106:swe:{Upstaellning lyckad\n}
+107:eng:{Testing CaptureList Speed}
+107:ger:{Test Schlagliste Geschw}
+107:swe:{Testar Slaglistans Hastighet}
+108:eng:{Testing MoveList Speed}
+108:ger:{Test Zugliste Geschw}
+108:swe:{Testar Draglistans Hastighet}
+109:eng:{The file contains %d entries out of max %d\n}
+109:ger:{Das File enthaelt %d Eintraege von max. %d\n}
+109:swe:{Filen innehaaller %d poster av max. %d\n}
+110:eng:{Time Control %s %d moves in %d sec inc %d depth %d\n}
+110:ger:{Zeitkontrolle %s %d Zuege in %d Sek Inc %d Tiefe %d\n}
+110:swe:{Tidskontroll %s %d drag %d sek %d ink %d djup\n}
+111:eng:{TimeControl %d Operator Time %d\n}
+111:ger:{Zeitkontrolle %d Operator Zeit %d\n}
+111:swe:{Tidskontroll %d Operatoerstid %d\n}
+112:eng:{Transposition table: %s}
+112:ger:{Transposition Tabelle: %s}
+112:swe:{Transpositionstabell: %s}
+113:eng:{Usage: Gnuchess [-a] [-t] [-c size] [-s savefile][-l listfile] [-x xwndw]\n}
+113:ger:{Aufruf: Gnuchess [-a] [-t] [-c size] [-s savefile][-l listfile] [-x xwndw]\n}
+113:swe:{Anvaend: Gnuchess\n [-L <eng, ger, swe>]\n [<+,->a] Laett\n [-b <bokfil>]\n [-B <binaer bokfil>]\n [<+,->h] Hashtabell\n [-s <Sparfil>]\n [-l <Listfil>]\n [-S <bokstorleken>]\n [-P <max bokdjup (halvdrag)>]\n [-r <rehash>]\n [-T <antal poster i hashtabellen>]\n [-t] testa hashfilen\n [-c <antal poster> skapa hashfilen x=1..23 betyder 2**x]\n [-x <xwin>] paaverkar evalueringen\n [-v] vilken version\n}
+114:eng:{WAwindow= }
+114:ger:{WAwindow= }
+114:swe:{WAwindow= }
+115:eng:{WBwindow= }
+115:ger:{WBwindow= }
+115:swe:{WBwindow= }
+116:eng:{White %d:%02d Black %d:%02d\n}
+116:ger:{Weiss %d:%02d Schwarz %d:%02d\n}
+116:swe:{Vit %d:%02d Svart %d:%02d\n}
+117:eng:{White Clock %ld Moves %ld\nBlack Clock %d Moves %d\n\n}
+117:ger:{Weiss Uhr %ld Zuege %ld\nSchwarz Uhr %d Zuege %d\n\n}
+117:swe:{Vit klocka %ld Drag %ld\nSvart klocka %d drag %d\n\n}
+118:eng:{White}
+118:ger:{Weiss}
+118:swe:{Vit}
+119:eng:{Black}
+119:ger:{Schwarz}
+119:swe:{Svart}
+120:eng:{Wwindow: }
+120:ger:{Wwindow: }
+120:swe:{Wwindow: }
+121:eng:{Your move is? }
+121:ger:{Ihr Zug ist? }
+121:swe:{Ditt drag? }
+122:eng:{\n }
+122:ger:{\n }
+122:swe:{\n }
+123:eng:{\nMove# %d Target= %ld Clock: %ld\n}
+123:ger:{\nZug# %d Zeilzeit= %ld Uhr: %ld\n}
+123:swe:{\nDrag# %d Maal= %ld Klocka: %ld\n}
+124:eng:{\nYour move is? }
+124:ger:{\nIhr Zug ist? }
+124:swe:{\nDitt drag? }
+125:eng:{\n\n}
+125:ger:{\n\n}
+125:swe:{\n\n}
+126:eng:{\nmove score depth nodes time flags capture color\n}
+126:ger:{\nZug BewertTiefe Posit Zeit flags capture Farbe\n}
+126:swe:{\ndrag eval djup noder tid flags capture faerg\n}
+127:eng:{\n}
+127:ger:{\n}
+127:swe:{\n}
+128:eng:{a7a8q promote pawn to queen material turn %s\n}
+128:ger:{a7a8d wandle Bauer in Dame material schalte %s\n}
+128:swe:{a7a8d pronoverar till dam material tur %s\n}
+129:eng:{alg}
+129:ger:{alg}
+129:swe:{alg}
+130:eng:{bd redraw board reverse board display\n}
+130:ger:{br zeichne Brett neu drehe drehe Brett\n}
+130:swe:{br ritar om braedet invertera braedesvisning\n}
+131:eng:{bd}
+131:ger:{br}
+131:swe:{br}
+132:eng:{beep}
+132:ger:{ton }
+132:swe:{pip }
+133:eng:{black}
+133:ger:{schwarz}
+133:swe:{svart}
+134:eng:{book}
+134:ger:{bibl}
+134:swe:{bok}
+135:eng:{both}
+135:ger:{beide}
+135:swe:{baada}
+136:eng:{c Change sides\n}
+136:ger:{c Wechsle Spieler\n}
+136:swe:{c byt sida\n}
+137:eng:{chess.000}
+137:ger:{chess.000}
+137:swe:{chess.000}
+138:eng:{chess.lst.%d}
+138:ger:{chess.lst.%d}
+138:swe:{chess.lst.%d}
+139:eng:{computer mates!\n}
+139:ger:{Computer setzt matt!\n}
+139:swe:{datorn saetter matt!\n}
+140:eng:{computer will soon mate!\n}
+140:ger:{Computer setzt bald matt!\n}
+140:swe:{datorn saetter snart matt!\n}
+141:eng:{computer}
+141:ger:{Computer}
+141:swe:{datorn}
+142:eng:{contempt= }
+142:ger:{contempt= }
+142:swe:{contempt= }
+143:eng:{contempt}
+143:ger:{contempt}
+143:swe:{contempt}
+144:eng:{coords show coords rv reverse video\n}
+144:ger:{Koord bezeichne Felder rv Farbumkehr\n}
+144:swe:{koord visa koordinater rv negativ bild\n}
+145:eng:{coords}
+145:ger:{Koord}
+145:swe:{koord}
+146:eng:{debuglevel= }
+146:ger:{debuglevel= }
+146:swe:{debuglevel= }
+147:eng:{debuglevel}
+147:ger:{debuglevel}
+147:swe:{debuglevel}
+148:eng:{debug}
+148:ger:{debug}
+148:swe:{debug}
+149:eng:{depth set search depth clock set time control\n}
+149:ger:{tiefe setze Suchtiefe zeit setze Zeitkontrolle\n}
+149:swe:{djup saett soekdjup tid saett tidskontroll\n}
+150:eng:{depth= }
+150:ger:{Tiefe= }
+150:swe:{djup= }
+151:eng:{depth}
+151:ger:{tiefe}
+151:swe:{djup}
+152:eng:{easy}
+152:ger:{leicht}
+152:swe:{laett}
+153:eng:{edit edit board force enter game moves\n}
+153:ger:{edit editiere Brett selbst spiele .. beide Seiten\n}
+153:swe:{edit editera braedet sjaelv spela baada sidorna\n}
+154:eng:{edit}
+154:ger:{edit}
+154:swe:{edit}
+155:eng:{enter piece & location: \n}
+155:ger:{Eingabe Figur & Position: \n}
+155:swe:{Ange pjaes & ruta: \n}
+156:eng:{first}
+156:ger:{first}
+156:swe:{first}
+157:eng:{force}
+157:ger:{selbst}
+157:swe:{sjaelv}
+158:eng:{g1f3 move from g1 to f3 quit Exit Chess\n}
+158:ger:{g1f3 ziehe von g1 nach f3 ende Verlasse Spiel\n}
+158:swe:{g1f3 flytta g1 till f3 sluta Avsluta Chess\n}
+159:eng:{game file= }
+159:ger:{Spielfile= }
+159:swe:{sparfil= }
+160:eng:{get}
+160:ger:{hole}
+160:swe:{haemta}
+161:eng:{gnuchess 4p%s game\n}
+161:ger:{gnuchess 4p%s Spiel\n}
+161:swe:{gnuchess 4p%s parti\n}
+162:eng:{go}
+162:ger:{ziehe}
+162:swe:{dra}
+163:eng:{hashdepth= }
+163:ger:{Hashtiefe= }
+163:swe:{hashdjup= }
+164:eng:{hashdepth}
+164:ger:{Hashtiefe}
+164:swe:{hashdjup}
+165:eng:{hash}
+165:ger:{hash}
+165:swe:{hash}
+166:eng:{help}
+166:ger:{hilfe}
+166:swe:{hjaelp}
+167:eng:{hint suggest a move post turn %s principle variation\n}
+167:ger:{hinw schlage Zug vor haupt schalte Hauptvariante %s\n}
+167:swe:{tips tipsa om drag variant visa huvudvariant %s\n}
+168:eng:{hint}
+168:ger:{hinw}
+168:swe:{tips}
+169:eng:{level}
+169:ger:{Level}
+169:swe:{level}
+170:eng:{list game to chess.lst book turn %s used %d of %d\n}
+170:ger:{doku mentiere in chess.lst bibl schalte %s benutzte %d von %d\n}
+170:swe:{lista parti till chess.lst bok slaar %s anvaende %d av %d\n}
+171:eng:{list}
+171:ger:{doku}
+171:swe:{lista}
+172:eng:{new}
+172:ger:{neu}
+172:swe:{ny}
+173:eng:{o-o castle king side easy turn %s\n}
+173:ger:{o-o kurze Rochade leicht schalte %s\n}
+173:swe:{o-o kort rockad laett saett %s\n}
+174:eng:{o-o-o castle queen side hash turn %s\n}
+174:ger:{o-o-o lange Rochade hash schalte %s\n}
+174:swe:{o-o-o laang rockad hash slaar %s\n}
+175:eng:{opponent mates!\n}
+175:ger:{Gegner schlaegt Matt!\n}
+175:swe:{Motstaandaren saetter matt!\n}
+176:eng:{opponent will soon mate!\n}
+176:ger:{Gegner schlaegt bald Matt!\n}
+176:swe:{Motstaandaren mattar strax!\n}
+177:eng:{post principle variation hint suggest a move\n}
+177:ger:{haupt Hauptvariante hinw schlage Zug vor\n}
+177:swe:{variant huvudvarianten hinw tipsa om ett drag\n}
+178:eng:{post}
+178:ger:{haupt}
+178:swe:{variant}
+179:eng:{p}
+179:ger:{p}
+179:swe:{p}
+180:eng:{quit}
+180:ger:{ende}
+180:swe:{sluta}
+181:eng:{random randomize play new start new game\n}
+181:ger:{zufall variableres Spiel neu Starte neues Spiel\n}
+181:swe:{slump varierar spelet ny startar nytt spel\n}
+182:eng:{random}
+182:ger:{zufall}
+182:swe:{slump}
+183:eng:{rcptr}
+183:ger:{rcptr}
+183:swe:{rcptr}
+184:eng:{remove}
+184:ger:{zur}
+184:swe:{bort}
+185:eng:{reverse}
+185:ger:{drehe}
+185:swe:{invertera}
+186:eng:{rv}
+186:ger:{rv}
+186:swe:{rv}
+187:eng:{r}
+187:ger:{r}
+187:swe:{r}
+188:eng:{save game to file get game from file\n}
+188:ger:{speich Spiel in File hole Spiel aus File\n}
+188:swe:{spara parti i fil haemta parti fraan fil\n}
+189:eng:{save}
+189:ger:{speich}
+189:swe:{spara}
+190:eng:{setup}
+190:ger:{setup}
+190:swe:{setup}
+191:eng:{set}
+191:ger:{set}
+191:swe:{set}
+192:eng:{shade toggle shade black stars toggle stars\n}
+192:ger:{Schatt aender Farbton schwarz stern Stern bei Schwarz\n}
+192:swe:{skugga skuggning av svart asterisk Asterisker foer svart\n}
+193:eng:{stars}
+193:ger:{stern}
+193:swe:{stern}
+194:eng:{switch sides with computer both computer match\n}
+194:ger:{wechs ele Seite mit computer beide Computer spielt ..\n}
+194:swe:{byt sida med datorn baada datorn spelar sjaelv\n}
+195:eng:{switch}
+195:ger:{wechs}
+195:swe:{byt}
+196:eng:{test}
+196:ger:{Test}
+196:swe:{test}
+197:eng:{time}
+197:ger:{zeit}
+197:swe:{tid}
+198:eng:{try }
+198:ger:{Versuch }
+198:swe:{proeva }
+199:eng:{ttable collision detected}
+199:ger:{ttable collision detected}
+199:swe:{ttable collision detected}
+200:eng:{undo undo last ply remove take back a move\n}
+200:ger:{hzur Halbzug zurueck zur nehme einen Zug zurueck\n}
+200:swe:{aengra ta tillbaka halvdrag tillbaka ta tillbaka ett drag\n}
+201:eng:{undo}
+201:ger:{hzur}
+201:swe:{hzur}
+202:eng:{white computer plays white black computer plays black\n}
+202:ger:{weiss Computer nimmt Weiss schwarz Computer nimmt Schwarz\n}
+202:swe:{vit datorn spelar vit svart datorn spelar svart\n}
+203:eng:{white}
+203:ger:{weiss}
+203:swe:{vit}
+204:eng:{w}
+204:ger:{w}
+204:swe:{w}
+205:eng:{xboard.position.read}
+205:ger:{xboard.position.read}
+205:swe:{xboard.position.read}
+206:eng:{xboard}
+206:ger:{xboard}
+206:swe:{xboard}
+207:eng:{xget}
+207:ger:{xget}
+207:swe:{xget}
+208:eng:{xwndw= }
+208:ger:{xwndw= }
+208:swe:{xwndw= }
+209:eng:{xwndw}
+209:ger:{xwndw}
+209:swe:{xwndw}
+210:eng:{yes}
+210:ger:{ja}
+210:swe:{ja}
+211:eng:{Illegal move in book %d %s %s}
+211:ger:{Unerlaubter Zug in Bibl. %d %s %s}
+211:swe:{Otillaatet drag i bok %d %s %s}
+212:eng:{Warning can't find book.}
+212:ger:{Warnung: kann Bibl. nicht finden.}
+212:swe:{Varning, kan inte hitta boken.}
+213:eng:{Book used %d of %d entries.}
+213:ger:{Bibl. benutzte %d von %d Eintraegen.}
+213:swe:{Boken anvaende %d av %d poster.}
+214:eng:{true}
+214:ger:{wahr}
+214:swe:{sant}
+215:eng:{false}
+215:ger:{falsch}
+215:swe:{falskt}
+216:eng:{exit}
+216:ger:{exit}
+216:swe:{exit}
+217:eng:{clock}
+217:ger:{Uhr}
+217:swe:{klocka}
+218:eng:{Computer}
+218:ger:{Computer}
+218:swe:{Computer}
+219:eng:{Open failure for file: %s}
+219:ger:{Fehler beim Oeffnen des files: %s}
+219:swe:{Fel vid filoeppning: %s}
+220:eng:{Time Control Error}
+220:ger:{Fehler Zeitkontrolle}
+220:swe:{Tidskontrollsfel}
+221:eng:{material}
+221:ger:{material}
+221:swe:{material}
+222:eng:{time %d %d\n}
+222:ger:{Zeit %d %d\n}
+222:swe:{tid %d %d}
+223:eng:{I have no idea\n}
+223:ger:{Ich habe keine Ahnung\n}
+223:swe:{Jag har inte en aning\n}
+224:eng:{Not Enough Material}
+224:ger:{Nicht genug Material}
+224:swe:{Inte nog med material}
+225:eng:{Illegal position}
+225:ger:{Unerlaubter position}
+225:swe:{otillaaten position}
+226:eng:{beep}
+226:ger:{beep}
+226:swe:{beep}
+227:eng:{gamein}
+227:ger:{gamein}
+227:swe:{gamein}
+228:eng:{otim}
+228:ger:{otim}
+228:swe:{otim}
+229:eng:{hard}
+229:ger:{hart}
+229:swe:{svaar}
+230:eng:{Time Control %s Game in %d sec inc %d sec depth %d\n}
+230:ger:{Zeitkontrolle %s Spiel in %d Sek Inc %d Sek Tiefe %d\n}
+230:swe:{Time Control %s Game in %d sec inc %d sec depth %d\n}
--- /dev/null
+gnuchess(6) gnuchess(6)
+
+
+
+NAME
+ gnuchess - Chess
+
+SYNOPSIS
+ gnuchess [ [[-|+]a] [-A aging-rate] [-b bookfile] [-B binbookfile] [-C
+ cache-table-size] [-c] [[-|+]D ] [[-|+]E ] [[-|+]e ] [[-|+]F ] [-H
+ hash-depth] [[-|+]h ] [-L language] [-l listfile] [[-|+]N] [[-|+]p ]
+ [-P plys] [-r length] [-s savefile] [-S binbooksize] [-t] [-c hashfile-
+ size] [-T transition-table-size] [[-|+]V] [-v] [-x] [-z search-fuzz]
+ arg1 arg2 ]
+
+DESCRIPTION
+ Gnuchess plays a game of chess against the user or it plays against
+ itself.
+
+ Gnuchess is an updated version of the GNU chess playing program. It
+ has a simple alpha-numeric board display, an IBM PC compatible inter-
+ face, or it can be compiled for use with the chesstool program on a SUN
+ workstation or with the xboard program under X-windows. To invoke the
+ program type:
+
+ gnuchess
+ - simple curses based version
+
+ gnuchessn
+ - fancy version using curses and inverse video on UNIX, or IBM
+ PC cursor controls and characters on MSDOS
+
+ gnuchessr
+ - ASCII based version
+
+ gnuchessc
+ - chesstool compatible version
+
+ gnuchessx
+ - xboard compatible version
+
+TIME CONTROLS
+ If one argument is given, it is the search time per move in [min-
+ utes:]seconds. So gnuchess 30 will generate one move every 30 seconds,
+ while gnuchess 5:00 will generate one move every 5 minutes.
+
+ If two or more arguments are given, they will be used to set tournament
+ time controls with the first argument of each pair being the number of
+ moves and the second being the total clock time in minutes[:seconds].
+ Thus, entering gnuchess 60 5 will set the clocks for 5 minutes (300
+ seconds) for the first 60 moves, and gnuchess 30 3:30 will allow 3 min-
+ utes and 30 seconds for 30 moves.
+
+ gnuchess 30 5 1 :30 will allow 5 minutes for the first 30 moves and 30
+ seconds for each move after that. Up to 4 pairs of controls may be
+ specified.
+
+ If no argument is given the program will prompt the user for level of
+ play.
+
+ For use with chesstool or xboard, see the documentation on those pro-
+ grams.
+
+BOOK
+ At startup Gnuchess reads the binbook file if it is present. It then
+ looks for a book file. If it is present it adds its contents to the
+ binbook data. If the binbook file is writable a new combined binbook
+ file is written.
+
+ The book gnuchess.book consists of a sequence of openings. An opening
+ begins with a line starting with a ! , the rest of the line is com-
+ ments. Following this is a series of moves in algebraic notation
+ alternating white and black separated by white space. A move may have a
+ ? after it indicating this move should never be made in this position.
+ Moves are stored as position:move so transpositions between openings
+ can take place.
+
+HASHFILE
+ The hashfile if created should be on the order of 4 megabytes or
+ gnuchess -c 22. This file contains positions and moves learned from
+ previous games. If a hashfile is used the computer makes use of the
+ experience it gained in past games. Tests run so far show that it plays
+ no worse with the hashfile than without, but it is not clear yet
+ whether it provides a real advantage.
+
+LEGAL MOVES
+ Note: Piece letters and legal castling notation is determined by the
+ language file. What is specified here is the default English.
+
+ Once gnuchess is invoked, the program will display the board and prompt
+ the user for a move. To enter a move, use the notation e2e4 where the
+ first letter-number pair indicates the origination square and the sec-
+ ond letter-number pair indicates the destination square. An alterna-
+ tive is to use the notation nf3 where the first letter indicates the
+ piece type (p,n,b,r,q,k). To castle, type the origin and destination
+ squares of the king just as you would do for a regular move, or type o-
+ o or 0-0 for kingside castling and o-o-o or 0-0-0 for queenside. To
+ promote a pawn append the type of the new piece to the move, as in
+ e7e8q or c7c8r.
+
+FUNCTION LETTERS
+ -L lang
+ Use language lang from the file gnuchess.lang. If -L is not
+ specified it defaults to the language used in the first line in
+ the file. gnuchessr -L ger will use the german language.
+
+ -A aging-rate
+ Specify aging rate for hash table entries
+
+ [-]a Do [do not] search on opponents time.
+
+ -b bookfile
+ Use bookfile for opening book.
+
+ -B binbookfile
+ Use binbookfile for binary opening book.
+
+ -C cache-size
+ Specify evaluation cache table size (in entries).
+
+ -D Toggle DEEPNULL at runtime.
+
+ -E Toggle flag.threat.
+
+ -e Toggle flag.neweval to force evaluations instead of estimates
+
+ -F Toggle flag.noscore
+
+ -H hash-depth
+ pecify depth in plys for hashing.
+
+ -S size
+ Size of binbookfile for memory based and GDX books. For creating
+ a binbookfile.
+
+ -P plylevels
+ Number of plys to include in the binbookfile. For generating a
+ binbookfile.
+
+ -p Toggle flag.pvs
+
+ -c size
+ Create a new HASHFILE. File size is 2^size entries of approxi-
+ mately 65 bytes.
+
+ [-]h Do [do not] use hashfile.
+
+ -l pathname
+ Pathname of the loadfile use with the get or xget.
+
+ -r length
+ Rehash length times in searching entries for position in trans-
+ position table.
+
+ -s pathname
+ Pathname of the save file to use with the save command.
+
+ -t Show statistics for HASHFILE
+
+ -T size
+ Set the transposition table size to size entries. (minimum is
+ MINTTABLE)
+
+ -v Show version and patchlevel.
+
+ -x value
+ Use value as the evaluation window xwndw.
+
+COMMANDS
+ In addition to legal moves, the following commands are available as
+ responses. Note: command names are determined by the language file and
+ may vary with the implementation. This is default English.
+
+ alg -- allow algebraic input (not implemented)
+
+ Awindow -- change Alpha window (default score + 90)
+
+ Bwindow -- change Beta window (default score - 90)
+
+ beep -- causes the program to beep after each move.
+
+ bd -- updates the current board position on the display.
+
+ bk -- Print out all moves for this position from the book as: move
+ response value
+
+ book -- turns off use of the opening library.
+
+ both -- causes the computer to play both sides of a chess game.
+
+ black -- causes the computer to take the black pieces. If the computer
+ is to move first the go command must be given.
+
+ eco -- Print out opening information for this game - lists ECO # and
+ variations
+
+ coords -- show coordinates on the display (visual only)
+
+ contempt -- allows the value of contempt to be modified.
+
+ debug -- asks for a piece as color piece, as wb or bn, and shows its
+ calculated value on each square.
+
+ debuglevel -- sets level of debugging output if compiled with debug
+ options.
+
+ depth -- allows the user to change the search depth of the program.
+ The maximum depth is 29 ply. Normally the depth is set to 29 and the
+ computer terminates its search based on elapsed time rather than depth.
+ If depth is set to (say) 4 ply, the program will search until all moves
+ have been examined to a depth of 4 ply (with extensions up to 11 addi-
+ tional ply for sequences of checks and captures). If you set a maximum
+ time per move and also use the depth command, the search will stop at
+ the specified time or the specified depth, whichever comes first.
+
+ easy -- toggles easy mode (thinking on opponents time) on and off. The
+ default is easy mode ON. If easy mode is disabled, the keyboard is
+ polled for input every so often and when input is seen the search is
+ terminated. It may also be terminated with a sigint.
+
+ edit -- allows the user to set up a board position.
+
+ # - command will clear the board.
+
+ c - toggle piece color.
+
+ . - command will exit setup mode.
+
+ pb3 - place a pawn on b3
+
+ Pieces are entered by typing a letter (p,n,b,r,q,k) for the piece fol-
+ lowed by the coordinate.
+
+ The usual warning about the language file applies.
+
+ exit -- exits gnuchess.
+
+ first -- tells the computer to move first. Computer begins searching
+ for a move. (same as "go").
+
+ force -- allows the user to enter moves for both sides. To get the pro-
+ gram to play after a sequence of moves has been entered use the 'white'
+ or 'black' command followed by 'go'.
+
+ gamein -- toggles game mode time control. Assumes the time specified
+ for time control is the time for a complete game. Input with the level
+ command should be the game time and the expected number of moves in a
+ game.
+
+ get -- retrieves a game from disk. The program will prompt the user
+ for a file name.
+
+ go -- tells the computer to move first. Computer begins searching for a
+ move. (same as "first").
+
+ hash -- use/don't use hashfile.
+
+ hard -- think on opponents time
+
+ hashdepth -- allows the user to change the minimum depth for using the
+ hashfile and the number of moves from the begining of the game to use
+ it.
+
+ help -- displays a short description of the commands and the current
+ status of options.
+
+ hint -- causes the program to supply the user with its predicted move.
+
+ level -- allows the user to set time controls such as 60 moves in 5
+ minutes etc. In tournament mode, the program will vary the time it
+ takes for each move depending on the situation. If easy mode is dis-
+ abled (using the 'easy' command), the program will often respond with
+ its move immediately, saving time on its clock for use later on.
+
+ list -- writes the game moves and some statistics on search depth,
+ nodes, and time to the file 'chess.lst'.
+
+ material -- toggle material flag - draws on no pawns and both sides <
+ rook
+
+ Mwpawn, Mbpawn, Mwknight, Mbknight, Mwbishop, Mbbishop -- print out
+ static position evaluation table
+
+ new -- starts a new game.
+
+ p -- evaluates the board and shows the point score for each piece. The
+ total score for a position is the sum of these individual piece scores.
+
+ post -- causes the program to display the principle variation and the
+ score during the search. A score of 100 is equivalent to a 1 pawn
+ advantage for the computer.
+
+ unpost -- turn off the post display.
+
+ quit -- exits the game.
+
+ random -- causes the program to randomize its move selection slightly.
+
+ rcptr -- set recapture mode.
+
+ remove -- backout the last level for both sides. Equal to 2 undo's.
+
+ reverse -- causes the board display to be reversed. That is, the white
+ pieces will now appear at the top of the board.
+
+ rv -- reverse board display.
+
+ setup -- Compatibility with Unix chess and the nchesstool. Set up a
+ board position. Eight lines of eight characters are used to setup the
+ board. a8-h8 is the first line. Black pieces are represented by
+ uppercase characters.
+
+ stars -- (gnuchessn only) add stars (*) to black pieces.
+
+ save -- saves a game to disk. The program will prompt the user for a
+ file name.
+
+ switch -- causes the program to switch places with the opponent and
+ begin searching.
+
+ test -- performs some speed tests for MoveList and CaptureList genera-
+ tion, and ScorePosition position scoring for the current board.
+
+ time otim -- time set computers time remaining, intended for synchro-
+ nizing clocks among multiple players. -- otim set opponents time
+ remaining, intended for synchronizing clocks among multiple players.
+
+ undo -- undoes the last move whether it was the computer's or the
+ human's. You may also type "remove". This is equivalent to two "undo's"
+ (e.g. retract one move for each side).
+
+ white -- causes the computer to take the white pieces. If the computer
+ is to move first the go command must be given.
+
+ xget -- read an xboard position file.
+
+ xwndw -- change X window. The window around alpha/beta used to deter-
+ mine whether the position should be scored or just estimated.
+
+BUGS
+SEE ALSO
+ chesstool(6)
+ xboard(6)
+
+
+
+
+ gnuchess(6)
--- /dev/null
+[Event "World Championship"]
+[Site "Lyon FRA"]
+[Date "1990.11.24"]
+[Round "13"]
+[White "Karpov, Anatoly"]
+[Black "Kasparov, Garry"]
+[Result "1/2-1/2"]
+
+1. d4 Nf6 2. c4 g6 3. Nc3 d5
+{
+Welcome to game 13 and the GI---that's Grunfeld-Indian. Fight from
+the start.
+}
+4. cxd5 Nxd5 5. e4 Nxc3 6. bxc3 Bg7 7. Be3 c5 8. Qd2 O-O
+{
+So far on two minutes each. GK.. Garry Kasparov looks tensed, says
+Mike Valvo. Now Karpov took full 9 minutes to play ...
+}
+9. Rc1 Qa5
+{
+Kasparov thought six minutes here. Time now: White 0:19 Black: 0:08.
+Now 9 minutes has gone and AK is still thinking. Kasparov has left the
+stage. Who is fooling who? 9..Qa5 might be a new move. It's not in the
+pressroom database. Karpov is still thinking, so time for a little
+presentation. At your service in Lyon IM Bjarke Kristensen (Now Valvo:
+AK is nodding his head up and down alone on stage.) As commentators:
+Boris Spassky and a number of strong french IM's. IM Mike Valvo from
+New Jersey is here for a week.
+}
+10. Nf3 e6
+{
+And the "soon-to-be" GM Will Watson from England is here too. "I
+don't understand the GI" he just said. Kasparov stays on stage. Time:
+White: 0:37 Black: 0:10. Says Will Watson (now WW): "I predicted the
+opening this morning. And so did many others." Valvo: "I think this
+shows that the Kings Indian hasn't worked out for Kasparov". IM Levy
+suggests b7-b6 for Black. IM Jonathan Tisdall says: "I've seen this
+before. But nobody can find a game with it."
+}
+11. d5 exd5 12. exd5 Re8 13. Be2
+{
+Time: White: 0:53 Black: 0:24. Valvo observed GK tapping his fingers
+impatiently on the table after move Re8. It just might all be
+preparations! Both are sitting deeply concentrated at the table.
+}
+13... Bf5 14. O-O
+{
+The atmosphere in the pressroom is a bit "fuzzy." The game hasn't
+found its own personality yet, and the fact that the US plays the
+Soviets at the Chess Olympiad in Novi Sad at this very moment is also
+widely discussed.
+}
+14... Nd7
+{
+Interesting is now: 15.Nh4 Be4 16.f3 Bxd5! 17.Qxd5 Rxe3 18.Qxd7
+18...Rxe2 with a big Black plus. say Watson. Rumours say that GK might
+be better here, but nobody really dares to risk his neck. The game is
+still in its childhood. But AK surely is in for a deep think. Now he's
+on 1:16 and still thinking. Garry has left the stage. Valvo say: The
+Mephisto computer thinks Black is better! It's no "Deep Thought", but
+the Mephisto Chess Computer IS already world champion in its class. No
+one else dared to test their program against it!
+}
+15. h3
+{
+Time: White: 1:18 Black: 0:31. Now Karpov has left stage. And GK hangs
+over the board as if to power up his chessmuscles. Kasparov seems
+relaxed and satisfied. White's problem is his weakened pawns on the
+Q-side. And as for his pride-pawn on d5? In an endgame it could be
+pure gold, but until then it gives a good square to a Black piece on
+d6. Kasparov now "hangs" his head between his hands. A very typical
+posture for the WC.
+}
+15... Nb6
+{
+GM Lein thinks White is in deep trouble. GK might play Nb6-a4.
+Another of GK's ideas might be Qa5-a4.
+}
+16. g4
+{
+Now ...that's a man! Karpov's idea obviously is 16... Be4 17.c4 Qxd2
+18.Nxd2 with 19.Nxe4 and 20.Bd3 to come. After a very slow start
+suddenly the game is very exciting. Now the Russians GMs in the
+pressroom find: 16...Be4 17.c4.. Qa3! with a Black edge. But...
+}
+16... Bd7
+{
+Time: AK: 1:31 GK: 0:49. GM-elects Watson and Gallagher say Karpov is
+still under pressure, but improving. Mephisto "thinks" it's slightly
+better for Black. And the Russians say that Kasparov should have
+played h7-h5, not Nd7-b6.
+}
+17. c4 Qxd2 18. Nxd2 Na4 19. Bf3 Nc3 20. Rxc3 Bxc3 21. Ne4
+{
+The heat is on, in the Palais des Congress. Watson thinks GK is still
+doing well. Might be a British understatement. Kasparov is in for at
+deep think. Time: White: 1:42 Black: 1:12 IM Tisdall: He'll take on e4
+now, and it is a draw.
+}
+21... Rxe4 22. Bxe4 Re8 23. Bd3 b6 24. Kg2
+{
+Tisdall says: The first one who can bring himself to offer a draw will
+get it. He might be right. A drastic change of the game has taken
+place. And where did Kasparov drop his advantage? Maybe ...Nc3 should
+have been prepared. Time: White: 1:46 Black: 1:17. If Karpov plays
+Be3-c1 to press f2-f4 (hoping for an endgame advantage with f4-f5) GK
+might play Re8-e1 to enter a tame double-bishop ending. Draw.
+}
+24... f5 25. gxf5 Bxf5 26. Bxf5 gxf5
+{
+Karpov sits thinking alone at the board. Black's Bc3 is potentially
+weaker than Be3, but White's c4 pawn is GK's major target. I think
+that Black's still better. White's d-pawn looks strong (and it is) but
+right now it's quite impotent. If advanced it'll just be lost, since
+Kg8 is too close.
+}
+27. Rd1 Kf7
+{
+Time: White: 2:07 Black: 1:28. Now Kasparov's lead on the clock begins
+to count. Karpov must be considering lines like: 28.d6 Ke6 29.Bf4 Be5
+30.Bxe5 Kxe5 31.Rd5+ Ke6 32.d7 Rd8 and Black is much better.
+}
+28. Rd3 Bf6 29. Ra3 a5 30. Rb3
+{
+Time: White: 2:12 Black: 1:31. It might look simple, but in fact the
+game is balanced on an edge. Which is most important: Black's weakness
+on b6 or White's on c4?
+}
+30... Bd8
+{
+People in the pressroom seems to be losing interest a bit. I think
+that a long endgame battle may be ahead. The fight for the initiative
+is still very much on. Now Watson arrived with news. He said: "The
+Russians think GK is slightly better, the Americans think AK is
+slightly better, and it might be a draw."
+}
+31. Rc3
+{
+Both are leaning across the board. If Karpov can get his king to d3,
+he might play on forever. Kasparov seems "speculative" now. One point
+in Karpov's favour is: 31...Bc7 32.Kf3 Re4 33.Ke2 f4 34.Kd3 and Re4
+has to move.
+}
+31... Bc7
+{
+Karpov is hiding his head behind his hands, looking through his
+fingers. Nine minutes left.
+}
+32. a4 Kf6 33. Kf1 f4
+{
+33...f4! GK played this with determination. I don't understand
+Karpov's Kg2-f1.
+}
+34. Bc1 Kf5 35. Rc2 Rg8 36. Re2 Be5 37. Bb2 Bd4 38. Bxd4 cxd4 39. Re7 d3
+40. Ke1 Rc8 41. Kd2 Rxc4
+{
+Kasparov has moved from c8 to c4. Move 41 made. The last seven moves
+took only 11 minutes Now all analysis goes: 42.Kxd3 Rxa4 43.d6 Ra3+
+44.Kc4 Ra1 45. Kd5 Rd1+ 46.Kc6 a4 and White might be the one who in
+trouble. Both still sits at the board. GK is looking everywhere else,
+waiting for Karpov to decide on if he wants to seal his move now. Some
+say that Kasparov might have proposed a draw earlier on. Not
+verified. Time: 2:42 - 2:08. Karpov sealed his 42nd move. The game
+will be continued (maybe) tomorrow at 11:00 AM ET.
+}
+{Draw agreed} 1/2-1/2
+
--- /dev/null
+Zippy README file
+For version xboard/WinBoard 4.2.4 and later only
+$Id$
+-----------------------------------------------------
+
+Zippy is a program that lets GNU Chess act as a computer player on an
+Internet Chess Server. It also works with Crafty. Zippy is
+unsupported, experimental code.
+
+Zippy is based on XBoard, a graphical interface to GNU Chess and to
+the ICS for the X Window system on Unix. Zippy consists of exactly
+the same code as XBoard, plus one extra module that ties together the
+otherwise-separate functions of talking to GNU Chess and talking to
+the ICS. Zippy is included in the XBoard distribution.
+
+There is also a version of Zippy that is based on WinBoard, a port of
+XBoard to Win32 (Microsoft Windows NT and Windows 95). WinBoard does
+*not* run on Windows 3.1 or 3.11, not even with Win32s. In versions
+3.5 and later, the Zippy code is included in WinBoard.exe.
+
+If you use Zippy, I ask you to do the following:
+
+- Don't expect fast response if you send me mail about problems. It
+might take weeks for me to get back to you, or I might answer right
+away. Try to solve problems yourself before you mail me about them.
+Try asking someone who is actively running a Zippy-based player on ICC
+or FICS for help getting started. Mail me only if you get stuck.
+
+- Be honest. Tell the admins of whatever ICS you use that your player
+is a computer, so that it gets put onto the computer list, and follow
+the ICS computer policies. On ICC these are in "help computer"; read
+this file and abide by what it says.
+
+- If you want to interface some other chess program to ICS, feel free
+to start with this code. Some documentation is in the file
+engine-intf.html in the distribution.
+
+- Please do not use the -zt flag to have your program shout Zippy the
+Pinhead sayings (or other things that my Zippy shouts). One pinhead
+per server is plenty, and I'd like to keep the franchise. Feel free
+to use -zt to have your program shout some other kind of sayings if
+you like. Some of the jokes that Zippy shouts on ICC came from
+ftp://ftp.cco.caltech.edu/pub/humor. The poetry came from Project
+Gutenberg; try http://www.cs.cmu.edu/Web/booktitles.html as a starting
+point. You might find other suitable material at these sites. Prose
+tends to work poorly because it is dull when shouted in isolated
+250-character chunks.
+
+ --Tim Mann
+ http://www.tim-mann.org/chess.html
+
+* * *
+
+Unix: To build the Zippy version of xboard, on most systems just do:
+ configure --enable-zippy
+ make
+
+Windows: WinBoard.exe (versions 3.5 and later) includes the Zippy
+code. There is no longer a distinct WinZippy.exe.
+
+In both xboard and WinBoard, the Zippy features are off by default.
+You can activate them with two new resources/command line options, and
+you can fine-tune them with some new environment variables, all
+described below.
+
+You will probably want to make a shell script or Windows .BAT file
+that sets the environment variables you want to use and invokes Zippy
+with the right command line options for your situation. Some examples
+are at the bottom of this file.
+
+If you have problems building or running Zippy, see the rest of the
+xboard documentation: INSTALL documents the configure program, while
+READ_ME and xboard.man (or xboard.txt) document xboard itself, and
+WinBoard.hlp documents WinBoard. FAQ answers some frequently asked
+questions. The file engine-intf.html contains some information about
+the interface between xboard/WinBoard and GNU Chess (or other chess
+engines).
+
+===========
+NEW OPTIONS
+===========
+
+ -zippyPlay True/False or -zp/-xzp
+ If zippyPlay is set to True, when xboard is in -ics mode, it
+ will interface a chess engine to the ICS instead of letting you
+ play. You must also set -ics when you use this mode.
+
+ In zippyPlay mode, xboard blindly issues an accept command for
+ every (well, almost every, see below) challenge it gets,
+ without remembering anything about the challenge afterwards.
+ This means that often it will get several challenges very
+ close together and try to accept them all! ICS gives an error
+ message for every accept command after the one that actually
+ starts a match, but xboard just happily ignores the message.
+ xboard doesn't actually start the chess engine playing until
+ the first board image comes in from ICS.
+
+ The getMoveList option controls how adjourned games are
+ continued. If it is True (the default), xboard fetches the
+ move list from ICS and feeds it into the chess program before
+ having the program start play. If False, xboard feeds the
+ current position into the chess program and has it start from
+ there. The latter option gets the program going sooner, but
+ can cause problems with detection of en passant legality,
+ castling legality (if a king or rook has moved and then
+ returned to its home square), draw by repetition, and draw by
+ the 50 move rule.
+
+ In zippyPlay mode, colorization in the ICS interaction window,
+ and the sounds corresponding to colors in that window, do not
+ work. zippyPassword and related features (see below) capture
+ the tells, etc., before they can be matched by the color/sound
+ code.
+
+ -zippyTalk True/False or -zt/-xzt
+ If zippyTalk is set to True and xboard is in -ics mode:
+
+ (1) It will reply to anything said to it with a saying (if
+ there is a file of sayings in its working directory). This
+ includes channel tells and shouts where its name is mentioned.
+ Some things it says to opponents in specific situations will
+ also be made Zippy-ish; you might want to change that. See
+ zippyLines below for the file format.
+
+ (2) If a player XXX in your notify list logs on, xboard sends
+ the command "greet XXX" to ICS and tells XXX something from
+ its sayings file. You can alias this to whatever you like.
+ If XXX is censoring you, he is automatically removed from your
+ notify list.
+
+ (3) If a player XXX in your notify list logs off, xboard sends
+ the command "farewell XXX" to ICS. You can alias this to
+ whatever you like. Note that the player is already gone, so
+ telling him something is futile.
+
+ If zippyTalk is on, colorization in the ICS interaction
+ window, and the sounds corresponding to colors in that window,
+ do not work. The reply feature captures the tells, etc.,
+ before they can be matched by the color/sound code.
+
+ In both -zp and -zt modes, if admin X spoofs Zippy, Zippy sends the
+ command "spoofedby X" to ICS. You can alias this to something if you
+ want; otherwise it will produce a harmless error message.
+
+ -zippyPinhead string
+ In zippyTalk mode, if user XXX shouts anything containing
+ this string, xboard sends the command "insult XXX" to ICS.
+ You can alias "insult" to whatever you like. This feature is
+ disabled if the option is not set.
+
+ -zippyPassword string
+ If someone does an ICS "tell" to xboard that begins with this
+ password, it will type the same string back as a command with
+ the password stripped off. For example, if the password is
+ !%%! and xboard sees the string "Darooha tells you: !%%!shout
+ Hi there", it will type the command "shout Hi there" to the
+ ICS. This feature is disabled if the option is not set.
+
+ -zippyPassword2 string
+ If someone does an ICS "tell" to xboard that begins with this
+ password, it will send the same string directly to the chess
+ engine with the password stripped off. This feature is
+ disabled if the option is not set. Use with caution.
+
+ -zippyWrongPassword string
+ This is a joke feature. If player XXX does an ICS "tell" to
+ xboard that begins with this password, it will send the
+ command "wrong XXX" to ICS. ICS does not define a "wrong"
+ command, but you can alias it to whatever you like. The
+ feature is supposed to be used after you've changed the
+ zippyPassword, so that people who knew the old password get a
+ funny message. Disabled if not set.
+
+ -zippyUseI True/False or -zui/-xzui
+ If this option is true, Zippy's shouts use the "i" command with
+ funny verbs; otherwise they use the "shout" command. Default
+ is true. The variable is automatically set to false if the "i"
+ command is disabled on ICS by the admins.
+
+ -zippyLines filename
+ Name of the file Zippy looks in for sayings when -zt is set.
+ Default: yow.lines. File format: There must be a single ^
+ character or null character (control-@, ASCII code \000) after
+ each saying. Sayings can have newlines in them; Zippy will
+ remove them. Sayings can be at most about 250 characters;
+ longer ones will be ignored. The first saying in the file is
+ never used; you should put a comment there. If you have only
+ one or two sayings in your file, Zippy may get into a loop
+ trying to choose one. Zippy chooses a saying by seeking to a
+ random character position in the file, skipping ahead to the
+ *next* null character, and printing the saying that starts
+ there. If it hits end of file without finding a new saying,
+ it tries again. Yes, this is a dumb algorithm.
+
+ -zippyAcceptOnly string
+ Normally, Zippy automatically accepts challenges from all
+ opponents. If this option is set to an ICS login name, Zippy
+ will auto-accept challenges only from that opponent. Set the
+ option to an invalid name like "0" if you don't want Zippy to
+ auto-accept any challenges. You can still accept challenges
+ manually. Setting this option also suppresses the
+ zippyGameEnd feature described below. Default: not set.
+
+ -zippyNoplayCrafty True/False or -znc/-xznc
+ If this option is set to True, if Zippy's opponent kibitzes
+ "Hello from Crafty" within the first couple of moves, Zippy
+ will abort the game and add the opponent to his noplay list.
+ Default: False.
+
+ -zippyGameStart string
+ At the start of each game Zippy plays (including resuming from
+ adjournment), it sends this string to ICS, followed by a newline.
+ If the option is not set, nothing is sent.
+
+ -zippyGameEnd string
+ At the end of each game, Zippy sends this string to ICS,
+ followed by a newline. If you do not set this option, the
+ string "gameend" is sent. This is not a legal ICS command,
+ but you can alias it to whatever you like, or you can leave
+ it undefined, which will cause ICS to print a harmless error
+ message after each game. If you want to send more than one
+ command at the end of the game, on ICC you can alias gameend
+ to a "multi" command (see the ICC help files), but on FICS that
+ does not work. Instead, use the -zippyGameEnd option to have
+ a string of several commands sent, with newlines in between.
+ For example, you could give WinBoard the command line option
+ -zippyGameEnd='say thanks\nseek 5 0\nseek 2 12\n'
+ You could give xboard the command line option
+ -xrm '*zippyGameEnd: say thanks\nseek 5 0\nseek 2 12\n'
+
+ -zippyAdjourn True/False or -zadj/-xzadj
+ Zippy will allow its opponent to adjourn if this option is
+ set to true. Default: False.
+
+ -zippyAbort True/False or -zab/-xzab
+ Zippy will allow its opponent to abort if this option is
+ set to true. Default: False.
+
+ -zippyVariants string
+ Zippy will decline to play chess variants unless their names
+ (as given in engine-intf.html) are listed in this option.
+ Default: "normal". Example: "suicide,losers,bughouse,normal".
+
+ Obviously, zippyVariants other than "normal" will work only
+ if your chess engine can play those variants. GNU Chess
+ certainly cannot, but there are some suicide and bughouse
+ engines available. While playing bughouse, Zippy passes
+ certain extra information on to the engine; see
+ engine-intf.html.
+
+ -zippyBughouse int
+ This option controls how Zippy handles bughouse partner
+ requests. If zippyBughouse is set to 0, Zippy will decline
+ any offers of partnership and tell the offerer that it cannot
+ play bughouse. If zippyBughouse is set to 1, Zippy will
+ decline offers, but you can make Zippy your partner by having
+ *it* offer *you* partnership (by using zippyPassword or typing
+ directly into its window). If zippyBughouse is set to 2,
+ Zippy will accept all offers of partnership, even if it
+ already has a partner. zippyBughouse must be at least 1 for
+ partner tells to be relayed to the engine with the ptell
+ command.
+
+ -zippyMaxGames int
+ -zippyReplayTimeout
+ If zippyMaxGames > 0, Zippy will play at most the given number
+ of consecutive games against the same opponent. Thereafter,
+ Zippy will decline all challenges from that opponent (with an
+ explanatory tell) until either someone else has played or
+ zippyReplayTimeout seconds have elapsed. Defaults:
+ zippyMaxGames=0, zippyReplayTimeout=120.
+
+ Note: If you use these options and you have Zippy doing seeks,
+ be sure to include the "m" flag in the ICS seek command. If
+ you use "seek m", when a player responds to the seek, the ICS
+ gives Zippy a challenge that it can either accept or decline.
+ If you use a seek without the "m" flag, the ICS immediately
+ starts a game between Zippy and the first opponent to respond,
+ giving Zippy no choice about whether to accept or decline.
+
+=====================
+ENVIRONMENT VARIABLES
+=====================
+
+ For backward compatibility with version 4.0.2 and earlier only, most
+ of the command line options listed above can also be set as
+ environment variables. For boolean options, use 0 for false, 1 for
+ true in the corresponding environment variable. The following
+ environment variables are supported.:
+
+ ZIPPYPINHEAD, ZIPPYPASSWORD, ZIPPYPASSWORD2, ZIPPYWRONGPASSWORD,
+ ZIPPYUSEI, ZIPPYLINES, ZIPPYACCEPTONLY, ZIPPYNOPLAYCRAFTY,
+ ZIPPYGAMESTART, ZIPPYGAMEEND, ZIPPYADJOURN, ZIPPYABORT,
+ ZIPPYVARIANTS, ZIPPYBUGHOUSE
+
+ Warnings: (1) If both the command line option and the corresponding
+ environment variable are set, the environment variable takes
+ precedence! (2) Some of the environment variables have names that
+ are too long for Solaris 2.5's /bin/csh. Use the command line
+ options instead. (3) Newer options DO NOT have environment
+ variables. If you don't see it in the list above, it doesn't exist.
+ (4) In the future the environment variables may go away entirely.
+ It would be a good idea to stop using them now and switch to the
+ command line options.
+
+You may also want to customize other things by editing zippy.c and
+recompiling the program.
+
+=====================
+ICS VARIABLE SETTINGS
+=====================
+
+You need to do the following settings on ICS:
+
+ set highlight 0 <-- I'm not sure this is still needed
+ set oldmatch 0
+ set examine 0
+
+If you want to use the zippyPassword remote-control feature, it's a
+good idea to do the following, so that commands you give Zippy won't
+be truncated because the ICS wrapped a "tell" to a new line:
+
+ set wrap 0 <-- on ICC, or
+ set width 255 <-- on FICS
+
+You will probably want to turn on server-side autoflagging too:
+
+ set autoflag 1
+
+======
+SIMULS
+======
+
+It has been discovered that Zippy can play simuls on ICC (but not on
+FICS). If you arrange for Zippy to send the ICC command "simulize" in
+the -zippyGameStart string, it will accept additional games while
+playing. Zippy will use the same engine for every game, so whenever
+it switches opponents, the engine's state will be reset with the "new"
+command. This will of course weaken its play, so don't enable simuls
+if you want your engine to have the highest possible rating.
+
+Zippy was never designed to work with simuls; it just works by
+accident, and it hasn't been tested much. So please report any bugs
+you notice, but don't expect them to be fixed rapidly.
+
+Be sure to use xboard/WinBoard 4.2.4 or later for simuls, because some
+obscure bugs are fixed in that version that affect starting a game in
+the middle (as with resuming from adjournments or switching opponents
+in a simul).
+
+As noted under -zippyPlay above, you should have -getMoveList on to
+ensure that the engine knows the game history after switching boards
+and thus handles draw by repetition and by the 50-move rule correctly.
+It should, however, also work to turn off this option to speed things
+up and reduce network bandwidth, if you don't mind the engine
+occasionally failing to see draw possibilities. Unfortunately,
+though, with Crafty 18.3 (and probably other versions too) as the
+engine, users trying this have experienced Crafty crashes. This looks
+to me like a Crafty bug, but I wasn't able to reproduce it, so it
+remains a mystery.
+
+
+========
+EXAMPLES
+========
+
+Here are some small example command lines. You may want to use more
+options; see the man page, info file, or help file, and perhaps the
+FAQ file too. You may want to put the command line into a Unix shell
+script or Windows .BAT file, which is simply a text file of commands.
+On Unix, turn on execute permission for the file (chmod a+x file); on
+Windows, give it the extension .BAT. You can then run it just like an
+ordinary program. Please do not ask me questions about how to make a
+shell script or .BAT file; these are not functions of xboard/WinBoard,
+but basic operating system features that you can learn about from
+introductory books, friends, teachers, or the online help for your
+system. The examples below should be more than enough to get you
+started.
+
+Unix command lines:
+
+# xboard + GNU Chess on chessclub.com
+xboard -zp -ics -icshost chessclub.com -icshelper timestamp \
+ -zippyPassword beer
+
+# xboard + GNU Chess on freechess.org
+xboard -zp -ics -icshost freechess.org -icshelper timeseal \
+
+# xboard + Crafty on chessclub.com
+xboard -zp -ics -icshost chessclub.com \
+ -fd /home/crafty -fcp crafty -icshelper timestamp \
+ -zippyPassword beer
+
+# xboard + Crafty on freechess.org
+xboard -zp -ics -icshost freechess.org -autoflag \
+ -fd /home/crafty -fcp crafty -icshelper timeseal \
+ -zippyPassword beer
+
+Windows command lines:
+
+REM WinBoard + GNU Chess on chessclub.com
+WinBoard -zp -ics -icshost chessclub.com -fcp GNUChess -icshelper timestamp -zippyPassword beer
+
+REM WinBoard + GNU Chess on freechess.org
+WinBoard -zp -ics -icshost freechess.org -fcp GNUChess -icshelper timeseal -zippyPassword beer
+
+REM WinBoard + Crafty on chessclub.com
+WinBoard -zp -ics -icshost chessclub.com -fd C:\Crafty -fcp WCrafty -icshelper timestamp -zippyPassword beer
+
+REM WinBoard + Crafty on freechess.org
+WinBoard -zp -ics -icshost freechess.org -fd C:\Crafty -fcp WCrafty -icshelper timestamp -zippyPassword beer
--- /dev/null
+This is a sample zippy.lines file for xboard/WinBoard 4.0.4 or later.
+Text before the first caret, like this text, is a comment.
+^
+Here is the first saying. Sayings are separated by caret characters,
+like the character that appears on the next line.
+^
+Here is the second saying.
+^
+Here is saying #3. Note you don't need newlines before the caret characters.^
+Here is saying #4 -- note that it's okay for a saying
+to extend across more than one line. The line breaks are ignored.
+^Saying #5: You don't need newlines after the caret characters either,
+but don't put two carets in a row.
+^
+Our sixth bit of wisdom is that you can use ASCII NUL characters
+(character code \000) instead of carets, but carets are easier to deal with
+in most text editors. In version 4.0.3 and earlier, carets did not work;
+only NULs were allowed.
+^
+The seventh thing you should remember is that any saying more than 250
+characters long will not be used. Therefore, because this saying is
+more than 250 characters long, it will never be used. This is an
+extra sentence to make the saying more than 250 characters long so
+that the previous sentence will be true.
+^
+The eighth item to know is that when you are testing, you had better have
+several valid sayings in your file; for various reasons, having too few
+sayings can cause Zippy to get into an endless loop, or to be very slow.
+^
+As the ninth and final saying, let me add that you need a caret
+at the end of the file; any junk after the last caret is ignored.
+^
+