1xboard(6)                        Games Manual                        xboard(6)
2
3
4

NAME

6       xboard - X graphical user interface for chess
7

SYNOPSIS

9       xboard [options]
10       xboard -ics -icshost hostname [options]
11       xboard -ncp [options]
12       |pxboard
13       cmail [options]
14
15

DESCRIPTION

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

MAJOR MODES

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

OPTIONS

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

CHESS SERVERS

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

FIREWALLS

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

ENVIRONMENT VARIABLES

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

LIMITATIONS AND KNOWN BUGS

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

REPORTING PROBLEMS

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

AUTHORS AND CONTRIBUTORS

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

CMAIL

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

OTHER PROGRAMS YOU CAN USE WITH XBOARD

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

GNU GENERAL PUBLIC LICENSE

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)
Impressum