command synopsis

!command....................... passes command to a shell.
adaptive NPS a b c d........... enables adaptive hash mode.
alarm on|off................... turns audible alarm on/off.
analyze........................ analyze a game in progress.
annotate....................... annotate game
ansi........................... toggles reverse video highlighting.
bench.......................... runs performance benchmark.
black.......................... sets black to move.
book........................... controls book
cache=n........................ sets tablebase cache size.
clock.......................... displays/adjusts chess clock times.
display........................ displays chess board.
display [n].................... sets display options
draw accept|decline............ decline always declines.
draw offer|nooffer............. nooffer never offers a draw.
drawscore n.................... sets default draw score.
echo........................... echos output to display.
edit........................... edit board position.
egtb........................... enables endgame database probes.
epdhelp........................ info about EPD facility.
end............................ terminates program.
evaluation..................... adjust evaluation terms.
exit........................... restores STDIN to key.
force move..................... forces specific move.
hash n......................... sets transposition table size.
                                 (n bytes, nK bytes or nM bytes).
hashp n........................ sets pawn hash table size.
history........................ display game moves.
import filename................ imports learning data (.lrn files).
info........................... displays program settings.
input filename [title]......... sets STDIN to filename, and positions 
                                 the file at the line containing 'title'.
kibitz n....................... sets kibitz mode n on ICS.
learn n........................ enables/disables learning.
level moves time inc........... sets ICS time controls.
list........................... update/display GM/IM/computer lists.
load file [title].............. load a position from problem file.
log on|off..................... turn logging on/off.
mode normal|tournament......... toggles tournament mode.
move........................... initiates search (same as go).
name........................... sets opponent's name.
new............................ initialize and start new game.
noise n........................ no status until n nodes searched.
operator seconds............... sets operator time per move.
perf........................... times the move generator/make_move.
perft.......................... tests the move generator/make_move.
personality save|load fn....... saves/loads a personality file.
pgn option value............... set PGN header information.
ponder on|off.................. toggle pondering off/on.
ponder move.................... ponder "move" as predicted move.
read [filename]................ read moves in (from [filename] if given.)
reada [filename]............... read moves in (from [filename]]) and append.
                                 (appends to current game history.)
reset n........................ reset game to move n.
resign m n..................... set resign threshold to m pawns.
                                 n = # of moves before resigning.
savegame [filename]............ saves game in PGN format (to filename).
savepos [filename]............. saves position in FEN string (to filename).
score.......................... print evaluation of position.
sd n........................... sets absolute search depth.
search move.................... search specified move only.
selective min max.............. set null move depths.
setboard FEN................... sets board position to FEN position.
settc.......................... set time controls.
show book...................... toggle book statistics.
sn n........................... sets absolute search node limit.
speech on|off.................. enables (disables) audio output.
st n........................... sets absolute search time.
store val...................... stores position/score (position.bin).
swindle on|off................. enables/disables swindle mode.
tags........................... list PGN header tags.
test file [N].................. test a suite of problems.
time........................... time controls.
trace n........................ display search tree below depth n.
usage percentage............... adjusts Crafty's time usage up or down.
whisper n...................... sets ICS whisper mode n.
white.......................... sets white to move.
wild n......................... sets ICS wild position (7 for now).
xboard......................... sets xboard compatibility mode.

Type "help command" to see more detailed help information, if it is
available.  Note that help is not available for all possible commands.
<end>

<analyze>
The analyze command puts Crafty into a mode where it will search forever
in the current position.  When a move is entered, crafty will make that
move, switch sides, and again compute, printing analysis as it searches.
You can back up a move by entering "back" or you can back up several
moves by entering "back n".  Note that n is the number of moves, counting
each player's move as one (ie n plies, not n full moves).
<end>

<annotate>
annotate[h|t] filename side moves margin time [n]

Filename is the input file with game moves, while the output will be
written to filename.can.  The input file is PGN-compatible with one
addition, the ability to request that alternative moves also be
analyzed at any point.  To do this at the point where you have
alternative moves, simply include them in braces {move1, move2},
and Crafty will then search them also.

Side can be b/w/bw to indicate whether to annotate only the white
side (w), the black side (b) or both (bw).  Side can also be the
players name, where Crafty will then use the players name and the
PGN tags to discover which you want the annotation done for.

Moves indicates which moves to annotate.  A single value says start
at the indicated move and go through the entire game.  A range (20-30)
annotates the given range only.

Margin is the difference between the search value for the move played
in the game, and the best move crafty found, before a comment is
generated (pawn=1.0).

Time is the time limit per move in seconds.

If the optional "n" is appended, this produces N best moves/scores/PV's,
rather than just the very best move.  It won't display any move that
is worse than the actual game move played, but you can use -N to force
Crafty to produce N PV's regardless of how bad they get.

Using 'annotateh' produces an HTML file with bitmapped board displays
where analysis was displayed.

Using "annotatet" will cause the output to be written in a LaTex (.tex)
format.
<end>

<book>
You can use the following commands to customize how the program uses
the opening book(book.bin and books.bin).  Typically, book.bin contains
a large opening database made from GM games.  Books.bin is a short,
customized book that contains selected lines that are well-suited to
Crafty's style of play.  The flags can further refine how this small
book file is used to encourage/avoid specific lines.

binfile create filename [maxply] [mp] [wpc]

This command creates a new book by first removing the old binary file.
it then will parse filename and add the moves to the binary book
filename given as binfile.

maxply is the max length of book moves stored from any single PGN
game in the input file.

mp means a particular move must appear in at least that many games
to be stored in the book file.

wpc is the relative winning percentage.  50 means exclude any book move
that doesn't have at least 50% as many wins as losses.

book mask accept chars

Sets the accept mask to the flag characters in chars (see flags below.)
Any flags set in this mask will include either (a) moves with the flag
set, or (b) moves with no flags set.

book mask reject chars

Sets the reject mask to the flag characters in chars (see flags below.)
Any flags set in this mask will reject any moves with the flag set (in
the opening book.)

book off turns the book completely off.

book random 0|1 disables/enables randomness.  Book random 0 takes the set
of book moves and searches them for about 1/10th of the normal search time
and lets the search choose which move to play.  Any move not in the book
file will not be considered or played.

bookw weight v

Sets weight for book ordering.  (Weights are freq (frequency), eval
(evaluation) and learn (learned scores).

book width n

Specifies how many moves from the sorted set of book moves are to be
considered.  1 produces the best move from the set, but provides little
randomness.  99 includes all moves in the book move set.

Flags are one (or more) members of the following set of characters:  {?? ?
= ! !! 0 1 2 3 4 5 6 7 8 9 A B C D E F} Normally, ?? means never play, ?
means rarely play, = means drawish opening, ! means good move, !! means
always play, and 0-F are user flags that a user can add to any move in the
book, and by setting the right mask (above) can force the program to either
always play the move or never play the move.  The special character * means
all flags and is probably dangerous to use.  Flags are added to a move by
entering the move and a / or \ followed by the flags.  / means add the flags
to the move preserving other flags already there while \ means replace any
flags with those following the \.

The format of the book text (raw data) is as follows:

[title information] (required)
1. e4 e5 2. Nf3 Nc6 3. ... (a sequence of moves)
[title information for next line] (required)
1. e4 e6 ...
end (optional)
<end>

<clock>
clock crafty-time [opponent-time]

clock is primarily intended to be used in a computer chess tournament 
where the games are played on a real chess board using a real chess
clock, rather than through some automatic interface that manages the
time automatically.

crafty-time is the amount of time left on Crafty's clock, expressed in
minutes, or in hh:mm format.  Crafty will convert this to its internal
representation correctly.

opponent-time is the amount of time left on the opponent's clock, 
expressed in the same way.  This is option and is not required as
Crafty does not use this information during the game although it
does keep up with it.

After entering this command, you should probably type "clock" to be
sure things look correct.

Note that the "operator" command sets a time per move overhead for the
operator, and that this affects the actual time used as expected.  IE in
the above clock setting, assuming the operator has allowed 10 seconds per
move, crafty will "hide" 35 * 10 seconds and not use it for searching, which
gives the operator time to actually make the moves and press the real clock
button.  It is CRITICAL that the clock command be used from time to time to
keep Crafty's internal clock in sync with the real clock.  If you use the
operator command, the clock value should match the real chess clock exactly,
if you choose to not use the operator time and fudge the chess clock time
yourself, that will work as well, but it is more prone to errors.
<end>


<display>
display changes   -> display variation when it changes.
display extstats  -> display search extension statistics.
display general   -> display general info messages.
display hashstats -> display search hashing statistics.
display movenum   -> display move numbers in PV.
display moves     -> display moves as they are searched.
display nodes     -> display nodes for each move searched.
display ply1      -> display ply-1 move list/sorting info.
display stats     -> display basic search statistics.
display time      -> display time for moves.
display variation -> display variation at end of iteration.
<end>

<evaluation>
evaluation item# value [value ... value]

The evaluation command allows you to change specific evaluation
numbers when you want.  The first thing you should do is type
"evaluation list" to show all the possible values.  The format
looks like this when displayed:

White(1): evaluation list
------------piece values--------------------
  1  pawn value                           100
  2  knight value                         300
  3  bishop value                         300
  4  rook value                           500
  5  queen value                          900
------------evaluation scale factors--------
 11  blocked pawn scale factor            100
 12  king safety asymmetry                -20
 13  king safety scale factor             100
 14  king safety tropism scale factor     100
 15  passed pawn scoring scale factor     100
 16  pawn scoring scale factor            100
 17  bad trade bonus/penalty              120
------------pawn evaluation-----------------
 21  eight pawns penalty                   10
 22  center pawn blocked                   12
 23  center pawn unmoved                   16
 24  pawn duo                               2
 25  protected passed pawn wins            50
 26  pawn weak (one pawn blocking)         12
 27  pawn weak (two pawns blocking)        20

The first number is the evaluation term ID #.  To change the
value of a pawn from the default 100 to 50, you would type
the following command:

eval 1 50

Crafty will display this:

White(1): eval 1 50
pawn value                       old:100  new:50

And now pawns are worth 1/2 of what they were prior to the
command.  Note that unless you specifically save the setting
with the "personality save" command, once you exit Crafty
the pawn value will return to 100 the next time you start it
up.  You can, of course, put such commands in the .craftyrc/
crafty.rc file, but it is simpler to use the personality
command instead (type "help personality" for more information).

Note that some evaluation terms have a list of numbers as they
are indexed by something.  When you change one of these terms,
you must give _exactly_ the correct number of values, or the
command will produce an error without changing anything. 

Some of the values are 8 X 8 matrices of values, where the
values correspond to the chess board as viewed with square
a1 on the bottom left.  You must type the values in in order
as they appear on the screen.  Crafty will shift things as
needed.  IE for a piece/square table for knights, the first
value displayed is for a8, so the first value you enter must
also be for a8.  Many of these matrices have black/white 
counter-parts.  You enter the white values, Crafty will
mirror those to reflect the _same_ values but from the black
side of the board.  This will be done automatically.

Non 8 X 8 matrices are just dumped in order from element zero
to N.  You enter those the same way.  IE the way it prints them
out is the way you enter them, reading from top-to-bottom, and
left-to-right.

If you come up with an interesting personality, feel free to make
it available to everyone, and if it is particularly attractive, it
can become part of the "distributed" crafty personalities once this
has been released.
<end>

<lists>
list name +name -name ...

The lists are as follows:

AK  Auto-Kibitz list.  If crafty plays any opponent named in this list
while playing on a chess server, it will kibitz the usual analysis as
the game is played.  Not advised for human opponents as they do not
like the "noise".

B  Blocker list.  If you notice a player repeatedly trying to block the
position to get easy draws, put his name in this list.  Players in this
list get special "anti-human" scoring turned up louder than usual to 
combat this strategy.

C  Computer list.  This is not needed on ICC as xboard/winboard both
tell crafty it is playing a computer opponent.  However, if your GUI
does not do this, you can put the name of the computer opponents you
frequently play in this list and if the GUI sends the "name" command
properly, crafty will figure out that it is playing a computer.

GM/IM lists are obvious.  This identifies players that are strong 
enough that Crafty should resign or offer draws sooner than normal,
rather than hoping for a blunder in lost or drawn positions.

SP  Special Player list.  Names in this list can be used to specify 
a unique opening book (to replace books.bin, not book.bin) for this
particular opponent, as well as specifying a personality file to use
rather than the default crafty.cpf.  The format of this particular
list is:

list SP +name [book=filename] [personality=filename]

<end>

<personality>
personality load|save filename

perspath path-to-personality-directory

Crafty "personality" files (.cpf files) contain information that 
affects three components of Crafty.

You can use the "selective" command to adjust the null-move R (min
and max) values.  The default values are 2 and 3, and reducing them
will reduce Crafty's playing strength to some fairly significant
degree.

You can use the "extension" command to adjust the search extension
values.  Reducing these will "dumb down" the search and make crafty
tactically (but not positionally) weaker.  They can be set all the
way down to 0.00 if you choose.

You can use the evaluation command to adjust some global evaluation
weights (ie turn down total pawn scoring, or king safety, etc.) or
you can use this command to adjust individual scoring values, from
the value of pieces, to specific scoring terms for each piece such 
as the value of a doubled pawn or whatever.

Once you find settings you like, you can use "personality save 
filename" to save all of the above settings in one file.  Later you
can use "personality load filename" to restore those settings prior
to playing a game.

One final note is that you can save to the specific file "crafty.cpf"
and your settings will become the _default_ each time you start
Crafty, until you either remove the file, load another personality,
or save a new default personality.

You can have as many different personality files as you want, and to
keep them from getting jumbled up, you can put them in a separate
directory and add the "perspath" to your .craftyrc/crafty.rc file to
point Crafty to the directory where the personality files belong.
<end>

<settc>
settc moves crafty-time opponent-time

settc is primarily intended to be used in a computer chess tournament 
where the games are played on a real chess board using a real chess
clock, rather than through some automatic interface that manages the
time automatically.

moves is the number of moves left to the next time control from Crafty's
perspective.  IE if the time control is 60 moves in 120 minutes (a normal
time control for the WCCC) and crafty has actually made 25 moves in the
current game, then the correct "moves" value would be 35, as there are
exactly 35 moves to be made before the next time control is reached.

crafty-time is the amount of time left on Crafty's clock, expressed in
minutes, or in hh:mm format.  Crafty will convert this to its internal
representation correctly.

opponent-time is the amount of time left on the opponent's clock, 
expressed in the same way.

After entering this command, you should probably type "clock" to be
sure things look correct.

Note that the "operator" command sets a time per move overhead for the
operator, and that this affects the actual time used as expected.  IE in
the above clock setting, assuming the operator has allowed 10 seconds per
move, crafty will "hide" 35 * 10 seconds and not use it for searching, which
gives the operator time to actually make the moves and press the real clock
button.  It is CRITICAL that the clock command be used from time to time to
keep Crafty's internal clock in sync with the real clock.  If you use the
operator command, the settc value should match the real chess clock exactly,
if you choose to not use the operator time and fudge the chess clock time
yourself, that will work as well, but it is more prone to errors.
<end>

<test>
test filename [N]

Test is used to run a suite of "crafty format" test positions in a batch
run.  filename is the name of the file in crafty test format.  [N] is
an optional parameter that is used to shorten the test time.  If crafty
likes the solution move for [N] consecutive iterations, it will stop
searching that position and consider it correct.  This makes a Win At
Chess 60 second run take under 1/2 hour, for example.  The "crafty format"
requires three lines per position.  The first line must be a "title" line
and is used to identify each position.  The second line is a "setboard"
command to set the position.  The third line is a line that begins with
"solution", and then is followed by one or more solution moves.  If a
position is correct only if a particular move or moves is *not* played,
enter the move followed by a "?", as in Nf3?, which means that this
position will be counted as correct only if Nf3 is not played.

Note that this command may refer to a normal EPD test file as well and 
Crafty will run that test in the same way, but Crafty will notice it is an
EPD test file rather than a "crafty" test file and handle it appropriately.
<end>

<time>
Time controls whether the program uses CPU time or wall-clock time for
timing.  For tournament play, it is safer to use wall-clock timing, for
testing it may be more consistent to use CPU timing if the machine is
used for other things concurrently with the tests being run.  (Note that
this is not recommended when using a multiprocessor machine, CPU time in
a parallel search increases at N times the normal time rate where N is the
number of processors being used).

Time is also used to set the basic search timing controls.  The general
form of the command is as follows:

time nmoves/ntime/[nmoves/ntime]/[increment]

nmoves/ntime represents a traditional first time control when nmoves is
an integer representing the number of moves and ntime is the total time
allowed for these moves.  The [optional] nmoves/ntime is a traditional
secondary time control.  Increment is a feature related to ICS play and
emulates the Fischer clock where increment is added to the time left
after each move is made.

As an alternative, nmoves can be "sd" which represents a sudden death
time control of the remainder of the game played in ntime.  The optional
secondary time control can be a sudden-death time control, as in the
following example:

time 60/30/sd/30

This sets 60 moves in 30 minutes, then game in 30 additional minutes.
An increment can be added if desired.
<end>

<tournament>
playing in a manually-operated tournament

1.  Starting Crafty.  This is the easiest part of the whole process.
All that's needed is to simply type the command "crafty".

2.  display.  This command displays the chess board using the standard
chess server style#1 board display.

This is most often used to confirm that the board has been set to the
proper position in the event that you can't continue an old game and
have to set up the position from scratch (explained later).  Note that
white is always at the bottom, regardless of whether Crafty is playing
black or white.

3.  read.  This command is used to read in a list of moves and make them
on the game board prior to using crafty to play that game.  There are 
two ways this can be used:  (a) read.  This will prompt you for a
white move, a black move, over and over until you type "exit" to terminate
read mode.  The side to move will be set according to the number of moves
entered, so that the next move will be for the correct side.  (b) read file.
This command reads, but the input comes from "file" rather than from the
keyboard.  Note that superfluous text is ignored, as is line numbers, times,
etc.  This will read in a PGN game and cull everything but the moves.

4.  setboard.  This command is used to set up a specific board position
when it's impossible to restart a game using the "crafty c" command, and
too many moves have been made, making the read command an unattractive
alternative.  This command parses a FEN-like position description (a
Forsythe-like notation) and sets the current board to that position.

The notation uses a string of alpha characters to represent the chess
position.  In this notation, uppercase K Q R B N P represents a white
piece, lowercase k q r b n p represents a black piece.  for empty
squares, you can use numbers 1-8 to indicate consecutive empty squares.
A "/" must terminate each rank after defining at most 8 square on that
rank, and the ranks are entered in descending order 8..1.  In this 
notation, then, the first square you enter is a8, then b8, .., h8, 
followed by a "/", then back to a7 and repeating.  After all 8 ranks
are entered, you need to indicate whether or not one side can castle
kingside or queenside by inserting at least one space character, followed
by a K (white can castle kingside) Q (white can castle queenside) k (black
can castle kingside) or Q (black can castle queenside).  After this, add
one more space, followed by the square of a pawn that just moved two ranks
and is subject to an en passant capture.  Note that if there is no
en passant capture possible, you do not enter this field.

For the above board position (display command), here's the setboard
command to set that position up:

setboard r2q1knr/pp2bppp/4b3/1BPp4/6PP/2N1P3/PP3P2/2RQK1NR/ K

Note that after entering the last piece on a rank, a number for the
remaining empty squares is *not* needed, so this could be shortened
to:

setboard r2q1knr/pp2bppp/4b/1BPp/6PP/2N1P/PP3P/2RQK1NR/ K

One unfortunate effect of this command is that you have just lost the
ability to detect repetitions of prior positions in the game, which can
be a critical issue.  It is _always_ better to use the read command to
re-enter the moves if the hardware crashes.  If you accidentally type
^C and terminate Crafty, you can type "crafty c" and it will continue
the last game, although you will need to set the time control information,
and anything else that is not in the .craftyrc file.

5.  reset <n>.  This command is used to back the game up if a different
move is to be tried, or if an incorrect move was entered by mistake.  It
depends on the current side to move, and the command "reset 13" will back
the game up to move 13, where the current side on move is still on move,
and Crafty will be positioned to read in move 13 for that side.  Note
that this affects the game, but not the clock or time or level, so that if
you back up more than a move or two, you also need to adjust the clock.

If you want to first change the side to move, use the "white" or "black"
command to set the side to move, then use the reset command to back up
to the move for that side.

6.  time.  This command is used to set the time control.  There are
several ways to use it, depending on the type of time control desired.
(a) time sd/n sets the game to sudden-death in n minutes. such as
game/10, game/30.  time sd/30 would set game in 30 time control.
(b) time moves/time smoves/stime sets the game to "moves" in "time"
minutes, then "smoves" in "stime" minutes.  A common setting is
time 40/120/20/60 for 40 moves in 2 hours, then 20 moves in one hour.
(c) time moves/time/sd/sdtime sets a standard first time control,
followed by a sudden death time control.  For example time 60/60/sd/30
is 60 moves in 60 minutes followed by game in 30 minutes.  (d) for any
of these, an optional 5th parameter can be added, which is the famous
"Fischer clock" increment that is added to each players time remaining
after he makes a move.  The increment is given in seconds rather than
minutes.  Note that the default should be right unless the tournament
modifies the T/C after the tournament starts for some reason.

7.  settc.  This command is used to correct time-control info after a
restart.  it will prompt you for how much time is left on both Crafty's
and the opponent's clock, and for how many more moves until crafty makes
the next time control.  Again, usually not needed, but there for serious
circumstances.  After restarting, type "clock" to display this info and
if it's wrong in any way, this settc command is the quickest way to fix
it up.

8.  clock.  This command is used to adjust the internal clock time as it
drifts away from the real chess clock as a game progresses.  The format
is simply "clock mins" to adjust Crafty's clock.  Or "clock cmins omins"
to adjust both Crafty's time and Crafty's internal time that the opponent
has left.  Since the current version doesn't really need the opponent's
clock time, it can be ignored with no side-effects.

Common problems and how to solve them:

1.  Is crafty searching or pondering?  I was not watching the screen,
and the window size is small enough that all I see is analysis scrolling 
up the screen.  This is easy.  Look at the bottom line on the screen, and
you will see a line that keeps changing, showing the depth, time used so
far, how many moves have been searched and the PV.  Look at the third
column what shows something like 12/30, which says that at the current
depth crafty has already searched 12 of the 30 legal moves at the root.
You will notice that there is an extra character after the 30, either a
"*" or "?".  If an "*" is showing, Crafty is thinking about its move.  If
a "?" is showing, crafty is pondering and thinks it is the opponent's move.

If it shows a "?" but you know it is Crafty's move, you simply missed it.
Scroll back up using whatever scroll mechanism your text window uses, to
find the move Crafty made.  Hopefully this won't happen often, but on the
occasional "emergency" men's room break, anything can happen.  Just remember
that "?" means I am pondering and it is my opponent's move, "*" means I
am searching and it is my move.

2.  I entered the wrong move, how do I fix this?  You are playing in a
game and at move 37, you enter Rfe1 rather than Rae1.  To correct this,
you have to do a couple of things.  First, Crafty is now searching, and
if you try to reset the position, it won't accept this command.  To stop
the search, type ? (followed by a <RETURN> of course) to tell Crafty to
"move now".  Once it displays the move it would play in response to the
incorrect move, it will start its "ponder search" but now the reset
command will work.  Simply type "r 37" to back up to move 37, then type
Rae1 and Crafty will continue as though nothing happened.  Pay attention
to the clock time after it moves and adjust if necessary (if you lost any
time while correcting an incorrect move.)

Note:  You can also use the "remove" command, which will unmake the last
move by each side.  Crafty has to be pondering or waiting on input for
this to work, just like the reset command, so if *you* typed the wrong
move, type "?" to make it move, then "remove" which backs up one move
for each side, followed by the opponent's move.  If the opponent makes
the wrong move on the board, and you enter it, do this same thing.  Note,
if the opponent screws up, you should notice whether or not crafty had
predicted the right move.  If it had, you should probably call the TD
over, back the game up one move with the remove command, then use the
"ponder xxx" command to tell crafty to ponder "xxx" (the move it was
pondering before the wrong move was made by the opponent) and then it
should be allowed to "sit" until the same amount of time elapses before
you enter the correct move.  The idea is that if the opponent screws up,
it should not wipe out any searching crafty did while waiting.

3.  The machine dies (power failure maybe).  How do I recover?  First, you
can stop the clock for such failures, so do that *first*.  Then, reboot the
machine and start crafty by typing "crafty c".  Next, type the "history"
command and carefully check the last move it displays against the score
sheet you are maintaining by hand.  If they are the same, you are ready to
enter a move and continue.  If there are moves missing, use the "reada"
command to re-enter these moves and append them to the moves already 
present.

If the continue option won't work due to a corrupted history file, you have
two choices.  The best choice is to restart crafty without the "c" option,
and then use the "read" command and enter the moves by hand so that if you
screw up later, the "reset" command will work correctly to let you back up.
If you are 100 moves into a game, this might not be practical.  In this
case, use the "setboard" command to enter the position.  Be careful to
check the position after entry using the display command, and be careful
to not enter the wrong move since you can't use the "reset" command to
back up after using the setboard command.

After either of the above problems, you need to set the proper time
control (if this is in your .craftyrc this is not needed) and then you
need to adjust the clock to show the proper amount of time remaining.
The command to display the clock is "clock".  To adjust the clock
use the command form "clock c-time o-time" where c-time is Crafty's
time remaining, and o-time is the opponent's time remaining.  These
can be entered as simply the number of minutes left, or in the hh:mm
format if preferred.  "clock 60 50" sets Crafty's clock to 60 minutes
left, opponent's clock to 50 minutes left.  "clock 1:15 45" sets 
Crafty's clock to 75 minutes remaining, opponent's clock to 45.
Crafty pays attention to how much time the opponent has used,
so be sure and get them both correct.   You should subtract 5 minutes
from the actual time left on the clock to give yourself a cushion.  Of
course, you should *never* enter "0" time left, or even worse, a negative
number, because Crafty will go south for the Winter if you do.  :)

Note that there is a "settc" command that simplifies getting the time
control right after a restart...  It's explained above.
<end>
