Implement -showMoveTime option
[xboard.git] / xboard.texi
index 32a7630..8cde6b3 100644 (file)
@@ -243,16 +243,27 @@ appropriate command from the Action menu, not @samp{New Game}.
 Similar to @samp{New Game}, but allows you to specify a particular initial position 
 (according to a standardized numbering system)
 in chess variants which use randomized opening positions (e.g. Chess960).
-You can also press the @samp{Pick Fixed} button to let XBoard generate
-a random number for you.
-The thus selected opening position will then persistently be chosen on any following
-New Game command until you use this menu to select another. 
-Selecting position number -1 (or pushing the @samp{Randomize} button)
-will produce a newly randomized position on any new game.
-Using this menu item in variants that normally do not shuffle their opening position
-does cause these variants to become shuffle variants until you use the
-@samp{New Shuffle Game} menu to explicitly switch the randomization off,
-or select a new variant.
+@item shuffle
+@cindex shuffle, Menu Item
+Ticking @samp{shuffle} will cause the current variant to be played
+with shuffled initial position.
+Shuffling will preserve the possibility to castle in the way allowed by the variant.
+@item Fischer castling
+@cindex Fischer castling, menu item
+Ticking @samp{Fischer castling} will allow castling with Kings and Rooks
+that did not start in their normal place, as in Chess960.
+@item Start-position number
+@itemx randomize
+@itemx pick fixed
+@cindex randomize, Menu Item
+@cindex pick fixed, Menu Item
+@cindex Start-position number, Menu Item
+The @samp{Start-position number} selects a particular start position
+from all allowed shufflings, which will then be used for every new game.
+Setting this to -1 (which can be done by pressing the @samp{randomize} button)
+will cause a fresh random position to be picked for every new game.
+Pressing the @samp{pick fixed} button causes @samp{Start-position number}
+to be set to a random value, to be used for all subsequent games. 
 @item New Variant
 @cindex New variant, Menu Item
 Allows you to select a new chess variant in non-ICS mode. 
@@ -558,6 +569,7 @@ position. Puts XBoard into @samp{Edit Game} mode if it was not there
 already.
 The @kbd{End} key is a keyboard equivalent.
 @item Backward
+@itemx <
 @cindex Backward, Menu Item
 @cindex <, Button
 Steps backward through a series of remembered moves.
@@ -580,6 +592,7 @@ everyone's view of the game and allows you to make a different
 move. If Pause mode is on, @samp{Backward} only backs up your local
 view.
 @item Forward
+@itemx >
 @cindex Forward, Menu Item
 @cindex >, Button
 Steps forward through a series of remembered moves (undoing the
@@ -595,6 +608,7 @@ Pause mode is on, @samp{Forward} only moves your local view forward,
 and it will not go past the position that the game was in when
 you paused.
 @item Back to Start
+@itemx <<
 @cindex Back to Start, Menu Item
 @cindex <<, Button
 Jumps backward to the first remembered position in the game.
@@ -615,6 +629,7 @@ command, which backs up everyone's view of the game to the start and
 allows you to make different moves. If Pause mode is on, @samp{Back
 to Start} only backs up your local view.
 @item Forward to End
+@itemx >>
 @cindex Forward to End, Menu Item
 @cindex >>, Button
 Jumps forward to the last remembered position in the game. The
@@ -723,45 +738,67 @@ creates an extra window that you can use for typing in ICS commands.
 The input box is especially useful if you want to type in something long or do
 some editing on your input, because output from ICS doesn't get mixed
 in with your typing as it would in the main terminal window.
-@item ICS Chat/Console
+@item ICS/Chat Console
 @cindex ICS Chat/Console, Menu Item
 This menu item opens a window in which you can interact with the ICS,
-and conduct upto 5 chats with other ICS users (or channels),
 so you don't have to use the messy xterm from which you launched XBoard
 for that.
 The window has a text entry at the bottom where you can type your
 commands and messages unhindered by the stream of ICS output.
 The latter will be displayed in a large pane above the input field,
 the ICS Console.
-This pane can be vertically split into two, however, where half of it
-is then used to display selected ICS output, belonging to a chat with
-another user, or output from an ICS channel.
-Such output will then not appear in the Console pane.
-
-To use the window, write the name of your chat partner, the channel number,
-or the words 'shouts', 'whispers', 'cshouts' in the upper field
-(ending with <Enter>).
-Everything you type in the lowest field will then automatically be sent to
-the mentioned party, while everything that party sends to you will
-appear in the central text pane, rather than appear in the ICS console.
-The row of buttons allow you to choose between chat;
-to start a new chat, just select an empty button,
-and complete the @samp{Chat partner} field.
-There are several keyboard accelerators to control this window:
-Ctrl-H will hide the private chat, and dedicates the input field to
-giving ICS commands.
-Ctrl-E will erase the current chat and chat partner.
-Ctrl-N will open a new chat with a yet unspecified partner.
-Ctrl-O will open a new chat with the last person from which you received
-a tell in the ICS console pane.
-<Esc> will transfer keyboard focus to the board window,
-allowing you to invoke menu items through accelerator keys;
-typing a printable character there transfers focus back to the input field
-of the chat window.
-<Tab> will switch to another busy chat,
-giving priority to those with content you have not seen yet.
-(The buttons for selecting such chats turn orange.)
 Up and down arrow keys can be used to recall previous input lines.
+Typing an <Esc> character in the input field transfers focus back
+to the board window (so you could operate the menus there
+through accelerator keys).
+Typing a printable character in the board window transfers focus
+back to the input field of the @samp{ICS Chat/Console} window.
+@item Chats
+@cindex Chats
+There is a row of buttons at the top of the @samp{ICS Chat/Console} dialog,
+which can be used to navigate between upto 5 'chats'
+with other ICS users (or channels).
+These will switch the window to 'chat mode',
+where the ICS output pane is vertically split to divert messages from
+a specific user or ICS channel to the lower half.
+Lines typed in the input field will then be interpreted as messages
+to be sent to that user or channel,
+(automatically prefixed with the apporpriate ICS command and user name)
+rather than as commands to the ICS.
+Chats will keep collecting ICS output intended for them even when not displayed,
+and their buttons will turn orange to alert the user there has been activity.
+Typing <Tab> in the input field will switch to another active chat,
+giving priority to those with content you have not seen yet.
+@item New Chat
+@cindex New Chat, Menu Item
+Buttons for chats currently not assigned to a user or channel
+will carry the text @samp{New Chat}, and pressing them will
+switch to chat mode, enabling you to enter the user name or channel number
+you want to use it for.
+Typing Ctrl-N in the input field is a keyboard equivalent.
+@item Chat partner
+@cindex Chat partner, Menu Item
+To (re-)assign a chat, write the name of your chat partner, the channel number,
+or the words 'shouts', 'whispers', 'cshouts' in the @samp{Chat partner} text entry
+(ending with <Enter>!).
+Typing Ctrl-O in the input field at the bottom of the window will
+open a chat with the person that last sent you a 'tell' that was printed
+in the ICS Console output pane.
+The @samp{ICS text menu} can contain a button @samp{Open Chat (name)}
+that can be used to open a chat with as partner the word/number you
+right-clicked in the output pane to pop up this menu. 
+@item End Chat
+@cindex End Chat, Menu Item
+This button, only visible when the chat pane is open,
+will clear the @samp{Chat partner} field, so that the chat can be
+assigned to a new user or channel.
+Typing Ctrl-E in the input field is a keyboard equivalent.
+@item Hide
+@cindex Hide, Menu Item
+This button, only visible when the chat pane is open,
+will close the latter, so you can use the input field
+to give commands to the ICS again.
+Typing Ctrl-H in the input field is a keyboard equivalent.
 @item ICS text menu
 @cindex ICS text menu, Menu Item
 Brings up a menu that is user-configurable through the @code{icsMenu} option.
@@ -877,6 +914,12 @@ by typing one in the text entry in the lower-left of the dialog,
 and closing the latter with OK.
 It will then appear in the themes listbox next time you open the dialog,
 where you can recall the complete settings combination with a double-click.
+@item Fonts
+@cindex Fonts, Menu Item
+Pops up a dialog where you can set the fonts used in the main elements of various windows.
+Pango font names can be typed for each window type,
+and behind each text entry there are buttons to adjust the point size,
+and toggle the 'bold' or 'italic' attributes of the font.
 @item Game List Tags
 @cindex Game List Tags, Menu Item
 a duplicate of the Game List dialog in the Options menu.
@@ -1265,25 +1308,72 @@ that SMP engines can use.
 The shifted @kbd{Alt+U} key is a keyboard equivalent.
 Older XBoard/WinBoard engines might not respond to these settings,
 but UCI engines always should.
-The @samp{EGT path} field corresponds to the setting of the
-@code{egtFormats} option to specify where to find tablebases
-of various flavors. See the description of this option for the required syntax.
-
-It is also possible to specify a GUI opening book here, i.e. an opening
-book that XBoard consults for any position a playing engine gets in.
-It then forces the engine to play the book move, rather than to think up its own,
-if that position is found in the book.
-The book can switched on and off independently for either engine.
-The way book moves are chosen can be influenced through the settings of
-book depth and variety.
-After both sides have played more moves than the specified depth,
-the book will no longer be consulted.
+@item Maximum Number of CPUs per Engine
+@cindex Max. Number of CPUs, Menu Item
+Specifies the number of search threads any engine can maximally use.
+Do not set it to a number larger than the number of cores your computer has.
+(Or half of it when you want two engines to run simultaneously,
+as in a Two-Machines game with @samp{Ponder Next Move} on.)
+@item Polyglot Directory
+@item Hash-Table Size
+@cindex Hash-Table Size
+Specifies the maximum amount of memory (RAM) each engine is allowed to use
+for storing info on positions it already searched,
+so it would not have to search them again.
+Do not set it so that it is more than half
+(or if you use two engines, more than a quarter)
+of the memory your computer has,
+or it would slow the engines down by an extreme amount.
+@item EGTB Path
+@cindex EGTB Path, Menu Item
+Sets the value of the @code{egtFormats} option, which specifies
+where on your computer the files for End-Game Tables are stored.
+It must be a comma-separated list of path names,
+the path for each EGT flavor prefixed with the name of the latter
+and a colon. E.g. "nalimov:/home/egt/dtm,syzygy:/home/egt/dtz50".
+The path names after the colon will be sent to the engines
+that say they can use the corresponding EGT flavor.
+@item EGTB Cache Size
+@cindex EGTB Cache Size, Menu Item
+Specifies the amount of memory the engine should use to
+buffer end-game information.
+Together with the @samp{Hash-Table Size} this determines how
+much memory the engine is allowed to use in total.
+@item Use GUI Book
+@itemx Opening-Book Filename
+@cindex Use GUI Book, Menu Item
+@cindex Opening-Book Filename, Menu Item
+The @samp{Opening-Book Filename} specifies an opening book
+in Polyglot format (usually a .bin file),
+from which XBoard can play moves on behalf of the engine.
+This is also the book file on which the @samp{Edit Book}
+and @samp{Save Games as Book} menu items operate.
+A checkbox @samp{Use GUI Book} can be used to temporarily
+disable the book without losing the setting.
+(This does not prevent editing or saving games on it!)
+@item Book Depth
+@itemx Book Variety
+@cindex Book Depth, Menu Item
+@cindex Book Variety, Menu Item
+The way moves are selected from the book can be controlled by two options.
+@samp{Book Depth} controls for how deep into the game the book
+will be consulted (measured in full moves).
+@samp{Book Variety} controls the likelihood of playing weaker moves.
 When the variety is set to 50, moves will be played with the probability
 specified in the book.
 When set to 0, only the move(s) with the highest probability will be played.
 When set to 100, all listed moves will be played with equal pobability.
 Other settings interpolate between that.
-
+@item Engine #1 Has Own Book
+@itemx Engine #2 Has Own Book
+@cindex Engine Has Own Book
+These checkboxes control on a per-engine basis
+whether XBoard will consult the opening book for them.
+If ticked, XBoard will never play moves from its GUI book,
+giving the engine the opportunity to use its own.
+These options are automatically set whenever you load an engine,
+based on the setting of @samp{Must not use GUI book}
+when you installed that through the @samp{Load Engine} menu dialog.
 @item Hint
 @cindex Hint, Menu Item
 Displays a move hint from the chess engine.
@@ -1565,6 +1655,12 @@ and after every move an 'increment' will be added to it.
 @cindex fixed max, Menu Item
 Selects a TC mode where you have to make each move within a given time,
 and any left-over time is not carried over to the next move.
+@item Divide entered times by 60
+@cindex Divide entered times by 60, Menu Item
+To allow entering of sub-minute initial time or sub-second increment,
+you can tick this checkbox.
+The initial time can then be entered in seconds,
+and the increment in units of 1/60 second.
 @item Moves per session
 @cindex Moves per session, Menu Item
 Sets the duration of a session for classical time control.
@@ -2379,6 +2475,11 @@ false, the clocks are not shown, but the side that is to play next
 is still highlighted. Also, unless @code{searchTime}
 is set, the chess engine still keeps track of the clock time and uses it to
 determine how fast to make its moves.
+@item -shoMoveTime true/false
+@cindex showMoveTime, option
+When this option is set the time that has been thought about the current move
+will be displayed behind the remaining time in parentheses (in seconds).
+Default: false.
 @item -st or -searchTime minutes[:seconds]
 @cindex st, option
 @cindex searchTime, option
@@ -2472,6 +2573,22 @@ without alternating colors.
 Otherwise the same applies as for the @samp{-matchGames} option,
 over which it takes precedence if both are specified. (See there.)
 Default: 0 (do not run a match).
+@item -epd
+@cindex epd, option
+This option puts XBoard in a special mode for solving EPD test-suites,
+for the entire duration of the session.
+In this mode games are aborted after a single move,
+and that move will be compared with the best-move or avoid-move
+from the EPD position description from which the 'game' was started.
+Playing a best move counts as a win, playing an avoid move as a loss,
+and playing any other move counts as a draw.
+This option should be used in combination with match mode,
+and an EPD file of starting positions with an auto-incrementing index.
+Color assignment will be such that the first engine plays all moves,
+and the second engine will be never involved.
+The results for individual positions,
+as well as the time used for solving them,
+will be reported in the lower pane of the Engine Output window.
 @item -fcp or -firstChessProgram program
 @itemx -scp or -secondChessProgram program
 @cindex fcp, option
@@ -3335,7 +3452,14 @@ the @samp{Load Position} menu item.
 If this option is set, XBoard saves depth, score and time used for each 
 move that the engine found as a comment in the PGN file.
 Default: false.
+@item -pgnTimeLeft true/false
+@cindex pgnTimeLeft, option
+If this option is set, XBoard will save the remaining clock time for
+the player that has just moved as part of the @samp{pgnExtendedInfo},
+rather than the time that player thought about his latest move.
+Default: false.
 @item -pgnEventHeader string
+Default: false.
 @cindex pgnEventHeader, option
 Sets the name used in the PGN event tag to string. 
 Default: "Computer Chess Game".