Sat Mar 19 Patchlevel 69 Mike McGann (mwm@ascom.ch) * New transition table code from Dan Oetting (oetting@gldfs.cr.usgs.gov) separating the tt code into a separate module * Fixes for the draw problems from Chua Kong Sian and Mike McGann * better use of the transition table + size reduction * lots of small bug fixes * post command split to post/unpost for easier use in scripts * fix for DEEPNULL bug from Chua Kong Sian (nsrccks@leonis.nus.sg) Sat Feb 12 Patchlevel 68 Stuart Cracraft (cracraft@rice-chex.ai.mit.edu) * Patches by Chua Kong Sian and Mike McGann. Fri Feb 4 Patchlevel 67 Stuart Cracraft (cracraft@rice-chex.ai.mit.edu) * New version by Mike McGann. Sun Jan 23 Patchlevel 66 Stuart Cracraft (cracraft@rice-chex.ai.mit.edu) * ensure computer thinking on opponent's time when easy mode * loading game not searching book bug fixed. * both by Chua Kong Sian (nsrccks@leonis.nus.sg) Wed Jan 19 Patchlevel 65 Stuart Cracraft (cracraft@rice-chex.ai.mit.edu) * chesstool compatibility (asun@mmvideo.mt.att.com) * speed/time bugfixes in search.c+eval.c (nsrccks@leonis.nus.sg) Mon Jan 10 Patchlevel 64 Stuart Cracraft (cracraft@rice-chex.ai.mit.edu) * makefile ("make realclean") * basic data type-checking updates in util.c/eval.c * announced patch in gnuchess.h Fri Jul 25 Patchlevel 63 Mike McGann (mwm@hssler.ascom.ch) * Change all char to signed char for SGI * Change trans logic to not store if quiescent search has been used * Update Book Fri Jun 25 Patchlevel 62 Mike McGann (mwm@hssler.ascom.ch) * German language support from Richard Mathar * better research logic from kongsian@nsrc.nus.sg (Kong Sian) * Redo NULLMOVE logic to eliminate hung pieces * Redo search/eval/hashtable logic for speed and to optimize gnutest results. * Redo and simplify book install stuff * Use more estimates down to leafs to speed up search. * fix illegal castle move bug and ^C breakout of search slowness Fri Jan 8 Patchlevel 61 Mike McGann (mwm@hasler.ascom.ch) * fix bug in en-passant restoring on unmake of move * fix to search timing function bug that caused it to increase time on takebacks or occasionally take a long time for a move * new next ply estimate function * allow increased time to complete a partial ply MAXTCCOUNTX * allow more time per move in necessary MAXTCCOUNT * gnuan now skips processing process book moves from Chua Kong Sian (ccecks@nuscc.nus.sg) * new KP1K endgame routine from R. Stephan (ralf@ark.abg.sub.org) * fix to ElapsedTime nchar declared wrong from T. Mann(mann@src.dec.com) * updates for Dec Alpha from T. Mann (mann@src.dec.com) Fri Oct 30 Patchlevel 60 Mike McGann (mwm@hasler.ascom.ch) * null move heuristic from Benno Tietz (tietz@eos.informatik.uni-bonn.de) intalled * fixes for ProbeTTTable from Benno Tietz * fixes for xget from Tim Mann(mann@src.dec.com) * change hash table collision avoidance algorithms * two new book formats GDBM (Gnu dbm based) and GDX (hash file based). * add MSDOS fixes from ccecks@nuscc.nus.sg (Chua Kong Sian (Mr)) and msdso makefile Tue Oct 20 Patchlevel 59 Mike McGann (mwm@hasler.ascom.ch) * binbookfile is now the main form of book. * add rudimentary fischer clock * add caching for static evaluations * add aging for in core transposition table * changes to history killer from tietz@eos.informatik.uni-bonn.de (Benno Tietz) * bugfix from ccecks@nuscc.nus.sg (Chua Kong Sian (Mr)) for history declaration error. * Allow full notation for book moves * prevent caching of partially evalusted positions. * add game time control * add capability to feed back the clock for ICS play * gnuan fix en-passant problem * gnuchess make book nameable in command line * change move output to generate o-o form of castling moves to satisfy ICS * Speedup evaluation functions * fixes to killt from tietz@eos.informatik.uni-bonn.de (Benno Tietz) * add moves generated to post output * fixes to genmoves from Dan Oetting * change over to gettimeofday for more accuracy * clean up search logic and time control * fix transposition search bug Mon Aug 24 Patchlevel 58 Mike McGann (mwm@hasler.ascom.ch) * add Mwpawn, Mbpawn, Mw..., Mb... , p and debug commands to gnuchessr. * Fix bug in evaluation logic for hung pieces. * Fix time control calculation to add time at time control Fri Aug 14 Patchlevel 57 Ben Hurwitz (bug fixes) Thierry Leconte (book) * Both/force interaction improved. * Bug fix to possibles declaration and OR of move with BADMOVE * Work better with GM John Nunn book (take care of order of lines, don't null the book for at least 3 moves after taken out of book, no random opening) * Removed exit of program when drawn game detected. * Fixed bug that caused program to make 1-move blunders. (transposition table caused return 0 when position seen before to detect draw which then gets a depth bonus since search is inexact so it ends up looking better to make a repetition than making a winning 1-mover!) Sun Jul 2 Patchlevel 56 Henrik Schmiediche * Fix test command (patch to dspcom.c). The results were off by a factor of 100. * Delete lint from Makefile. * Better CFLAGS for HP machine. Mon Jun 29 Patchlevel 55 Stuart Cracraft * Apply Mann's FIONREAD-clarification patches * Change BOOKFAIL in gnuchess.h so that the program always consults the opening book first. * Up BOOKBITS to 10 to account for larger book: "As currently set up with BOOKBITS equal 8 there is a table of 256 pointers into the BOOK hashtable. With 20,000 entries and 256 buckets it would do a linear search of approx 78 entries per lookup. Increasing BOOKBITS to 9 would mean a search of 34 entries etc. and would add 256 pointers to the data area. So we probably should make it 10 then." McGann Fri Jun 26 Patchlevel 54 Mike McGann * This version compiles into a version identical with 3.1+ (and so is much stronger than the previous 4.0). But, it has beaten 3.1+ in a short match. Also, it has bug fixes, timing control improvements and other fixes contained in this list. Tue Jun 23 Patchlevel 53 Stuart Cracraft / Tim Mann * Use a[u]+1 in ataks.c instead of ++a[u]. * Don't use space bonus tables. Tue Jun 23 Patchlevel 52 Tom Truscott * GNUchess will now compile on the IBM RS/6000 (AIX). * Makefile changes needed for older AIX compilers lacking support for "cc -c foo.c -o bar.o" (strange but true). * The other changes are to appease the picky type checking that is enabled by some of the compiler options. Sat Jun 21 Patchlevel 51 Tim Mann * Fixed problem with "help" command by removing "fflush(stdin)". * "Undo" command now does not add moves to a 1-move time control. * Added back feature from 3.1 that lets the user set a maximum search time per move instead of using time controls, and changed the command line syntax for this feature to be compatible with 3.1, removing the ability to set max search depth from the command line. * Fixed the "maximum minutes per move" feature in gnuan. * Updated and corrected the man page. Thu Jun 18 Patchlevel 50 Tim Mann * Special #ifdefs to not do post for xboard are unnecessary and were removed. Wed Jun 17 Patchlevel 49 Mike McGann, Urban Koisten * Fix book code to calloc (Urban) * Fixed other code (Mike) Sun Jun 7 Patchlevel 48 Stuart Cracraft (cracraft@rice-chex.ai.mit.edu) * Fix gnuan.c output to be more uniform. And tested that it works. Sat Jun 6 Patchlevel 47 Stuart Cracraft (cracraft@rice-chex.ai.mit.edu) * Fix Makefile to correctly define BINBOOK so that parsed opening book gets used (if available.) Sat Jun 6 Patchlevel 46 Stuart Cracraft (cracraft@rice-chex.ai.mit.edu) * Various patches from various people to mostly robustify the code (exit values to exit, etc.) * New book.c handling code and gnuchess.h from Urban to handle mega book now under discussion. * New Xboard. Wed Jun 3 Patchlevel 45 Stuart Cracraft (cracraft@rice-chex.ai.mit.edu) * Encapsulate Xboard with GNU Chess distribution Sun May 31 Patchlevel 44 Bart Massey (bart@cs.uoregon.edu) * Rename structure element move to bmove in book.c since curses.h defines a move macro. * Get rid of superfluous returns in dspcom.c and checkbook.c * Be sure beep message has an arg in uxdsp.c * Add exit status to exit() call in checkbook.c Sat May 30 Patchlevel 43 Stuart Cracraft (cracraft@rice-chex.ai.mit.edu) * Fix checkmate/draw handling. * Add current module copyrights and COPYING. * Ifdef forced-mate announcements as too buggy. Fri May 29 Patchlevel 42 Stuart Cracraft (cracraft@rice-chex.ai.mit.edu) * HUNGP/HUNGX in eval.c updated to values used by Slate/Atkin of Chess 4.x. This fixes a problem with Reinfeld's #281 and poor play in Alapin's opening. General play against me has been much better. Mon May 11 Patchlevel 41 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * genmove update to look at less possible promotion moves * fix bugs in move ordering logic * remove operator time as a default Thur Apr 30 Patchlevel 40 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * Book updates from Tim Mann (mann@src.dec.com) * Search updates to look more at possible promotion moves * Transposition table update from U. Koistinen (md85-epi@nada.kth.se) to allow for estimated scores. Mon Apr 27 Patchlevel 38 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * book updates for Cochrane from Tim Mann (mann@src.dec.com) * added limit for infinite checks in endgame to tree search to limit time spent in any branch Wed Apr 25 Patchlevel 38 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * fix slowdown caused by previous changes. Wed Apr 22 Patchlevel 37 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * fix sizes of ttable (malloc) and hashfile (-c option) to allow for rehashing * eliminate pick replace with qsort * adjust lookahead limits Thur Apr 15 Patchlevel 35 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * fix bugs in search logic Mon Apr 13 Patchlevel 34 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * Fix bugs in game win/draw logic. Fri Apr 8 Patchlevel 34 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * rewrite time control moving it up a level * replace sorts with qsort * fix material command to all multiple N's and B's * and make it an ifdef on NOMATERIAL Fri Mar 30 Patchlevel 32 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * make MINDEPTH a define * eliminate #ifdef's for hashbd/hashkey it is always required * up MINDEPTH to 2 to always get a hint * add some dynamics to eval/estimate decision * more dynamic time allocation Fri Mar 27 Patchlevel 30 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * fix hashfile code again * fix startup for no book present * fix race condition in search * allow parameters on commands Wed Mar 25 Patchlevel 28 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * fix bug in hashfile debug code * add material check for draw and material command * fix QUIETBACKGROUND code Tue Mar 24 Patchlevel 27 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * fix book move reject to not select a ? move * add check to HASHFILE option to check for ilegal move * document debug options Mon Mar 23 Patchlevel 26 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * Add multiple time controls * apply fixes from R.K.Lloyd@compsci.liverpool.ac.uk for screen update problems in visual mode Sun Mar 22 Patchlevel 25 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * Update man pages * fix false mate problem with transposition table * add history killers option but don't use it. * fix handling of input parameters so the doc and the program agree * allow time to be specified in seconds (machines are faster now) * add QUIETBACKGROUND option from md85-epi@nada.kth.se. * put in book patch from md85-epi@nada.kth.se. Sun Mar 15 Patchlevel 22 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * Add options for SpaceBonus table levels * Switch to new book * Add polling code for keyboard Tue Mar 10 Patchlevel 21 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * correct depth test in PutInTTtable * patch from Urban Koistinen (md85-epi@nada.kth.se) correcting bug in repetition Mon Mar 9 Patchlevel 20 * correct defaults for MEMSET Sat Mar 7 Patchlevel 19 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * add speedups by using memset for ZeroRPT * rewrite ScoreSpace * rewrite pick Thur Mar 5 Patchlevel 18 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * fix bug in timing that led to negative times * change time allocation to be more flexible * based on score and depth * eliminate a bad opening from the book Sat Feb 15 Patchlevel 17 Urban Koistinen (md85-epi@nada.kth.se) * Added option -T n to set transposition table size 2^n. * -r n set rehash to n. * Changed repetition to make it work harder. * ScoreSpace changed to value central squares higher. * Made go change colors so white&black work as they should. Fri Dec 30 08:34:00 1991 Patchlevel 16 * Fix to eval.c for mis-transcribed sign in ScoreKBNK. * Fix to malloc call in init.c. * ScorePosition updated with addition of ScoreSpace to add in points for threats in a position. from Urban Koistinen (md85-epi@nada.kth.se) * Various tuning of parameters Fri Nov 30 08:34:00 1991 Patchlevel 15 * from nv-90-mho@nada.kth.se patch to make listfile name meaningful instead of a random number * from Urban Koistinen (md85-epi@nada.kth.se) move generation speedup for non-pawn moves and move selection improvements. * from Mike McGann (mwm@hslrswi.hasler.ascom.ch) added language file to allow multiple languages to be supported. Fix broken search on opponents time, fix bad moves in book. Mon Oct 19 08:34:00 1991 Urban Koistinen (md85-epi@nada.kth.se) * patchlevel 14 * fix checks in castling logic to only allow kings to do it. * fix repetition logic "all pieces are the same" bug. Thur Oct 10 13:34:00 1991 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * patchlevel 14 * expand the timing logic to allow more time in unstable positions * Update man pages * Fix printout bug in Checkbook Tue Oct 8 13:34:00 1991 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * patchlevel 13 * General cleanup, Fix screens, prompts, rate calculation Sun Oct 5 13:34:00 1991 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * patchlevel 12 * Change eval.c/KingValue to ignore Mking if the otherside has only pawns on the board. Tuning parameter is KINGPOSLIMIT. * Fix time print in gnuchess and gnuchessx. * Use ShowMessage for all error messages. * Fix post option to print time in seconds. Sun Oct 5 08:34:00 1991 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * patchlevel 11 * speedups in search. Eliminate unused computation. * change eval.c/KingValue to ignore Mking if there are only pawns on the board. Tuning Parameter is KINGPOSLIMIT. * make DITHER a tuning parameter. Tue Oct 1 08:34:00 1991 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * patchlevel 10 * fix eval bug in ScorePosition. Evaluated pawn structute incorrectly. Introduced when gnuchess was split up. * Change default for SCORETIME to -9000 it plays better * correct promotion logic for CHESSTOOL and XBOARD only queens are generated now. * correct handling of TOflag for bothsides mode. Mon Sept 27 08:34:00 1991 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * fix more enpassant bugs in checkgame/checkbook * misc speedups by inlining code. move SqAtakd to ataks.h and inline it. * Modify checkbook to also read xboard game files and check them for illegal moves. * fix bug in game.c introduced by patch 8 Mon Sept 26 08:34:00 1991 Urban Koistinen (md85-epi@nada.kth.se) * Correct the making and unmaking of enpassant moves and numerous incorrect usages of ? throughout the program. Mon Sept 24 08:34:00 1991 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * force search re-init if PV chavges due to a timeout * add patchlevel to the -v option to keep version straight. * Change search and timing logic. Search now backs up to previous level on a timeout. Search adds time to the search if the last top level PV is different from the current and this level is not finished. Seems to play much stronger. Mon Sept 16 08:34:00 1991 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * Opening book now handles transitions. It continues looking at the book until 2 (tunable) successive turns fail to find a move there. * GetOpenings now checks for errors on input. The current book was full of illegal moves. They were filtered out since at game time the book move is matched against the legal move list. But it makes for bad opening play. EnPassant moves are not allowed in openings(a limitation?) Checks made are the there is a piece on the from square belonging to the right side and there is no piece or a piece belonging to the other side on the to square. There is no check that the piece is moving legally. * ListGame now makes up the name chess.lst.random#. So if you are using xboard to play a match (two machine mode) they won't overwrite. * Added patch from Randy Ray (rray@SPECLAB.CR.USGS.GOV) to correctly format chess.lst Wed Sept 4 08:34:00 1991 Mike McGann (mwm@hslrswi.hasler.ascom.ch) * Renamed gnuchess3.1+ to gnuchess to reflect the split in gnuchess development. There now seems to be 3 threads. Gnuchess, gnuchess for windows (3.21), and the gnuchess4 project if it still exists. * Fix chesstool version to handle white as well as black. * Split program into modules for easier maintinance and development. * Fixed Illegal move bug in VerifyMove for promotion moves. * Replaced ResponseTime calculations with simpler version that stays within the time limits and seems to do as well or better in play. * General cleanup of the search algorithm * Fixed gnuan input processing and termination code. * Fixes to work with xboard match mode * Added TEST directory with 16 problems from Levy's Computer Chess book. Tue Aug 6 18:10:47 1991 Philippe Schnoebelen (phs@lifia.imag.fr) * Modify handling of Book in Undo (previously, when you backtracked after quitting the book, the program was not able to use it again) * Modify handling of Book in EditBoard and other routines so that the Book is not used if you don't start from the regular initial board. Mon Aug 5 17:26:59 1991 Philippe Schnoebelen (phs@lifia.imag.fr) * Modify parse in gnuchess.c so that a move can be followed by '?' indicating that the program should not play it itself. Such a move is stored with the highest bit raised. Modify OpeningBook in gnuchess.c so that moves with highest bit set are recognized but not played by the program. * Modify the declaration of array PieceList in gnuchess.[ch] to allow for up to 64 men of the same side. Such artificial situations can be built with edit and the program must be able to deal with them. Mon Aug 1 10:20 1991 Mike McGann (mwm@hslrswi.hasler.ascom.ch) Split chesstool and xboard versions. Xboard is now gnuchessx and chesstool is gnuchessc. Mon Apr 15 10:20 1991 Mike McGann {mwm@hslrswi.hasler.ascom.ch) Changed transposition table to cache positions found in transposition file Fix Undo's incorrect handling of promotions. Fix win and draw determination bugs. Fix bug in algbr that prevented correct display of promotion moves. Fix Undo to correctly display side to move. Add path to command line for save file and load file. Make save file human readable Thu May 24 13:42:24 1990 Hans Eric Sandstr|m (hes at baloo) * Fixed a bug reported by Brian Wong (wong@cs.UAlberta.CA) in ScoreKPK Sat May 5 15:58:31 1990 Hans Eric Sandstr|m (hes at baloo) * extensive tests on MSDOS for 2 weeks and lots of changes: Moved all flags to a special flag structure. Added my own TODO file to the DOCUMENTATION. Moved GetOpenings and parse from the *dsp.c files. Made the transposition table enabled by default. Some cleanup in the *dsp.c code. Changed UpdateHashbd to a macro. Wed Apr 18 16:38:30 1990 Hans-Erik Sandstr|m (hes at tiamat) * Removed unnessesary global variables: (wking, bking, Enemyking, INCscore, slk, InChk, HasPawn, Zwmtl, Zbmtl, lpost, KBNKsq) this should make the program more readable. * Added a mini transposition table to detect repetitions, this means that repetition is called more seldom and should save some time. The idea for this came from Benno Tietz (tietz@eos.informatik.uni-bonn.de) Thu Mar 29 02:49:00 1990 Thorsten Ohl at (td12@ddagsi3.bitnet) * nuxdsp.c has been given an ANSI interface (tailored after uxdsp.c as of Version 3.00 and a homegrown ANSI interface created in January for Version 1.55). * uxdsp.c now understands ^C interrupts. * both nuxdsp.c and uxdsp.c support the graphic characters of the IBM PC (can be disabled with -DSEVENBIT). It's of course a matter of taste, but I think it looks much better. * I have added prototypes and a makefile for a **IX compatible MS-DOS make (neither Turbo C or Microsoft C will understand this!). * some formal parameters are not referenced. This is due to the different display interfaces and no problem at all. Just for aesthetic reasons I have shut up the compiler by incrementing the unreferenced variables. * some longs are assigned to shorts and some shorts to unsigned chars. I have introduced a cast in each case, all are o.k. (as far as I can tell). Thu Mar 8 09:11:28 1990 Hans-Erik Sandstr|m (hes at orsa1) * The persistent hash table seems to work now. There are still some problems using it on a heterogenous network. Sun Mar 4 14:44:44 1990 Hans Eric Sandstr|m (hes at orsa) * I am working on a persistent hash table. Currenly a 10Mb file with 262144 entrys. Stuart just asked me to spilt the posdata array to make gnuchess work better on a PC, so I did that. I have also tried to properly fix the bug that caused gnuchess to report mate prematurely. This, I hope, will also improve the search. Tue Feb 27 18:27:23 1990 Hans Eric Sandstr|m (hes at davidson.log-sv.se) * used protoize to make a function prototyped version of gnuchess. this means that I have to use unprotoize before 'make distribution' to make a more portable K&R version. removed a ZeroTTable so now the hashtable is kept between moves. Sat Feb 24 13:14:14 1990 Hans Eric Sandstr|m (hes at orsa) * Added a test to detect hash table collisions, define HASHTEST. I also removed the times calls since there is no sense in measuring cpu time when wallclock time is all that counts when playing chess. Fri Feb 23 17:25:37 1990 Hans Eric Sandstr|m (hes at orsa) * Compiled gnuchess with gcc1.37 -Wall and got lots of implicit decaration warnings. Solved most of these by adding external declarations in gnuchess.h. Wed Feb 21 17:41:28 1990 Jouko Holopainen (jhol@tolsun.oulu.fi) * Contributed his code for ECO move entry (again!) and a file ansidsp.c (A msdos port of uxdsp.c). I(hes) started a merge of ansidsp.c and uxdsp.c. February 8, 1990 -- Hans Eric Sandstrom (hes@log-sv.se) Changed the transpositon table to allow 65536 positions per player. This means a 1.3 Mbyte hash table. Introduced simple rehashing. And also made setting ttable 0 exclude all transposition code from gnuchess (for machines with very little memory). February 3, 1990 -- Tom Vijlbrief (tnosoes!tom@nluug.n) Contributed code to fix undo of promotions. And a bugfix RMBLTY was to small. Januari 27, 1990 -- Hans Eric Sandstrom (hes@log-sv.se) Fixed nuxdsp.c to work with my changes (Saved games format) Januari 26, 1990 -- Hans Eric Sandstrom (hes@log-sv.se) Verified that the underpromotion routines works. Found and fixed the bug that caused gnuchess to report mate and draw prematurely. Januari 25, 1990 -- Hans Eric Sandstrom (hes@log-sv.se) Received the underpromotion additions from jhol@tolsun.oulu.fi Made some optimizations in trapped and KingScan. Added more comments on how to improve the search. Added info on usage of the array Tree in post mode. Changed the index in the transposition table to unsigned short to allow a hash table of size 65536. Januari 11, 1990 -- Hans Eric Sandstrom (hes@log-sv.se) Formatted gnuchess according to GNU standards with indent. Januari 9, 1990 -- Hans Eric Sandstrom (hes@log-sv.se) Inserted a missing comma in KTHRT. Removed mvstr1[5],mvstr2[5] from gnuchess.c, they are only used in the user-interface routines uxdsp.c nondsp.c anyway. Rewrote algbr to generate move strings for underpromotion. (ph8k or h7h8k) Some optimizations in CaptureList. Changed row, column and locn to macros. Made memset default and introduced a switch NOMEMSET for computers without memset or where memset is a speed penality. I tested this on: Sparc - no change DECstation - no change Sun3/60 - 4% speed improvment. Changed + to | in some bit-field manipulations. Fixed the castle-with-moved-rook-bug, removed kingmoved and introduced an array Mvboard to keep track on how many times we have moved from a particular square. Fixed the check for zero division in Time controls. Added BINDIR and LIBDIR in the Makefile to set where gnuchess and gnuchess.book gets installed. All I have to do now is to test if all this works (-: