lots of documentation was available in several places, old unused source files and not used graphics file were floating around in the tree. This should clean up most of it. No need to keep these files around, especially since we are using version control.
-** Announcing the release of XBoard and WinBoard, version 4.4.0 **
-
-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.
+** Version 4.4.0 **
A new release of both XBoard and WinBoard is now available. Version
4.4.0 includes many changes. It is the first major release of
If you find a bug, please report it in the bug tracker at
https://savannah.gnu.org/projects/xboard/ or by email to bug-xboard
(AT) gnu.org.
+
+
+** Version 4.3.16 **
+
+New command-line options
+/niceEngines=N for adjusting the priority of engine processes so they don't soak up all your system resources
+/firstOptions="..." Allows the setting of options that engines define through the feature option="..." commands
+/secondOptions="..."
+/firstLogo=filename.bmp Displays the mentioned bitmap next to the clock (with H:W =1:2 aspect ratio) (WB only)
+/secondLogo=filename.bmp
+/autoLogo=false get logo files automatically from engineDirectory\logo.bmp
+
+General enhancements:
+* New WB-protocol command: 'feature option="NAME -TYPE VALUE OTHER"', which engines can use to define options
+* New WB-protocol command: 'option NAME VALUE' used to set value of engine-defned options.
+* implements /delayAfterQuit and /delayBeforeQuit in XBoard, and uses SIGKILL to terminate rogue engine processes
+
+
+** Version 4.3.15 **
+
+New command-line options
+/rewindIndex=N (for the new auto-increment mode of the loadGameIndex or loadPositionIndex in match mode)
+/sameColorGames=N (for playing a match where the same player has white all the time)
+/egtFormats="..." (for specifying where various end-game tables are installed on the computer)
+
+New menu items
++ Time-odds factors can be set in the time-control dialog
++ Nr of CPUs for SMP engines can be set in the Options -> UCI dialog
++ Own-Book options can be switched from the Options -> UCI dialog
++ The ScoreIsAbs options can be set from the Options -> Engine dialog
++ New-Variant menu adds Superchess
+
+General Enhancements:
+* WinBoard engines can now also use the Polyglot opening book (implemented as general GUI book)
+* New WB-protocol commands memory, cores and egtpath make interactive setting of these parameters
+ possible on WB engines
+* New Polyglot is available that relays the interactive setting of these parameters to UCI engines
+* Match mode suports an auto-increment mode, so that all games or positions from a file can be played
+* Draw claims with Kings and an arbitrary number of like Bishops (e.g. KBBKB) are accepted
+
+The source tree in original xboard 4.2.7 format can now be compiled under Cygwin with the aid
+of the cygwin.mak file in the ~/winboard/ subdirectory of the source releasy, after you put
+the hep-file from an executabl distribution there. Maefiles for other compilers are not updated
+since 4.2.7, as I do not have those compilers.
+
+
+** Version 4.3.14k **
+
+Compared to version 4.3.13 described below, this version features
+
+New command-line options:
+/autoKibitz (for relaying the PV info of the engine to the ICS)
+/userName="..." (for setting the name of the Human player, also as menu)
+/engineDebugOutput=N (controlling the writing of engine output to debug file)
+/firstNPS=N (for time management by node count or CPU time)
+/secondNPS=N (likewise for the other engine)
+
+New Menu items
++ Enter Username (same as /userName command-line option)
++ Save Diagram (for saving the Chessboard display as bitmap file)
++ Machine Both (not implemented yet, but menu item already provided)
++ New-Variant menu adds CRC, Janus and Berolina (the latter only with legality testing off!)
++ Any variant can be played from a shuffled opening setup
+
+Bugfixes:
+* Problems with switching the variant in ICS zippy mode solved
+* In ICS observing mode game history is now fully accessible
+* Moves are not fed to engine in zippy mode, when observing a game from a variant unknown to the engine
+* a problem with loading PGN of FRC games with move disambiguation and initial castling rights was fixed.
+* A bug in the clock display that made previous versions of WinBoard crash for tiny displays is fixed
+
+General enhancements:
+* variant name displayed in title bar in ICS mode, when not 'normal'
+* when receiving a challenge in ICS zippy mode, it is checked if the engine supports the variant (/zippyVariants="..." can still be used to limit the allowed variants, and for protocol-1 engines is still the only thing to go on)
+* when loading a game from a PGN file, WB automatically switches to the variant specified in the PGN tags
+* when starting from a loaded position (using /loadPositionFile), this position will be used on subsequent 'New Game' commands as well (until we switch variant)
+
+New is also that the source tree is now brought back in the original WinBoard 4.2.7 format, including
+xboard source files. Note, however, that the xboard sources are from an older date, and I did not test
+if they still compile together with the much newer backend sources. I did add code in xboard.c to recognize
+the new command-line options I added since then, and in so far they are back-end options that should be enough
+to make them work. This is completely untested, though; I did not even try to compile it. Last time anyone
+built a working xboard.exe from this was at a stage where WinBoard did have adjustable board size, allowing
+it to play Xiangqi. But no crazyhouse holdings yet.
+
+
+** Version 4.3.13a **
+
+This version of WinBoard_F fixes several bugs in 4.3.12, and also addse a few new features.
+The new features include:
+- some more fairy pieces, so that each side now has 22 piece types in stead of 17,
+making most fairy pieces available in board size "petite" (next to "bulky" and "middling"),
+making the ArchBishop and Chancellor, as well as one wildcard piece (the Lance) available in all
+sizes from "petite" to "bulky".
+- The FRC support is fully fixed, both in local and ICS mode.
+- A mechanism is provided for safe draw claiming in cases where a 3-fold repetition woud occur only
+ after your own move. In this case a draw will be awarded by WinBoard if the engine sends "offer draw"
+ before making its move.
+- Genuine draw offers are not passed on immediately to the opponent but held up to when the offerer announces
+ its move.
+- Variants FRC, Cylinder and Falcon are added to the "New Variant..." menu.
+- Support for playing time-odds games is added. (Options /firstTimeOdds, /secondTimeOdds, /timeOddsMode)
+- A mechanism is provided for attaching WinBoard options to the engine command, to create options that
+follow the engine (e.g. time odds) in a tournament run under a tournament manager.
+Bugfixes include:
+- Shatranj in ICS mode (did not work at all before)
+- Some draw adjudications (QRKR was mistaken for KRKR, and KBKB with like Bishops is now recognized)
+- time info in the PGN is now correct
+
+
+
+** Version 4.3.14 **
+
+This relaese was not made by the GNU xboard team, but by H.G.Muller.
+It mainly contains developments on WinBoard. Nevertheless, an attempt
+has been started to back-port the enormous number of improvements that
+have been made to WinBoard since the Linux and Windows developments branched
+to xboard. This is reflected by the source tree now having the same format
+as that of xboard 4.2.7, including all the xboard sources.
+
+An enormous amount of work still has to be done to make the xboard version
+fully equivalent to WinBoard, especially on user-interface side. As a modest
+beginning, the xboard source files have been patched to allow their compilation
+with the newer back-end files from WinBoard. To this end, the number of piece
+types in xboard has been increased from 6 to 22, and the WinBoard bitmaps
+have been converted to xboard source format (.bm) and are included in the
+xboard bitmaps directory. Other quick patches include the coloring of the
+board squares (for xiangqi and holdings), and some code in the user-move
+handling to suppress all moves into or out of the area between board and
+holdings in crazyhouse, and the treatment of king-captures-own-piece
+as a possibly valid move (for FRC castling). This should make it possible
+to run xboard with the new back-end files without too much inconvenience.
+
+New xboard command-line options have been added to make the added back-end
+features available. The include the new variants (as argument of the old
+-variant option), -boardWidth, -boardHeight and -holdingsSize. Be sure
+to call xboard with "-boardSize middling" or "-boardSize bulky" if you
+want to play with fairy pieces, or xboard might crash due to unavailability
+of bitmaps. Other added xboard options are:
+
+ADJUDICATION OPTIONS:
+-checkMates
+-testClaims
+-materialDraws
+-trivialDraws
+-ruleMoves
+-repeatsToDraw
+-adjudicateLossThreshold
+-firstScoreAbsolute
+-secondScoreAbsolute
+
+TIME-CONTROL OPTIONS
+-firstTimeOdds
+-secondTimeOdds
+-timeOddsMode
+-firstNPS
+-secondNPS
+
+GENERAL OPTIONS
+-matchPause
+-engineDebugOutput
+-userName
+-pgnExtendedInfo
+-pgnEventHeader
+-hideThinkingFromHuman
+
+This is all completely untested, but as the options merely switch on well-tested
+code in the back-end, there should not be too many problems with them.
+Bugs can be reported in the WinBoard forum.
-\r
What is XBoard?\r
===============\r
XBoard is a graphical chessboard for the X Window System. It can\r
we will get in touch with you about merging them in to the main line\r
of development.\r
\r
-Version 4.3.14\r
-==============\r
-\r
-This relaese was not made by the GNU xboard team, but by H.G.Muller.\r
-It mainly contains developments on WinBoard. Nevertheless, an attempt\r
-has been started to back-port the enormous number of improvements that\r
-have been made to WinBoard since the Linux and Windows developments branched\r
-to xboard. This is reflected by the source tree now having the same format\r
-as that of xboard 4.2.7, including all the xboard sources. \r
-\r
-An enormous amount of work still has to be done to make the xboard version\r
-fully equivalent to WinBoard, especially on user-interface side. As a modest\r
-beginning, the xboard source files have been patched to allow their compilation\r
-with the newer back-end files from WinBoard. To this end, the number of piece\r
-types in xboard has been increased from 6 to 22, and the WinBoard bitmaps\r
-have been converted to xboard source format (.bm) and are included in the\r
-xboard bitmaps directory. Other quick patches include the coloring of the\r
-board squares (for xiangqi and holdings), and some code in the user-move\r
-handling to suppress all moves into or out of the area between board and\r
-holdings in crazyhouse, and the treatment of king-captures-own-piece\r
-as a possibly valid move (for FRC castling). This should make it possible \r
-to run xboard with the new back-end files without too much inconvenience.\r
-\r
-New xboard command-line options have been added to make the added back-end \r
-features available. The include the new variants (as argument of the old\r
--variant option), -boardWidth, -boardHeight and -holdingsSize. Be sure\r
-to call xboard with "-boardSize middling" or "-boardSize bulky" if you\r
-want to play with fairy pieces, or xboard might crash due to unavailability\r
-of bitmaps. Other added xboard options are:\r
-\r
-ADJUDICATION OPTIONS:\r
--checkMates\r
--testClaims\r
--materialDraws\r
--trivialDraws\r
--ruleMoves\r
--repeatsToDraw\r
--adjudicateLossThreshold\r
--firstScoreAbsolute\r
--secondScoreAbsolute\r
-\r
-TIME-CONTROL OPTIONS\r
--firstTimeOdds\r
--secondTimeOdds\r
--timeOddsMode\r
--firstNPS\r
--secondNPS\r
-\r
-GENERAL OPTIONS\r
--matchPause\r
--engineDebugOutput\r
--userName\r
--pgnExtendedInfo\r
--pgnEventHeader\r
--hideThinkingFromHuman\r
-\r
-This is all completely untested, but as the options merely switch on well-tested\r
-code in the back-end, there should not be too many problems with them.\r
-Bugs can be reported in the WinBoard forum.
\ No newline at end of file
+++ /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.
-^
-
+++ /dev/null
-<!DOCTYPE HTML>\r
-<html>\r
-\r
-<head>\r
-<title>WinBoard 4.3.15</title>\r
-</head>\r
-\r
-<body>\r
-<table><tr><td halign="top">\r
-<h1>WinBoard 4.3.15</h1>\r
-<h2>"For the ultimate WinBoard experience"</h2>\r
-<h3>Introduction</h3>\r
-<p>\r
-The WinBoard 4.3 series is a continuation of the WinBoard_x line by Allessandro Scotti.\r
-It is been further developed, and is maintained, by H.G. Muller.\r
-Most addtions and improvements that went into this since the last version produced\r
-by the GNU-Savannah xboard project team, WinBoard 4.2.7b,\r
-are unfortunately not parallelled in xboard.\r
-On the contrary, they have destroyed the compatibility of the back-end sources\r
-shared by WinBoard and xboard with the xboard front-end of version 4.2.7b.\r
-Since WinBoard 4.3.14, however, the releases again coms with a compatible xboard front-end.\r
-That does not mean that all the features added to WinBoard can already be used\r
-in this xboard version.\r
-But some can, an in 4.3.15 many more have been added.\r
-</p><p>\r
-The description below applies specifically to WinBoard, \r
-although we have tried to mark features that can also be used in xboard by (x) everywhere.\r
-This version of xboard does does have som new menus added to control such features.\r
-Other functionss, if they work at all, must be switched on from the command line.\r
-</p>\r
-</td><td width="20">\r
-</td><td width="600" halign="center" cellpdding="20">\r
-<img src="mini.gif">\r
-</td></tr></table>\r
-<h3>New features since 4.2.7b</h3>\r
-<p>\r
-Below follows a table that lists the new features, \r
-the command-line option needed to control them,\r
-and if there is a menu provided that can switch the option while WinBoard is running\r
-(command-line options exert their effect only at startup).\r
-Note that, unlike WinBoard 4.2.7, the WinBoard 4.3 series is fully castling and e.p. aware,\r
-and handles the castling, e.p. and 50-move field in FENs on input and output as should be expected.\r
-</p>\r
-<table cellpadding="3" border="1"><tr><td width="220">\r
- <h3>command-line option</h3>\r
- </td><td>\r
- <h3>description</h3>\r
- </td><td width="250">\r
- <h3>menu</h3>\r
- </td></tr><tr><td>\r
- \r
- </td><td bgcolor="lightblue">\r
- <strong>ENGINE-ENGINE ADJUDICATION OPTIONS<strong>\r
- </td><td>\r
- \r
- </td></tr><tr><td>\r
- -adjudicateLossThreshold 0 (*x)\r
- </td><td>\r
- adjudicates engine-engine game based on score\r
- </td><td>\r
- Options -> Engine... (x)\r
- </td></tr><tr><td>\r
- -checkMates false (*x)\r
- </td><td>\r
- detect and end game on checkmates and stalemates\r
- </td><td>\r
- Options -> Engine... (x)\r
- </td></tr><tr><td>\r
- -testClaims false (*x)\r
- </td><td>\r
- WinBoard corrects false RESULT claims\r
- </td><td>\r
- Options -> Engine.. (x)\r
- </td></tr><tr><td>\r
- -materialDraws false (*x)\r
- </td><td>\r
- adjudicate draw when no mating material present\r
- </td><td>\r
- Options -> Engine.. (x)\r
- </td></tr><tr><td>\r
- -trivialDraws false (*x)\r
- </td><td>\r
- adjudicate draw in endgames like KRKR and KNNK\r
- </td><td>\r
- Options -> Engine.. (x)\r
- </td></tr><tr><td>\r
- -adjudicateDrawMoves 0 (*)\r
- </td><td>\r
- adjudicate draw when game lasts too long\r
- </td><td>\r
- Options -> Engine.. (x)\r
- </td></tr><tr><td>\r
- -ruleMoves 51 (*x)\r
- </td><td>\r
- number of reversible moves after which to adjudicate draw\r
- </td><td>\r
- Options -> Engine.. (x)\r
- </td></tr><tr><td>\r
- -repeatsToDraw 6 (*x)\r
- </td><td>\r
- adjudicate draw when a position occurs this many times\r
- </td><td>\r
- Options -> Engine.. (x)\r
- </td></tr><tr><td>\r
- -firstScoreAbs false (x)\r
- <br>\r
- -secondScoreAbs false (x)\r
- </td><td>\r
- Engine indicates score for white, even when playing black\r
- </td><td>\r
- Options -> Adjudications.. (xboard-only)\r
- </td></tr><tr><td>\r
- -\r
- </td><td>\r
- Adjudicate the game in progress as win to white, win to black, or draw\r
- </td><td>\r
- Action -> Adjudicate to White\r
- <br>\r
- Action -> Adjudicate to Black\r
- <br>\r
- Action -> Adjudicate Draw\r
- </td></tr><tr><td>\r
- \r
- </td><td bgcolor="lightblue">\r
- <strong>TIME-CONTROL AND TIMING OPTIONS</strong>\r
- </td><td>\r
- \r
- </td></tr><tr><td>\r
- -firstTimeOdds 1 (x)\r
- <br>\r
- -secondTimeOdds 1 (x)\r
- </td><td>\r
- reduce the thinking time of the mentioned engine by the given factor\r
- </td><td>\r
- Options -> Engine Settings.. (xboard only)\r
- </td></tr><tr><td>\r
- -timeOddsMode 1 (*x)\r
- </td><td>\r
- determines what happens when both engine have time odds\r
- </td><td>\r
- Options -> Engine Settings.. (xboard only)\r
- </td></tr><tr><td>\r
- -firstNPS -1 (x)\r
- <br>\r
- -secondNPS -1 (x)\r
- </td><td>\r
- engine must use node count for its time control, as if running at specified rate\r
- </td><td>\r
- -\r
- </td></tr><tr><td>\r
- -matchPause 10000 (*x)\r
- </td><td>\r
- number of msec to wait between games in match mode\r
- </td><td>\r
- -\r
- </td></tr><tr><td>\r
- -delayBeforeQuit 0 (*)\r
- <br>\r
- -delayAfterQuit 0 (*)\r
- </td><td>\r
- timing parameter specifying how to terminate the engine processes\r
- </td><td>\r
- -\r
- </td></tr><tr><td>\r
- -\r
- </td><td>\r
- adjust the clocks by 1 minute (up or down)\r
- </td><td>\r
- left- or right-cick on clock in edit-game mode\r
- </td></tr><tr><td>\r
- \r
- </td><td bgcolor="lightblue">\r
- <strong>DISPLAY-LOOK OPTIONS</strong>\r
- </td><td>\r
- \r
- </td></tr><tr><td>\r
- -liteBackTextureFile "" (*)\r
- <br>\r
- -darkBackTextureFile "" (*)\r
- <br>\r
- -liteBackTextureMode 1 (*)\r
- <br>\r
- -darkBackTextureMode 1 (*)\r
- </td><td>\r
- Allows you to use any bitmap picture for displaying the board square\r
- </td><td>\r
- -\r
- </td></tr><tr><td>\r
- -renderPiecesWithFont "" (*)\r
- </td><td>\r
- specifies a true-type Chess font to be used for piece symbols\r
- </td><td>\r
- -\r
- </td></tr><tr><td>\r
- -fontPieceToCharTable "" (*)\r
- </td><td>\r
- specifies which font character to use for the various piece types\r
- </td><td>\r
- -\r
- </td></tr><tr><td>\r
- -overrideLineGap 1 (*)\r
- </td><td>\r
- controls the width of the black grid lines between squares\r
- </td><td>\r
- -\r
- </td></tr><tr><td>\r
- -fontPieceBackColorWhite #0 (*)\r
- <br>\r
- -fontPieceForeColorWhite #0 (*)\r
- <br>\r
- -fontPieceBackColorBlack #0 (*)\r
- <br>\r
- -fontPieceForeColorBlack #0 (*)\r
- </td><td>\r
- control piece colors in font-based rendering\r
- </td><td>\r
- -\r
- </td></tr><tr><td>\r
- -fontPieceSize 80 (*)\r
- </td><td>\r
- tunes the size of pieces in font-based rendering (% of square size)\r
- </td><td>\r
- -\r
- </td></tr><tr><td>\r
- -highlightMoveWithArrow false (*)\r
- </td><td>\r
- draws a big arrow to indicate the move last played\r
- </td><td>\r
- Options -> General...\r
- </td></tr><tr><td>\r
- -highlightArrowColor #FFFF80 (*)\r
- </td><td>\r
- controls the color of the highlight arrow\r
- </td><td>\r
- -\r
- </td></tr><tr><td>\r
- -\r
- </td><td>\r
- Swap white and black clock\r
- </td><td>\r
- Options -> Swap Clocks\r
- </td></tr><tr><td>\r
- \r
- </td><td bgcolor="lightblue">\r
- <strong>UCI ENGINE OPTIONS</strong>\r
- </td><td>\r
- \r
- </td></tr><tr><td>\r
- -polyglotDir "" (*)\r
- </td><td>\r
- tells WinBoard where you installed Polyglot, for automatic invocation with UCI engines\r
- </td><td>\r
- Options -> UCI... (x)\r
- </td></tr><tr><td>\r
- -polyglotBook "" (*)\r
- </td><td>\r
- tells WinBoard which opening book it should use, or should make Polyglot use.\r
- </td><td>\r
- Options -> UCI... (x)\r
- </td></tr><tr><td>\r
- -usePolyglotBook false (*)\r
- </td><td>\r
- turns the use of the Polygot book on or off\r
- </td><td>\r
- Options -> UCI... (x)\r
- </td></tr><tr><td>\r
- -defaultPathEGTB "c:\egtb" (*)\r
- </td><td>\r
- folder where to find end-game tables\r
- </td><td>\r
- Options -> UCI... (x)\r
- </td></tr><tr><td>\r
- -defaultCacheSizeEGTB 4 (*)\r
- </td><td>\r
- specifies the cache size for UCI engines\r
- </td><td>\r
- Options -> UCI... (x)\r
- </td></tr><tr><td>\r
- -defaultHashSize 64 (*)\r
- </td><td>\r
- Specifies the size of the main hash table for UCI engines\r
- </td><td>\r
- Options -> UCI... (x)\r
- </td></tr><tr><td>\r
- -firstIsUCI false\r
- <br>\r
- -secondIsUCI false\r
- <br>\r
- -fUCI\r
- <br>\r
- -sUCI\r
- </td><td>\r
- tells WinBoard the corresponding engine should be run through Polyglot\r
- </td><td>\r
- -\r
- </td></tr><tr><td>\r
- -firstHasOwnBookUCI true\r
- <br>\r
- -secondHasOwnBookUCI true\r
- <br>\r
- -fNoOwnBookUCI true\r
- <br>\r
- -sNoOwnBookUCI true\r
- </td><td>\r
- tells Polyglot if the engine should use its own opening book\r
- </td><td>\r
- Options -> Engine Settings... (xboard only)\r
- </td></tr><tr><td>\r
- -smpCores 1 (*x)\r
- </td><td>\r
- Sets the maximum number of CPUs an SMP engine can use.\r
- (only affects engines that support the <strong>cores</strong> command of WB protocol)\r
- </td><td>\r
- Options -> Engine Settings... (xboard only)\r
- </td></tr><tr><td>\r
- -egtFormats "" (*x)\r
- </td><td>\r
- Specifies which end-game tables are installed on the computer,\r
- and where they can be found\r
- (e.g. "nalimov:\chess\egtb,scorpio:\chess\bitbases")\r
- </td><td>\r
- -\r
- </td></tr><tr><td>\r
- \r
- </td><td bgcolor="lightblue">\r
- <strong>CHESS-VARIANT OPTIONS</strong>\r
- </td><td>\r
- \r
- </td></tr><tr><td>\r
- -boardHeight -1 (*x)\r
- <br>\r
- -boardWidth -1 (*x)\r
- <br>\r
- -holdingsSize -1 (*x)\r
- </td><td>\r
- specifies the board format and nr of piece types that can be dropped,\r
- when you want it to be different from what is usual in the chosen varint\r
- </td><td>\r
- File -> New Variant...\r
- </td></tr><tr><td>\r
- -variant normal (x)\r
- </td><td>\r
- supports many new variants: xiangqi, shogi, fischerandom, capabanca, gothic, caparandom, janus,\r
- shatranj, courier, knightmate, berolina, falcon, cylinder, fairy, super\r
- </td><td>\r
- File -> New Variant... (x)\r
- </td></tr><tr><td>\r
- -defaultFrcOpening -1 (x)\r
- </td><td>\r
- allows you to play from a specific opening shuffle, or make a new shuffle each game\r
- </td><td>\r
- File -> New Shuffle Game... (x)\r
- </td></tr><tr><td>\r
- -pieceToCharTable "" (x)\r
- </td><td>\r
- allows you to specify by which letters pieces are referred to in FEN and SAN,\r
- if you want to deviate from what is usual for the current variant\r
- </td><td>\r
- -\r
- </td></tr><tr><td>\r
- -flipBlack fase (*x)\r
- </td><td>\r
- displays opponent pieces uppside down (for Shogi)\r
- </td><td>\r
- Options -> Board...\r
- </td></tr><tr><td>\r
- -allWhite false (*x)\r
- </td><td>\r
- use white bitmaps (with black outline) also for display of black pieces (for Shogi)\r
- </td><td>\r
- Options -> Board...\r
- </td></tr><tr><td>\r
- \r
- </td><td bgcolor="lightblue">\r
- <strong>PGN FILE OPTIONS</strong>\r
- </td><td>\r
- \r
- </td></tr><tr><td>\r
- -pgnExtendedInfo false (*x)\r
- </td><td>\r
- save engine output (depth, score time) in PGN\r
- </td><td>\r
- Options->General...\r
- </td></tr><tr><td>\r
- -pgnEventHeader </br>"Computer Chess Game" (*x)\r
- </td><td>\r
- specify the event for the PGN event tag\r
- </td><td>\r
- -\r
- </td></tr><tr><td>\r
- -saveOutOfBookInfo true (*)\r
- </td><td>\r
- include an 'annotator' tag in the PGN file\r
- </td><td>\r
- \r
- </td></tr><tr><td>\r
- -hideThinkingFromHuman false (*x)\r
- </td><td>\r
- suppresses the engine thinking output in the display, without the need to switch it off\r
- (so it can still appear in the PGN file)\r
- </td><td>\r
- Options -> General... (x)\r
- </td></tr><tr><td>\r
- \r
- </td><td bgcolor="lightblue">\r
- <strong>USER-INTERFACE OPTIONS AND WINDOW CONTROL</strong>\r
- </td><td>\r
- \r
- </td></tr><tr><td>\r
- -moveHistoryUP true (*)\r
- <br>\r
- -moveHistoryX 0 (*)\r
- <br>\r
- -moveHistoryY 0 (*)\r
- <br>\r
- -moveHistoryW 0 (*)\r
- <br>\r
- -moveHistoryH 0 (*)\r
- </td><td>\r
- controls opening, placement and size of a window containing the moves of the current game\r
- </td><td>\r
- Mode -> Show Move History (x)\r
- </td></tr><tr><td>\r
- -evalGraphUp true (*)\r
- <br>\r
- -evalGraphX 0 (*)\r
- <br>\r
- -evalGraphY 0 (*)\r
- <br>\r
- -evalGraphW 0 (*)\r
- <br>\r
- -evalGraphH 0 (*)\r
- </td><td>\r
- controls opening, placement and size of a window containing a graph of the\r
- evaluation score of the engine(s) as a function of move number of the current game\r
- </td><td>\r
- Mode -> Show Evaluation Graph\r
- </td></tr><tr><td>\r
- -engineOutputUp true (*)\r
- <br>\r
- -engineOutputX 0 (*)\r
- <br>\r
- -engineOutputY 0 (*)\r
- <br>\r
- -engineOutputW 0 (*)\r
- <br>\r
- -engineOutputH 0 (*)\r
- </td><td>\r
- controls opening, placement and size of a window containing the thinking output of the engine(s)\r
- </td><td>\r
- Mode -> Show Engine Output (x)\r
- </td></tr><tr><td>\r
- -stickyWindows true (*)\r
- </td><td>\r
- make the various windows snap onto each other, and stick together\r
- </td><td>\r
- -\r
- </td></tr><tr><td>\r
- -showEvalInMoveHistory true (*)\r
- </td><td>\r
- depth/score info of the engine is included as comments in the move history window\r
- </td><td>\r
- Options -> General...\r
- </td></tr><tr><td>\r
- -evalHistColorWhite #FFFFB0 (*)\r
- <br>\r
- -evalHistColorBlack #AD5D3D (*)\r
- </td><td>\r
- determines the color of the eval-score comments in the move-history window\r
- </td><td>\r
- -\r
- </td></tr><tr><td>\r
- -autoDisplayComment true (*)\r
- </td><td>\r
- causes a window for displaying PGN comments to pop up automatically when such a comment is encountered\r
- </td><td>\r
- -\r
- </td></tr><tr><td>\r
- -autoDisplayTags true (*)\r
- </td><td>\r
- causes a window with PGN tags to be displayed as soon as a PGN file is loaded\r
- </td><td>\r
- -\r
- </td></tr><tr><td>\r
- -gameListTags "eprd" (*)\r
- </td><td>\r
- specifies the PGN tags that should be displayed in the game list\r
- </td><td>\r
- Options -> Game List...\r
- </td></tr><tr><td>\r
- \r
- </td><td bgcolor="lightblue">\r
- <strong>MISCELLANEOUS</strong>\r
- </td><td>\r
- \r
- </td></tr><tr><td>\r
- -debugFile "winboard.debug"\r
- <br>\r
- -nameOfDebugFile "winboard.debug"\r
- </td><td>\r
- allows you to specify an alternative name for saving the debug information\r
- </td><td>\r
- -\r
- </td></tr><tr><td>\r
- -\r
- </td><td>\r
- save chess-board display as diagram in bitmap file\r
- (only works for the smaller board formats!)\r
- </td><td>\r
- File -> Save Diagram...\r
- </td></tr><tr><td>\r
- -\r
- </td><td>\r
- display only those lines in the game list that contain a given string\r
- </td><td>\r
- in Game-List window\r
- </td></tr><tr><td>\r
- -rewindFile 0 (x)\r
- </td><td>\r
- A nonzero value for this option causes the loadGameIndex or loadPositionIndex\r
- to rewind to the beginning of the Games or Position file when it reaches\r
- the given value in auto-increment match mode. \r
- This mode is specified by a negative value as argument of the /lgi or /lpi options,\r
- where -1 increments the index after every game of the match,\r
- and -2 after every two games (so that each position is played with black and white).\r
- </td><td>\r
- -\r
-</td></tr></table>\r
-<p>\r
-The value with which the option is listed is the default value.\r
-If it is false or true, it is a Boolean option, a number implies an integer option.\r
-A value starting with # indicates an RGB color indication in hexadecimal notation.\r
-Options the settings of which are saved into the winboard.ini file are marked with (*).\r
-</p>\r
-</body>\r
+++ /dev/null
-
-/*
- * This little proof of concept utility for educational purposes
- * computes the Polyglot key of a fen.
- *
- * Usage:
- * pg_key "<fen string>"
- *
- *
- * For brevity this code does ZERO error checking and will
- * unceremoniously segfault in case of an illegal fen.
- *
- *
- * This code is released in the public domain by Michel Van den Bergh.
- * The array Random64 is taken from the Polyglot source code.
- * I am pretty sure that a table of random numbers is never protected
- * by copyright.
- *
- */
-
-
-#include <stdio.h>
-#include <string.h>
-
-#ifdef _MSC_VER
- typedef unsigned __int64 uint64;
-#else
- typedef unsigned long long int uint64;
-#endif
-
-
-#ifdef _MSC_VER
-# define U64(u) (u##ui64)
-#else
-# define U64(u) (u##ULL)
-#endif
-
-uint64 Random64[781] = {
- U64(0x9D39247E33776D41), U64(0x2AF7398005AAA5C7), U64(0x44DB015024623547), U64(0x9C15F73E62A76AE2),
- U64(0x75834465489C0C89), U64(0x3290AC3A203001BF), U64(0x0FBBAD1F61042279), U64(0xE83A908FF2FB60CA),
- U64(0x0D7E765D58755C10), U64(0x1A083822CEAFE02D), U64(0x9605D5F0E25EC3B0), U64(0xD021FF5CD13A2ED5),
- U64(0x40BDF15D4A672E32), U64(0x011355146FD56395), U64(0x5DB4832046F3D9E5), U64(0x239F8B2D7FF719CC),
- U64(0x05D1A1AE85B49AA1), U64(0x679F848F6E8FC971), U64(0x7449BBFF801FED0B), U64(0x7D11CDB1C3B7ADF0),
- U64(0x82C7709E781EB7CC), U64(0xF3218F1C9510786C), U64(0x331478F3AF51BBE6), U64(0x4BB38DE5E7219443),
- U64(0xAA649C6EBCFD50FC), U64(0x8DBD98A352AFD40B), U64(0x87D2074B81D79217), U64(0x19F3C751D3E92AE1),
- U64(0xB4AB30F062B19ABF), U64(0x7B0500AC42047AC4), U64(0xC9452CA81A09D85D), U64(0x24AA6C514DA27500),
- U64(0x4C9F34427501B447), U64(0x14A68FD73C910841), U64(0xA71B9B83461CBD93), U64(0x03488B95B0F1850F),
- U64(0x637B2B34FF93C040), U64(0x09D1BC9A3DD90A94), U64(0x3575668334A1DD3B), U64(0x735E2B97A4C45A23),
- U64(0x18727070F1BD400B), U64(0x1FCBACD259BF02E7), U64(0xD310A7C2CE9B6555), U64(0xBF983FE0FE5D8244),
- U64(0x9F74D14F7454A824), U64(0x51EBDC4AB9BA3035), U64(0x5C82C505DB9AB0FA), U64(0xFCF7FE8A3430B241),
- U64(0x3253A729B9BA3DDE), U64(0x8C74C368081B3075), U64(0xB9BC6C87167C33E7), U64(0x7EF48F2B83024E20),
- U64(0x11D505D4C351BD7F), U64(0x6568FCA92C76A243), U64(0x4DE0B0F40F32A7B8), U64(0x96D693460CC37E5D),
- U64(0x42E240CB63689F2F), U64(0x6D2BDCDAE2919661), U64(0x42880B0236E4D951), U64(0x5F0F4A5898171BB6),
- U64(0x39F890F579F92F88), U64(0x93C5B5F47356388B), U64(0x63DC359D8D231B78), U64(0xEC16CA8AEA98AD76),
- U64(0x5355F900C2A82DC7), U64(0x07FB9F855A997142), U64(0x5093417AA8A7ED5E), U64(0x7BCBC38DA25A7F3C),
- U64(0x19FC8A768CF4B6D4), U64(0x637A7780DECFC0D9), U64(0x8249A47AEE0E41F7), U64(0x79AD695501E7D1E8),
- U64(0x14ACBAF4777D5776), U64(0xF145B6BECCDEA195), U64(0xDABF2AC8201752FC), U64(0x24C3C94DF9C8D3F6),
- U64(0xBB6E2924F03912EA), U64(0x0CE26C0B95C980D9), U64(0xA49CD132BFBF7CC4), U64(0xE99D662AF4243939),
- U64(0x27E6AD7891165C3F), U64(0x8535F040B9744FF1), U64(0x54B3F4FA5F40D873), U64(0x72B12C32127FED2B),
- U64(0xEE954D3C7B411F47), U64(0x9A85AC909A24EAA1), U64(0x70AC4CD9F04F21F5), U64(0xF9B89D3E99A075C2),
- U64(0x87B3E2B2B5C907B1), U64(0xA366E5B8C54F48B8), U64(0xAE4A9346CC3F7CF2), U64(0x1920C04D47267BBD),
- U64(0x87BF02C6B49E2AE9), U64(0x092237AC237F3859), U64(0xFF07F64EF8ED14D0), U64(0x8DE8DCA9F03CC54E),
- U64(0x9C1633264DB49C89), U64(0xB3F22C3D0B0B38ED), U64(0x390E5FB44D01144B), U64(0x5BFEA5B4712768E9),
- U64(0x1E1032911FA78984), U64(0x9A74ACB964E78CB3), U64(0x4F80F7A035DAFB04), U64(0x6304D09A0B3738C4),
- U64(0x2171E64683023A08), U64(0x5B9B63EB9CEFF80C), U64(0x506AACF489889342), U64(0x1881AFC9A3A701D6),
- U64(0x6503080440750644), U64(0xDFD395339CDBF4A7), U64(0xEF927DBCF00C20F2), U64(0x7B32F7D1E03680EC),
- U64(0xB9FD7620E7316243), U64(0x05A7E8A57DB91B77), U64(0xB5889C6E15630A75), U64(0x4A750A09CE9573F7),
- U64(0xCF464CEC899A2F8A), U64(0xF538639CE705B824), U64(0x3C79A0FF5580EF7F), U64(0xEDE6C87F8477609D),
- U64(0x799E81F05BC93F31), U64(0x86536B8CF3428A8C), U64(0x97D7374C60087B73), U64(0xA246637CFF328532),
- U64(0x043FCAE60CC0EBA0), U64(0x920E449535DD359E), U64(0x70EB093B15B290CC), U64(0x73A1921916591CBD),
- U64(0x56436C9FE1A1AA8D), U64(0xEFAC4B70633B8F81), U64(0xBB215798D45DF7AF), U64(0x45F20042F24F1768),
- U64(0x930F80F4E8EB7462), U64(0xFF6712FFCFD75EA1), U64(0xAE623FD67468AA70), U64(0xDD2C5BC84BC8D8FC),
- U64(0x7EED120D54CF2DD9), U64(0x22FE545401165F1C), U64(0xC91800E98FB99929), U64(0x808BD68E6AC10365),
- U64(0xDEC468145B7605F6), U64(0x1BEDE3A3AEF53302), U64(0x43539603D6C55602), U64(0xAA969B5C691CCB7A),
- U64(0xA87832D392EFEE56), U64(0x65942C7B3C7E11AE), U64(0xDED2D633CAD004F6), U64(0x21F08570F420E565),
- U64(0xB415938D7DA94E3C), U64(0x91B859E59ECB6350), U64(0x10CFF333E0ED804A), U64(0x28AED140BE0BB7DD),
- U64(0xC5CC1D89724FA456), U64(0x5648F680F11A2741), U64(0x2D255069F0B7DAB3), U64(0x9BC5A38EF729ABD4),
- U64(0xEF2F054308F6A2BC), U64(0xAF2042F5CC5C2858), U64(0x480412BAB7F5BE2A), U64(0xAEF3AF4A563DFE43),
- U64(0x19AFE59AE451497F), U64(0x52593803DFF1E840), U64(0xF4F076E65F2CE6F0), U64(0x11379625747D5AF3),
- U64(0xBCE5D2248682C115), U64(0x9DA4243DE836994F), U64(0x066F70B33FE09017), U64(0x4DC4DE189B671A1C),
- U64(0x51039AB7712457C3), U64(0xC07A3F80C31FB4B4), U64(0xB46EE9C5E64A6E7C), U64(0xB3819A42ABE61C87),
- U64(0x21A007933A522A20), U64(0x2DF16F761598AA4F), U64(0x763C4A1371B368FD), U64(0xF793C46702E086A0),
- U64(0xD7288E012AEB8D31), U64(0xDE336A2A4BC1C44B), U64(0x0BF692B38D079F23), U64(0x2C604A7A177326B3),
- U64(0x4850E73E03EB6064), U64(0xCFC447F1E53C8E1B), U64(0xB05CA3F564268D99), U64(0x9AE182C8BC9474E8),
- U64(0xA4FC4BD4FC5558CA), U64(0xE755178D58FC4E76), U64(0x69B97DB1A4C03DFE), U64(0xF9B5B7C4ACC67C96),
- U64(0xFC6A82D64B8655FB), U64(0x9C684CB6C4D24417), U64(0x8EC97D2917456ED0), U64(0x6703DF9D2924E97E),
- U64(0xC547F57E42A7444E), U64(0x78E37644E7CAD29E), U64(0xFE9A44E9362F05FA), U64(0x08BD35CC38336615),
- U64(0x9315E5EB3A129ACE), U64(0x94061B871E04DF75), U64(0xDF1D9F9D784BA010), U64(0x3BBA57B68871B59D),
- U64(0xD2B7ADEEDED1F73F), U64(0xF7A255D83BC373F8), U64(0xD7F4F2448C0CEB81), U64(0xD95BE88CD210FFA7),
- U64(0x336F52F8FF4728E7), U64(0xA74049DAC312AC71), U64(0xA2F61BB6E437FDB5), U64(0x4F2A5CB07F6A35B3),
- U64(0x87D380BDA5BF7859), U64(0x16B9F7E06C453A21), U64(0x7BA2484C8A0FD54E), U64(0xF3A678CAD9A2E38C),
- U64(0x39B0BF7DDE437BA2), U64(0xFCAF55C1BF8A4424), U64(0x18FCF680573FA594), U64(0x4C0563B89F495AC3),
- U64(0x40E087931A00930D), U64(0x8CFFA9412EB642C1), U64(0x68CA39053261169F), U64(0x7A1EE967D27579E2),
- U64(0x9D1D60E5076F5B6F), U64(0x3810E399B6F65BA2), U64(0x32095B6D4AB5F9B1), U64(0x35CAB62109DD038A),
- U64(0xA90B24499FCFAFB1), U64(0x77A225A07CC2C6BD), U64(0x513E5E634C70E331), U64(0x4361C0CA3F692F12),
- U64(0xD941ACA44B20A45B), U64(0x528F7C8602C5807B), U64(0x52AB92BEB9613989), U64(0x9D1DFA2EFC557F73),
- U64(0x722FF175F572C348), U64(0x1D1260A51107FE97), U64(0x7A249A57EC0C9BA2), U64(0x04208FE9E8F7F2D6),
- U64(0x5A110C6058B920A0), U64(0x0CD9A497658A5698), U64(0x56FD23C8F9715A4C), U64(0x284C847B9D887AAE),
- U64(0x04FEABFBBDB619CB), U64(0x742E1E651C60BA83), U64(0x9A9632E65904AD3C), U64(0x881B82A13B51B9E2),
- U64(0x506E6744CD974924), U64(0xB0183DB56FFC6A79), U64(0x0ED9B915C66ED37E), U64(0x5E11E86D5873D484),
- U64(0xF678647E3519AC6E), U64(0x1B85D488D0F20CC5), U64(0xDAB9FE6525D89021), U64(0x0D151D86ADB73615),
- U64(0xA865A54EDCC0F019), U64(0x93C42566AEF98FFB), U64(0x99E7AFEABE000731), U64(0x48CBFF086DDF285A),
- U64(0x7F9B6AF1EBF78BAF), U64(0x58627E1A149BBA21), U64(0x2CD16E2ABD791E33), U64(0xD363EFF5F0977996),
- U64(0x0CE2A38C344A6EED), U64(0x1A804AADB9CFA741), U64(0x907F30421D78C5DE), U64(0x501F65EDB3034D07),
- U64(0x37624AE5A48FA6E9), U64(0x957BAF61700CFF4E), U64(0x3A6C27934E31188A), U64(0xD49503536ABCA345),
- U64(0x088E049589C432E0), U64(0xF943AEE7FEBF21B8), U64(0x6C3B8E3E336139D3), U64(0x364F6FFA464EE52E),
- U64(0xD60F6DCEDC314222), U64(0x56963B0DCA418FC0), U64(0x16F50EDF91E513AF), U64(0xEF1955914B609F93),
- U64(0x565601C0364E3228), U64(0xECB53939887E8175), U64(0xBAC7A9A18531294B), U64(0xB344C470397BBA52),
- U64(0x65D34954DAF3CEBD), U64(0xB4B81B3FA97511E2), U64(0xB422061193D6F6A7), U64(0x071582401C38434D),
- U64(0x7A13F18BBEDC4FF5), U64(0xBC4097B116C524D2), U64(0x59B97885E2F2EA28), U64(0x99170A5DC3115544),
- U64(0x6F423357E7C6A9F9), U64(0x325928EE6E6F8794), U64(0xD0E4366228B03343), U64(0x565C31F7DE89EA27),
- U64(0x30F5611484119414), U64(0xD873DB391292ED4F), U64(0x7BD94E1D8E17DEBC), U64(0xC7D9F16864A76E94),
- U64(0x947AE053EE56E63C), U64(0xC8C93882F9475F5F), U64(0x3A9BF55BA91F81CA), U64(0xD9A11FBB3D9808E4),
- U64(0x0FD22063EDC29FCA), U64(0xB3F256D8ACA0B0B9), U64(0xB03031A8B4516E84), U64(0x35DD37D5871448AF),
- U64(0xE9F6082B05542E4E), U64(0xEBFAFA33D7254B59), U64(0x9255ABB50D532280), U64(0xB9AB4CE57F2D34F3),
- U64(0x693501D628297551), U64(0xC62C58F97DD949BF), U64(0xCD454F8F19C5126A), U64(0xBBE83F4ECC2BDECB),
- U64(0xDC842B7E2819E230), U64(0xBA89142E007503B8), U64(0xA3BC941D0A5061CB), U64(0xE9F6760E32CD8021),
- U64(0x09C7E552BC76492F), U64(0x852F54934DA55CC9), U64(0x8107FCCF064FCF56), U64(0x098954D51FFF6580),
- U64(0x23B70EDB1955C4BF), U64(0xC330DE426430F69D), U64(0x4715ED43E8A45C0A), U64(0xA8D7E4DAB780A08D),
- U64(0x0572B974F03CE0BB), U64(0xB57D2E985E1419C7), U64(0xE8D9ECBE2CF3D73F), U64(0x2FE4B17170E59750),
- U64(0x11317BA87905E790), U64(0x7FBF21EC8A1F45EC), U64(0x1725CABFCB045B00), U64(0x964E915CD5E2B207),
- U64(0x3E2B8BCBF016D66D), U64(0xBE7444E39328A0AC), U64(0xF85B2B4FBCDE44B7), U64(0x49353FEA39BA63B1),
- U64(0x1DD01AAFCD53486A), U64(0x1FCA8A92FD719F85), U64(0xFC7C95D827357AFA), U64(0x18A6A990C8B35EBD),
- U64(0xCCCB7005C6B9C28D), U64(0x3BDBB92C43B17F26), U64(0xAA70B5B4F89695A2), U64(0xE94C39A54A98307F),
- U64(0xB7A0B174CFF6F36E), U64(0xD4DBA84729AF48AD), U64(0x2E18BC1AD9704A68), U64(0x2DE0966DAF2F8B1C),
- U64(0xB9C11D5B1E43A07E), U64(0x64972D68DEE33360), U64(0x94628D38D0C20584), U64(0xDBC0D2B6AB90A559),
- U64(0xD2733C4335C6A72F), U64(0x7E75D99D94A70F4D), U64(0x6CED1983376FA72B), U64(0x97FCAACBF030BC24),
- U64(0x7B77497B32503B12), U64(0x8547EDDFB81CCB94), U64(0x79999CDFF70902CB), U64(0xCFFE1939438E9B24),
- U64(0x829626E3892D95D7), U64(0x92FAE24291F2B3F1), U64(0x63E22C147B9C3403), U64(0xC678B6D860284A1C),
- U64(0x5873888850659AE7), U64(0x0981DCD296A8736D), U64(0x9F65789A6509A440), U64(0x9FF38FED72E9052F),
- U64(0xE479EE5B9930578C), U64(0xE7F28ECD2D49EECD), U64(0x56C074A581EA17FE), U64(0x5544F7D774B14AEF),
- U64(0x7B3F0195FC6F290F), U64(0x12153635B2C0CF57), U64(0x7F5126DBBA5E0CA7), U64(0x7A76956C3EAFB413),
- U64(0x3D5774A11D31AB39), U64(0x8A1B083821F40CB4), U64(0x7B4A38E32537DF62), U64(0x950113646D1D6E03),
- U64(0x4DA8979A0041E8A9), U64(0x3BC36E078F7515D7), U64(0x5D0A12F27AD310D1), U64(0x7F9D1A2E1EBE1327),
- U64(0xDA3A361B1C5157B1), U64(0xDCDD7D20903D0C25), U64(0x36833336D068F707), U64(0xCE68341F79893389),
- U64(0xAB9090168DD05F34), U64(0x43954B3252DC25E5), U64(0xB438C2B67F98E5E9), U64(0x10DCD78E3851A492),
- U64(0xDBC27AB5447822BF), U64(0x9B3CDB65F82CA382), U64(0xB67B7896167B4C84), U64(0xBFCED1B0048EAC50),
- U64(0xA9119B60369FFEBD), U64(0x1FFF7AC80904BF45), U64(0xAC12FB171817EEE7), U64(0xAF08DA9177DDA93D),
- U64(0x1B0CAB936E65C744), U64(0xB559EB1D04E5E932), U64(0xC37B45B3F8D6F2BA), U64(0xC3A9DC228CAAC9E9),
- U64(0xF3B8B6675A6507FF), U64(0x9FC477DE4ED681DA), U64(0x67378D8ECCEF96CB), U64(0x6DD856D94D259236),
- U64(0xA319CE15B0B4DB31), U64(0x073973751F12DD5E), U64(0x8A8E849EB32781A5), U64(0xE1925C71285279F5),
- U64(0x74C04BF1790C0EFE), U64(0x4DDA48153C94938A), U64(0x9D266D6A1CC0542C), U64(0x7440FB816508C4FE),
- U64(0x13328503DF48229F), U64(0xD6BF7BAEE43CAC40), U64(0x4838D65F6EF6748F), U64(0x1E152328F3318DEA),
- U64(0x8F8419A348F296BF), U64(0x72C8834A5957B511), U64(0xD7A023A73260B45C), U64(0x94EBC8ABCFB56DAE),
- U64(0x9FC10D0F989993E0), U64(0xDE68A2355B93CAE6), U64(0xA44CFE79AE538BBE), U64(0x9D1D84FCCE371425),
- U64(0x51D2B1AB2DDFB636), U64(0x2FD7E4B9E72CD38C), U64(0x65CA5B96B7552210), U64(0xDD69A0D8AB3B546D),
- U64(0x604D51B25FBF70E2), U64(0x73AA8A564FB7AC9E), U64(0x1A8C1E992B941148), U64(0xAAC40A2703D9BEA0),
- U64(0x764DBEAE7FA4F3A6), U64(0x1E99B96E70A9BE8B), U64(0x2C5E9DEB57EF4743), U64(0x3A938FEE32D29981),
- U64(0x26E6DB8FFDF5ADFE), U64(0x469356C504EC9F9D), U64(0xC8763C5B08D1908C), U64(0x3F6C6AF859D80055),
- U64(0x7F7CC39420A3A545), U64(0x9BFB227EBDF4C5CE), U64(0x89039D79D6FC5C5C), U64(0x8FE88B57305E2AB6),
- U64(0xA09E8C8C35AB96DE), U64(0xFA7E393983325753), U64(0xD6B6D0ECC617C699), U64(0xDFEA21EA9E7557E3),
- U64(0xB67C1FA481680AF8), U64(0xCA1E3785A9E724E5), U64(0x1CFC8BED0D681639), U64(0xD18D8549D140CAEA),
- U64(0x4ED0FE7E9DC91335), U64(0xE4DBF0634473F5D2), U64(0x1761F93A44D5AEFE), U64(0x53898E4C3910DA55),
- U64(0x734DE8181F6EC39A), U64(0x2680B122BAA28D97), U64(0x298AF231C85BAFAB), U64(0x7983EED3740847D5),
- U64(0x66C1A2A1A60CD889), U64(0x9E17E49642A3E4C1), U64(0xEDB454E7BADC0805), U64(0x50B704CAB602C329),
- U64(0x4CC317FB9CDDD023), U64(0x66B4835D9EAFEA22), U64(0x219B97E26FFC81BD), U64(0x261E4E4C0A333A9D),
- U64(0x1FE2CCA76517DB90), U64(0xD7504DFA8816EDBB), U64(0xB9571FA04DC089C8), U64(0x1DDC0325259B27DE),
- U64(0xCF3F4688801EB9AA), U64(0xF4F5D05C10CAB243), U64(0x38B6525C21A42B0E), U64(0x36F60E2BA4FA6800),
- U64(0xEB3593803173E0CE), U64(0x9C4CD6257C5A3603), U64(0xAF0C317D32ADAA8A), U64(0x258E5A80C7204C4B),
- U64(0x8B889D624D44885D), U64(0xF4D14597E660F855), U64(0xD4347F66EC8941C3), U64(0xE699ED85B0DFB40D),
- U64(0x2472F6207C2D0484), U64(0xC2A1E7B5B459AEB5), U64(0xAB4F6451CC1D45EC), U64(0x63767572AE3D6174),
- U64(0xA59E0BD101731A28), U64(0x116D0016CB948F09), U64(0x2CF9C8CA052F6E9F), U64(0x0B090A7560A968E3),
- U64(0xABEEDDB2DDE06FF1), U64(0x58EFC10B06A2068D), U64(0xC6E57A78FBD986E0), U64(0x2EAB8CA63CE802D7),
- U64(0x14A195640116F336), U64(0x7C0828DD624EC390), U64(0xD74BBE77E6116AC7), U64(0x804456AF10F5FB53),
- U64(0xEBE9EA2ADF4321C7), U64(0x03219A39EE587A30), U64(0x49787FEF17AF9924), U64(0xA1E9300CD8520548),
- U64(0x5B45E522E4B1B4EF), U64(0xB49C3B3995091A36), U64(0xD4490AD526F14431), U64(0x12A8F216AF9418C2),
- U64(0x001F837CC7350524), U64(0x1877B51E57A764D5), U64(0xA2853B80F17F58EE), U64(0x993E1DE72D36D310),
- U64(0xB3598080CE64A656), U64(0x252F59CF0D9F04BB), U64(0xD23C8E176D113600), U64(0x1BDA0492E7E4586E),
- U64(0x21E0BD5026C619BF), U64(0x3B097ADAF088F94E), U64(0x8D14DEDB30BE846E), U64(0xF95CFFA23AF5F6F4),
- U64(0x3871700761B3F743), U64(0xCA672B91E9E4FA16), U64(0x64C8E531BFF53B55), U64(0x241260ED4AD1E87D),
- U64(0x106C09B972D2E822), U64(0x7FBA195410E5CA30), U64(0x7884D9BC6CB569D8), U64(0x0647DFEDCD894A29),
- U64(0x63573FF03E224774), U64(0x4FC8E9560F91B123), U64(0x1DB956E450275779), U64(0xB8D91274B9E9D4FB),
- U64(0xA2EBEE47E2FBFCE1), U64(0xD9F1F30CCD97FB09), U64(0xEFED53D75FD64E6B), U64(0x2E6D02C36017F67F),
- U64(0xA9AA4D20DB084E9B), U64(0xB64BE8D8B25396C1), U64(0x70CB6AF7C2D5BCF0), U64(0x98F076A4F7A2322E),
- U64(0xBF84470805E69B5F), U64(0x94C3251F06F90CF3), U64(0x3E003E616A6591E9), U64(0xB925A6CD0421AFF3),
- U64(0x61BDD1307C66E300), U64(0xBF8D5108E27E0D48), U64(0x240AB57A8B888B20), U64(0xFC87614BAF287E07),
- U64(0xEF02CDD06FFDB432), U64(0xA1082C0466DF6C0A), U64(0x8215E577001332C8), U64(0xD39BB9C3A48DB6CF),
- U64(0x2738259634305C14), U64(0x61CF4F94C97DF93D), U64(0x1B6BACA2AE4E125B), U64(0x758F450C88572E0B),
- U64(0x959F587D507A8359), U64(0xB063E962E045F54D), U64(0x60E8ED72C0DFF5D1), U64(0x7B64978555326F9F),
- U64(0xFD080D236DA814BA), U64(0x8C90FD9B083F4558), U64(0x106F72FE81E2C590), U64(0x7976033A39F7D952),
- U64(0xA4EC0132764CA04B), U64(0x733EA705FAE4FA77), U64(0xB4D8F77BC3E56167), U64(0x9E21F4F903B33FD9),
- U64(0x9D765E419FB69F6D), U64(0xD30C088BA61EA5EF), U64(0x5D94337FBFAF7F5B), U64(0x1A4E4822EB4D7A59),
- U64(0x6FFE73E81B637FB3), U64(0xDDF957BC36D8B9CA), U64(0x64D0E29EEA8838B3), U64(0x08DD9BDFD96B9F63),
- U64(0x087E79E5A57D1D13), U64(0xE328E230E3E2B3FB), U64(0x1C2559E30F0946BE), U64(0x720BF5F26F4D2EAA),
- U64(0xB0774D261CC609DB), U64(0x443F64EC5A371195), U64(0x4112CF68649A260E), U64(0xD813F2FAB7F5C5CA),
- U64(0x660D3257380841EE), U64(0x59AC2C7873F910A3), U64(0xE846963877671A17), U64(0x93B633ABFA3469F8),
- U64(0xC0C0F5A60EF4CDCF), U64(0xCAF21ECD4377B28C), U64(0x57277707199B8175), U64(0x506C11B9D90E8B1D),
- U64(0xD83CC2687A19255F), U64(0x4A29C6465A314CD1), U64(0xED2DF21216235097), U64(0xB5635C95FF7296E2),
- U64(0x22AF003AB672E811), U64(0x52E762596BF68235), U64(0x9AEBA33AC6ECC6B0), U64(0x944F6DE09134DFB6),
- U64(0x6C47BEC883A7DE39), U64(0x6AD047C430A12104), U64(0xA5B1CFDBA0AB4067), U64(0x7C45D833AFF07862),
- U64(0x5092EF950A16DA0B), U64(0x9338E69C052B8E7B), U64(0x455A4B4CFE30E3F5), U64(0x6B02E63195AD0CF8),
- U64(0x6B17B224BAD6BF27), U64(0xD1E0CCD25BB9C169), U64(0xDE0C89A556B9AE70), U64(0x50065E535A213CF6),
- U64(0x9C1169FA2777B874), U64(0x78EDEFD694AF1EED), U64(0x6DC93D9526A50E68), U64(0xEE97F453F06791ED),
- U64(0x32AB0EDB696703D3), U64(0x3A6853C7E70757A7), U64(0x31865CED6120F37D), U64(0x67FEF95D92607890),
- U64(0x1F2B1D1F15F6DC9C), U64(0xB69E38A8965C6B65), U64(0xAA9119FF184CCCF4), U64(0xF43C732873F24C13),
- U64(0xFB4A3D794A9A80D2), U64(0x3550C2321FD6109C), U64(0x371F77E76BB8417E), U64(0x6BFA9AAE5EC05779),
- U64(0xCD04F3FF001A4778), U64(0xE3273522064480CA), U64(0x9F91508BFFCFC14A), U64(0x049A7F41061A9E60),
- U64(0xFCB6BE43A9F2FE9B), U64(0x08DE8A1C7797DA9B), U64(0x8F9887E6078735A1), U64(0xB5B4071DBFC73A66),
- U64(0x230E343DFBA08D33), U64(0x43ED7F5A0FAE657D), U64(0x3A88A0FBBCB05C63), U64(0x21874B8B4D2DBC4F),
- U64(0x1BDEA12E35F6A8C9), U64(0x53C065C6C8E63528), U64(0xE34A1D250E7A8D6B), U64(0xD6B04D3B7651DD7E),
- U64(0x5E90277E7CB39E2D), U64(0x2C046F22062DC67D), U64(0xB10BB459132D0A26), U64(0x3FA9DDFB67E2F199),
- U64(0x0E09B88E1914F7AF), U64(0x10E8B35AF3EEAB37), U64(0x9EEDECA8E272B933), U64(0xD4C718BC4AE8AE5F),
- U64(0x81536D601170FC20), U64(0x91B534F885818A06), U64(0xEC8177F83F900978), U64(0x190E714FADA5156E),
- U64(0xB592BF39B0364963), U64(0x89C350C893AE7DC1), U64(0xAC042E70F8B383F2), U64(0xB49B52E587A1EE60),
- U64(0xFB152FE3FF26DA89), U64(0x3E666E6F69AE2C15), U64(0x3B544EBE544C19F9), U64(0xE805A1E290CF2456),
- U64(0x24B33C9D7ED25117), U64(0xE74733427B72F0C1), U64(0x0A804D18B7097475), U64(0x57E3306D881EDB4F),
- U64(0x4AE7D6A36EB5DBCB), U64(0x2D8D5432157064C8), U64(0xD1E649DE1E7F268B), U64(0x8A328A1CEDFE552C),
- U64(0x07A3AEC79624C7DA), U64(0x84547DDC3E203C94), U64(0x990A98FD5071D263), U64(0x1A4FF12616EEFC89),
- U64(0xF6F7FD1431714200), U64(0x30C05B1BA332F41C), U64(0x8D2636B81555A786), U64(0x46C9FEB55D120902),
- U64(0xCCEC0A73B49C9921), U64(0x4E9D2827355FC492), U64(0x19EBB029435DCB0F), U64(0x4659D2B743848A2C),
- U64(0x963EF2C96B33BE31), U64(0x74F85198B05A2E7D), U64(0x5A0F544DD2B1FB18), U64(0x03727073C2E134B1),
- U64(0xC7F6AA2DE59AEA61), U64(0x352787BAA0D7C22F), U64(0x9853EAB63B5E0B35), U64(0xABBDCDD7ED5C0860),
- U64(0xCF05DAF5AC8D77B0), U64(0x49CAD48CEBF4A71E), U64(0x7A4C10EC2158C4A6), U64(0xD9E92AA246BF719E),
- U64(0x13AE978D09FE5557), U64(0x730499AF921549FF), U64(0x4E4B705B92903BA4), U64(0xFF577222C14F0A3A),
- U64(0x55B6344CF97AAFAE), U64(0xB862225B055B6960), U64(0xCAC09AFBDDD2CDB4), U64(0xDAF8E9829FE96B5F),
- U64(0xB5FDFC5D3132C498), U64(0x310CB380DB6F7503), U64(0xE87FBB46217A360E), U64(0x2102AE466EBB1148),
- U64(0xF8549E1A3AA5E00D), U64(0x07A69AFDCC42261A), U64(0xC4C118BFE78FEAAE), U64(0xF9F4892ED96BD438),
- U64(0x1AF3DBE25D8F45DA), U64(0xF5B4B0B0D2DEEEB4), U64(0x962ACEEFA82E1C84), U64(0x046E3ECAAF453CE9),
- U64(0xF05D129681949A4C), U64(0x964781CE734B3C84), U64(0x9C2ED44081CE5FBD), U64(0x522E23F3925E319E),
- U64(0x177E00F9FC32F791), U64(0x2BC60A63A6F3B3F2), U64(0x222BBFAE61725606), U64(0x486289DDCC3D6780),
- U64(0x7DC7785B8EFDFC80), U64(0x8AF38731C02BA980), U64(0x1FAB64EA29A2DDF7), U64(0xE4D9429322CD065A),
- U64(0x9DA058C67844F20C), U64(0x24C0E332B70019B0), U64(0x233003B5A6CFE6AD), U64(0xD586BD01C5C217F6),
- U64(0x5E5637885F29BC2B), U64(0x7EBA726D8C94094B), U64(0x0A56A5F0BFE39272), U64(0xD79476A84EE20D06),
- U64(0x9E4C1269BAA4BF37), U64(0x17EFEE45B0DEE640), U64(0x1D95B0A5FCF90BC6), U64(0x93CBE0B699C2585D),
- U64(0x65FA4F227A2B6D79), U64(0xD5F9E858292504D5), U64(0xC2B5A03F71471A6F), U64(0x59300222B4561E00),
- U64(0xCE2F8642CA0712DC), U64(0x7CA9723FBB2E8988), U64(0x2785338347F2BA08), U64(0xC61BB3A141E50E8C),
- U64(0x150F361DAB9DEC26), U64(0x9F6A419D382595F4), U64(0x64A53DC924FE7AC9), U64(0x142DE49FFF7A7C3D),
- U64(0x0C335248857FA9E7), U64(0x0A9C32D5EAE45305), U64(0xE6C42178C4BBB92E), U64(0x71F1CE2490D20B07),
- U64(0xF1BCC3D275AFE51A), U64(0xE728E8C83C334074), U64(0x96FBF83A12884624), U64(0x81A1549FD6573DA5),
- U64(0x5FA7867CAF35E149), U64(0x56986E2EF3ED091B), U64(0x917F1DD5F8886C61), U64(0xD20D8C88C8FFE65F),
- U64(0x31D71DCE64B2C310), U64(0xF165B587DF898190), U64(0xA57E6339DD2CF3A0), U64(0x1EF6E6DBB1961EC9),
- U64(0x70CC73D90BC26E24), U64(0xE21A6B35DF0C3AD7), U64(0x003A93D8B2806962), U64(0x1C99DED33CB890A1),
- U64(0xCF3145DE0ADD4289), U64(0xD0E4427A5514FB72), U64(0x77C621CC9FB3A483), U64(0x67A34DAC4356550B),
- U64(0xF8D626AAAF278509),
-};
-
-uint64 *RandomPiece =Random64;
-uint64 *RandomCastle =Random64+768;
-uint64 *RandomEnPassant =Random64+772;
-uint64 *RandomTurn =Random64+780;
-
-char *piece_names="pPnNbBrRqQkK";
-
-uint64 hash(char *fen){
- char board_s[72+1];
- char to_move_c;
- char castle_flags_s[4+1];
- char ep_square_s[2+1];
- char board[8][8];
- char c;
- int p,r,f,i,p_enc;
- uint64 key=0;
- sscanf(fen,"%72s %c %4s %2s",
- board_s,
- &to_move_c,
- castle_flags_s,
- ep_square_s);
- r=7;
- f=0;
- p=0;
- while(1){
- if(p>=strlen(board_s)) break;
- c=board_s[p++];
- if(c=='/'){
- r--;
- f=0;
- continue;
- }
- if(('1'<=c)&&('8'>=c)){
- for(i=0;i<=c-'1';i++){
- board[f++][r]='-';
- }
- continue;
- }
- board[f++][r]=c;
- }
- for(f=0;f<=7;f++){
- for(r=0;r<=7;r++){
- c=board[f][r];
- if(c!='-'){
- p_enc=strchr(piece_names,c)-piece_names;
- key^=RandomPiece[64*p_enc+8*r+f];
- }
- }
- }
- p=0;
- while(1){
- if(p>=strlen(castle_flags_s)) break;
- c=castle_flags_s[p++];
- switch(c){
- case '-' :
- break;
- case 'K' :
- key^=RandomCastle[0];
- break;
- case 'Q' :
- key^=RandomCastle[1];
- break;
- case 'k' :
- key^=RandomCastle[2];
- break;
- case 'q' :
- key^=RandomCastle[3];
- break;
- default:
- break;
- }
- }
- if(ep_square_s[0]!='-'){
- f=ep_square_s[0]-'a';
- if(to_move_c=='b'){
- if((f>0 && board[f-1][3]=='p')||
- (f<7 && board[f+1][3]=='p')){
- key^=RandomEnPassant[f];
- }
- }else{
- if((f>0 && board[f-1][4]=='P')||
- (f<7 && board[f+1][4]=='P')){
- key^=RandomEnPassant[f];
- }
- }
- }
- if(to_move_c=='w'){
- key^=RandomTurn[0];
- }
- return key;
-}
-
-int main(int argc, char *argv[]){
- if(argc==1){
- printf("Usage: pg_key \"<fen string>\"\n");
- }else{
-#ifdef _MSC_VER
- printf("%016I64x\n",hash(argv[1]));
-#else
- printf("%016llx\n",hash(argv[1]));
-#endif
- }
- return 0;
-}
+++ /dev/null
-/*
- * This utility looks up the moves and their scores in a Polyglot book
- *
- * Usage:
- * pg_show <book> <hex key>"
- *
- * You can find the hex key of a FEN using pg_key.
- *
- * This code is released in the public domain by Michel Van den Bergh.
- *
- */
-
-
-#include <stdio.h>
-#include <string.h>
-
-typedef unsigned char uint8;
-typedef unsigned short uint16;
-typedef unsigned int uint32;
-
-#ifdef _MSC_VER
- typedef unsigned __int64 uint64;
-#else
- typedef unsigned long long int uint64;
-#endif
-
-typedef struct {
- uint64 key;
- uint16 move;
- uint16 weight;
- uint32 learn;
-} entry_t;
-
-entry_t entry_none = {
- 0, 0, 0, 0
-};
-
-char *promote_pieces=" nbrq";
-
-#define MAX_MOVES 100
-
-int int_from_file(FILE *f, int l, uint64 *r){
- int i,c;
- for(i=0;i<l;i++){
- c=fgetc(f);
- if(c==EOF){
- return 1;
- }
- (*r)=((*r)<<8)+c;
- }
- return 0;
-}
-
-int entry_from_file(FILE *f, entry_t *entry){
- int ret;
- uint64 r;
- ret=int_from_file(f,8,&r);
- if(ret) return 1;
- entry->key=r;
- ret=int_from_file(f,2,&r);
- if(ret) return 1;
- entry->move=r;
- ret=int_from_file(f,2,&r);
- if(ret) return 1;
- entry->weight=r;
- ret=int_from_file(f,4,&r);
- if(ret) return 1;
- entry->learn=r;
- return 0;
-}
-
-int find_key(FILE *f, uint64 key, entry_t *entry){
- int first, last, middle;
- entry_t first_entry=entry_none, last_entry,middle_entry;
- first=-1;
- if(fseek(f,-16,SEEK_END)){
- *entry=entry_none;
- entry->key=key+1; //hack
- return -1;
- }
- last=ftell(f)/16;
- entry_from_file(f,&last_entry);
- while(1){
- if(last-first==1){
- *entry=last_entry;
- return last;
- }
- middle=(first+last)/2;
- fseek(f,16*middle,SEEK_SET);
- entry_from_file(f,&middle_entry);
- if(key<=middle_entry.key){
- last=middle;
- last_entry=middle_entry;
- }else{
- first=middle;
- first_entry=middle_entry;
- }
- }
-}
-
-void move_to_string(char move_s[6], uint16 move){
- int f,fr,ff,t,tr,tf,p;
- f=(move>>6)&077;
- fr=(f>>3)&0x7;
- ff=f&0x7;
- t=move&077;
- tr=(t>>3)&0x7;
- tf=t&0x7;
- p=(move>>12)&0x7;
- move_s[0]=ff+'a';
- move_s[1]=fr+'1';
- move_s[2]=tf+'a';
- move_s[3]=tr+'1';
- if(p){
- move_s[4]=promote_pieces[p];
- move_s[5]='\0';
- }else{
- move_s[4]='\0';
- }
- if(!strcmp(move_s,"e1h1")){
- strcpy(move_s,"e1g1");
- }else if(!strcmp(move_s,"e1a1")){
- strcpy(move_s,"e1c1");
- }else if(!strcmp(move_s,"e8h8")){
- strcpy(move_s,"e8g8");
- }else if(!strcmp(move_s,"e8a8")){
- strcpy(move_s,"e8c8");
- }
-}
-
-int main(int argc, char *argv[]){
- FILE *f;
- entry_t entry;
- int offset;
- char *file_name;
- uint64 key;
- entry_t entries[MAX_MOVES];
- int count=0;
- int ret, i;
- char move_s[6];
- int total_weight;
- if(argc<=2){
- printf("Usage: pg_show <book> <hex key>\n");
- return 1;
- }
- file_name=argv[1];
-#ifdef _MSC_VER
- sscanf(argv[2],"%16I64x",&key);
-#else
- sscanf(argv[2],"%16llx",&key);
-#endif
- f=fopen(file_name,"rb");
- if(!f){
- perror(file_name);
- return 1;
- }
- offset=find_key(f,key,&entry);
- if(entry.key!=key){
-#ifdef _MSC_VER
- printf("%016I64x: No such key\n",key);
-#else
- printf("%016llx: No such key\n",key);
-#endif
- return 1;
- }
- entries[0]=entry;
- count=1;
- fseek(f,16*(offset+1),SEEK_SET);
- while(1){
- ret=entry_from_file(f,&entry);
- if(ret){
- break;
- }
- if(entry.key!=key){
- break;
- }
- if(count==MAX_MOVES){
- printf("Too many moves in this position (max=%d)\n",MAX_MOVES);
- return 1;
- }
- entries[count++]=entry;
- }
- total_weight=0;
- for(i=0;i<count;i++){
- total_weight+=entries[i].weight;
- }
- for(i=0;i<count;i++){
- move_to_string(move_s,entries[i].move);
- printf("move=%s weight=%5.2f%%\n",
- move_s,
- 100*((double) entries[i].weight/ (double) total_weight));
- }
- return 0;
-}
+++ /dev/null
-/* With friendly permission, to public this document,
- * of Stefan-Mayer Kahlen
- * For more information or newer versions of the
- * UCI protcol please visit
- * http://www.shredderchess.de/download.html
- */
-
-Description of the universal chess interface (UCI) April 2004
-================================================================
-
-* The specification is independent of the operating system. For Windows,
- the engine is a normal exe file, either a console or "real" windows application.
-
-* all communication is done via standard input and output with text commands,
-
-* The engine should boot and wait for input from the GUI,
- the engine should wait for the "isready" or "setoption" command to set up its internal parameters
- as the boot process should be as quick as possible.
-
-* the engine must always be able to process input from stdin, even while thinking.
-
-* all command strings the engine receives will end with '\n',
- also all commands the GUI receives should end with '\n',
- Note: '\n' can be 0x0c or 0x0a0c or any combination depending on your OS.
- If you use Engine und GUI in the same OS this should be no problem if you cummunicate in text mode,
- but be aware of this when for example running a Linux engine in a Windows GUI.
-
-* The engine will always be in forced mode which means it should never start calculating
- or pondering without receiving a "go" command first.
-
-* Before the engine is asked to search on a position, there will always be a position command
- to tell the engine about the current position.
-
-* by default all the opening book handling is done by the GUI,
- but there is an option for the engine to use its own book ("OwnBook" option, see below)
-
-* if the engine or the GUI receives an unknown command or token it should just ignore it and try to
- parse the rest of the string.
-
-* if the engine receives a command which is not supposed to come, for example "stop" when the engine is
- not calculating, it should also just ignore it.
-
-
-Move format:
-------------
-
-The move format is in long algebraic notation.
-A nullmove from the Engine to the GUI should be send as 0000.
-Examples: e2e4, e7e5, e1g1 (white short castling), e7e8q (for promotion)
-
-
-
-GUI to engine:
---------------
-
-These are all the command the engine gets from the interface.
-
-* uci
- tell engine to use the uci (universal chess interface),
- this will be send once as a first command after program boot
- to tell the engine to switch to uci mode.
- After receiving the uci command the engine must identify itself with the "id" command
- and sent the "option" commands to tell the GUI which engine settings the engine supports if any.
- After that the engine should sent "uciok" to acknowledge the uci mode.
- If no uciok is sent within a certain time period, the engine task will be killed by the GUI.
-
-* debug [ on | off ]
- switch the debug mode of the engine on and off.
- In debug mode the engine should sent additional infos to the GUI, e.g. with the "info string" command,
- to help debugging, e.g. the commands that the engine has received etc.
- This mode should be switched off by default and this command can be sent
- any time, also when the engine is thinking.
-
-* isready
- this is used to synchronize the engine with the GUI. When the GUI has sent a command or
- multiple commands that can take some time to complete,
- this command can be used to wait for the engine to be ready again or
- to ping the engine to find out if it is still alive.
- E.g. this should be sent after setting the path to the tablebases as this can take some time.
- This command is also required once before the engine is asked to do any search
- to wait for the engine to finish initializing.
- This command must always be answered with "readyok" and can be sent also when the engine is calculating
- in which case the engine should also immediately answer with "readyok" without stopping the search.
-
-* setoption name <id> [value <x>]
- this is sent to the engine when the user wants to change the internal parameters
- of the engine. For the "button" type no value is needed.
- One string will be sent for each parameter and this will only be sent when the engine is waiting.
- The name of the option in <id> should not be case sensitive and can inludes spaces like also the value.
- The substrings "value" and "name" should be avoided in <id> and <x> to allow unambiguous parsing,
- for example do not use <name> = "draw value".
- Here are some strings for the example below:
- "setoption name Nullmove value true\n"
- "setoption name Selectivity value 3\n"
- "setoption name Style value Risky\n"
- "setoption name Clear Hash\n"
- "setoption name NalimovPath value c:\chess\tb\4;c:\chess\tb\5\n"
-
-* register
- this is the command to try to register an engine or to tell the engine that registration
- will be done later. This command should always be sent if the engine has send "registration error"
- at program startup.
- The following tokens are allowed:
- * later
- the user doesn't want to register the engine now.
- * name <x>
- the engine should be registered with the name <x>
- * code <y>
- the engine should be registered with the code <y>
- Example:
- "register later"
- "register name Stefan MK code 4359874324"
-
-* ucinewgame
- this is sent to the engine when the next search (started with "position" and "go") will be from
- a different game. This can be a new game the engine should play or a new game it should analyse but
- also the next position from a testsuite with positions only.
- If the GUI hasn't sent a "ucinewgame" before the first "position" command, the engine shouldn't
- expect any further ucinewgame commands as the GUI is probably not supporting the ucinewgame command.
- So the engine should not rely on this command even though all new GUIs should support it.
- As the engine's reaction to "ucinewgame" can take some time the GUI should always send "isready"
- after "ucinewgame" to wait for the engine to finish its operation.
-
-* position [fen <fenstring> | startpos ] moves <move1> .... <movei>
- set up the position described in fenstring on the internal board and
- play the moves on the internal chess board.
- if the game was played from the start position the string "startpos" will be sent
- Note: no "new" command is needed. However, if this position is from a different game than
- the last position sent to the engine, the GUI should have sent a "ucinewgame" inbetween.
-
-* go
- start calculating on the current position set up with the "position" command.
- There are a number of commands that can follow this command, all will be sent in the same string.
- If one command is not send its value should be interpreted as it would not influence the search.
- * searchmoves <move1> .... <movei>
- restrict search to this moves only
- Example: After "position startpos" and "go infinite searchmoves e2e4 d2d4"
- the engine should only search the two moves e2e4 and d2d4 in the initial position.
- * ponder
- start searching in pondering mode.
- Do not exit the search in ponder mode, even if it's mate!
- This means that the last move sent in in the position string is the ponder move.
- The engine can do what it wants to do, but after a "ponderhit" command
- it should execute the suggested move to ponder on. This means that the ponder move sent by
- the GUI can be interpreted as a recommendation about which move to ponder. However, if the
- engine decides to ponder on a different move, it should not display any mainlines as they are
- likely to be misinterpreted by the GUI because the GUI expects the engine to ponder
- on the suggested move.
- * wtime <x>
- white has x msec left on the clock
- * btime <x>
- black has x msec left on the clock
- * winc <x>
- white increment per move in mseconds if x > 0
- * binc <x>
- black increment per move in mseconds if x > 0
- * movestogo <x>
- there are x moves to the next time control,
- this will only be sent if x > 0,
- if you don't get this and get the wtime and btime it's sudden death
- * depth <x>
- search x plies only.
- * nodes <x>
- search x nodes only,
- * mate <x>
- search for a mate in x moves
- * movetime <x>
- search exactly x mseconds
- * infinite
- search until the "stop" command. Do not exit the search without being told so in this mode!
-
-* stop
- stop calculating as soon as possible,
- don't forget the "bestmove" and possibly the "ponder" token when finishing the search
-
-* ponderhit
- the user has played the expected move. This will be sent if the engine was told to ponder on the same move
- the user has played. The engine should continue searching but switch from pondering to normal search.
-
-* quit
- quit the program as soon as possible
-
-
-Engine to GUI:
---------------
-
-* id
- * name <x>
- this must be sent after receiving the "uci" command to identify the engine,
- e.g. "id name Shredder X.Y\n"
- * author <x>
- this must be sent after receiving the "uci" command to identify the engine,
- e.g. "id author Stefan MK\n"
-
-* uciok
- Must be sent after the id and optional options to tell the GUI that the engine
- has sent all infos and is ready in uci mode.
-
-* readyok
- This must be sent when the engine has received an "isready" command and has
- processed all input and is ready to accept new commands now.
- It is usually sent after a command that can take some time to be able to wait for the engine,
- but it can be used anytime, even when the engine is searching,
- and must always be answered with "isready".
-
-* bestmove <move1> [ ponder <move2> ]
- the engine has stopped searching and found the move <move> best in this position.
- the engine can send the move it likes to ponder on. The engine must not start pondering automatically.
- this command must always be sent if the engine stops searching, also in pondering mode if there is a
- "stop" command, so for every "go" command a "bestmove" command is needed!
- Directly before that the engine should send a final "info" command with the final search information,
- the the GUI has the complete statistics about the last search.
-
-* copyprotection
- this is needed for copyprotected engines. After the uciok command the engine can tell the GUI,
- that it will check the copy protection now. This is done by "copyprotection checking".
- If the check is ok the engine should sent "copyprotection ok", otherwise "copyprotection error".
- If there is an error the engine should not function properly but should not quit alone.
- If the engine reports "copyprotection error" the GUI should not use this engine
- and display an error message instead!
- The code in the engine can look like this
- TellGUI("copyprotection checking\n");
- // ... check the copy protection here ...
- if(ok)
- TellGUI("copyprotection ok\n");
- else
- TellGUI("copyprotection error\n");
-
-* registration
- this is needed for engines that need a username and/or a code to function with all features.
- Analog to the "copyprotection" command the engine can send "registration checking"
- after the uciok command followed by either "registration ok" or "registration error".
- Also after every attempt to register the engine it should answer with "registration checking"
- and then either "registration ok" or "registration error".
- In contrast to the "copyprotection" command, the GUI can use the engine after the engine has
- reported an error, but should inform the user that the engine is not properly registered
- and might not use all its features.
- In addition the GUI should offer to open a dialog to
- enable registration of the engine. To try to register an engine the GUI can send
- the "register" command.
- The GUI has to always answer with the "register" command if the engine sends "registration error"
- at engine startup (this can also be done with "register later")
- and tell the user somehow that the engine is not registered.
- This way the engine knows that the GUI can deal with the registration procedure and the user
- will be informed that the engine is not properly registered.
-
-* info
- the engine wants to send infos to the GUI. This should be done whenever one of the info has changed.
- The engine can send only selected infos and multiple infos can be send with one info command,
- e.g. "info currmove e2e4 currmovenumber 1" or
- "info depth 12 nodes 123456 nps 100000".
- Also all infos belonging to the pv should be sent together
- e.g. "info depth 2 score cp 214 time 1242 nodes 2124 nps 34928 pv e2e4 e7e5 g1f3"
- I suggest to start sending "currmove", "currmovenumber", "currline" and "refutation" only after one second
- to avoid too much traffic.
- Additional info:
- * depth <x>
- search depth in plies
- * seldepth <x>
- selective search depth in plies,
- if the engine sends seldepth there must also a "depth" be present in the same string.
- * time <x>
- the time searched in ms, this should be sent together with the pv.
- * nodes <x>
- x nodes searched, the engine should send this info regularly
- * pv <move1> ... <movei>
- the best line found
- * multipv <num>
- this for the multi pv mode.
- for the best move/pv add "multipv 1" in the string when you send the pv.
- in k-best mode always send all k variants in k strings together.
- * score
- * cp <x>
- the score from the engine's point of view in centipawns.
- * mate <y>
- mate in y moves, not plies.
- If the engine is getting mated use negativ values for y.
- * lowerbound
- the score is just a lower bound.
- * upperbound
- the score is just an upper bound.
- * currmove <move>
- currently searching this move
- * currmovenumber <x>
- currently searching move number x, for the first move x should be 1 not 0.
- * hashfull <x>
- the hash is x permill full, the engine should send this info regularly
- * nps <x>
- x nodes per second searched, the engine should send this info regularly
- * tbhits <x>
- x positions where found in the endgame table bases
- * cpuload <x>
- the cpu usage of the engine is x permill.
- * string <str>
- any string str which will be displayed be the engine,
- if there is a string command the rest of the line will be interpreted as <str>.
- * refutation <move1> <move2> ... <movei>
- move <move1> is refuted by the line <move2> ... <movei>, i can be any number >= 1.
- Example: after move d1h5 is searched, the engine can send
- "info refutation d1h5 g6h5"
- if g6h5 is the best answer after d1h5 or if g6h5 refutes the move d1h5.
- if there is norefutation for d1h5 found, the engine should just send
- "info refutation d1h5"
- The engine should only send this if the option "UCI_ShowRefutations" is set to true.
- * currline <cpunr> <move1> ... <movei>
- this is the current line the engine is calculating. <cpunr> is the number of the cpu if
- the engine is running on more than one cpu. <cpunr> = 1,2,3....
- if the engine is just using one cpu, <cpunr> can be omitted.
- If <cpunr> is greater than 1, always send all k lines in k strings together.
- The engine should only send this if the option "UCI_ShowCurrLine" is set to true.
-
-
-* option
- This command tells the GUI which parameters can be changed in the engine.
- This should be sent once at engine startup after the "uci" and the "id" commands
- if any parameter can be changed in the engine.
- The GUI should parse this and build a dialog for the user to change the settings.
- Note that not every option needs to appear in this dialog as some options like
- "Ponder", "UCI_AnalyseMode", etc. are better handled elsewhere or are set automatically.
- If the user wants to change some settings, the GUI will send a "setoption" command to the engine.
- Note that the GUI need not send the setoption command when starting the engine for every option if
- it doesn't want to change the default value.
- For all allowed combinations see the example below,
- as some combinations of this tokens don't make sense.
- One string will be sent for each parameter.
- * name <id>
- The option has the name id.
- Certain options have a fixed value for <id>, which means that the semantics of this option is fixed.
- Usually those options should not be displayed in the normal engine options window of the GUI but
- get a special treatment. "Pondering" for example should be set automatically when pondering is
- enabled or disabled in the GUI options. The same for "UCI_AnalyseMode" which should also be set
- automatically by the GUI. All those certain options have the prefix "UCI_" except for the
- first 6 options below. If the GUI get an unknown Option with the prefix "UCI_", it should just
- ignore it and not display it in the engine's options dialog.
- * <id> = Hash, type is spin
- the value in MB for memory for hash tables can be changed,
- this should be answered with the first "setoptions" command at program boot
- if the engine has sent the appropriate "option name Hash" command,
- which should be supported by all engines!
- So the engine should use a very small hash first as default.
- * <id> = NalimovPath, type string
- this is the path on the hard disk to the Nalimov compressed format.
- Multiple directories can be concatenated with ";"
- * <id> = NalimovCache, type spin
- this is the size in MB for the cache for the nalimov table bases
- These last two options should also be present in the initial options exchange dialog
- when the engine is booted if the engine supports it
- * <id> = Ponder, type check
- this means that the engine is able to ponder.
- The GUI will send this whenever pondering is possible or not.
- Note: The engine should not start pondering on its own if this is enabled, this option is only
- needed because the engine might change its time management algorithm when pondering is allowed.
- * <id> = OwnBook, type check
- this means that the engine has its own book which is accessed by the engine itself.
- if this is set, the engine takes care of the opening book and the GUI will never
- execute a move out of its book for the engine. If this is set to false by the GUI,
- the engine should not access its own book.
- * <id> = MultiPV, type spin
- the engine supports multi best line or k-best mode. the default value is 1
- * <id> = UCI_ShowCurrLine, type check, should be false by default,
- the engine can show the current line it is calculating. see "info currline" above.
- * <id> = UCI_ShowRefutations, type check, should be false by default,
- the engine can show a move and its refutation in a line. see "info refutations" above.
- * <id> = UCI_LimitStrength, type check, should be false by default,
- The engine is able to limit its strength to a specific Elo number,
- This should always be implemented together with "UCI_Elo".
- * <id> = UCI_Elo, type spin
- The engine can limit its strength in Elo within this interval.
- If UCI_LimitStrength is set to false, this value should be ignored.
- If UCI_LimitStrength is set to true, the engine should play with this specific strength.
- This should always be implemented together with "UCI_LimitStrength".
- * <id> = UCI_AnalyseMode, type check
- The engine wants to behave differently when analysing or playing a game.
- For example when playing it can use some kind of learning.
- This is set to false if the engine is playing a game, otherwise it is true.
- * <id> = UCI_Opponent, type string
- With this command the GUI can send the name, title, elo and if the engine is playing a human
- or computer to the engine.
- The format of the string has to be [GM|IM|FM|WGM|WIM|none] [<elo>|none] [computer|human] <name>
- Example:
- "setoption name UCI_Opponent value GM 2800 human Gary Kasparow"
- "setoption name UCI_Opponent value none none computer Shredder"
-
-
- * type <t>
- The option has type t.
- There are 5 different types of options the engine can send
- * check
- a checkbox that can either be true or false
- * spin
- a spin wheel that can be an integer in a certain range
- * combo
- a combo box that can have different predefined strings as a value
- * button
- a button that can be pressed to send a command to the engine
- * string
- a text field that has a string as a value,
- an empty string has the value "<empty>"
- * default <x>
- the default value of this parameter is x
- * min <x>
- the minimum value of this parameter is x
- * max <x>
- the maximum value of this parameter is x
- * var <x>
- a predefined value of this parameter is x
- Example:
- Here are 5 strings for each of the 5 possible types of options
- "option name Nullmove type check default true\n"
- "option name Selectivity type spin default 2 min 0 max 4\n"
- "option name Style type combo default Normal var Solid var Normal var Risky\n"
- "option name NalimovPath type string default c:\\n"
- "option name Clear Hash type button\n"
-
-
-
-Example:
---------
-
-This is how the communication when the engine boots can look like:
-
-GUI engine
-
-// tell the engine to switch to UCI mode
-uci
-
-// engine identify
- id name Shredder
- id author Stefan MK
-
-// engine sends the options it can change
-// the engine can change the hash size from 1 to 128 MB
- option name Hash type spin default 1 min 1 max 128
-
-// the engine supports Nalimov endgame tablebases
- option name NalimovPath type string default <empty>
- option name NalimovCache type spin default 1 min 1 max 32
-
-// the engine can switch off Nullmove and set the playing style
- option name Nullmove type check default true
- option name Style type combo default Normal var Solid var Normal var Risky
-
-// the engine has sent all parameters and is ready
- uciok
-
-// Note: here the GUI can already send a "quit" command if it just wants to find out
-// details about the engine, so the engine should not initialize its internal
-// parameters before here.
-// now the GUI sets some values in the engine
-// set hash to 32 MB
-setoption name Hash value 32
-
-// init tbs
-setoption name NalimovCache value 1
-setoption name NalimovPath value d:\tb;c\tb
-
-// waiting for the engine to finish initializing
-// this command and the answer is required here!
-isready
-
-// engine has finished setting up the internal values
- readyok
-
-// now we are ready to go
-
-// if the GUI is supporting it, tell the engine that is is
-// searching on a game that is hasn't searched on before
-ucinewgame
-
-// if the engine supports the "UCI_AnalyseMode" option and the next search is supposted to
-// be an analysis, the GUI should set "UCI_AnalyseMode" to true if it is currently
-// set to false with this engine
-setoption name UCI_AnalyseMode value true
-
-// tell the engine to search infinite from the start position after 1.e4 e5
-position startpos moves e2e4 e7e5
-go infinite
-
-// the engine starts sending infos about the search to the GUI
-// (only some examples are given)
-
-
- info depth 1 seldepth 0
- info score cp 13 depth 1 nodes 13 time 15 pv f1b5
- info depth 2 seldepth 2
- info nps 15937
- info score cp 14 depth 2 nodes 255 time 15 pv f1c4 f8c5
- info depth 2 seldepth 7 nodes 255
- info depth 3 seldepth 7
- info nps 26437
- info score cp 20 depth 3 nodes 423 time 15 pv f1c4 g8f6 b1c3
- info nps 41562
- ....
-
-
-// here the user has seen enough and asks to stop the searching
-stop
-
-// the engine has finished searching and is sending the bestmove command
-// which is needed for every "go" command sent to tell the GUI
-// that the engine is ready again
- bestmove g1f3 ponder d8f6
+++ /dev/null
-WinBoard is a graphical chessboard for 32-bit Microsoft\r
-Windows systems. It can serve as a user interface for\r
-GNU Chess or for internet chess servers, or it can be\r
-used to play out games manually or from game files.\r
-For full details, see the Help file (WinBoard.hlp).\r
-For answers for frequently asked questions, see the FAQ\r
-file (FAQ.html).\r
-\r
-WinBoard is free software. You can redistribute it\r
-and/or modify it under the GPL, as described in the\r
-files COPYRIGHT and COPYING. If your distribution does\r
-not include the source code, you can get it from the\r
-project's Web site:\r
-\r
- http://savannah.gnu.org/projects/xboard/\r
-\r
-GNU CHESS\r
-\r
-Two versions of GNU Chess are included in the WinBoard\r
-distribution. GNU Chess is free software released\r
-under the GPL.\r
-\r
-Source code for GNU Chess 5 is available from:\r
-\r
- http://savannah.gnu.org/projects/chess/\r
-\r
-Source code for GNU Chess 4 is available from:\r
-\r
- http://tim-mann.org/gnuchess.html\r
-\r
-BUGS AND IMPROVEMENTS\r
-\r
-Report bugs in WinBoard or XBoard by email to\r
-<bug-xboard@gnu.org>. Report bugs in GNU Chess to\r
-<bug-gnu-chess@gnu.org>. Give full details, including\r
-the program's version number and the exact text of any\r
-error messages. If you improve WinBoard or XBoard,\r
-please send a message about your changes to\r
-<bug-xboard@gnu.org>. Remember that these programs\r
-are released under the GPL, so source code is freely\r
-available, but if you distribute modified versions, you\r
-must distribute the source code modifications under the\r
-GPL as well.\r
-\r
-HISTORY\r
-\r
-WinBoard is a port of the Unix program XBoard to Win32,\r
-the 32-bit Microsoft Windows API. The graphical front\r
-end (WinBoard.c, etc.) is all new, but the back end\r
-that understands chess rules, chess notation, GNU\r
-Chess, the ICS, etc., is shared with XBoard. See\r
-WinBoard.hlp for a list of contributors to WinBoard and\r
-XBoard.\r
+++ /dev/null
- WinBoard 4.3.16 RELEASE NOTES\r
-\r
-Compared to version 4.3.15 described below, this version features\r
-\r
-New command-line options\r
-/niceEngines=N for adjusting the priority of engine processes so they don't soak up all your system resources\r
-/firstOptions="..." Allows the setting of options that engines define through the feature option="..." commands\r
-/secondOptions="..."\r
-/firstLogo=filename.bmp Displays the mentioned bitmap next to the clock (with H:W =1:2 aspect ratio) (WB only)\r
-/secondLogo=filename.bmp\r
-/autoLogo=false get logo files automatically from engineDirectory\logo.bmp\r
-\r
-General enhancements:\r
-* New WB-protocol command: 'feature option="NAME -TYPE VALUE OTHER"', which engines can use to define options\r
-* New WB-protocol command: 'option NAME VALUE' used to set value of engine-defned options.\r
-* implements /delayAfterQuit and /delayBeforeQuit in XBoard, and uses SIGKILL to terminate rogue engine processes\r
-\r
-\r
-\r
- WinBoard 4.3.15 RELEASE NOTES\r
-\r
-Compared to version 4.3.14k described below, this version features\r
-\r
-New command-line options\r
-/rewindIndex=N (for the new auto-increment mode of the loadGameIndex or loadPositionIndex in match mode)\r
-/sameColorGames=N (for playing a match where the same player has white all the time)\r
-/egtFormats="..." (for specifying where various end-game tables are installed on the computer)\r
-\r
-New menu items\r
-+ Time-odds factors can be set in the time-control dialog\r
-+ Nr of CPUs for SMP engines can be set in the Options -> UCI dialog\r
-+ Own-Book options can be switched from the Options -> UCI dialog\r
-+ The ScoreIsAbs options can be set from the Options -> Engine dialog\r
-+ New-Variant menu adds Superchess\r
-\r
-General Enhancements:\r
-* WinBoard engines can now also use the Polyglot opening book (implemented as general GUI book)\r
-* New WB-protocol commands memory, cores and egtpath make interactive setting of these parameters \r
- possible on WB engines\r
-* New Polyglot is available that relays the interactive setting of these parameters to UCI engines\r
-* Match mode suports an auto-increment mode, so that all games or positions from a file can be played\r
-* Draw claims with Kings and an arbitrary number of like Bishops (e.g. KBBKB) are accepted\r
-\r
-The source tree in original xboard 4.2.7 format can now be compiled under Cygwin with the aid\r
-of the cygwin.mak file in the ~/winboard/ subdirectory of the source releasy, after you put\r
-the hep-file from an executabl distribution there. Maefiles for other compilers are not updated\r
-since 4.2.7, as I do not have those compilers.\r
-\r
-\r
- WinBoard 4.3.14k RELEASE NOTES\r
-\r
-Compared to version 4.3.13 described below, this version features\r
-\r
-New command-line options: \r
-/autoKibitz (for relaying the PV info of the engine to the ICS) \r
-/userName="..." (for setting the name of the Human player, also as menu) \r
-/engineDebugOutput=N (controlling the writing of engine output to debug file) \r
-/firstNPS=N (for time management by node count or CPU time) \r
-/secondNPS=N (likewise for the other engine) \r
-\r
-New Menu items \r
-+ Enter Username (same as /userName command-line option) \r
-+ Save Diagram (for saving the Chessboard display as bitmap file) \r
-+ Machine Both (not implemented yet, but menu item already provided) \r
-+ New-Variant menu adds CRC, Janus and Berolina (the latter only with legality testing off!) \r
-+ Any variant can be played from a shuffled opening setup \r
-\r
-Bugfixes: \r
-* Problems with switching the variant in ICS zippy mode solved \r
-* In ICS observing mode game history is now fully accessible \r
-* Moves are not fed to engine in zippy mode, when observing a game from a variant unknown to the engine \r
-* a problem with loading PGN of FRC games with move disambiguation and initial castling rights was fixed.\r
-* A bug in the clock display that made previous versions of WinBoard crash for tiny displays is fixed\r
-\r
-General enhancements: \r
-* variant name displayed in title bar in ICS mode, when not 'normal' \r
-* when receiving a challenge in ICS zippy mode, it is checked if the engine supports the variant (/zippyVariants="..." can still be used to limit the allowed variants, and for protocol-1 engines is still the only thing to go on) \r
-* when loading a game from a PGN file, WB automatically switches to the variant specified in the PGN tags \r
-* when starting from a loaded position (using /loadPositionFile), this position will be used on subsequent 'New Game' commands as well (until we switch variant)\r
-\r
-New is also that the source tree is now brought back in the original WinBoard 4.2.7 format, including\r
-xboard source files. Note, however, that the xboard sources are from an older date, and I did not test\r
-if they still compile together with the much newer backend sources. I did add code in xboard.c to recognize\r
-the new command-line options I added since then, and in so far they are back-end options that should be enough \r
-to make them work. This is completely untested, though; I did not even try to compile it. Last time anyone\r
-built a working xboard.exe from this was at a stage where WinBoard did have adjustable board size, allowing\r
-it to play Xiangqi. But no crazyhouse holdings yet.\r
-\r
- WinBoard 4.3.13a RELEASE NOTES\r
-\r
-This version of WinBoard_F fixes several bugs in 4.3.12, and also addse a few new features.\r
-The new features include:\r
-- some more fairy pieces, so that each side now has 22 piece types in stead of 17,\r
-making most fairy pieces available in board size "petite" (next to "bulky" and "middling"),\r
-making the ArchBishop and Chancellor, as well as one wildcard piece (the Lance) available in all \r
-sizes from "petite" to "bulky".\r
-- The FRC support is fully fixed, both in local and ICS mode.\r
-- A mechanism is provided for safe draw claiming in cases where a 3-fold repetition woud occur only\r
- after your own move. In this case a draw will be awarded by WinBoard if the engine sends "offer draw"\r
- before making its move.\r
-- Genuine draw offers are not passed on immediately to the opponent but held up to when the offerer announces\r
- its move.\r
-- Variants FRC, Cylinder and Falcon are added to the "New Variant..." menu.\r
-- Support for playing time-odds games is added. (Options /firstTimeOdds, /secondTimeOdds, /timeOddsMode)\r
-- A mechanism is provided for attaching WinBoard options to the engine command, to create options that\r
-follow the engine (e.g. time odds) in a tournament run under a tournament manager.\r
-Bugfixes include:\r
-- Shatranj in ICS mode (did not work at all before)\r
-- Some draw adjudications (QRKR was mistaken for KRKR, and KBKB with like Bishops is now recognized)\r
-- time info in the PGN is now correct\r
-\r
-\r
- COMPILING\r
-\r
-This version was developed using gcc under cygwin. To compile, the following set of commands was used,\r
-given from the directory where all the source files are:\r
- flex -oparser.o -L parser.l\r
- windres --use-temp-file --include-dir . winboard.rc -O coff -o wbres.o\r
- gcc -O2 -mno-cygwin -mwindows -c *.c\r
- gcc -mno-cygwin -mwindows *.o -lwsock32 -lwinmm -o winboard.exe\r
- strip winboard.exe\r
- rm *.o\r
-The first command is only needed to produce a new parser.c from the parser.l. The parser.c is included\r
-in this release, so you only need flex if you want to modify the parser. \r
-The windres command builds the resource file wbres.o from winboard.rc and all bitmaps and sound files in\r
-the sub-directories.\r
-This release should be completely self-sufficient; no source files from other releases are needed,\r
-even the unmodified files are included here,\r
-\r
- DESCRIPTION\r
-\r
-This WinBoard (beta-)version is derived from Allessandro Scotti's Winboard_x, and supports the following new options, mainly in the area of adjudication of engine-engine games, improved Crazyhouse support, and allowing variants with non-conventional pieces and or board sizes. (All option are shown here with their default values):\r
-\r
-/variant=normal \r
-This (already existing) option has been expanded with several new variants, involving non-conventional pieces and deviating board sizes. The board size is automatically adapted to the selected variant, unless explicitly overruled (see below). The new variants are (with default board size, files x ranks, in parentheses): \r
-\r
-variant name Game board description\r
-knightmate Knightmate (8x8) Variant where the King moves as a Knight, and vice versa \r
-capablanca Capablanca Chess (10x8) Variant featuring Archbishop and Chancellor as new pieces \r
-gothic Gothic Chess (10x8) Same as Capablanca, with a more interesting opening position \r
-courier Courier Chess (12x8) a Medieval form that combines elements of Shatranj and modern Chess \r
-shogi Shogi (9x9) Japanese Chess \r
-xiangqi Xiangqi (9x10) Chinese Chess \r
-fairy Fairy Chess (8x8) Variant were you can use all pieces of other variants together \r
-fischerandom FRC (8x8) Shuffle variant with generalized castling rule\r
-cylinder Cylinder Chess (8x8) left and right board edge are connected\r
-falcon Falcon Chess (10x8) a patented variant featuring two Falcon pieces\r
- \r
-The variant can be set from the newly added "File -> New Variant..." sub-menu. \r
-Extra board files are indicated by the letters i, j, k, l, ... For boards with more than 9 ranks, the counting starts at zero! More than 10 ranks is not tested and unlikely to work in the area of PGN saving / reading. Non-FIDE pieces will be referred to in FENs and PGN by letters that depend on the variant, and might collide with piece designators in other variants. E.g. in Xiangqi 'C' is a Cannon, in Capablanca Chess it is a Chancellor. Pieces that do not belong in a variant cannot be addressed in FEN and PGN either, for as long as that variant is selected, unless the letter assignment is overruled with the aid of the /pieceToCharTable option. The variant is not saved in the winboard.ini file; on start-up we always get variant "normal" unless we use the command-line option, or have added the option to the winboard.ini file manually (in which case it will disappear when this file is overwritten by WinBoard saving its options). \r
-WinBoard_F knows the movement of all pieces occurring in Capablanca Chess (of which FIDE Chess is a subset), Shatranj, Courier, Xiangqi and 9x9 Shogi, so that these games can be played with legality testing enabled. \r
-\r
-/pieceToCharTable="PNBRQFEACWMOHIJGDVLSUKpnbrqfeacwmohijgdvlsuk" (*********** ALTERED IN 4.3.13 *******)\r
-Each piece that WinBoard knows (in its legality test) has a letter associated with it, by which it will be referred to in FEN or PGN. The default assignment can be overruled with this option. The value has to be a string of even length, with at least 12 characters. The first half of the string designates the white pieces, the second half the black. \r
-The last letter for each color will be assigned to the King. (This is the piece that moves as an orthodox King; note that Nightmate and Xiangqi have a different royal piece.) All letters before it will be assigned to the other pieces in the order: \r
-\r
-P Pawn (move often depends on variant) \r
-N Knight (move subtly different in Xiangqi (where it is written as H) or Shogi) \r
-B Bishop \r
-R Rook \r
-Q Queen (Lance L in Shogi) \r
-F Ferz/General (The Shatranj 'Queen' and Xiangqi 'Adviser', used for Silver General S in Shogi.) \r
-E Alfil/Elephant (Moves subtly different in Xiangqi vs Shatranj/Courier) \r
-A Archbishop/Cardinal \r
-C Chancellor/Marshall \r
-W Wazir/GrandVizer (Gold General G in Shogi, in Xiangqi it is royal and denoted by K) \r
-M Commoner/Man\r
-O Cannon/Pao \r
-H Nightrider (Promoted Knight in Shogi and CrazyHouse) \r
-I (Promoted Bishop in Shogi and CrazyHouse) \r
-J (Promoted Rook in Shogi and CrazyHouse) \r
-G Grasshopper (Promoted Queen in Crazyhouse, promoted Lance in Shogi) \r
-D Dabbaba (Promoted Silver in Shogi) \r
-V Falcon wildcard\r
-L Lance wildcard\r
-S Snake wildcard\r
-U Unicorn (representation of Royal Knight in Knightmate, used as promoted Pawn in Shogi) \r
-K King \r
- \r
-NOTE THIS ORDER HAS BEEN ALTERED IN 4.3.13 compred to 4.3.12. Sorry about that; this was unavoidable to accomodate an engine that can play a Crazyhouse version of Capablanca Chess. This made it impossible to continue using the Archbishop and Chancellor as promoted versions of Bishop and Rook.\r
-\r
-NEW IN 4.3.13 is the concept of a wildcard piece: WinBoard will accept any move of such a piece as legal, even\r
-when legality testing is switched on. This allows participaton of a limited number of pieces that WinBoard \r
-does not know, while still applying legality testing to the other pieces. The only rice to pay, is that WinBoard\r
-cannot recognize checks (and thus mates) with such pieces. So if they participate, /testClaims should be off,\r
-as WinBoard will no longer recognize all mates.\r
-\r
-Pieces that are not mentioned (because the argument has less than 44 characters) will remain disabled. Mentioned pieces can be disabled by assigning them a '.' (period). They are then not recognized in FEN or PGN input. Non-FIDE pieces that are not assigned a letter will also not appear on the promotion menu. It is not advisable to disable a piece that is present in the opening position of the selected variant, though. \r
- Promoted pieces that need to be distinguished from original pieces of the same type (because of demotion on capture and transfer to the holdings) will be indicated by the letter for the unpromoted piece with a '+' in front of it (Shogi), or by the letter of the promoted piece with a '~' after it (Crazyhouse, Bughouse, in general everything with holdings that is not Shogi). To achieve this, they should be assigned the characters '+' or '~', respectively.\r
- All the new pieces have a native bitmap representation in the board sizes 'bulky' and 'middling'. For all window sizes that do not support such fairy bitmaps, promoted NBRQ are represented as a 2-sizes-smaller normal piece symbol, so that Crazyhouse can be played at any size. People disliking the fairy representations might even prefer this. \r
- There is an enhanced 'Edit Position' menu popup (right-clicking on the squares after selecting this mode in the main menu), featuring some common non-FIDE pieces, and 'promote' and 'demote' options to make those not directly in the menu. The promotion popup shows ArchBishop and Chancellor in Capablanca and Gothic, (or in fact in any game where this piece is not disabled or a promoted version of a normal piece), and leaves only the options YES / NO in Shogi. In Xiangqi there are no promotions.\r
- From version 4.3.13 on, the default assignment of characters to pieces is variant dependent. This makes the\r
-need for using this option even smaller. Xiangqi now uses H for Horse and C for Cannon. Shatranj uses B for Elephant and Q for Ferz (because some existing engines and ICC expect this)\r
-\r
-/fontPieceToCharTable="PNBRQFEACWMOHIJGDVLSUKpnbrqfeacwmohijgdvlsuk" (******* ALTERED IN 4.3.13 *******)\r
-This option is similar to /pieceToCharTable, but sets the font character that is used to display the piece on the screen (when font-based rendering is in use), rather than in the FEN or PGN. The default setting should work with George Tsavdaris' WinboardF font, which uses the 'intuitive' mapping of font characters to symbols. With font-based rendering the fairy pieces can be used at any board size.\r
-Note that UHIJGS are also used to represent the promoted versions of PNBRQF, in games like Crazyhouse and Shogi, where the promotion has to be undone on capture. In such games you are likely to prefer a different representation of those pieces then when they represent true fairy pieces.\r
-NOTE THAT THE ORDER HAS CHANGED IN 4.3.13 compared to 4.3.12\r
-\r
-/boardWidth=-1 /boardHeight=-1 \r
-Set a number of files and ranks of the playing board to a value that will override the defaults for the variant that is selected. A value of -1 means the variant default board size will be used for the corresponding parameter (and is itself the default value of these options). These parameters can be set in the "Files -> New Variant..." sub-menu, where they are reset to the default -1 if you OK the chosen variant without typing something to overrule it. These parameters are saved in the winboard.ini file. (But unless you saved while a variant with board-size override was selected, they will always be saved as -1.) \r
-A variant with a non-standard board size will be communicated to the engine(s) with the board size prefixed to the variant name, e.g. "variant 12x8_capablanca". In protocol 2 the engine must first enable this feature by sending "boardsizeFxR" amongst the accepted variants, where F is the maximum number of files, and R the maximum number of ranks, as decimal numbers. \r
-\r
-/holdingsSize=-1 \r
-Set the size of the holdings for dropable pieces to a value that will override the default for the variant that is selected. A value of -1 means the variant default holdings size will be used for that parameter (and is itself the default value of this options). This parameter can be set in the Files -> New Variant... sub-menu, where it is reset to the default -1 if you OK the chosen variant without typing something to overrule it. This parameters is saved in the winboard.ini file. \r
-To disable holdings, set their size to 0. They will then not be displayed. For non-zero holding size N, the holdings are displayed left and right of the board, and piece drops can be effected by dragging pieces from the holdings to the drop square. In bughouse, the holdings will be filled by the ICS. In all other variants, captured pieces will go into the holdings (after reversing their color). Only the first N pieces of the /pieceToCharTable argument will go into the holdings. All other pieces will be converted to Pawns. (In Shogi, however they will be demoted in the regular way before determining if they fit.) Pieces that are disabled (per default and per /pieceToCharTable option) might not be counted when determining what are the first N pieces. \r
-Non-standard holdingsize will be communicated to the engine by prefixing it (together with the board size, even if this is standard) to the variant name, e.g. "variant 7x7+5_shogi". In protocol 2 the engine should enable this feature by sending "holdingsH" amongst the variant names, where H is the maximum acceptable holdings size as a decimal number. \r
-\r
-/firstTimeOdds=1 /secondTimeOdds=1 (********** NEW IN 4.3.13 *********)\r
-The time given to first or second engine (initially, for later sessions, as increment or in the 'st' command)\r
-is divided by the given factor. This replaces the time odds feature of WinBoard_x, where two times separated by\r
-a slash could be given for the /timeContron parameter or in the time-control field of the menu.\r
-\r
-/timeOddsMode=1\r
-This option determines how the case is handled where both engines have a time-oddsfactor differing from 1.\r
-In mode 1 the times will be scaled such that the engine that gets the most time will get the nominal time,\r
-in mode 2 both engines will play at reduced time.\r
-\r
-/alphaRank=FALSE \r
-When this parameter is true, a-h are converted to 1-9, and vice versa, in all move output and input (to PGN files or SAN move display as well as in communication with the engine). This might be useful for Shogi, where conventionally one uses letters to designate ranks, and digits to designate files. Engines that want to use this option must make sure pieces are never represented by lower case! This option can be set from the Files -> New Variant... menu, where it defaults to FALSE unless you explicitly set it. It is not saved in the winboard.ini file. \r
-This kludge does not seem to work for reading PGN files. Saving works fine. For now, using it is not recommended. In the future it might be redefined as only affecting engine-engine communication, .\r
-Note that the PGN format in Shogi also leaves out the trailing '+' as check indicator: In Shogi such a trailing '+' means promotion, while a trailing '=' means defer promotion. Prefix '+' signs are used on moves with promoted pieces, disambiguation is done western SAN style.\r
-\r
-/allWhite=FALSE\r
-Causes the outline of the 'white' pieces to be superimposed onto the 'black' piece symbols as well (as a black outline) when native bitmaps are used (as opposed to font-based rendering). This is useful if we choose a very light color to represent the 'black' pieces. It might be particularly useful in Shogi, where the conventional representation of the 'black' pieces is as upside-down white pieces, so that both colors would be white. This option is saved in the winboard.ini file, and can be set in the "Options -> Board..." sub-menu. \r
-\r
-/flipBlack=FALSE\r
-Setting this option will cause upside-down display of the native piece bitmaps used to represent the pieces of the side that plays black, as would be needed for a traditional representation of Shogi pieces. It can be set from the "Options -> Board..." sub-menu, and it is saved in the winboard.ini file. For now, traditional Shogi bitmaps are only included for size "moderate". For other sizes you must depend on font-based rendering.\r
-\r
-/detectMate=TRUE \r
-/testClaim=TRUE \r
-/materialDraws=TRUE \r
-/trivialDraws=FALSE \r
-/ruleMoves=51 \r
-/repeatsToDraw=6 \r
-These are all options that only affect engine-engine play, and can be set from the "Options -> Engine..." sub-menu. They are all related to adjudication of games by the GUI. Legality checking must be switched on for them to work. \r
-If /detectMate is TRUE, the GUI recognizes checkmate and stalemate (but not in games with holdings!), and ends the game accordingly before the engines can claim. This is convenient for play with engines that fail to claim, and just exit. \r
- With /testClaim set, all result and illegal-move claims by engines that claim more than their own loss are scrutinized for validity, and false claims result in forfeit of the game. Useful with buggy engines. \r
- The option /materialDraws=TRUE causes games with insufficient mating material to be adjudicated immediately as draws, in case the engines would not claim these draws. This applies to KK, KNK and KBK. (A bug in 4.3.12, which\r
-overlooked KBKB with like Bishops as a legal draw, has been corrected in 4.3.13.)\r
- The option /trivialDraws adjudicates KNNK, KBKB, KNKN, KBKN, KRKR and KQKQ to draws after 3 moves (to allow for a quick tactical win). Note that in KQKQ this might not be sound, but that problem would disappear once bitbase probing is implemented. (A bug in 4.3.12, which led to KQKR being considered a trivail draw, is corrected in 4.3.13)\r
- The /ruleMoves determine after how many reversible moves the game is adjudicated as a draw. Setting this to 0 turns this option off. Draw claims by the engine are still accepted (with /testClaim=TRUE) after 50 reversible moves, even if /ruleMoves species a larger number. Note that it is perfectly legal according to FIDE rules to play on after 50 reversible moves, but in tournaments having two engines that want to play on forever is a nuisance in endings like KBNKR, where one of the engines thinks it is ahead and can avoids repeats virtually forever. \r
-The option /repeatsToDraw makes the GUI adjudicate a game as draw after the same position has occurred the specified number of times. If it is set to a value > 3, engines can still claim the draw after 3-fold repeat. \r
-All these options are saved in the winboard.ini file. \r
-\r
-/matchPause=10000 \r
-Determines the number of milliseconds that is paused between two games of a match. In the old WinBoard this was always 10 sec, which was inconveniently long in fast games. If you make the pause too short, tardy engines might get into trouble, though. Saved in the Winboard.ini.\r
-\r
-/zippyVariants="normal,fischerandom,crazyhouse,losers,suicide,3checks,twokings,bughouse,shatranj"\r
-This option already existed, (giving the varinats that an engine can play on an ICS), but now by default setting\r
-that icludes virtually all variants that WinBoard knows and that can be played on ICC. In this mode, however,\r
-WinBoard now also checks if the variant the ICS wants to play is supportd by the engine (i.e. if it occurs\r
-in the list given by the variant feature). Only for protocol-1 engines (which do not provide this info to WinBoard)\r
-you would need to restrict the number of variants to those the engine can play, to avoid accepting challenges\r
-the engine cannot handle.\r
-\r
-Clocks\r
-There is an "Options -> swap clocks" command, that swaps the position of white and black clocks (convenient in over-the-board matches, where the display is standing next to the board, and you want your own time to be displayed on your side of the screen). The clocks can be adjusted in "edit game" mode: right-clicking them adds one minute, left-clicking subtracts one minute. (Also for OTB matches, to keep them synchronized with the official match clock.) The flag-fell condition is now indicated as '(!)' behind the displayed time, to eliminate the necessity for overwriting the message in the title bar (which might contain indispensible information in match mode).\r
-\r
-/pgnExtendedInfo contains time (******** NEW IN 4.3.13 *********)\r
-If you selected this option in the "Options -> General..." menu, the search time is now also saved as a comment \r
-in the PGN file with every move, together with the depth/score info (which WinBoard_x already did). The time\r
-written is that reported by the engine if "Show Thinking" was on. If the engine does not give times,\r
-the WinBoard clock is used in stead.\r
-\r
-Other improvements / changes\r
-Castling rights and e.p. rights are now fully maintained, and considered in legality testing. They are imported from and written to FEN, as is the 50-move counter. (When reading an incomplete FEN they are still guessed, though.) \r
-The time (in sec, or min:sec) is now always stored together with the PV information to the PGN, if storing the latter was requested (through ticking "extended PGN info" in "Options -> General..."). The saved time is the WinBoard clock time (as opposed to the time reported by the engine).\r
-\r
-Options from the engine command line (******** NEW IN 4.3.13 *********)\r
-The command to startup the engine, as typed in the startup dialog box, or given to WinBoard in the \r
-/firstChessProgram or /secondChessProgram (/fcp, /scp) can now contain options that are not passed to the\r
-engine, but are interpreted by WinBoard. These would then overrule a similar option given in the winboard.ini\r
-or in the command line. Every engine option following an option 'WBopt' would be treated this way. As tournament\r
-managers use the /fcp and /scp options to pass the engines to WinBoard, this can be used to have engine-\r
-dependent settings of WinBoard during a tournament. For instance, if we are playing a tournament at 40/5' time\r
-control, but we want to accomodate an engine that only supports incremental time controls, we can install that engine in the tournament manager as "badengine.exe hashsize=128 WBopt /timeIncrement=3". Every time WinBoard\r
-would start up this engine, it would then use 5'+3" TC for that game.\r
- Options that apply to one engine only can also be passed this way. Such options contain 'first' or 'second' as\r
-part of their name, depending on the engine they should apply to. As a given engine will play some of its games\r
-as first and others as second during the tourney, to create an option that follows the engine, we need WinBoard\r
-to dynamically decide if it should use the 'first' or 'second' flavor of the option, depending on which\r
-engine startup command provided the option. This is indicated by letting the option contain '%s' in places\r
-where WinBoard should read 'first' or 'second'. For example "strongengine.exe WBopt /%sTimeOdds=10" would\r
-give the engine a time-odds factor of 10, whenever it plays, irrespective if it plays as first or second engine.\r
- Note that options that do not come in a 'first' or 'second' flavor can still be passed to only one engine by\r
-putting the WinBoard protocol commands in the init string. E.g., if we want to limit the search depth of\r
-a particular engine to 6 ply in all its games. we can give 'engine.exe WBopt /%sInitString="newnrandom\nsd 6\n"',\r
-so that only the applicable engine receives the 'sd 6' command.
\ No newline at end of file
+++ /dev/null
-/*\r
- * Engine output (PV)\r
- *\r
- * Author: Alessandro Scotti (Dec 2005)\r
- *\r
- * ------------------------------------------------------------------------\r
- *
- * GNU XBoard 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 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard 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, see http://www.gnu.org/licenses/.
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history. */
-
-#include "config.h"\r
-\r
-#include <windows.h> /* required for all Windows applications */\r
-#include <richedit.h>\r
-#include <stdio.h>\r
-#include <stdlib.h>\r
-#include <malloc.h>\r
-#include <commdlg.h>\r
-#include <dlgs.h>\r
-\r
-#include "common.h"\r
-#include "winboard.h"\r
-#include "frontend.h"\r
-#include "backend.h"\r
-\r
-#include "wsnap.h"\r
-\r
-VOID EngineOutputPopUp();\r
-VOID EngineOutputPopDown();\r
-BOOL EngineOutputIsUp();\r
-\r
-#define SHOW_PONDERING\r
-\r
-/* Imports from backend.c */\r
-char * SavePart(char *str);\r
-\r
-/* Imports from winboard.c */\r
-extern HWND engineOutputDialog;\r
-extern BOOLEAN engineOutputDialogUp;\r
-\r
-extern HINSTANCE hInst;\r
-extern HWND hwndMain;\r
-\r
-extern WindowPlacement wpEngineOutput;\r
-\r
-/* Module variables */\r
-#define H_MARGIN 2\r
-#define V_MARGIN 2\r
-#define LABEL_V_DISTANCE 1 /* Distance between label and memo */\r
-#define SPLITTER_SIZE 4 /* Distance between first memo and second label */\r
-\r
-#define ICON_SIZE 14\r
-\r
-#define STATE_UNKNOWN -1\r
-#define STATE_THINKING 0\r
-#define STATE_IDLE 1\r
-#define STATE_PONDERING 2\r
-#define STATE_ANALYZING 3\r
-\r
-static int windowMode = 1;\r
-\r
-static BOOL needInit = TRUE;\r
-\r
-static HICON hiColorBlack = NULL;\r
-static HICON hiColorWhite = NULL;\r
-static HICON hiColorUnknown = NULL;\r
-static HICON hiClear = NULL;\r
-static HICON hiPondering = NULL;\r
-static HICON hiThinking = NULL;\r
-static HICON hiAnalyzing = NULL;\r
-\r
-static int lastDepth[2] = { -1, -1 };\r
-static int lastForwardMostMove[2] = { -1, -1 };\r
-static int engineState[2] = { -1, -1 };\r
-\r
-typedef struct {\r
- HWND hColorIcon;\r
- HWND hLabel;\r
- HWND hStateIcon;\r
- HWND hStateData;\r
- HWND hLabelNPS;\r
- HWND hMemo;\r
- char * name;\r
- int which;\r
- int depth;\r
- unsigned long nodes;\r
- int score;\r
- int time;\r
- char * pv;\r
- char * hint;\r
- int an_move_index;\r
- int an_move_count;\r
-} EngineOutputData;\r
-\r
-static HICON LoadIconEx( int id )\r
-{\r
- return LoadImage( hInst, MAKEINTRESOURCE(id), IMAGE_ICON, ICON_SIZE, ICON_SIZE, 0 );\r
-}\r
-\r
-static VOID InitializeEngineOutput()\r
-{\r
- if( needInit ) {\r
- hiColorBlack = LoadIconEx( IDI_BLACK_14 );\r
- hiColorWhite = LoadIconEx( IDI_WHITE_14 );\r
- hiColorUnknown = LoadIconEx( IDI_UNKNOWN_14 );\r
- hiClear = LoadIconEx( IDI_TRANS_14 );\r
- hiPondering = LoadIconEx( IDI_PONDER_14 );\r
- hiThinking = LoadIconEx( IDI_CLOCK_14 );\r
- hiAnalyzing = LoadIconEx( IDI_ANALYZE2_14 );\r
- needInit = FALSE;\r
- }\r
-}\r
-\r
-static VOID SetControlPos( HWND hDlg, int id, int x, int y, int width, int height )\r
-{\r
- HWND hControl = GetDlgItem( hDlg, id );\r
-\r
- SetWindowPos( hControl, HWND_TOP, x, y, width, height, SWP_NOZORDER );\r
-}\r
-\r
-#define HIDDEN_X 20000\r
-#define HIDDEN_Y 20000\r
-\r
-static VOID HideControl( HWND hDlg, int id )\r
-{\r
- HWND hControl = GetDlgItem( hDlg, id );\r
- RECT rc;\r
-\r
- GetWindowRect( hControl, &rc );\r
-\r
- /* \r
- Avoid hiding an already hidden control, because that causes many\r
- unnecessary WM_ERASEBKGND messages!\r
- */\r
- if( rc.left != HIDDEN_X || rc.top != HIDDEN_Y ) {\r
- SetControlPos( hDlg, id, 20000, 20000, 100, 100 );\r
- }\r
-}\r
-\r
-static int GetControlWidth( HWND hDlg, int id )\r
-{\r
- RECT rc;\r
-\r
- GetWindowRect( GetDlgItem( hDlg, id ), &rc );\r
-\r
- return rc.right - rc.left;\r
-}\r
-\r
-static int GetControlHeight( HWND hDlg, int id )\r
-{\r
- RECT rc;\r
-\r
- GetWindowRect( GetDlgItem( hDlg, id ), &rc );\r
-\r
- return rc.bottom - rc.top;\r
-}\r
-\r
-static int GetHeaderHeight()\r
-{\r
- int result = GetControlHeight( engineOutputDialog, IDC_EngineLabel1 );\r
-\r
- if( result < ICON_SIZE ) result = ICON_SIZE;\r
-\r
- return result;\r
-}\r
-\r
-#define ENGINE_COLOR_WHITE 'w'\r
-#define ENGINE_COLOR_BLACK 'b'\r
-#define ENGINE_COLOR_UNKNOWN ' '\r
-\r
-char GetEngineColor( int which )\r
-{\r
- char result = ENGINE_COLOR_UNKNOWN;\r
-\r
- if( which == 0 || which == 1 ) {\r
- ChessProgramState * cps;\r
-\r
- switch (gameMode) {\r
- case MachinePlaysBlack:\r
- case IcsPlayingBlack:\r
- result = ENGINE_COLOR_BLACK;\r
- break;\r
- case MachinePlaysWhite:\r
- case IcsPlayingWhite:\r
- result = ENGINE_COLOR_WHITE;\r
- break;\r
- case AnalyzeMode:\r
- case AnalyzeFile:\r
- result = WhiteOnMove(forwardMostMove) ? ENGINE_COLOR_WHITE : ENGINE_COLOR_BLACK;\r
- break;\r
- case TwoMachinesPlay:\r
- cps = (which == 0) ? &first : &second;\r
- result = cps->twoMachinesColor[0];\r
- result = result == 'w' ? ENGINE_COLOR_WHITE : ENGINE_COLOR_BLACK;\r
- break;\r
- }\r
- }\r
-\r
- return result;\r
-}\r
-\r
-char GetActiveEngineColor()\r
-{\r
- char result = ENGINE_COLOR_UNKNOWN;\r
-\r
- if( gameMode == TwoMachinesPlay ) {\r
- result = WhiteOnMove(forwardMostMove) ? ENGINE_COLOR_WHITE : ENGINE_COLOR_BLACK;\r
- }\r
-\r
- return result;\r
-}\r
-\r
-static int IsEnginePondering( int which )\r
-{\r
- int result = FALSE;\r
-\r
- switch (gameMode) {\r
- case MachinePlaysBlack:\r
- case IcsPlayingBlack:\r
- if( WhiteOnMove(forwardMostMove) ) result = TRUE;\r
- break;\r
- case MachinePlaysWhite:\r
- case IcsPlayingWhite:\r
- if( ! WhiteOnMove(forwardMostMove) ) result = TRUE;\r
- break;\r
- case TwoMachinesPlay:\r
- if( GetActiveEngineColor() != ENGINE_COLOR_UNKNOWN ) {\r
- if( GetEngineColor( which ) != GetActiveEngineColor() ) result = TRUE;\r
- }\r
- break;\r
- }\r
-\r
- return result;\r
-}\r
-\r
-static VOID PositionControlSet( HWND hDlg, int x, int y, int clientWidth, int memoHeight, int idColor, int idEngineLabel, int idNPS, int idMemo, int idStateIcon, int idStateData )\r
-{\r
- int label_x = x + ICON_SIZE + H_MARGIN;\r
- int label_h = GetControlHeight( hDlg, IDC_EngineLabel1 );\r
- int label_y = y + ICON_SIZE - label_h;\r
- int nps_w = GetControlWidth( hDlg, IDC_Engine1_NPS );\r
- int nps_x = clientWidth - H_MARGIN - nps_w;\r
- int state_data_w = GetControlWidth( hDlg, IDC_StateData1 );\r
- int state_data_x = nps_x - H_MARGIN - state_data_w;\r
- int state_icon_x = state_data_x - ICON_SIZE - 2;\r
- int max_w = clientWidth - 2*H_MARGIN;\r
- int memo_y = y + ICON_SIZE + LABEL_V_DISTANCE;\r
-\r
- SetControlPos( hDlg, idColor, x, y, ICON_SIZE, ICON_SIZE );\r
- SetControlPos( hDlg, idEngineLabel, label_x, label_y, state_icon_x - label_x, label_h );\r
- SetControlPos( hDlg, idStateIcon, state_icon_x, y, ICON_SIZE, ICON_SIZE );\r
- SetControlPos( hDlg, idStateData, state_data_x, label_y, state_data_w, label_h );\r
- SetControlPos( hDlg, idNPS, nps_x, label_y, nps_w, label_h );\r
- SetControlPos( hDlg, idMemo, x, memo_y, max_w, memoHeight );\r
-}\r
-\r
-static VOID ResizeWindowControls( HWND hDlg, int mode )\r
-{\r
- RECT rc;\r
- int headerHeight = GetHeaderHeight();\r
- int labelHeight = GetControlHeight( hDlg, IDC_EngineLabel1 );\r
- int labelOffset = H_MARGIN + ICON_SIZE + H_MARGIN;\r
- int labelDeltaY = ICON_SIZE - labelHeight;\r
- int clientWidth;\r
- int clientHeight;\r
- int maxControlWidth;\r
- int npsWidth;\r
-\r
- /* Initialize variables */\r
- GetClientRect( hDlg, &rc );\r
-\r
- clientWidth = rc.right - rc.left;\r
- clientHeight = rc.bottom - rc.top;\r
-\r
- maxControlWidth = clientWidth - 2*H_MARGIN;\r
-\r
- npsWidth = GetControlWidth( hDlg, IDC_Engine1_NPS );\r
-\r
- /* Resize controls */\r
- if( mode == 0 ) {\r
- /* One engine */\r
- PositionControlSet( hDlg, H_MARGIN, V_MARGIN, \r
- clientWidth, \r
- clientHeight - V_MARGIN - LABEL_V_DISTANCE - headerHeight- V_MARGIN,\r
- IDC_Color1, IDC_EngineLabel1, IDC_Engine1_NPS, IDC_EngineMemo1, IDC_StateIcon1, IDC_StateData1 );\r
-\r
- /* Hide controls for the second engine */\r
- HideControl( hDlg, IDC_Color2 );\r
- HideControl( hDlg, IDC_EngineLabel2 );\r
- HideControl( hDlg, IDC_StateIcon2 );\r
- HideControl( hDlg, IDC_StateData2 );\r
- HideControl( hDlg, IDC_Engine2_NPS );\r
- HideControl( hDlg, IDC_EngineMemo2 );\r
- SendDlgItemMessage( hDlg, IDC_EngineMemo2, WM_SETTEXT, 0, (LPARAM) "" );\r
- /* TODO: we should also hide/disable them!!! what about tab stops?!?! */\r
- }\r
- else {\r
- /* Two engines */\r
- int memo_h = (clientHeight - headerHeight*2 - V_MARGIN*2 - LABEL_V_DISTANCE*2 - SPLITTER_SIZE) / 2;\r
- int header1_y = V_MARGIN;\r
- int header2_y = V_MARGIN + headerHeight + LABEL_V_DISTANCE + memo_h + SPLITTER_SIZE;\r
-\r
- PositionControlSet( hDlg, H_MARGIN, header1_y, clientWidth, memo_h,\r
- IDC_Color1, IDC_EngineLabel1, IDC_Engine1_NPS, IDC_EngineMemo1, IDC_StateIcon1, IDC_StateData1 );\r
-\r
- PositionControlSet( hDlg, H_MARGIN, header2_y, clientWidth, memo_h,\r
- IDC_Color2, IDC_EngineLabel2, IDC_Engine2_NPS, IDC_EngineMemo2, IDC_StateIcon2, IDC_StateData2 );\r
- }\r
-\r
- InvalidateRect( GetDlgItem(hDlg,IDC_EngineMemo1), NULL, FALSE );\r
- InvalidateRect( GetDlgItem(hDlg,IDC_EngineMemo2), NULL, FALSE );\r
-}\r
-\r
-static VOID SetDisplayMode( int mode )\r
-{\r
- if( windowMode != mode ) {\r
- windowMode = mode;\r
-\r
- ResizeWindowControls( engineOutputDialog, mode );\r
- }\r
-}\r
-\r
-static VOID VerifyDisplayMode()\r
-{\r
- int mode;\r
-\r
- /* Get proper mode for current game */\r
- switch( gameMode ) {\r
- case AnalyzeMode:\r
- case AnalyzeFile:\r
- case MachinePlaysWhite:\r
- case MachinePlaysBlack:\r
- case IcsPlayingWhite:\r
- case IcsPlayingBlack:\r
- mode = 0;\r
- break;\r
- case TwoMachinesPlay:\r
- mode = 1;\r
- break;\r
- default:\r
- /* Do not change */\r
- return;\r
- }\r
-\r
- SetDisplayMode( mode );\r
-}\r
-\r
-static VOID InsertIntoMemo( HWND hMemo, char * text )\r
-{\r
- SendMessage( hMemo, EM_SETSEL, 0, 0 );\r
-\r
- SendMessage( hMemo, EM_REPLACESEL, (WPARAM) FALSE, (LPARAM) text );\r
-}\r
-\r
-static VOID SetIcon( HWND hControl, HICON hIcon )\r
-{\r
- if( hIcon != NULL ) {\r
- SendMessage( hControl, STM_SETICON, (WPARAM) hIcon, 0 );\r
- }\r
-}\r
-\r
-static VOID SetEngineColorIcon( HWND hControl, int which )\r
-{\r
- char color = GetEngineColor(which);\r
- HICON hicon = NULL;\r
-\r
- if( color == ENGINE_COLOR_BLACK )\r
- hicon = hiColorBlack;\r
- else if( color == ENGINE_COLOR_WHITE )\r
- hicon = hiColorWhite;\r
- else\r
- hicon = hiColorUnknown;\r
-\r
- SetIcon( hControl, hicon );\r
-}\r
-\r
-static SetEngineState( int which, int state, char * state_data )\r
-{\r
- int x_which = 1 - which;\r
- HWND hStateIcon = GetDlgItem( engineOutputDialog, which == 0 ? IDC_StateIcon1 : IDC_StateIcon2 );\r
- HWND hStateData = GetDlgItem( engineOutputDialog, which == 0 ? IDC_StateData1 : IDC_StateData2 );\r
-\r
- if( engineState[ which ] != state ) {\r
- engineState[ which ] = state;\r
-\r
- switch( state ) {\r
- case STATE_THINKING:\r
- SetIcon( hStateIcon, hiThinking );\r
- if( engineState[ x_which ] == STATE_THINKING ) {\r
- SetEngineState( x_which, STATE_IDLE, "" );\r
- }\r
- break;\r
- case STATE_PONDERING:\r
- SetIcon( hStateIcon, hiPondering );\r
- break;\r
- case STATE_ANALYZING:\r
- SetIcon( hStateIcon, hiAnalyzing );\r
- break;\r
- default:\r
- SetIcon( hStateIcon, hiClear );\r
- break;\r
- }\r
- }\r
-\r
- if( state_data != 0 ) {\r
- SetWindowText( hStateData, state_data );\r
- }\r
-}\r
-\r
-#define MAX_NAME_LENGTH 32\r
-\r
-static VOID UpdateControls( EngineOutputData * ed )\r
-{\r
- BOOL isPondering = FALSE;\r
-\r
- char s_label[MAX_NAME_LENGTH + 32];\r
- \r
- char * name = ed->name;\r
-\r
- /* Label */\r
- if( name == 0 || *name == '\0' ) {\r
- name = "?";\r
- }\r
-\r
- strncpy( s_label, name, MAX_NAME_LENGTH );\r
- s_label[ MAX_NAME_LENGTH-1 ] = '\0';\r
-\r
-#ifdef SHOW_PONDERING\r
- if( IsEnginePondering( ed->which ) ) {\r
- char buf[8];\r
-\r
- buf[0] = '\0';\r
-\r
- if( ed->hint != 0 && *ed->hint != '\0' ) {\r
- strncpy( buf, ed->hint, sizeof(buf) );\r
- buf[sizeof(buf)-1] = '\0';\r
- }\r
- else if( ed->pv != 0 && *ed->pv != '\0' ) {\r
- char * sep = strchr( ed->pv, ' ' );\r
- int buflen = sizeof(buf);\r
-\r
- if( sep != NULL ) {\r
- buflen = sep - ed->pv + 1;\r
- if( buflen > sizeof(buf) ) buflen = sizeof(buf);\r
- }\r
-\r
- strncpy( buf, ed->pv, buflen );\r
- buf[ buflen-1 ] = '\0';\r
- }\r
-\r
- SetEngineState( ed->which, STATE_PONDERING, buf );\r
- }\r
- else if( gameMode == TwoMachinesPlay ) {\r
- SetEngineState( ed->which, STATE_THINKING, "" );\r
- }\r
- else if( gameMode == AnalyzeMode || gameMode == AnalyzeFile ) {\r
- char buf[64];\r
- int time_secs = ed->time / 100;\r
- int time_mins = time_secs / 60;\r
-\r
- buf[0] = '\0';\r
-\r
- if( ed->an_move_index != 0 && ed->an_move_count != 0 && *ed->hint != '\0' ) {\r
- char mov[16];\r
-\r
- strncpy( mov, ed->hint, sizeof(mov) );\r
- mov[ sizeof(mov)-1 ] = '\0';\r
-\r
- sprintf( buf, "%d/%d: %s [%02d:%02d:%02d]", ed->an_move_index, ed->an_move_count, mov, time_mins / 60, time_mins % 60, time_secs % 60 );\r
- }\r
-\r
- SetEngineState( ed->which, STATE_ANALYZING, buf );\r
- }\r
- else {\r
- SetEngineState( ed->which, STATE_IDLE, "" );\r
- }\r
-#endif\r
-\r
- SetWindowText( ed->hLabel, s_label );\r
-\r
- s_label[0] = '\0';\r
-\r
- if( ed->time > 0 && ed->nodes > 0 ) {\r
- unsigned long nps_100 = ed->nodes / ed->time;\r
-\r
- if( nps_100 < 100000 ) {\r
- sprintf( s_label, "NPS: %lu", nps_100 * 100 );\r
- }\r
- else {\r
- sprintf( s_label, "NPS: %.1fk", nps_100 / 10.0 );\r
- }\r
- }\r
-\r
- SetWindowText( ed->hLabelNPS, s_label );\r
-\r
- /* Memo */\r
- if( ed->pv != 0 && *ed->pv != '\0' ) {\r
- char s_nodes[24];\r
- char s_score[16];\r
- char s_time[24];\r
- char buf[256];\r
- int buflen;\r
- int time_secs = ed->time / 100;\r
- int time_cent = ed->time % 100;\r
-\r
- /* Nodes */\r
- if( ed->nodes < 1000000 ) {\r
- sprintf( s_nodes, "%lu", ed->nodes );\r
- }\r
- else {\r
- sprintf( s_nodes, "%.1fM", ed->nodes / 1000000.0 );\r
- }\r
-\r
- /* Score */\r
- if( ed->score > 0 ) {\r
- sprintf( s_score, "+%.2f", ed->score / 100.0 );\r
- }\r
- else {\r
- sprintf( s_score, "%.2f", ed->score / 100.0 );\r
- }\r
-\r
- /* Time */\r
- sprintf( s_time, "%d:%02d.%02d", time_secs / 60, time_secs % 60, time_cent );\r
-\r
- /* Put all together... */\r
- sprintf( buf, "%3d\t%s\t%s\t%s\t", ed->depth, s_score, s_nodes, s_time );\r
-\r
- /* Add PV */\r
- buflen = strlen(buf);\r
-\r
- strncpy( buf + buflen, ed->pv, sizeof(buf) - buflen );\r
-\r
- buf[ sizeof(buf) - 3 ] = '\0';\r
-\r
- strcat( buf + buflen, "\r\n" );\r
-\r
- /* Update memo */\r
- InsertIntoMemo( ed->hMemo, buf );\r
- }\r
-\r
- /* Colors */\r
- SetEngineColorIcon( ed->hColorIcon, ed->which );\r
-}\r
-\r
-LRESULT CALLBACK EngineOutputProc( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam )\r
-{\r
- static SnapData sd;\r
-\r
- switch (message) {\r
- case WM_INITDIALOG:\r
- if( engineOutputDialog == NULL ) {\r
- engineOutputDialog = hDlg;\r
-\r
- RestoreWindowPlacement( hDlg, &wpEngineOutput ); /* Restore window placement */\r
-\r
- ResizeWindowControls( hDlg, windowMode );\r
-\r
- SetEngineState( 0, STATE_IDLE, "" );\r
- SetEngineState( 1, STATE_IDLE, "" );\r
- }\r
-\r
- return FALSE;\r
-\r
- case WM_COMMAND:\r
- switch (LOWORD(wParam)) {\r
- case IDOK:\r
- EndDialog(hDlg, TRUE);\r
- return TRUE;\r
-\r
- case IDCANCEL:\r
- EndDialog(hDlg, FALSE);\r
- return TRUE;\r
-\r
- default:\r
- break;\r
- }\r
-\r
- break;\r
-\r
- case WM_GETMINMAXINFO:\r
- {\r
- MINMAXINFO * mmi = (MINMAXINFO *) lParam;\r
- \r
- mmi->ptMinTrackSize.x = 100;\r
- mmi->ptMinTrackSize.y = 160;\r
- }\r
- break;\r
-\r
- case WM_CLOSE:\r
- EngineOutputPopDown();\r
- break;\r
-\r
- case WM_SIZE:\r
- ResizeWindowControls( hDlg, windowMode );\r
- break;\r
-\r
- case WM_ENTERSIZEMOVE:\r
- return OnEnterSizeMove( &sd, hDlg, wParam, lParam );\r
-\r
- case WM_SIZING:\r
- return OnSizing( &sd, hDlg, wParam, lParam );\r
-\r
- case WM_MOVING:\r
- return OnMoving( &sd, hDlg, wParam, lParam );\r
-\r
- case WM_EXITSIZEMOVE:\r
- return OnExitSizeMove( &sd, hDlg, wParam, lParam );\r
- }\r
-\r
- return FALSE;\r
-}\r
-\r
-VOID EngineOutputPopUp()\r
-{\r
- FARPROC lpProc;\r
-\r
- if( needInit ) {\r
- InitializeEngineOutput();\r
- }\r
- \r
- CheckMenuItem(GetMenu(hwndMain), IDM_ShowEngineOutput, MF_CHECKED);\r
-\r
- if( engineOutputDialog ) {\r
- SendMessage( engineOutputDialog, WM_INITDIALOG, 0, 0 );\r
-\r
- if( ! engineOutputDialogUp ) {\r
- ShowWindow(engineOutputDialog, SW_SHOW);\r
- }\r
- }\r
- else {\r
- lpProc = MakeProcInstance( (FARPROC) EngineOutputProc, hInst );\r
-\r
- /* Note to self: dialog must have the WS_VISIBLE style set, otherwise it's not shown! */\r
- CreateDialog( hInst, MAKEINTRESOURCE(DLG_EngineOutput), hwndMain, (DLGPROC)lpProc );\r
-\r
- FreeProcInstance(lpProc);\r
- }\r
-\r
- engineOutputDialogUp = TRUE;\r
- ShowThinkingEvent(); // [HGM] thinking: might need to prompt engine for thinking output
-}\r
-\r
-VOID EngineOutputPopDown()\r
-{\r
- CheckMenuItem(GetMenu(hwndMain), IDM_ShowEngineOutput, MF_UNCHECKED);\r
-\r
- if( engineOutputDialog ) {\r
- ShowWindow(engineOutputDialog, SW_HIDE);\r
- }\r
-\r
- engineOutputDialogUp = FALSE;\r
- ShowThinkingEvent(); // [HGM] thinking: might need to shut off thinking output
-}\r
-\r
-BOOL EngineOutputIsUp()\r
-{\r
- return engineOutputDialogUp;\r
-}\r
-\r
-VOID EngineOutputUpdate( FrontEndProgramStats * stats )\r
-{\r
- EngineOutputData ed;\r
- BOOL clearMemo = FALSE;\r
- int which;\r
- int depth;\r
-\r
- if( stats == 0 ) {\r
- SetEngineState( 0, STATE_IDLE, "" );\r
- SetEngineState( 1, STATE_IDLE, "" );\r
- return;\r
- }\r
-\r
- which = stats->which;\r
- depth = stats->depth;\r
-\r
- if( which < 0 || which > 1 || depth < 0 || stats->time < 0 || stats->pv == 0 ) {\r
- return;\r
- }\r
-\r
- if( engineOutputDialog == NULL ) {\r
- return;\r
- }\r
-\r
- VerifyDisplayMode();\r
-\r
- ed.which = which;\r
- ed.depth = depth;\r
- ed.nodes = stats->nodes;\r
- ed.score = stats->score;\r
- ed.time = stats->time;\r
- ed.pv = stats->pv;\r
- ed.hint = stats->hint;\r
- ed.an_move_index = stats->an_move_index;\r
- ed.an_move_count = stats->an_move_count;\r
-\r
- /* Get target control */\r
- if( which == 0 ) {\r
- ed.hColorIcon = GetDlgItem( engineOutputDialog, IDC_Color1 );\r
- ed.hLabel = GetDlgItem( engineOutputDialog, IDC_EngineLabel1 );\r
- ed.hStateIcon = GetDlgItem( engineOutputDialog, IDC_StateIcon1 );\r
- ed.hStateData = GetDlgItem( engineOutputDialog, IDC_StateData1 );\r
- ed.hLabelNPS = GetDlgItem( engineOutputDialog, IDC_Engine1_NPS );\r
- ed.hMemo = GetDlgItem( engineOutputDialog, IDC_EngineMemo1 );\r
- ed.name = first.tidy;\r
- }\r
- else {\r
- ed.hColorIcon = GetDlgItem( engineOutputDialog, IDC_Color2 );\r
- ed.hLabel = GetDlgItem( engineOutputDialog, IDC_EngineLabel2 );\r
- ed.hStateIcon = GetDlgItem( engineOutputDialog, IDC_StateIcon2 );\r
- ed.hStateData = GetDlgItem( engineOutputDialog, IDC_StateData2 );\r
- ed.hLabelNPS = GetDlgItem( engineOutputDialog, IDC_Engine2_NPS );\r
- ed.hMemo = GetDlgItem( engineOutputDialog, IDC_EngineMemo2 );\r
- ed.name = second.tidy;\r
- }\r
-\r
- /* Clear memo if needed */\r
- if( lastDepth[which] > depth || (lastDepth[which] == depth && depth <= 1) ) {\r
- clearMemo = TRUE;\r
- }\r
-\r
- if( lastForwardMostMove[which] != forwardMostMove ) {\r
- clearMemo = TRUE;\r
- }\r
-\r
- if( clearMemo ) {\r
- SendMessage( ed.hMemo, WM_SETTEXT, 0, (LPARAM) "" );\r
- }\r
-\r
- /* Update */\r
- lastDepth[which] = depth;\r
- lastForwardMostMove[which] = forwardMostMove;\r
-\r
- if( ed.pv != 0 && ed.pv[0] == ' ' ) {\r
- if( strncmp( ed.pv, " no PV", 6 ) == 0 ) { /* Hack on hack! :-O */\r
- ed.pv = "";\r
- }\r
- }\r
-\r
- UpdateControls( &ed );\r
-}\r
+++ /dev/null
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">\r
-<META NAME="Generator" CONTENT="Microsoft Word 97">\r
-<TITLE>+ $ # KWinBoard: Chessboard for Windows</TITLE>\r
-</HEAD>\r
-<BODY LINK="#0000ff" VLINK="#800080">\r
-\r
-<B><SUP><FONT FACE="Arial" SIZE=2><P>+$#K</SUP></FONT><I><FONT FACE="Arial" SIZE=5>WinBoard</I>: Chessboard for Windows</P>\r
-</B></FONT><FONT SIZE=2>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>K#</SUP> An updated description with the release of version 4.3.14</P>\r
-<SUP><P>K#</SUP> 			"For the ultimate WinBoard Experience"</P>\r
-</B></FONT><FONT FACE="Arial" SIZE=2 COLOR="#ff0000"><P>New features since WinBoard 4.2.7 that are implemented in Allessandro Scottis WinBoard_x are highlighted in red. </FONT><FONT FACE="Arial" SIZE=2 COLOR="#008000">New features in the WinBoard 4.3.xx series by H.G. Muller are highlighted in green.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> Description</P>\r
-</B><I><P>WinBoard</I> is a graphical user interface for chess. It displays a chessboard on the screen, accepts moves made with the mouse, and loads and saves game files in standard chess notation. WinBoard serves as a front-end for many different services, including:</P>\r
-\r
-<UL>\r
-<B><I><LI>Chess engines</B></I> that run on your PC. You can play a game against an engine, set up arbitrary positions, force variations, or watch a game between two engines. <I>GNU Chess</I> is supplied with WinBoard, and over 100 other free chess engines are available separately. Of these, Crafty is the most popular. See <U>Installing Chess Engines</U>InstallingChessEngines for instructions on installing additional chess engines.</LI>\r
-<B><I><LI>Chess servers</I> </B>on the Internet. You can play against other Internet Chess Server (ICS) users, observe games they are playing, review games in the ICS libraries, chat, and more. WinBoard can also be used to run an automated computer player on the ICS, but this feature is for advanced users only and is subject to some caveats; see the separate file zippy.README for information.</LI>\r
-<B><I><LI>The Web</B></I> and your own saved games. You can use WinBoard as a helper application to view files in your Web browser or the Explorer. You can use it to keep track of email postal games, browse games off the net, or review games you have saved.</LI></UL>\r
-\r
-<B><SUP><P>K#</SUP>Getting Started</P>\r
-</B><P>WinBoard starts up in one of three major modes: chess engine mode, ICS client mode, or game viewer mode. You cannot change modes while WinBoard is running, but you can access all the game viewer features directly from the other two modes. Also, you can start WinBoard several times to get multiple chessboard windows running in any combination of modes.</P>\r
-</FONT><FONT SIZE=2><P>You will usually run WinBoard by choosing an item from the Windows Start menu that runs it in the mode you want. If you just double-click on WinBoard.exe, you get a startup dialog asking which mode you want. If you choose chess engine mode, you can then select from the installed engines; if you choose ICS client mode, you can then select from a list of known chess servers. More advanced users can <U>customize</U>icsNames these lists or type in WinBoard <U>command line options</U>Options directly.</P>\r
-</FONT><FONT FACE="Arial" SIZE=2><P>After starting WinBoard, you can make <SUP>K#</SUP>moves in several different ways. To move by dragging, press the left mouse button while the cursor is on one of your pieces, move the cursor to another square, and release the button. You can also move by clicking the left mouse button once (press and release) over one of your pieces, moving the cursor to another square, and clicking again. You drop new pieces on the board (when applicable) by selecting from a context menu. Press the right mouse button over a square to bring up the menu; no menu will come up in modes where dropping a new piece is not permitted. You can also make moves by typing them in standard algebraic chess notation. Either a dialog box will pop up for you to type into, or in ICS mode, your typing will be redirected into the ICS interaction window.</P>\r
-<P>When WinBoard<I> </I>is iconized, its <SUP>K#</SUP>icon is a white knight if it is White's turn to move, a black knight if it is Black's turn.</P>\r
-<B><P>Additional Information</P><DIR>\r
-\r
-</B><U><P>MenusMenus</P>\r
-<P>Shortcut ButtonsButtons</P>\r
-<P>Command Line Options</U>Options</P>\r
-<U><P>Initialization FilesFiles</P>\r
-<P>Installing Chess EnginesInstallingChessEngines</P>\r
-<P>Firewalls</U>Firewalls</P>\r
-<U><P>Limitations</U>Limitations</P>\r
-<U><P>Authors</U>Authors</P>\r
-<U><P>Copyright</U>Copyright</P>\r
-<U><P>Frequently Asked Questions</U>!ExecFile(FAQ.html)</P>\r
-<B><P> </P></DIR>\r
-\r
-<SUP><P>K#$+</SUP>MENUS</P><DIR>\r
-\r
-</B><U><P>File Menu</U>FileMenu</P>\r
-<U><P>Mode Menu</U>ModeMenu</P>\r
-<U><P>Action Menu</U>ActionMenu</P>\r
-<U><P>Step Menu</U>StepMenu</P>\r
-<U><P>Options Menu</U>OptionsMenu</P>\r
-<U><P>Help Menu</U>HelpMenu</P>\r
-<U><P>ICS Interaction Context Menu</U>ICSInteractionContextMenu</P>\r
-<B><P> </P></DIR>\r
-\r
-<SUP><P>K#$+</SUP></FONT><FONT FACE="Arial" SIZE=1> </FONT><FONT FACE="Arial" SIZE=2>File Menu</P>\r
-</FONT><SUP><FONT FACE="Arial" SIZE=2 COLOR="#ff0000"><P>K#</SUP> New Game</P>\r
-</B></FONT><FONT FACE="Arial" SIZE=2><P>Resets WinBoard and the chess engine (if any) to the beginning of a new chess game. In Internet Chess Server mode, clears the current state of WinBoard, then resynchronizes with ICS by sending a <B>refresh </B>command. If you want to stop playing, observing, or examining a game on ICS, use an appropriate command from the <U>Action</U>ActionMenu menu, not Reset.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>K#</SUP> New Shuffle Game</P>\r
-</B></FONT><FONT FACE="Arial" SIZE=2 COLOR="#ff0000"><P>Brings you to a dialog box where you can enter the number of an opening setup for shuffle variants like FRC, or ask for a random number. After pressing OK, a new game is set up, using this position. The chosen position will continue to be used on every subsequent "New Game", </FONT><FONT FACE="Arial" SIZE=2 COLOR="#008000">even if you are playing a variant that normally is not shuffled, until you select a new variant through the "New Variant
" menu.</FONT><FONT FACE="Arial" SIZE=2 COLOR="#ff0000"> If you enter "-1" for the position number, new random number is drawn before every game.</P>\r
-</FONT><FONT SIZE=2 COLOR="#008000"><P>The type of shuffling that is done in reaction to a given position number obeys restrictions that depend on the selected variant. In variants that allow castling, Kings remain on the central files, Rooks in the corners. In games with FRC-style castlings, the King starts between the Rooks, but apart from that they could be anywhere. In games without castling, there are no restrictions on King and Rook placement. Pairs of color-bound pieces (such as Bishops) will be placed on oppositely colored squares. In ICS mode this feature has no effect, as the ICS determines the starting position.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>K#</SUP> New Variant</P>\r
-</B><P>Select a new variant. There are controls to enter a board width, board height and holdings size, but normally you leave them at -1, which means the default value for the selected variant will be used (e.g. 8x8 for normal Chess, 9x10 for xiangqi, 10x8 for capablanca, holdings for 5 pieces in crazyhouse). You can set a deviating value for each of the three parameters (e.g. to play a crazyhouse version of xiangqi or capablanca you would set the holdings to 6 or 7). If the board width deviates from the default, the game will start with an empty board. </P>\r
-<P>The variant will remain in force until you select a new one; i.e. subsequent "New Game" commands will start a new game of the same variant. In ICS mode this command has no effect, as the ICS determines which variant will be played.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> Load Game</P>\r
-</B><P>Plays a game from a record file. A popup dialog prompts you for the filename. If the file contains more than one game, a second popup dialog displays a list of games (with information drawn from their PGN tags, if any), and you can select the one you want.</P>\r
-<P>The game file parser will accept PGN (portable game notation), or in fact almost any file that contains moves in algebraic notation. Notation of the form <I>P@f7</I> is accepted for piece-drops in bughouse games; this is a nonstandard extension to PGN. If the file includes a PGN position (FEN tag), or a WinBoard position diagram bracketed by "[--" and "--]" before the first move, the game starts from that position. Text enclosed in parentheses, square brackets, or curly braces is assumed to be commentary and is displayed in a pop-up window. Any other text in the file is ignored. PGN variations (enclosed in parentheses) are treated as comments; WinBoard is not able to walk variation trees. The nonstandard PGN tag </FONT><FONT FACE="Courier New" SIZE=2>[Variant "varname"]</FONT><FONT FACE="Arial" SIZE=2> functions similarly to the <U>variant</U>variant command-line option, allowing games in certain chess variants to be loaded. There is also a heuristic to recognize chess variants from the </FONT><FONT FACE="Courier New" SIZE=2>Event</FONT><FONT FACE="Arial" SIZE=2> tag, by looking for the strings that the Internet Chess Servers put there when saving variant ("wild") games.</P>\r
-<B><SUP><P>K#</SUP> Load Next Game</P>\r
-</B><P>Loads the next game from the last game record file you loaded.</P>\r
-<B><SUP><P>K#</SUP> Load Previous Game</P>\r
-</B><P>Loads the previous game from the last game record file you loaded. Not available if the last game was loaded from a pipe.</P>\r
-<B><SUP><P>K#</SUP> Reload Same Game</P>\r
-</B><P>Reloads the last game you loaded. Not available if the last game was loaded from a pipe.</P>\r
-<B><SUP><P>K#</SUP> Save Game</P>\r
-</B><P>Appends a record of the current game to a file. A popup dialog prompts you for the filename. If the game did not begin with the standard starting position, the game file includes the starting position used. Game files are saved in the PGN (portable game notation) format, unless the <U>oldSaveStyle</U>oldSaveStyle option is True, in which case they are saved in an older format that is specific to WinBoard<I>.</I> Both formats are human-readable, and both can be read back by the Load Game command. Notation of the form <I>P@f7</I> is generated for piece-drops in bughouse games; this is a nonstandard extension to PGN.</P>\r
-<B><SUP><P>K#</SUP> Copy Game To Clipboard</P>\r
-</B></FONT><FONT SIZE=2><P>Copies the record of the current game to the Windows clipboard in PGN (portable game notation) format.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> Paste Game From Clipboard</P>\r
-</B></FONT><FONT SIZE=2><P>Plays a game from the Windows clipboard.</FONT><FONT FACE="Arial" SIZE=2> See <U>Load Game</U>LoadGame for a discussion of game file format and parser behavior.</P>\r
-<B><SUP><P>K#</SUP> Load Position</P>\r
-</B><P>Sets up a position from a position file. A popup dialog prompts you for the filename. Position files must be in FEN (Forsythe-Edwards notation), or in the format that the <U>Save Position</U> command writes when <U>oldSaveStyle</U>oldSaveStyle is turned on. </FONT><FONT FACE="Arial" SIZE=2 COLOR="#008000">Note that many variants require an extension of the original FEN standard. WinBoard tries to be as universal as possible in understanding FENs when different standards are raound, but has to make a choice when writing them. In FRC is uses Shredder-FEN (Haha castling notation) , but it understands KQkq as the outermost Rook, so it also reads X-FEN. In Crazyhouse / Bughouse it appends the holdings immediately behind the board info between brackets [], but on input it also understands bFEN (which puts it behind a slash / as if it were an extra board rank). It uses a tilde ~ behind a piece to indicate it is really a promoted Pawn (like bFEN). In Shogi the holdings are printed like in Crazyhouse, but promoted pieces are represented by a plus sign + before the letter of the original piece. Letters used for the pieces can be set with the /pieceToCharTable command-line option.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> Load Next Position</P>\r
-</B><P>Loads the next position from the last position file you loaded.</P>\r
-<B><SUP><P>K#</SUP> Load Previous Position</P>\r
-</B><P>Loads the previous position from the last position file you loaded. Not available if the last position was loaded from a pipe.</P>\r
-<B><SUP><P>K#</SUP> Reload Same Position</P>\r
-</B><P>Reloads the last position you loaded. Not available if the last position was loaded from a pipe.</P>\r
-<B><SUP><P>K#</SUP> Save Position</P>\r
-</B><P>Appends a diagram of the current position to a file. A popup dialog prompts you for the filename. Positions are saved in FEN (Forsythe-Edwards notation) format, unless the <U>oldSaveStyle</U>oldSaveStyle option is True, in which case they are saved in an older, human-readable format that is specific to WinBoard<I>.</I> Both formats can be read back by the Load Position command; however, currently Load Position can load only the first position in a file.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>K#</SUP> Save Diagram</P>\r
-</B><P>Writes the current board display as a bitmap file. With this command you can use WinBoard as a diagram generator.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> Copy Position To Clipboard</P>\r
-</B><P>Places a diagram of the current position (in Forsythe-Edwards notation) into the Windows clipboard.</P>\r
-<B><SUP><P>K#</SUP> Paste Position From Clipboard</P>\r
-</B><P>Sets up a position from the Windows clipboard. Position must be in FEN (Forsythe-Edwards notation). Puts WinBoard into <U>Edit Game</U>EditGame mode if it was not there already.</P>\r
-<B><SUP><P>K#</SUP> Exit</P>\r
-</B><P>Exits from WinBoard.</P>\r
-<B><P> </P>\r
-<SUP><P>K#$+</SUP> Mode Menu</P>\r
-<SUP><P>K#</SUP> Machine White</P>\r
-</B><P>Forces the chess engine to play white.</P>\r
-<B><SUP><P>K#</SUP> Machine Black</P>\r
-</B><P>Forces the chess engine to play black.</P>\r
-<B><SUP><P>K#</SUP> Two Machines</P>\r
-</B><P>Starts a game between two chess engines.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>K#</SUP> Machines Both</P>\r
-</B><P>A single chess engine plays itself. Mainly useful for pseudo-engines, that are in fact communication links to another machine, where you want to observe a game that is being played. (E.g. the gothic-chess.com server). This command is not implemented yet (version 4.3.14).</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> Analysis Mode</P>\r
-</B><P>In this mode, you can make moves for both sides on the board. After each move, the chess engine will think about possible replies and display its analysis in a separate window. This feature currently works only if Crafty is the chess engine.</P>\r
-<B><SUP><P>K#</SUP> Analyze File</P>\r
-</B><P>In this mode, you can load a game from a file, and the chess engine will analyze each move as in Analysis Mode. This feature currently works only if Crafty is the chess engine.</P>\r
-<B><SUP><P>K#</SUP> ICS Client</P>\r
-</B><P>This is the normal mode when WinBoard is connected to a chess server. If you have moved into Edit Game or Edit Position mode, you can select this option to get out.</P>\r
-<P>When you run WinBoard in ICS mode, it starts up a console window in which you can type commands and receive text responses from the chess server. You can use the standard Windows editing keys to edit your command line before pressing Enter. The console window keeps a history of the last few commands you typed. Press the up-arrow key to go back to a previous command; press the down-arrow key to go forward again to a later command. Press the right mouse button in the output area for a <U>context menu</U>ICSInteractionContextMenu of editing commands and ICS command shortcuts.</P>\r
-<P>Some useful ICS commands include <B>who</B> to see who is logged on, <B>games</B> to see what games are being played, <B>match</B> to challenge another player to a game, <B>observe</B> to observe an ongoing game, <B>examine</B> or <B>smoves</B> to review a recently completed game, and of course <B>help</B>. </P>\r
-<P>Whenever you ask to observe an ongoing game, review a completed game, or resume an adjourned game, WinBoard retrieves and parses the list of past moves from the ICS, so you can review them with <U>Forward</U>Forward and <U>Backward</U>Backward or save them with <U>Save Game</U>SaveGame.</P>\r
-<P>Some special ICS Client features are activated when you are in <B>examine</B> or <B>bsetup </B>mode on ICS. See the descriptions of the menu commands <U>Forward</U>Forward, <U>Backward</U>Backward, <U>Pause</U>Pause, and <U>Stop Examining</U>StopExamining below. You can also issue the ICS position-editing commands with the mouse. Move pieces by dragging with the left mouse button, or by left-clicking once on the starting square and once on the ending square. Press the right mouse button over a square for a context menu that lets you drop a new piece, empty the square, or clear the board. Click on the White or Black clock to set the side to play. You cannot set the side to play or drag pieces to arbitrary squares while examining on ICC, but you can do so in bsetup mode on FICS. You can also make moves by typing them into the ICS window; you may have to do this occasionally if you are playing a chess variant whose rules WinBoard does not understand, such as Fischer Random.</P>\r
-<P>If you are playing a bughouse game on the ICS, a list of the offboard pieces that each player holds is shown in the window title bar. To drop an offboard piece, press the right mouse button over an empty square to bring up a context menu. To observe your partner's games, start a second copy of WinBoard, log in as a guest, and use the ICS <B>follow</B> or <B>pfollow</B> command in the new window.</P>\r
-<B><SUP><P>K#</SUP> Edit Game</P>\r
-</B><P>Allows you to make moves for both Black and White, and to change moves after backing up with the <U>Backward</U>Backward command. The clocks do not run, but you can adjust their reading by clicking on them. A left-click subtracts one minute, a right-click adds one minute.</P>\r
-<P>In chess engine mode, the chess engine continues to check moves for legality but does not participate in the game. You can bring the chess engine back into the game by selecting <U>Machine White</U>MachineWhite, <U>Machine Black</U>MachineBlack, or <U>Two Machines</U>TwoMachines.</P>\r
-<P>In ICS mode, the moves are not sent to the ICS: Edit Game takes WinBoard out of ICS Client mode and lets you edit games locally. If you want to edit a game on ICS in a way that other ICS users can see, use the ICS <B>examine</B> command or start an ICS match against yourself.</P>\r
-<B><SUP><P>K#</SUP> Edit Position</P>\r
-</B><P>Lets you set up an arbitrary board position. Use the left mouse button to drag pieces to new squares, or to delete a piece by dragging it off the board or dragging an empty square on top of it. To drop a new piece on a square, press the right mouse button over the square. This brings up a menu of pieces. Additional menu choices let you empty the square or clear the board. You can set the side to play next by clicking on the White or Black indicator at the top of the screen. </FONT><FONT FACE="Arial" SIZE=2 COLOR="#008000">The pop-up menu also contains options to promote or demote the piece currently in the square. (In variants like Crazyhouse a piece has a different representation when it is a promoted Pawn rater than an original piece.) This allows you to create some of the not-so-common pieces (e.g. a Unicorn is a promoted King, a Commoner is a demoted King).</P>\r
-</FONT><FONT FACE="Arial" SIZE=2><P>Selecting Edit Position causes WinBoard<I> </I>to discard all remembered moves in the current game.</P>\r
-<P>In ICS mode, change made to the position by Edit Position are not sent to the ICS: Edit Position takes WinBoard out of ICS Client mode and lets you edit positions locally. If you want to edit positions on ICS in a way that other ICS users can see, use the ICS <B>examine</B> command, or start an ICS match against yourself. (See also <U>ICS Client</U>ICSClient above.)</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#ff0000"><P>K#</SUP> Show Engine Output</P>\r
-</B></FONT><FONT SIZE=2 COLOR="#ff0000"><P>Open a new window dedicated to showing the thinking output of the engine(s), as controlled by "Show Thinking".</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#ff0000"><P>K#</SUP> Show Evaluation Graph</P>\r
-</B></FONT><FONT SIZE=2 COLOR="#ff0000"><P>Open a new window dedicated to displaying a graph, representing the development of the engine score(s) from the current game over time. (Needs "show Thinking" to be enabled in order to work.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> Show Game List</P>\r
-</B></FONT><FONT SIZE=2><P>Open a new window dedicated to showing the list of all games in the currently loaded game file.The information that is displayed for each game can be controlled in the options menu. (e.g. players, date, result, taken from the PGN tags.)</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#ff0000"><P>K#</SUP> Show Move History</P>\r
-</B></FONT><FONT SIZE=2 COLOR="#ff0000"><P>Open a new window dedicated to showing the game currently in progress.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> Training</P>\r
-</B></FONT><FONT SIZE=2><P>Training mode lets you interactively guess the moves of a game for one of the players. While in Training mode, the navigation buttons are disabled. You guess the next move of the game by playing the move on the board (or using the <U>Type In MoveTypeInMove</U> command). If the move played matches the next move of the game, the move is accepted and the opponents response is autoplayed. If the move played is incorrect, an error message is displayed. </P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> Show Game List</P>\r
-</B><P>Shows or hides the list of games generated by the last <U>Load Game</U>LoadGame command.</P>\r
-<B><SUP><P>K#</SUP> Edit Tags</P>\r
-</B><P>Lets you edit the PGN (portable game notation) tags for the current game. After editing, the tags must still conform to the PGN tag syntax:</P><DIR>\r
-\r
-</FONT><FONT FACE="Courier New" SIZE=2><P><BR>\r
-<tag-section> ::= <tag-pair> <tag-section><BR>\r
- <empty><BR>\r
-<tag-pair> ::= [ <tag-name> <tag-value> ]<BR>\r
-<tag-name> ::= <identifier><BR>\r
-<tag-value> ::= <string></P></DIR>\r
-\r
-</FONT><FONT FACE="Arial" SIZE=2><P>See the PGN Standard for full details. Here is an example:</P><DIR>\r
-\r
-</FONT><FONT FACE="Courier New" SIZE=2><P><BR>\r
-[Event "Portoroz Interzonal"]<BR>\r
-[Site "Portoroz, Yugoslavia"]<BR>\r
-[Date "1958.08.16"]<BR>\r
-[Round "8"]<BR>\r
-[White "Robert J. Fischer"]<BR>\r
-[Black "Bent Larsen"]<BR>\r
-[Result "1-0"]</P></DIR>\r
-\r
-</FONT><FONT FACE="Arial" SIZE=2><P>Any characters that do not match this syntax are silently ignored. Note that the PGN standard requires all games to have at least the seven tags shown above. Any that you omit will be filled in by WinBoard with </FONT><FONT FACE="Courier New" SIZE=2>"?"</FONT><FONT FACE="Arial" SIZE=2> (unknown value) or </FONT><FONT FACE="Courier New" SIZE=2>"-"</FONT><FONT FACE="Arial" SIZE=2> (inapplicable value).</P>\r
-<B><SUP><P>K#</SUP> Edit Comment</P>\r
-</B><P>Adds or modifies a comment on the current position. Comments are saved by <U>Save Game</U>SaveGame and are displayed by <U>Load Game</U>LoadGame, <U>Forward</U>Forward, and <U>Backward</U>Backward.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>K#</SUP> Enter Username</P>\r
-</B></FONT><FONT SIZE=2 COLOR="#008000"><P>Allows you to type the name of the human player, which will appear in the PGN header and in the window title.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> Pause</P>\r
-</B><P>Pauses updates to the board, and if you are playing against a local chess engine, also pauses your clock. To continue, select Pause again, and the display will automatically update to the latest position. The <B>P</B> (or <B>C</B>) button is equivalent to selecting Pause.</P>\r
-<P>If you select Pause when you are playing<A NAME="WHATSelSavT"></A> <A NAME="fWHATtopic">against</A> a chess engine and it is not your move, the chess engines clock will continue to run and it will eventually make a move, at which point both clocks will stop. Since board updates are paused, however, you will not see the move until you exit from Pause mode (or select <U>Forward</U>Forward). This behavior is meant to simulate adjournment with a sealed move.</P>\r
-<P>If you select Pause while you are in <B>examine</B> mode on ICS, you can step backward and forward in the current history of the examined game without affecting the other examiners or observers. Select Pause again to reconnect yourself to the current state of the game on ICS.</P>\r
-<P>If you select Pause while you are loading a game, the game stops loading. You can load more moves one at a time by selecting <U>Forward</U>Forward, or resume automatic loading by selecting Pause again.</P>\r
-<B><P> </P>\r
-<SUP><P>K#$+</SUP> Action Menu</P>\r
-</B><P>Most of these commands are available in chess server mode only.</P>\r
-<B><SUP><P>K#</SUP> Accept</P>\r
-</B><P>Accepts a pending match offer. If there is more than one offer pending, you will have to type in a more specific command instead of using this menu choice.</P>\r
-<B><SUP><P>K#</SUP> Decline</P>\r
-</B><P>Declines a pending offer (match, draw, etc.). If there is more than one offer pending, you will have to type in a more specific command instead of using this menu choice.</P>\r
-<B><SUP><P>K#</SUP> Rematch</P>\r
-</B><P>Issues the ICS <B>rematch</B> command, which asks for another game against your last opponent with the same time control and rule set.</P>\r
-<B><SUP><P>K#</SUP> Call Flag</P>\r
-</B><P>Calls your opponent's flag, claiming a win on time, or claiming a draw if you are both out of time. You can also call your opponent's flag by clicking on his clock.</P>\r
-<B><SUP><P>K#</SUP> Draw</P>\r
-</B><P>Offers a draw to your opponent, accepts a pending draw offer from your opponent, or claims a draw by repetition or the 50-move rule, as appropriate.</P>\r
-<B><SUP><P>K#</SUP> Adjourn</P>\r
-</B><P>Asks your opponent to agree to adjourning the current game, or agrees to a pending adjournment offer from your opponent. You continue an adjourned ICS game by challenging the same player again with the ICS <B>match</B> command.</P>\r
-<B><SUP><P>K#</SUP> Abort</P>\r
-</B><P>Asks your opponent to agree to abort the current game, or agrees to a pending abort offer from your opponent. An aborted ICS game ends immediately without affecting either player's rating.</P>\r
-<B><SUP><P>K#</SUP> Resign</P>\r
-</B><P>Resigns the game to your opponent.</P>\r
-<B><SUP><P>K#</SUP> Stop Observing</P>\r
-</B><P>Ends your participation in observing a game, by issuing the ICS <B>unobserve</B> command.</P>\r
-<B><SUP><P>K#</SUP> Stop Examining</P>\r
-</B><P>Ends your participation in observing a game, by issuing the ICS <B>unobserve</B> command.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#ff0000"><P>K#</SUP> Adjudicate To White</P>\r
-</B><P>End the current game and stop participating engine. The result will appear in the PGN as a win for white.</P>\r
-<B><SUP><P>K#</SUP> Adjudicate To Black</P>\r
-</B><P>Same as above, but game will appear as a win for black.</P>\r
-<B><SUP><P>K#</SUP> Adjudicate Draw</P>\r
-</B><P>Same as above, but game will appear as a draw.</P>\r
-<B><P> </P>\r
-</FONT><SUP><FONT FACE="Arial" SIZE=2><P>K#$+</SUP> Step Menu</P>\r
-<SUP><P>K#</SUP> Type In Move</P>\r
-</B><P>Pops up a dialog box, into which you can type moves in standard algebraic chess notation. (You can also get this dialog box by simply starting to type over the chessboard, except in ICS mode, where such typing is redirected into the ICS interaction window.)</P>\r
-<B><SUP><P>K#</SUP> Backward</P>\r
-</B><P>Steps backward through a series of remembered moves. The <B><</B> button is equivalent to selecting Backward.In most modes, Backward only lets you look back at old positions; it does not retract moves. This is the case if you are playing against a chess engine, playing or observing a game on the ICS, or loading a game. If you select Backward in any of these situations, you will not be allowed to make a different move. Use <U>Retract Move</U>RetractMove or <U>Edit Game</U>EditGame if you want to change past moves.</P>\r
-<P>If you are examining a game on the ICS, the behavior of Backward depends on whether WinBoard<I> </I>is in <U>Pause</U>Pause mode. If Pause mode is off, Backward issues the ICS command<B> backward</B>, which backs up everyone's view of the game and allows you to make a different move. If Pause mode is on, Backward only backs up your local view.</P>\r
-<B><SUP><P>K#</SUP> Forward</P>\r
-</B><P>Steps forward through a series of remembered moves (undoing the effect of <U>BackwardBackward</U>) or through a game file. The <B>></B> button is equivalent.</P>\r
-<P>If you are examining a game on the ICS, the behavior of Forward depends on whether WinBoard<I> </I>is in <U>Pause</U>Pause mode. If Pause mode is off, Forward issues the ICS command<B> forward</B>, which moves everyone's view of the game forward along the current line. If Pause mode is on, Forward only moves your local view forward, and it will not go past the position the game was in when you paused.</P>\r
-<B><SUP><P>K#</SUP> Back to Start</P>\r
-</B><P>Jumps backward to the first remembered position in the game. The <B><< </B>button is equivalent.</P>\r
-<P>In most modes, Back to Start only lets you look back at old positions; it does not retract moves. This is the case if you are playing against a chess engine, playing or observing a game on the ICS, or loading a game. If you select Back to Start in any of these situations, you will not be allowed to make a different move. Use <U>Retract Move</U>RetractMove or <U>Edit Game</U>EditGame if you want to change past moves; or use <U>Reset</U>Reset to start a new game.</P>\r
-<P>If you are examining a game on the ICS, the behavior of Back to Start depends on whether WinBoard<I> </I>is in <U>Pause</U>Pause mode. If Pause mode is off, Backward issues the ICS command <B>backward 999999</B>, which backs up everyone's view of the game to the start and allows you to make different moves. If Pause mode is on, Back to Start only backs up your local view.</P>\r
-<B><SUP><P>K#</SUP> Forward to End</P>\r
-</B><P>Jumps forward to the last position in the game. The <B>>></B> button is equivalent.</P>\r
-<P>If you are examining a game on the ICS, the behavior of Forward to End depends on whether WinBoard<I> </I>is in <U>Pause</U>Pause mode. If Pause mode is off, Forward to End issues the ICS command <B>forward 999999</B>, which moves everyone's view of the game forward to the end of the current line. If Pause mode is on, Forward to End only moves your local view forward, and it will not go past the position the game was in when you paused.</P>\r
-<B><SUP><P>K#</SUP> Revert</P>\r
-</B><P>If you are examining a game on the ICS, issues the ICS command <B>revert</B>.</P>\r
-<B><SUP><P>K#</SUP> Truncate Game</P>\r
-</B><P>Discards all remembered moves of the game beyond the current position. Puts WinBoard into <U>Edit Game</U>EditGame mode if it was not there already.</P>\r
-<B><SUP><P>K#</SUP> Move Now</P>\r
-</B><P>Forces the chess engine to move immediately. May not work with all chess engines.</P>\r
-<B><SUP><P>K#</SUP> Retract Move</P>\r
-</B><P>Retracts your last move.</P>\r
-<P>In chess engine mode, you can do this only after the chess engine has replied to your move. If the chess engine is still thinking, use <U>Move Now</U>MoveNow first.</P>\r
-<P>In ICS mode, Retract Move issues the command <B>takeback 1 </B>or <B>takeback 2</B>, depending on whether it is your opponent's move or yours.</P>\r
-<B><P> </P>\r
-<SUP><P>K#$+</SUP> Options Menu</P>\r
-<SUP><P>K#</SUP> <U>Flip View</P>\r
-</B></U><P>Inverts your view of the chessboard.</P>\r
-<P>If you are playing a game on the ICS, the board is always oriented at the start of the game so that your pawns move from the bottom of the window towards the top. Otherwise, the starting position is determined by the <U>flipView</U>flipViewOption command line option.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>K#</SUP> <U>Swap Clocks</P>\r
-</B></U><P>Interchanges the position of the white and black clocks on the screen. Intended for manually-operated computer-computer games, where the monitor is standing to the side of the playing board, to make sure that the operator sees the time of his own machine on his side of the table. Note that it is possible to adjust the clocks in steps of one minute, by left- (decrement) or right-clicking (increment) it with the mouse in "Edit Game" mode. (Clicking the clocks in other modes is interpreted as claiming the flag.)</P>\r
-</FONT><B><U><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP>General</P>\r
-</U><SUP><P>K#</SUP> Always On Top</P>\r
-</B><P>If this option is on, WinBoard sets its chessboard to be a <I>topmost</I> window, meaning that it always appears on top of all ordinary windows on the screen.</P>\r
-<B><SUP><P>K#</SUP> Always Queen</P>\r
-</B><P>If Always Queen is off, WinBoard brings up a dialog box whenever you move a pawn to the last rank, asking what piece you want to promote it to. If the option is on, your pawns are always promoted to queens. Your opponent can still underpromote, however.</P>\r
-<B><SUP><P>K#</SUP> Animate Dragging</P>\r
-</B><P>If Animate Dragging is on while you are dragging a piece with the mouse, an image of the piece follows the mouse cursor. If Animate Dragging is off, there is no visual feedback while you are</P>\r
-<P>dragging a piece, but if Animate Moving is on, the move will be animated when it is complete.</P>\r
-<B><SUP><P>K#</SUP> Animate Moving</P>\r
-</B><P>If Animate Moving is on, all piece moves are animated. An image of the piece is shown moving from the old square to the new square when the move is completed (unless the move was already animated by Animate Dragging). If Animate Moving is off, a moved piece instantly disappears from its old square and reappears on its new square when the move is complete.</P>\r
-<B><SUP><P>K#</SUP> Auto Flag</P>\r
-</B><P>If this option is on and one player runs out of time before the other, WinBoard will automatically call his flag, claiming a win on time. In ICS mode, Auto Flag will only call your opponent's flag, not yours, and the ICS may award you a draw instead of a win if you have insufficient mating material. On most chess servers, you can now do<B> set autoflag 1 </B>instead and have the server call the flag. In local chess engine mode, WinBoard may call either player's flag and will not take material into account.</P>\r
-</FONT><B><SUP><FONT SIZE=2><P>K#</SUP> Auto Flip View</P>\r
-</B><P>If this option is on when you</FONT><FONT FACE="Arial" SIZE=2> start a game, the board will be automatically oriented so that your pawns move from the bottom of the window towards the top.</P>\r
-</FONT><B><SUP><FONT SIZE=2><P>K#</SUP> Auto Raise Board</P>\r
-</B><P>If thisautoFlipViewOption option is on, whenever a new game begins, the chessboard window will be deiconized (if necessary) and raised to the top of the stack of windows on your screen.</P>\r
-<B><SUP><P>K#</SUP>Blindfold</P>\r
-</B><P>If Blindfold is on, WinBoard displays a blank board. Moves can still be entered with the mouse, either by dragging the (invisible) piece or clicking the starting and ending square. You can also enter your move by typing it on the keyboard</FONT><FONT FACE="Arial" SIZE=2>.</P>\r
-<B><SUP><P>K#</SUP> Highlight Dragging</P>\r
-</B><P>If Highlight Dragging is on while you are dragging a piece with the mouse, the starting square and the square that the mouse cursor is over are highlighted. This option works even if Animate Dragging is off.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#ff0000"><P>K#</SUP> Extended PGN Info</P>\r
-</B><P>The PGN will contain the engine search depth, score and time for each move where the depth is non-zero, as a comment behind the move if this option is on. Works only when "Show Thinking" is enabled. The recorded time is the time reported by the engine.</P>\r
-<B><SUP><P>K#</SUP> Extra Info in Move History</P>\r
-</B><P>Same as above, but in move-history window. </P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> Highlight Last Move</P>\r
-</B><P>If Highlight Last Move is on, after a move is made, the starting and ending squares remain highlighted. In addition, after you use <U>Backward</U>Backward or <U>Back to Start</U>BackToStart, the starting and ending squares of the last move to be <I>unmade</I> are highlighted.</P>\r
-<B><SUP><P>K#</SUP> Periodic Updates</P>\r
-</B><P>If Periodic Updates is on, the Analysis window is updated every two seconds. If not, it is updated only when the best move found changes. The Analysis window currently works only with Crafty, and Periodic Updates may not work with all versions of Crafty.</P>\r
-<B><SUP><P>K#</SUP> Ponder Next Move</P>\r
-</B><P>If this option is off, the chess engine will think only when it is on move. If the option is on, the engine will also think while waiting for you to make your move.</P>\r
-<B><SUP><P>K#</SUP> Popup Exit Message</P>\r
-</B><P>If this option is on, when WinBoard wants to display a message just before exiting, it brings up a modal dialog box and waits for you to click OK before exiting. If the option is off, WinBoard prints exits immediately without showing the message. If <U>debugMode</U>debugMode is on, however, the message will appear in the debug log.</P>\r
-<B><SUP><P>K#</SUP> Popup Move Errors</P>\r
-</B><P>If this option is off, when you make an error in moving (such as attempting an illegal move or moving the wrong color piece), the error message is displayed in the message area. If the option is on, move errors are displayed in small popup windows like other errors. You can dismiss an error popup either by clicking its OK button or by clicking anywhere on the board, including downclicking to start a move.</P>\r
-<B><SUP><P>K#</SUP> Show Button Bar</P>\r
-</B><P>If Show Button Bar is on, WinBoard displays on-screen <U>buttons</U>BUTTONS to step forward, backward, or pause the game. If it is off, the buttons are hidden, making the message line wider.</P>\r
-<B><SUP><P>K#</SUP> Show Coords</P>\r
-</B><P>If Show Coords is on, WinBoard displays algebraic coordinates along the board's left and bottom edges. </P>\r
-<B><SUP><P>K#</SUP> Show Thinking</P>\r
-</B><P>If this option is set, WinBoard displays the chess engines current search depth and its notion of the score and best line of play from the current position as it is thinking. The score indicates how many pawns ahead (or if negative, behind) the engine thinks it is. In matches between two machines, the score is prefixed by W or B to indicate whether it is showing White's thinking or Black's.</P>\r
-<B><SUP><P>K#</SUP> Test Legality</P>\r
-</B><P>If Test Legality is on, WinBoard tests whether the moves you enter with the mouse or read from game files are legal, and displays an error if they are not. Turn this option off if you are playing a chess variant that WinBoard does not understand. (Bughouse, suicide, and wild variants where the king may castle after starting on the <B>d</B> file are generally supported with Test Legality on. </FONT><FONT FACE="Arial" SIZE=2 COLOR="#008000">The same holds for variants with non-FIDE pieces, like shatranj, xangqi, shogi, gothic, capablanca, courier, knightmate: WinBoard knows how all pieces occurring in those variants move. Falcon, cylinder and berolina are only partly supported, though, and the latter two should definitely be played with legality testing off, and falcon uses a wildcard piece for the Falcons, so it considers any move of them legal, but might miss checkmates that involve a Falcon. So you should not play it with claim verification switched on.</FONT><FONT FACE="Arial" SIZE=2>)</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#ff0000"><P>K#</SUP> Hide Thinking from Human</P>\r
-</B><P>An alternative to suppressing the Thinking Output in the display above the board by switching "Show Thinking" off, but doing it in a way that still allows the extended PGN info to be recorded.</P>\r
-<B><SUP><P>K#</SUP> Highlight Move with Arrow</P>\r
-</B><P>A big, fat arrow is drawn between the start and target field of the last move, so you cannot possibly miss it. </P>\r
-</FONT><B><U><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP>Board</P>\r
-</U><SUP><P>K#</SUP> Board Size</P>\r
-</B><P>Determines how large the board will be and what fonts and piece bitmaps will be used. On a Titanic board the piece bitmaps are 129x129 pixels, on Colossal 116x116, Giant 108x108, Huge 95x95, Big 87x87, Large 80x80, Bulky 72x72, Medium 64x64, Moderate 58x58, Average 54x54, Middling 49x49, Mediocre 45x45, Small 40x40, Slim 37x37, Petite 33x33, Dinky 29x29, Teeny 25x25, and Tiny 21x21. The smaller boards have no system menu, but you can minimize or close them from the File menu.</P>\r
-<P>You can also change the board size by dragging the window edges or corners with the mouse. The board will snap to the largest size that fits into the area you outline.</P>\r
-</FONT><FONT SIZE=2 COLOR="#008000"><P>Note that only sizes Bulky, Middling and to a lesser extent Petite have built-in bitmaps for the non-FIDE- pieces. Archbishop, Chancellor and the wildcard Lance exist in all sizes from Petite to Bulky, though. In size Moderate, variant shogi uses the traditional Japanese piece representation.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> Board Colors</P>\r
-</B><P>Lets you change the colors WinBoard is using to draw the board and pieces.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>K#</SUP> All White</P>\r
-</B><P>Uses the representation of the white pieces (a filled-in black outline) also for the black pieces (where you can fill them with another color to distinguish them). If you do not choose a very dark color for the black pieces, they look very ugly without outline, and using this option can fix that.</P>\r
-<B><SUP><P>K#</SUP> Flip Black</P>\r
-</B><P>Displays the black pieces upside down (or the white pieces in "Flip View"). This is useful in Shogi, when you want to use the traditional Japanese representation of the pieces.</P>\r
-</FONT><B><U><FONT SIZE=2><P> </P>\r
-</FONT><SUP><FONT FACE="Arial" SIZE=2 COLOR="#ff0000"><P>K#</SUP>Engine</P>\r
-</U><SUP><P>K#</SUP> Ponder Next Move,Show Thinking, Hide Thinking from Human and Periodic Updates</P>\r
-</B><P>Duplicates of the controls in the "General" option menu.</P>\r
-<B><SUP><P>K#</SUP> Adjudicate Draw Moves</P>\r
-</B><P>Adjudicate a draw after the given number of moves, to prevent games from dragging on forever if two engines in a dead-drawn position, conspire to avoid 50-move draws. This and the folowing options are only active in "Two Machines" mode.</P>\r
-<B><SUP><P>K#</SUP> Adjudicate Loss Threshold</P>\r
-</B><P>Adjudicate the game as a loss when both engines agree that the (negative) score is below the given threshold for the duration of 6 consecutive plies.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>K#</SUP> Verify Claims</P>\r
-</B><P>Verify result claims made by engines when they terminate the game. If needed, correct the results to a loss for the engine making the false claim. Needs "Test Legality" to be on in order to work.</P>\r
-<B><SUP><P>K#</SUP> Detect Mates</P>\r
-</B><P>Let WinBoard detect checkmate and stalemate, even before the engine gets the chance to claim it. Useful with buggy engines, that exit without a claim, or just hang. Needs "Test Legality" to be on in order to work.</P>\r
-<B><SUP><P>K#</SUP> Draw if Insufficient Material</P>\r
-</B><P>If this option is on, WinBoard will recognize KBKB positions with equally colored Bishops, KBK, KNK, and KK positions as draws, even before the engine can claim them. Needs "Test Legality" to be on in order to work.</P>\r
-<B><SUP><P>K#</SUP> Adjudicate Trivial Draws</P>\r
-</B><P>If this option is on, KBKB (with B on unlike color), KBKN, KNKN, KNNK, KRKR and KQKQ positions will be adjudicated draw after 6 ply. For KQKQ this is not really sound, and in the future it might be taken out of this option. But as long as tablebase adjudications are not implemented, it seems best to group this end-game with the trivial draws. Needs "Test Legality" to be on in order to work.</P>\r
-<B><SUP><P>K#</SUP> N-Move Rule</P>\r
-</B><P>Here you can set the number of reversible moves (non-pawn, non-capture) after which WinBoard should adjudicate a game as draw. Engine draw claims are always consider ed valid after 50 moves (in the context of "Verify Claims"), but you can set a different value here to either give the engine more leeway if it wants to play on, or test its claiming capabilities, or set it to a smaller value if you are impatient.</P>\r
-<B><SUP><P>K#</SUP> N-fold Repetition Rule</P>\r
-</B><P>Here you can set the number of repetitions of the same position that should occur in order for WinBoard to adjudicate the game as draw. Engine draw claims are always consider ed valid after 3 repetitions (in the context of "Verify Claims") , but you can set a different value here to either give the engine more leeway if it wants to play on, or test its claiming capabilities, or set it to 2 if you are impatient. (Do not set it to 1!)</P>\r
-</FONT><B><U><FONT SIZE=2><P> </P>\r
-</FONT><SUP><FONT FACE="Arial" SIZE=2 COLOR="#ff0000"><P>K#</SUP>UCI</P>\r
-</U><SUP><P>K#</SUP> Polyglot Directory</P>\r
-</B><P>If WinBoard knows where to find Polyglot, you can install UCI engines as if they were WinBoard engines, and WinBoard will automatically invoke Polyglot as an adapter to run them.</P>\r
-<B><SUP><P>K#</SUP> Hash Size, EGTB Path, EGTB Cache Size, Opening Book</P>\r
-</B><P>These are options that UCI engines expect to be specified. If future extensions of WinBoard protocol allow native WinBoard engines to request similar information, it might be used for these engines as well.</P>\r
-</FONT><B><U><FONT SIZE=2><P> </P>\r
-<SUP><P>K#</SUP>ICS</P>\r
-</U></FONT><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> Auto Comment</P>\r
-</B><P>If Auto Comment is on, any remarks made on ICS while you are observing or playing a game are recorded as a comment on the current move. This includes remarks made with the ICS commands <B>say, tell, whisper, </B>and <B>kibitz</B>. Limitation: remarks that you type yourself are not </P>\r
-<P>recognized; WinBoard scans only the output from ICS, not the input you type to it.</P>\r
-<B><SUP><P>K#</SUP> Auto Observe</P>\r
-</B><P>If Auto Observe is on and you add a player to your <B>gnotify</B> list on ICS, WinBoard will automatically observe all of that player's games, unless you are doing something else (such as observing or playing a game of your own) when one starts. On most chess servers, you can now do <B>follow <I>player</B></I> instead, and the server will automatically observe all of <B><I>players</B></I> games.</P>\r
-<B><SUP><P>K#</SUP> Get Move List</P>\r
-</B><P>If Get Move List is on, whenever WinBoard<I> </I>receives the first board of a new ICS game (or a different ICS game from the one it is currently displaying), it retrieves the list of past moves from the server. You can then review the moves with the Forward and Backward commands or save them with Save Game. You might want to turn off this option if you are observing several blitz games at once, to keep from wasting time and network bandwidth fetching the move lists over and over. If you turn this option on while a game is in progress, WinBoard<I> </I>immediately fetches the current move list.</P>\r
-<B><SUP><P>K#</SUP> Local Line Editing</P>\r
-</B><P>If Local Line Editing is <B>on</B>, your machine handles echoing, backspacing, etc., for the characters that you type into the ICS Interaction window. Output is forwarded to the ICS only when you hit Enter.The Enter key produces a newline character, also known as Ctrl+J, \n, LF, linefeed, or decimal ASCII code 10. In this mode you can force a control character into the edit buffer by preceding it with Ctrl+Q ("quote"); however, the edit buffer will not accept certain control characters even when they are quoted in this way. You can force a control character to be sent immediately to ICS, bypassing the edit buffer, by preceding it with Ctrl+S ("send").</P>\r
-<P>WinBoard keeps a history of lines you recently typed in Local Line Editing mode. You can bring back old lines by pressing the cursor up key in the text entry box. Press the cursor down key to go back down to newer lines.</P>\r
-<P>If Local Line Editing is <B>off</B>, all characters are sent to ICS as you type them. The Enter key produces a carriage return character, also known as Ctrl+M, \r, CR, or decimal ASCII code 13. Use Ctrl+Backspace if you need the ASCII DEL character. You can enter any character code by holding down the Alt key and typing its decimal value (always beginning with 0) on the numeric keypad; this is a little-known standard feature of Windows.</P>\r
-<P>In both modes, if WinBoard<I>s </I>internal telnet protocol implementation is active, it translates all \n characters to the standard telnet end-of-line sequence \r\n just before sending them out to ICS; see <U>telnetProgram</U>telnetProgram.</P>\r
-<P>It is generally not a good idea to turn off this option while connected to ICS. If you are tempted to do so because everything you type is being echoed an extra time, see the paragraph about extra echoes under <U>LIMITATIONS</U>LIMITATIONS below.</P>\r
-<B><SUP><P>K#</SUP> Quiet Play</P>\r
-</B><P>If Quiet Play is on, WinBoard will automatically issue an ICS <B>set shout 0</B> command whenever you start a game and a <B>set shout 1</B> command whenever you finish one. Thus you will not be distracted by shouts from other ICS users while playing.</P>\r
-<B><SUP><P>K#</SUP> Premove</P>\r
-</B></FONT><FONT SIZE=2><P>Premove allows you to play a move on the board before you have received your opponents move. This move is highlighted on the board using the <U>Premove HighlightpremoveHighlightColor</U> color, and is sent to the ICS as soon as your opponents move is received. To cancel a premove, either click twice on the piece that was premoved or premove an illegal move.</P>\r
-<P>This group of controls allows you to set the following options: <U>premove</U>premove, <U>premoveWhite</U>premoveWhite, <U>premoveWhiteText</U>premoveWhiteText, <U>premoveBlack</U>premoveBlack, <U>premoveBlackText</U>premoveBlackText.</P>\r
-<B><SUP><P>K#</SUP>ICS Alarm</P>\r
-</B><P>When <B>icsAlarm</B> is set to True, the <U>alarm sound</U>soundIcsAlarm is played when your clock counts down to <U>icsAlarmTime</U>icsAlarmTime seconds. For ICS games with time controls that include an increment, the alarm will sound each time the clock counts down to the <U>icsAlarmTime</U>icsAlarmTime.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> ICS Interaction Colors</P>\r
-</B><P>Lets you change the colors and type styles that WinBoard uses to distinguish between different types of messages in the ICS Interaction window. The types distinguished are: shout, sshout, channel 1 tell, other channel tell, kibitz (or whisper), personal tell (or new message notification), challenge, request (including abort, adjourn, draw, pause, and takeback), seek, and normal (all other messages).</P>\r
-<B><SUP><P>K#</SUP> <U>Fonts</P>\r
-</B></U><P>Lets you change the fonts WinBoard is using. The clock font, message font and coordinates font are specific to each board size. The tags font, comments font and ICS Interaction font are not dependent on the current size of the board. The "Revert to Defaults" button will reset the clock font, message font and coordinates font for the current board size, and will set the tags font, message font and Ics Interaction font for all board sizes.</P>\r
-<B><SUP><P>K#</SUP> <U>Sounds</P>\r
-</B></U><P>Lets you change the sounds that WinBoard plays for various events.</P>\r
-<SUP><P>K#</SUP>If the Move sound is on, WinBoard alerts you by playing a sound after each of your opponent's moves (or after every move if you are observing a game on the Internet Chess Server). The sound is not played after moves you make or moves read from a saved game file. If you turn on the Move sound when using WinBoard with the Internet Chess Server, you will probably want to give the <B>set bell 0</B> command to the ICS. Otherwise the ICS will send a bell character after every move (not just yours), causing WinBoard to play the ICS Bell sound too. Alternatively, you could turn off the ICS Bell sound in WinBoard, but that might cause you to miss ICS alerts for other interesting events.</P>\r
-<P>The other sound events correspond directly to the types of messages that the <U>ICS Interaction Colors</U>ICSInteractionColors option knows how to colorize.</P>\r
-<B><SUP><P>K#</SUP> <U>Game List</P>\r
-</B></U><P>Lets you select which information is displayed in the Game List window.</P>\r
-<B><SUP><P>K#</SUP> <U>Communications</P>\r
-</B></U><P>Lets you change the communication port parameters when the <U>internetChessServerComPort</U>internetChessServerComPort option is in use.</P>\r
-<B><SUP><P>K#</SUP> <U>Load Game</P>\r
-</B></U><P>Lets you change options used while loading games (<U>timeDelay</U>timeDelay option).</P>\r
-<B><SUP><P>K#</SUP> <U>Save Game</P>\r
-</B></U><P>Lets you change options used for saving games (<U>autoSaveGames</U>autoSaveGames, <U>oldSaveStyle</U>oldSaveStyle, and <U>saveGameFile</U>saveGameFile options).</P>\r
-<B><SUP><P>K#</SUP> <U>Time Control</P>\r
-</B></U><P>Lets you change the time control to be used in games against a chess engine. Two types of timing are available.</P>\r
-<P>With conventional chess clocks, each player begins with his clock set to the <U>timeControl</U>timeControl period. When both players have made <U>movesPerSession</U>movesPerSession moves, a new time control period begins. The time in the new period is added to whatever time the players have left on their clocks.</P>\r
-<P>With incremental clocks, each player is given an initial time allotment, and a <U>timeIncrement</U>timeIncrement is added to his clock after every move. The increment may be zero, in which case the entire game must be finished within the initial time allotment.</P>\r
-<B><SUP><P>K#</SUP> <U>Save Settings Now</P>\r
-</B></U><P>Save the current option settings to a file, along with the current window sizes and positions, to be automatically reloaded next time WinBoard is run. See <U>Settings</U>Settings for the fine points.</P>\r
-<B><SUP><P>K#</SUP> <U>Save Settings on Exit</P>\r
-</B></U><P>If this option is on, the current settings are automatically saved when WinBoard exits, as with Save Settings Now.</P>\r
-<B><P> </P>\r
-<SUP><P>K#</B></SUP></FONT><FONT FACE="Arial" SIZE=1> </FONT><B><SUP><FONT FACE="Arial" SIZE=2>$+</SUP> Help Menu</P>\r
-<SUP><P>K#</SUP> Help Contents</P>\r
-</B><P>Brings up this help file, starting at the Contents page.</P>\r
-<B><SUP><P>K#</SUP> Help Index</P>\r
-</B><P>Brings up this help file, starting at the Index/Find dialog.</P>\r
-<B><SUP><P>K#</SUP> How to Use Help</P>\r
-</B><P>Brings up the standard help file that explains how to use Windows Help.</P>\r
-<B><SUP><P>K#</SUP> Hint</P>\r
-</B><P>Displays a move hint from the chess engine.</P>\r
-<B><SUP><P>K#</SUP> Book</P>\r
-</B><P>Displays a list of possible moves from the chess engines opening book. The first column gives moves, the second column gives one possible response for each move, and the third column shows the number of lines in the book that include the move from the first column. If you select this option and nothing happens, the engine is out of its book or does not support the book command.</P>\r
-<B><SUP><P>K#</SUP> About WinBoard</P>\r
-</B><P>Displays the WinBoard version number.</P>\r
-<B><P> </P>\r
-<SUP><P>K#</B></SUP></FONT><FONT FACE="Arial" SIZE=1> </FONT><B><SUP><FONT FACE="Arial" SIZE=2>$+</SUP>ICS Interaction Context Menu</P>\r
-</B><P>To see this menu, press the right mouse button anywhere in the output (upper) pane of the ICS Interaction window. Pressing the right mouse button in the input (lower) pane gives a standard editing context menu, not described here. Use the <B>help</B> command on ICS to learn what these commands mean.</P>\r
-<P>You can customize the lower part of this menu (below the Paste option) by setting the <U>icsMenu</U>icsMenu option. The easiest way to accomplish this is to edit your <U>settings file</U>settings with Notepad or another plain text editor. Sorry, there is no graphical user interface for customizing the menu.</P>\r
-<B><SUP><P>K#</SUP> Copy and Paste</P>\r
-</B><P>Copies the current selection to the clipboard, then pastes it to the input box. As a shortcut to this function, you can press the middle mouse button (if you have one), or Shift plus the right mouse button.</P>\r
-<B><SUP><P>K#</SUP> Copy</P>\r
-</B><P>Copies the current selection to the clipboard.</P>\r
-<B><SUP><P>K#</SUP> Paste</P>\r
-</B><P>Pastes the clipboard contents to the input box.</P>\r
-<B><SUP><P>K#</SUP> Who</P>\r
-</B><P>Sends the command "who"<B><I> </B></I>to ICS.</P>\r
-<B><SUP><P>K#</SUP> Players</P>\r
-</B><P>Sends the command "players"<B><I> </B></I>to ICS.</P>\r
-<B><SUP><P>K#</SUP> Games</P>\r
-</B><P>Sends the command "games"<B><I> </B></I>to ICS.</P>\r
-<B><SUP><P>K#</SUP> Sought</P>\r
-</B><P>Sends the command "sought"<B><I> </B></I>to ICS.</P>\r
-<B><SUP><P>K#</SUP> Tell (name)</P>\r
-</B><P>Inserts "tell <I>name </I>"<B><I> </B></I>into the input box. The string <I>name </I>is the current selection if it is not empty. Otherwise <I>name </I>is the word surrounding the mouse position, where a "word" is a string of letters, digits, or hyphens (-), such as an ICS user handle or game number.</P>\r
-<B><SUP><P>K#</SUP> Message (name)</P>\r
-</B><P>Inserts "message <I>name </I>"<B><I> </B></I>into the input box, where <I>name</I> is as defined above.</P>\r
-<B><SUP><P>K#</SUP> Finger (name)</P>\r
-</B><P>Sends the command "finger <I>name</I>"<B><I> </B></I>to ICS, where <I>name</I> is as defined above. </P>\r
-<B><SUP><P>K#</SUP> Vars (name)</P>\r
-</B><P>Sends the command "vars <I>name</I>"<B><I> </B></I>to ICS, where <I>name</I> is as defined above. </P>\r
-<B><SUP><P>K#</SUP> Observe (name)</P>\r
-</B><P>Sends the command "observe <I>name</I>"<B><I> </B></I>to ICS, where <I>name</I> is as defined above. Here <I>name</I> can be either a user handle or a game number.</P>\r
-<B><SUP><P>K#</SUP> Match (name)</P>\r
-</B><P>Sends the command "match <I>name</I>"<B><I> </B></I>to ICS, where <I>name</I> is as defined above. </P>\r
-<B><SUP><P>K#</SUP> Play (name)</P>\r
-</B><P>Sends the command "play <I>name</I>"<B><I> </B></I>to ICS, where <I>name</I> is as defined above. Here <I>name</I> can be either a user handle or a seek ad number.</P>\r
-<B><P> </P>\r
-<SUP><P>K#$+</B></SUP></FONT><FONT FACE="Arial" SIZE=1> </FONT><B><FONT FACE="Arial" SIZE=2>BUTTONS</P>\r
-<SUP><P>K</SUP> <<</P>\r
-</B><P>Same as <U>Back to Start</U>BacktoStart.</P>\r
-<B><SUP><P>K</SUP> <</P>\r
-</B><P>Same as <U>Backward</U>Backward.</P>\r
-<B><SUP><P>K</SUP> P</P>\r
-</B><P>Same as <U>Pause</U>Pause. The button label changes to <B>C</B> while WinBoard is pausing.</P>\r
-<B><SUP><P>K</SUP> ></P>\r
-</B><P>Same as <U>Forward</U>Forward.</P>\r
-<B><SUP><P>K</SUP> >></P>\r
-</B><P>Same as <U>Forward to End</U>ForwardtoEnd.</P>\r
-<B><P> </P>\r
-<SUP><P>KK</SUP> <SUP>#</SUP> <SUP>$</SUP> <SUP>+</SUP> COMMAND LINE OPTIONS</P>\r
-</B><P>All WinBoard options can be set either on the command line (if you start WinBoard by typing into an MSDOS Prompt box), in the Properties/Shortcut/Target box of a Windows shortcut, in a <U>settings file</U>settings, or in the Additional Options box of the WinBoard startup dialog. Exactly the same syntax is used in all four places. Most options can also be set from the menus and saved using <U>Save Settings Now</U>SaveSettings or <U>Save Settings on Exit</U>SaveSettingsOnExit, so most people will not need to read this section.</P>\r
-<P>Most options have two names, a long one that is easy to read and a short one that is easy to type. To turn on a boolean (true/false) option <I>opt</I>, you can just give its short name preceded by a minus sign or slash (-<I>opt</I> or /<I>opt</I>); to turn one off, prefix the short name by an "x" or an extra minus sign (-x<I>opt</I> or /-<I>opt</I>). To set any other kind of option, or to set a boolean option using its long name, give the value after the name, separated by a space, colon, or equal sign. (-<I>opt</I> 23 or /<I>option</I>:true). If a string option contains spaces or special characters, enclose it in double quotes and use the \ quoting convention of C to name the special characters. Alternatively, you can enclose a string value in curly braces (/opt={string}), as long as the value does not contain a closing curly brace. If a filename option contains spaces, enclose it in either single or double quotes. In filename options, the \ character is not treated specially, so use single quotes around the outside of the value if it has double quotes inside (and vice versa).</P>\r
-<P>When you start WinBoard, it will pop up the Startup dialog box unless you provide sufficient options on the command line for WinBoard to determine which major mode to be in and what engines to use or chess server to connect to. To bypass this box, you must at minimum give one of the three options <U>/cp</U>cp, /<U>ics</U>ics, or /<U>ncp</U>ncp. If you give the /cp option, you must also give the /<U>fcp</U>fcp and /<U>scp</U>scp options. If you give the /ics option, you must also give the /<U>icshost</U>icshost option.</P><DIR>\r
-\r
-<U><P>Chess Engine Options</U>ChessEngineOptions</P>\r
-<U><P>Internet Chess Server Options</U>InternetChessServerOptions</P>\r
-<U><P>Load and Save Options</U>LoadAndSaveOptions</P>\r
-<U><P>User Interface Options</U>UserInterfaceOptions</P>\r
-<U><P>Other Options</U>OtherOptions</P>\r
-<B><P> </P></DIR>\r
-\r
-<SUP><P>K$#+</SUP> Chess Engine Options</P>\r
-<SUP><P>K#</SUP>/cp</B> or<B> /xcp</B>,<B> </B>or<B> <SUP>K#</SUP>/chessProgram <I>true|false</P>\r
-</B></I><P>If true, puts WinBoard in chess engine mode. In this mode, you can play against a chess program running on your PC or use it as an analysis partner.</P>\r
-<B><SUP><P>K#</SUP>/tc </B>or<B> <SUP>K#</SUP>/timeControl <I>minutes[:seconds]</P>\r
-</B></I><P>Each player begins with his clock set to the timeControl period. Default: 5 minutes. The additional options movesPerSession and timeIncrement are mutually exclusive.</P>\r
-<B><SUP><P>K#</SUP>/mps </B>or<B> <SUP>K#</SUP>/movesPerSession <I>moves</P>\r
-</B></I><P>When both players have made movesPerSession moves, a new timeControl period is added to both clocks. Default: 40 moves.</P>\r
-<B><SUP><P>K#</SUP>/inc </B>or<B> <SUP>K#</SUP>/timeIncrement <I>seconds</P>\r
-</B></I><P>If this option is specified, movesPerSession is ignored. Instead, after each player's move, timeIncrement seconds are added to his clock. Use -timeIncrement 0 if you want to require the entire game to be played in one timeControl period, with no increment. Default: -1, which specifies movesPerSession mode.</P>\r
-<B><SUP><P>K#</SUP> /clock </B>or <B>/xclock</B>, or<B> <SUP>K#</SUP> /clockMode <I>true|false</P>\r
-</B></I><P>Determines whether or not to display the chess clocks. If clockMode is False, the clocks are not shown, but the side that is to play next is still highlighted. Also, unless searchTime is set, the chess engine still keeps track of the clock time and uses it to determine how fast to make its moves.</P>\r
-<B><SUP><P>K#</SUP> /st </B>or<B> <SUP>K#</SUP> /searchTime <I>minutes[:seconds]</P>\r
-</B></I><P>Tells the chess engine to spend at most the given amount of time searching for each of its moves. Without this option, the engine chooses its search time based on the number of moves and amount of time remaining until the next time control. Setting this option also sets clockMode to False.</P>\r
-<B><SUP><P>K#</SUP> /depth </B>or<B> <SUP>K#</SUP> /searchDepth <I>number</P>\r
-</B></I><P>Tells the chess engine to look ahead at most the given number of moves when searching for a move to make. Without this option, the engine chooses its search depth based on the number of moves and amount of time remaining until the next time control. With the option, the engine will cut off its search early if it reaches the specified depth.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>K#</SUP> /firstNPS <I>number</P>\r
-</I><SUP><P>K#</SUP> /secondNPS <I>number</P>\r
-</B></I><P>Tells the chess engine to use an internal time standard based on its node count, rather then wall-clock time, to make its time decisions. The time in virtual seconds should be obtained by dividing the node count through the given <I>number</I>, like the number was a rate in nodes per second. WinBoard will manage the clocks in accordance with this, relying on the number of nodes reported by the engine in its thinking output. If <I>number</I> equals zero, it can obviously bnot be used to convert nodes to seconds, and the time reported by the engine is used to decrement the WinBoard clock. The engine is supposed to report in CPU time it uses, rather than wall-clock time in this mode. Tis option can provide fairer conditions fo engine-engine matches on heavily loaded machines, or with very fast games (where the wall clock is too inaccurate). "Show Thinking" must be on for this option to work. Not many engines might support this yet!</P>\r
-<B><SUP><P>K#</SUP> /firstTimeOdds <I>factor</P>\r
-</I><SUP><P>K#</SUP> /secondTimeOdds <I>factor</P>\r
-</B></I><P>Reduces the time given to the mentioned engine by the given <I>factor</I>. If pondering is off, the effect is indistinguishable from what would happen if the engine was running on a <I>factor</I> times slower machine.</P>\r
-<B><SUP><P>K#</SUP> /timeOddsMode <I>mode</P>\r
-</B></I><P>This option determines how the case is handled when both engines have a time-odds handicap. If mode=1, the engine that gets the most time will always get the nominal time, as specified by the time-control options, and its opponents time is normalized similarly. If mode=0, both play with reduced time.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> /ponder</B> or <B>/xponder</B>,<B> </B>or<B> <SUP>K#</SUP> /ponderNextMove <I>true|false</P>\r
-</B></I><P>Sets the <U>Ponder Next Move</U>ponderNextMoveCmd option. Default: True.</P>\r
-<B><SUP><P>K#</SUP> /thinking</B> or <B>/xthinking</B>,<B> </B>or<B> <SUP>K#</SUP> /showThinking <I>true|false</P>\r
-</B></I><P>Sets the <U>Show Thinking</U>showThinkingCmd option. Default: False.</P>\r
-<B><SUP><P>K#</SUP> /periodic </B>or <B>/xperiodic</B>, or<B> <SUP>K#</SUP> /periodicUpdates <I>true|false</P>\r
-</B></I><P>Sets the <U>Periodic Updates</U>periodicUpdatesCmd option. Default: True.</P>\r
-<B><SUP><P>K#</SUP> /mg </B>or<B> <SUP>K#</SUP> /matchGames <I>n</P>\r
-</B></I><P>Automatically runs an <B><I>n</B>-</I>game match between two chess engines, with alternating colors. If the <U>loadGameFile</U>loadGameFile or <U>loadPositionFile</U>loadPositionFile option is set, WinBoard will start each game with the given opening moves or the given position; otherwise, the games will start with the standard initial chess position. If the <U>saveGameFile</U>saveGameFile option is set, a move record for the match will be appended to the specified file. If the <U>savePositionFile</U>savePositionFile option is set, the final position reached in each game of the match will be appended to the specified file. When the match is over, WinBoard will display the match score and exit. Default: 0 (do not run a match).</P>\r
-<B><SUP><P>K#</SUP> /mm </B>or <B>/xmm</B>, or<B> <SUP>K#</SUP> /matchMode <I>true|false</P>\r
-</B></I><P>Provided for backward compatibility. If true and matchGames=0, sets matchGames=1.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>K#</SUP> /matchPause <I>number</P>\r
-</B></I><P>Sets the length of the pause between games in match mode to <I>number</I> msec. Default value is 10000, i.e. 10 sec. (If this pause is too short, engines not implementing ping will sometimes send the last move of their previous game only when a new game has started, at which time the move is illegal, and causes them to forfeit the game.)</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> /fd </B>or<B> <SUP>K#</SUP> /firstDirectory <I>dir<BR>\r
-</I><SUP>K#</SUP> /sd </B>or<B> <SUP>K#</SUP> /secondDirectory <I>dir</I><SUP> </SUP><BR>\r
-<SUP>K#</SUP> /fcp </B>or<B> <SUP>K#</SUP> /firstChessProgram <I>command<BR>\r
-</I><SUP>K#</SUP> /scp </B>or<B> <SUP>K#</SUP> /secondChessProgram <I>command</I><SUP> </P>\r
-</B></SUP><P>Names of the chess engines and working directories in which they are to be run. The second chess engine is started only in Two Machines (match) mode. These arguments are parsed as filenames; that is, the \ character is interpreted literally, not as a C-style escape.</P>\r
-<P>The <I>dir</I> argument specifies the initial working directory for the chess engine. It should usually be the directory where the engine and its working files are installed. If <I>dir</I> is not an absolute pathname, it is interpreted relative to the directory from which WinBoard.exe itself was loaded. The <I>dir</I> argument is ignored if the chess engine is being run on a remote machine (see firstHost and secondHost below). The default value for <I>dir </I>"", meaning that the chess engine is expected to be installed in the same directory as WinBoard.</P>\r
-<P>The <I>command</I> argument is actually the command line to the chess engine, so if the engine itself needs command line arguments, you can include them by enclosing <I>command</I> in single or double quotes. If the engine name or an engine argument has a space in it, use single quotes around the whole <I>command, </I>and inside them use double quotes around each item that contains spaces. If the engine name has more than one period in it (for example, </FONT><FONT FACE="Courier New" SIZE=2>QChess1.5.exe</FONT><FONT FACE="Arial" SIZE=2>), you must include the "</FONT><FONT FACE="Courier New" SIZE=2>.exe</FONT><FONT FACE="Arial" SIZE=2>" extension; otherwise you can leave it out. The default value for <I>command</I> is "", which brings up the startup dialog to ask which engines you want.</P>\r
-<P>Examples:</P><DIR>\r
-<DIR>\r
-<DIR>\r
-\r
-</FONT><FONT FACE="Courier New" SIZE=1><P>WinBoard /cp /fd="C:\Program Files\Crafty" /fcp=WCrafty-15.12.exe /scp=GNUChess</P>\r
-<P>WinBoard /cp /fd="C:\Miracle Games" /fcp='"Miracle Chess.exe" /wow' /scp=GNUChess</P></DIR>\r
-</DIR>\r
-</DIR>\r
-\r
-</FONT><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>The basic rule is thus that what is inside the quotes delimiting the argument to /fcp and /scp, all goes to the engine, and is ignored by WinBoard. WinBoard 4.3.13 and later, however, knows an exception to this: If, within the quotes, the word WBopt appears, everything that follows this word will be interpreted as a WinBoard argument, in stead of being passed to the engine on startup of the latter. (The WBopt itself is also not passed to the engine.) This possibility of hiding WinBoard arguments in the engine command is provided in order to create options that follow the engine in a tournament, when a tournament manager like PSWBTM is used to invoke WinBoard. Because, in order to apply to a given engine, some options need to know if they apply to first or second engine, which might vary during the tournament, options hidden inside the engine command-line can contain %s which will be replaced at the time the option is used by first or second, as applicable.</P>\r
-<P>Examples:</P><DIR>\r
-<DIR>\r
-<DIR>\r
-\r
-</FONT><FONT FACE="Courier New" SIZE=1 COLOR="#008000"><P>WinBoard /cp /fd="C:\Engines\Crafty" /fcp="WCrafty-15.12 WBopt /%sTimeOdds=2" /scp=GNUChess</P></DIR>\r
-</DIR>\r
-</DIR>\r
-\r
-</FONT><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>Meaning that Crafty will have to play with half the time GNUChess will get.</P>\r
-</FONT><FONT FACE="Courier New" SIZE=1><P> </P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> /fh </B>or<B> <SUP>K#</SUP> /firstHost <I>host<BR>\r
-</I><SUP>K#</SUP> /sh </B>or<B> <SUP>K#</SUP> /secondHost <I>host</P>\r
-</B></I><P>Hosts on which the chess engines are to run. The default for each is "localhost". If you specify another host, WinBoard<I> </I>uses <U>rsh</U>rsh to run the chess program there. The /fd and /sd flags do not work in conjunction with these flags; if you need a remote chess engine to run somewhere other than your default login directory on the remote machine, you will have to include a "cd" command in the argument to /fcp or /scp.</P>\r
-<B><SUP><P>K#</SUP> /firstInitString </B>or <B>/initString <I>string<BR>\r
-</I><SUP>K#</SUP> /secondInitString <I>string</P>\r
-</B></I><P>The strings that are sent to initialize the chess engines. Default: "new\nrandom\n". The "\n" sequences represent newlines. You can type "\n" on the command line or in a <U>settings file</U>settings, and WinBoard will convert it to a newline.</P>\r
-<P>All chess engines require the "new" command to start a new game.</P>\r
-<P>You can remove the "random" command if you like; including it causes GNU Chess to randomize its move selection slightly so that it doesn't play the same moves in every game. Even without "random", GNU Chess randomizes its choice of moves from its opening book. You can also try adding other commands to the initString; see the GNU Chess documentation (gnuchess.txt) for details. Crafty ignores the "random" command; see its documentation for the commands it accepts.</P>\r
-<B><SUP><P>K#</SUP> /firstComputerString <I>string<BR>\r
-</I><SUP>K#</SUP> /secondComputerString <I>string</P>\r
-</B></I><P>If the chess engine is playing against another computer program (whether locally or on a chess server), by default the command "computer\n" is sent to it. Some chess engines change their playing style when they receive this command. If you do not want the engine to know when it is playing another computer, you can set the string to "".</P>\r
-</FONT><FONT SIZE=2 COLOR="#008000"><P>Note that the computer string is sent to the engine after most other initialization commands, and is thus ideal for hiding a WinBoard-protocol command in that should be sent only to one engine, when the WinBoard option that normally specifies this command cannot be differentiated by engine, but s always sent to both engines. E.g. if you want one of the engines to ponder, and the other not. Because it is sent last, in can overrule earlier commands.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> /fb </B>or <B>/xfb</B>, or<B> <SUP>K#</SUP> /firstPlaysBlack <I>true|false</P>\r
-</B></I><P>In games between two chess programs, the firstChessProgram normally plays white. (This is a change from earlier versions of WinBoard.) If this option is True, firstChessProgram plays black. In a multi-game match, this option affects the colors only for the first game; they still alternate in subsequent games.</P>\r
-<B><SUP><P>K#</SUP>/reuse<SUP> </B></SUP>or <B>/xreuse</B>, or <B><SUP>K#</SUP>/reuseFirst<I> true|false<BR>\r
-</I><SUP>K#</SUP>/reuse2<SUP> </B></SUP>or <B>/xreuse2</B>, or <B><SUP>K#</SUP>/reuseSecond<I> true|false</P>\r
-</B></I><P>If this option is True (the default), WinBoard<I> </I>uses the same chess engine process repeatedly when playing multiple games. If the option is False, WinBoard kills off the chess engine after every game and starts a fresh one for the next game. Starting a fresh chess engine can be slow, so it is not recommended. However, some chess engines may not work properly when reused, such as versions of Crafty earlier than 12.0.</P>\r
-<B><SUP><P>K#</SUP>/firstProtocolVersion <I>ver<BR>\r
-</I><SUP>K#</SUP>/secondProtocolVersion <I>ver</P>\r
-</B></I><P>This option specifies which version of the chess engine communication protocol to use. By default, version-number is 2. In version 1, the "protover" command is not sent to the engine; since version 1 is a subset of version 2, nothing else changes. Other values for version-number are not supported.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#ff0000"><P>K#</SUP>/firstScoreAbs<I> true|false<BR>\r
-</I><SUP>K#</SUP>/secondScoreAbs<I> true|false</P>\r
-</B></I><P>If this option is true, the score reported by the engine is taken to be that in favor of white, even when the engine plays black. Important when winboard uses the score for adjudications, or in PGN reporting. This can be a useful option in combination with WBopt in the engine command-line, see under /fcp.</P>\r
-<B><SUP><P>+K$#</SUP> UCI engine support</P>\r
-<SUP><P>K#</SUP> /fUCI </B>or<B> <SUP>K#</SUP> /firstIsUCI<I> true|false</P>\r
-</I><SUP><P>K#</SUP> /sUCI </B>or<B> <SUP>K#</SUP> /secondIsUCI<I> true|false</P>\r
-</B></I><P>Indicates if the mentioned engine executable file is an UCI engine,</FONT><FONT SIZE=2 COLOR="#ff0000"> ICSLogon and should be run with the aid of the Polyglot adapter rather than directly. WinBoard will then pass the other UCI options and engine name to Polyglot through a .ini temporary file ceated for the purpose.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#ff0000"><P>K#</SUP> /PolyglotDir <I>filename</P>\r
-</B></I><P>Gives the name of the folder in which Polyglot is installedICSLogon.</P>\r
-<B><SUP><P>K#</SUP> /usePolyglotBook <I>true|false</P>\r
-</B></I><P>Specifies if the Polygot book should be usedICSLogon.</P>\r
-<B><SUP><P>K#</SUP> /PolyglotBook <I>filename</P>\r
-</B></I><P>Gives the filename of the opening book that Polyglot should useICSLogon.</P>\r
-<B><SUP><P>K#</SUP> /fNoOwnBookUCI </B>or<B> <SUP>K#</SUP> /firstHasOwnBookUCI<I> true|false</P>\r
-</I><SUP><P>K#</SUP> /sNoOwnBookUCI </B>or<B> <SUP>K#</SUP> /secondHasOwnBookUCI<I> true|false</P>\r
-</B></I><P>Indicates if the mentioned engine lacks an opening book or not</FONT><FONT SIZE=2 COLOR="#ff0000">.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#ff0000"><P>K#</SUP> /defaultHashSize <I>number</P>\r
-</B></I><P>Sets the size of the hash table to <I>number</I> MegaBytesICSLogon.</P>\r
-<B><SUP><P>K#</SUP> /defaultCacheSizeEGTB <I>number</P>\r
-</B></I><P>Sets the size of the EGTB cache to <I>number</I> MegaBytesICSLogon.</P>\r
-<B><SUP><P>K#</SUP> /defaultPathEGTB <I>filename</P>\r
-</B></I><P>Gives the name of the folder where the end-game tablebases are installedICSLogon.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>+K$#</SUP> Internet Chess Server Options</P>\r
-<SUP><P>K#</SUP> /ics </B>or <B>/xics</B>, or<B> <SUP>K#</SUP> /internetChessServerMode<I> true|false</P>\r
-</B></I><P>Connect with an Internet Chess Server to play chess against its other users, observe games they are playing, or review games that have recently finished. See <U>ICS Client</U>ICSClient Default: False.</P>\r
-<P>You can create a script file containing ICS commands that WinBoard will type in for you whenever you connect to the ICS. See <U>ICS Logon</U>ICSLogon.</P>\r
-<B><SUP><P>K#</SUP> /icshost </B>or<B> <SUP>K#</SUP> /internetChessServerHost <I>hostname</P>\r
-</B></I><P>The host name or numeric address of the Internet Chess Server to connect to when in ICS mode. The default is the empty string, which causes WinBoard to pop up a menu of known ICS sites. The file ics-addresses.txt in the WinBoard distribution gives slightly more information on these sites. It includes their numeric addresses, which you can use if your site does not have a working name server.</P>\r
-<B><SUP><P>K#</SUP> /icsport </B>or<B> <SUP>K#</SUP> /internetChessServerPort <I>portnumber</P>\r
-</B></I><P>The port number to use when connecting to a chess server in ICS mode. Default: 5000.</P>\r
-<B><SUP><P>K#</SUP>/icshelper <I>program</P>\r
-</B></I><P>An external helper program used to communicate with the chess server. Typically <SUP>K</SUP><I>timestamp</I> for the ICC (chessclub.com) or <SUP>K</SUP><I>timeseal</I> for FICS (freechess.org, eics.daimi.aau.dk, etc.). This option is shorthand for "/useTelnet /telnetProgram <I>program</I>"<B>.</P>\r
-<SUP><P>K#</SUP>/telnet</B> or <B>/xtelnet</B>,<B> </B>or<B> <SUP>K#</SUP>/useTelnet<I> true|false</P>\r
-</B></I><P>This option is poorly named; it should be called <B>/useHelper</B>. If set to True, it instructs WinBoard to use an external helper program to communicate with the ICS, as specified by the telnetProgram option. The external program must be a pure console application that can communicate with WinBoard through pipes; the Windows telnet application is not suitable. If the option is False (the default), WinBoard communicates with the ICS by opening a Winsock TCP socket and using its own internal implementation of the telnet protocol.</P>\r
-<B><SUP><P>K#</SUP>/gateway <I>hostname</P>\r
-</B></I><P>If this option is set to a host name, WinBoard uses <U>rsh</U>rsh to run the telnetProgram remotely on the given host to communicate with the Internet Chess Server instead of using its own internal implementation of the telnet protocol. See the <U>FIREWALLS</U>FIREWALLS section below for an explanation of when this option is useful.</P>\r
-<B><SUP><P>K#</SUP>/telnetProgram <I>program</P>\r
-</B></I><P>This option is poorly named; it should be called <B>/helperProgram</B>. It gives the name of the remote or external helper program to be used with the gateway or useTelnet option. The default is "telnet". The telnet program is invoked with the value of internetChessServer as the first argument and the value of internetChessServerPort as the second argument on its command line.</P>\r
-<B><SUP><P>K#</SUP>/icscom </B>or<B> <SUP>K#</SUP>/internetChessServerComPort <I>name</P>\r
-</B></I><P>If this option is set, WinBoard communicates with the Internet Chess Server using a serial communication port instead of a network connection. Use this option if your machine is not connected to a network (not even via SLIP or PPP), but you do have Internet access through another machine by dialing in using a modem or by connecting directly to a serial terminal port. Example:</P>\r
-</FONT><FONT FACE="Courier New" SIZE=1><P>WinBoard /ics /icscom:com1</P>\r
-</FONT><FONT FACE="Arial" SIZE=2><P>After you start WinBoard in this way, type whatever modem commands are necessary to dial out to your Internet provider and log in. You may need to turn off <U>Local Line Editing</U>LocalLineEditing on the Options menu while typing commands to the modem, but turn it on again afterwards. Then telnet to the ICS, using a command like "telnet chessclub.com 5000". Important: See the paragraph in the <U>LIMITATIONS</U>LIMITATIONS section below about extra echoes.</P>\r
-<B><SUP><P>K#</SUP> /comPortSettings</B> <B><I>"dataRate,dataBits,parity,stopBits,flow"</P>\r
-</B></I><P>This option allows serial port parameters to be set from the command line or a settings file. The values are simply filled in to the <U>Communications</U>Communications dialog.</P>\r
-<B><SUP><P>K#</SUP> /icslogon </B>or<B> <SUP>K#</SUP> /internetChessServerLogonScript <I>filename</P>\r
-</B></I><P>This option lets you change the name used for the <U>ICS Logon</U>ICSLogon file. Default: "ICS.ini". The filename is interpreted relative to WinBoard's installation directory (the directory containing WinBoard.exe).</P>\r
-<B><SUP><P>K#</SUP> /autocomm </B>or <B>/xautocomm</B>, or<B> <SUP>K#</SUP> /autoComment<I> true|false</P>\r
-</B></I><P>Sets the <U>Auto Comment</U>AutoCommentCmd option. Default: False.</P>\r
-<B><SUP><P>K#</SUP> /autoflag</B> or <B>/xautoflag</B>,<B> </B>or<B> <SUP>K#</SUP> /autoCallFlag<I> true|false</P>\r
-</B></I><P>Sets the <U>Auto FlagAutoFlag</U> option. Default: False.</P>\r
-<B><SUP><P>K#</SUP> /autobs</B> or <B>/xautobs</B>,<B> </B>or<B> <SUP>K#</SUP> /autoObserve<I> true|false</P>\r
-</B></I><P>Sets the <U>Auto Observe</U>autoObserveCmd option. Default: False.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>K#</SUP> /autoKibitz</P>\r
-</B><P>Kibitzes the engines last thinking output (depth, score, time, speed, PV) to the ICS in zippy mode. Show Thinking must be on for this option to work.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> /moves</B> or <B>/xmoves</B>,<B> </B>or<B> <SUP>K#</SUP> /getMoveList<I> true|false</P>\r
-</B></I><P>Sets the <U>Get Move List</U>getMoveListCmd option. Default: True.</P>\r
-<B><SUP><P>K#</SUP> /edit<SUP> </B></SUP> or <B>/xedit</B>,<B> </B>or<B> <SUP>K#</SUP> /localLineEditing<I> true|false</P>\r
-</B></I><P>Sets the <U>Local Line Editing</U>localLineEditing option. Default: True.</P>\r
-<B><SUP><P>K#</SUP> /quiet </B>or <B>/xquiet</B>, or<B> <SUP>K#</SUP> /quietPlay<I> true|false</P>\r
-</B></I><P>Sets the <U>Quiet Play</U>quietPlayCmd option. Default: False</P>\r
-<B><SUP><P>K#</SUP> /blindfold <I>true|false</P>\r
-</B></I><P>Sets the <U>Blindfold</U>BlindfoldCmd option. Default: False</P>\r
-<B><SUP><P>K#</SUP>/pre </B>or<B> <SUP>K#</SUP>/xpre</B>, or<B> <SUP>K#</SUP> /premove<I> true|false</P>\r
-</B></I><P>Sets the <U>Premove</U>PremoveCmd option. If set to True, the premove feature is enabled. If set to False, premove is disabled and the other <U>Premove</U>PremoveCmd settings are ignored. Default: False.</P>\r
-<B><SUP><P>K#</SUP>/prewhite </B>or<B> <SUP>K#</SUP>/xprewhite</B>, or <B><SUP>K#</SUP> /premoveWhite<I> true|false</P>\r
-</I><SUP><P>K#</SUP> /premoveWhiteText<I> movetext</P>\r
-</B></I><P>If <B>premoveWhite</B> is set to True and you are playing white in an ICS game, the text specified by the <B>premoveWhiteText</B> option is sent to the ICS as soon as the game starts. These options can be set from the <U>Premove</U>PremoveCmd section of the <U>ICS OptionsICSOptions</U> dialog box. The default for <B>premoveWhite</B> is False.</P>\r
-<B><SUP><P>K#</SUP>/preblack </B>or<B> <SUP>K#</SUP>/xpreblack</B>, or <B><SUP>K#</SUP> /premoveBlack<I> true|false</P>\r
-</I><SUP><P>K#</SUP> /premoveBlackText<I> movetext</P>\r
-</B></I><P>If <B>premoveBlack</B> is set to True and you are playing black in an ICS game, the text specified by the <B>premoveBlackText</B> option is sent to the ICS as soon as the first move is received from your opponent, even if you make a different premove on the board before the first white move is received. These options can be set from the <U>Premove</U>PremoveCmd section of the <U>ICS OptionsICSOptions</U> dialog box. The default for <B>premoveBlack</B> is False.</P>\r
-</FONT><B><SUP><FONT SIZE=2><P>K#</SUP>/alarm </B>or<B> <SUP>K#</SUP>/xalarm</B>, or <B><SUP>K#</SUP>/icsAlarm <I>true|false</P>\r
-</I><SUP><P>K#</SUP>/icsAlarmTime <I>milliseconds</P>\r
-</B></I><P>When <B>icsAlarm</B> is set to True, the <U>alarm sound</U>soundIcsAlarm is played when your clock counts down to <B>icsAlarmTime</B> seconds. For ICS games with time controls that include an increment, the alarm will sound each time the clock counts down to the <B>icsAlarmTime</B>. The <B>icsAlarmTime</B> can be set by selecting <U>ICS Alarm</U>ICSAlarm from the <U>ICS optionsICSOptions</U> dialog. The default is 5 seconds.</P>\r
-</FONT><B><FONT FACE="Arial" SIZE=2><P> </P>\r
-<SUP><P>+K$#</B></SUP></FONT><FONT FACE="Arial" SIZE=1> </FONT><B><FONT FACE="Arial" SIZE=2>Load and Save Options</P>\r
-<SUP><P>K#</SUP> /lgf </B>or<B> <SUP>K#</SUP> /loadGameFile <I>filename</I><BR>\r
-<SUP>K#</SUP> /lgi </B>or<B> <SUP>K#</SUP> /loadGameIndex <I>N</P>\r
-</B></I><P>If loadGameFile is set, WinBoard reads the specified game file at startup. You can leave out the name of this option and give just the file name, which is handy if you want to configure WinBoard as a game viewer with a browser such as the Windows Explorer or Netscape. The filename is interpreted relative to WinBoard's initial working directory. The filename "-" specifies the standard input. If there is more than one game in the file, WinBoard pops up a menu of the available games, with entries based on their PGN tags. If loadGameIndex is set to <I>N, </I>the menu is suppressed and the <I>N</I>th game found in the file is loaded immediately.</P>\r
-<B><SUP><P>K#</SUP> /td </B>or<B> <SUP>K#</SUP> /timeDelay <I>seconds</P>\r
-</B></I><P>Time delay between moves during <U>Load Game</U>LoadGame. Fractional seconds are allowed; try 0.4. A time delay value of -1 tells WinBoard not to step through game files automatically. Default: 1 second.</P>\r
-<B><SUP><P>K#</SUP> /sgf </B>or<B> <SUP>K#</SUP> /saveGameFile <I>filename</P>\r
-</B></I><P>If this option is set, WinBoard appends a record of every game played to the specified file. The filename is interpreted relative to WinBoard's initial working directory. The filename "-" specifies the standard output.</P>\r
-<B><SUP><P>K#</SUP> /autosave</B> or <B>/xautosave</B>,<B> </B>or<B> <SUP>K#</SUP> /autoSaveGames<I> true|false</P>\r
-</B></I><P>If this option is True, at the end of every game WinBoard prompts you for a filename and appends a record of the game to the file you specify. Ignored if saveGameFile is set. Default: False.</P>\r
-<B><SUP><P>K#</SUP> /lpf </B>or<B> <SUP>K#</SUP> /loadPositionFile <I>filename</I><BR>\r
-<SUP>K#</SUP> /lpi </B>or<B> <SUP>K#</SUP> /loadPositionIndex <I>N</P>\r
-</B></I><P>If loadPositionFile is set, WinBoard loads the specified position file at startup. The filename is interpreted relative to WinBoard's initial working directory. The filename "-" specifies the standard input. If loadPositionIndex is set to <I>N</I>, the <I>N</I>th position found in the file is loaded; otherwise the first is loaded.</P>\r
-<B><SUP><P>K#</SUP> /spf </B>or<B> <SUP>K#</SUP> /savePositionFile <I>filename</P>\r
-</B></I><P>If this option is set, WinBoard appends the final position reached in every game played to the specified file. The filename is interpreted relative to WinBoard's initial working directory. The file name "-" specifies the standard output.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#ff0000"><P>K#</SUP> /pgnExtendedInfo <I>true|false</P>\r
-</B></I><P>If this option is set, WinBoard saves depth, score and time used for each move that the engine found as a comment in the PGN file.</P>\r
-<B><SUP><P>K#</SUP> /pgnEventHeader <I>string</P>\r
-</B></I><P>Sets the name used in the PGN event tag to <I>string</I>.</P>\r
-<B><SUP><P>K#</SUP> /saveOutOfBookInfo <I>true|false</P>\r
-</B></I><P>Include the information on how the engine(s) game out of its opening book in a special annotator tag with the PGN file.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> /oldsave </B>or <B>/xoldsave</B>, or<B> <SUP>K#</SUP> /oldSaveStyle<I> true|false</P>\r
-</B></I><P>If this option is False (the default), WinBoard saves games in PGN (portable game notation) and positions in FEN (Forsythe-Edwards notation). If the option is True, a save style that is compatible with older versions of WinBoard (and of xboard) is used instead.</P>\r
-<B><SUP><P>K#</SUP> /debug</B> or <B>/xdebug</B>,<B> </B>or<B> <SUP>K#</SUP> /debugMode<I> true|false</P>\r
-</B></I><P>Writes debugging information to the file "WinBoard.debug", including all commands sent to the chess engine, all output received from it, and all commands sent to ICS. You can press Ctrl+Alt+F12 to turn this option on or off while WinBoard is running. Each time you turn it on, any existing debug file is overwritten.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#ff0000"><P>K#</SUP> /debugFile<SUP> </SUP> <I>filename</I> </B>or<B> <SUP>K#</SUP> /nameOfDebugFile<I> filename</P>\r
-</B></I><P>Sets the name of the file to which WinBoard saves debug information (including all communication to and from the engines).</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>K#</SUP> /engineDebugOutput<SUP> </SUP> <I>number</P>\r
-</B></I><P>Specifies how WinBoard should handle unsollicited output from the engine, with respect to saing it in the debug file. The output is further (hopefully) ignored. If <I>numbe</I>r=0, WinBoard rfrains from writing such spurious output to the debug file. If<I> numbe</I>r=1, all engine output is written faithfully to the debug file. If <I> numbe</I>r=2, any protocol-violating line is prefixed with a # character, as the engine itself should have done if it wanted to submit info for inclusion in the debug file.</P>\r
-</FONT><FONT SIZE=2 COLOR="#008000"><P>This option is provided for the benefit of applications that use the debug file as a source of informtion, such as the broadcater of live games TLCV / TLCS. Such applications can be protected from spurious engine output that might otherwise confuse them.</P>\r
-</FONT><FONT SIZE=2><P> </P>\r
-</FONT><B><FONT FACE="Arial" SIZE=2><P> </P>\r
-<SUP><P>+K$#</B></SUP></FONT><FONT FACE="Arial" SIZE=1> </FONT><B><FONT FACE="Arial" SIZE=2>User Interface Options</P>\r
-</FONT><SUP><FONT FACE="Arial" SIZE=2 COLOR="#ff0000"><P>K#</SUP> /hideThinkingFromHuman<I> true|false</P>\r
-</B></I><P>Prevents the engine thinking output to appear in the display, without necessitating to suppress the sending of this information altogether (so it can still appear in the PGN).</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> /top </B>or <B>/xtop</B>, or<B> <SUP>K#</SUP> /alwaysOnTop<I> true|false</P>\r
-</B></I><P>Sets the <U>Always On Top</U>AlwaysOnTop option. Default: False.</P>\r
-<B><SUP><P>K#</SUP> /queen</B> or <B>/xqueen</B>,<B> </B>or<B> <SUP>K#</SUP> /alwaysPromoteToQueen<I> true|false</P>\r
-</B></I><P>Sets the <U>Always Queen</U>AlwaysQueen option. Default: False.</P>\r
-<B><SUP><P>K#</SUP>/drag</B> or <B>/xdrag</B>,<B> </B>or<B> <SUP>K#</SUP>/animateDragging<I> true|false</P>\r
-</B></I><P>Sets the <U>Animate Dragging</U>animateDragging option. Default: True.</P>\r
-<B><SUP><P>K#</SUP>/animate </B>or <B>/xanimate</B>, or<B> <SUP>K#</SUP>/animateMoving<I> true|false</P>\r
-</B></I><P>Sets the <U>Animate Moving</U>animateMoving option. Default: True.</P>\r
-<B><SUP><P>K#</SUP> /flip </B>or <B>/xflip</B>, or<B> <SUP>K#</SUP> /flipView<I> true|false</P>\r
-</B></I><P>If Auto Flip View is not set, or if you are observing but not participating in a game, then the positioning of the board at the start of each game depends on the flipView option. If flipView is False (the default), the board is positioned so that the white pawns move from the bottom to the top; if True, the black pawns move from the bottom to the top. In any case, the <U>Flip View</U>FlipView menu command can be used to flip the board after the game starts</P>\r
-</FONT><B><SUP><FONT SIZE=2><P>K#</SUP>/autoflip</B> or <B>/xautoflip</B>, or <SUP>K#</SUP><B>/autoFlipView <I>true|false</P>\r
-</B></I></FONT><FONT FACE="Arial" SIZE=2><P>Sets the <U>Auto Flip View</U>AutoFlipView option. Default: True.</P>\r
-</FONT><B><SUP><FONT SIZE=2><P>K#</SUP>/autoraise</B> or <B>/xautoraise</B>, or <SUP>K#</SUP><B>/autoRaiseBoard <I>true|false</P>\r
-</B></I></FONT><FONT FACE="Arial" SIZE=2><P>Sets the <U>Auto Raise Board</U>AutoFlipView option. Default: True.</P>\r
-<B><SUP><P>K#</SUP>/highdrag </B>or <B>/xhighdrag</B>, or<B> <SUP>K#</SUP>/highlightDragging <I>true|false</P>\r
-</B></I><P>Sets the <U>Highlight Dragging</U>highlightDragging option. Default: False.</P>\r
-<B><SUP><P>K#</SUP>/highlight </B>or <B>/xhighlight</B>, or<B> <SUP>K#</SUP>/highlightLastMove<I> true|false</P>\r
-</B></I><P>Sets the <U>Highlight Last Move</U>highlightLastMoveOpt option. Default: False.</P>\r
-<B><SUP><P>K#</SUP> /exit</B> or <B>/xexit</B>,<B> </B>or<B> <SUP>K#</SUP> /popupExitMessage<I> true|false</P>\r
-</B></I><P>Sets the <U>Popup Exit Message</U>popupExitMessageCmd menu option. Default: False.</P>\r
-<B><SUP><P>K#</SUP> /popup</B> or <B>/xpopup</B>,<B> </B>or<B> <SUP>K#</SUP> /popupMoveErrors<I> true|false</P>\r
-</B></I><P>Sets the <U>Popup Move Errors</U>popupMoveErrorsCmd menu option. Default: False.</P>\r
-<B><SUP><P>K#</SUP> /coords </B>or <B>/xcoords</B>, or<B> <SUP>K#</SUP> /showCoords<I> true|false</P>\r
-</B></I><P>Sets the <U>Show Coords</U>showCoords option. Default: False.</P>\r
-<B><SUP><P>K#</SUP> /legal </B>or <B>/xlegal</B>, or<B> <SUP>K#</SUP> /testLegality<I> true|false</P>\r
-</B></I><P>Sets the <U>Test Legality</U>testLegalityCmd option. Default: True.</P>\r
-<B><SUP><P>K#</SUP> /size </B>or<B> <SUP>K#</SUP> /boardSize <I>sizename</P>\r
-</B></I><P>Sets the <U>Board Size</U>BoardSizeCmd option. Also chooses which board size any following Font options will affect. The default is the largest size that will fit on your screen.</P>\r
-<B><SUP><P>K#</SUP>/wpc</B> or <SUP>K<B>#</SUP> /whitePieceColor <I>color<BR>\r
-</I><SUP>K#</SUP>/bpc </B>or <B><SUP>K#</SUP> /blackPieceColor <I>color<BR>\r
-</I><SUP>K#</SUP>/lsc </B>or<B><I> </I><SUP>K#</SUP> /lightSquareColor <I>color</I><SUP> </SUP><BR>\r
-<SUP>K#</SUP>/dsc </B>or<B> <SUP>K#</SUP> /darkSquareColor <I>color</I><SUP> </P>\r
-</B></SUP><P>Color specifications for white pieces, black pieces, light squares, and dark squares. Colors can be specified only by red/green/blue intensity, either in hexadecimal (as <I>#rrggbb</I>) or in decimal (as <I>rrr,ggg,bbb</I>). In the latter format, you must enclose the string in quotation marks if you leave spaces after the commas. The defaults are respectively #FFFFCC, #202020, #C8C365, and #77A26D. Available on the <U>Board Colors</U>BoardColors section of the <U>Board Options</U>BoardOptions dialog.</P>\r
-<P>If you are using a <SUP>K#</SUP> grayscale monitor, try setting the colors to:</P><DIR>\r
-\r
-</FONT><FONT FACE="Courier New" SIZE=2><P>-whitePieceColor:#FFFFFF<BR>\r
--blackPieceColor:#000000<BR>\r
--lightSquareColor:#CCCCCC<BR>\r
--darkSquareColor:#999999</P></DIR>\r
-\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP>/hsc </B>or<B> <SUP>K#</SUP> /highlightSquareColor <I>color</I><SUP> </SUP><BR>\r
-<SUP>K#</SUP>/phc </B>or <B><SUP>K#</SUP> /premoveHighlightColor <I>color</I><SUP> </P>\r
-</B></SUP><P>Color specifications for the <U>Highlight Last Move</U>HighlightLastMove and <U>Premove</U>PremoveCmd options, respectively. Colors can be specified only by red/green/blue intensity, either in hexadecimal (as <I>#rrggbb</I>) or in decimal (as <I>rrr,ggg,bbb</I>). In the latter format, you must enclose the string in quotation marks if you leave spaces after the commas. The defaults are respectively #FFFF00 and #FF0000, respectively.</P>\r
-<B><SUP><P>K#</SUP> /mono</B> or <B>/xmono</B>,<B> </B>or<B> <SUP>K#</SUP> /monoMode<I> true|false</P>\r
-</B></I><P>Determines whether WinBoard displays its pieces and squares in black and white (True) or color (False, the default). Available in the <U>Board Colors</U>BoardColors section of the <U>Board Options</U>BoardOptions dialog.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>K#</SUP> /flipBlack<I> true|false</P>\r
-</B></I><P>Determines whether WinBoard displays the black pieces upside down (or the white pieces in Flip View). Useful with Shogi with the traditional Japanese pieces, which are not distinguished by color but by orientation.</P>\r
-<B><SUP><P>K#</SUP> /allWhite<I> true|false</P>\r
-</B></I><P>Determines whether the white piece bitmaps will be used to display black pieces. The white pieces have a dark outline, which the black pieces lack. This makes the latter look vague if the color you give them is not very dark.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#ff0000"><P>K#</SUP> /renderPiecesWithFont <I>fontname</P>\r
-</B></I><P>Uses the named true-type font to render the pieces, rather than the built-in bitmaps. The font must be installed on your computer. If the name starts with a * it is ignored, allowing you to easily disable a font temporarily in the whinboard.ini file.</P>\r
-<B><SUP><P>K#</SUP> /fontPieceToCharTable <I>characterstring</P>\r
-</B></I><P>If font-based rendering of the pieces is used, this table specifies which character of the font alphabet should be used for which piece. The format of the character strings is the same as that of the argument of /pieceToCharTable.</P>\r
-<B><SUP><P>K#</SUP> /fontPieceSize <I>number</P>\r
-</B></I><P>The number gives the size of the piece, as a percentage of the square size.</P>\r
-<B><SUP><P>K#</SUP>/fontPieceBackColorWhite <I>color<BR>\r
-</I><SUP>K#</SUP>/fontPieceForeColorWhite <I>color<BR>\r
-</I><SUP>K#</SUP>/fontPieceBackColorBlack <I>color<BR>\r
-</I><SUP>K#</SUP>/fontPieceForeColorBlack <I>color</I><SUP> </P>\r
-</B></SUP><P>Color specifications for white pieces, black pieces that are generated with font-based rendering.</P>\r
-<B><SUP><P>K#</SUP> /liteBackTextureFile <I>filename</P>\r
-</I><SUP><P>K#</SUP> /darkBackTextureFile <I>filename</P>\r
-</B></I><P>The filename indicates a bitmap file that should be used to display the light or dark squares, allowing you to make boards that look like wood, marble, etc. A filename starting with * is ignored.</P>\r
-<B><SUP><P>K#</SUP> /liteBackTextureMode <I>number</P>\r
-</I><SUP><P>K#</SUP> /darkBackTextureMode <I>number</P>\r
-</B></I></FONT><FONT SIZE=2 COLOR="#ff0000"><P>The number indicates the way the files given in the background-texture options should be used to fill in the squares. Valid texture modes are 1 (default) and 2. In mode 1 the squares are taken from portions of the texture bitmap and copied without further processing. In mode 2, squares can also be rotated, mirrored and so on in order to provide a little more variety to the texture. The operations are selected at random so the board will look slightly different every time the program is run.<BR>\r
-</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#ff0000"><P>K#</SUP> /overideLineGap <I>number</P>\r
-</B></I><P>The number specifies the width, in pixels, of the grid lines used to separate the squares. If it is very small (like a single pixel), it becomes vey hard to see which squares are highlighted (to indicate the last move), as this highlighting is a color change of these grid lines. Highlighting the moves with an arrow is then recommended.</P>\r
-<B><SUP><P>#</SUP> /highlightMovesWithArrow <I>true|false</P>\r
-</B></I><P>If this option is true, a big, fat arrow is drawn to indicate the last move.</P>\r
-<B><SUP><P>#</SUP> /highlightArrowColor <I>color</P>\r
-</B></I><P>Specifies the color of the arrow that highlights the moves.</P>\r
-<B><SUP><P>K#</SUP> /evalHistoColorWhite <I>color</P>\r
-</I><SUP><P>K#</SUP> /evalHistoColorBlack <I>color</P>\r
-</B></I></FONT><FONT SIZE=2 COLOR="#ff0000"><P>Specifies the colors to be used to plot the white and black scores in the evaluation graph.<BR>\r
-</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> /colorShout<I> "effects color"<BR>\r
-</I><SUP>K#</SUP> /colorSShout <I>"effects color"<BR>\r
-</I><SUP>K#</SUP> /colorChannel1 <I>"effects color"</I><BR>\r
-<SUP>K#</SUP> /colorChannel <I>"effects color"</I><BR>\r
-<SUP>K#</SUP> /colorKibitz <I>"effects color"</I><BR>\r
-<SUP>K#</SUP> /colorTell <I>"effects color"</I><BR>\r
-<SUP>K#</SUP> /colorChallenge <I>"effects color"</I><BR>\r
-<SUP>K#</SUP> /colorRequest <I>"effects color"</I><BR>\r
-<SUP>K#</SUP> /colorSeek <I>"effects color"</I><BR>\r
-<SUP>K#</SUP> /colorNormal <I>"effects color"</P>\r
-</B></I><P>Select colors and effects to colorize messages in the ICS Interaction window. The effects may be any combination of <B>b</B>old, <B>i</B>talic, <B>u</B>nderline, and <B>s</B>trikeout. Colors are specified as for squares and pieces. Available on the <U>ICS Interaction Colors</U>ICSInteractionColors section of the <U>ICS Options</U>ICSOptions dialog. Limitation: On 256 color displays, Windows chooses the nearest solid color from the system palette, which will not always be close to the color you selected.</P>\r
-<B><SUP><P>K#</SUP> /colorBackground <I>color</P>\r
-</B></I><P>Sets the background color for the ICS Interaction window. Available on the <U>ICS Interaction Colors</U>ICSInteractionColors section of the <U>ICS Options</U>ICSOptions dialog.</P>\r
-<B><SUP><P>K#</SUP> /colorize<SUP> </B></SUP>or <B>/xcolorize</B>, or<B> <SUP>K#</SUP> /colorizeMessages<I> true|false</P>\r
-</B></I><P>If True, WinBoard colorizes messages in the ICS Interaction window with the colors listed above. Default: True. Available in the <U>ICS Interaction Colors</U>ICSInteractionColors section of the <U>ICS Options</U>ICSOptions dialog.</P>\r
-<B><SUP><P>K#</SUP> /clockFont "<I>fontname:size effects</I>"<BR>\r
-<SUP>K#</SUP> /messageFont "<I>fontname:size effects</I>"<BR>\r
-<SUP>K#</SUP> /coordFont "<I>fontname:size effects</I>"<BR>\r
-<SUP>K#</SUP> /tagsFont "<I>fontname:size effects</I>"<BR>\r
-<SUP>K#</SUP> /commentFont "<I>fontname:size effects</I>"<BR>\r
-<SUP>K#</SUP> /icsFont "<I>fontname:size effects</I>"</P>\r
-</B><P>The fonts used respectively for the clocks, the message display line, rank and file coordinate labels, the Edit Tags dialog, the Edit Comment dialog, and the ICS Interaction window. These options may be given more than once. Each occurrence affects the fonts for the current board size; that is, the size given in the last preceding /boardSize option, if any, or else the default size. The font size may contain a decimal point, and the effects may be any combination of <B>b</B>old, <B>i</B>talic, <B>u</B>nderline, and <B>s</B>trikeout. Example: </FONT><FONT FACE="Courier New" SIZE=1>/clockFont="Arial:20.0 bi".</FONT><FONT FACE="Arial" SIZE=2> Available on the <U>Fonts</U>Fonts menu.</P>\r
-<B><SUP><P>K#</SUP></FONT><FONT SIZE=2> /soundShout<I> sound<BR>\r
-</I></FONT><SUP><FONT FACE="Arial" SIZE=2>K#</SUP></FONT><FONT SIZE=2> /soundSShout <I>sound<BR>\r
-</I></FONT><SUP><FONT FACE="Arial" SIZE=2>K#</SUP></FONT><FONT SIZE=2> /soundChannel1 <I>sound</I><BR>\r
-</FONT><SUP><FONT FACE="Arial" SIZE=2>K#</SUP></FONT><FONT SIZE=2> /soundChannel <I>sound</I><BR>\r
-</FONT><SUP><FONT FACE="Arial" SIZE=2>K#</SUP></FONT><FONT SIZE=2> /soundKibitz <I>sound</I><BR>\r
-</FONT><SUP><FONT FACE="Arial" SIZE=2>K#</SUP></FONT><FONT SIZE=2> /soundTell <I>sound</I><BR>\r
-</FONT><SUP><FONT FACE="Arial" SIZE=2>K#</SUP></FONT><FONT SIZE=2> /soundChallenge <I>sound</I><BR>\r
-</FONT><SUP><FONT FACE="Arial" SIZE=2>K#</SUP></FONT><FONT SIZE=2> /soundRequest <I>sound</I><BR>\r
-</FONT><SUP><FONT FACE="Arial" SIZE=2>K#</SUP></FONT><FONT SIZE=2> /soundMove <I>sound</I></FONT><SUP><FONT FACE="Arial" SIZE=2> </SUP></FONT><FONT SIZE=2><BR>\r
-</FONT><SUP><FONT FACE="Arial" SIZE=2>K#</SUP></FONT><FONT SIZE=2> /soundBell <I>sound</I></FONT><SUP><FONT FACE="Arial" SIZE=2> </P>\r
-<P>K#</SUP> /soundIcsWin <I>sound</I><BR>\r
-<SUP>K#</SUP> /soundIcsLoss <I>sound</I><SUP> </SUP><BR>\r
-<SUP>K#</SUP> /soundIcsDraw <I>sound</I><SUP> </SUP><BR>\r
-<SUP>K#</SUP> /soundIcsUnfinished <I>sound</I><SUP> </P>\r
-<P>K#</SUP> /soundIcsAlarm <I>sound</I><SUP> </P>\r
-</B></SUP><P>Associate sounds with WinBoard events. Most of the events are the same ones that cause text colorization. In addition, <B>soundMove</B> is played if a chess engine or another player makes a move. <B>SoundBell</B> is played if the chess server sends an ASCII BEL character (Ctrl+G). Available on the <U>Sounds</U>Sounds menu.</P>\r
-</FONT><B><FONT SIZE=2><P>SoundIcsWin</B>, <B>soundIcsLoss</B>, <B>soundIcsDraw</B> and <B>soundIcsUnfinished</B> are played at the conclusion of an ICS game. The result of the game determines which sound is played.</P>\r
-<B><P>SoundIcsAlarm</B> is played when your game clock counts down to <U>icsAlarmTimeicsAlarmTime</U>. </P>\r
-</FONT><FONT FACE="Arial" SIZE=2><P>The <I>sound</I> argument may be one of the following:</P>\r
-\r
-<UL>\r
-<LI>The name of a </FONT><FONT FACE="Courier New" SIZE=2>.wav</FONT><FONT FACE="Arial" SIZE=2> file. The filename is interpreted relative to WinBoard's installation directory (the directory containing WinBoard.exe).</LI>\r
-</FONT><FONT FACE="Courier New" SIZE=2><LI>$</FONT><FONT FACE="Arial" SIZE=2>, indicating the default system sound.</LI>\r
-</FONT><FONT FACE="Courier New" SIZE=2><LI>!</FONT><FONT FACE="Arial" SIZE=2> followed by the name of a built-in WinBoard wave resource.</LI>\r
-</FONT><FONT FACE="Courier New" SIZE=2><LI>!</FONT><FONT FACE="Arial" SIZE=2> alone, or "" (empty string), indicating silence.</LI></UL>\r
-\r
-<P>The default for soundMove and soundBell is </FONT><FONT FACE="Courier New" SIZE=2>$</FONT><FONT FACE="Arial" SIZE=2>, while the others default to silence.</P>\r
-<B><SUP><P>K#</SUP>/icsMenu={<I>entries</I>} </B>or <B>/icsMenu=@<I>filename</P>\r
-</B></I><P>This option lets you customize the right-button <U>context menu</U>ICSInteractionContextMenu that is available in the upper (output) pane of the ICS Interaction window. It consists of a list of menu entries, one per line. If the option value starts with an @ sign, it is the name of a file that contains the entries. Each entry contains either four fields separated by commas or the single character </FONT><FONT FACE="Courier New" SIZE=2>"-"</FONT><FONT FACE="Arial" SIZE=2>. The fields are:</P>\r
-<OL>\r
-\r
-</FONT><FONT SIZE=2><LI>The menu text. If this field begins with </FONT><FONT FACE="Courier New" SIZE=2>"|"</FONT><FONT SIZE=2>, the item begins a new column in the menu and the </FONT><FONT FACE="Courier New" SIZE=2>"|"</FONT><FONT SIZE=2> is not shown. If this field contains an </FONT><FONT FACE="Courier New" SIZE=2>"&"</FONT><FONT SIZE=2>, the character after the ampersand is underlined in the menu and acts as a keyboard shortcut for the item when the menu is displayed. Do not assign the same shortcut key to two different menu items.</LI>\r
-</FONT><FONT FACE="Arial" SIZE=2><LI>Text to insert into the input pane. The text cannot include a comma. You can use ICS aliases to get around this limitation.</LI>\r
-<LI>A flag (1 or 0) saying whether to insert a space and <I>name </I>(see <U>above</U>Tell) after the text. If you set this flag, you might also want to put "(name)" into the menu text as a memory aid.</LI>\r
-<LI>A flag (1 or 0) saying whether the result should be sent immediately to ICS or left in the input pane for further editing.</LI></OL>\r
-\r
-</FONT><FONT SIZE=2><P>The entry </FONT><FONT FACE="Courier New" SIZE=2>"-"</FONT><FONT SIZE=2> produces a separator line in the menu. The top three menu entries are always <B>Copy and Paste</B>, <B>Copy</B>, and <B>Paste</B>, but you have full control over the rest of the menu.</P>\r
-</FONT><FONT FACE="Arial" SIZE=2><P>The default menu is:</P><DIR>\r
-\r
-</FONT><FONT FACE="Courier New" SIZE=2><P><BR>\r
-&Who,who,0,1<BR>\r
-Playe&rs,players,0,1<BR>\r
-&Games,games,0,1<BR>\r
-&Sought,sought,0,1<BR>\r
-|&Tell (name),tell,1,0<BR>\r
-M&essage (name),message,1,0<BR>\r
-<BR>\r
-&Finger (name),finger,1,1<BR>\r
-&Vars (name),vars,1,1<BR>\r
-&Observe (name),observe,1,1<BR>\r
-&Match (name),match,1,1<BR>\r
-Pl&ay (name),play,1,1</P></DIR>\r
-\r
-</FONT><FONT FACE="Arial" SIZE=2><P>There is no graphical user interface to set this option. To change it, edit your <U>settings</U>settings file with a plain text editor such as Notepad.</P>\r
-<B><SUP><P>K#</SUP>/icsNames={<I>names</I>} </B>or <B>/icsNames=@<I>filename</P>\r
-</B></I><P>This option lets you customize the drop-down list of ICS names that appears in the WinBoard startup dialog. It consists of a list of strings, one per line. If the option value starts with an @ sign, it is the name of a file that contains the strings. When you select a string from the drop-down list, WinBoard prepends the text "/ics /icsHost=" and adds the result to the command-line options. There is no graphical user interface to set this option. To change it, edit your <U>settings</U>settings file with a plain text editor such as Notepad.</P>\r
-<P> </P>\r
-<B><SUP><P>K#</SUP>/firstChessProgramNames={<I>names</I>} </B>or <B>/firstChessProgramNames="@<I>filename</I>"</P>\r
-</B><P>This option lets you customize the first drop-down list of chess engine names that appears in the WinBoard startup dialog. It consists of a list of strings, one per line. If the option value starts with an @ sign, it is the name of a file that contains the strings. When you select a string from the drop-down list, WinBoard prepends the text "/cp /firstChessProgram=" and adds the result to the command-line options. </P>\r
-\r
-<P>There is no graphical user interface to set this option. To change it, edit your <U>settings</U>settings file with a plain text editor such as Notepad. Example:</P><DIR>\r
-\r
-</FONT><FONT FACE="Courier New" SIZE=1><P>/firstChessProgramNames={GNUChess<BR>\r
-WCrafty-15_11 /fd="C:\Program Files\Crafty"<BR>\r
-ArasanX /fd="C:\Program Files\Arasan\Arasan 4.1"<BR>\r
-"EXchess xb" /fd=C:\EXchess<BR>\r
-Comet-WB /fd=C:\Comet<BR>\r
-}</P></DIR>\r
-\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP>/secondChessProgramNames={<I>names</I>}</B> or <B>/secondChessProgramNames="@<I>filename</I>"</P>\r
-</B><P>This option lets you customize the second drop-down list of chess engine names that appears in the WinBoard startup dialog. It consists of a list of strings, one per line. If the option value starts with an @ sign, it is the name of a file that contains the strings. When you select a string from the drop-down list, WinBoard prepends the text "/cp /secondChessProgram=" and adds the result to the command-line options.</P>\r
-\r
-<P>There is no graphical user interface to set this option. To change it, edit your <U>settings</U>settings file with a plain text editor such as Notepad. Example:</P><DIR>\r
-\r
-</FONT><FONT FACE="Courier" SIZE=1><P>/secondChessProgramNames={GNUChess<BR>\r
-WCrafty-15_11 /sd="C:\\Program Files\\Crafty\"<BR>\r
-ArasanX /sd="C:\Program Files\Arasan\Arasan 4.1"<BR>\r
-"EXchess xb" /sd=C:\EXchess<BR>\r
-Comet-WB /sd=C:\Comet<BR>\r
-}</P></DIR>\r
-\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP>/x=<I>xcoord </I>/y=<I>ycoord</P>\r
-</B></I><P>Sets the initial location of the board window, giving the screen coordinates of the upper left-hand corner. Both arguments must be given together.</P>\r
-<B><SUP><P>K#</SUP>/analysisX=<I>xcoord </I>/analysisY=<I>ycoord</I> /analysisW=<I>width</I> /analysisH=<I>height</P>\r
-</B></I><P>Sets the initial location and size of the Analysis window, giving the screen coordinates of the upper left-hand corner, the width, and the height. All four arguments must be given together.</P>\r
-<B><SUP><P>K#</SUP>/commentX=<I>xcoord </I>/commentY=<I>ycoord</I> /commentW=<I>width</I> /commentH=<I>height</P>\r
-</B></I><P>Sets the initial location and size of the Comment window, giving the screen coordinates of the upper left-hand corner, the width, and the height. All four arguments must be given together.</P>\r
-<B><SUP><P>K#</SUP>/gameListX=<I>xcoord </I>/gameListY=<I>ycoord</I> /gameListW=<I>width</I> /gameListH=<I>height</P>\r
-</B></I><P>Sets the initial location and size of the Game List window, giving the screen coordinates of the upper left-hand corner, the width, and the height. All four arguments must be given together.</P>\r
-<B><SUP><P>K#</SUP>/icsX=<I>xcoord </I>/icsY=<I>ycoord</I> /icsW=<I>width</I> /icsH=<I>height</P>\r
-</B></I><P>Sets the initial location and size of the ICS Interaction window, giving the screen coordinates of the upper left-hand corner, the width, and the height. All four arguments must be given together.</P>\r
-<B><SUP><P>K#</SUP>/tagsX=<I>xcoord </I>/tagsY=<I>ycoord</I> /tagsW=<I>width</I> /tagsH=<I>height</P>\r
-</B></I><P>Sets the initial location and size of the Tags window, giving the screen coordinates of the upper left-hand corner, the width, and the height. All four arguments must be given together.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#ff0000"><P>K#</SUP>/moveHistoryX=<I>xcoord </I>moveHistoryY=<I>ycoord</I> /moveHistoryW=<I>width</I> /moveHistoryH=<I>height</P>\r
-</B></I><P>Sets the initial location and size of the move-history window, giving the screen coordinates of the upper left-hand corner, the width, and the height. All four arguments must be given together.</P>\r
-<B><SUP><P>K#</SUP>/evalGraphX=<I>xcoord </I>/evalGraphY=<I>ycoord</I> /evalGraphW=<I>width</I> /evalGraphH=<I>height</P>\r
-</B></I><P>Sets the initial location and size of the evaluation-graph window, giving the screen coordinates of the upper left-hand corner, the width, and the height. All four arguments must be given together.</P>\r
-<B><SUP><P>K#</SUP>/engineOutputX=<I>xcoord </I>/engineOutputY=<I>ycoord</I> </P>\r
-<SUP><P>K#</SUP>/engineOutputW=<I>width</I> /engineOutputH=<I>height</P>\r
-</B></I><P>Sets the initial location and size of the engine-output window, giving the screen coordinates of the upper left-hand corner, the width, and the height. All four arguments must be given together.</P>\r
-<B><SUP><P>K#</SUP>/engineOutputUp <I>true|false </P>\r
-</I><SUP><P>K#</SUP>/evalGraphUp <I>true|false</P>\r
-</I><SUP><P>K#</SUP>/moveHistoryUp <I>true|false</P>\r
-</B></I><P>If set to True, the corresponding window is displayed, if False, the window is absent.</P>\r
-<B><SUP><P>K#</SUP>/stickyWindows <I>true|false</P>\r
-</B></I><P>Not an album of the Rolling stones.</P>\r
-<B><SUP><P>K#</SUP>/autoDisplayComments <I>true|false</P>\r
-</I><SUP><P>K#</SUP>/autoDisplayTags <I>true|false</P>\r
-</B></I><P>If set to True, these options cause the window with the move comments, and the window with PGN tags, respectively, to pop up automatically when such tags or comments are encountered during the replaying a stored or loaded game.</P>\r
-<B><SUP><P>+K$#</B></SUP></FONT><FONT FACE="Arial" SIZE=1 COLOR="#ff0000"> </FONT><B><FONT FACE="Arial" SIZE=2 COLOR="#ff0000">Adjudicaton options</P>\r
-<SUP><P>K#</SUP> /adjudicateLossThreshold <I>scorethreshold</P>\r
-</B></I><P>If the given value is non-zero, WinBoard adjudicates the game as a loss if both engines agree for a duration of 6 consecutive ply that the score is below the given score threshold for that engine. Make sure the score is interpreted properly by WinBoard, using /firstScoreAbs and /secondScoreAbs if needed.</P>\r
-<B><SUP><P>K#</SUP> /adjudicateDrawMoves <I>number</P>\r
-</B></I><P>If the given value is non-zero, WinBoard adjudicates the game as a draw if after the given <I>number</I> of moves it was not yet decided.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>K#</SUP> /testClaims<I> true|false</P>\r
-</B></I><P>If this option is True, WinBoard verifies all result claims made by engines, and those who send false claims will forfeit the game because of it. Legality-testing must be on for this option to work.</P>\r
-<B><SUP><P>K#</SUP> /materialDraws<I> true|false</P>\r
-</B></I><P>If this option is True, WinBoard adjudicates games as draws when there is no sufficient material left to create a checkmate. This applies to KBKB with like bishops, and to KBK, KNK and KK. Legality-testing must be on for this option to work.</P>\r
-<B><SUP><P>K#</SUP> /trivialDraws<I> true|false</P>\r
-</B></I><P>If this option is True, WinBoard adjudicates games as draws that cannot be usualy won without opponent assistance. This applies to KBKB with unlike bishops, and to KBKN, KNKN, KNNK, KRKR and KQKQ. The draw is called after 6 ply into these end-games, to allow quick mates that can occur in some positions. KQKQ does not really belong in this category, and might be taken out in the future. (When bitbase-based adjudications are implemented.) Legality-testing must be on for this option to work.</P>\r
-<B><SUP><P>K#</SUP> /ruleMoves <I>number</P>\r
-</B></I><P>If the given value is non-zero, WinBoard adjudicates the game as a draw after the given <I>number</I> of consecutive reversible moves. Engines can claim draws after 50 moves, irrespective of the value of <I>number</I>.</P>\r
-<B><SUP><P>K#</SUP> /repeatsToDraw <I>number</P>\r
-</B></I><P>If the given value is non-zero, WinBoard adjudicates the game as a draw if a position is repeated the given <I>number</I> of times. Engines can claim draws after 3 repeats, (on the 3rd occurrence, actually), irrespective of the value of <I>number</I>. Beware that positions that have different castling or en-passant rights do not count as repeats, WinBoard is fully e.p. and castling aware!</P>\r
-<B><SUP><P>K#</SUP> /checkMates<I> true|false</P>\r
-</B></I><P>If this option is True, WinBoard detects all checkmates and stalemates, and ends the game as soon as they occur. Legality-testing must be on for this option to work.</P>\r
-<B><P> </P>\r
-</FONT><SUP><FONT FACE="Arial" SIZE=2><P>+K$#</B></SUP></FONT><FONT FACE="Arial" SIZE=1> </FONT><B><FONT FACE="Arial" SIZE=2>Other Options</P>\r
-<SUP><P>K#</SUP> /ncp</B> or <B>/xncp</B>,<B> </B>or<B> <SUP>K#</SUP> /noChessProgram<I> true|false</P>\r
-</B></I><P>If this option is True, WinBoard acts as a passive chessboard; it does not start a chess program or connect to ICS. This option also sets clockMode to False. Default: False.</P>\r
-<B><SUP><P>K#</SUP> /mode</B> or <B><SUP>K#</SUP> /initialMode <I>modename</P>\r
-</B></I><P>If this option is given, WinBoard selects the given <I>modename</I> from the <U>Mode menu</U>ModeMenu after starting and (if applicable) processing the <U>loadGameFile</U>loadGameFile or <U>loadPositionFile</U>loadPositionFile option. Default: "". Other supported values are TwoMachines, AnalyzeFile, Analysis, MachineWhite, MachineBlack, EditGame, EditPosition, and Training.</P>\r
-<B><SUP><P>K#</SUP> /variant</B> <B><I> varname</P>\r
-</B></I></FONT><FONT SIZE=2><P>Activates preliminary, partial support for playing chess variants against a local engine or editing variant games. This flag is not needed in ICS mode. Recognized variant names are:</P>\r
-<P>normal	Normal chess<BR>\r
-wildcastle	Shuffle chess, king can castle from d file<BR>\r
-nocastle	Shuffle chess, no castling allowed<BR>\r
-fischerandom	Fischer Random shuffle chess<BR>\r
-bughouse	Bughouse, ICC/FICS rules<BR>\r
-crazyhouse	Crazyhouse, ICC/FICS rules<BR>\r
-losers 	Lose all pieces or get mated (ICC wild 17)<BR>\r
-suicide	Lose all pieces including king (FICS)<BR>\r
-giveaway	Try to have no legal moves (ICC wild 26)<BR>\r
-twokings	Weird ICC wild 9<BR>\r
-kriegspiel	Opponent's pieces are invisible<BR>\r
-atomic 	Capturing piece explodes (ICC wild 27)<BR>\r
-3check	Win by giving check 3 times (ICC wild 25)</P>\r
-</FONT><FONT SIZE=2 COLOR="#008000"><P>xiangqi	Chinese Chess (on a 9x10 board)<BR>\r
-shogi		Japanese Chess (on a 9x9 board, with piece drops) <BR>\r
-capablanca	Capablanca Chess (10x8 board, with Archbishop and Chancellor pieces)<BR>\r
-gothic		similar, with a better initial position<BR>\r
-caparandom	An FRC-like version of Capablanca Chess (10x8 board) <BR>\r
-janus		A game with two Archbishops (10x8 board)<BR>\r
-shatranj	Ancient Arabic Chess, with Elephants and General replacing B and Q.<BR>\r
-courier	Medieval intermedite between shatranj and modern Chess (on 12x8 board) <BR>\r
-falcon		A patented Chess variant with two Falcon pieces (10x8) board <BR>\r
-berolina	Pawns capture straight ahead, and move diagonal (legality testing off!)<BR>\r
-cylinder	Pieces wrap around the board, as if it were a cylinder (legality testing off!) <BR>\r
-fairy		A variant in which all pieces known to WinBoard can participate<BR>\r
-knightmate	King moves a Knight, and vice versa</P>\r
-<P>In the shuffle variants, WinBoard does now shuffle the pieces, although you can still do it by hand using Edit Position. </FONT><FONT SIZE=2>Some variants are supported only in ICS mode, including bughouse, and kriegspiel.</FONT><FONT SIZE=2 COLOR="#008000"> </FONT><FONT SIZE=2>The winning/drawing conditions in crazyhouse (offboard interposition on mate), losers, suicide, giveaway, atomic, shatranj and 3check are not fully understood. In crazyhouse,</FONT><FONT SIZE=2 COLOR="#008000"> WinBoard now does keep track of offboard pieces.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>K#</SUP> /boardHeight <I>height</P>\r
-</B></I><P>Allows you to set a non-standard number of board ranks in any variant. If the height is given as -1, the default height for the variant is used.</P>\r
-<B><SUP><P>K#</SUP> /boardWidth <I>width</P>\r
-</B></I><P>Allows you to set a non-standard number of board files in any variant. If the width is given as -1, the default width for the variant is used. Width a non-standard width, the initial position will always be an empty board, as the usual opening array will not fit.</P>\r
-<B><SUP><P>K#</SUP> /holdingsSize <I>size</P>\r
-</B></I><P>Allows you to set a non-standard size for the holdings in any variant. If the size is given as -1, the default holdings size for the variant is used. The first <I>size</I> piece types will go into the holdings on capture, and you will be able to drop them on the board in stead of making a normal move. If <I>size</I> equals 0, there will be no holdings.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#ff0000"><P>K#</SUP> /defaultFrcPosition <I>number</P>\r
-</B></I><P>Specifies the number of the opening position in shuffle games like FRC. A value of -1 means the position is randomly generated by WinBoard.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>K#</SUP> /pieceToSquareTable <I>characterstring</P>\r
-</B></I><P>The characters that are used to represent the piece types WinBoard knows in FEN diagrams and SAN moves. The string argument has to have an even length (or it will be ignored), as white and black pieces have to be given separately (in that order). The last letter for each color will be the King. The letters before that will be PNBRQ and then a whole host of fairy pieces in an order that has not fully crystallized yet (currently FEACWMOHIJGDVSLU, F=Ferz, Elephant, A=Archbishop, C=Chancellor, W=Wazir, M=Commoner, O=Cannon, H=Nightrider). You should list at least all pieces that occur in the variant you are playing. If you have less than 44 characters in the string, the pieces not mentioned will get assigned a period, and you will not be able to distinguish them in FENs. You can also explicitly assign pieces a period, in which case they will not be counted in deciding which captured pieces can go into the holdings.</P>\r
-</FONT><FONT SIZE=2 COLOR="#008000"><P>A tilde as a piece name does mean this piece is used to represent a promoted Pawn in Crazyhouse-like games, i.e. on capture it turns back onto a Pawn. A + similarly indicate the piece is a Shogi-style promoted piece, that should revert to its non-promoted version on capture (rather than to a Pawn).</P>\r
-<P>Note that promoted pieces are represented by pieces 11 further in the list.</P>\r
-<P>You should not have to use this option often: each variant has its own default setting for the piece representation in FEN, which should be sufficient in normal use.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> /rsh </B>or<B> <SUP>K#</SUP> /remoteShell <I>shellname</P>\r
-</B></I><P>Name of the command used to run programs remotely. If this option is not given, WinBoard<I> </I>uses its own built-in implementation of the Unix <I>rcmd</I> protocol (the protocol used by <I>rsh</I>).</P>\r
-<B><SUP><P>K#</SUP> /ruser </B>or<B> <SUP>K#</SUP> /remoteUser <I>username</P>\r
-</B></I><P>User name on the remote system when running programs with the remoteShell. The default is your local user name.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>K#</SUP> /userName <I>username</P>\r
-</B></I><P>Name under which the Human player will be listed in the PGN file. (Default is the login name on your local computer.)</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2 COLOR="#ff0000"><P>K#</SUP> /delayBeforeQuit <I>number</P>\r
-</I><SUP><P>K#</SUP> /delayAfterQuit <I>number</P>\r
-</B></I><P>These options specify how long WinBoard has to wait before sending a termination signal to rogue engine processes, that do not want to react to the quit command. The second one determines the pause after killing the engine, to make sure it dies.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> /ini </B>or<B> <SUP>K#</SUP> /settingsFile <I>filename<BR>\r
-</I><SUP>K#</SUP>@ <I>file-name</P>\r
-</B></I><P>See <U>Settings</U>Settings.</P>\r
-<B><P> </P>\r
-<SUP><P>KK$#+</SUP> INITIALIZATION FILES</P>\r
-<SUP><P>K</SUP></FONT><FONT FACE="Arial" SIZE=1> </FONT><SUP><FONT FACE="Arial" SIZE=2>#</SUP> Settings</P>\r
-</B></FONT><FONT SIZE=2><P>When WinBoard starts up, it reads option settings from a file named <I>WinBoard.ini </I>in its installation directory (the directory containing WinBoard.exe). Options in this file have the same format as <U>command line options</U>Options, except that they do not all have to be on a single line. You can put a comment in a settings file by preceding it with a semicolon (</FONT><FONT FACE="Courier New" SIZE=2>;</FONT><FONT SIZE=2>).</P>\r
-<P>The WinBoard.ini file is read before the command line is processed, so any options you give on the command line override options in the file.</P>\r
-</FONT><FONT FACE="Arial" SIZE=2><P>If WinBoard encounters a /<U>settingsFile</U>settingsFile <I>filename </I>or <U>@</U>atsign<I>filename </I>option while reading settings (whether from the command line or a file), it reads more settings from the given file before reading the next option.</P>\r
-<P>The <U>Save Settings Now</U>SaveSettings menu command writes the current values of most options to a file. In addition, settings are saved automatically when WinBoard exits if <U>Save Settings on Exit</U>SaveSettingsOnExit is checked. The settings are written to the last file named in a /settingsFile command, if any; otherwise to WinBoard.ini<I>.</I> The @ option does not affect which file settings are saved to.</P>\r
-<P>Warning: Because Save Settings overwrites the last settings file (usually WinBoard.ini) and only saves a subset of WinBoard's options, you should not add settings of more options to such a file with a text editor. If you do this, your additional options will be lost on the next Save Settings. You can change the values of existing settings freely, using Notepad or any plain text editor. Be careful not to do this while WinBoard is running, however, unless you know that Save Settings on Exit is off. Otherwise all your changes will be overwritten and lost when WinBoard exits.</P>\r
-</FONT><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>Notice that tournament managers, like PSWBTM, usually call WinBoard with the option not to save settings on exit, so that the entire tournament uses the same settings. So it does make sense to edit volatile options, such as /variant, into the settings file.</P>\r
-</FONT><B><SUP><FONT FACE="Arial" SIZE=2><P>K#</SUP> ICS Logon</P>\r
-</B><P>Whenever WinBoard connects to the Internet Chess Server, if it finds a file called <I>ICS.ini </I>in its installation directory<I>,</I> it feeds the file's contents to the ICS as commands. Usually the first two lines of the file should be your ICS user name and password. You can specify a different name instead of <I>ICS.ini</I> by using the <U>icslogon</U>icslogon command line option.</P>\r
-<B><P> </P>\r
-<SUP><P>K$#+</SUP> INSTALLING CHESS ENGINES</P>\r
-<P>Introduction</P>\r
-</B><P>WinBoard is capable of operating with many different chess engines. You can play chess against a compatible engine, set up matches between two engines, or (advanced users only) run an automated computer player on an ICS.</P>\r
-<P>Typically, the main difficulty in installing a new chess engine for use by WinBoard comes in getting the engine itself running and setting its options appropriately. The connection to WinBoard is relatively straightforward.</P>\r
-<P>WinBoard-compatible chess engines are Win32 command line programs that you can run by hand in an MS-DOS Prompt box and type human-readable commands to. WinBoard connects to an engine simply by starting the engine up in the background and communicating with it through a pair of pipes. Therefore the basic procedure for installing an engine is:</P>\r
-<P>1. Get a copy of the engine and any supporting files it needs.</P>\r
-<P>2. Install and configure the engine as a command-line program by following the instructions that come with it. Try it out by running it from the command line in an MS-DOS Prompt box and make sure it works.</P>\r
-<P>3. Optional, but recommended: Try out the WinBoard plus engine combination by running WinBoard with the proper command line arguments in an MS-DOS Prompt box.</P>\r
-<P>4. Create a shortcut on your desktop or Start menu to run the engine with WinBoard.</P>\r
-<P>5. Optionally edit your WinBoard.ini file to add the engine to the drop-down lists on WinBoard's startup dialog.</P>\r
-<P>This document cannot explain steps 1 and 2 in detail for all engines, but we will take you through all five steps in outline, using Crafty as an example.</P>\r
-<B><P>Example: Crafty</P>\r
-</B><P>1. Choose a directory to put Crafty in. We'll use </FONT><FONT FACE="Courier New" SIZE=2>C:\Program Files\Crafty</FONT><FONT FACE="Arial" SIZE=2> in this example. Download your copy of Crafty into this directory from its author's FTP site, </FONT><FONT FACE="Courier New" SIZE=2>ftp://ftp.cis.uab.edu/pub/hyatt</FONT><FONT FACE="Arial" SIZE=2>. At this writing, you will need at least the following files:</P><DIR>\r
-\r
-</FONT><FONT FACE="Courier New" SIZE=2><P>read.me<BR>\r
-v15/crafty.doc<BR>\r
-v15/crafty.faq<BR>\r
-v15/wcrafty-15.*.exe</FONT><FONT FACE="Arial" SIZE=2> (where * is replaced by the largest number there)<BR>\r
-</FONT><FONT FACE="Courier New" SIZE=2>common/start.zip</FONT><FONT FACE="Courier" SIZE=2><BR>\r
-</FONT><FONT FACE="Courier New" SIZE=2>common/medium.zip</FONT><FONT FACE="Courier" SIZE=2> </FONT><FONT FACE="Arial" SIZE=2>(or another book).</P></DIR>\r
-\r
-<P>2. The first three files are documentation that you can read with a text editor. Read the read.me file first and follow the instructions carefully. This will take some time. Do not write to the author of WinBoard if you have trouble with the instructions in the Crafty read.me. Try running Crafty from an MS-DOS Prompt box and make sure it works before you go on.</P>\r
-<P>3. Optional, but recommended: In an MS-DOS Prompt box,</FONT><FONT SIZE=2> </FONT><FONT FACE="Courier New" SIZE=2>cd </FONT><FONT FACE="Arial" SIZE=2>to the directory where WinBoard is installed, typically </FONT><FONT FACE="Courier New" SIZE=2>"C:\Program Files\WinBoard"</FONT><FONT FACE="Arial" SIZE=2>. Then type the following command line. Use the actual name of the wcrafty file you downloaded, not an </FONT><FONT FACE="Courier New" SIZE=2>*</FONT><FONT FACE="Arial" SIZE=2>, and if your browser changed the first period to an underscore when you downloaded the file, make that change in the command line too.</P><DIR>\r
-<DIR>\r
-<DIR>\r
-<DIR>\r
-\r
-</FONT><FONT FACE="Courier New" SIZE=2><P>WinBoard /cp /fcp=WCrafty-15.* /fd="C:\Program Files\Crafty" /scp=WCrafty-15.* /sd="C:\Program Files\Crafty"</P></DIR>\r
-</DIR>\r
-</DIR>\r
-</DIR>\r
-\r
-</FONT><FONT FACE="Arial" SIZE=2><P>WinBoard should start up, with Crafty running as its chess engine. Check that you can play chess against Crafty.</P>\r
-<P>4. To make a shortcut or Start menu entry for Crafty: Right-click on the desktop and select New/Shortcut. Use the Browse button to find your winboard.exe file and get its name into the Command Line box. (It usually will be "C:\Program Files\WinBoard\winboard.exe".) Click in the Command Line box and hit the End key to go to the end. Add the following to the end of the command line, <I>after</I> the closing quotation mark. Use the actual name of the wcrafty file you downloaded, not an </FONT><FONT FACE="Courier New" SIZE=2>*</FONT><FONT FACE="Arial" SIZE=2>, and if your browser changed the first period to an underscore when you downloaded the file, make that change in the command line too.</P><DIR>\r
-<DIR>\r
-<DIR>\r
-<DIR>\r
-\r
-</FONT><FONT FACE="Courier New" SIZE=2><P>/cp /fcp=WCrafty-15.* /fd="C:\Program Files\Crafty" <BR>\r
-/scp=WCrafty-15.* /sd="C:\Program Files\Crafty"</P></DIR>\r
-</DIR>\r
-</DIR>\r
-</DIR>\r
-\r
-</FONT><FONT FACE="Arial" SIZE=2><P>Press Next, choose a name for the shortcut, and press Finish. You can now use this shortcut to run WinBoard with Crafty. Double-click it to check that it works. You can drag or copy the shortcut into your Start menu if you like.</P>\r
-<P>5. To add Crafty as an option in the WinBoard Startup dialog, edit your <U>WinBoard.ini file</U>Settings with Notepad or another plain text editor, carefully following the example shown under <U>/firstChessProgramNames</U>firstChessProgramNames above.</P>\r
-<B><P>For more information</P>\r
-</B><P>If you would like to run an automated computer player on the ICS, see the separate file </FONT><FONT FACE="Courier New" SIZE=2>zippy.README</FONT><FONT FACE="Arial" SIZE=2>. If you would like to write your own engine to interface to WinBoard, see the separate file </FONT><FONT FACE="Courier New" SIZE=2>engine-intf.html</FONT><FONT FACE="Arial" SIZE=2>, and join the mailing list mentioned there. Both files are included in the WinBoard distribution. You might also want to get the source code for WinBoard. It is available from the author's Web page, http://www.tim-mann.org/chess.html</FONT><FONT FACE="Courier New" SIZE=2>.</P>\r
-</FONT><B><FONT FACE="Arial" SIZE=2><P> </P>\r
-<SUP><P>K#$+</SUP></FONT><FONT FACE="Arial" SIZE=1> </FONT><FONT FACE="Arial" SIZE=2>FIREWALLS</P>\r
-</B><P>By default, "WinBoard /ics"<I> </I>communicates with an Internet Chess Server by opening a TCP socket directly from the machine it is running on to the ICS. If there is a firewall between your machine and the ICS, this won't work. Here are some recipes for getting around common kinds of firewalls using special options to WinBoard<I>.</I> Important: See the paragraph in the <U>LIMITATIONS</U>LIMITATIONS section below about extra echoes.</P>\r
-<P>Suppose that you can't telnet directly to ICS, but you can telnet to a firewall host, log in, and then telnet from there to ICS. Let's say the firewall is called fire.wall.com. Set command-line options as follows: </P><DIR>\r
-\r
-</FONT><FONT FACE="Courier New" SIZE=2><P>WinBoard -ics -icshost fire.wall.com -icsport 23</P></DIR>\r
-\r
-</FONT><FONT FACE="Arial" SIZE=2><P>Then when you run WinBoard<I> </I>in ICS mode, you will be prompted to log in to the firewall host. (This works because port 23 is the standard telnet login service.) Do so, then telnet to ICS, using a command like "telnet chessclub.com 5000", or whatever command the firewall provides for telnetting to port 5000.</P>\r
-<P>If your firewall lets you telnet (or rlogin) to remote hosts, but doesn't let you telnet to port 5000, you will have to find some other host outside the firewall that does let you do this, and hop through it. For instance, suppose you have an account at foo.edu. Follow the recipe above, but instead of typing "telnet chessclub.com 5000" to the firewall, type "telnet foo.edu" (or "rlogin foo.edu"), log in there, and then type "telnet chessclub.com 5000".</P>\r
-<P>Exception: chessclub.com itself lets you connect to the chess server on the default telnet port (23), which is what you get if you dont specify a port to the telnet program. But the other chess servers dont allow this.</P>\r
-<P>Suppose that you can't telnet directly to ICS, but you can use rsh to run programs on a firewall host, and that host can telnet to ICS. Let's say the firewall is called rsh.wall.com. Set command-line options as follows: </P><DIR>\r
-\r
-</FONT><FONT FACE="Courier New" SIZE=2><P>WinBoard -ics -gateway rsh.wall.com -icshost chessclub.com</P></DIR>\r
-\r
-</FONT><FONT FACE="Arial" SIZE=2><P>Then when you run WinBoard<I> </I>in ICS mode, it will connect to the ICS by using rsh to run the command "telnet chessclub.com 5000" on host rsh.wall.com.</P>\r
-<P>ICC timestamp and FICS timeseal do not work through many<B> </B>firewalls. You can use them only if your firewall gives a clean TCP connection with a full 8-bit wide path. If your firewall allows you to get out only by running a special telnet program, you can't use timestamp or timeseal across it. But if you have access to a computer just outside your firewall, and you have much lower netlag when talking to that computer than to the ICS, it might be worthwhile running timestamp there. Follow the instructions above for hopping through a host outside the firewall (foo.edu in the example), but run timestamp or timeseal on that host instead of telnet.</P>\r
-<P>Suppose that you have a SOCKS firewall that requires you to go through some extra level of authentication, but after that will give you a clean 8-bit wide TCP connection to the chess server. In that case, if you are using timestamp or timeseal, you need to somehow socksify it; if not, you need to socksify WinBoard itself. Socksification is beyond the scope of this document, but see the SOCKS Web site at http://www.socks.nec.com/how2socksify.html.</P>\r
-<B><P> </P>\r
-<SUP><P>K#$+</SUP></FONT><FONT FACE="Arial" SIZE=1> </FONT><FONT FACE="Arial" SIZE=2>LIMITATIONS </FONT><FONT FACE="Arial" SIZE=2 COLOR="#008000">AND NON-LIMITATIONS</P>\r
-</B></FONT><FONT FACE="Arial" SIZE=2><P>WinBoard<I> </I>is a Win32 application. It runs only on Windows NT and Windows 95. It does not work on Windows 3.11 or earlier, even with the Win32s compatibility package.</P>\r
-<I><P>CMail, </I>the companion program to xboard for playing electronic mail correspondence chess, has not been ported to Win32.</P>\r
-<P>There is no way for two people running copies of WinBoard<I> </I>to play each other without going through the Internet Chess Server.</P>\r
-<P>Under some circumstances, your ICS password may be echoed when you log on.</P>\r
-<P>If you are connecting to the ICS by running telnet, timestamp, or timeseal on an Internet provider host, you may find that each line you type is echoed back an extra time after you hit Enter. You can probably turn this echo off. If your Internet provider is a Unix system, type "</FONT><FONT FACE="Courier New" SIZE=2>stty -echo</FONT><FONT FACE="Arial" SIZE=2>" after you log in to the provider but before you run telnet, timestamp, or timeseal. In addition, you may need to type the sequence "</FONT><FONT FACE="Courier New" SIZE=2>Ctrl+Q Ctrl+E Enter</FONT><FONT FACE="Arial" SIZE=2>" after you have finished logging in to ICS. On VMS, type "</FONT><FONT FACE="Courier New" SIZE=2>set terminal /noecho /nowrap</FONT><FONT FACE="Arial" SIZE=2>", and after you telnet to the ICS, type "</FONT><FONT FACE="Courier New" SIZE=2>Ctrl+Q Ctrl+] Enter set mode char Enter Enter</FONT><FONT FACE="Arial" SIZE=2>". It is a good idea to turn off the extra remote echo if you can, because otherwise it can get interleaved with output from the ICS and confuse WinBoard's parsing routines. Dont just turn off <U>Local Line Editing</U>localLineEditing so that you see only the remote echo and not the local one; that will make the interleaving problem worse.</P>\r
-<P>The game parser recognizes only algebraic notation (SAN).</P>\r
-<P>The <U>ICS logon</U>ICSLogon file does not work properly when you connect to ICS through a Unix gateway host by setting <U>icsPort</U>icsPort to 23. The Unix login process apparently discards type-ahead.</P>\r
-<P>Some WinBoard functions may not work with versions of GNU Chess earlier than 4.0, patchlevel 77. The current version of WinBoard<I> </I>works best with Crafty version 15.11 or later.</P>\r
-</FONT><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>Many of the following points used to be limitations in WinBoard 4.2.7 and earlier, but are now fixed:</P>\r
-<P>The internal move legality tester in WinBoard 4.3.xx does look at the game history, and is fully aware of castling or en passant-capture rights. </FONT><FONT FACE="Arial" SIZE=2>It permits castling with the king on the <B>d</B> file because this is possible in some "wild 1" games on ICS. The piece-drop menu does not check piece drops in bughouse to see if you actually hold the piece you are trying to drop.</FONT><FONT FACE="Arial" SIZE=2 COLOR="#008000"> But this way of dropping pieces should be considered an obsolete feature, now that pieces can be dropped by dragging them from the holdings to the board. </FONT><FONT FACE="Arial" SIZE=2>Anyway, if you would attempt an illegal move when using a chess engine or the ICS,</FONT><FONT FACE="Arial" SIZE=2 COLOR="#008000"> </FONT><FONT FACE="Arial" SIZE=2>WinBoard will accept the error message that comes back, undo the move, and let you try another.</P>\r
-</FONT><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>FEN positions saved by WinBoard<I> </I>do include correct information about whether castling or en passant are legal, and also handle the 50-move counter.</P>\r
-</FONT><FONT FACE="Arial" SIZE=2><P>The mate detector does not understand that non-contact mate is not really mate in bughouse.</FONT><FONT FACE="Arial" SIZE=2 COLOR="#008000"> </FONT><FONT FACE="Arial" SIZE=2>The only problem this causes while playing is minor: a "#" (mate indicator) character will show up after a non-contact mating move in the move list. WinBoard will not assume the game is over at that point,</FONT><FONT FACE="Arial" SIZE=2 COLOR="#008000"> not even when the option Detect Mates is on.</P>\r
-<P>Edit Game mode always uses the rules of the selected variant, which can be a variant that uses piece drops. You can load and edit games that contain piece drops. The (obsolete) piece menus are not active, but you can perform piece drops by dragging pieces from the holdings.</P>\r
-<P>Edit Position mode does not allow you to edit the Crazyhouse holdings properly. You cannot drag pieces to the holding, and using the popup menu to put pieces there does not adapt the holding counts and leads to an inconsistent state. Set up Crazyhouse positions by loading / pasting a bFEN, from there you can set the holdings.</P>\r
-<P>Fischer Random castling is fully understood. You can enter castlings by dragging the King on top of your Rook. You can probably also play Fischer Random successfully on ICS by typing castling moves into the ICS Interaction window.</P>\r
-</FONT><FONT FACE="Arial" SIZE=2><P>Also see the ToDo file included with the distribution for many other possible bugs, limitations, and ideas for improvement that have been suggested.</P>\r
-<B><P> </P>\r
-<SUP><P>K#$+</SUP></FONT><FONT FACE="Arial" SIZE=1> </FONT><FONT FACE="Arial" SIZE=2>AUTHORS AND CONTRIBUTORS</P>\r
-</B><P>WinBoard is partly based on <I>xboard</I>, a chessboard program for Unix and the X Window System. Tim Mann has been responsible for all versions of WinBoard,<I> </I>and for xboard versions 1.3 and beyond. </FONT><FONT FACE="Arial" SIZE=2 COLOR="#008000">H.G.Muller is responsible for version 4.3.</P>\r
-</FONT><FONT FACE="Arial" SIZE=2><P>Mark Williams added many features to WinBoard 4.1.0, including copy/paste, premove, icsAlarm, autoFlipView, training mode, auto raise, and blindfold. Hugh Fischer added piece animation to xboard, and Henrik Gram added it to WinBoard. Frank McIngvale contributed many xboard<I> </I>user interface improvements and improved Crafty support. Jochen Wiedmann ported xboard<I> </I>to the Amiga, creating <I>AmyBoard</I>, and converted the documentation to texinfo. Elmar Bartel contributed the new piece bitmaps for version 3.2. Evan Welsh wrote <I>CMail. </I>John Chanak contributed the initial implementation of ICS mode. The default color scheme was adapted from Wayne Christopher's <I>XChess </I>program. Chris Sears and Dan Sears wrote the original xboard<I>. </I>They were responsible for xboard<I> </I>versions 1.0 through 1.2. </FONT><FONT FACE="Arial" SIZE=2 COLOR="#ff0000">Allessandro Scotti added many elements to the user interface, including the board textures and font-based rendering, the evaluation-graph, move-history and engine-output window. He was also responsible for adding the UCI support.</FONT><FONT FACE="Arial" SIZE=2> </FONT><FONT FACE="Arial" SIZE=2 COLOR="#008000">H.G. Muller made WinBoard castling- and e.p.-aware, added variant support with adjustable board sizes, the Crazyhouse holdings, and the fairy pieces. In addition he added most of the adjudication options, made WinBoard ore robust in dealing with buggy and crashing engines, and extended time control with a time-odds and node-count-based modes.</P>\r
-</FONT><FONT FACE="Arial" SIZE=2><P>Send bug reports to <bug-xboard@gnu.org>. Please run WinBoard with the /debug option and include the output from the resulting WinBoard.debug file in your message.</P>\r
-</FONT><FONT FACE="Arial" SIZE=2 COLOR="#008000"><P>The WinBoard 4.3.xx line is being developed by H.G. Muller independently of the GNU Savannah xboard project. Bug reports on this version, and suggestions for improvements and additions, are best posted in the WinBoard forum, development section (http://www.open-aurec.com/wbforum).</P>\r
-</FONT><B><FONT FACE="Arial" SIZE=2><P> </P>\r
-<SUP><P>K#$+</SUP></FONT><FONT FACE="Arial" SIZE=1> </FONT><FONT FACE="Arial" SIZE=2>COPYRIGHT</P>\r
-</B><P>Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. <BR>\r
-Enhancements Copyright 1992-2003 Free Software Foundation, Inc.</P>\r
-<P>The following terms apply to Digital Equipment Corporation's copyright interest in WinBoard:</P>\r
-<P>All Rights Reserved</P>\r
-<P>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.</P>\r
-<P>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.</P>\r
-<P>The following terms apply to the enhanced version of WinBoard distributed by the Free Software Foundation:</P>\r
-<P>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.</P>\r
-<P>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.</P>\r
-<P>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.</P></FONT></BODY>\r
-</HTML>\r
+++ /dev/null
-/*\r
- * wplugin.c\r
- *\r
- * Copyright 2009 Free Software Foundation, Inc.\r
- * ------------------------------------------------------------------------\r
- *\r
- * GNU XBoard is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or (at\r
- * your option) any later version.\r
- *\r
- * GNU XBoard is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see http://www.gnu.org/licenses/. *\r
- *\r
- *------------------------------------------------------------------------\r
- ** See the file ChangeLog for a revision history. */\r
-\r
-#include "wplugin.h"\r
-\r
-static char * makePluginExeName( const char * name )\r
-{\r
- char buf[ MAX_PATH ];\r
-\r
- strcpy( buf, "" );\r
-\r
- strcat( buf, "plugins\\" );\r
- strcat( buf, name );\r
- strcat( buf, ".exe" );\r
-\r
- return strdup( buf );\r
-}\r
-\r
-WbPlugin * wbpCreate( const char * name )\r
-{\r
- char buf[MAX_PATH];\r
- int result = 0;\r
-\r
- // Create the plugin\r
- WbPlugin * plugin = (WbPlugin *) malloc( sizeof(WbPlugin) );\r
-\r
- memset( plugin, 0, sizeof(WbPlugin) );\r
-\r
- plugin->name_ = strdup( name );\r
- plugin->exe_name_ = makePluginExeName( name );\r
- plugin->hPipe_ = INVALID_HANDLE_VALUE;\r
- plugin->hProcess_ = INVALID_HANDLE_VALUE;\r
-\r
- // Create the named pipe for plugin communication\r
- if( result == 0 ) {\r
- strcpy( buf, "\\\\.\\pipe\\" );\r
- strcat( buf, name );\r
-\r
- plugin->hPipe_ = CreateNamedPipe( buf,\r
- PIPE_ACCESS_DUPLEX,\r
- 0, // Byte mode\r
- 2, // Max instances\r
- 4*1024,\r
- 4*1024,\r
- 1000, // Default timeout\r
- NULL );\r
-\r
- if( plugin->hPipe_ == INVALID_HANDLE_VALUE ) {\r
- DWORD err = GetLastError();\r
- result = -1;\r
- }\r
- }\r
-\r
- // Create the plugin process\r
- if( result == 0 ) {\r
- STARTUPINFO si;\r
- PROCESS_INFORMATION pi;\r
-\r
- ZeroMemory( &si, sizeof(si) );\r
- ZeroMemory( &pi, sizeof(pi) );\r
-\r
- si.cb = sizeof(si);\r
-\r
- strcpy( buf, "\"" );\r
- strcat( buf, plugin->exe_name_ );\r
- strcat( buf, "\"" );\r
-\r
- strcpy( buf, "\"C:\\Program Files\\Borland\\Delphi5\\Projects\\History\\History.exe\"" );\r
-\r
- if( CreateProcess( NULL,\r
- buf,\r
- NULL,\r
- NULL,\r
- FALSE, // Inherit handles\r
- 0, // Creation flags\r
- NULL, // Environment\r
- NULL, // Current directory\r
- &si,\r
- &pi ) )\r
- {\r
- CloseHandle( pi.hThread );\r
- plugin->hProcess_ = pi.hProcess;\r
- }\r
- else {\r
- result = -2;\r
- }\r
- }\r
-\r
- // Destroy the plugin instance if something went wrong\r
- if( result != 0 ) {\r
- wbpDelete( plugin );\r
- plugin = 0;\r
- }\r
-\r
- return plugin;\r
-}\r
-\r
-void wbpDelete( WbPlugin * plugin )\r
-{\r
- if( plugin != 0 ) {\r
- if( plugin->hPipe_ != INVALID_HANDLE_VALUE ) {\r
- CloseHandle( plugin->hPipe_ );\r
- }\r
-\r
- if( plugin->hProcess_ != INVALID_HANDLE_VALUE ) {\r
- CloseHandle( plugin->hProcess_ );\r
- }\r
-\r
- free( plugin->name_ );\r
-\r
- free( plugin->exe_name_ );\r
-\r
- plugin->name_ = 0;\r
- plugin->exe_name_ = 0;\r
- plugin->hPipe_ = INVALID_HANDLE_VALUE;\r
- plugin->hProcess_ = INVALID_HANDLE_VALUE;\r
-\r
- free( plugin );\r
- }\r
-}\r
-\r
-int wbpSendMessage( WbPlugin * plugin, const char * msg, size_t msg_len )\r
-{\r
- int result = -1;\r
-\r
- if( plugin != 0 && plugin->hPipe_ != INVALID_HANDLE_VALUE ) {\r
- DWORD zf = 0;\r
- BOOL ok = TRUE;\r
-\r
- while( ok && (msg_len > 0) ) {\r
- DWORD cb = 0;\r
-\r
- ok = WriteFile( plugin->hPipe_,\r
- msg,\r
- msg_len,\r
- &cb,\r
- NULL );\r
-\r
- if( ok ) {\r
- if( cb > msg_len ) break; // Should *never* happen!\r
-\r
- msg_len -= cb;\r
- msg += cb;\r
- }\r
-\r
- if( cb == 0 ) {\r
- zf++;\r
- if( zf >= 3 ) ok = FALSE;\r
- }\r
- else {\r
- zf = 0;\r
- }\r
- }\r
-\r
- if( ok ) {\r
- result = 0;\r
- }\r
- }\r
-\r
- return result;\r
-}\r
-\r
-int wbpListInit( WbPluginList * list )\r
-{\r
- list->item_count_ = 0;\r
-\r
- return 0;\r
-}\r
-\r
-int wbpListAdd( WbPluginList * list, WbPlugin * plugin )\r
-{\r
- int result = -1;\r
-\r
- if( plugin != 0 ) {\r
- if( list->item_count_ < MaxWbPlugins ) {\r
- list->item_[ list->item_count_ ] = plugin;\r
- list->item_count_++;\r
-\r
- result = 0;\r
- }\r
- }\r
-\r
- return result;\r
-}\r
-\r
-WbPlugin * wbpListGet( WbPluginList * list, int index )\r
-{\r
- WbPlugin * result = 0;\r
-\r
- if( index >= 0 && index < list->item_count_ ) {\r
- result = list->item_[ index ];\r
- }\r
-\r
- return result;\r
-}\r
-\r
-int wbpListGetCount( WbPluginList * list )\r
-{\r
- return list->item_count_;\r
-}\r
-\r
-int wbpListDeleteAll( WbPluginList * list )\r
-{\r
- int i;\r
-\r
- for( i=0; i<list->item_count_; i++ ) {\r
- wbpDelete( list->item_[i] );\r
- }\r
-\r
- return wbpListInit( list );\r
-}\r
-\r
-int wbpListBroadcastMessage( WbPluginList * list, const char * msg, size_t msg_len )\r
-{\r
- int result = 0;\r
- int i;\r
-\r
- for( i=0; i<list->item_count_; i++ ) {\r
- if( wbpSendMessage( list->item_[i], msg, msg_len ) == 0 ) {\r
- result++;\r
- }\r
- else {\r
- // Error sending message to plugin...\r
- }\r
- }\r
-\r
- return result;\r
-}\r
+++ /dev/null
-/*\r
- * wplugin.h\r
- *\r
- * Copyright 2009 Free Software Foundation, Inc.\r
- * ------------------------------------------------------------------------\r
- *\r
- * GNU XBoard is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or (at\r
- * your option) any later version.\r
- *\r
- * GNU XBoard is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see http://www.gnu.org/licenses/. *\r
- *\r
- *------------------------------------------------------------------------\r
- ** See the file ChangeLog for a revision history. */\r
-\r
-#ifndef WPLUGIN_H_\r
-#define WPLUGIN_H_\r
-\r
-#include <windows.h>\r
-\r
-#define MaxWbPlugins 16\r
-\r
-typedef struct WbPlugin_tag\r
-{\r
- char * name_;\r
- char * exe_name_;\r
- HANDLE hPipe_;\r
- HANDLE hProcess_;\r
-} WbPlugin;\r
-\r
-typedef struct WbPluginList_tag\r
-{\r
- int item_count_;\r
- WbPlugin * item_[MaxWbPlugins];\r
-} WbPluginList;\r
-\r
-WbPlugin * wbpCreate( const char * name );\r
-\r
-void wbpDelete( WbPlugin * plugin );\r
-\r
-int wbpSendMessage( WbPlugin * plugin, const char * msg, size_t msg_len );\r
-\r
-int wbpListInit( WbPluginList * list );\r
-\r
-int wbpListAdd( WbPluginList * list, WbPlugin * plugin );\r
-\r
-WbPlugin * wbpListGet( WbPluginList * list, int index );\r
-\r
-int wbpListGetCount( WbPluginList * list );\r
-\r
-int wbpListDeleteAll( WbPluginList * list );\r
-\r
-int wbpListBroadcastMessage( WbPluginList * list, const char * msg, size_t msg_len );\r
-\r
-#endif // WPLUGIN_H_\r