*The README.TXT for Complete Chess Master System II*

You can print this file by typing
copy readme.txt prn
from dos

The finished program will be available soon from us at

Oxford Softworks
198 The Hill
Burford
OXON
OX18 4HX
Tel : (0993) 823463
Fax : (0993) 822799

** Introduction **

  This is a playable demo of our latest chess program.

  The demo is fully featured but will prevent you from playing past move 15
(move 30 if you count white move black move as two moves). It will also prevent
you from setting up a new board position.

** Requirements **

  * 80386 or above.
  * 3Mb free extended memory.
  * SVGA - The final product will work under VGA, but at this stage you'll need
a SVGA card that works in 640x480x256 colour resolution, and maybe a VESA
driver. If you have a SVGA card and find the program won't start try running
the (1) univesa program first.
  * Microsoft compatible mouse.

  This is a work in progress version of our program.
  ** There are bugs in it **.
  The smiley face will be replaced by proper art!!!.
  Please see the troubleshooting section at the end of this manual if you are
experiencing problems.

(1) The univesa program is an excellent (free) program that will make most
SVGA cards VESA compliant. To run it change into the uvesa directory and
type "univesa", the program should then tell you what king of SVGA card you
have. Please read the documentation while you're there, because although this
liitle gem is freeware it does have copyright restrictions.

** Features **

  High quality art, selectable 2d and 3d sets, 3d mode is fully scaled to
perspective (so as your pieces move back they grow smaller).

  A complete profesional chess database. With this demo you get a small
1000 game database free, with the release version many thousands of games will
be available. Our program can read chess base format databases - Chess
Base is a chess database program used by Grand Masters.

  The engine (the intelligence) is the result of over 11 years work.
  The whole program is a true 32-bit DOS extended application and has been
pentium/486 optimised. For those interested this means we can get at all the
available memory on your pc easily and our code has been superscalar optimised
using "riscification" and instruction scheduling (it goes faster).

  The intelligence in the engine itself is now enormous. Most chess programs
use the concept of brute force search. This method simply tries to look at
as many positions as possible in the time available, there is very little
intelligence involved in this and progress with this form of engine is limited
by processor power. Our program is very different, it was written by a chess
player rather than a programmer who plays chess. It thinks slower than its
opponents but far more in the way a human would. You'll see this as soon as we
get you into a corner. We've added something called the "Tal attack function",
Tal was a famous chess player renowned for his daring and romantic play, so
watch your king.

  You can grade yourself against a test suite of over 1000 test positions (over
6000 in the release version). This will give you a rough chess ELO grading and
will also hone your chess.

  The program itself has massive functionality. Beyond what you can do from
the menus clicking almost anywhere on the screen will do something.

  What the engine is doing and thinking about can be seen either pictorialy
or textually, at all times.

  The style of the play the engine adopts can be modified. Network play is
supported. Search restrictions can be made which force the program to only
think about certain moves. Solve for mate in n option. Moves within games can
be annotated, with a full on screen text editor, and the comments saved with
games or the games combined into a database. Variations of play are supported
and recorded. Board doodling - aid your thoughts by being able to scribble
over the board. Full opening book control, plus the ability to construct new
opening books from databases, plus the option of constructing an opening book
of say Kasparov games, so that our openings are those used by Kasparov. Named
lines displayed on screen from Ruy Lopez to the Four Pawns opening. This list
goes on so -

** Credits **

2d art and 3d gothic style set Interplay (who will release this in the states).

3d space set and title animation us.

** Brief manual for CCS II **

The Menus ---
The menus are accessed by moving the mouse to the top of the screen.
File menu
About - About box, plus memory button will tell you about memory usage.

New Game ALT-N - Starts a new game.

Strict Game - This puts you in strict play mode. Times out correctly
unlike normal mode which just ignores failed time controls.

Load/Save game - As they say, save game allows you give a file comment which
will be used instead of the file name.

Who are you - Sets the names of Black and White. If either is played by computer
or Network the words computer or network will be used instead.

Preferences load/save/default - As you'd expect. Most things are prefs saved,
in release these will auto save along with the current position.

Export - Export the current game to the printer or a file as ascii.

Import - Intelligently import anybody else's export format, or even games typed
in from newspapers, that sort of thing. Imports independently of notation set.

quit - the program

View menu
Layout - this switches you between the different layout modes, also pressing
space toggles you through these or F-keys. Database mode will show no database
unless one is loaded. Each mode has different windows board sizes and so on
just pick the one you prefer.

Pieces - Load a new 2d/3d set.
       - Use mono set, this will replace all 2d pieces with the mono set

Backdrops - Turn graphical backdrop off. This speeds the program up.

Coordinates - Tick item. Put coordinates (A-H,1-8) around 2d boards.

Orientation - Allows you to look at the board from any (90 degree angle).

Graphical clock - toggles between graphics clock and text clock. In 3d switches
between mouse cursor being a clock and no clock. In 2d same operaion performed
by clicking on clock.

Notation - Set your favorite notation system.

Options -
    Offer Draws - Turn off to prevent computer offering draws or attempting to
    resign.
    Slide pieces - Slide those pieces across the board. Doesn't affect db mode
    or click on move highlighting.
    Must move - as the menu item said, you touched it so move it. (ie no pick
    up and put back)
    Sound - This turns our impressive array of sounds (such as Beep and the
    immortal Beeeep) off. (This will all change with the multimedia version)
    Capture animation - Makes pieces do a pixelated explosion when captured
    also when deleted in setup mode.

Control menu
Switch sides - Names do not switch just type of player (human/computer/network)
for sides.

Black/White players - Set type of player as above for colour. Can only set
network if Network connect done.

Communications -
  Modem play will be available in release.
  Connect - connects you to another player, must be done before network play is
started.
  Check connection - checks your opponent is still there.
  Disconnect - finish session.
  Send message - Send a message to your opponent.

Move Now - Kills search, makes best move now, if waiting for computer move.

The following can be done with the cursor keys and home/end/del but are in the
menu for completeness.

Forwards - forward 1 move. (right/left up/down cursors)
Replay - back to start. (home)
Automatic - Slow forward to end of game.
Takeback - back one move. (as for forwards)
Delete - delete this move and all beyond.

Learn line - put the current line into an opening book of your choice, user
must set whether he thinks it's good for white, black or both. Line is inserted
inoptimally, so adding hundreds this way will make book a lot bigger than it needs
to be !!!. Line is added to current cursor position inclusive.

Thinking - is the computer allowed to think while it's the players turn (most
human chess players do!).

Hash Tables - Hash tables are large areas of memory used by computers to
remember things they've already thought about. The bigger the better, the main
hash is more important than the pawn hash. Clear hash is a debug feature (for
us) that makes the engine forget everything it's thought about.

Special menu
Hint - gimme one.

Test Positions -
  We have over 6000 solved chess positions, there are 1000 with the demo.
  Your Grade - will randomly select 20 of these and get you to try and come
up with the correct move. We then grade you on how many you get right and
how long it takes you.
  My Grade - the computer does the same as above.
  Goto Next - Give up on current test.
  Terminate - Give up on suite.
  Load Position - load position number n. The correct solution will be shown
in the thoughts window.
  Load Suite - Load a new test suite.

Set Time -
    Blitz - game must be completed before this time, assumes 32 moves left
the whole time.
    Infinite - think forever, not much use unless you're a super-dimensional
being with a few eternities to waste, or you're testing chess programs.
    Average - Spend an average of this much time thinking, will think longer
if position difficult.
    Matching time - Try to make moves at them same rate the user is.
    Tournament - set the amount of time and number of moves till each of the
time controls, tertiary loops round indefinately.
    Exact time - Make moves in exactly this amount of time.
    Weak - 10 levels (No search, we just grade each of the initial possible
moves), level 1 is totally random moves. Don't use this option unless you
really don't know what you're doing.

Style -
Modify -
Allows user to adjust the way the computer thinks. The style dialogue
has three areas you can control, Dynamic adjustements affect how the program
develops it's pieces and tries to take control of the centre and so on. Static
adjustments affect the way the computer scores it's current position and thus
positions it's going to try to head towards in the future. Piece adjustments
adjust the relative values of the pieces. At the top are four effectors,
these affect a number of the fine controls (below) at the same time to make
the program more aggresive more defensive and so on the abbreviations are ...
(Defensive-Aggresive, Positional-Material,Safe play-Wild play and Centre control-
Flank control). If on exit things have been set to silly values, the user is
warned and the option to moderate the silly values is given. If a silly style is
in operation the offer draw option is disabled (not implemented yet) as under
certain circumstances the program will attempt to resign at move 0.
Search extensions -
These are the infamous Tal (or king attack) functions. There are a lot of them
and hopefully their descriptions are fairly self explanatory.
  Save current - saves the current style.
  Load - load a style.

Set clocks - This allows you set the time on the clocks, it won't let you do
this until it's out of the search. (You move or it moves)

Offer Draw - Allows user to ask for a draw.

Set draw - Allows you to set the level at which we consider a draw is ok (ie
at which we'll offer or accept), we never offer before move 40.

Pause - pauses the program for a bit.

Setup board - puts you in setup mode. Left clicking anywhere that isn't a valid
square or the menus will bring up a popup menu, from which you can select a
piece to put down, set to delete (cursor becomes X), clear the board, reset to
the start position or finish. If you pick up a piece, mouse becomes that piece
you put it down by left clicking on board. Right click while carrying a piece
will drop piece. When cursor is a + you can pick up and move pieces. You can't
setup illegal positions (engine isn't designed to play with 32 pawns and so on).

Database menu
See also screen clicking instructions at end.

Load Database - Open a new database, if one already open it's replaced with
this one, user is warned if old has been altered. Puts you into database mode
automatically after opening.

Close Database - closes the current, asks if changed.

Save - Save the database, assumes name. All visible games are saved. Visible
games are those not greyed out. Left clicking on a game will hide/unhide it.

Save As - Save the database, asks for a new name.

Split Database - split the database into a number of smaller databases.

Export/Import - Saves or loads the current database as a text file.

Database Info - allows you to edit the database comment and get info on the
database.

Verify - this verifies the integrity of the database, bad games are hidden.

Show hidden games - When on all games are shown in the list, hidden ones are
shown in grey. When off only visible games are shown.

Clear Filter - This makes all games visible.

Invert Filter - This hides all visible games and unhides all hidden games.
Useful when you've filtered a database for say Kasparov games and want to save
the Kasparov games to a new database and what's left minus the Kasparov games
to another database.

All Games -> Class - Used in conjunction with classification function (see
screen click section at end). This copies all visible games to all classifications
set as destinations.

Book menu
Opening Book - The opening book is a big file with lots of known move sequences
from the start position in it. This allows the program to execute the first say
10 moves without using any clock time up. If the book is set to some randomness
it also means that we'll allways start differently.

Book control - This allows you to set up the opening book. The main book is
hard wired to DATAFILE\OPENING.BOK, the second book can be changed by pressing
the set button. Each can be set to on or off, by using the tick box and the
order in which they're tried can be set. Show opening names affects the names
shown in the legal moves list. Choose line brings up a pick list of the
named opening lines we know of, these can be found in the file
OPENING.TXT in DATAFILE if anybody wants to add to them. This dialog also
gives the option of copy the chosen line to the current game. It's copied as
a variation from move 0. If a named opening is selected, the computer will play
down it while the human does. The line is shown with '>' to the left of it in
the legal move list.

Optimise Use - Suck it and see.

Make new book - This only works if a database is loaded. It makes a new opening
book from the current database (only visible games). It only adds games that
have a known result and don't start from altered start positions. The user is
asked for the maximum number of half moves to add to the book. The book is made
in two stages. The first makes a big file from the database. The second stage
optimises the book down to a far smaller and more optimal file.

New Personality - this is a special kind of book, the user is asked for the name
of a player, the database is searched for games by this player and each is
added. The games are added in a way where even lost games are given a positive
weighting, this is because if you want to play Kasparov you want him to play
badly as well as well.

Analysis menu
Right Mouse - controls what the right mouse does on the board
     Legal moves - click on a piece with the right mouse and all it's legal
moves are shown.
     Captures - highlights all pieces that can be cpatured by this piece.
On an empty square this will highlight all pieces that can be captured.
     Scribble - Scribble on the chess board with the right mouse. Move a piece
to clear scribble.

Warnings - Computer will warn you if you've left pieces hanging (ie unprotected).
Leave this feature off unless you enjoy being annoyed.

Solve for mate - Search for all mates from the current position up to n
half moves deep. This is fully Alpha Beta'd (search algorithm) and does about
1500 nodes/sec on my 486 without affecting the main search. The results
are tabulated into a pick list at the end escape cancels and only gives
results so far looked at.

Move Analysis -
  This is for people who like to scrutinise chess positions.
  Analyse mode - this enables/disables analyse mode.
  Hide all moves - Makes all moves (except first) in the legal move list
invisible to the engine.
  Show all moves - opposite of above.
  See legal move list clicking for more details.

Screen Click Stuff ---

Board - See right mouse menu item for right mouse. Setup for setup mode.
Left mouse on a piece picks it up (if it can be moved), move it to new square
and click again to put it down. If the piece has only one move it automatically
goes there. If you click on an empty square, if there's only one move to it
that move is made automatically else. The highest of the possible start piece
is highlighted, clicking on the square again will make this move else clicking
on an alternative piece to this square will automatically move that piece.

Inner Eye window -
Click on title to get a popup of the available graphs.
       Head - The head graphic - mouth shows absolute score, eyebrows show
direction score is going in (ie. Low score getting better = Unhappy mouth,
hopeful eyes).
      Search profile - This shows how many moves have been considered at each
depth. (ie if there are 20 moves at ply 0 and each of these 20 has 20 responses
by the time you've looked only 3 half moves ahead you've looked at 20x20x20 moves
, we of course don't do this, we only look at interesting moves. So the
search should be diamond shaped and not exponential triangle shaped if the
search is healthy.
      Move times - simply the amount of time spent thinking so far by each
player shown as a graph.
      Scatter - This shows how much the engine is thinking about certain
moves. By clicking on this a segment will appear and the mouse will tell
you which move this area of the graph corresponds to. Depth is measured
radially and black dots mean the engine considers the position inactive.

The graphs can also be sequenced through by clicking on them except scatter.

Captures -
  As above the title bar gives a popup.
  The graphs represent the score from white's perspective of each move as the
game progresses. To expand contract the scale right click on the graph and move
the mouse up and down. Scores as with the rest of the program are expressed in
terms of pawn values. (ie 1.1 means 1.1 times the value of a pawn)

Clocks - Click on clocks to toggle between graphical and text clock. In 3d if
graphics clocks is on the mouse is the clock (black for black to move, white for
white to move).

Comments - Left click here to edit the comment attached to the current move.
Hitting enter or clicking elsewhere will finish editing.

Legal moves - This shows all legal moves from this position with slider bar.
The slider bar can be used to see moves below the bottom of the window.
The move is followed by a score and then any extra information such as whether
the move captures is in the book or is part of a named line such as the Ruy Lopez.
The scores are ply0 scores ie. no search has been done to find them and so are
quite rough. They are sorted into order best first.
Clicking - Left mouse on the move will execute it if it's your turn.
	   Right mouse on the move will highlight it on the board.
	   Left mouse on the score will give you a breakdown of that score.
	   Right mouse on the score will make the move visible/invisible to the
engine (if Analyse Mode is on). It will appear in blue when invisible. This
means you can force the engine to only think about one move or a couple of moves.

The move list - you can scroll through this with the cursor keys and Home/End
moves can be deleted with the del key. If you create a variation by making an
alternative move a + appears next to the move if you now left click on this
move it brings up a small popup menu with alternative moves listed in it.
Left clicking on any other move takes you to it, left clicking on the current
move (the last move made in fact) highlights it, right clicking on any move
highlights it. The move list can be quick scrolled by holding down a cursor
key, only the board and move list are changed until a key has been released for
over 1/5th second.

Thoughts - small thinking (visible in info mode)
This shows
  the time mode + test position information if one loaded
  searching shows the move currently being considered,
  best shows the current best sequence (or best line) of moves thought of so far,
along with a score. The first move in the list is the move we think is best at
the moment, and all the moves following are what we think will happen if we
play this move. Clicking on a move in the best line will slowly show each of
the moves and then highlight the final move. Thus you can see how we think the
game will continue without having to work it out in your head.
A score of -0.8 means we think we are 0.8 of a pawn behind our opponent.

	   big thinking - this is the same as above just giving a lot more
information, (visible in techno mode).
  Each column of numbers represent a score breakdown of the move at the
top of the column. Thus if a best line went e2e4 followed by d7d6 followed by
g1f3 the scores below each move would represent what we thought of it.

In database mode.

The list of games can be scrolled through with the up down cursors, home end and
delete behave as expected. Left right cursors scroll through current game.
Holding key down quick scrolls.

The on screen buttons do the following
Goto - enter a game number to go to. Plus a lot takes you to end (also end key).
Filter - this allows you to a wildcard search for games fulfilling specified
criteria. The effects are cumulative. Ie you can do a search for games played
by kasparov or short, then do a second search on the result for games played
between 90 and 93 and so on.
Sort - sort the database into a specified order (uses quick sort so % completetion
bar is totally inaccurate)
Classify - Brings up a pick list of up to 5 categories. Switch to one click in
name (first entry to change it) right click in name to set it as a destination
go to any other classification (includes all games) right click on game to send
it to all classifications set as destinations, or use all -> class to put all
visible games in destination classes. This is used to take a big database then
take all games you're interested in and classify them, classifications are saved.
Get game - this gets the game currently being played and puts it into the current
database.
Edit game - this copies the current game to the main game allowing you to edit
it.
Changed games are shown with '*'s to their left. Games that have been classified
(unless in current classification) have a '>' next to them.
The changed game buffer has room for about 100 games. When full the user is asked
to flush the buffer (save it) before any more games can be added.

The program does do more, but I'll add these to this list as I remember them.

Troubleshooting
---------------

Graphics -

  N.B. These notes do not refer to the title animation, which should work on any
VGA card.

  As mentioned above we only work on SVGA cards at the moment. If you
get a message about not being able to work in VGA, try running the univesa
program do this by typing
uvesa\univesa
Then trying again.
If this doesn't work try finding a vesa driver for your SVGA card you should
have received one with the card. Vesa drivers are normally called something
like vesa.com.

Some newer VESA compatible cards such as the Hercules Graphite use strange line
widths in SVGA which we don't cope with at the moment. If you find the program
starts but everything seems to bunched near the top of the screen and you can't
read it this may be your problem. Look for a program with your SVGA card
software that emulates older VESA drivers. With the Graphite this is done by
loading a different VESA driver HG_OLD1.CRT.

There is sometimes a strange bug during startup, where if you move the mouse
before the pieces have appeared on the board the program may crash. The cause
of this is to do with the complexity of writing bimodal interupt handlers that
work properly, and will be fixed by release. The solution is not to move your
mouse during startup. This happens particularly when using virtual memory
(see below).

Memory -
  The graphics start but, the program reports out of memory errors or just
crashes.
  This is a big program so unfortunately it needs a lot of extended memory to
work properly. We recommend at least 3 Mb. It will just about work in 2.1Mb.
It's happy in 4Mb. You can find out how much free expanded memory you have by
typing mem at the dos prompt. You can make more memory by reducing the amount
used by other applications such as disk caches if you have one.

  If this fails you can run the program using virtual memory. To do this you
will need at least 4Mb free on your hard disk. If your hard disk is not drive
c:\ or this isn't the drive you wish to use, you will have to edit the file
called nomemory.bat and change c: to your hard drive.
  To run with virtual memory type.
nomemory
at the dos prompt.
  The program will run a lot slower in virtual memory and your hash tables will
automatically be minimalised.

  Finally don't run this program in a dos box under windows - it won't like it.
