+$#KWinBoard: Chessboard for Windows

An updated description with the release of version 4.2010xxxx.
			“For the ultimate WinBoard Experience”
New features since WinBoard 4.2.7 that are implemented in Allessandro Scotti’s Winboard_x are highlighted in red. New features in the WinBoard 4.3.xx series by H.G. Muller are highlighted in green, that in the unified 4.4 series in blue.
K# Description
WinBoard 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:
•	Chess engines 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. Fairy-Max is supplied with WinBoard 4.3.14, and over 100 other free chess engines are available separately. Of these, Crafty is the most popular. See Installing Chess Engines for instructions on installing additional chess engines.
•	Chess servers 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, analyze observed games with a chess program, 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.
•	The Web 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.
K#Getting Started
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.
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 customize these lists or type in WinBoard command line options directly.
After starting WinBoard, you can make K#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.
When WinBoard is iconized, its K#icon is a white knight if it is White's turn to move, a black knight if it is Black's turn.
Additional Information
Menus
Shortcut Buttons
Command Line Options
Initialization Files
Installing Chess Engines
Firewalls
Limitations
Authors
Copyright
Frequently Asked Questions

K#$+MENUS
File Menu
Mode Menu
Action Menu
Step Menu
Options Menu
Help Menu
ICS Interaction Context Menu

K#$+ File Menu
K# New Game (former Reset)
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 refresh command. If you want to stop playing, observing, or examining a game on ICS, use an appropriate command from the Action menu, not New Game.
K# New Shuffle Game
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”, even if you are playing a variant that normally is not shuffled, until you select a new variant through the “New Variant…” menu. If you enter “-1” for the position number,  new random number is drawn before every game.
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.
K# New Variant
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. 
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.
K# Load Game
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.
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 P@f7 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 [Variant "varname"] functions similarly to the variantcommand-line option, allowing games in certain chess variants to be loaded. There is also a heuristic to recognize chess variants from the Event tag, by looking for the strings that the Internet Chess Servers put there when saving variant ("wild") games.
K# Load Next Game
Loads the next game from the last game record file you loaded.
K# Load Previous Game
Loads the previous game from the last game record file you loaded. Not available if the last game was loaded from a pipe.
K# Reload Same Game
Reloads the last game you loaded. Not available if the last game was loaded from a pipe.
K# Save Game
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 oldSaveStyle option is True, in which case they are saved in an older format that is specific to WinBoard. Both formats are human-readable, and both can be read back by the Load Game command. Notation of the form P@f7 is generated for piece-drops in bughouse games; this is a nonstandard extension to PGN.
K# Copy Game To Clipboard
Copies the record of the current game to the Windows clipboard in PGN (portable game notation) format.
K# Paste Game From Clipboard
Plays a game from the Windows clipboard. See Load Game for a discussion of game file format and parser behavior.
K# Load Position
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 Save Position command writes when oldSaveStyle is turned on. 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.
K# Load Next Position
Loads the next position from the last position file you loaded.
K# Load Previous Position
Loads the previous position from the last position file you loaded. Not available if the last position was loaded from a pipe.
K# Reload Same Position
Reloads the last position you loaded. Not available if the last position was loaded from a pipe.
K# Save Position
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 oldSaveStyle option is True, in which case they are saved in an older, human-readable format that is specific to WinBoard. Both formats can be read back by the Load Position command; however, currently Load Position can load only the first position in a file.
K# Save Diagram
Writes the current board display as a bitmap file. With this command you can use WinBoard as a diagram generator.
K# Copy Position To Clipboard
Places a diagram of the current position (in Forsythe-Edwards notation) into the Windows clipboard.
K# Paste Position From Clipboard
Sets up a position from the Windows clipboard. Position must be in FEN (Forsythe-Edwards notation). Puts WinBoard into Edit Game mode if it was not there already.
K# Exit
Exits from WinBoard.

K#$+ Mode Menu
K# Machine White
Forces the chess engine to play white.
K# Machine Black
Forces the chess engine to play black.
K# Two Machines
Starts a game between two chess engines.
K# Machine Both
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).
K# Analysis Mode
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. Crafty was the first engine to support this feature, but by now there are many others that support it as well.
From WinBoard 4.4 on this function can also be invoked in ‘zippy mode’, i.e. when you are logged on to an ICS with an engine loaded. In that case it is not your own moves that the engine analyzes, but the moves that are played in a game on the ICS that you are observing. You must start observing before you start the analysis mode! See the file zippy.README for how to connect to an ICS and a chess engine running on your local computer at the same time. (Basically this amounts to adding the /zp command-line option in addition to all options you would need for connecting to the ICS, as well as those needed for running the chess engine.)
K# Analyze File
In this mode, you can load a game from a file, and the chess engine will analyze each move as in Analysis Mode. Crafty was the first engine to support this feature, but by now there are many others that support it as well.
K# ICS Client
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.
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 context menu of editing commands and ICS command shortcuts.
Some useful ICS commands include who to see who is logged on, games to see what games are being played, match to challenge another player to a game, observe to observe an ongoing game, examine or smoves to review a recently completed game, and of course help. 
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 Forward and Backward or save them with Save Game.
Some special ICS Client features are activated when you are in examine or bsetup mode on ICS. See the descriptions of the menu commands Forward, Backward, Pause, and Stop Examining 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.
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 follow or pfollow command in the new window.
K# Edit Game
Allows you to make moves for both Black and White, and to change moves after backing up with the 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.
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 Machine White, Machine Black, or Two Machines.
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 examine command or start an ICS match against yourself.
K# Edit Position
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. 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).
Selecting Edit Position causes WinBoard to discard all remembered moves in the current game.
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 examine command, or start an ICS match against yourself. (See also ICS Client above.)
K# Show Engine Output
Open a new window dedicated to showing the thinking output of the engine(s), as controlled by “Show Thinking”. In ICS mode kibitzed info of an opponent engine can appear here as well, under control of the /autoKibitz option.
K# Show Evaluation Graph
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). Clicking a point on the graph selects the corresponding position in the board display.
K# Show Game List
Shows or hides the list of games generated by the last Load Game command.
K# Show Move History
Open a new window dedicated to showing the game currently in progress. Clicking a point on a move selects the corresponding position in the board display.
K# Open Chat Window
Open a new window that in ICS mode can be used to display messages received from ICS tell commands from a specified ICS handle, from a channel (when you set the handle to the channel number), or whispers from co-observers of a game (when you set the handle to “WHISPER”). You have to press the “Change” button in the chat window to activate the entered handle. Typing into the bottom field of the window will send tell messages to the handle or channel, or whispers to co-observers. You can open up to three chat windows. Messages that are diverted to such a chat window will not appear in the ICS interaction window.
K# Training
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 Type In Move command). If the move played matches the next move of the game, the move is accepted and the opponent’s response is autoplayed.  If the move played is incorrect, an error message is displayed. 
K# Edit Tags
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:

<tag-section> ::= <tag-pair> <tag-section>
                  <empty>
<tag-pair>    ::= [ <tag-name> <tag-value> ]
<tag-name>    ::= <identifier>
<tag-value>   ::= <string>
See the PGN Standard for full details. Here is an example:

[Event "Portoroz Interzonal"]
[Site "Portoroz, Yugoslavia"]
[Date "1958.08.16"]
[Round "8"]
[White "Robert J. Fischer"]
[Black "Bent Larsen"]
[Result "1-0"]
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 "?" (unknown value) or "-" (inapplicable value).
K# Edit Comment
Adds or modifies a comment on the current position. Comments are saved by Save Game and are displayed by Load Game, Forward, and Backward.
K# Enter Username
Allows you to type the name of the human player, which will appear in the PGN header and in the window title.
K# Pause
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 P (or C) button is equivalent to selecting Pause.
If you select Pause when you are playing against a chess engine and it is not your move, the chess engine’s 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 Forward). This behavior is meant to simulate adjournment with a sealed move.
If you select Pause while you are in examine 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.
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 Forward, or resume automatic loading by selecting Pause again.

K#$+ Action Menu
Most of these commands are available in chess server mode only.
K# Accept
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.
K# Decline
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.
K# Rematch
Issues the ICS rematch command, which asks for another game against your last opponent with the same time control and rule set.
K# Call Flag
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.
K# Draw
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.
K# Adjourn
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 match command.
K# Abort
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.
K# Resign
Resigns the game to your opponent.
K# Stop Observing
Ends your participation in observing a game, by issuing the ICS unobserve command.
K# Stop Examining
Ends your participation in observing a game, by issuing the ICS unobserve command.
K# Adjudicate To White
End the current game and stop participating engine. The result will appear in the PGN as a win for white.
K# Adjudicate To Black
Same as above, but game will appear as a win for black.
K# Adjudicate Draw
Same as above, but game will appear as a draw.

K#$+ Step Menu
K# Type In Move
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.)
K# Backward
Steps backward through a series of remembered moves. The < button is equivalent to selecting Backward, as is turning the mouse wheel towards you. 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 Retract Move or Edit Game if you want to change past moves.
If you are examining a game on the ICS, the behavior of Backward depends on whether WinBoard is in Pause mode. If Pause mode is off, Backward issues the ICS command backward, 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.
K# Forward
Steps forward through a series of remembered moves (undoing the effect of Backward) or through a game file. The > button is equivalent, as is turning the mouse wheel away from you.
If you are examining a game on the ICS, the behavior of Forward depends on whether WinBoard is in Pause mode. If Pause mode is off, Forward issues the ICS command forward, 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.
K# Back to Start
Jumps backward to the first remembered position in the game. The << button is equivalent.
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 Retract Move or Edit Game if you want to change past moves; or use New Game to start a new game.
If you are examining a game on the ICS, the behavior of Back to Start depends on whether WinBoard is in Pause mode. If Pause mode is off, Backward issues the ICS command backward 999999, 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.
K# Forward to End
Jumps forward to the last position in the game. The >> button is equivalent.
If you are examining a game on the ICS, the behavior of Forward to End depends on whether WinBoard is in Pause mode. If Pause mode is off, Forward to End issues the ICS command forward 999999, 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.
K# Revert
If you are examining a game on the ICS, issues the ICS command revert.
K# Truncate Game
Discards all remembered moves of the game beyond the current position. Puts WinBoard into Edit Game mode if it was not there already.
K# Move Now
Forces the chess engine to move immediately. May not work with all chess engines.
K# Retract Move
Retracts your last move.
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 Move Now first.
In ICS mode, Retract Move issues the command takeback 1 or takeback 2, depending on whether it is your opponent's move or yours.

K#$+ Options Menu
K# Flip View
Inverts your view of the chessboard.
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 flipView command line option.
K# Swap Clocks
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.)
K# Mute all Sounds
Provides a quick way to switch on or off all sounds, without affecting the settings for them.
K#General
K# Always On Top
If this option is on, WinBoard sets its chessboard to be a topmost window, meaning that it always appears on top of all ordinary windows on the screen.
K# Always Queen
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.
K# Animate Dragging
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
dragging a piece, but if Animate Moving is on, the move will be animated when it is complete.
K# Animate Moving
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.
K# Auto Flag
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 set autoflag 1 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.
K# Auto Flip View
If this option is on when you start a game, the board will be automatically oriented so that your pawns move from the bottom of the window towards the top.
K# Auto Raise Board
If this 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.
K#Blindfold
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.
K# Highlight Dragging
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.
K# Extended PGN Info
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.
K# Extra Info In Move History
Same as above, but in move-history window. 
K# Highlight Last Move
If Highlight Last Move is on, after a move is made, the starting and ending squares remain highlighted. In addition, after you use Backward or Back to Start, the starting and ending squares of the last move to be unmade are highlighted.
K# Periodic Updates
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.
K# Ponder Next Move
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.
K# Popup Exit Message
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 debugMode is on, however, the message will appear in the debug log.
K# Popup Move Errors
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.
K# Show Button Bar
If Show Button Bar is on, WinBoard displays on-screen buttons to step forward, backward, or pause the game. If it is off, the buttons are hidden, making the message line wider.
K# Show Coords
If Show Coords is on, WinBoard displays algebraic coordinates along the board's left and bottom edges. 
K# Show Thinking
If this option is set, WinBoard displays the chess engine’s 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.
K# Test Legality
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 d file are generally supported with Test Legality on. 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.)
K# Hide Thinking From Human
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.
K# Highlight Move With Arrow
A big, fat arrow is drawn between the start and target field of the last move, so you cannot possibly miss it. 
K#Board
K# Board Size
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.
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.
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.
K# Board Colors
Lets you change the colors WinBoard is using to draw the board and pieces.
K# All White
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.
K# Flip Black
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.

K#Adjudications
K# Ponder Next Move, K# Show Thinking, K# Hide Thinking from Human and K# Periodic Updates
Duplicates of the controls in the “General” option menu.
K# Adjudicate Draw Moves
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.
K# Adjudicate Loss Threshold
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.
K# Verify Claims
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.
K# Detect Mates
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.
K# Draw If Insufficient Material
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.
K# Adjudicate Trivial Draws
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.
K# N-Move Rule
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 considered 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.
K# N-Fold Repetition Rule
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 considered 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!)

K#Global Settings (formerly Engine Settings)
K# Polyglot Directory
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.
K# Hash Size, K# EGTB Path, K# EGTB Cache Size, K# Opening Book, K# Number of CPUs
These are options that UCI engines expect to be specified. WinBoard protocol now also allows native WinBoard engines to request similar information, so it might be used for these engines as well. The memory size specified by the WinBoard-protocol ‘memory’ command is the sum of the hash and EGTB cache sizes. The specified opening book, when enabled through the ‘Use Book’ check box, will be used as GUI book for engines that do not have their own book (as indicated by the check boxes). It must be a book in Polyglot format.

K# Engine #1 Settings , Engine #2 Settings
This pops up a dialog that allows the user to set engine-defined options of the mentioned engine (if it is in use). What is in the dialog is entirely determined by the engine. Generally, any changes you make to the controls are only sent to the engine after you press “OK”. An exception are engine-defined push buttons; the corresponding signal is sent to the engine immediately when you push those. To see the options of UCI engines, you need a Polyglot adapter that supports the recent WB-protocol extensions.

K#ICS
K# Auto Comment
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 say, tell, whisper, and kibitz. Limitation: remarks that you type yourself are not 
recognized; WinBoard scans only the output from ICS, not the input you type to it.
K# Auto Observe
If Auto Observe is on and you add a player to your gnotify 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 follow player instead, and the server will automatically observe all of player’s games.
K# Get Move List
If Get Move List is on, whenever WinBoard 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 immediately fetches the current move list.
K# Local Line Editing
If Local Line Editing is on, 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”).
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.
If Local Line Editing is off, 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.
In both modes, if WinBoard’s 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 telnetProgram.
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 LIMITATIONS below.
K# Quiet Play
If Quiet Play is on, WinBoard will automatically issue an ICS set shout 0 command whenever you start a game and a set shout 1 command whenever you finish one. Thus you will not be distracted by shouts from other ICS users while playing.
K# Premove
Premove allows you to play a move on the board before you have received your opponent’s move.  This move is highlighted on the board using the Premove Highlight color, and is sent to the ICS as soon as your opponent’s move is received. To cancel a premove, either click twice on the piece that was premoved or premove an illegal move.
This group of controls allows you to set the following options: premove, premoveWhite, premoveWhiteText, premoveBlack, premoveBlackText.
K#ICS Alarm
When icsAlarm is set to True, the alarm sound is played when your clock counts down to icsAlarmTime seconds.  For ICS games with time controls that include an increment, the alarm will sound each time the clock counts down to the icsAlarmTime.
K# ICS Interaction Colors
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).
K# Fonts
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.
K# Sounds
Lets you change the sounds that WinBoard plays for various events.
K#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 set bell 0 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.
The other sound events correspond directly to the types of messages that the ICS Interaction Colors option knows how to colorize.
K# Game List
Lets you select which information is displayed in the Game List window.
K# Communications
Lets you change the communication port parameters when the internetChessServerComPort option is in use.
K# Load Game
Lets you change options used while loading games (timeDelay option).
K# Save Game
Lets you change options used for saving games (autoSaveGames, oldSaveStyle, and saveGameFile options).
K# Time Control
Lets you change the time control to be used in games against a chess engine. Two types of timing are available.
With conventional chess clocks, each player begins with his clock set to the timeControl period. When both players have made 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.
With incremental clocks, each player is given an initial time allotment, and a 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.
K# Save Settings Now
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 Settings for the fine points.
K# Save Settings on Exit
If this option is on, the current settings are automatically saved when WinBoard exits, as with Save Settings Now.

K# $+ Help Menu
K# Help Contents
Brings up this help file, starting at the Contents page.
K# Help Index
Brings up this help file, starting at the Index/Find dialog.
K# How to Use Help
Brings up the standard help file that explains how to use Windows Help.
K# Hint
Displays a move hint from the chess engine.
K# Book
Displays a list of possible moves from the chess engine’s 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.
K# About WinBoard
Displays the WinBoard version number.

K# $+ICS Interaction Context Menu
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 help command on ICS to learn what these commands mean.
You can customize the lower part of this menu (below the Paste option) by setting the icsMenu option. The easiest way to accomplish this is to edit your settings file with Notepad or another plain text editor. Sorry, there is no graphical user interface for customizing the menu.
K# Copy and Paste
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.
K# Copy
Copies the current selection to the clipboard.
K# Paste
Pastes the clipboard contents to the input box.
K# Who
Sends the command “who” to ICS.
K# Players
Sends the command “players” to ICS.
K# Games
Sends the command “games” to ICS.
K# Sought
Sends the command “sought” to ICS.
K# Tell (name)
Inserts “tell name ” into the input box. The string name is the current selection if it is not empty. Otherwise name 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.
K# Message (name)
Inserts “message name ” into the input box, where name is as defined above.
K# Finger (name)
Sends the command “finger name” to ICS, where name is as defined above. 
K# Vars (name)
Sends the command “vars name” to ICS, where name is as defined above. 
K# Observe (name)
Sends the command “observe name” to ICS, where name is as defined above. Here name can be either a user handle or a game number.
K# Match (name)
Sends the command “match name” to ICS, where name is as defined above. 
K# Play (name)
Sends the command “play name” to ICS, where name is as defined above. Here name can be either a user handle or a seek ad number.

K#$+ BUTTONS
K <<
Same as Back to Start.
K <
Same as Backward.
K P
Same as Pause. The button label changes to C while WinBoard is pausing.
K >
Same as Forward.
K >>
Same as Forward to End.

Note that using the mouse wheel has the same effect as using the < or > button.

KK # $ + COMMAND LINE OPTIONS
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 settings file, 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 Save Settings Now or Save Settings on Exit, so most people will not need to read this section.
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 opt, you can just give its short name preceded by a minus sign or slash (-opt or /opt); to turn one off, prefix the short name by an “x” or an extra minus sign (-xopt or /-opt). 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. (-opt 23 or /option: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).
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 /cp, /ics, or /ncp.  If you give the /cp option, you must also give the /fcp and /scp options. If you give the /ics option, you must also give the /icshost option.
Chess Engine Options
UCI Engine Support                  !NEW!
Internet Chess Server Options
Load and Save Options
User Interface Options
Adjudication Options                   !NEW!
Other Options

K$#+ Chess Engine Options
K#/cp or /xcp, or K#/chessProgram true|false
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.
K#/tc or K#/timeControl minutes[:seconds]
Each player begins with his clock set to the timeControl period. Default: 5 minutes. The additional options movesPerSession and timeIncrement are mutually exclusive.
K#/mps or K#/movesPerSession moves
When both players have made movesPerSession moves, a new timeControl period is added to both clocks. Default: 40 moves.
K#/inc or K#/timeIncrement seconds
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.
K# /clock or /xclock, or K# /clockMode true|false
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.
K# /st or K# /searchTime minutes[:seconds]
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.
K# /depth or K# /searchDepth number
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.
K# /firstNPS number
K# /secondNPS number
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 number, 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 number equals zero, it can obviously not 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. This option can provide fairer conditions for 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!
K# /firstTimeOdds factor
K# /secondTimeOdds factor
Reduces the time given to the mentioned engine by the given factor. If pondering is off, the effect is indistinguishable from what would happen if the engine was running on a factor times slower machine.
K# /timeOddsMode mode
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 opponent’s time is normalized similarly. If mode=0, both play with reduced time.
K# /ponder or /xponder, or K# /ponderNextMove true|false
Sets the Ponder Next Move option. Default: True.
K# /thinking or /xthinking, or K# /showThinking true|false
Sets the Show Thinking option. Default: False.
K# /periodic or /xperiodic, or K# /periodicUpdates true|false
Sets the Periodic Updates option. Default: True.
K# /mg or K# /matchGames n
Automatically runs an n-game match between two chess engines, with alternating colors. If the loadGameFile or 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 saveGameFile option is set, a move record for the match will be appended to the specified file. If the 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).
K# /mm or /xmm, or K# /matchMode true|false
Provided for backward compatibility. If true and matchGames=0, sets matchGames=1.
K# /matchPause number
Sets the length of the pause between games in match mode to number 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.)
K# /fd or K# /firstDirectory dir
K# /sd or K# /secondDirectory dir 
K# /fcp or K# /firstChessProgram command
K# /scp or K# /secondChessProgram command 
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.
The dir 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 dir is not an absolute pathname, it is interpreted relative to the directory from which WinBoard.exe itself was loaded. The dir argument is ignored if the chess engine is being run on a remote machine (see firstHost and secondHost below). The default value for dir "", meaning that the chess engine is expected to be installed in the same directory as WinBoard.
The command 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 command in single or double quotes. If the engine name or an engine argument has a space in it, use single quotes around the whole command, 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, QChess1.5.exe), you must include the ".exe" extension; otherwise you can leave it out. The default value for command is "", which brings up the startup dialog to ask which engines you want.
Examples:
WinBoard /cp /fd="C:\Program Files\Crafty" /fcp=WCrafty-15.12.exe /scp=GNUChess
WinBoard /cp /fd="C:\Miracle Games" /fcp='"Miracle Chess.exe" /wow' /scp=GNUChess
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.
Examples:
WinBoard /cp /fd="C:\Engines\Crafty" /fcp=”WCrafty-15.12 WBopt /%sTimeOdds=2” /scp=GNUChess
Meaning that Crafty will have to play with half the time GNUChess will get.

K# /fh or K# /firstHost host
K# /sh or K# /secondHost host
Hosts on which the chess engines are to run. The default for each is "localhost". If you specify another host, WinBoard uses 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.
K# /firstInitString or /initString string
K# /secondInitString string
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 settings file, and WinBoard will convert it to a newline.
All chess engines require the "new" command to start a new game.
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.
K# /firstComputerString string
K# /secondComputerString string
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 "".
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.
K# /fb or /xfb, or K# /firstPlaysBlack true|false
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.
K#/reuse or /xreuse, or K#/reuseFirst true|false
K#/reuse2 or /xreuse2, or K#/reuseSecond true|false
If this option is True (the default), WinBoard 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.
K#/firstProtocolVersion ver
K#/secondProtocolVersion ver
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.
K#/firstScoreAbs true|false
K#/secondScoreAbs true|false
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.
K#/niceEngines priority
This option allows you to lower the priority of the engine processes, so that the generally insatiable hunger for CPU time of chess engines does not interfere so much with smooth operation of WinBoard (or the rest of your system). Try priority = 10 or even 20 to lower the priority of the engines. Negative values could increase the engine priority, which is not recommended.
K#/firstOptions string
K#/secondOptions string
The given string is a comma-separated list of (option name, option value) pairs, like the following example: “style=Karpov,blunder rate=0”. If the options announced by the engine at startup through the feature commands of WinBoard protocol matches one of the option names (i.e. “style” or “blunder rate”), it would be set to the given value (i.e. “Karpov” or 0) through a corresponding option command to the engine. This provided that the type of the value (text or numeric) matches as well.
K#/firstNeedsNoncompliantFEN string
K#/secondNeedsNoncompliantFEN string
The castling rights and e.p. fields of the FEN sent to the mentioned engine with the setboard command will be replaced by the given string. This can for instance be used to run engines that do not understand Chess960 FENs in variant fischerandom, to make them at least understand the opening position, through setting the string to “KQkq -”. (Note you also have to give the e.p. field!) Other possible applications are to provide work-arounds for engines that want to see castling and e.p. fields in variants that do not have castling or e.p. (shatranj, courier, xiangqi, shogi) so that WinBoard would normally omit them (string = “- -“, or to add variant-specific fields that are not yet supported by WinBoard (e.g. to indicate the number of checks in 3check).

+K$# UCI Engine Support
K# /fUCI or K# /firstIsUCI true|false
K# /sUCI or K# /secondIsUCI true|false
Indicates if the mentioned engine executable file is an UCI engine, 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.
K# /PolyglotDir filename
Gives the name of the folder in which Polyglot is installed.
K# /usePolyglotBook true|false
Specifies if the Polygot book should be used.
K# /PolyglotBook filename
Gives the filename of the opening book that Polyglot should use.
K# /fNoOwnBookUCI or K# /firstXBook or K# /firstHasOwnBookUCI true|false
K# /sNoOwnBookUCI or K# /secondXBook or K# /secondHasOwnBookUCI true|false
Indicates if the mentioned engine lacks an opening book or not. Engines that have an own opening book will not use the GUI book (as given by /polyglotBook) even if /usePolyglotBook is set to true.
K# /defaultHashSize number
Sets the size of the hash table to number MegaBytes.
K# /defaultCacheSizeEGTB number
Sets the size of the EGTB cache to number MegaBytes.
K# /defaultPathEGTB filename
Gives the name of the folder where the end-game tablebases are installed.

+K$# Internet Chess Server Options
K# /ics or /xics, or K# /internetChessServerMode true|false
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 ICS Client Default: False.
You can create a script file containing ICS commands that WinBoard will type in for you whenever you connect to the ICS. See ICS Logon.
K# /icshost or K# /internetChessServerHost hostname
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.
K# /icsport or K# /internetChessServerPort portnumber
The port number to use when connecting to a chess server in ICS mode. Default: 5000.
K#/icshelper program
An external helper program used to communicate with the chess server. Typically Ktimestamp for the ICC (chessclub.com) or Ktimeseal for FICS (freechess.org, eics.daimi.aau.dk, etc.). This option is shorthand for “/useTelnet /telnetProgram program”.
K#/telnet or /xtelnet, or K#/useTelnet true|false
This option is poorly named; it should be called /useHelper. 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.
K#/gateway hostname
If this option is set to a host name, WinBoard uses 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 FIREWALLS section below for an explanation of when this option is useful.
K#/telnetProgram program
This option is poorly named; it should be called /helperProgram. 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.
K#/icscom or K#/internetChessServerComPort name
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:
WinBoard /ics /icscom:com1
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 Local Line Editing 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 LIMITATIONS section below about extra echoes.
K# /comPortSettings “dataRate,dataBits,parity,stopBits,flow”
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 Communications dialog.
K# /icslogon or K# /internetChessServerLogonScript filename
This option lets you change the name used for the ICS Logon file. Default: "ICS.ini". The filename is interpreted relative to WinBoard's installation directory (the directory containing WinBoard.exe).
K# /autocomm or /xautocomm, or K# /autoComment true|false
Sets the Auto Comment option. Default: False.
K# /autoflag or /xautoflag, or K# /autoCallFlag true|false
Sets the Auto Flag option. Default: False.
K# /autobs or /xautobs, or K# /autoObserve true|false
Sets the Auto Observe option. Default: False.
K# /autoKibitz
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. Also diverts similar kibitz information of an opponent engine that is playing you through the ICS to the engine-output window, as if the engine was playing locally.
K# /moves or /xmoves, or K# /getMoveList true|false
Sets the Get Move List option. Default: True.
K# /edit  or /xedit, or K# /localLineEditing true|false
Sets the Local Line Editing option. Default: True.
K# /quiet or /xquiet, or K# /quietPlay true|false
Sets the Quiet Play option. Default: False
K# /blindfold true|false
Sets the Blindfold option. Default: False
K#/pre or K#/xpre, or K# /premove true|false
Sets the Premove option. If set to True, the premove feature is enabled. If set to False, premove is disabled and the other Premove settings are ignored. Default: False.
K#/prewhite or K#/xprewhite, or K# /premoveWhite true|false
K# /premoveWhiteText movetext
If premoveWhite is set to True and you are playing white in an ICS game, the text specified by the premoveWhiteText option is sent to the ICS as soon as the game starts.  These options can be set from the Premove section of the ICS Options dialog box. The default for premoveWhite is False.
K#/preblack or K#/xpreblack, or K# /premoveBlack true|false
K# /premoveBlackText movetext
If premoveBlack is set to True and you are playing black in an ICS game, the text specified by the premoveBlackText 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 Premove section of the ICS Options dialog box. The default for premoveBlack is False.
K#/alarm or K#/xalarm, or K#/icsAlarm true|false
K#/icsAlarmTime milliseconds
When icsAlarm is set to True, the alarm sound is played when your clock counts down to icsAlarmTime seconds.  For ICS games with time controls that include an increment, the alarm will sound each time the clock counts down to the icsAlarmTime.  The icsAlarmTime can be set by selecting ICS Alarm from the ICS options dialog. The default is 5 seconds.
K# /keepAlive time
When time is non-zero, send a “date” command every time minutes after your last move to the ICS, to prevent it from logging you off. (Do not use frivolously! The ICS operator might ban you.) Default: 0.

+K$# Load and Save Options
K# /lgf or K# /loadGameFile filename
K# /lgi or K# /loadGameIndex N
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 N, the menu is suppressed and the Nth game found in the file is loaded immediately.
K# /td or K# /timeDelay seconds
Time delay between moves during Load Game. 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.
K# /sgf or K# /saveGameFile filename
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.
K# /autosave or /xautosave, or K# /autoSaveGames true|false
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.
K# /lpf or K# /loadPositionFile filename
K# /lpi or K# /loadPositionIndex N
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 N, the Nth position found in the file is loaded; otherwise the first is loaded.
K# /spf or K# /savePositionFile filename
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.
K# /pgnExtendedInfo true|false
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.
K# /pgnEventHeader string
Sets the name used in the PGN event tag to string.
K# /saveOutOfBookInfo true|false
Include the information on how the engine(s) game out of its opening book in a special ‘annotator’ tag with the PGN file.
K# /oldsave or /xoldsave, or K# /oldSaveStyle true|false
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.
K# /debug or /xdebug, or K# /debugMode true|false
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.
K# /debugFile  filename or K# /nameOfDebugFile filename
Sets the name of the file to which WinBoard saves debug information (including all communication to and from the engines).
K# /engineDebugOutput  number
Specifies how WinBoard should handle unsolicited output from the engine, with respect to saving it in the debug file. The output is further (hopefully) ignored. If number=0, WinBoard refrains from writing such spurious output to the debug file. If number=1, all engine output is written faithfully to the debug file. If  number=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.
This option is provided for the benefit of applications that use the debug file as a source of information, such as the broadcaster of live games TLCV / TLCS. Such applications can be protected from spurious engine output that might otherwise confuse them.

+K$# User Interface Options
K# /firstLogo filename
K# /secondLogo filename
The appearance of either of these options causes WinBoard to reserve space for displaying logos on both sides of the clocks. Normally the first logo goes left, the second right, unless the option ‘swap clocks’ is in effect. The filename must refer to a bitmap file (.bmp) containing a logo for the particular player (usually a 130x65 or 100x50 bitmap, which will be scaled to the height of two clock lines.)
K# /autoLogo true|false
When true, causes WinBoard to automatically supply a logo for the first and second chess program, by looking for a fie named logo.bmp in the engine directory (as specified by the /fd or /sd option), and then displays it like this file was given as an argument to the /firstLogo or /secondLogo option. In this mode it will also look in a sub-folder of its installation folder called “logos”, for finding logos with names corresponding to the ICS (e.g. “chessclub.com.bmp”) or to the human user, should they be involved in a game.
K# /hideThinkingFromHuman true|false
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).
K# /noGUI
Suppresses all GUI functions of WinBoard (to speed up automated ultra-fast engine-engine games, which you don’t want to watch). There will be no board or clock updates, no printing of moves, and no update of the icon on the task bar in this mode.
K# /top or /xtop, or K# /alwaysOnTop true|false
Sets the Always On Top option. Default: False.
K# /queen or /xqueen, or K# /alwaysPromoteToQueen true|false
Sets the Always Queen option. Default: False.
K#/drag or /xdrag, or K#/animateDragging true|false
Sets the Animate Dragging option. Default: True.
K#/animate or /xanimate, or K#/animateMoving true|false
Sets the Animate Moving option. Default: True.
K# /flip or /xflip, or K# /flipView true|false
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 Flip View menu command can be used to flip the board after the game starts
K#/autoflip or /xautoflip, or K#/autoFlipView true|false
Sets the Auto Flip View option. Default: True.
K#/autoraise or /xautoraise, or K#/autoRaiseBoard true|false
Sets the Auto Raise Board option. Default: True.
K#/highdrag or /xhighdrag, or K#/highlightDragging true|false
Sets the Highlight Dragging option. Default: False.
K#/highlight or /xhighlight, or K#/highlightLastMove true|false
Sets the Highlight Last Move option. Default: False.
K# /exit or /xexit, or K# /popupExitMessage true|false
Sets the Popup Exit Message menu option. Default: False.
K# /popup or /xpopup, or K# /popupMoveErrors true|false
Sets the Popup Move Errors menu option. Default: False.
K# /coords or /xcoords, or K# /showCoords true|false
Sets the Show Coords option. Default: False.
K# /legal or /xlegal, or K# /testLegality true|false
Sets the Test Legality option. Default: True.
K# /size or K# /boardSize sizename
Sets the Board Size option. Also chooses which board size any following Font options will affect. The default is the largest size that will fit on your screen.
K#/wpc or K# /whitePieceColor color
K#/bpc or K# /blackPieceColor color
K#/lsc or K# /lightSquareColor color 
K#/dsc or K# /darkSquareColor color 
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 #rrggbb) or in decimal (as rrr,ggg,bbb). 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 Board Colors section of the Board Options dialog.
If you are using a K# grayscale monitor, try setting the colors to:
-whitePieceColor:#FFFFFF
-blackPieceColor:#000000
-lightSquareColor:#CCCCCC
-darkSquareColor:#999999
K#/hsc or K# /highlightSquareColor color 
K#/phc or K# /premoveHighlightColor color 
Color specifications for the Highlight Last Move and Premove options, respectively. Colors can be specified only by red/green/blue intensity, either in hexadecimal (as #rrggbb) or in decimal (as rrr,ggg,bbb). 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.
K# /mono or /xmono, or K# /monoMode true|false
Determines whether WinBoard displays its pieces and squares in black and white (True) or color (False, the default). Available in the Board Colors section of the Board Options dialog.
K# /flipBlack true|false
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.
K# /allWhite true|false
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.
K# /renderPiecesWithFont fontname
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.
K# /fontPieceToCharTable characterstring
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.
K# /fontPieceSize number
The number gives the size of the piece, as a percentage of the square size.
K#/fontPieceBackColorWhite color
K#/fontPieceForeColorWhite color
K#/fontPieceBackColorBlack color
K#/fontPieceForeColorBlack color 
Color specifications for white pieces, black pieces that are generated with font-based rendering.
K# /liteBackTextureFile filename
K# /darkBackTextureFile filename
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.
K# /liteBackTextureMode number
K# /darkBackTextureMode number
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.

K# /overideLineGap number
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.
K # /highlightMovesWithArrow true|false
If this option is true, a big, fat arrow is drawn to indicate the last move.
K # /highlightArrowColor color
Specifies the color of the arrow that highlights the moves.
K# /evalHistoColorWhite color
K# /evalHistoColorBlack color
Specifies the colors to be used to plot the white and black scores in the evaluation graph.

K# /colorShout “effects color”
K# /colorSShout “effects color”
K# /colorChannel1 “effects color”
K# /colorChannel “effects color”
K# /colorKibitz “effects color”
K# /colorTell “effects color”
K# /colorChallenge “effects color”
K# /colorRequest “effects color”
K# /colorSeek “effects color”
K# /colorNormal “effects color”
Select colors and effects to colorize messages in the ICS Interaction window. The effects may be any combination of bold, italic, underline, and strikeout. Colors are specified as for squares and pieces. Available on the ICS Interaction Colors section of the ICS Options 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.
K# /colorBackground color
Sets the background color for the ICS Interaction window. Available on the ICS Interaction Colors section of the ICS Options dialog.
K# /colorize or /xcolorize, or K# /colorizeMessages true|false
If True, WinBoard colorizes messages in the ICS Interaction window with the colors listed above. Default: True. Available in the ICS Interaction Colors section of the ICS Options dialog.
K# /clockFont “fontname:size effects”
K# /messageFont “fontname:size effects”
K# /coordFont “fontname:size effects”
K# /tagsFont “fontname:size effects”
K# /commentFont “fontname:size effects”
K# /icsFont “fontname:size effects”
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 bold, italic, underline, and strikeout. Example: /clockFont="Arial:20.0 bi". Available on the Fonts menu.
K# /soundShout sound
K# /soundSShout sound
K# /soundChannel1 sound
K# /soundChannel sound
K# /soundKibitz sound
K# /soundTell sound
K# /soundChallenge sound
K# /soundRequest sound
K# /soundMove sound 
K# /soundBell sound 
K# /soundIcsWin sound
K# /soundIcsLoss sound 
K# /soundIcsDraw sound 
K# /soundIcsUnfinished sound 
K# /soundIcsAlarm sound 
Associate sounds with WinBoard events. Most of the events are the same ones that cause text colorization. In addition, soundMove is played if a chess engine or another player makes a move. SoundBell is played if the chess server sends an ASCII BEL character (Ctrl+G). Available on the Sounds menu.
SoundIcsWin, soundIcsLoss, soundIcsDraw and soundIcsUnfinished are played at the conclusion of an ICS game.  The result of the game determines which sound is played.
SoundIcsAlarm is played when your game clock counts down to icsAlarmTime. 
The sound argument may be one of the following:
•	The name of a .wav file. The filename is interpreted relative to WinBoard's installation directory (the directory containing WinBoard.exe).
•	$, indicating the default system sound.
•	! followed by the name of a built-in WinBoard wave resource.
•	! alone, or “” (empty string), indicating silence.
The default for soundMove and soundBell is $, while the others default to silence.
K#/icsMenu={entries} or /icsMenu=@filename
This option lets you customize the right-button context menu 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 "-". The fields are:
1.	The menu text. If this field begins with "|", the item begins a new column in the menu and the "|" is not shown. If this field contains an "&", 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.
2.	Text to insert into the input pane. The text cannot include a comma. You can use ICS aliases to get around this limitation.
3.	A flag (1 or 0) saying whether to insert a space and name (see above) after the text. If you set this flag, you might also want to put "(name)" into the menu text as a memory aid.
4.	A flag (1 or 0) saying whether the result should be sent immediately to ICS or left in the input pane for further editing.
The entry "-" produces a separator line in the menu. The top three menu entries are always Copy and Paste, Copy, and Paste, but you have full control over the rest of the menu.
The default menu is:
–
&Who,who,0,1
Playe&rs,players,0,1
&Games,games,0,1
&Sought,sought,0,1
|&Tell (name),tell,1,0
M&essage (name),message,1,0
–
&Finger (name),finger,1,1
&Vars (name),vars,1,1
&Observe (name),observe,1,1
&Match (name),match,1,1
Pl&ay (name),play,1,1
There is no graphical user interface to set this option. To change it, edit your settings file with a plain text editor such as Notepad.
K#/icsNames={names} or /icsNames=@filename
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 settings file with a plain text editor such as Notepad.

K#/firstChessProgramNames={names} or /firstChessProgramNames="@filename"
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. 

There is no graphical user interface to set this option. To change it, edit your settings file with a plain text editor such as Notepad. Example:
/firstChessProgramNames={GNUChess
WCrafty-15_11 /fd="C:\Program Files\Crafty"
ArasanX /fd="C:\Program Files\Arasan\Arasan 4.1"
"EXchess xb" /fd=C:\EXchess
Comet-WB /fd=C:\Comet
}
K#/secondChessProgramNames={names} or /secondChessProgramNames="@filename"
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.

There is no graphical user interface to set this option. To change it, edit your settings file with a plain text editor such as Notepad. Example:
/secondChessProgramNames={GNUChess
WCrafty-15_11 /sd="C:\\Program Files\\Crafty\"
ArasanX /sd="C:\Program Files\Arasan\Arasan 4.1"
"EXchess xb" /sd=C:\EXchess
Comet-WB /sd=C:\Comet
}
K#/x=xcoord  /y=ycoord
Sets the initial location of the board window, giving the screen coordinates of the upper left-hand corner. Both arguments must be given together.
K#/analysisX=xcoord  /analysisY=ycoord  /analysisW=width  /analysisH=height
These options have been deprecated, as the analysis window is replaced by the more general engine-output window. They are recognized, but ignored, and no longer saved in the winboard.ini file.
K#/commentX=xcoord  /commentY=ycoord  /commentW=width  /commentH=height
Sets the initial location and size of the Comment window, giving the screen coordinates of the upper left-hand corner (relative to the main window), the width, and the height. All four arguments must be given together.
K#/gameListX=xcoord  /gameListY=ycoord  /gameListW=width  /gameListH=height
Sets the initial location and size of the Game List window, giving the screen coordinates of the upper left-hand corner (relative to the main window), the width, and the height. All four arguments must be given together.
K#/icsX=xcoord  /icsY=ycoord  /icsW=width  /icsH=height
Sets the initial location and size of the ICS Interaction window, giving the screen coordinates of the upper left-hand corner (relative to the main window), the width, and the height. All four arguments must be given together.
K#/tagsX=xcoord  /tagsY=ycoord  /tagsW=width  /tagsH=height
Sets the initial location and size of the Tags window, giving the screen coordinates of the upper left-hand corner (relative to the main window), the width, and the height. All four arguments must be given together.
K#/moveHistoryX=xcoord  moveHistoryY=ycoord  /moveHistoryW=width  /moveHistoryH=height
Sets the initial location and size of the move-history window, giving the screen coordinates of the upper left-hand corner (relative to the main window), the width, and the height. All four arguments must be given together.
K#/evalGraphX=xcoord  /evalGraphY=ycoord  /evalGraphW=width  /evalGraphH=height
Sets the initial location and size of the evaluation-graph window, giving the screen coordinates of the upper left-hand corner (relative to the main window), the width, and the height. All four arguments must be given together.
K#/engineOutputX=xcoord  /engineOutputY=ycoord  
  /engineOutputW=width  /engineOutputH=height
Sets the initial location and size of the engine-output window, giving the screen coordinates of the upper left-hand corner (relative to the main window), the width, and the height. All four arguments must be given together.
K#/engineOutputUp true|false 
K#/evalGraphUp true|false
K#/moveHistoryUp true|false
If set to True, the corresponding window is displayed, if False, the window is absent.
K#/stickyWindows true|false
Auxiliary windows touching the main window will stay attached to the latter when you move it.
K#/autoDisplayComment true|false
K#/autoDisplayTags true|false
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.
K# /gameListTags string
The string contains single-character codes specifying the PGN tags that have to be listed for each game in the game-list window, and their order. The meaning of the characters is a=out-of-book info, b=black Elo, e=event, d=date, o=round, p=players, r=result, c=result comment, w=white Elo, s=site, t=time control and v=variant, Default: “eprd”.

+K$# Adjudication Options
K# /adjudicateLossThreshold scorethreshold
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.
K# /adjudicateDrawMoves number
If the given value is non-zero, WinBoard adjudicates the game as a draw if after the given number of moves it was not yet decided.
K# /checkMates true|false
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.
K# /testClaims true|false
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.
K# /materialDraws true|false
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.
K# /trivialDraws true|false
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.
K# /ruleMoves number
If the given value is non-zero, WinBoard adjudicates the game as a draw after the given number of consecutive reversible moves. Engines can claim draws after 50 moves, irrespective of the value of number.
K# /repeatsToDraw number
If the given value is non-zero, WinBoard adjudicates the game as a draw if a position is repeated the given number of times. Engines can claim draws after 3 repeats, (on the 3rd occurrence, actually), irrespective of the value of number. Beware that positions that have different castling or en-passant rights do not count as repeats, WinBoard is fully e.p. and castling aware!

+K$# Other Options
K# /ncp or /xncp, or K# /noChessProgram true|false
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.
K# /mode or K# /initialMode modename
If this option is given, WinBoard selects the given modename from the Mode menuafter starting and (if applicable) processing the loadGameFileor loadPositionFileoption. Default: "". Other supported values are TwoMachines, AnalyzeFile, Analysis, MachineWhite, MachineBlack, EditGame, EditPosition, and Training.
K# /variant  varname
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:
normal		Normal chess
wildcastle	Shuffle chess, king can castle from d file
nocastle	Shuffle chess, no castling allowed
fischerandom	Fischer Random shuffle chess
bughouse	Bughouse, ICC/FICS rules
crazyhouse	Crazyhouse, ICC/FICS rules
losers  	Lose all pieces or get mated (ICC wild 17)
suicide	Lose all pieces including king (FICS)
giveaway	Try to have no legal moves (ICC wild 26)
twokings	Weird ICC wild 9
kriegspiel	Opponent's pieces are invisible
atomic   	Capturing piece explodes (ICC wild 27)
3check	Win by giving check 3 times (ICC wild 25)
xiangqi	Chinese Chess (on a 9x10 board)
shogi		Japanese Chess (on a 9x9 board, with piece drops) 
capablanca	Capablanca Chess (10x8 board, with Archbishop and Chancellor pieces)
gothic		similar, with a better initial position
caparandom	An FRC-like version of Capablanca Chess (10x8 board) 
janus		A game with two Archbishops (10x8 board)
shatranj	Ancient Arabic Chess, with Elephants and General replacing B and Q.
courier	Medieval intermedite between shatranj and modern Chess (on 12x8 board) 
falcon		A patented Chess variant with two Falcon pieces (10x8) board 
berolina	Pawns capture straight ahead, and move diagonal (legality testing off!)
cylinder	Pieces wrap around the board, as if it were a cylinder (legality testing off!) 
fairy		A variant in which all pieces known to WinBoard can participate
knightmate	King moves a Knight, and vice versa
super		Superchess, a shuffle variant with B+N, R+N, K+N and Q+N compound
great		Great Shatranj, variant without sliders, on 10x8 board (legality testing off!)

In the shuffle variants, WinBoard does now shuffle the pieces, although you can still do it by hand using Edit Position. Some variants are supported only in ICS mode, including bughouse, and kriegspiel. The winning/drawing conditions in crazyhouse (offboard interposition on mate), losers, suicide, giveaway, atomic, and 3check are not fully understood. In crazyhouse, WinBoard now does keep track of offboard pieces.In shatranj it does implement the baring rule when mate detection is switched on.
K# /boardHeight height
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.
K# /boardWidth width
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.
K# /holdingsSize size
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 size 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 size equals 0, there will be no holdings.
K# /defaultFrcPosition number
Specifies the number of the opening position in shuffle games like FRC. A value of ‘-1’ means the position is randomly generated by WinBoard.
K# /pieceToSquareTable characterstring
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.
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).
Note that promoted pieces are represented by pieces 11 further in the list.
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.
K# /rsh or K# /remoteShell shellname
Name of the command used to run programs remotely. If this option is not given, WinBoard uses its own built-in implementation of the Unix rcmd protocol (the protocol used by rsh).
K# /ruser or K# /remoteUser username
User name on the remote system when running programs with the remoteShell. The default is your local user name.
K# /userName username
Name under which the Human player will be listed in the PGN file. (Default is the login name on your local computer.)
K# /delayBeforeQuit number
K# /delayAfterQuit number
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.
K# /ini or K# /settingsFile filename
K# /saveSettingsFile filename
K#@ file-name
See Settings.

KK$#+ INITIALIZATION FILES
K # Settings
When WinBoard starts up, it reads option settings from a file named winboard.ini in its installation directory (the directory containing winboard.exe). Options in this file have the same format as command line 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 (;).
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.
If WinBoard encounters a /settingsFile filename or @filename 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.
The Save Settings Now menu command writes the current values of most options to a file. In addition, settings are saved automatically when WinBoard exits if Save Settings on Exit is checked. The settings are written to the last file named in a /settingsFile command that could be successfully read, or in a /saveSettingsFile command (where no attempt is made to read it at all, making it work even if the mentioned file did not exist yet), if any; otherwise to winboard.ini. The @ option does not affect which file settings are saved to.
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.
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 before such a tournament. Also note that a settings file that contains a /settingsFile or /saveSettingsFile option to redirect later saving to another file effectively protects its own contents against being overwritten by saving settings.

K# ICS Logon
Whenever WinBoard connects to the Internet Chess Server, if it finds a file called ICS.ini in its installation directory, 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 ICS.ini by using the icslogon command line option.

K$#+ INSTALLING CHESS ENGINES
Introduction
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.
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.
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:
1. Get a copy of the engine and any supporting files it needs.
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.
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.
4. Create a shortcut on your desktop or Start menu to run the engine with WinBoard.
5. Optionally edit your WinBoard.ini file to add the engine to the drop-down lists on WinBoard's startup dialog.
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.
Example: Crafty
1. Choose a directory to put Crafty in. We'll use C:\Program Files\Crafty in this example. Download your copy of Crafty into this directory from its author's FTP site, ftp://ftp.cis.uab.edu/pub/hyatt. At this writing, you will need at least the following files:
read.me
v15/crafty.doc
v15/crafty.faq
v15/wcrafty-15.*.exe (where * is replaced by the largest number there)
common/start.zip
common/medium.zip (or another book).
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.
3. Optional, but recommended: In an MS-DOS Prompt box, cd to the directory where WinBoard is installed, typically "C:\Program Files\WinBoard". Then type the following command line. Use the actual name of the wcrafty file you downloaded, not an *, and if your browser changed the first period to an underscore when you downloaded the file, make that change in the command line too.
WinBoard /cp /fcp=WCrafty-15.* /fd="C:\Program Files\Crafty" /scp=WCrafty-15.* /sd="C:\Program Files\Crafty"
WinBoard should start up, with Crafty running as its chess engine. Check that you can play chess against Crafty.
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, after the closing quotation mark. Use the actual name of the wcrafty file you downloaded, not an *, and if your browser changed the first period to an underscore when you downloaded the file, make that change in the command line too.
/cp /fcp=WCrafty-15.* /fd="C:\Program Files\Crafty" 
/scp=WCrafty-15.* /sd="C:\Program Files\Crafty"
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.
5. To add Crafty as an option in the WinBoard Startup dialog, edit your WinBoard.ini file with Notepad or another plain text editor, carefully following the example shown under /firstChessProgramNames above.
For more information
If you would like to run an automated computer player on the ICS, see the separate file zippy.README. If you would like to write your own engine to interface to WinBoard, see the separate file engine-intf.html, 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.

K#$+ FIREWALLS
By default, "WinBoard /ics" 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. Important: See the paragraph in the LIMITATIONS section below about extra echoes.
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: 
WinBoard -ics -icshost fire.wall.com -icsport 23
Then when you run WinBoard 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.
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".
Exception: chessclub.com itself lets you connect to the chess server on the default telnet port (23), which is what you get if you don’t specify a port to the telnet program. But the other chess servers don’t allow this.
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: 
WinBoard -ics -gateway rsh.wall.com -icshost chessclub.com
Then when you run WinBoard 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.
ICC timestamp and FICS timeseal do not work through many 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.
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.

K#$+ LIMITATIONS AND NON-LIMITATIONS
WinBoard 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.
CMail, the companion program to xboard for playing electronic mail correspondence chess, has not been ported to Win32.
There is no way for two people running copies of WinBoard to play each other without going through the Internet Chess Server.
Under some circumstances, your ICS password may be echoed when you log on.
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 "stty -echo" after you log in to the provider but before you run telnet, timestamp, or timeseal. In addition, you may need to type the sequence “Ctrl+Q Ctrl+E Enter“ after you have finished logging in to ICS. On VMS, type “set terminal /noecho /nowrap”, and after you telnet to the ICS, type “Ctrl+Q Ctrl+] Enter set mode char Enter Enter”. 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. Don’t just turn off Local Line Editing so that you see only the remote echo and not the local one; that will make the interleaving problem worse.
The game parser recognizes only algebraic notation (SAN).
The ICS logon file does not work properly when you connect to ICS through a Unix gateway host by setting icsPort to 23. The Unix login process apparently discards type-ahead.
Some WinBoard functions may not work with versions of GNU Chess earlier than 4.0, patchlevel 77. The current version of WinBoard works best with Crafty version 15.11 or later.
Many of the following points used to be limitations in WinBoard 4.2.7 and earlier, but are now fixed:
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. It permits castling with the king on the d 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. 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. Anyway, if you would attempt an illegal move when using a chess engine or the ICS, WinBoard will accept the error message that comes back, undo the move, and let you try another.
FEN positions saved by WinBoard do include correct information about whether castling or en passant are legal, and also handle the 50-move counter.
The mate detector does not understand that non-contact mate is not really mate in bughouse. 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, not even when the option Detect Mates is on.
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.
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.
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.
Also see the ToDo file included with the distribution for many other possible bugs, limitations, and ideas for improvement that have been suggested.

K#$+ AUTHORS AND CONTRIBUTORS
WinBoard is partly based on xboard, a chessboard program for Unix and the X Window System. Tim Mann has been responsible for all versions of WinBoard, and for xboard versions 1.3 and beyond. H.G.Muller is responsible for version 4.3.
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 user interface improvements and improved Crafty support. Jochen Wiedmann ported xboard to the Amiga, creating AmyBoard, and converted the documentation to texinfo. Elmar Bartel contributed the new piece bitmaps for version 3.2. Evan Welsh wrote CMail. John Chanak contributed the initial implementation of ICS mode. The default color scheme was adapted from Wayne Christopher's XChess program. Chris Sears and Dan Sears wrote the original xboard. They were responsible for xboard versions 1.0 through 1.2. 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. 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.
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.
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).
Michel van den Bergh provided the code for reading Polyglot opening books.
Arun Persaud worked with H.G. Muller to combine all the features of the never-released WinBoard 4.2.8 of the Savannah project (mainly by Daniel Mehrmann), and the never-released 4.3.16 into a unified WinBoard 4.4, which is now available both from the Savannah web site and the WinBoard forum.

K#$+ COPYRIGHT
Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. 
Enhancements Copyright 1992-2009 Free Software Foundation, Inc.
The following terms apply to Digital Equipment Corporation's copyright interest in WinBoard:
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 WinBoard 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 3 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.