+$#KWinBoard: Chessboard for Windows
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. GNU Chess is supplied with WinBoard, 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 observe games with a chessprogram, 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.

K#Internet Chess Server:  Analyze observe games with a chessprogram
WinBoard support analyze a observe game with a chessprogram. At the moment there are some limitations at this function:
•	You can only analyze one game at the same time.   
•	You must activate the analyze for each new  game.
•	You can only analyze observe games.

To use this function of WinBoard you need a chessprogram that support WinBoard.
You must start the chessprogram with the Zippy option. Please read zippy.Readme for more details and take a look to Installing Chess Engines  for more instructions.

Quick syntax example to start WinBoard with a chessprogram:
Winboard.exe /zp /fcp <your chessprogram binary> /fd <your chessprogram directory/path> /ics /icshost <your Internet Chess Server>

After login on a Internet Chess Server (ICS) you need to choice your  observe game first. After that  enable the  “Analysis Mode”  under “Mode Menu”.  To disable the analyze just klick to this mode again.

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# 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 Reset.
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.
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# 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# 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. This feature currently works only if Crafty is 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. This feature currently works only if Crafty is the chess engine.
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.
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.
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# 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# Show Game List
Shows or hides the list of games generated by the last Load Game command.
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# 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 examining a game, by issuing the ICS unexamine command.

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.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.
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 Reset 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#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# 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.)
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.
K# Board Colors
Lets you change the colors WinBoard is using to draw the board and pieces.

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# 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.

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
Internet Chess Server Options
Load and Save Options
User Interface Options
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# /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# /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
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 "".
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$# 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# /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$# 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# /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$# User Interface Options
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# /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
Sets the initial location and size of the Analysis window, giving the screen coordinates of the upper left-hand corner, the width, and the height. All four arguments must be given together.
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, 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, 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, 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, the width, and the height. All four arguments must be given together.

+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)
In the shuffle variants, WinBoard does not shuffle the pieces, but you can do it by hand using Edit Position. Some variants are supported only in ICS mode, including fischerandom, 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 does not yet keep track of offboard pieces.
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# /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# /ini or K# /settingsFile 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, 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.
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
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.
The internal move legality tester does not look at the game history, so in some cases it misses illegal castling or en passant captures. It permits castling with the king on the d file because this is possible in some "wild 1" games on ICS. It does not check piece drops in bughouse to see if you actually hold the piece you are trying to drop. However, if you 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 not include correct information about whether castling or en passant are legal.
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.
Edit Game mode always uses non-bughouse rules.  Although you can load and edit games that contain piece drops, the piece menus are not active, so you cannot insert piece drops. Also, WinBoard thinks an edited game is over when a mating move is inserted, even if the mate is non-contact.
Fischer Random castling is not understood.  You can probably play Fischer Random successfully on ICS by typing castling moves into the ICS Interaction window, but they will not be animated correctly, and saved games will not be loaded correctly if castling occurs.
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.
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. 
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.
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.

K#$+ COPYRIGHT
Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. 
Enhancements Copyright 1992-2003 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 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.