autowb version 2.1


Nicolas Cominetti


03/2003


CONTENT
-------

INTRODUCTION
USING AUTOWB2 WITH WINBOARD
USING AUTOWB2 WITH OTHER GUIs
USAGE NOTES
THIRDPARTY COMPONENTS
ACKNOWLEDGEMENTS
LIMITATION OF LIABILITY
HISTORY
TODO


INTRODUCTION
------------

Autowb is a Winboard driver for the Saitek Autoboard.

The Saitek Kasparov PC Autoboard is a wooden chessboard that can be connected to a PC via the parallel port. Ultimately it allows playing a game without even using screen and mouse, just by looking at the leds on the board and moving pieces on it.

This program is free software. Feel free to copy and share it.

If you want to get the sources or just send feedback/questions you can send me an email at: nicolas_cominetti@hotmail.com


USING AUTOWB2 WITH WINBOARD
---------------------------
To play against a chess engine using your autoboard:
- extract autowb2.zip for example in c:\autowb2
- connect the autoboard
- start winboard with autowb2 being one of the two engines loaded: 
    
	winboard.exe -fcp='autowb2' -fd="c:\autowb2" -xautoflag -scp...
	or
	winboard.exe ... -scp='autowb2' -sd="c:\autowb2" -xautoflag

  (I recommend disabling autoflag to avoid operator delays problems)

- select the "two machines" mode, wait 5-10 seconds to let the engine start (mandatory with some engines) and play your moves...

To play on Internet Chess Servers using the autoboard:
- extract autowb2 for example in c:\autowb2
- connect the autoboard
- start winboard with autowb2 being the first engine loaded and using zippy
    
	winboard,exe -ics -icshost=freechess.org -icsport=5000 -zp 
	             -fcp='autowb2' -fd="c:\autowb2" 
				 -xzt  -zippyAcceptOnly=0

For more information on Winboard (and Zippy) go to:
http://www.tim-mann.org/chess.html


USING AUTOWB2 WITH OTHER GUIs
-----------------------------

In general any host implementing properly Winboard I/II or UCI protocols should work by:
- importing autowb2 as a Winboard engine (or, if winboard is not supported, as a UCI engine using wb2uci)
- make sure to never use an opening book with autowb2
- start an engine vs engine match, one of the two being autowb2

Note that I have not tested all these configurations but in theory Autowb2 should work with the following chess GUIs:

- Arena: install autowb2 as a Winboard Engine
- ChessMaster (8000 or higher): install autowb2 as a Winboard Engine (with no book)
- ChessPartner/ERT: install autowb2 as a Winboard Engine (disable book)
- ChessAssistant: install autowb2 as a Winboard Engine (with no book)
- MCS (Genius 6.1 or higher): install autowb2 as a Winboard Engine (with no book)
- Fritz 7 / Shredder 6 / Hiarcs 8: create an empty book and install wb2uci.exe as a UCI engine that is using the empty book

Any feedback on success or problems with a specific interface is welcome.


USAGE NOTES
-----------

- This program is designed to work with Windows NT/2K/XP. It has never been tested (but since v2.1 might very well work) with Windows 9x/Me.
- To Castle, just move your king from e to c or g file as usual you will then be reminded to move the rook too.
- To take "en passant" move your pawn to the "en passant" square and you will then be reminded to remove the opponent pawn.
- When playing with autowb2, you will always promote to queen.


THIRDPARTY COMPONENTS
---------------------

This program uses several free software thirdparty components. By using Autowb2 you accept their respective license agreements.

WinIO: WinIO License agreement can be found in WinIO_lic.txt

"The WinIo library allows 32-bit Windows applications to directly access 
I/O ports and physical memory. It bypasses Windows protection mechanisms by using a combination of a kernel-mode device driver and several low-level programming techniques."
For more information on WinIO go to:
 http://www.internals.com 


Win32 pthreads: See license agreement in PThreads_lic.txt

This product is a port of the pthreads on Windows. It is provided under GPL.
For more information on Win32 pthreads go to: 
http://sourceware.cygnus.com/pthreads-win32

Wb2Uci:

For more information on Wb2Uci go to:
http://home.online.no/~malin/sjakk/Wb2Uci


ACKNOWLEDGEMENTS
----------------

- Tim Mann for maintaining and improving the best freeware chess GUI and for all the help he provides to developers interested in winboard/xboard.

- Yariv Kaplan for creating WinIO and making it free

- The Win32 pthreads development team for making my life much easier by using pthreads under Windows!

- Saitek for providing me level 2 specifications of the Kasparov PC Autoboard, for manufacturing this great device and giving me authorization to put this work in public domain.

- Odd Gunnar Malin for writing and distributing the WB2UCI adapter


LIMITATION OF LIABILITY
-----------------------

You must assume the entire risk of using this SOFTWARE. 

IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 

THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. 
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHOR HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 


HISTORY
-------
03/29/03   2.1 fixes and improvements
	- easy/hard implemented: if ponder is on then autowb uses more cpu and is being more reponsive (useful under CM8000 for example, if autowb is not responding well enough then switch ponder on)
	- winboard v2 protocol: support of 'setboard' (allows for instance to resume a game adjourned on ICS)
	- autoboard display improvement: the 'from' square led remains on util another square is reached
	- fixed several bugs where in some cases castling (or even another king move) was simply prohibited by the program even if the move is valid
	- upgrade to latest pthread-win32 release
	- IOs are now using WINIO functions instead of assembly or native functions. That should make everything work with all versions of Windows Windows9x/Me/NT/2K/XP...
	- added an icon :o)
	- build support for MinGW
	- redesigned the development enironment to allow build from free tools only (no more tied to MSVC)
	- fixed a synchronization bug occuring when a command is received while a move is still buffered waiting to be played on the board.
	- fixes a problem using winboard with engines trasmitting san moves (for example crafty should work fine now)

11/02/02 2.0 Almost complete rewrite
	- builtin move generator
	- multithreaded (asynchronous winboard/autoboard IOs using pthreads lib)
	- optimized autoboard management
	- built-in Windows NT/2K/XP LPT device driver (WinIO)
	- Added UCI support (using thirdparty program)
	- Support of most recent chess GUIs

08/01/00 1.3b Fritz GUI support
06/23/00 1.2b Speed and playability improvements
04/15/00 1.1b Edit command (position setup) support added
	      Handle of 'result' command
	      ICS support tested and improved
04/01/00 1.b initial beta release, basic winboard support


TODO
----

Linux: Since 2.0 rewrite the Linux port is no more available, I have to do it again.
