aboutsummaryrefslogtreecommitdiff
path: root/gnu/games/chess/DOCUMENTATION
diff options
context:
space:
mode:
authorsvn2git <svn2git@FreeBSD.org>1994-05-01 08:00:00 +0000
committersvn2git <svn2git@FreeBSD.org>1994-05-01 08:00:00 +0000
commita16f65c7d117419bd266c28a1901ef129a337569 (patch)
tree2626602f66dc3551e7a7c7bc9ad763c3bc7ab40a /gnu/games/chess/DOCUMENTATION
parent8503f4f13f77abf7adc8f7e329c6f9c1d52b6a20 (diff)
This commit was manufactured to restore the state of the 1.1-RELEASE image. Releases prior to 5.3-RELEASE are omitting the secure/ and crypto/ subdirs.
Diffstat (limited to 'gnu/games/chess/DOCUMENTATION')
-rw-r--r--gnu/games/chess/DOCUMENTATION/ARTICLE66
-rw-r--r--gnu/games/chess/DOCUMENTATION/ARTICLE.2123
-rw-r--r--gnu/games/chess/DOCUMENTATION/CHANGES362
-rw-r--r--gnu/games/chess/DOCUMENTATION/COPYING123
-rw-r--r--gnu/games/chess/DOCUMENTATION/GENERAL34
-rw-r--r--gnu/games/chess/DOCUMENTATION/HEURISTICS122
-rw-r--r--gnu/games/chess/DOCUMENTATION/MAN-PAGE161
7 files changed, 991 insertions, 0 deletions
diff --git a/gnu/games/chess/DOCUMENTATION/ARTICLE b/gnu/games/chess/DOCUMENTATION/ARTICLE
new file mode 100644
index 000000000000..b2ab331d21d5
--- /dev/null
+++ b/gnu/games/chess/DOCUMENTATION/ARTICLE
@@ -0,0 +1,66 @@
+[This article was reproduced from a GNU Bulletin.]
+
+ GNU Chess
+ by Stuart Cracraft
+ copyright 1987 Stuart Cracraft
+
+
+ GNU Chess is a communal chess program. Contributors donate their
+time and effort in order to make it a stronger, better, sleeker program.
+Contributions take many forms: interfaces to high-resolution displays,
+opening book treatises, speedups of the underlying algorithms, additions
+of extra heuristics. These contributions are then distributed to the
+large user-base so that all may enjoy the fruits of our labor. The
+original and continuing purpose of this project is to permanently end
+the rampant hoarding of computer chess software that has been the
+case for the past 20 years.
+
+ Many people have contributed to GNU Chess. Their contributions have
+improved the program from being a patzer (weak program) to being a
+grandpatzer (decently strong program). In its growth since initial
+release, GNU Chess has gone from approximately class D to expert
+strength. It beats the Fidelity Excel commercial unit rather handily.
+
+ GNU Chess's structure is a hybrid of the Shannon Type-A and
+Type-B methods. It conducts a full-width search to a fixed-depth
+and then continues with a quiescence search for many more ply.
+This quiescence search helps the program find positions which
+can be safely evaluated and which are not too turbulent. If
+a terminal position is too turbulent, the evaluation will be
+highly inaccurate. Additional searching by investigating series
+of captures, checks, and other potentially imbalance-producing
+moves is quite helpful.
+
+ GNU Chess will sacrifice pieces in order to reach known winning
+endings. Also, it uses a trade-down bonus to encourage the stronger
+side to trade off certain types of pieces thus reaching a more
+simplified and therefore ostensibly "clearer" position.
+
+ GNU Chess has certain types of knowledge regarding easier endgames.
+This allows it to play these endings somewhat better than might be
+expected.
+
+ GNU Chess has time heuristics that it uses to improve its handling
+of time-controls and hasten its making of "obvious" moves.
+
+ GNU Chess is interfaced to the SUN Windows and X Windows
+display protocols and can display its pieces in elaborate format,
+similar to chess diagrams.
+
+ GNU Chess has an opening book which consists of many variations
+from MCO (Modern Chess Openings).
+
+ For comparison purposes, GNU Chess running on a VAX 8650 is
+stronger than the famous Chess 4.5 running on a CDC 6400.
+
+ We wish to acknowledge the contributions of the following
+individuals: (in alphabetical order) Jim Aspnes, Wayne Christopher,
+Steve Dougherty, David Goldberg, Richard Greenblatt, David Kittinger,
+Richard Stallman, John Stanback, and Ken Thompson.
+
+ Contact information: The author may be reached by a variety of
+methods. Via U.S. mail: Stuart Cracraft, 5 Via Amistosa, Suite G,
+Rancho Santa Margarita, Ca. 92688 USA.
+ By Internet: 'cracraft at wheaties.ai.mit.edu'
+The author may also be contacted via the Free Software Foundation, Inc.
+675 Massachusetts Ave.,Cambridge MA 02139.
diff --git a/gnu/games/chess/DOCUMENTATION/ARTICLE.2 b/gnu/games/chess/DOCUMENTATION/ARTICLE.2
new file mode 100644
index 000000000000..031ae18f9e4b
--- /dev/null
+++ b/gnu/games/chess/DOCUMENTATION/ARTICLE.2
@@ -0,0 +1,123 @@
+
+
+ GNU Chess: Experiences Learned
+ with Communal Sharing
+ by Stuart Cracraft
+ (and contributors to the GNU Project)
+
+
+Limited sharing has characterized the computer chess community
+for the past two decades. Occasional research articles give hints
+and suggestions for useful features, but rarely reveal the real
+details of the critically important advances. We will here
+describe an effort underway (titled "GNU Chess") to create a more
+open and friendly environment of sharing.
+
+GNU Chess is part of Project GNU, a large-scale effort in which
+the philosophical goals are far-reaching. We will not go into any
+great depth about these goals as they relate to the larger pro-
+ject, because these are described elsewhere [1]. However, we will
+mention the basic issues and the changes we hope to encourage.
+
+The start of the GNU Chess project was a natural result of the
+experiences gleaned in writing a chess program. While the author
+was at a progressive academic location [2], he was able to con-
+ceive the idea of a communal chess program only after much heart-
+ache. During the period of writing the initial version (which
+has since undergone many improvements and whole revisions), it
+became clear that the best features and most useful hints, the
+very best of the heuristics, were hidden and difficult to find in
+the literature.
+
+Sprinkled across many books, research papers, magazine articles,
+accumulated in the community, during the past 25 years, there was
+literally a void of true, empirical programs. Locating usable
+programs was difficult. Many programs were the result of academic
+work in "ivory towers", and hence were inaccessible to the common
+man. Other programs were sequestered in research think-tanks. Na-
+turally, developers of commercial programs carefully guarded
+their source in order to protect their investment. On the other
+hand, a few chess program source listings had actually been pub-
+lished, but these were not really very strong, often written in a
+non-general language, and frequently more pedantic than practi-
+cal.
+
+The idea of a reasonably strong communal program solidified.
+When we refer to a communal program, we do not regard this as
+public-domain software. Rather, we refer to a program which is
+under the shared authority of a number of individuals, the prin-
+cipal contributors. These individuals have experienced and real-
+ized the positive results of a sharing community and the rapid
+improvements that come through contributing in such a community.
+Further, these individuals devote time and energy to coordinating
+the contributions of other individuals. While they exercise a
+certain editorial right, this is usually not exercised arbitrari-
+ly; instead, a discussion is often undertaken.
+
+Eventually, a working C program that played chess was available.
+The coordinating institution for Project GNU [3], accepted our
+suggestion of inclusion of a chess program in the GNU distribu-
+tion. Initial distribution of GNU Chess commenced in October of
+1986. Interest in the project increased rapidly.
+
+Contributions came in from many places and people. Interfaces to
+X-windows and SUN-windows were donated, thus allowing very fancy
+chess fonts on bit-mapped screens. Also, contributions involving
+large portions of opening books such as MCO and collections of
+master games were added to the distribution. Additionally,
+tree-search modifications and heuristics were provided, and occa-
+sionally even entire rewrites.
+
+The program advanced in strength by several USCF class intervals
+during a period of less than one year. During this time, many
+unusual features and enhancements were added to the program, usu-
+ally under the coordination of two or more people, with one work-
+ing in a distant-advisory capacity to the other. Frequently, gra-
+duate students would give up significant time from their thesis
+work to devote energy to contributing. Their corporate counter-
+parts would often give up project time to make their donation.
+
+Contributors would often enter the project in a very forceful way
+and then having made their contribution, learn the viability of
+communal sharing once others had stepped in and contributed to
+them, thus providing considerable reinforcement. Frequently, con-
+tributors would then go into "hibernation" for a long period of
+time, but most of them remained open to contributing and were
+helpful when asked to reprogram their particular contribution in
+a more recent version.
+
+GNU Chess has made great strides in relatively little time. It
+has run on many different hardware architectures and has been
+compiled by a number of C compilers [4]. A sampling of the com-
+puters on which the program has run is: National 32032, Vax
+11/750, 8550, 8600, 8650, Motorola 68020, CCI 5/32, CCI 6/32
+(tahoe), Cray XMP.
+
+It is our belief that GNU Chess will stimulate graduate research
+in computer chess theory and practice. When students are able to
+easily obtain a state-of-the-art program in order to test out
+their ideas, they will no longer need to reinvent the wheel. The
+students will be able to investigate their research areas much
+more thoroughly, because they will spend more time on the specif-
+ic research areas they are concerned about. Basically, GNU Chess
+"frees up" time in order to get on to more fundamental issues.
+
+We also feel that as other researchers gain trust in the GNU
+Chess project, they will be more likely to release their results
+directly and rapidly, through journal articles, or directly to
+the GNU project, and in fact become contributors and join the
+present list [5]. At the very least, a communal, ever-growing
+program will encourage the few "closeted" researchers to be some-
+what more open in their approach to disseminating advances.
+
+In whatever form it takes, the progress toward elaboration of
+machine chess is ongoing, and we hope that GNU chess will be
+helpful to the community. Copies of GNU Chess source and "book",
+as well as additional experimental code are available from the
+Free Software Foundation [3] or the author [6].
+
+
+[1] The GNU Manifesto, Richard Stallman, Free Software Foundation, Inc.
+
+[2] University of Southern California, Information Sciences Institute.
+
diff --git a/gnu/games/chess/DOCUMENTATION/CHANGES b/gnu/games/chess/DOCUMENTATION/CHANGES
new file mode 100644
index 000000000000..9866075ab8a8
--- /dev/null
+++ b/gnu/games/chess/DOCUMENTATION/CHANGES
@@ -0,0 +1,362 @@
+ GNU CHESS HISTORY
+ (#include "../version.h")
+
+August 1, 1989 -- Jay Scott
+He proofread the opening book and made
+corrections.
+
+June 21, 1989 -- Hes @log-se.sv
+He contributed new move generation routines (move.c move.h) to speedup
+move generation and the overall program, by about 15-30%
+
+June 9, 1989 -- Tim Radzy (unet!nplab4!radz@ames.arc.nasa.gov)
+He fixed a bug in xchess/board.c. In a post-game new-game situation,
+castling wouldn't be permitted under circumstances. Tim made
+it possible to castle again.
+
+May 12, 1989 -- Joe Garbarini (garbarini%kegger@circus.llnl.gov)
+Recommended changes to documentation vis a vis chesstool usage.
+
+May 5, 1989 -- Jouko Holopainen (jhol@tolsun.oulu.fi)
+Wrote code to support underpromotion.
+Changed interface to accept ECO/Informator style moves.
+
+April 30, 1989 -- Various GNU contributors
+setlinebuf() modification for xchess/chesstool.
+check for zero division in time printout.
+
+January 17, 1989 -- Anders Thulin
+Provided extensive addition to the opening book for his
+favorite opening the Vienna Game. This was drawn from ECO.
+
+November 23, 1988 -- Stuart Cracraft
+Installed new version of Xchess that is better debugged, works on
+the next version of X. Thanks to Wayne Christopher and Arturo Perez.
+
+August 28, 1988 -- Stuart Cracraft
+Removed a sacrifice line from the Giuoco Piano entry in the opening
+book; the program didn't seem to like the positions it got from this line.
+
+December 30, 1987 -- John Stanback
+Wrote a short blurb on the heuristics contained in GNU Chess. It resides
+in the subdirectory DOCUMENTATION as the file HEURISTICS.
+
+December 17, 1987 -- John Stanback
+Modified criteria for positional evaluation in quiescence search
+to include positions in which the estimated score lies within
+the alpha-beta window; fixed a bug in the king proximity to pawns heuristic;
+fixed a bug involving passed pawn heuristics;
+
+December 16, 1987 -- Stuart Cracraft
+Added automatic 'list' upon exit (both in display, non-display, and
+chesstool mode); command-line setting of tournament time controls
+bug fixed.
+
+December 14, 1987 -- John Stanback
+GNU defeated the commercial product 'Fidelity Excellence' 5.5-4.5 in
+a 10-game match. It was running at about 500 nodes per second (typical
+of its speed on a VAX 8650) and this would indicate its strength
+would be about USCF 1875-1900.
+
+December 4, 1987 -- John Stanback
+Man page added. Command line arguments now specify regular clock
+settings if so desired (useful for SUN players). Thinking
+on opponent's time is now disabled by default. Estimated
+rating is 1850 at 500 nodes per second.
+
+October 20, 1987 -- Stuart Cracraft
+Fixed GNU/SUN interaction. Chesstool and its features now
+seem to fully work.
+
+October 5, 1987 -- Ken Thompson
+GNU beat Belle (actually drew due to a bug, but
+Ken kept GNU playing through to the win) while
+running on a Cray XMP-48. In this 3-1 time handicap game
+Belle outsearched Cray GNU by 10-1 (even with the handicap).
+
+September 26, 1987 -- John Stanback at HP
+Hash table functioning. Thinking on opponent's
+time functioning.
+
+August 20, 1987 -- Mike Meyer at Berkeley
+Mike ran GNU Chess on a Cray 1 supercomputer.
+The system was very heavily loaded, so the
+program was not as speedy as with the Cray below.
+
+August 16, 1987 -- David Goldberg at SUN
+He added "chesstool" support so that this
+version of GNU Chess can run under the
+display manager "chesstool".
+
+August 15, 1987 -- John Stanback at HP
+Hash tables, more heuristics, a modified
+search which is more efficient. He also
+discovered a bug in the piece-exchanger. This
+would cause the program to exchange pieces suboptimally.
+With this fix, the program should play much
+more strongly.
+
+August 13, 1987 -- Ken Thompson at Bell Labs
+Ken ran GNU Chess on a Cray XMP supercomputer
+ (among other processors). The program got
+ about 3000-4000 chess positions per second
+ which is comprable to today's fastest bit-slice
+ commercial machines. Also, he had GNU Chess
+ play two games against Belle.
+
+July 19, 1987 -- Jay Scott & John Stanback
+ Many positional heuristics have been added.
+
+July 18, 1987 -- Stuart Cracraft
+ Improvements have been made to the opening
+ book. It is mostly an MCO book, containing
+ major variations from many of the major openings
+ and particularly in-depth on Sicilian.
+
+May 11, 1987 -- John Stanback at HP
+ He donated his chess program, a fairly mature
+ and strong program.
+
+May 1, 1987 -- Stuart Cracraft
+ He added several bug fixes various people
+ had reported. He also changed makemove() so that
+ the calling syntax is makemove(movelist,index,board)
+ rather than makemove(move,board). Having the latter
+ tickled a bug in at least one manufacturer's C-compiler,
+ so rather than write fancy code, we simplified it.
+
+April 25, 1987-- Jim Aspnes at MIT
+He added all sorts of useful capabilities,
+including positional evaluation in the tree
+search using a table-driven algorithm,
+modifying transposition table code in order
+to work properly, though it doesn't improve
+speed too much, checkmates/stalemates detected
+in the search, en passant captures allowed,
+detect repeated positions, iterative deepening,
+quicker quiescence search, tournament time controls,
+sqattacked sped up by a factor of 4, compile-time
+debugging options.
+
+January 2, 1987 -- Stuart Cracraft
+ He added a few more Tal games to the collection.
+
+January 2, 1987 -- Jim Aspnes at MIT
+ He contributed MCO variations for the Catalan,
+ Queen's Indian, and Reti openings.
+
+December 29, 1986 -- Jim Aspnes at MIT
+ He contributed all MCO variations of the Najdorf
+ to the opening book. He also contributed a LISP
+ macro (written in GNU Emacs Lisp) to convert
+ xchess game formats to GNU Chess opening book
+ format.
+
+December 14, 1986 -- Ken Thompson at Bell Labs
+ He contributed almost 200 games by Tal to
+ our collection of Tal-games, bringing the
+ total number of Tal positions in the book
+ to 10,692. Total book positions now 13,207.
+ These reside in bookin, bookin.bdg, bookin.tal.
+ Note that presently, only bookin and bookin.tal
+ can be used. The new Tal positions came in a
+ slightly different format, which we have chosen
+ to adopt as our standard format. All book
+ games in bookin and bookin.bdg will gradually
+ change into the new standard format.
+
+December 11, 1986 -- Stuart Cracraft
+ Added "averages" for node-count per move,
+ cpu per move, rate per move to list_history
+ and write_history.
+ New version of Xchess installed.
+ Started typing in Tal games into "bookin.tal".
+ Added "total book positions" printout to "book"
+ and "enter" statistics printout.
+
+December 10, 1986 -- Stuart Cracraft
+ Implemented aspiration search in normal
+ alpha-beta search. Speedups of 3% to 40%
+ have been noticed in most positions.
+ Occasionally a slower search will result,
+ but it is thought these are worth the
+ usual speedups.
+
+December 9, 1986 -- Stuart Cracraft
+ Fixed minor bug in write_history()
+ Added another Tal game, 2nd game of 1st world
+ championship match with Botvinnik, a Benoni.
+
+December 9, 1986 -- Stuart Cracraft
+ Enhanced parallelism. All parallel processors
+ now communicate via a shared data file and
+ are kept running (in idle loops watching the
+ shared data file). This saves us a few seconds
+ on each move since the 'rsh' need not be invoked
+ more than once (at the beginning). Since the
+ shared data file is now implemented, we will
+ next work towards a "parallel anarchy" in which
+ any processor can use any other processor in
+ order to reduce its search. The current scheme
+ with the program being only as fast as its slowest
+ processor, is quite inefficient.
+
+December 1, 1986 -- Jim Aspnes at MIT
+ Added a couple of Master games from
+ Modern Chess Openings 12 (a Fischer game,
+ and a Matanovic game).
+
+November 30, 1986 -- Stuart Cracraft
+ Added parallelism. Can now handle multiple
+ processors (sharing same disk). Later we will
+ add the capability to use processors not sharing
+ the same disk. Modified README and MAN-PAGE.
+
+November 26, 1986 -- Stuart Cracraft
+ Fixed a few bugs in book-mailing mechanism.
+ Fixed a bug regarding situations where only
+ one move is available.
+ Fixed a bug in read_history() that caused
+ Black queenside castles to be mishandled.
+
+November 25, 1986 -- Stuart Cracraft
+ Added two pawn heuristics. Reward pawns moving into
+ a phalanx of pawns. A phalanx is two or more
+ horizontally-connected pawns. Likewise, penalize
+ pawns leaving a phalanx of pawns. The penalty for
+ leaving is a little more than the reward for
+ entering.
+
+November 24, 1986 -- Stuart Cracraft
+ A user reported an unbelievable bug. Investigation
+ of this bug led to the discovery that GNU Chess was
+ not picking the move judged best by the tree search
+ in all cases. This resulted in the bug showing
+ itself which further showed that the program was
+ selecting an inferior move. This may result in an
+ improvement to the program's play.
+
+November 24, 1986 -- Stuart Cracraft
+ Added two heuristics. Penalize king moves if
+ the king hasn't castled yet. Also, penalize pawn
+ moves which produce doubled pawns. Should
+ probably have something for isolated pawns
+ too.
+
+November 23, 1986 -- Wayne Christopher at Berkeley
+ New version of X chess display front-end.
+ Fixed bugs include multiple pieces, runs
+ on SUNS & Bobcats, loads saved games.
+
+November 23, 1986 -- Stuart Cracraft
+ Cleaned up some minor bugs regarding history.
+ Added "Illegal command" error message at Wayne's
+ request.
+
+November 22, 1986 -- David Goldberg at SUN Microsystems
+ He complained that GNU Chess was memory-hungry.
+ A few minor modifications to hash.c reduced
+ uninitialized data space 87% and text space
+ 12%. This should make it easier for GNU Chess
+ to run on small computers.
+
+November 22, 1986 -- Stuart Cracraft
+ "read" command was working, but needed
+ additional tweaking so that history
+ array would be printed by list_history().
+
+November 19, 1986 -- Stuart Cracraft
+ Added "read" command which reads a history
+ file (game listing) and restores the board
+ to as if the person was still playing that.
+ particular game. Generally cleaned up
+ history mechanism, made it more orthogonal.
+ Revised README. Added doc to MAN-PAGE.
+
+November 16, 1986 -- Stuart Cracraft
+ More opening book bugs found and fixed.
+ Added capability to accept abbreviated-algebraic notation
+ for entering "book" games from files.
+ Added approximately 2500 new positions to
+ opening book from games involving the
+ opening called Blackmar-Diemer Gambit,
+ a hoary line developed by Diemer in
+ Germany years ago.
+
+November 15, 1986 -- Wayne Christopher at Berkeley
+ He modified the move generator, resulting in
+ a 28% speedup.
+
+November 14, 1986 -- Stuart Cracraft
+ He documented a lot of the GNU Chess modules
+ with brief comments for each function. More
+ extensive internal documentation may go in
+ later.
+
+November 14, 1986 -- Wayne Christopher at Berkeley
+ He created the Xchess interface for
+ GNU Chess to have windowing with X windows.
+
+November 14, 1986 -- Stuart Cracraft
+ He added a "randomization" feature to
+ the opening book. This will cause the
+ program to select randomly from alternate
+ variations whenever -DBEST is removed
+ from Makefile's CFLAGS. If this is not
+ removed, the opening play selects the
+ first move found in the book as it appears
+ "in order" in the human-readable book.
+
+November 14, 1986 -- David Goldberg at SUN Microsystems
+ He responded to a query about dbm(3) which
+ eventually resulted in the fixing of a subtle
+ bug in the book code which was causing the
+ program to sometimes hash to the incorrect
+ address and thereby produce a book move which
+ didn't even exist in the book. Thanks David!
+
+November 14, 1986 -- Stuart Cracraft
+ He added the "oboard" routine in util.c. This
+ is the reverse of the already extant "iboard"
+ (same module). These two routines translate
+ between GNU Chess internal format and
+ Forsythe notation.
+
+November 10, 1986 -- Stuart Cracraft
+ He added the "enter" command. This causes
+ the current game to be entered in the book.
+ Then, GNU Chess tries to mail this new entry
+ to the book maintainers (for inclusion in
+ the master copy of the book).
+
+November 9, 1986 -- Stuart Cracraft
+He added code for an opening book. MAN-PAGE
+and README were modified accordingly.
+
+November 8, 1986 -- Stuart Cracraft
+Checks and mates are now noticed at ply-1.
+This is a more complete fix to the Oct 31 fix.
+
+October 31, 1986 -- Stuart Cracraft
+First attempt at fix to bug which causes
+program to check human's king when program
+itself is in check.
+
+October 31, 1986 -- Mly at MIT
+Reported a bug which caused program to crash
+when an illegal human move was played. Fixed.
+Also, program was unable to play as White. Fixed.
+
+October 22, 1986 -- Stuart Cracraft
+Pps now rewards moves which liberate bishops.
+
+October 19, 1986 -- Stuart Cracraft
+Added bitmapper routines to distribution.
+Added version notice.
+
+October 19, 1986 -- David Goldberg at SUN Microsystems
+Interfaced GNU Chess with SUN's chesstool.
+
+October 18, 1986 -- Initial release date.
+
+
diff --git a/gnu/games/chess/DOCUMENTATION/COPYING b/gnu/games/chess/DOCUMENTATION/COPYING
new file mode 100644
index 000000000000..17847b71307f
--- /dev/null
+++ b/gnu/games/chess/DOCUMENTATION/COPYING
@@ -0,0 +1,123 @@
+ GNU CHESS GENERAL PUBLIC LICENSE
+
+ Copyright (C) 1986,1987 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license, but changing it is not allowed.
+
+ The license agreements of most software companies keep you at the
+mercy of those companies. By contrast, our general public license is
+intended to give everyone the right to share GNU Chess. To make
+sure that you get the rights we want you to have, we need to make
+restrictions that forbid anyone to deny you these rights or to ask you
+to surrender the rights. Hence this license agreement.
+
+ Specifically, we want to make sure that you have the right to give
+away copies of GNU Chess, that you receive source code or else can get it
+if you want it, that you can change GNU Chess or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To make sure that everyone has such rights, we have to forbid you to
+deprive anyone else of these rights. For example, if you distribute
+copies of GNU Chess, you must give the recipients all the rights that you
+have. You must make sure that they, too, receive or can get the
+source code. And you must tell them their rights.
+
+ Also, for our own protection, we must make certain that everyone
+finds out that there is no warranty for GNU Chess. If GNU Chess is
+modified by someone else and passed on, we want its recipients to know
+that what they have is not what we distributed, so that any problems
+introduced by others will not reflect on our reputation.
+
+ Therefore the Free Software Foundation, Inc. makes the following
+terms which say what you must do to be allowed to distribute or change
+GNU Chess.
+
+ COPYING POLICIES
+
+ 1. You may copy and distribute verbatim copies of GNU Chess source
+code as you receive it, in any medium, provided that you conspicuously
+and appropriately publish on each file a valid copyright notice
+"Copyright (C) 1986,1987 Free Software Foundation, Inc.", containing the
+year of last change for the file in question; keep intact the notices
+on all files that refer to this License Agreement and to the absence
+of any warranty; and give any other recipients of the GNU Chess
+program a copy of this License Agreement along with the program.
+
+ 2. You may modify your copy or copies of GNU Chess source code or
+any portion of it, and copy and distribute such modifications under
+the terms of Paragraph 1 above, provided that you also do the following:
+
+ a) cause the modified files to carry prominent notices stating
+ who last changed such files and the date of any change; and
+
+ b) cause the whole of any work that you distribute or publish,
+ that in whole or in part contains or is a derivative of GNU Chess
+ or any part thereof, to be freely distributed
+ and licensed to all third parties on terms identical to those
+ contained in this License Agreement (except that you may choose
+ to grant more extensive warranty protection to third parties,
+ at your option).
+
+ c) if the modified program serves as a text editor, cause it
+ when started running in the simplest and usual way, to print
+ an announcement including a valid copyright notice ("Copyright
+ (C)", the year of authorship, and all copyright owners' names),
+ saying that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of
+ this License Agreement.
+
+ 3. You may copy and distribute GNU Chess or any portion of it in
+compiled, executable or object code form under the terms of Paragraphs
+1 and 2 above provided that you do the following:
+
+ a) cause each such copy of GNU Chess to be accompanied by the
+ corresponding machine-readable source code; or
+
+ b) cause each such copy of GNU Chess to be accompanied by a
+ written offer, with no time limit, to give any third party
+ free (except for a nominal shipping charge) machine readable
+ copy of the corresponding source code; or
+
+ c) in the case of a recipient of GNU Chess in compiled, executable
+ or object code form (without the corresponding source code) you
+ shall cause copies you distribute to be accompanied by a copy
+ of the written offer of source code which you received along
+ with the copy of GNU Chess.
+
+ 4. You may not copy, sublicense, distribute or transfer GNU Chess
+except as expressly provided under this License Agreement. Any attempt
+otherwise to copy, sublicense, distribute or transfer GNU Chess is void and
+your rights to use GNU Chess under this License agreement shall be
+automatically terminated. However, parties who have received computer
+software programs from you with this License Agreement will not have
+their licenses terminated so long as such parties remain in full compliance.
+
+Your comments and suggestions about our licensing policies and our
+software are welcome! Please contact the Free Software Foundation, Inc.,
+1000 Mass Ave, Cambridge, MA 02138, or call (617) 876-3296.
+
+ NO WARRANTY
+
+ BECAUSE GNU CHESS IS LICENSED FREE OF CHARGE, WE PROVIDE ABSOLUTELY
+NO WARRANTY, TO THE EXTENT PERMITTED BY APPLICABLE STATE LAW. EXCEPT
+WHEN OTHERWISE STATED IN WRITING, FREE SOFTWARE FOUNDATION, INC,
+AND/OR OTHER PARTIES PROVIDE GNU CHESS "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+PROGRAM IS WITH YOU. SHOULD THE GNU CHESS PROGRAM PROVE DEFECTIVE,
+YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL FREE SOFTWARE
+FOUNDATION, INC., AND/OR ANY OTHER PARTY WHO MAY MODIFY AND
+REDISTRIBUTE GNU CHESS AS PERMITTED ABOVE, BE LIABLE TO YOU FOR
+DAMAGES, INCLUDING ANY LOST PROFITS, LOST MONIES, OR OTHER SPECIAL,
+INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
+INABILITY TO USE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
+BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY THIRD PARTIES OR A
+FAILURE OF THE PROGRAM TO OPERATE WITH PROGRAMS NOT DISTRIBUTED BY
+FREE SOFTWARE FOUNDATION, INC.) THE PROGRAM, EVEN IF YOU HAVE BEEN
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY
+OTHER PARTY.
+======================================================================
diff --git a/gnu/games/chess/DOCUMENTATION/GENERAL b/gnu/games/chess/DOCUMENTATION/GENERAL
new file mode 100644
index 000000000000..aafb7ed335e3
--- /dev/null
+++ b/gnu/games/chess/DOCUMENTATION/GENERAL
@@ -0,0 +1,34 @@
+ GNU Chess
+
+Copyright (C) 1987 Stuart Cracraft
+ (Copying permission notice at the end.)
+
+GNU Chess is your program (as long as you follow the copyright and
+licensing rules listed in the file COPYING). Your contributioinspire current and future software
+developers.
+
+This document
+-------------
+This document is not meant to be a an introduction to computer chess.
+The following books are excellent introductions and treatises.
+They are listed in order of difficulty:
+
+ Computer Chess (2nd edition), by David Welsh and Boris Bazcynski
+ The Joy of Computer Chess, by David Levy
+ Chess Skill in Man and Machine (2nd edition), by Peter Frey
+
+
+Current Distribution
+--------------------
+The most recent distribution of GNU Chess contains the following
+main-level files and directories:
+
+ Filename Purpose
+ ------------------------------------------------------
+ README Pointer to main README below.
+ gnuchess.c Most recent version of GNU Chess
+ nondsp.c Non-display interface, and chesstool/xchess interface
+ uxdsp.c Unix (curses) display interface
+ ansidsp.c ANSI display interface
+ gnuchess.book Most recent version of opening book
+
diff --git a/gnu/games/chess/DOCUMENTATION/HEURISTICS b/gnu/games/chess/DOCUMENTATION/HEURISTICS
new file mode 100644
index 000000000000..254b34472abe
--- /dev/null
+++ b/gnu/games/chess/DOCUMENTATION/HEURISTICS
@@ -0,0 +1,122 @@
+This file contains a description of GNU's heuristics.
+ Copyright (C) 1986, 1987 Free Software Foundation, Inc.
+
+This file is part of CHESS.
+
+CHESS is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY. No author or distributor
+accepts responsibility to anyone for the consequences of using it
+or for whether it serves any particular purpose or works at all,
+unless he says so in writing. Refer to the CHESS General Public
+License for full details.
+
+Everyone is granted permission to copy, modify and redistribute
+CHESS, but only under the conditions described in the
+CHESS General Public License. A copy of this license is
+supposed to have been given to you along with CHESS so you
+can know your rights and responsibilities. It should be in a
+file named COPYING. Among other things, the copyright notice
+and this notice must be preserved on all copies. */
+
+ -- requested by main author
+Heuristic descriptions for CHESS.
+
+Revision: 12-16-87
+
+Copyright (c) 1987 by John Stanback
+
+ Here is a brief description of the heuristics used in the positional
+ evaluator of the GNU Chess program. Many heuristics are functions of the
+ stage of the game which is based on the total non-pawn material remaining
+ for both sides.
+
+
+PAWNS
+ The material value of a pawn is 100 points. Isolated pawns get a
+ penalty depending on which file they occupy:
+ (12,14,16,20,20,16,14,12) for files (a..h).
+ Doubled pawns (which are not also isolated) get a penalty of 12
+ points. Backward pawns (defined simply as not being defended by a
+ pawn with the square in front also not defended by a a pawn) are
+ penalized 6 points. A 4 point penalty is also invoked for each attack
+ by the opponent to a backward pawn and for a backward pawn on a
+ half-open file. Pawn Advancement in the centre is given a bonus of
+ about 4 points per rank in the opening increasing to about 8 points
+ per rank in the ending. Advancement on the edges is given a lower
+ bonus. Pawns on the e and d files and on the 2nd rank are given a 10
+ point penalty. An additional penalty of 15 points is invoked if these
+ pawns are also blocked. Pawns within 2 squares of the king are given
+ a 10 point bonus. Passed pawns are given a bonus for increasing rank
+ which is a function of stage of the game and of whether the opponent
+ blocks or attacks one or more squares in front of the pawn or if the
+ opponents king is in the square of the pawn. This bonus ranges from
+ about 15 points for a pawn on the second rank up to about 300 points
+ for a passed pawn on the 7th rank which can't be stopped from
+ queening.
+
+
+KNIGHTS
+ The material value of a knight is 330 points. The main heuristic for
+ knights is a bonus for proximity to the centre. This varies from 0
+ points in the corners to 30 points in the centre. Knights are also
+ given a bonus for being within 2 squares of each enemy piece. This
+ bonus is a function of the stage of the game, equalling 4 points in
+ the end game. A penalty of 1 point per square is given for distance
+ from either king. A bonus of up to 8 points (depends on stage) is
+ given for knights which can't be driven away by enemy pawns.
+
+
+BISHOPS
+ The material value of a bishop is 330 points. Bishops are given a
+ bonus as material falls off the board equalling 10 points in the end
+ game. Bishops get a bonus for mobility and Xray mobility thru pieces
+ but not pawns. This bonus ranges from -4 points for a totally blocked
+ bishop up to 18 points for a bishop attacking 12 or more squares.
+ Xray attacks on an enemy R,Q,K or any undefended piece are given an 8
+ point bonus. Bishops are given a bonus of 14 points if they lie on
+ the edge of the board up to 22 points if the lie in the centre. A
+ bishop is given a bonus of up to 5 points for each attack to a square
+ adjacent to the enemy king.
+
+
+ROOKS
+ The material value of a rook is 520 points. Rook mobility is handled
+ similiarly to bishops with a bonus of 0 points if blocked up to 20
+ points if attacking 12 squares or more. A bonus of 8 points for Xray
+ attacks is handled as it is for bishops. Rooks are given a bonus of
+ 10 points for occupying a file with no friendly pawns and a bonus of
+ 4 points if no enemy pawns lie on that file. After the opening Rooks
+ are penalized slightly depending on "taxicab" distance to the enemy
+ king.
+
+
+QUEENS
+ The material value of a queen is 980 points. The only heuristic for a
+ queen is that after the opening it is penalized slightly for
+ "taxicab" distance to the enemy king.
+
+
+KINGS
+ Kings are given a penalty for proximity to the centre in the opening
+ and a bonus for proximity to the centre in the endgame. The penalty
+ is about 24 points for being in the centre in the opening with a
+ bonus of about 36 points for being in the centre in the endgame.
+ Kings are penalized for lying on an open or half-open file or if the
+ adjacent file closest to the corner is open or half-open. This
+ penalty is up to 23 points in the opening and goes to zero in the end
+ game. The King is penalized up to 8 points if there are no pawns
+ immediately adjacent. A penalty is invoked depending on the number of
+ "safe" checks available by the opponent. This penalty ranges from 6
+ points for one such check to 50 points for 4 or more. Depending on
+ game stage, Kings are given up to 10 points for castling and a
+ penalty of up to 40 points for moving before castling.
+
+
+SPECIAL
+ If more than one piece is "hung" (attacked and not defended or
+ attacked by an enemy piece of lower value) an extra penalty of 10
+ points is invoked for that side and the search may be extended one
+ ply. Pinned or trapped pieces are treated similarly. A special mating
+ routine is used if one side has only a king and the other has mating
+ material.
+
diff --git a/gnu/games/chess/DOCUMENTATION/MAN-PAGE b/gnu/games/chess/DOCUMENTATION/MAN-PAGE
new file mode 100644
index 000000000000..bbf0aa4abf98
--- /dev/null
+++ b/gnu/games/chess/DOCUMENTATION/MAN-PAGE
@@ -0,0 +1,161 @@
+.TH Chess GNU
+.SH NAME
+Chess \- GNU Chess
+.SH SYNOPSIS
+.B Chess
+[
+.B arg1 arg2
+]
+.SH DESCRIPTION
+.I Chess
+plays a game of chess against the user or it plays against itself.
+.PP
+.I Chess
+has a simple alpha-numeric board display or it can be compiled for
+use with the CHESSTOOL program on a SUN workstation.
+The program gets its opening moves from the file gnuchess.book which
+should be located in the same directory as gnuchess.
+To invoke the prgram, type 'gnuchess' or type 'chesstool gnuchess'
+on a SUN workstation where 'CHESSTOOL' is installed.
+The 'gnuchess' command can be followed by up to 2 command line arguments.
+If one argument is given it determines the programs search time in
+seconds. If two arguments are given, they will be used to set tournament
+time controls with the first argument being the number of moves and the second
+being the total clock time in minutes. Thus, entering 'chess 60 5' will set
+the clocks for 5 minutes (300 seconds) for the first 60 moves.
+If no argument is given the program will prompt the user for level of
+play.
+For use with CHESSTOOL, see the documentation on that program.
+.PP
+Once
+.I Chess
+is invoked, the program will display the board and prompt the user
+for a move. To enter a move, use the notation 'e2e4' where the first
+letter-number pair indicates the origination square
+and the second letter-number pair indicates the destination square.
+An alternative is to use the notation 'nf3' where
+the first letter indicates the piece type (p,n,b,r,q,k).
+To castle, type the origin and destination squares
+of the king just as you would do for a regular move, or type
+"o-o" for kingside castling and "o-o-o" for queenside.
+.SH COMMANDS
+.PP
+In addition to legal moves, the following commands are available as responses.
+.PP
+.I beep
+-- causes the program to beep after each move.
+.PP
+.I bd
+-- updates the current board position on the display.
+.PP
+.I book
+-- turns off use of the opening library.
+.PP
+.I both
+-- causes the computer to play both sides of a chess game.
+.PP
+.I black
+-- causes the computer to take the black pieces with the move
+and begin searching.
+.PP
+.I level
+-- allows the user to set time controls such as
+60 moves in 5 minutes etc. In tournament mode, the program will
+vary the time it takes for each
+move depending on the situation. If easy mode is disabled (using
+the 'easy' command), the program
+will often respond with its move immediately, saving time on
+its clock for use later on.
+.PP
+.I depth
+-- allows the user to change the
+search depth of the program. The maximum depth is 29 ply.
+Normally the depth is set to 29 and the computer terminates
+its search based on elapsed time rather than depth.
+Using the depth command allows setting depth to say
+4 ply and setting response time to a large number such as
+9999 seconds. The program will then search until all moves
+have been examined to a depth of 4 ply (with extensions up
+to 11 additional ply for sequences of checks and captures).
+.PP
+.I easy
+-- toggles easy mode (thinking on opponents time)
+on and off. The default is easy mode ON. If easy mode is disabled,
+the user must enter a 'break' or '^C' to get the programs
+attention before entering each move.
+.PP
+.I edit
+-- allows the user to set up a board position.
+In this mode, the '#' command will clear the board, the 'c'
+command will toggle piece color, and the '.' command will exit
+setup mode. Pieces are entered by typing a letter (p,n,b,r,q,k) for
+the piece followed by the coordinate. For example "pb3" would
+place a pawn on square b3.
+.PP
+.I force
+-- allows the user to enter moves for both
+sides. To get the program to play after a sequence of moves
+has been entered use the 'white' or 'black' commands.
+.PP
+.I get
+-- retrieves a game from disk. The program will
+prompt the user for a file name.
+.PP
+.I help
+-- displays a short description of the commands.
+.PP
+.I hint
+-- causes the program to supply the user with
+its predicted move.
+.PP
+.I list
+-- writes the game moves and some statistics
+on search depth, nodes, and time to the file 'chess.lst'.
+.PP
+.I new
+-- starts a new game.
+.PP
+.I post
+-- causes the program to display the principle
+variation and the score during the search. A score of
+100 is equivalent to a 1 pawn advantage for the computer.
+.PP
+.I random
+-- causes the program to randomize its move
+selection slightly.
+.PP
+.I reverse
+-- causes the board display to be reversed. That
+is, the white pieces will now appear at the top of the board.
+.PP
+.I quit
+-- exits the game.
+.PP
+.I save
+-- saves a game to disk. The program will prompt
+the user for a file name.
+.PP
+.I switch
+-- causes the program to switch places with
+the opponent and begin searching.
+.PP
+.I undo
+-- undoes the last move whether it was the computer's
+or the human's. You may also type "remove". This is equivalent
+to two "undo's" (e.g. retract one move for each side).
+.PP
+.I white
+-- causes the computer to take the white pieces
+with the move and begin searching.
+.SH BUGS
+.PP
+Pawn promotion to pieces other than a queen is not allowed.
+En-Passant does not work properly with CHESSTOOOL.
+The transposition table may not work properly in some
+positions so the default is to turn this off.
+.fi
+.SH SEE ALSO
+.nf
+chesstool(6)
+.fi
+