1xboard(6) Games Manual xboard(6)
2
3
4
6 xboard - X graphical user interface for chess
7
9 xboard [options]
10 xboard -ics -icshost hostname [options]
11 xboard -ncp [options]
12 |pxboard
13 cmail [options]
14
15
17 XBoard is a graphical chessboard that can serve as a user interface to
18 chess engines (such as GNU Chess), the Internet Chess Servers, elec‐
19 tronic mail correspondence chess, or your own collection of saved
20 games.
21
22 This manual documents version 4.2.7 of XBoard.
23
24
26 XBoard always runs in one of four major modes. You select the major
27 mode from the command line when you start up XBoard.
28
29
30 xboard [options]
31 As an interface to GNU Chess or another chess engine running on
32 your machine, XBoard lets you play a game against the machine,
33 set up arbitrary positions, force variations, watch a game
34 between two chess engines, interactively analyze your stored
35 games or set up and analyze arbitrary positions. (Note: Not all
36 chess engines support analysis.)
37
38 xboard -ics -icshost hostname [options]
39 As Internet Chess Server (ICS) interface, XBoard lets you play
40 against other ICS users, observe games they are playing, or
41 review games that have recently finished. Most of the ICS
42 "wild" chess variants are supported, including bughouse.
43
44 xboard -ncp [options]
45 XBoard can also be used simply as an electronic chessboard to
46 play through games. It will read and write game files and allow
47 you to play through variations manually. You can use it to
48 browse games off the net or review games you have saved. These
49 features are also available in the other modes.
50
51 |pxboard
52 If you want to pipe games into XBoard, use the supplied shell
53 script `pxboard'. For example, from the news reader `xrn', find
54 a message with one or more games in it, click the Save button,
55 and type `|pxboard' as the file name.
56
57 cmail [options]
58 As an interface to electronic mail correspondence chess, XBoard
59 works with the cmail program. See CMail below for instructions.
60
62 To move a piece, you can drag it with the left mouse button, or you can
63 click the left mouse button once on the piece, then once more on the
64 destination square. To drop a new piece on a square (when applicable),
65 press the middle or the right mouse button over the square and select
66 from the popup menu. In cases where you can drop either a white or
67 black piece, use the middle button (or shift+right) for white and the
68 right button (or shift+middle) for black. When you are playing a bug‐
69 house game on an Internet Chess Server, a list of the offboard pieces
70 that each player has available is shown in the window title after the
71 player's name; in addition, the piece menus show the number of pieces
72 available of each type.
73
74 All other XBoard commands are available from the menu bar. The most
75 frequently used commands also have shortcut keys or on-screen buttons.
76
77 When XBoard is iconized, its graphical icon is a white knight if it is
78 White's turn to move, a black knight if it is Black's turn. See
79 Iconize in Keys below if you have problems getting this feature to
80 work.
81
82
83 File Menu
84 Reset Resets XBoard and the chess engine to the beginning of a new
85 chess game. The `r' key is a keyboard equivalent. In Internet
86 Chess Server mode, clears the current state of XBoard, then
87 resynchronizes with the ICS by sending a refresh command. If you
88 want to stop playing, observing, or examining an ICS game, use
89 an appropriate command from the Action menu, not `Reset'. See
90 Action Menu.
91
92 Load Game
93 Plays a game from a record file. The `g' key is a keyboard
94 equivalent. A popup dialog prompts you for the file name. If
95 the file contains more than one game, a second popup dialog dis‐
96 plays a list of games (with information drawn from their PGN
97 tags, if any), and you can select the one you want. Alterna‐
98 tively, you can load the Nth game in the file directly, by typ‐
99 ing the number `N' after the file name, separated by a space.
100
101 The game file parser will accept PGN (portable game notation),
102 or in fact almost any file that contains moves in algebraic
103 notation. Notation of the form `P@f7' is accepted for piece-
104 drops in bughouse games; this is a nonstandard extension to PGN.
105 If the file includes a PGN position (FEN tag), or an old-style
106 XBoard position diagram bracketed by `[--' and `--]' before the
107 first move, the game starts from that position. Text enclosed in
108 parentheses, square brackets, or curly braces is assumed to be
109 commentary and is displayed in a pop-up window. Any other text
110 in the file is ignored. PGN variations (enclosed in parentheses)
111 are treated as comments; XBoard is not able to walk variation
112 trees. The nonstandard PGN tag [Variant "varname"] functions
113 similarly to the -variant command-line option (see below),
114 allowing games in certain chess variants to be loaded. There is
115 also a heuristic to recognize chess variants from the Event tag,
116 by looking for the strings that the Internet Chess Servers put
117 there when saving variant ("wild") games.
118
119 Load Next Game
120 Loads the next game from the last game record file you loaded.
121 The shifted `N' key is a keyboard equivalent.
122
123 Load Previous Game
124 Loads the previous game from the last game record file you
125 loaded. The shifted `P' key is a keyboard equivalent. Not
126 available if the last game was loaded from a pipe.
127
128 Reload Same Game
129 Reloads the last game you loaded. Not available if the last
130 game was loaded from a pipe.
131
132 Save Game
133 Appends a record of the current game to a file. A popup dialog
134 prompts you for the file name. If the game did not begin with
135 the standard starting position, the game file includes the
136 starting position used. Games are saved in the PGN (portable
137 game notation) format, unless the oldSaveStyle option is true,
138 in which case they are saved in an older format that is specific
139 to XBoard. Both formats are human-readable, and both can be read
140 back by the `Load Game' command. Notation of the form `P@f7' is
141 accepted for piece-drops in bughouse games; this is a nonstan‐
142 dard extension to PGN.
143
144 Copy Game
145 Copies a record of the current game to an internal clipboard in
146 PGN format and sets the X selection to the game text. The game
147 can be pasted to another application (such as a text editor or
148 another copy of XBoard) using that application's paste command.
149 In many X applications, such as xterm and emacs, the middle
150 mouse button can be used for pasting; in XBoard, you must use
151 the Paste Game command.
152
153 Paste Game
154 Interprets the current X selection as a game record and loads
155 it, as with Load Game.
156
157 Load Position
158 Sets up a position from a position file. A popup dialog prompts
159 you for the file name. If the file contains more than one saved
160 position, and you want to load the Nth one, type the number N
161 after the file name, separated by a space. Position files must
162 be in FEN (Forsythe-Edwards notation), or in the format that the
163 Save Position command writes when oldSaveStyle is turned on.
164
165 Load Next Position
166 Loads the next position from the last position file you loaded.
167
168 Load Previous Position
169 Loads the previous position from the last position file you
170 loaded. Not available if the last position was loaded from a
171 pipe.
172
173 Reload Same Position
174 Reloads the last position you loaded. Not available if the last
175 position was loaded from a pipe.
176
177 Save Position
178 Appends a diagram of the current position to a file. A popup
179 dialog prompts you for the file name. Positions are saved in FEN
180 (Forsythe-Edwards notation) format unless the `oldSaveStyle'
181 option is true, in which case they are saved in an older, human-
182 readable format that is specific to XBoard. Both formats can be
183 read back by the `Load Position' command.
184
185 Copy Position
186 Copies the current position to an internal clipboard in FEN for‐
187 mat and sets the X selection to the position text. The position
188 can be pasted to another application (such as a text editor or
189 another copy of XBoard) using that application's paste command.
190 In many X applications, such as xterm and emacs, the middle
191 mouse button can be used for pasting; in XBoard, you must use
192 the Paste Position command.
193
194 Paste Position
195 Interprets the current X selection as a FEN position and loads
196 it, as with Load Position.
197
198 Mail Move
199 Reload CMail Message
200 See CMail.
201
202 Exit Exits from XBoard. The shifted `Q' key is a keyboard equivalent.
203
204 Mode Menu
205 Machine White
206 Tells the chess engine to play White.
207
208 Machine Black
209 Tells the chess engine to play Black.
210
211 Two Machines
212 Plays a game between two chess engines.
213
214 Analysis Mode
215 XBoard tells the chess engine to start analyzing the current
216 game/position and shows you the analysis as you move pieces
217 around. Note: Some chess engines do not support Analysis mode.
218
219 To set up a position to analyze, you do the following:
220
221 1. Select Edit Position from the Mode Menu
222
223 2. Set up the position. Use the middle and right buttons to
224 bring up the white and black piece menus.
225
226 3. When you are finished, click on either the Black or White
227 clock to tell XBoard which side moves first.
228
229 4. Select Analysis Mode from the Mode Menu to start the analy‐
230 sis.
231
232 Analyze File
233 This option lets you load a game from a file (PGN, XBoard for‐
234 mat, etc.) and analyze it. When you select this menu item, a
235 popup window appears and asks for a filename to load. If the
236 file contains multiple games, another popup appears that lets
237 you select which game you wish to analyze. After a game is
238 loaded, use the XBoard arrow buttons to step forwards/backwards
239 through the game and watch the analysis. Note: Some chess
240 engines do not support Analysis mode.
241
242 ICS Client
243 This is the normal mode when XBoard is connected to a chess
244 server. If you have moved into Edit Game or Edit Position mode,
245 you can select this option to get out.
246
247 To use xboard in ICS mode, run it in the foreground with the
248 -ics option, and use the terminal you started it from to type
249 commands and receive text responses from the chess server. See
250 Chess Servers below for more information.
251
252 XBoard activates some special position/game editing features
253 when you use the `examine' or `bsetup' commands on ICS and you
254 have `ICS Client' selected on the Mode menu. First, you can
255 issue the ICS position-editing commands with the mouse. Move
256 pieces by dragging with mouse button 1. To drop a new piece on
257 a square, press mouse button 2 or 3 over the square. This
258 brings up a menu of white pieces (button 2) or black pieces
259 (button 3). Additional menu choices let you empty the square or
260 clear the board. Click on the White or Black clock to set the
261 side to play. You cannot set the side to play or drag pieces to
262 arbitrary squares while examining on ICC, but you can do so in
263 `bsetup' mode on FICS. In addition, the menu commands `For‐
264 ward', `Backward', `Pause', and `Stop Examining' have special
265 functions in this mode; see below.
266
267 Edit Game
268 Allows you to make moves for both Black and White, and to change
269 moves after backing up with the `Backward' command. The clocks
270 do not run.
271
272 In chess engine mode, the chess engine continues to check moves
273 for legality but does not participate in the game. You can bring
274 the chess engine into the game by selecting `Machine White',
275 `Machine Black', or `Two Machines'.
276
277 In ICS mode, the moves are not sent to the ICS: `Edit Game'
278 takes XBoard out of ICS Client mode and lets you edit games
279 locally. If you want to edit games on ICS in a way that other
280 ICS users can see, use the ICS `examine' command or start an ICS
281 match against yourself.
282
283 Edit Position
284 Lets you set up an arbitrary board position. Use mouse button 1
285 to drag pieces to new squares, or to delete a piece by dragging
286 it off the board or dragging an empty square on top of it. To
287 drop a new piece on a square, press mouse button 2 or 3 over the
288 square. This brings up a menu of white pieces (button 2) or
289 black pieces (button 3). Additional menu choices let you empty
290 the square or clear the board. You can set the side to play next
291 by clicking on the word White or Black at the top of the screen.
292 Selecting `Edit Position' causes XBoard to discard all remem‐
293 bered moves in the current game.
294
295 In ICS mode, changes made to the position by `Edit Position' are
296 not sent to the ICS: `Edit Position' takes XBoard out of `ICS
297 Client' mode and lets you edit positions locally. If you want to
298 edit positions on ICS in a way that other ICS users can see, use
299 the ICS `examine' command, or start an ICS match against your‐
300 self. (See also the ICS Client topic above.)
301
302 Training
303 Training mode lets you interactively guess the moves of a game
304 for one of the players. You guess the next move of the game by
305 playing the move on the board. If the move played matches the
306 next move of the game, the move is accepted and the opponent's
307 response is autoplayed. If the move played is incorrect, an
308 error message is displayed. You can select this mode only while
309 loading a game (that is, after selecting `Load Game' from the
310 File menu). While XBoard is in `Training' mode, the navigation
311 buttons are disabled.
312
313 Show Game List
314 Shows or hides the list of games generated by the last `Load
315 Game' command.
316
317 Edit Tags
318 Lets you edit the PGN (portable game notation) tags for the cur‐
319 rent game. After editing, the tags must still conform to the PGN
320 tag syntax:
321
322 <tag-section> ::= <tag-pair> <tag-section>
323 <empty>
324 <tag-pair> ::= [ <tag-name> <tag-value> ]
325 <tag-name> ::= <identifier>
326 <tag-value> ::= <string>
327
328 See the PGN Standard for full details. Here is an example:
329
330 [Event "Portoroz Interzonal"]
331 [Site "Portoroz, Yugoslavia"]
332 [Date "1958.08.16"]
333 [Round "8"]
334 [White "Robert J. Fischer"]
335 [Black "Bent Larsen"]
336 [Result "1-0"]
337
338 Any characters that do not match this syntax are silently
339 ignored. Note that the PGN standard requires all games to have
340 at least the seven tags shown above. Any that you omit will be
341 filled in by XBoard with `?' (unknown value), or `-' (inapplica‐
342 ble value).
343
344 Edit Comment
345 Adds or modifies a comment on the current position. Comments are
346 saved by `Save Game' and are displayed by `Load Game', `For‐
347 ward', and `Backward'.
348
349 ICS Input Box
350 If this option is set in ICS mode, XBoard creates an extra win‐
351 dow that you can use for typing in ICS commands. The input box
352 is especially useful if you want to type in something long or do
353 some editing on your input, because output from ICS doesn't get
354 mixed in with your typing as it would in the main terminal win‐
355 dow.
356
357 Pause Pauses updates to the board, and if you are playing against a
358 chess engine, also pauses your clock. To continue, select
359 `Pause' again, and the display will automatically update to the
360 latest position. The `P' button and keyboard `p' key are equiv‐
361 alents.
362
363 If you select Pause when you are playing against a chess engine
364 and it is not your move, the chess engine's clock will continue
365 to run and it will eventually make a move, at which point both
366 clocks will stop. Since board updates are paused, however, you
367 will not see the move until you exit from Pause mode (or select
368 Forward). This behavior is meant to simulate adjournment with a
369 sealed move.
370
371 If you select Pause while you are observing or examining a game
372 on a chess server, you can step backward and forward in the cur‐
373 rent history of the examined game without affecting the other
374 observers and examiners, and without having your display jump
375 forward to the latest position each time a move is made. Select
376 Pause again to reconnect yourself to the current state of the
377 game on ICS.
378
379 If you select `Pause' while you are loading a game, the game
380 stops loading. You can load more moves manually by selecting
381 `Forward', or resume automatic loading by selecting `Pause'
382 again.
383
384 Action Menu
385 Accept Accepts a pending match offer. If there is more than one offer
386 pending, you will have to type in a more specific command
387 instead of using this menu choice.
388
389 Decline
390 Declines a pending offer (match, draw, adjourn, etc.). If there
391 is more than one offer pending, you will have to type in a more
392 specific command instead of using this menu choice.
393
394 Call Flag
395 Calls your opponent's flag, claiming a win on time, or claiming
396 a draw if you are both out of time. You can also call your oppo‐
397 nent's flag by clicking on his clock or by pressing the keyboard
398 `t' key.
399
400 Draw Offers a draw to your opponent, accepts a pending draw offer
401 from your opponent, or claims a draw by repetition or the
402 50-move rule, as appropriate. The `d' key is a keyboard equiva‐
403 lent.
404
405 Adjourn
406 Asks your opponent to agree to adjourning the current game, or
407 agrees to a pending adjournment offer from your opponent.
408
409 Abort Asks your opponent to agree to aborting the current game, or
410 agrees to a pending abort offer from your opponent. An aborted
411 game ends immediately without affecting either player's rating.
412
413 Resign Resigns the game to your opponent. The shifted `R' key is a key‐
414 board equivalent.
415
416 Stop Observing
417 Ends your participation in observing a game, by issuing the ICS
418 observe command with no arguments. ICS mode only.
419
420 Stop Examining
421 Ends your participation in examining a game, by issuing the ICS
422 unexamine command. ICS mode only.
423
424 Step Menu
425 Backward
426 Steps backward through a series of remembered moves. The `[<]'
427 button and the `b' key are equivalents. In addition, pressing
428 the Control key steps back one move, and releasing it steps for‐
429 ward again.
430
431 In most modes, `Backward' only lets you look back at old posi‐
432 tions; it does not retract moves. This is the case if you are
433 playing against a chess engine, playing or observing a game on
434 an ICS, or loading a game. If you select `Backward' in any of
435 these situations, you will not be allowed to make a different
436 move. Use `Retract Move' or `Edit Game' if you want to change
437 past moves.
438
439 If you are examining an ICS game, the behavior of `Backward'
440 depends on whether XBoard is in Pause mode. If Pause mode is
441 off, `Backward' issues the ICS backward command, which backs up
442 everyone's view of the game and allows you to make a different
443 move. If Pause mode is on, `Backward' only backs up your local
444 view.
445
446 Forward
447 Steps forward through a series of remembered moves (undoing the
448 effect of `Backward') or forward through a game file. The `[>]'
449 button and the `f' key are equivalents.
450
451 If you are examining an ICS game, the behavior of Forward
452 depends on whether XBoard is in Pause mode. If Pause mode is
453 off, `Forward' issues the ICS forward command, which moves
454 everyone's view of the game forward along the current line. If
455 Pause mode is on, `Forward' only moves your local view forward,
456 and it will not go past the position that the game was in when
457 you paused.
458
459 Back to Start
460 Jumps backward to the first remembered position in the game.
461 The `[<<]' button and the shifted `B' key are equivalents.
462
463 In most modes, Back to Start only lets you look back at old
464 positions; it does not retract moves. This is the case if you
465 are playing against a local chess engine, playing or observing a
466 game on a chess server, or loading a game. If you select `Back
467 to Start' in any of these situations, you will not be allowed to
468 make different moves. Use `Retract Move' or `Edit Game' if you
469 want to change past moves; or use Reset to start a new game.
470
471 If you are examining an ICS game, the behavior of @samp{Back to
472 Start} depends on whether XBoard is in Pause mode. If Pause mode
473 is off, `Back to Start' issues the ICS `backward 999999' com‐
474 mand, which backs up everyone's view of the game to the start
475 and allows you to make different moves. If Pause mode is on,
476 @samp{Back to Start} only backs up your local view.
477
478 Forward to End
479 Jumps forward to the last remembered position in the game. The
480 `[>>]' button and the shifted `F' key are equivalents.
481
482 If you are examining an ICS game, the behavior of @samp{Forward
483 to End} depends on whether XBoard is in Pause mode. If Pause
484 mode is off, `Forward to End' issues the ICS `forward 999999'
485 command, which moves everyone's view of the game forward to the
486 end of the current line. If Pause mode is on, `Forward to End'
487 only moves your local view forward, and it will not go past the
488 position that the game was in when you paused.
489
490 Revert If you are examining an ICS game and Pause mode is off, issues
491 the ICS command `revert'.
492
493 Truncate Game
494 Discards all remembered moves of the game beyond the current
495 position. Puts XBoard into `Edit Game' mode if it was not there
496 already.
497
498 Move Now
499 Forces the chess engine to move immediately. Chess engine mode
500 only.
501
502 Retract Move
503 Retracts your last move. In chess engine mode, you can do this
504 only after the chess engine has replied to your move; if the
505 chess engine is still thinking, use `Move Now' first. In ICS
506 mode, `Retract Move' issues the command `takeback 1' or `take‐
507 back 2' depending on whether it is your opponent's move or
508 yours.
509
510 Options Menu
511 Always Queen
512 If this option is off, XBoard brings up a dialog box whenever
513 you move a pawn to the last rank, asking what piece you want to
514 promote it to. If the option is true, your pawns are always pro‐
515 moted to queens. Your opponent can still underpromote.
516
517 Animate Dragging
518 If Animate Dragging is on, while you are dragging a piece with
519 the mouse, an image of the piece follows the mouse cursor. If
520 Animate Dragging is off, there is no visual feedback while you
521 are dragging a piece, but if Animate Moving is on, the move will
522 be animated when it is complete.
523
524 Animate Moving
525 If Animate Moving is on, all piece moves are animated. An image
526 of the piece is shown moving from the old square to the new
527 square when the move is completed (unless the move was already
528 animated by Animate Dragging). If Animate Moving is off, a
529 moved piece instantly disappears from its old square and reap‐
530 pears on its new square when the move is complete.
531
532 Auto Comment
533 If this option is on, any remarks made on ICS while you are
534 observing or playing a game are recorded as a comment on the
535 current move. This includes remarks made with the ICS commands
536 `say', `tell', `whisper', and `kibitz'. Limitation: remarks
537 that you type yourself are not recognized; XBoard scans only the
538 output from ICS, not the input you type to it.
539
540 Auto Flag
541 If this option is on and one player runs out of time before the
542 other, XBoard will automatically call his flag, claiming a win
543 on time. In ICS mode, Auto Flag will only call your opponent's
544 flag, not yours, and the ICS may award you a draw instead of a
545 win if you have insufficient mating material. In local chess
546 engine mode, XBoard may call either player's flag and will not
547 take material into account.
548
549 Auto Flip View
550 If the Auto Flip View option is on when you start a game, the
551 board will be automatically oriented so that your pawns move
552 from the bottom of the window towards the top.
553
554 Auto Observe
555 If this option is on and you add a player to your `gnotify' list
556 on ICS, XBoard will automatically observe all of that player's
557 games, unless you are doing something else (such as observing or
558 playing a game of your own) when one starts. The games are dis‐
559 played from the point of view of the player on your gnotify
560 list; that is, his pawns move from the bottom of the window
561 towards the top. Exceptions: If both players in a game are on
562 your gnotify list, if your ICS `highlight' variable is set to 0,
563 or if the ICS you are using does not properly support observing
564 from Black's point of view, you will see the game from White's
565 point of view.
566
567 Auto Raise Board
568 If this option is on, whenever a new game begins, the chessboard
569 window is deiconized (if necessary) and raised to the top of the
570 stack of windows.
571
572 Auto Save
573 If this option is true, at the end of every game XBoard prompts
574 you for a file name and appends a record of the game to the file
575 you specify. Disabled if the `saveGameFile' command-line option
576 is set, as in that case all games are saved to the specified
577 file. See Load and Save options.
578
579 Blindfold
580 If this option is on, XBoard displays the board as usual but
581 does not display pieces or move highlights. You can still move
582 in the usual way (with the mouse or by typing moves in ICS
583 mode), even though the pieces are invisible.
584
585 Flash Moves
586 If this option is on, whenever a move is completed, the moved
587 piece flashes. The number of times to flash is set by the
588 flashCount command-line option; it defaults to 3 if Flash Moves
589 is first turned on from the menu.
590
591 Flip View
592 Inverts your view of the chess board for the duration of the
593 current game. Starting a new game returns the board to normal.
594 The `v' key is a keyboard equivalent.
595
596 If you are playing a game on an ICS, the board is always ori‐
597 ented at the start of the game so that your pawns move from the
598 bottom of the window towards the top. Otherwise, the starting
599 orientation is determined by the `flipView' command line option;
600 if it is false (the default), White's pawns move from bottom to
601 top at the start of each game; if it is true, Black's pawns move
602 from bottom to top. See User interface options.
603
604 Get Move List
605 If this option is on, whenever XBoard receives the first board
606 of a new ICS game (or a different game from the one it is cur‐
607 rently displaying), it retrieves the list of past moves from the
608 ICS. You can then review the moves with the `Forward' and
609 `Backward' commands or save them with `Save Game'. You might
610 want to turn off this option if you are observing several blitz
611 games at once, to keep from wasting time and network bandwidth
612 fetching the move lists over and over. When you turn this
613 option on from the menu, XBoard immediately fetches the move
614 list of the current game (if any).
615
616 Highlight Last Move
617 If Highlight Last Move is on, after a move is made, the starting
618 and ending squares remain highlighted. In addition, after you
619 use Backward or Back to Start, the starting and ending squares
620 of the last move to be unmade are highlighted.
621
622 Move Sound
623 If this option is on, XBoard alerts you by playing a sound after
624 each of your opponent's moves (or after every move if you are
625 observing a game on the Internet Chess Server). The sound is
626 not played after moves you make or moves read from a saved game
627 file. By default, the sound is the terminal bell, but on some
628 systems you can change it to a sound file using the soundMove
629 option; see below.
630
631 If you turn on this option when using XBoard with the Internet
632 Chess Server, you will probably want to give the `set bell 0'
633 command to the ICS, since otherwise the ICS will ring the termi‐
634 nal bell after every move (not just yours). (The `.icsrc' file
635 is a good place for this; see ICS options.)
636
637 ICS Alarm
638 When this option is on, an alarm sound is played when your clock
639 counts down to the icsAlarmTime (by default, 5 seconds) in an
640 ICS game. For games with time controls that include an incre‐
641 ment, the alarm will sound each time the clock counts down to
642 the icsAlarmTime. By default, the alarm sound is the terminal
643 bell, but on some systems you can change it to a sound file
644 using the soundIcsAlarm option; see below.
645
646 Old Save Style
647 If this option is off, XBoard saves games in PGN (portable game
648 notation) and positions in FEN (Forsythe-Edwards notation). If
649 the option is on, a save style that is compatible with older
650 versions of XBoard is used instead. The old position style is
651 more human-readable than FEN; the old game style has no particu‐
652 lar advantages.
653
654 Periodic Updates
655 If this option is off (or if you are using a chess engine that
656 does not support periodic updates), the analysis window will
657 only be updated when the analysis changes. If this option is on,
658 the Analysis Window will be updated every two seconds.
659
660 Ponder Next Move
661 If this option is off, the chess engine will think only when it
662 is on move. If the option is on, the engine will also think
663 while waiting for you to make your move.
664
665 Popup Exit Message
666 If this option is on, when XBoard wants to display a message
667 just before exiting, it brings up a modal dialog box and waits
668 for you to click OK before exiting. If the option is off,
669 XBoard prints the message to standard error (the terminal) and
670 exits immediately.
671
672 Popup Move Errors
673 If this option is off, when you make an error in moving (such as
674 attempting an illegal move or moving the wrong color piece), the
675 error message is displayed in the message area. If the option
676 is on, move errors are displayed in small popup windows like
677 other errors. You can dismiss an error popup either by clicking
678 its OK button or by clicking anywhere on the board, including
679 downclicking to start a move.
680
681 Premove
682 If this option is on while playing a game on an ICS, you can
683 register your next planned move before it is your turn. Move
684 the piece with the mouse in the ordinary way, and the starting
685 and ending squares will be highlighted with a special color (red
686 by default). When it is your turn, if your registered move is
687 legal, XBoard will send it to ICS immediately; if not, it will
688 be ignored and you can make a different move. If you change
689 your mind about your premove, either make a different move, or
690 double-click on any piece to cancel the move entirely.
691
692 Quiet Play
693 If this option is on, XBoard will automatically issue an ICS
694 `set shout 0' command whenever you start a game and a `set shout
695 1' command whenever you finish one. Thus, you will not be dis‐
696 tracted by shouts from other ICS users while playing.
697
698 Show Coords
699 If this option is on, XBoard displays algebraic coordinates
700 along the board's left and bottom edges.
701
702 Show Thinking
703 If this option is set, the chess engine's notion of the score
704 and best line of play from the current position is displayed as
705 it is thinking. The score indicates how many pawns ahead (or if
706 negative, behind) the chess engine thinks it is. In matches
707 between two machines, the score is prefixed by `W' or `B' to
708 indicate whether it is showing White's thinking or Black's, and
709 only the thinking of the engine that is on move is shown.
710
711 Test Legality
712 If this option is on, XBoard tests whether the moves you try to
713 make with the mouse are legal and refuses to let you make an
714 illegal move. Moves loaded from a file with `Load Game' are
715 also checked. If the option is off, all moves are accepted, but
716 if a local chess engine or the ICS is active, they will still
717 reject illegal moves. Turning off this option is useful if you
718 are playing a chess variant with rules that XBoard does not
719 understand. (Bughouse, suicide, and wild variants where the
720 king may castle after starting on the d file are generally sup‐
721 ported with Test Legality on.)
722
723 Help Menu
724 Info XBoard
725 Displays the XBoard documentation in info format. For this fea‐
726 ture to work, you must have the GNU info program installed on
727 your system, and the file `xboard.info' must either be present
728 in the current working directory, or have been installed by the
729 `make install' command when you built XBoard.
730
731 Man XBoard
732 Displays the XBoard documentation in man page format. For this
733 feature to work, the file `xboard.6' must have been installed by
734 the `make install' command when you built XBoard, and the direc‐
735 tory it was placed in must be on the search path for your sys‐
736 tem's `man' command.
737
738 Hint Displays a move hint from the chess engine.
739
740 Book Displays a list of possible moves from the chess engine's open‐
741 ing book. The exact format depends on what chess engine you are
742 using. With GNU Chess 4, the first column gives moves, the sec‐
743 ond column gives one possible response for each move, and the
744 third column shows the number of lines in the book that include
745 the move from the first column. If you select this option and
746 nothing happens, the chess engine is out of its book or does not
747 support this feature.
748
749 About XBoard
750 Shows the current XBoard version number.
751
752 Other Shortcut Keys
753 Iconize
754 Pressing the `i' or `c' key iconizes XBoard. The graphical icon
755 displays a white knight if it is White's move, or a black knight
756 if it is Black's move. If your X window manager displays only
757 text icons, not graphical ones, check its documentation; there
758 is probably a way to enable graphical icons. If you get black
759 and white reversed, we would like to hear about it; see Problems
760 below for instructions on how to report this problem.
761
762 You can add or remove shortcut keys using the X resources `form.trans‐
763 lations'. Here is an example of what would go in your `.Xdefaults'
764 file:
765
766 XBoard*form.translations: \
767 Shift<Key>?: AboutGameProc() \n\
768 <Key>y: AcceptProc() \n\
769 <Key>n: DeclineProc() \n\
770 <Key>i: NothingProc()
771
772 Binding a key to `NothingProc' makes it do nothing, thus removing it as
773 a shortcut key. The XBoard commands that can be bound to keys are:
774
775 AbortProc, AboutGameProc, AboutProc, AcceptProc, AdjournProc,
776 AlwaysQueenProc, AnalysisModeProc, AnalyzeFileProc,
777 AnimateDraggingProc, AnimateMovingProc, AutobsProc, AutoflagProc,
778 AutoflipProc, AutoraiseProc, AutosaveProc, BackwardProc,
779 BlindfoldProc, BookProc, CallFlagProc, CopyGameProc, CopyPositionProc,
780 DebugProc, DeclineProc, DrawProc, EditCommentProc, EditGameProc,
781 EditPositionProc, EditTagsProc, EnterKeyProc, FlashMovesProc,
782 FlipViewProc, ForwardProc, GetMoveListProc, HighlightLastMoveProc,
783 HintProc, Iconify, IcsAlarmProc, IcsClientProc, IcsInputBoxProc,
784 InfoProc, LoadGameProc, LoadNextGameProc, LoadNextPositionProc,
785 LoadPositionProc, LoadPrevGameProc, LoadPrevPositionProc,
786 LoadSelectedProc, MachineBlackProc, MachineWhiteProc, MailMoveProc,
787 ManProc, MoveNowProc, MoveSoundProc, NothingProc, OldSaveStyleProc,
788 PasteGameProc, PastePositionProc, PauseProc, PeriodicUpdatesProc,
789 PonderNextMoveProc, PopupExitMessageProc, PopupMoveErrorsProc,
790 PremoveProc, QuietPlayProc, QuitProc, ReloadCmailMsgProc,
791 ReloadGameProc, ReloadPositionProc, RematchProc, ResetProc,
792 ResignProc, RetractMoveProc, RevertProc, SaveGameProc,
793 SavePositionProc, ShowCoordsProc, ShowGameListProc, ShowThinkingProc,
794 StopExaminingProc, StopObservingProc, TestLegalityProc, ToEndProc,
795 ToStartProc, TrainingProc, TruncateGameProc, and TwoMachinesProc.
796
797
799 This section documents the command-line options to XBoard. You can set
800 these options in two ways: by typing them on the shell command line you
801 use to start XBoard, or by setting them as X resources (typically in
802 your `.Xdefaults' file). Many of the options cannot be changed while
803 XBoard is running; others set the initial state of items that can be
804 changed with the Options menu.
805
806 Most of the options have both a long name and a short name. To turn a
807 boolean option on or off from the command line, either give its long
808 name followed by the value true or false (`-longOptionName true'), or
809 give just the short name to turn the option on (`-opt'), or the short
810 name preceded by `x' to turn the option off (`-xopt'). For options that
811 take strings or numbers as values, you can use the long or short option
812 names interchangeably.
813
814 Each option corresponds to an X resource with the same name, so if you
815 like, you can set options in your `.Xdefaults' file or in a file named
816 `XBoard' in your home directory. For options that have two names, the
817 longer one is the name of the corresponding X resource; the short name
818 is not recognized. To turn a boolean option on or off as an X
819 resource, give its long name followed by the value true or false
820 (`XBoard*longOptionName: true').
821
822
823 Chess Engine Options
824 -tc or -timeControl minutes[:seconds]
825 Each player begins with his clock set to the `timeControl'
826 period. Default: 5 minutes. The additional options `movesPerS‐
827 ession' and `timeIncrement' are mutually exclusive.
828
829 -mps or -movesPerSession moves
830 When both players have made `movesPerSession' moves, a new
831 `timeControl' period is added to both clocks. Default: 40
832 moves.
833
834 -inc or -timeIncrement seconds
835 If this option is specified, `movesPerSession' is ignored.
836 Instead, after each player's move, `timeIncrement' seconds are
837 added to his clock. Use `-inc 0' if you want to require the
838 entire game to be played in one `timeControl' period, with no
839 increment. Default: -1, which specifies `movesPerSession' mode.
840
841 -clock/-xclock or -clockMode true/false
842 Determines whether or not to display the chess clocks. If clock‐
843 Mode is false, the clocks are not shown, but the side that is to
844 play next is still highlighted. Also, unless `searchTime' is
845 set, the chess engine still keeps track of the clock time and
846 uses it to determine how fast to make its moves.
847
848 -st or -searchTime minutes[:seconds]
849 Tells the chess engine to spend at most the given amount of time
850 searching for each of its moves. Without this option, the chess
851 engine chooses its search time based on the number of moves and
852 amount of time remaining until the next time control. Setting
853 this option also sets clockMode to false.
854
855 -depth or -searchDepth number
856 Tells the chess engine to look ahead at most the given number of
857 moves when searching for a move to make. Without this option,
858 the chess engine chooses its search depth based on the number of
859 moves and amount of time remaining until the next time control.
860 With the option, the engine will cut off its search early if it
861 reaches the specified depth.
862
863 -thinking/-xthinking or -showThinking true/false
864 Sets the Show Thinking option. See Options Menu. Default: false.
865
866 -ponder/-xponder or -ponderNextMove true/false
867 Sets the Ponder Next Move menu option. See Options Menu.
868 Default: true.
869
870 -mg or -matchGames n
871 Automatically runs an n-game match between two chess engines,
872 with alternating colors. If the `loadGameFile' or `loadPosi‐
873 tionFile' option is set, XBoard starts each game with the given
874 opening moves or the given position; otherwise, the games start
875 with the standard initial chess position. If the `saveGameFile'
876 option is set, a move record for the match is appended to the
877 specified file. If the `savePositionFile' option is set, the
878 final position reached in each game of the match is appended to
879 the specified file. When the match is over, XBoard displays the
880 match score and exits. Default: 0 (do not run a match).
881
882 -mm/-xmm or -matchMode true/false
883 Setting `matchMode' to true is equivalent to setting
884 `matchGames' to 1.
885
886 -fcp or -firstChessProgram program
887 Name of first chess engine. Default: `gnuchessx'.
888
889 -scp or -secondChessProgram program
890 Name of second chess engine, if needed. A second chess engine
891 is started only in Two Machines (match) mode. Default:
892 `gnuchessx'.
893
894 -fb/-xfb or -firstPlaysBlack true/false
895 In games between two chess engines, firstChessProgram normally
896 plays white. If this option is true, firstChessProgram plays
897 black. In a multi-game match, this option affects the colors
898 only for the first game; they still alternate in subsequent
899 games.
900
901 -fh or -firstHost host
902 -sh or -secondHost host
903 Hosts on which the chess engines are to run. The default for
904 each is `localhost'. If you specify another host, XBoard uses
905 `rsh' to run the chess engine there. (You can substitute a dif‐
906 ferent remote shell program for rsh using the `remoteShell'
907 option described below.)
908
909 -fd or -firstDirectory dir
910 -sd or -secondDirectory dir
911 Working directories in which the chess engines are to be run.
912 The default is "", which means to run the chess engine in the
913 same working directory as XBoard itself. (See the CHESSDIR
914 environment variable.) This option is effective only when the
915 chess engine is being run on the local host; it does not work if
916 the engine is run remotely using the -fh or -sh option.
917
918 -initString string
919 -secondInitString string
920 The string that is sent to initialize each chess engine for a
921 new game. Default:
922
923 new
924 random
925
926 Setting this option from the command line is tricky, because you
927 must type in real newline characters, including one at the very
928 end. In most shells you can do this by entering a `\' character
929 followed by a newline. It is easier to set the option from your
930 `.Xdefaults' file; in that case you can include the character
931 sequence `\n' in the string, and it will be converted to a new‐
932 line.
933
934 If you change this option, don't remove the `new' command; it is
935 required by all chess engines to start a new game.
936
937 You can remove the `random' command if you like; including it
938 causes GNU Chess 4 to randomize its move selection slightly so
939 that it doesn't play the same moves in every game. Even without
940 `random', GNU Chess 4 randomizes its choice of moves from its
941 opening book. Many other chess engines ignore this command
942 entirely and always (or never) randomize.
943
944 You can also try adding other commands to the initString; see
945 the documentation of the chess engine you are using for details.
946
947 -firstComputerString string
948 -secondComputerString string
949 The string that is sent to the chess engine if its opponent is
950 another computer chess engine. The default is `computer\n'.
951 Probably the only useful alternative is the empty string (`'),
952 which keeps the engine from knowing that it is playing another
953 computer.
954
955 -reuse/-xreuse or -reuseFirst true/false
956 -reuse2/-xreuse2 or -reuseSecond true/false
957 If the option is false, XBoard kills off the chess engine after
958 every game and starts it again for the next game. If the option
959 is true (the default), XBoard starts the chess engine only once
960 and uses it repeatedly to play multiple games. Some old chess
961 engines may not work properly when reuse is turned on, but oth‐
962 erwise games will start faster if it is left on.
963
964 -firstProtocolVersion version-number
965 -secondProtocolVersion version-number
966 This option specifies which version of the chess engine communi‐
967 cation protocol to use. By default, version-number is 2. In
968 version 1, the "protover" command is not sent to the engine;
969 since version 1 is a subset of version 2, nothing else changes.
970 Other values for version-number are not supported.
971
972 Internet Chess Server Options
973 -ics/-xics or -internetChessServerMode true/false
974 Connect with an Internet Chess Server to play chess against its
975 other users, observe games they are playing, or review games
976 that have recently finished. Default: false.
977
978 -icshost or -internetChessServerHost host
979 The Internet host name or address of the chess server to connect
980 to when in ICS mode. Default: `chessclub.com'. Another popular
981 chess server to try is `freechess.org'. If your site doesn't
982 have a working Internet name server, try specifying the host
983 address in numeric form. You may also need to specify the
984 numeric address when using the icshelper option with timestamp
985 or timeseal (see below).
986
987 -icsport or -internetChessServerPort port-number
988 The port number to use when connecting to a chess server in ICS
989 mode. Default: 5000.
990
991 -icshelper or -internetChessServerHelper prog-name
992 An external helper program used to communicate with the chess
993 server. You would set it to "timestamp" for ICC (chessclub.com)
994 or "timeseal" for FICS (freechess.org), after obtaining the cor‐
995 rect version of timestamp or timeseal for your computer. See
996 "help timestamp" on ICC and "help timeseal" on FICS. This
997 option is shorthand for `-useTelnet -telnetProgram program'.
998
999 -telnet/-xtelnet or -useTelnet true/false
1000 This option is poorly named; it should be called useHelper. If
1001 set to true, it instructs XBoard to run an external program to
1002 communicate with the Internet Chess Server. The program to use
1003 is given by the telnetProgram option. If the option is false
1004 (the default), XBoard opens a TCP socket and uses its own inter‐
1005 nal implementation of the telnet protocol to communicate with
1006 the ICS. See Firewalls.
1007
1008 -telnetProgram prog-name
1009 This option is poorly named; it should be called helperProgram.
1010 It gives the name of the telnet program to be used with the
1011 `gateway' and `useTelnet' options. The default is `telnet'. The
1012 telnet program is invoked with the value of `inter‐
1013 netChessServerHost' as its first argument and the value of
1014 `internetChessServerPort' as its second argument. See Fire‐
1015 walls.
1016
1017 -gateway host-name
1018 If this option is set to a host name, XBoard communicates with
1019 the Internet Chess Server by using `rsh' to run the `telnetPro‐
1020 gram' on the given host, instead of using its own internal
1021 implementation of the telnet protocol. You can substitute a dif‐
1022 ferent remote shell program for `rsh' using the `remoteShell'
1023 option described below. See Firewalls.
1024
1025 -internetChessServerCommPort or -icscomm dev-name
1026 If this option is set, XBoard communicates with the ICS through
1027 the given character I/O device instead of opening a TCP connec‐
1028 tion. Use this option if your system does not have any kind of
1029 Internet connection itself (not even a SLIP or PPP connection),
1030 but you do have dialup access (or a hardwired terminal line) to
1031 an Internet service provider from which you can telnet to the
1032 ICS.
1033
1034 The support for this option in XBoard is minimal. You need to
1035 set all communication parameters and tty modes before you enter
1036 XBoard.
1037
1038 Use a script something like this:
1039
1040 stty raw -echo 9600 > /dev/tty00
1041 xboard -ics -icscomm /dev/tty00
1042
1043 Here replace `/dev/tty00' with the name of the device that your
1044 modem is connected to. You might have to add several more
1045 options to these stty commands. See the man pages for `stty' and
1046 `tty' if you run into problems. Also, on many systems stty works
1047 on its standard input instead of standard output, so you have to
1048 use `<' instead of `>'.
1049
1050 If you are using linux, try starting with the script below.
1051 Change it as necessary for your installation.
1052
1053 #!/bin/sh -f
1054 # configure modem and fire up XBoard
1055
1056 # configure modem
1057 (
1058 stty 2400 ; stty raw ; stty hupcl ; stty -clocal
1059 stty ignbrk ; stty ignpar ; stty ixon ; stty ixoff
1060 stty -iexten ; stty -echo
1061 ) < /dev/modem
1062 xboard -ics -icscomm /dev/modem
1063
1064 After you start XBoard in this way, type whatever commands are
1065 necessary to dial out to your Internet provider and log in.
1066 Then telnet to ICS, using a command like `telnet chessclub.com
1067 5000'. Important: See the paragraph below about extra echoes,
1068 in Limitations.
1069
1070 -icslogon or -internetChessServerLogonScript file-name
1071 Whenever XBoard connects to the Internet Chess Server, if it
1072 finds a file with the name given in this option, it feeds the
1073 file's contents to the ICS as commands. The default file name is
1074 `.icsrc'. Usually the first two lines of the file should be
1075 your ICS user name and password. The file can be either in
1076 $CHESSDIR, in XBoard's working directory if CHESSDIR is not set,
1077 or in your home directory.
1078
1079 -msLoginDelay delay
1080 If you experience trouble logging on to an ICS when using the
1081 `-icslogon' option, inserting some delay between characters of
1082 the logon script may help. This option adds `delay' milliseconds
1083 of delay between characters. Good values to try are 100 and 250.
1084
1085 -icsinput/-xicsinput or -internetChessServerInputBox true/false
1086 Sets the ICS Input Box menu option. See Mode Menu. Default:
1087 false.
1088
1089 -autocomm/-xautocomm or -autoComment true/false
1090 Sets the Auto Comment menu option. See Options Menu. Default:
1091 false.
1092
1093 -autoflag/-xautoflag or -autoCallFlag true/false
1094 Sets the Auto Flag menu option. See Options Menu. Default:
1095 false.
1096
1097 -autobs/-xautobs or -autoObserve true/false
1098 Sets the Auto Observe menu option. See Options Menu. Default:
1099 false.
1100
1101 -moves/-xmoves or -getMoveList true/false
1102 Sets the Get Move List menu option. See Options Menu. Default:
1103 true.
1104
1105 -alarm/-xalarm or -icsAlarm true/false
1106 Sets the ICS Alarm menu option. See Options Menu. Default:
1107 true.
1108
1109 -icsAlarmTime ms
1110 Sets the time in milliseconds for the ICS Alarm menu option.
1111 See Options Menu. Default: 5000.
1112
1113 -pre/-xpre or -premove true/false
1114 Sets the Premove menu option. See Options Menu. Default: true.
1115
1116 -quiet/-xquiet or -quietPlay true/false
1117 Sets the Quiet Play menu option. See Options Menu. Default:
1118 false.
1119
1120 -colorizeMessages or -colorize
1121 Setting colorizeMessages to true tells XBoard to colorize the
1122 messages received from the ICS. Colorization works only if your
1123 xterm supports ISO 6429 escape sequences for changing text col‐
1124 ors.
1125
1126 -colorShout foreground,background,bold
1127 -colorSShout foreground,background,bold
1128 -colorChannel1 foreground,background,bold
1129 -colorChannel foreground,background,bold
1130 -colorKibitz foreground,background,bold
1131 -colorTell foreground,background,bold
1132 -colorChallege foreground,background,bold
1133 -colorRequest foreground,background,bold
1134 -colorSeek foreground,background,bold
1135 -colorNormal foreground,background,bold
1136 These options set the colors used when colorizing ICS messages.
1137 All ICS messages are grouped into one of these categories:
1138 shout, sshout, channel 1, other channel, kibitz, tell, chal‐
1139 lenge, request (including abort, adjourn, draw, pause, and take‐
1140 back), or normal (all other messages).
1141
1142 Each foreground or background argument can be one of the follow‐
1143 ing: black, red, green, yellow, blue, magenta, cyan, white, or
1144 default. Here ``default'' means the default foreground or back‐
1145 ground color of your xterm. Bold can be 1 or 0. If background
1146 is omitted, ``default'' is assumed; if bold is omitted, 0 is
1147 assumed.
1148
1149 Here is an example of how to set the colors in your `.Xdefaults'
1150 file. The colors shown here are the default values; you will
1151 get them if you turn `-colorize' on without specifying your own
1152 colors.
1153
1154 xboard*colorizeMessages: true
1155 xboard*colorShout: green
1156 xboard*colorSShout: green, black, 1
1157 xboard*colorChannel1: cyan
1158 xboard*colorChannel: cyan, black, 1
1159 xboard*colorKibitz: magenta, black, 1
1160 xboard*colorTell: yellow, black, 1
1161 xboard*colorChallenge: red, black, 1
1162 xboard*colorRequest: red
1163 xboard*colorSeek: blue
1164 xboard*colorNormal: default
1165
1166 -soundProgram progname
1167 If this option is set to a sound-playing program that is
1168 installed and working on your system, XBoard can play sound
1169 files when certain events occur, listed below. The default pro‐
1170 gram name is "play". If any of the sound options is set to "$",
1171 the event rings the terminal bell by sending a ^G character to
1172 standard output, instead of playing a sound file. If an option
1173 is set to the empty string "", no sound is played for that
1174 event.
1175
1176 -soundShout filename
1177 -soundSShout filename
1178 -soundChannel filename
1179 -soundKibitz filename
1180 -soundTell filename
1181 -soundChallenge filename
1182 -soundRequest filename
1183 -soundSeek filename
1184 These sounds are triggered in the same way as the colorization
1185 events described above. They all default to "", no sound. They
1186 are played only if the colorizeMessages is on.
1187
1188 -soundMove filename
1189 This sound is used by the Move Sound menu option. Default: "$".
1190
1191 -soundIcsAlarm filename
1192 This sound is used by the ICS Alarm menu option. Default: "$".
1193
1194 -soundIcsWin filename
1195 This sound is played when you win an ICS game. Default: "" (no
1196 sound).
1197
1198 -soundIcsLoss filename
1199 This sound is played when you lose an ICS game. Default: "" (no
1200 sound).
1201
1202 -soundIcsDraw filename
1203 This sound is played when you draw an ICS game. Default: "" (no
1204 sound).
1205
1206 -soundIcsUnfinished filename
1207 This sound is played when an ICS game that you are participating
1208 in is aborted, adjourned, or otherwise ends inconclusively.
1209 Default: "" (no sound).
1210
1211 Here is an example of how to set the sounds in your .Xdefaults
1212 file:
1213
1214 xboard*soundShout: shout.wav
1215 xboard*soundSShout: sshout.wav
1216 xboard*soundChannel1: channel1.wav
1217 xboard*soundChannel: channel.wav
1218 xboard*soundKibitz: kibitz.wav
1219 xboard*soundTell: tell.wav
1220 xboard*soundChallenge: challenge.wav
1221 xboard*soundRequest: request.wav
1222 xboard*soundSeek: seek.wav
1223 xboard*soundMove: move.wav
1224 xboard*soundIcsWin: win.wav
1225 xboard*soundIcsLoss: lose.wav
1226 xboard*soundIcsDraw: draw.wav
1227 xboard*soundIcsUnfinished: unfinished.wav
1228 xboard*soundIcsAlarm: alarm.wav
1229
1230 Load and Save Options
1231 -lgf or -loadGameFile file
1232 -lgi or -loadGameIndex index
1233 If the `loadGameFile' option is set, XBoard loads the specified
1234 game file at startup. The file name `-' specifies the standard
1235 input. If there is more than one game in the file, XBoard pops
1236 up a menu of the available games, with entries based on their
1237 PGN (Portable Game Notation) tags. If the `loadGameIndex'
1238 option is set to `N', the menu is suppressed and the N th game
1239 found in the file is loaded immediately. The menu is also sup‐
1240 pressed if `matchMode' is enabled or if the game file is a pipe;
1241 in these cases the first game in the file is loaded immediately.
1242 Use the `pxboard' shell script provided with XBoard if you want
1243 to pipe in files containing multiple games and still see the
1244 menu.
1245
1246 -td or -timeDelay seconds
1247 Time delay between moves during `Load Game'. Fractional seconds
1248 are allowed; try `-td 0.4'. A time delay value of -1 tells
1249 XBoard not to step through game files automatically. Default: 1
1250 second.
1251
1252 -sgf or -saveGameFile file
1253 If this option is set, XBoard appends a record of every game
1254 played to the specified file. The file name `-' specifies the
1255 standard output.
1256
1257 -autosave/-xautosave or -autoSaveGames true/false
1258 Sets the Auto Save menu option. See Options Menu. Default:
1259 false. Ignored if `saveGameFile' is set.
1260
1261 -lpf or -loadPositionFile file
1262 -lpi or -loadPositionIndex index
1263 If the `loadPositionFile' option is set, XBoard loads the speci‐
1264 fied position file at startup. The file name `-' specifies the
1265 standard input. If the `loadPositionIndex' option is set to N,
1266 the Nth position found in the file is loaded; otherwise the
1267 first position is loaded.
1268
1269 -spf or -savePositionFile file
1270 If this option is set, XBoard appends the final position reached
1271 in every game played to the specified file. The file name `-'
1272 specifies the standard output.
1273
1274 -oldsave/-xoldsave or -oldSaveStyle true/false
1275 Sets the Old Save Style menu option. See Options Menu.
1276 Default: false.
1277
1278 User Interface Options
1279 -display
1280 -geometry
1281 -iconic
1282 These and most other standard Xt options are accepted.
1283
1284 -movesound/-xmovesound or -ringBellAfterMoves true/false
1285 Sets the Move Sound menu option. See Options Menu. Default:
1286 false. For compatibility with old XBoard versions, -bell/-xbell
1287 are also accepted as abbreviations for this option.
1288
1289 -exit/-xexit or -popupExitMessage true/false
1290 Sets the Popup Exit Message menu option. See Options Menu.
1291 Default: true.
1292
1293 -popup/-xpopup or -popupMoveErrors true/false
1294 Sets the Popup Move Errors menu option. See Options Menu.
1295 Default: false.
1296
1297 -queen/-xqueen or -alwaysPromoteToQueen true/false
1298 Sets the Always Queen menu option. See Options Menu. Default:
1299 false.
1300
1301 -legal/-xlegal or -testLegality true/false
1302 Sets the Test Legality menu option. See Options Menu. Default:
1303 true.
1304
1305 -size or -boardSize (sizeName | n1,n2,n3,n4,n5,n6,n7)
1306 Determines how large the board will be, by selecting the pixel
1307 size of the pieces and setting a few related parameters. The
1308 sizeName can be one of: Titanic, giving 129x129 pixel pieces,
1309 Colossal 116x116, Giant 108x108, Huge 95x95, Big 87x87, Large
1310 80x80, Bulky 72x72, Medium 64x64, Moderate 58x58, Average 54x54,
1311 Middling 49x49, Mediocre 45x45, Small 40x40, Slim 37x37, Petite
1312 33x33, Dinky 29x29, Teeny 25x25, or Tiny 21x21. Pieces of all
1313 these sizes are built into XBoard. Other sizes can be used if
1314 you have them; see the pixmapDirectory and bitmapDirectory
1315 options. The default depends on the size of your screen; it is
1316 approximately the largest size that will fit without clipping.
1317
1318 You can select other sizes or vary other layout parameters by
1319 providing a list of comma-separated values (with no spaces) as
1320 the argument. You do not need to provide all the values; for
1321 any you omit from the end of the list, defaults are taken from
1322 the nearest built-in size. The value `n1' gives the piece size,
1323 `n2' the width of the black border between squares, `n3' the
1324 desired size for the clockFont, `n4' the desired size for the
1325 coordFont, `n5' the desired size for the default font, `n6' the
1326 smallLayout flag (0 or 1), and `n7' the tinyLayout flag (0 or
1327 1). All dimensions are in pixels. If the border between
1328 squares is eliminated (0 width), the various highlight options
1329 will not work, as there is nowhere to draw the highlight. If
1330 smallLayout is 1 and `titleInWindow' is true, the window layout
1331 is rearranged to make more room for the title. If tinyLayout is
1332 1, the labels on the menu bar are abbreviated to one character
1333 each and the buttons in the button bar are made narrower.
1334
1335 -coords/-xcoords or -showCoords true/false
1336 Sets the Show Coords menu option. See Options Menu. Default:
1337 false. The `coordFont' option specifies what font to use.
1338
1339 -autoraise/-xautoraise or -autoRaiseBoard true/false
1340 Sets the Auto Raise Board menu option. See Options Menu.
1341 Default: true.
1342
1343 -autoflip/-xautoflip or -autoFlipView true/false
1344 Sets the Auto Flip View menu option. See Options Menu.
1345 Default: true.
1346
1347 -flip/-xflip or -flipView true/false
1348 If Auto Flip View is not set, or if you are observing but not
1349 participating in a game, then the positioning of the board at
1350 the start of each game depends on the flipView option. If
1351 flipView is false (the default), the board is positioned so that
1352 the white pawns move from the bottom to the top; if true, the
1353 black pawns move from the bottom to the top. In any case, the
1354 Flip menu option (see Options Menu) can be used to flip the
1355 board after the game starts.
1356
1357 -title/-xtitle or -titleInWindow true/false
1358 If this option is true, XBoard displays player names (for ICS
1359 games) and game file names (for `Load Game') inside its main
1360 window. If the option is false (the default), this information
1361 is displayed only in the window banner. You probably won't want
1362 to set this option unless the information is not showing up in
1363 the banner, as happens with a few X window managers.
1364
1365 -buttons/-xbuttons or -showButtonBar True/False
1366 If this option is False, xboard omits the [<<] [<] [P] [>] [>>]
1367 button bar from the window, allowing the message line to be
1368 wider. You can still get the functions of these buttons using
1369 the menus or their keyboard shortcuts. Default: true.
1370
1371 -mono/-xmono or -monoMode true/false
1372 Determines whether XBoard displays its pieces and squares with
1373 two colors (true) or four (false). You shouldn't have to specify
1374 `monoMode'; XBoard will determine if it is necessary.
1375
1376 -flashCount count
1377 -flashRate rate
1378 -flash/-xflash
1379 These options enable flashing of pieces when they land on their
1380 destination square. `flashCount' tells XBoard how many times to
1381 flash a piece after it lands on its destination square.
1382 `flashRate' controls the rate of flashing (flashes/sec). Abbre‐
1383 viations: `flash' sets flashCount to 3. `xflash' sets flash‐
1384 Count to 0. Defaults: flashCount=0 (no flashing), flashRate=5.
1385
1386 -highlight/-xhighlight or -highlightLastMove true/false
1387 Sets the Highlight Last Move menu option. See Options Menu.
1388 Default: false.
1389
1390 -blind/-xblind or -blindfold true/false
1391 Sets the Blindfold menu option. See Options Menu. Default:
1392 false.
1393
1394 -clockFont font
1395 The font used for the clocks. If the option value is a pattern
1396 that does not specify the font size, XBoard tries to choose an
1397 appropriate font for the board size being used. Default:
1398 -*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*.
1399
1400 -coordFont font
1401 The font used for rank and file coordinate labels if `showCo‐
1402 ords' is true. If the option value is a pattern that does not
1403 specify the font size, XBoard tries to choose an appropriate
1404 font for the board size being used. Default: -*-helvetica-bold-
1405 r-normal--*-*-*-*-*-*-*-*.
1406
1407 -font font
1408 The font used for popup dialogs, menus, comments, etc. If the
1409 option value is a pattern that does not specify the font size,
1410 XBoard tries to choose an appropriate font for the board size
1411 being used. Default: -*-helvetica-medium-r-nor‐
1412 mal--*-*-*-*-*-*-*-*.
1413
1414 -fontSizeTolerance tol
1415 In the font selection algorithm, a nonscalable font will be pre‐
1416 ferred over a scalable font if the nonscalable font's size dif‐
1417 fers by `tol' pixels or less from the desired size. A value of
1418 -1 will force a scalable font to always be used if available; a
1419 value of 0 will use a nonscalable font only if it is exactly the
1420 right size; a large value (say 1000) will force a nonscalable
1421 font to always be used if available. Default: 4.
1422
1423 -bm or -bitmapDirectory dir
1424 -pixmap or -pixmapDirectory dir
1425 These options control what piece images xboard uses. The XBoard
1426 distribution includes one set of pixmap pieces in xpm format, in
1427 the directory `pixmaps', and one set of bitmap pieces in xbm
1428 format, in the directory `bitmaps'. Pixmap pieces give a better
1429 appearance on the screen: the white pieces have dark borders,
1430 and the black pieces have opaque internal details. With bit‐
1431 maps, neither piece color has a border, and the internal details
1432 are transparent; you see the square color or other background
1433 color through them.
1434
1435 If XBoard is configured and compiled on a system that includes
1436 libXpm, the X pixmap library, the xpm pixmap pieces are compiled
1437 in as the default. A different xpm piece set can be selected at
1438 runtime with the `pixmapDirectory' option, or a bitmap piece set
1439 can be selected with the `bitmapDirectory' option.
1440
1441 If XBoard is configured and compiled on a system that does not
1442 include libXpm (or the `--disable-xpm' option is given to the
1443 configure program), the bitmap pieces are compiled in as the
1444 default. It is not possible to use xpm pieces in this case, but
1445 pixmap pieces in another format called "xim" can be used by giv‐
1446 ing the `pixmapDirectory' option. Or again, a different bitmap
1447 piece set can be selected with the `bitmapDirectory' option.
1448
1449 Files in the `bitmapDirectory' must be named as follows: The
1450 first character of a piece bitmap name gives the piece it repre‐
1451 sents (`p', `n', `b', `r', `q', or `k'), the next characters
1452 give the size in pixels, the following character indicates
1453 whether the piece is solid or outline (`s' or `o'), and the
1454 extension is `.bm'. For example, a solid 80x80 knight would be
1455 named `n80s.bm'. The outline bitmaps are used only in mono‐
1456 chrome mode. If bitmap pieces are compiled in and the bitmapDi‐
1457 rectory is missing some files, the compiled in pieces are used
1458 instead.
1459
1460 If the bitmapDirectory option is given, it is also possible to
1461 replace xboard's icons and menu checkmark, by supplying files
1462 named `icon_white.bm', `icon_black.bm', and `checkmark.bm'.
1463
1464 For more information about pixmap pieces and how to get addi‐
1465 tional sets, see zic2xpm below.
1466
1467 -whitePieceColor color
1468 -blackPieceColor color
1469 -lightSquareColor color
1470 -darkSquareColor color
1471 -highlightSquareColor color
1472 Colors to use for the pieces, squares, and square highlights.
1473 Defaults:
1474
1475 -whitePieceColor #FFFFCC
1476 -blackPieceColor #202020
1477 -lightSquareColor #C8C365
1478 -darkSquareColor #77A26D
1479 -highlightSquareColor #FFFF00
1480 -premoveHighlightColor #FF0000
1481
1482 On a grayscale monitor you might prefer:
1483
1484 -whitePieceColor gray100
1485 -blackPieceColor gray0
1486 -lightSquareColor gray80
1487 -darkSquareColor gray60
1488 -highlightSquareColor gray100
1489 -premoveHighlightColor gray70
1490
1491 -drag/-xdrag or -animateDragging true/false
1492 Sets the Animate Dragging menu option. See Options Menu.
1493 Default: true.
1494
1495 -animate/-xanimate or -animateMoving true/false
1496 Sets the Animate Moving menu option. See Options Menu. Default:
1497 true.
1498
1499 -animateSpeed n
1500 Number of milliseconds delay between each animation frame when
1501 Animate Moves is on.
1502
1503 Other Options
1504 -ncp/-xncp or -noChessProgram true/false
1505 If this option is true, XBoard acts as a passive chessboard; it
1506 does not start a chess engine at all. Turning on this option
1507 also turns off clockMode. Default: false.
1508
1509 -mode or -initialMode modename
1510 If this option is given, XBoard selects the given modename from
1511 the Mode menu after starting and (if applicable) processing the
1512 loadGameFile or loadPositionFile option. Default: "" (no selec‐
1513 tion). Other supported values are MachineWhite, MachineBlack,
1514 TwoMachines, Analysis, AnalyzeFile, EditGame, EditPosition, and
1515 Training.
1516
1517 -variant varname
1518 Activates preliminary, partial support for playing chess vari‐
1519 ants against a local engine or editing variant games. This flag
1520 is not needed in ICS mode. Recognized variant names are:
1521
1522 normal Normal chess
1523 wildcastle Shuffle chess, king can castle from d file
1524 nocastle Shuffle chess, no castling allowed
1525 fischerandom Fischer Random shuffle chess
1526 bughouse Bughouse, ICC/FICS rules
1527 crazyhouse Crazyhouse, ICC/FICS rules
1528 losers Lose all pieces or get mated (ICC wild 17)
1529 suicide Lose all pieces including king (FICS)
1530 giveaway Try to have no legal moves (ICC wild 26)
1531 twokings Weird ICC wild 9
1532 kriegspiel Opponent's pieces are invisible
1533 atomic Capturing piece explodes (ICC wild 27)
1534 3check Win by giving check 3 times (ICC wild 25)
1535 shatranj An ancient precursor of chess (ICC wild 28)
1536 unknown Catchall for other unknown variants
1537
1538 In the shuffle variants, xboard does not shuffle the pieces, but
1539 you can do it by hand using Edit Position. Some variants are
1540 supported only in ICS mode, including fischerandom, bughouse,
1541 and kriegspiel. The winning/drawing conditions in crazyhouse
1542 (offboard interposition on mate), losers, suicide, giveaway,
1543 atomic, and 3check are not fully understood. In crazyhouse,
1544 xboard does not yet keep track of offboard pieces. Shatranj is
1545 unsupported, but it may be usable if you turn off Test Legality.
1546
1547 -debug/-xdebug or -debugMode true/false
1548 Turns on debugging printout.
1549
1550 -rsh or -remoteShell shell-name
1551 Name of the command used to run programs remotely. The default
1552 is `rsh' or `remsh', determined when XBoard is configured and
1553 compiled.
1554
1555 -ruser or -remoteUser user-name
1556 User name on the remote system when running programs with the
1557 `remoteShell'. The default is your local user name.
1558
1560 An "Internet Chess Server", or "ICS", is a place on the Internet where
1561 people can get together to play chess, watch other people's games, or
1562 just chat. You can use either `telnet' or a client program like XBoard
1563 to connect to the server. There are thousands of registered users on
1564 the different ICS hosts, and it is not unusual to meet 200 on both
1565 chessclub.com and freechess.org.
1566
1567 Most people can just type `xboard -ics' to start XBoard as an ICS
1568 client. Invoking XBoard in this way connects you to the Internet Chess
1569 Club (ICC), a commercial ICS. You can log in there as a guest even if
1570 you do not have a paid account. To connect to the largest Free ICS
1571 (FICS), use the command `xboard -ics -icshost freechess.org' instead,
1572 or substitute a different host name to connect to your favorite ICS.
1573 For a full description of command-line options that control the connec‐
1574 tion to ICS and change the default values of ICS options, see ICS
1575 options.
1576
1577 While you are running XBoard as an ICS client, you use the terminal
1578 window that you started XBoard from as a place to type in commands and
1579 read information that is not available on the chessboard.
1580
1581 The first time you need to use the terminal is to enter your login name
1582 and password, if you are a registered player. (You don't need to do
1583 this manually; the `icsLogon' option can do it for you. See ICS
1584 options.) If you are not registered, enter `g' as your name, and the
1585 server will pick a unique guest name for you.
1586
1587 Some useful ICS commands include
1588
1589 help <topic>
1590 to get help on the given <topic>. To get a list of possible top‐
1591 ics type "help" without topic. Try the help command before you
1592 ask other people on the server for help.
1593
1594 For example `help register' tells you how to become a registered
1595 ICS player.
1596
1597 who <flags>
1598 to see a list of people who are logged on. Administrators (peo‐
1599 ple you should talk to if you have a problem) are marked with
1600 the character `*', an asterisk. The <flags> allow you to display
1601 only selected players: For example, `who of' shows a list of
1602 players who are interested in playing but do not have an oppo‐
1603 nent.
1604
1605 games to see what games are being played
1606
1607 match <player> [<mins>] [<inc>]
1608 to challenge another player to a game. Both opponents get <mins>
1609 minutes for the game, and <inc> seconds will be added after each
1610 move. If another player challenges you, the server asks if you
1611 want to accept the challenge; use the `accept' or `decline' com‐
1612 mands to answer.
1613
1614 accept
1615 decline
1616 to accept or decline another player's offer. The offer may be
1617 to start a new game, or to agree to a `draw', `adjourn' or
1618 `abort' the current game. See Action Menu.
1619
1620 If you have more than one pending offer (for example, if more
1621 than one player is challenging you, or if your opponent offers
1622 both a draw and to adjourn the game), you have to supply addi‐
1623 tional information, by typing something like `accept <player>',
1624 `accept draw', or `draw'.
1625
1626 draw
1627 adjourn
1628 abort asks your opponent to terminate a game by mutual agreement.
1629 Adjourned games can be continued later. Your opponent can
1630 either `decline' your offer or accept it (by typing the same
1631 command or typing `accept'). In some cases these commands work
1632 immediately, without asking your opponent to agree. For exam‐
1633 ple, you can abort the game unilaterally if your opponent is out
1634 of time, and you can claim a draw by repetition or the 50-move
1635 rule if available simply by typing `draw'.
1636
1637 finger <player>
1638 to get information about the given <player>. (Default: your‐
1639 self.)
1640
1641 vars to get a list of personal settings
1642
1643 set <var> <value>
1644 to modify these settings
1645
1646 observe <player>
1647 to observe an ongoing game of the given <player>.
1648
1649 examine
1650 oldmoves
1651 to review a recently completed game
1652
1653 Some special XBoard features are activated when you are in examine mode
1654 on ICS. See the descriptions of the menu commands `Forward', `Back‐
1655 ward', `Pause', `ICS Client', and `Stop Examining' on the Step Menu,
1656 Mode Menu, and Options Menu.
1657
1658
1660 By default, XBoard communicates with an Internet Chess Server by open‐
1661 ing a TCP socket directly from the machine it is running on to the ICS.
1662 If there is a firewall between your machine and the ICS, this won't
1663 work. Here are some recipes for getting around common kinds of fire‐
1664 walls using special options to XBoard. Important: See the paragraph in
1665 the below about extra echoes, in Limitations.
1666
1667 Suppose that you can't telnet directly to ICS, but you can telnet to a
1668 firewall host, log in, and then telnet from there to ICS. Let's say
1669 the firewall is called `firewall.example.com'. Set command-line options
1670 as follows:
1671
1672 xboard -ics -icshost firewall.example.com -icsport 23
1673
1674 Or in your `.Xdefaults' file:
1675
1676 XBoard*internetChessServerHost: firewall.example.com
1677 XBoard*internetChessServerPort: 23
1678
1679 Then when you run XBoard in ICS mode, you will be prompted to log in to
1680 the firewall host. This works because port 23 is the standard telnet
1681 login service. Do so, then telnet to ICS, using a command like `telnet
1682 chessclub.com 5000', or whatever command the firewall provides for tel‐
1683 netting to port 5000.
1684
1685 If your firewall lets you telnet (or rlogin) to remote hosts but
1686 doesn't let you telnet to port 5000, you may be able to connect to the
1687 chess server on port 23 instead, which is the port the telnet program
1688 uses by default. Some chess servers support this (including chess‐
1689 club.com and freechess.org), while some do not.
1690
1691 If your chess server does not allow connections on port 23 and your
1692 firewall does not allow you to connect to other ports, you may be able
1693 to connect by hopping through another host outside the firewall that
1694 you have an account on. For instance, suppose you have a shell account
1695 at `foo.edu'. Follow the recipe above, but instead of typing `telnet
1696 chessclub.com 5000' to the firewall, type `telnet foo.edu' (or `rlogin
1697 foo.edu'), log in there, and then type `telnet chessclub.com 5000'.
1698
1699 Suppose that you can't telnet directly to ICS, but you can use rsh to
1700 run programs on a firewall host, and that host can telnet to ICS.
1701 Let's say the firewall is called `rsh.example.com'. Set command-line
1702 options as follows:
1703
1704 xboard -ics -gateway rsh.example.com -icshost chessclub.com
1705
1706 Or in your `.Xdefaults' file:
1707
1708 XBoard*gateway: rsh.example.com
1709 XBoard*internetChessServerHost: chessclub.com
1710
1711 Then when you run XBoard in ICS mode, it will connect to the ICS by
1712 using `rsh' to run the command `telnet chessclub.com 5000' on host
1713 `rsh.example.com'.
1714
1715 Suppose that you can telnet anywhere you want, but you have to run a
1716 special program called `ptelnet' to do so.
1717
1718 First, we'll consider the easy case, in which `ptelnet chessclub.com
1719 5000' gets you to the chess server. In this case set command line
1720 options as follows:
1721
1722 xboard -ics -telnet -telnetProgram ptelnet
1723
1724 Or in your `.Xdefaults' file:
1725
1726 XBoard*useTelnet: true
1727 XBoard*telnetProgram: ptelnet
1728
1729 Then when you run XBoard in ICS mode, it will issue the command `ptel‐
1730 net chessclub.com 5000' to connect to the ICS.
1731
1732 Next, suppose that `ptelnet chessclub.com 5000' doesn't work; that is,
1733 your `ptelnet' program doesn't let you connect to alternative ports. As
1734 noted above, your chess server may allow you to connect on port 23
1735 instead. In that case, just add the option `-icsport ""' to the above
1736 command, or add `XBoard*internetChessServerPort:' to your `.Xdefaults'
1737 file. But if your chess server doesn't let you connect on port 23, you
1738 will have to find some other host outside the firewall and hop through
1739 it. For instance, suppose you have a shell account at `foo.edu'. Set
1740 command line options as follows:
1741
1742 xboard -ics -telnet -telnetProgram ptelnet -icshost foo.edu -icsport ""
1743
1744 Or in your `.Xdefaults' file:
1745
1746 XBoard*useTelnet: true
1747 XBoard*telnetProgram: ptelnet
1748 XBoard*internetChessServerHost: foo.edu
1749 XBoard*internetChessServerPort:
1750
1751 Then when you run XBoard in ICS mode, it will issue the command `ptel‐
1752 net foo.edu' to connect to your account at `foo.edu'. Log in there,
1753 then type `telnet chessclub.com 5000'.
1754
1755 ICC timestamp and FICS timeseal do not work through some firewalls.
1756 You can use them only if your firewall gives a clean TCP connection
1757 with a full 8-bit wide path. If your firewall allows you to get out
1758 only by running a special telnet program, you can't use timestamp or
1759 timeseal across it. But if you have access to a computer just outside
1760 your firewall, and you have much lower netlag when talking to that com‐
1761 puter than to the ICS, it might be worthwhile running timestamp there.
1762 Follow the instructions above for hopping through a host outside the
1763 firewall (foo.edu in the example), but run timestamp or timeseal on
1764 that host instead of telnet.
1765
1766 Suppose that you have a SOCKS firewall that will give you a clean 8-bit
1767 wide TCP connection to the chess server, but only after you authenti‐
1768 cate yourself via the SOCKS protocol. In that case, you could make a
1769 socksified version of XBoard and run that. If you are using timestamp
1770 or timeseal, you will to socksify it, not XBoard; this may be difficult
1771 seeing that ICC and FICS do not provide source code for these programs.
1772 Socksification is beyond the scope of this document, but see the SOCKS
1773 Web site at http://www.socks.permeo.com/. If you are missing SOCKS,
1774 try http://www.funbureau.com/.
1775
1776
1778 Game and position files are found in a directory named by the `CHESS‐
1779 DIR' environment variable. If this variable is not set, the current
1780 working directory is used. If `CHESSDIR' is set, XBoard actually
1781 changes its working directory to `$CHESSDIR', so any files written by
1782 the chess engine will be placed there too.
1783
1784
1786 There is no way for two people running copies of XBoard to play each
1787 other without going through an Internet Chess Server.
1788
1789 Under some circumstances, your ICS password may be echoed when you log
1790 on.
1791
1792 If you are connecting to the ICS by running telnet on an Internet
1793 provider or firewall host, you may find that each line you type is
1794 echoed back an extra time after you hit <Enter>. If your Internet
1795 provider is a Unix system, you can probably turn its echo off by typing
1796 `stty -echo' after you log in, and/or typing <^E><Enter> (Ctrl+E fol‐
1797 lowed by the Enter key) to the telnet program after you have logged
1798 into ICS. It is a good idea to do this if you can, because the extra
1799 echo can occasionally confuse XBoard's parsing routines.
1800
1801 The game parser recognizes only algebraic notation.
1802
1803 The internal move legality tester does not look at the game history, so
1804 in some cases it misses illegal castling or en passant captures. It
1805 permits castling with the king on the d file because this is possible
1806 in some "wild 1" games on ICS. It does not check piece drops in bug‐
1807 house and crazyhouse to see if you actually hold the piece you are try‐
1808 ing to drop. However, if you attempt an illegal move when using a
1809 chess engine or chess server, XBoard will accept the error message that
1810 comes back, undo the move, and let you try another.
1811
1812 Fischer Random castling is not understood. You can probably play Fis‐
1813 cher Random successfully on ICS by typing castling moves into the ICS
1814 Interaction window, but they will not be animated correctly, and saved
1815 games will not be loaded correctly if castling occurs.
1816
1817 FEN positions saved by XBoard never include correct information about
1818 whether castling is legal or how many half-moves have been made since
1819 the last irreversible move, and sometimes may not correctly indicate
1820 when en passant capture is available.
1821
1822 The mate detector does not understand that non-contact mate is not
1823 really mate in bughouse and crazyhouse. The only problem this causes
1824 while playing is minor: a `#' (mate indicator) character will show up
1825 after a non-contact mating move in the move list; XBoard will not
1826 assume the game is over at that point. However, if you are editing a
1827 game, Edit Game mode will be terminated by a non-contact mate.
1828
1829 The menus may not work if your keyboard is in Caps Lock or Num Lock
1830 mode. This seems to be a problem with the Athena menu widget, not an
1831 XBoard bug.
1832
1833 Also see the ToDo file included with the distribution for many other
1834 possible bugs, limitations, and ideas for improvement that have been
1835 suggested.
1836
1838 Report bugs and problems with XBoard to `<bug-xboard@gnu.org>'.
1839
1840 Please use the `script' program to start a typescript, run XBoard with
1841 the `-debug' option, and include the typescript output in your message.
1842 Also tell us what kind of machine and what operating system version you
1843 are using. The command `uname -a' will often tell you this. Here is a
1844 sample of approximately what you should type:
1845
1846 script
1847 uname -a
1848 ./configure
1849 make
1850 ./xboard -debug
1851 exit
1852 mail bug-xboard@gnu.org
1853 Subject: Your short description of the problem
1854 Your detailed description of the problem
1855 ~r typescript
1856 .
1857
1858 If you improve XBoard, please send a message about your changes, and we
1859 will get in touch with you about merging them in to the main line of
1860 development. Also see our Web site at http://savan‐
1861 nah.gnu.org/projects/xboard/.
1862
1863
1865 Tim Mann has been responsible for XBoard versions 1.3 and beyond, and
1866 for WinBoard, a port of XBoard to Microsoft Win32 (Windows NT and Win‐
1867 dows 95).
1868
1869 Mark Williams contributed the initial (WinBoard-only) implementation of
1870 many new features added to both XBoard and WinBoard in version 4.1.0,
1871 including copy/paste, premove, icsAlarm, autoFlipView, training mode,
1872 auto raise, and blindfold. Ben Nye contributed X copy/paste code for
1873 XBoard.
1874
1875 Hugh Fisher added animated piece movement to XBoard, and Henrik Gram
1876 (henrikg@funcom.com) added it to WinBoard. Frank McIngvale added
1877 click/click moving, the Analysis modes, piece flashing, ZIICS import,
1878 and ICS text colorization to XBoard. Jochen Wiedmann ported XBoard to
1879 the Amiga, creating AmyBoard, and converted the documentation to tex‐
1880 info. Elmar Bartel contributed the new piece bitmaps introduced in
1881 version 3.2. John Chanak contributed the initial implementation of ICS
1882 mode. The color scheme and the old 80x80 piece bitmaps were taken from
1883 Wayne Christopher's `XChess' program.
1884
1885 Chris Sears and Dan Sears wrote the original XBoard. They were respon‐
1886 sible for versions 1.0 through 1.2.
1887
1888 Evan Welsh wrote `CMail'. Patrick Surry helped in designing, testing,
1889 and documenting CMail.
1890
1891
1893 The `cmail' program can help you play chess by email with opponents of
1894 your choice using XBoard as an interface.
1895
1896 You will usually run `cmail' without giving any options.
1897
1898
1899 CMail options
1900 -h Displays `cmail' usage information.
1901
1902 -c Shows the conditions of the GNU General Public License. See
1903 Copying.
1904
1905 -w Shows the warranty notice of the GNU General Public License.
1906 See Copying.
1907
1908 -v
1909 -xv Provides or inhibits verbose output from `cmail' and XBoard,
1910 useful for debugging. The `-xv' form also inhibits the cmail
1911 introduction message.
1912
1913 -mail
1914 -xmail Invokes or inhibits the sending of a mail message containing the
1915 move.
1916
1917 -xboard
1918 -xxboard
1919 Invokes or inhibits the running of XBoard on the game file.
1920
1921 -reuse
1922 -xreuse
1923 Invokes or inhibits the reuse of an existing XBoard to display
1924 the current game.
1925
1926 -remail
1927 Resends the last mail message for that game. This inhibits run‐
1928 ning XBoard.
1929
1930 -game <name>
1931 The name of the game to be processed.
1932
1933 -wgames <number>
1934 -bgames <number>
1935 -games <number>
1936 Number of games to start as White, as Black or in total. Default
1937 is 1 as white and none as black. If only one color is specified
1938 then none of the other color is assumed. If no color is speci‐
1939 fied then equal numbers of White and Black games are started,
1940 with the extra game being as White if an odd number of total
1941 games is specified.
1942
1943 -me <short name>
1944 -opp <short name>
1945 A one-word alias for yourself or your opponent.
1946
1947 -wname <full name>
1948 -bname <full name>
1949 -name <full name>
1950 -oppname <full name>
1951 The full name of White, Black, yourself or your opponent.
1952
1953 -wna <net address>
1954 -bna <net address>
1955 -na <net address>
1956 -oppna <net address>
1957 The email address of White, Black, yourself or your opponent.
1958
1959 -dir <directory>
1960 The directory in which `cmail' keeps its files. This defaults to
1961 the environment variable `$CMAIL_DIR' or failing that, `$CHESS‐
1962 DIR', `$HOME/Chess' or `~/Chess'. It will be created if it does
1963 not exist.
1964
1965 -arcdir <directory>
1966 The directory in which `cmail' archives completed games.
1967 Defaults to the environment variable `$CMAIL_ARCDIR' or, in its
1968 absence, the same directory as cmail keeps its working files
1969 (above).
1970
1971 -mailprog <mail program>
1972 The program used by cmail to send email messages. This defaults
1973 to the environment variable `$CMAIL_MAILPROG' or failing that
1974 `/usr/ucb/Mail', `/usr/ucb/mail' or `Mail'. You will need to set
1975 this variable if none of the above paths fit your system.
1976
1977 -gamesFile <file>
1978 A file containing a list of games with email addresses. This
1979 defaults to the environment variable `$CMAIL_GAMES' or failing
1980 that `.cmailgames'.
1981
1982 -aliasesFile <file>
1983 A file containing one or more aliases for a set of email
1984 addresses. This defaults to the environment variable
1985 `$CMAIL_ALIASES' or failing that `.cmailaliases'.
1986
1987 -logFile <file>
1988 A file in which to dump verbose debugging messages that are
1989 invoked with the `-v' option.
1990
1991 -event <event>
1992 The PGN Event tag (default `Email correspondence game').
1993
1994 -site <site>
1995 The PGN Site tag (default `NET').
1996
1997 -round <round>
1998 The PGN Round tag (default `-', not applicable).
1999
2000 -mode <mode>
2001 The PGN Mode tag (default `EM', Electronic Mail).
2002
2003 Other options
2004 Any option flags not listed above are passed through to XBoard.
2005 Invoking XBoard through CMail changes the default values of two
2006 XBoard options: The default value for `-noChessProgram' is
2007 changed to true; that is, by default no chess engine is started.
2008 The default value for `-timeDelay' is changed to 0; that is, by
2009 default XBoard immediately goes to the end of the game as played
2010 so far, rather than stepping through the moves one by one. You
2011 can still set these options to whatever values you prefer by
2012 supplying them on CMail's command line. See Options.
2013
2014 Starting a CMail Game
2015 Type `cmail' from a shell to start a game as white. After an opening
2016 message, you will be prompted for a game name, which is optional -- if
2017 you simply press <Enter>, the game name will take the form `you-VS-
2018 opponent'. You will next be prompted for the short name of your oppo‐
2019 nent. If you haven't played this person before, you will also be
2020 prompted for his/her email address. `cmail' will then invoke XBoard in
2021 the background. Make your first move and select `Mail Move' from the
2022 `File' menu. See File Menu. If all is well, `cmail' will mail a copy of
2023 the move to your opponent. If you select `Exit' without having selected
2024 `Mail Move' then no move will be made.
2025
2026
2027 Answering a Move
2028 When you receive a message from an opponent containing a move in one of
2029 your games, simply pipe the message through `cmail'. In some mailers
2030 this is as simple as typing `| cmail' when viewing the message, while
2031 in others you may have to save the message to a file and do `cmail <
2032 file' at the command line. In either case `cmail' will display the game
2033 using XBoard. If you didn't exit XBoard when you made your first move
2034 then `cmail' will do its best to use the existing XBoard instead of
2035 starting a new one. As before, simply make a move and select `Mail
2036 Move' from the `File' menu. See File Menu. `cmail' will try to use the
2037 XBoard that was most recently used to display the current game. This
2038 means that many games can be in progress simultaneously, each with its
2039 own active XBoard.
2040
2041 If you want to look at the history or explore a variation, go ahead,
2042 but you must return to the current position before XBoard will allow
2043 you to mail a move. If you edit the game's history you must select
2044 `Reload Same Game' from the `File' menu to get back to the original
2045 position, then make the move you want and select `Mail Move'. As
2046 before, if you decide you aren't ready to make a move just yet you can
2047 either select `Exit' without sending a move or just leave XBoard run‐
2048 ning until you are ready.
2049
2050
2051 Multi-Game Messages
2052 It is possible to have a `cmail' message carry more than one game.
2053 This feature was implemented to handle IECG (International Email Chess
2054 Group) matches, where a match consists of one game as white and one as
2055 black, with moves transmitted simultaneously. In case there are more
2056 general uses, `cmail' itself places no limit on the number of
2057 black/white games contained in a message; however, XBoard does.
2058
2059
2060 Completing a Game
2061 Because XBoard can detect checkmate and stalemate, `cmail' handles game
2062 termination sensibly. As well as resignation, the `Action' menu allows
2063 draws to be offered and accepted for `cmail' games.
2064
2065 For multi-game messages, only unfinished and just-finished games will
2066 be included in email messages. When all the games are finished, they
2067 are archived in the user's archive directory, and similarly in the
2068 opponent's when he or she pipes the final message through `cmail'. The
2069 archive file name includes the date the game was started.
2070
2071
2072 Known CMail Problems
2073 It's possible that a strange conjunction of conditions may occasionally
2074 mean that `cmail' has trouble reactivating an existing XBoard. If this
2075 should happen, simply trying it again should work. If not, remove the
2076 file that stores the XBoard's PID (`game.pid') or use the `-xreuse'
2077 option to force `cmail' to start a new XBoard.
2078
2079 Versions of `cmail' after 2.16 no longer understand the old file format
2080 that XBoard used to use and so cannot be used to correspond with anyone
2081 using an older version.
2082
2083 Versions of `cmail' older than 2.11 do not handle multi-game messages,
2084 so multi-game correspondence is not possible with opponents using an
2085 older version.
2086
2087
2089 Here are some other programs you can use with XBoard
2090
2091
2092 GNU Chess
2093 The GNU Chess engine is available from:
2094
2095 ftp://ftp.gnu.org/gnu/gnuchess/
2096
2097 You can use XBoard to play a game against GNU Chess, or to interface
2098 GNU Chess to an ICS.
2099
2100
2101 Crafty
2102 Crafty is a chess engine written by Bob Hyatt. You can use XBoard to
2103 play a game against Crafty, hook Crafty up to an ICS, or use Crafty to
2104 interactively analyze games and positions for you.
2105
2106 Crafty is a strong, rapidly evolving chess program. This rapid pace of
2107 development is good, because it means Crafty is always getting better.
2108 This can sometimes cause problems with backwards compatibility, but
2109 usually the latest version of Crafty will work well with the latest
2110 version of XBoard. Crafty can be obtained from its author's FTP site:
2111 ftp://ftp.cis.uab.edu/hyatt/.
2112
2113 To use Crafty with XBoard, give the -fcp and -fd options as follows,
2114 where <crafty's directory> is the directory in which you installed
2115 Crafty and placed its book and other support files.
2116
2117
2118 zic2xpm
2119 The ``zic2xpm'' program is used to import chess sets from the ZIICS(*)
2120 program into XBoard. ``zic2xpm'' is part of the XBoard distribution.
2121 ZIICS is available from:
2122
2123 ftp://ftp.freechess.org/pub/chess/DOS/ziics131.exe
2124
2125 To import ZIICS pieces, do this:
2126
2127 1. Unzip ziics131.exe into a directory:
2128
2129 unzip -L ziics131.exe -d ~/ziics
2130
2131 2. Use zic2xpm to convert a set of pieces to XBoard format.
2132
2133 For example, let's say you want to use the FRITZ4 set. These
2134 files are named ``fritz4.*'' in the ZIICS distribution.
2135
2136 mkdir ~/fritz4
2137 cd ~/fritz4
2138 zic2xpm ~/ziics/fritz4.*
2139
2140 3. Give XBoard the ``-pixmap'' option when starting up, e.g.:
2141
2142 xboard -pixmap ~/fritz4
2143
2144 Alternatively, you can add this line to your .Xdefaults file:
2145
2146 xboard*pixmapDirectory: ~/fritz4
2147
2148 (*) ZIICS is a separate copyrighted work of Andy McFarland. The
2149 ``ZIICS pieces'' are copyrighted works of their respective creators.
2150 Files produced by ``zic2xpm'' are for PERSONAL USE ONLY and may NOT be
2151 redistributed without explicit permission from the original creator(s)
2152 of the pieces.
2153
2154
2156 Copyright (C) 1991 Digital Equipment Corporation, Maynard, Massachu‐
2157 setts.
2158
2159 All Rights Reserved.
2160
2161 Permission to use, copy, modify, and distribute this software and its
2162 documentation for any purpose and without fee is hereby granted, pro‐
2163 vided that the above copyright notice appear in all copies and that
2164 both that copyright notice and this permission notice appear in sup‐
2165 porting documentation, and that the name of Digital not be used in
2166 advertising or publicity pertaining to distribution of the software
2167 without specific, written prior permission.
2168
2169 Digital disclaims all warranties with regard to this software, includ‐
2170 ing all implied warranties of merchantability and fitness. In no event
2171 shall Digital be liable for any special, indirect or consequential dam‐
2172 ages or any damages whatsoever resulting from loss of use, data or
2173 profits, whether in an action of contract, negligence or other tortious
2174 action, arising out of or in connection with the use or performance of
2175 this software.
2176
2177 Enhancements copyright (C) 1992-2003 Free Software Foundation, Inc.
2178
2179 Published by the Free Software Foundation
2180 59 Temple Place - Suite 330
2181 Boston, MA 02111-1307 USA
2182
2183 Permission is granted to make and distribute verbatim copies of this
2184 manual provided the copyright notice and this permission notice are
2185 preserved on all copies.
2186
2187 Permission is granted to copy and distribute modified versions of this
2188 manual under the conditions for verbatim copying, provided also that
2189 the section entitled ``GNU General Public License,'' is included
2190 exactly as in the original, and provided that the entire resulting
2191 derived work is distributed under the terms of a permission notice
2192 identical to this one.
2193
2194 Permission is granted to copy and distribute translations of this man‐
2195 ual into another language, under the above conditions for modified ver‐
2196 sions, except that the section entitled ``GNU General Public License,''
2197 and this permission notice, may be included in translations approved by
2198 the Free Software Foundation instead of in the original English.
2199
2200
2202 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
2203 59 Temple Place, Suite 330, Boston, MA 02111 USA
2204
2205 Everyone is permitted to copy and distribute verbatim copies
2206 of this license document, but changing it is not allowed.
2207
2208 The licenses for most software are designed to take away your freedom
2209 to share and change it. By contrast, the GNU General Public License is
2210 intended to guarantee your freedom to share and change free software --
2211 to make sure the software is free for all its users. This General Pub‐
2212 lic License applies to most of the Free Software Foundation's software
2213 and to any other program whose authors commit to using it. (Some other
2214 Free Software Foundation software is covered by the GNU Library General
2215 Public License instead.) You can apply it to your programs, too.
2216
2217 When we speak of free software, we are referring to freedom, not
2218 price. Our General Public Licenses are designed to make sure that you
2219 have the freedom to distribute copies of free software (and charge for
2220 this service if you wish), that you receive source code or can get it
2221 if you want it, that you can change the software or use pieces of it in
2222 new free programs; and that you know you can do these things.
2223
2224 To protect your rights, we need to make restrictions that forbid any‐
2225 one to deny you these rights or to ask you to surrender the rights.
2226 These restrictions translate to certain responsibilities for you if you
2227 distribute copies of the software, or if you modify it.
2228
2229 For example, if you distribute copies of such a program, whether
2230 gratis or for a fee, you must give the recipients all the rights that
2231 you have. You must make sure that they, too, receive or can get the
2232 source code. And you must show them these terms so they know their
2233 rights.
2234
2235 We protect your rights with two steps: (1) copyright the software,
2236 and (2) offer you this license which gives you legal permission to
2237 copy, distribute and/or modify the software.
2238
2239 Also, for each author's protection and ours, we want to make certain
2240 that everyone understands that there is no warranty for this free soft‐
2241 ware. If the software is modified by someone else and passed on, we
2242 want its recipients to know that what they have is not the original, so
2243 that any problems introduced by others will not reflect on the original
2244 authors' reputations.
2245
2246 Finally, any free program is threatened constantly by software
2247 patents. We wish to avoid the danger that redistributors of a free
2248 program will individually obtain patent licenses, in effect making the
2249 program proprietary. To prevent this, we have made it clear that any
2250 patent must be licensed for everyone's free use or not licensed at all.
2251
2252 The precise terms and conditions for copying, distribution and modi‐
2253 fication follow.
2254
2255 This License applies to any program or other work which contains a
2256 notice placed by the copyright holder saying it may be distributed
2257 under the terms of this General Public License. The ``Program'',
2258 below, refers to any such program or work, and a ``work based on the
2259 Program'' means either the Program or any derivative work under copy‐
2260 right law: that is to say, a work containing the Program or a portion
2261 of it, either verbatim or with modifications and/or translated into
2262 another language. (Hereinafter, translation is included without limi‐
2263 tation in the term ``modification''.) Each licensee is addressed as
2264 ``you''.
2265
2266 Activities other than copying, distribution and modification are not
2267 covered by this License; they are outside its scope. The act of run‐
2268 ning the Program is not restricted, and the output from the Program is
2269 covered only if its contents constitute a work based on the Program
2270 (independent of having been made by running the Program). Whether that
2271 is true depends on what the Program does.
2272
2273 You may copy and distribute verbatim copies of the Program's source
2274 code as you receive it, in any medium, provided that you conspicuously
2275 and appropriately publish on each copy an appropriate copyright notice
2276 and disclaimer of warranty; keep intact all the notices that refer to
2277 this License and to the absence of any warranty; and give any other
2278 recipients of the Program a copy of this License along with the Pro‐
2279 gram.
2280
2281 You may charge a fee for the physical act of transferring a copy, and
2282 you may at your option offer warranty protection in exchange for a fee.
2283
2284 You may modify your copy or copies of the Program or any portion of it,
2285 thus forming a work based on the Program, and copy and distribute such
2286 modifications or work under the terms of Section 1 above, provided that
2287 you also meet all of these conditions:
2288
2289 You must cause the modified files to carry prominent notices stating
2290 that you changed the files and the date of any change.
2291
2292 You must cause any work that you distribute or publish, that in whole
2293 or in part contains or is derived from the Program or any part thereof,
2294 to be licensed as a whole at no charge to all third parties under the
2295 terms of this License.
2296
2297 If the modified program normally reads commands interactively when run,
2298 you must cause it, when started running for such interactive use in the
2299 most ordinary way, to print or display an announcement including an
2300 appropriate copyright notice and a notice that there is no warranty (or
2301 else, saying that you provide a warranty) and that users may redis‐
2302 tribute the program under these conditions, and telling the user how to
2303 view a copy of this License. (Exception: if the Program itself is
2304 interactive but does not normally print such an announcement, your work
2305 based on the Program is not required to print an announcement.)
2306
2307 These requirements apply to the modified work as a whole. If identifi‐
2308 able sections of that work are not derived from the Program, and can be
2309 reasonably considered independent and separate works in themselves,
2310 then this License, and its terms, do not apply to those sections when
2311 you distribute them as separate works. But when you distribute the
2312 same sections as part of a whole which is a work based on the Program,
2313 the distribution of the whole must be on the terms of this License,
2314 whose permissions for other licensees extend to the entire whole, and
2315 thus to each and every part regardless of who wrote it.
2316
2317 Thus, it is not the intent of this section to claim rights or contest
2318 your rights to work written entirely by you; rather, the intent is to
2319 exercise the right to control the distribution of derivative or collec‐
2320 tive works based on the Program.
2321
2322 In addition, mere aggregation of another work not based on the Program
2323 with the Program (or with a work based on the Program) on a volume of a
2324 storage or distribution medium does not bring the other work under the
2325 scope of this License.
2326
2327 You may copy and distribute the Program (or a work based on it, under
2328 Section 2) in object code or executable form under the terms of Sec‐
2329 tions 1 and 2 above provided that you also do one of the following:
2330
2331 Accompany it with the complete corresponding machine-readable source
2332 code, which must be distributed under the terms of Sections 1 and 2
2333 above on a medium customarily used for software interchange; or,
2334
2335 Accompany it with a written offer, valid for at least three years, to
2336 give any third party, for a charge no more than your cost of physically
2337 performing source distribution, a complete machine-readable copy of the
2338 corresponding source code, to be distributed under the terms of Sec‐
2339 tions 1 and 2 above on a medium customarily used for software inter‐
2340 change; or,
2341
2342 Accompany it with the information you received as to the offer to dis‐
2343 tribute corresponding source code. (This alternative is allowed only
2344 for noncommercial distribution and only if you received the program in
2345 object code or executable form with such an offer, in accord with Sub‐
2346 section b above.)
2347
2348 The source code for a work means the preferred form of the work for
2349 making modifications to it. For an executable work, complete source
2350 code means all the source code for all modules it contains, plus any
2351 associated interface definition files, plus the scripts used to control
2352 compilation and installation of the executable. However, as a special
2353 exception, the source code distributed need not include anything that
2354 is normally distributed (in either source or binary form) with the
2355 major components (compiler, kernel, and so on) of the operating system
2356 on which the executable runs, unless that component itself accompanies
2357 the executable.
2358
2359 If distribution of executable or object code is made by offering access
2360 to copy from a designated place, then offering equivalent access to
2361 copy the source code from the same place counts as distribution of the
2362 source code, even though third parties are not compelled to copy the
2363 source along with the object code.
2364
2365 You may not copy, modify, sublicense, or distribute the Program except
2366 as expressly provided under this License. Any attempt otherwise to
2367 copy, modify, sublicense or distribute the Program is void, and will
2368 automatically terminate your rights under this License. However, par‐
2369 ties who have received copies, or rights, from you under this License
2370 will not have their licenses terminated so long as such parties remain
2371 in full compliance.
2372
2373 You are not required to accept this License, since you have not signed
2374 it. However, nothing else grants you permission to modify or distrib‐
2375 ute the Program or its derivative works. These actions are prohibited
2376 by law if you do not accept this License. Therefore, by modifying or
2377 distributing the Program (or any work based on the Program), you indi‐
2378 cate your acceptance of this License to do so, and all its terms and
2379 conditions for copying, distributing or modifying the Program or works
2380 based on it.
2381
2382 Each time you redistribute the Program (or any work based on the Pro‐
2383 gram), the recipient automatically receives a license from the original
2384 licensor to copy, distribute or modify the Program subject to these
2385 terms and conditions. You may not impose any further restrictions on
2386 the recipients' exercise of the rights granted herein. You are not
2387 responsible for enforcing compliance by third parties to this License.
2388
2389 If, as a consequence of a court judgment or allegation of patent
2390 infringement or for any other reason (not limited to patent issues),
2391 conditions are imposed on you (whether by court order, agreement or
2392 otherwise) that contradict the conditions of this License, they do not
2393 excuse you from the conditions of this License. If you cannot distrib‐
2394 ute so as to satisfy simultaneously your obligations under this License
2395 and any other pertinent obligations, then as a consequence you may not
2396 distribute the Program at all. For example, if a patent license would
2397 not permit royalty-free redistribution of the Program by all those who
2398 receive copies directly or indirectly through you, then the only way
2399 you could satisfy both it and this License would be to refrain entirely
2400 from distribution of the Program.
2401
2402 If any portion of this section is held invalid or unenforceable under
2403 any particular circumstance, the balance of the section is intended to
2404 apply and the section as a whole is intended to apply in other circum‐
2405 stances.
2406
2407 It is not the purpose of this section to induce you to infringe any
2408 patents or other property right claims or to contest validity of any
2409 such claims; this section has the sole purpose of protecting the
2410 integrity of the free software distribution system, which is imple‐
2411 mented by public license practices. Many people have made generous
2412 contributions to the wide range of software distributed through that
2413 system in reliance on consistent application of that system; it is up
2414 to the author/donor to decide if he or she is willing to distribute
2415 software through any other system and a licensee cannot impose that
2416 choice.
2417
2418 This section is intended to make thoroughly clear what is believed to
2419 be a consequence of the rest of this License.
2420
2421 If the distribution and/or use of the Program is restricted in certain
2422 countries either by patents or by copyrighted interfaces, the original
2423 copyright holder who places the Program under this License may add an
2424 explicit geographical distribution limitation excluding those coun‐
2425 tries, so that distribution is permitted only in or among countries not
2426 thus excluded. In such case, this License incorporates the limitation
2427 as if written in the body of this License.
2428
2429 The Free Software Foundation may publish revised and/or new versions of
2430 the General Public License from time to time. Such new versions will
2431 be similar in spirit to the present version, but may differ in detail
2432 to address new problems or concerns.
2433
2434 Each version is given a distinguishing version number. If the Program
2435 specifies a version number of this License which applies to it and
2436 ``any later version'', you have the option of following the terms and
2437 conditions either of that version or of any later version published by
2438 the Free Software Foundation. If the Program does not specify a ver‐
2439 sion number of this License, you may choose any version ever published
2440 by the Free Software Foundation.
2441
2442 If you wish to incorporate parts of the Program into other free pro‐
2443 grams whose distribution conditions are different, write to the author
2444 to ask for permission. For software which is copyrighted by the Free
2445 Software Foundation, write to the Free Software Foundation; we some‐
2446 times make exceptions for this. Our decision will be guided by the two
2447 goals of preserving the free status of all derivatives of our free
2448 software and of promoting the sharing and reuse of software generally.
2449
2450 BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
2451 FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT
2452 WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER
2453 PARTIES PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND,
2454 EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
2455 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
2456 THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS
2457 WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
2458 ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
2459
2460 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
2461 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
2462 REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAM‐
2463 AGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAM‐
2464 AGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING
2465 BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR
2466 LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO
2467 OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY
2468 HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
2469
2470 If you develop a new program, and you want it to be of the greatest
2471 possible use to the public, the best way to achieve this is to make it
2472 free software which everyone can redistribute and change under these
2473 terms.
2474
2475 To do so, attach the following notices to the program. It is safest
2476 to attach them to the start of each source file to most effectively
2477 convey the exclusion of warranty; and each file should have at least
2478 the ``copyright'' line and a pointer to where the full notice is found.
2479
2480 ONE LINE TO GIVE THE PROGRAM'S NAME AND AN IDEA OF WHAT IT DOES.
2481 Copyright (C) 19YY NAME OF AUTHOR
2482
2483 This program is free software; you can redistribute it and/or
2484 modify it under the terms of the GNU General Public License
2485 as published by the Free Software Foundation; either version 2
2486 of the License, or (at your option) any later version.
2487
2488 This program is distributed in the hope that it will be useful,
2489 but WITHOUT ANY WARRANTY; without even the implied warranty of
2490 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2491 GNU General Public License for more details.
2492
2493 You should have received a copy of the GNU General Public License
2494 along with this program; if not, write to the Free Software
2495 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
2496
2497 Also add information on how to contact you by electronic and paper
2498 mail.
2499
2500 If the program is interactive, make it output a short notice like this
2501 when it starts in an interactive mode:
2502
2503 Gnomovision version 69, Copyright (C) 19YY NAME OF AUTHOR
2504 Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
2505 type `show w'. This is free software, and you are welcome
2506 to redistribute it under certain conditions; type `show c'
2507 for details.
2508
2509 The hypothetical commands `show w' and `show c' should show the appro‐
2510 priate parts of the General Public License. Of course, the commands
2511 you use may be called something other than `show w' and `show c'; they
2512 could even be mouse-clicks or menu items -- whatever suits your pro‐
2513 gram.
2514
2515 You should also get your employer (if you work as a programmer) or your
2516 school, if any, to sign a ``copyright disclaimer'' for the program, if
2517 necessary. Here is a sample; alter the names:
2518
2519 Yoyodyne, Inc., hereby disclaims all copyright
2520 interest in the program `Gnomovision'
2521 (which makes passes at compilers) written
2522 by James Hacker.
2523
2524 SIGNATURE OF TY COON, 1 April 1989
2525 Ty Coon, President of Vice
2526
2527 This General Public License does not permit incorporating your program
2528 into proprietary programs. If your program is a subroutine library,
2529 you may consider it more useful to permit linking proprietary applica‐
2530 tions with the library. If this is what you want to do, use the GNU
2531 Library General Public License instead of this License.
2532
2533
2534
2535
2536GNU $Date: xboard(6)