     xics(1)                                                             xics(1)

     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.  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). The default port number is 5000.

          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 releasing the
          mouse on the square where the piece is to be moved to. 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. Use existing ICS
          commands such as "observe 0" 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" or "style 8" 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 otherwise quite portable.

     TECHNICAL DESCRIPTION
          xics creates a bidirectional pipe between itself and telnet. This pipe
          is used to feed input to telnet as well as collect 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 stdout
          and are also sent to the telnet session

                                        - 1 -          Formatted:  June 22, 2000

     xics(1)                                                             xics(1)

     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, drag it to the
          destination square. This is irrespective of whether you are capturing
          a piece, or simply moving a piece to an empty square, capturing a pawn
          "en-passant", or promoting it to another piece.  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. One can castle by moving the king to the proper
          destination.

          Play -- This button can only be used to respond to match requests from
          other people. If you want to ask a match with someone else, you need
          to use the keyboard.

          Flag -- Sends the command "flag" to ICS.

          Refresh -- Sends the command "refresh" 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 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
          modifying the board style.

     AUTHOR
          Shirish Chinchalkar (chinch@cs.cornell.edu) gets the blame for helping
          people waste their time playing chess instead of making them spend
          their time doing more productive work.  Urban Koistinen (md85-
          epi@nada.kth.se) modified the program so that one could move pieces as
          in xboard.  Nelson Minar (nelson@reed.edu) modified telnet.c to take
          care of the tty and busy wait problems. Patrick Surry
          (pds@epcc.ed.ac.uk) added code to display a continuously ticking
          clock.

                                        - 2 -          Formatted:  June 22, 2000

     xics(1)                                                             xics(1)

     COPYRIGHT
          This software is free and can be distributed freely without
          permission. You are more than welcome to make modifications to it, but
          if you want to share your improvements with the rest of the world,
          send me a copy of your code.

     ACKNOWLEDGEMENTS
          The bitmaps for chess pieces were obtained from xboard and xchess.

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

                                        - 3 -          Formatted:  June 22, 2000