home *** CD-ROM | disk | FTP | other *** search
- short: Amiga port with nice graphics (needs 2.0)
-
- Amiga GnuChess Version 1.0
- --------------------------
- Amiga-related portions Copyright (c) 1992 Martin W. Scott.
- All other code Copyright (c) 1986-92 Free Software Foundation.
- This program is governed by the terms and conditions of the GNU Public
- License. A copy should have come with this distribution. In that license,
- it is made clear that this program comes with absolutely no warranty.
-
- Okay, that's the legal/copyright guff over. This is a port of GNU Chess to
- the Amiga. It contains a nice graphical user interface (menus, use mouse
- to move pieces etc.) along the same lines as that done for another chess
- program on Fish disk 205. The advantages of this program over that one are
- that GNU Chess is a much stronger chess-playing program, and that the GUI
- of this program was designed with Workbench 2.0(+) in mind. Another
- advantage is that the older chess program crashes on my system (chais pas
- pourquoi) but Amiga GnuChess doesn't. From now on, I shall refer to Amiga
- GnuChess simply as AGC.
-
-
- Starting AGC
- ------------
- Firstly, AGC needs a few files in order to work. These should be located in
- the misc/ directory of where the program was started. You will need at
- least 1 megabytes of memory to run AGC.
-
- You may start AGC from the Workbench or CLI. A stack of 20000 should be
- more than sufficient for AGC. When started, a screen will be opened, and
- after a short delay, you will be presented with a menu from which to choose
- a playing level. Which level you choose depends on how fast your machine is
- and how good you are.
-
-
- Playing a move
- --------------
- Once the level is selected, the chessboard will be drawn on the screen. AGC
- will then read in the openings library if available, and prompt you to
- move. You may type the move in explicit algebraic notation (e.g. e2e4) or
- abbreviated notation (e.g. e4, Nf3, cd), or if you are smart, use the mouse.
- When typing in moves in abbreviated notation, piece-letters must be entered
- in upper-case. This is to stop ambiguities like b5b4 == B5b4: the former
- says move the piece on b5 to b4, whilst the latter says move the bishop on
- row 5 to b4.
-
- I have opted for a drag-approach when using the mouse; click down on the
- left-button over the piece you want to move, and move the mouse to the
- destination square, whilst holding the left-button. Then release the
- left-button. If the move is valid, it will be played, otherwise an error
- message will appear to the right of the board. To abort playing a move,
- either play an illegal move, or release the left-button over the piece you
- are moving.
-
- You can use the mouse for all valid moves except pawn promotion; due to the
- way the Amiga driver was implemented (see below) you have to type in such
- moves using explicit algebraic notation, specifying what to promote to,
- e.g. b7b8q to get a queen. I may change things to allow use of the mouse,
- but don't hold your breath.
-
- Once you have made your move, AGC will think a little, then respond.
-
-
- The Menus
- ---------
- A brief overview:
-
- Project Menu:
- -------------
- New game: Starts a new game. resets clocks and some options.
-
- Load game: Loads a previously saved game. If you have
- reqtools.library installed on your system, a file
- requester will pop up.
-
- Save game: Saves the current position for subsequent loading.
- Take a peek at a saved game-file to see what stuff
- is output. Note that no changes have been made to
- the format for the Amiga version of GNU Chess.
-
- Create listing: Outputs a listing file. Not really useful unless
- debugging options have been compiled in to AGC.
- They haven't.
-
- Edit board: See below.
-
- Help: Brings up a help screen. Press a key to get back to
- the game.
-
- About: Brings up a requester telling you a few things
- about AGC.
-
- Quit: Exit AGC.
-
- Settings Menu:
- --------------
-
- Select Level: Brings up the playing-level menu you saw when you
- started AGC.
-
- Change colors: Brings up a palette requester, only if you have
- reqtools.library installed.
-
- Save colors: Save your color preferences to GNUCHESSDIR (or the
- default directory).
-
- Toggles Menu:
- -------------
-
- Reverse board: Changes orientation of chessboard.
-
- Coordinates: Draw coordinates around chessboard.
-
- Show thinking: Shows best line found, plus number of positions
- (nodes) looked at, and a nodes/second count.
-
- Random play: Slightly randomise the moves AGC plays.
-
- Beep after move: Produce an audible beep after AGC has played its
- move.
-
- Move Menu:
- ----------
- Go: Tells computer to play a move.
-
- Undo half-move: Take back last move.
-
- Undo whole-move: Take back last move, and one before that.
-
- Switch sides: Switch sides with computer.
-
- Input both sides: Lets you play both sides until you 'switch'.
-
- Redraw board: If screen becomes garbled (can't think why) select
- this item.
-
- Hint: Ask for a move suggestion. Of varying quality
-
- NOTE: Drag-selection of menu items is not supported; this is because of the
- nature of the interface between GNU Chess and the Amiga driver. Sorry.
-
- There are a few other things you can do (see the help page) but the menus
- cover most things. Consult other (standard GNU distribution) documents for
- details.
-
-
- Editing the board
- -----------------
- Sorry, but you can't use the mouse for this. A little menu appears at the
- side of the board. It's use is almost self explanatory. To put a piece on
- the board, type it's letter and the square coordinates, e.g. pd6 puts a
- pawn on the d6 square (its color depends on what the menu shows).
-
-
- Compiling AGC
- -------------
- I've used SAS/C 5.10a to compile AGC. While this is a fairly reliable and
- robust compiler, it does have problems with large UNIX applications.
- Version 6 may or may not overcome the difficulties outlined below, but I
- don't have it yet.
-
- The main philosophy of the Amiga stuff added was that the generic GNU Chess
- code remain unaltered, so the Amiga routines were added to be seamless to
- the program. This has the advantage that future versions of GNU Chess may
- hopefully be adapted easily to the Amiga driver.
-
- Changes Made
- ------------
- Firstly, transposition tables are out. When compiled in, the search routine
- would sometimes score a line as about 20000 (abs(score) should be < 10000),
- thus making it think it has found a really great move. Mostly it wont be.
- This is surely not a bug with GNU Chess, but with the compiler -- such a
- whopper would never have got out...
-
- Secondly, Easy mode is permanently on, since SAS/C doesn't have the full
- complement of signals and because it would be difficult to implement with
- the Amiga driver. (Easy mode off means that the computer thinks while you
- do.)
-
- If you are going to compile AGC yourself, don't use optimisation, since it
- produces incorrect code (in this program anyway). I have also compiled with
- no stack checking (I'm told its buggy) to speed things up a bit, so stack
- size should be set large enough (20K seems sufficient).
-
- On the subject of stack sizes, LC1 needs a biggish stack (about 30000
- bytes) to compile dspcom.c.
-
- I've made very few changes to the basic GNU Chess code, and those I have
- made are governed by #ifdefs mostly. The original makefile has taken a bit
- of a hammering, though. The amidsp.c is based on nuxdsp.c (fancy curses)
- of the standard distribution. I have not included that or any other files
- that are unnecessary to generate the Amiga version of GNU Chess. Other
- support stuff (for e.g. postscript printing of games) are available from
- the F.S.F. (and various ftp sites around the world).
-
- All Amiga-specific routines are in a subdirectory (amiga/) in the src/
- directory. The graphics were made in dpaint and converted using iff2c from
- an old fish disk.
-
- I decided to use reqtools.library (of which Nico Franτois holds copyright)
- rather than asl.library. This is because reqtools is better, and I needed
- it for the palette requester anyway. AGC runs without it, but I imagine
- that most aware users have it installed.
-
-
- Credits
- -------
- All credits mentioned here relate only to the Amiga portions of the source.
- See the standard distribution files for full credits.
-
- Firstly thanks to Steve Koren for SKsh, and Mike Meyer et. al. for Mg3. I
- was sorry to hear that Mike Meyer has dropped Amiga support for this
- program. If your reading this Mike, how about releasing whatever beta it
- was you had got upto before making this decision.
-
- Thanks must also go to Nico Franτois for reqtools.library, the authors
- of iff2c, Gauthier Groult and Jean Michel Forgeas, and to Jaba Development
- for GadToolsBox, the program used to generate the screen menus.
-
- Of course, all the people who collaborated to make GNU Chess what it is
- today deserve most credit.
-
-
- Distribution + Contact
- ----------------------
- AGC is freely-redistributable, but I am a poor student and so not averse to
- voluntary contributions :).
-
- Anyway, I would like to hear from you if you like AGC, and especially if
- you find a bug. Also, if you make any changes to AGC, I'd appreciate being
- kept informed if you distribute it. There should be no commercial gain for
- distribution of this version or others that you may make. Disk libraries
- and P.D. companies that charge only a nominal amount to cover costs are
- welcome to carry AGC on their lists. Magazines should request permission
- from the F.S.F. if they intend carrying AGC on a cover-disk - I'm not sure
- what the legalities are.
-
- You can contact me by postal mail at:
-
- Martin W. Scott,
- 23, Drum Brae North,
- Edinburgh, EH4 8AT
- United Kingdom.
-
- or by email: mws@castle.ed.ac.uk
- Note that I'll be making a transition to a new account in early October
- '92, so if any mail bounces, please try again a couple of weeks later.
- If it still bounces, then I've been allocated a different name, so try
- postal mail.
-
- Thank you for reading and enjoy!
-
- Martin Scott.
-
-