From: kxgj@theory.TC.Cornell.EDU (Kirk Gunsallus)
Subject: X Windows interface to ICS available
Organization: Cornell Theory Center
Date: Thu, 9 Apr 1992 20:10:12 GMT


   Here is an X-Windows interface to the internet chess server ICS.  I am only
the distributor of this program so unfortunately I cannot help debug
problems you might experience.  It has been used on several machines and
most problems are worked out.  It allows mouse interaction with ICS
to speed up play and lessen entry errors.  More importantly, the board
is displayed graphically aloowing for easier (and better?) play.
It can be obtained by anonymous ftp from raj5.tn.cornell.edu (128.84.249.70)
in /pub file xics.tar.Z.  Type uncompress xics.tar.Z and tar -xvf xics.tar.
Below is a copy of xics.man.formatted which is included in the archive.

Kirk Gunsallus



     xics(PUBLIC)					  xics(PUBLIC)



     NAME
	  xics - X-Windows interface to	the Internet Chess Server

     SYNOPSIS
	  xics servername portnumber

     DESCRIPTION
	  xics is an X-Windows interface to the	Internet Chess Server
	  (ICS). ICS is	a program that allows players to connect to a
	  machine over the internet and	play games with	one another.
	  Normally, the	output of ICS is in ASCII format which
	  discourages chess novices from playing, as they find it
	  difficult to grasp quickly a chess board printed in ASCII
	  format.  xics	parses this output and displays	the chess
	  board	on the graphics	screen.	One can	use the	mouse to make
	  moves	(instead of typing them	in on the keyboard).
	  Currently, only a limited functionality has been
	  incorporated,	however, users interested in modifying the
	  code are encouraged to do so and distribute the code freely
	  to other ICS users.

	  xics initiates a telnet session with the specified host
	  (ICS)	and connects to	the given port number. It then opens
	  up a graphics	window displaying the chess board. Any board
	  position printed by ICS is parsed and	displayed by xics.
	  When playing a game, moves are made by clicking the mouse on
	  the piece to be moved	and then clicking the mouse on the
	  square where the piece is to be moved. xics will generate
	  the proper move (e.g.	a2-a4) and send	it to ICS via telnet.
	  The usual ICS	interface (via the keyboard) is	still
	  available.

	  You can use xics for watching	others play chess too. Simply
	  use existing ICS commands such as "observe number" and
	  "refresh" to print the board,	which will automatically be
	  displayed in the graphics window. Please note	that xics can
	  parse	boards printed using "style 1" (the default style)
	  only.

	  When invoking	xics, keep the xterm window from which you
	  invoke xics handy. You will need it for entering your	name
	  and password and most	ICS commands.

     AVAILABILITY
	  xics works only on UNIX(TM) machines running X-Windows. It
	  uses only Xlib and is	probably quite portable. I have	tested
	  it successfully on a Sun-3, a	Sun-4, a DecStation 5000 and
	  an IBM RS6000.

     TECHNICAL DESCRIPTION
	  xics creates a bidirectional pipe between itself and telnet.
	  This pipe is used to feed input to telnet as well as collect



     Page 1					     (printed 3/29/92)






     xics(PUBLIC)					  xics(PUBLIC)



	  output from it. xics multiplexes over	3 types	of inputs:

	  stdin	- whatever is typed on the keyboard is sent to the
	  telnet session

	  output of telnet - is	printed	on the screen as well as
	  parsed for displaying	boards graphically

	  mouse	clicks - are used to generate moves that are printed
	  on stdin and are also	sent to	the telnet session

     COMMANDS
	  In addition to ICS commands that can be entered using	the
	  keyboard, xics will allow the	following:

	  move pieces using the	mouse -- To move a piece, simply click
	  on it	and then click on the square where the piece is
	  supposed to move. This is irrespective of whether you	are
	  capturing a piece, or	simply moving a	piece to an empty
	  square or promoting it to another piece. When	the mouse is
	  clicked on a square, the corresponding position is printed
	  in the status	window (at the bottom),	so you know what you
	  are moving. When a move is made, no attempt is made by xics
	  to see if the	move is	valid. The move	is simply sent to ICS.
	  ICS will take	care of	ascertaining the validity of the move.
	  If the move is not valid, ICS	will print "command not
	  found". If the move is valid,	ICS will generate the new
	  board	and print it. xics will	grab this output and display
	  it on	the graphics board. Thus the check for correctness of
	  moves	is taken care of, indirectly.

	  Switch Sides -- Since	the notation "abcdefgh"	"12345678" is
	  always relative to white, if you are playing with black
	  pieces, simply click on the menu button "WHITE".  The	button
	  will change to "BLACK" and you can now play with black
	  pieces.

	  King Side Castle -- Simply click on the button "K CASTLE".
	  The command "o-o" will be sent to ICS.

	  Queen	Side Castle -- Simply click on the button "Q CASTLE".
	  The command "o-o-o" will be sent to ICS.

	  Quit -- When the button "QUIT" is hit, xics will send	"quit"
	  to ICS and will itself terminate.

     BUGS
	  None known, but doesn't mean there aren't any.

     LIMITATIONS
	  Several. Most	ICS commands cannot be executed	using the
	  mouse	(they have to be typed in); the	program	will work only



     Page 2					     (printed 3/29/92)






     xics(PUBLIC)					  xics(PUBLIC)



	  on UNIX(TM) machines;	its parsing abilities are dependent on
	  the output format of ICS; not	all output of telnet is
	  represented graphically, etc., etc., etc.

	  Perhaps the most serious limitation is that if the format of
	  ICS output is	changed, xics will cease to work unless	its
	  source is modified. Hopefully	the person who maintains ICS
	  will refrain from doing so.

     AUTHOR
	  Wishes to remain anonymous because he	is afraid that if his
	  identity is known, he	will have to support the program for
	  the rest of his life.

     COPYRIGHT
	  This software	is free	and can	be distributed freely without
	  permission. You can make modifications to it,	but please
	  don't	break the program!

     ACKNOWLEDGEMENTS
	  The bitmaps for chess	pieces were obtained from gnuchess.

     SEE ALSO
	  Answers to Frequently	Asked Questions	(FAQ) in the newsgroup
	  rec.games.chess on USENET.






























     Page 3					     (printed 3/29/92)