From: styamane@fish.Princeton.EDU (Stanley T. Yamane)
Subject: Introduction to ICS
Followup-To: rec.games.chess
Summary: Explain the basics of ICS
Originator: news@ernie.Princeton.EDU
Organization: Princeton University
Distribution: usa
Date: Tue, 7 Apr 1992 19:36:11 GMT

Greetings all,

At some point, someone asked for a helpfile for ICS.  It sounded like a
good idea at the time, but I haven't seen one pop up on rec.games.chess 
as of yet.  So, I took some time a couple of days ago and compiled this 
short help file.  I hope that it will prove useful to people who have 
thought about trying ICS, but haven't done it yet.  Comeon and join in
the fun!

Many thanks to Richard Nash for reading over the first draft and correcting
the errors he found within.  Further suggestions are welcome, and if the
file changes sufficiently, I'll repost at a later date.

..Stan (styamane@phoenix.princeton.EDU)
------------------------------------------------------------------------

         A simple helpfile for ICS (Internet Chess Server)

Note: This file does not try to be a complete helpfile for ICS, but rather
 a simple introduction for people trying ICS for the first time. Suggestions
 corrections and improvements are welcome. (styamane@phoenix.Princeton.EDU)

Contents:
---------
I.   Introduction
II.  Quick Start
III. Really Useful Commands
IV.  More-or-Less Complete Command List

=======================================================================
I. Introduction

     The Internet Chess Server (ICS) is an online service whereby anyone 
with the ability to telnet to another site can play chess with opponents 
from around the world.  

     ICS was started by Michael Moore (mmoore@peruvian.utah.edu) who
wrote the first version of the code, and put up the first server (the now
defunct lark.utah.edu).  The code is currently maintained by Richard
Nash (nash@visus.com).

     There are currently 2 ICS chess servers in operation:

        Name         		IP Number		Location
	eolf.iit.edu 		(192.41.245.90)  	Illinois
	eve.assumption.edu	(192.80.61.5)		Massachusetts

=======================================================================

II. Quick Start

From a machine running UNIX on the internet, type:

telnet <servername> 5000
example: telnet eolf.itt.edu 5000

[The port number 5000 is sort of a 'magic number'.  New servers are not
 required to use it, but so far everyone has (mainly for consistency)]

Shortly, a screen will come up offering you the chance to login.  If you
are a first time user, type in any name.  If the name is not in use, the
server will let you in after you give it 'guest' as the password.  A 
message will also come up informing you of how to become a registered user.
(Don't worry, it's free.  You just have to send e-mail to the server
administrator)

Getting a game:

Step 1) Find someone to play with
----------------------------------------------------------------------
The 'who' command tells you who is online right now.

A typical 'who' looks like this --
Players			Standard		Blitz
-------			--------		-----
 X [reg] Desmodus 	(29 /15 /5  : 1801)	(67 /65 /37 : 1726)
 1 [reg] prabhu		(194/202/29 : 1766)    	(302/343/44 : 1622)
  o[unr] Mackey		(0  /0  /0  : UNR)     	(0  /0  /0  : UNR)
 1 [unr] Englishman     (0  /0  /0  : UNR)     	(0  /0  /0  : UNR)
   [unr] patzer		(0  /0  /0  : UNR)     	(0  /0  /0  : UNR)

 ^^-- This column has the most important information in it. 


    Symbol   Meaning
----------   ----------------------------------------------------------
         X - This person is currently not accepting games.  In the example,
	     Desmodus is not accepting games.
Any number - This person is involved in a game.  Games on the server are
             numbered.  In the example, prabhu and Englishman are involved
             in game #1.
         o - This person is observing a game [see the observe command]
	     In the example, Mackey is observing a game
     blank - This person is not involved in a game.  In the example,
	     patzer is not playing a game.

Step 2) Offer a match
-----------------------------------------------------------------------
The 'match' command offers a match to your selected person.  The syntax
is:

match <name> <time>

example: match patzer 15

Would request a match with patzer (who we noted wasn't currently playing or
observing a game) with time controls of 15 minutes per person in which to
complete the game.  Note: This is the only form of time controls currently
understood by ICS.

If someone requests a match with you, you will see a message like:

Unregistered standard match in TIME requested with NAME
Use <match> or <decline> to respond.

If you want the match, simply type 'match NAME TIME' where NAME is the
name from the request, and TIME is the time from the request.  If you 

do not want the match, simply type 'decline'.

Step 3) Moving your pieces
-----------------------------------------------------------------------
     ICS accepts move notation in either algebraic or coordinate/
absolute notation.  Absolute notation would notate moving the White 
King's pawn forward two squares (P-K4) as "e2-e4".  Algebraic notation 
would notate the same move as "e4".  Moving the King's Knight to King's 
Bishop 3 is either "g1-f3" in coordinate or "Nf3" in algebraic.  
     If you've never used notation before, you may find coordinate
notation to be easier.  Simply find the coordinates of the piece you
want to move (the board is labeled on the left side and bottom) and
type them in, letter then number.  Next type a hypen, and finally the 
coordinate of the square you want the piece to move to.
     For algebraic notation, you type a letter denoting the type of
the piece to move (nothing or P for pawns, N for knights, B for bishops,
R for rooks, Q for the queen, and K for the king) followed by the 
coordinates of the square you want the piece to move to.
     In both cases, to castle kingside, type 'o-o'.  To castle queenside, 
type 'o-o-o'.
     If you type a move, but ICS doesn't seem to register it, first
check that it is a legal move (you wouldn't be putting yourself in 
check, for example).  If so, check that there aren't two pieces which 
could make the move.  If there are, you need to add an additional 
number or letter to differentiate the two pieces or use coordinate
notation.  ICS responds "Unknown command" to an ambiguous move.
     For those of you familiar with algebraic notation, there are a few
differences in the form supported by ICS.  The 'x' denoting a capture is
not supported.  For example, "dxe" doesn't work.  Simply use "de" under ICS

Step 4) Winning and Losing
-----------------------------------------------------------------------
     ICS watches and will end the game at checkmate.  If you would like 
to offer a draw to your opponent, type 'draw'.  If your opponent also
types 'draw', a draw is agreed upon.  If you would like to resign,
simply type 'resign'. 
     Note that ICS doesn't know certain drawing and winning conditions.
For example, ICS doesn't know the 'sufficient mating material' rule, so you
can still lose on time, even if your opponent only has a king!

Step 5) Leaving
-----------------------------------------------------------------------
Simply type 'quit' and you will be logged off.  It is considered 
discourteous to logoff in the middle of a game.  If you have to
leave, tell your opponent ('say <message>' see: Useful Commands)
and either 'save', 'resign' or 'adjourn' the game.
=======================================================================

III. Really Useful Commands
-----------------------------------------------------------------------
Problem: My screen got messed up by line noise/too many messages/etc.
Type :  'refresh'

This command redraws the board.  It's useful if a lot of messages have
gone by (if you don't like the messages, quiet them down by typing 'quiet' 
and/or 'inform') or if line noise has messed up your screen.
-----------------------------------------------------------------------
Problem: I'd like to say something to my opponent
Type :  'say <message>'
example: say Hi there, nice to meet you.

This command sends the message you type in to your opponent.
-----------------------------------------------------------------------
Problem: I'd like to say something to someone else
Type :  'tell <name> <message>'
example: tell patzer Hi There, nice to meet you.

This command sends your message to the person named in <name>
-----------------------------------------------------------------------
Problem: The beep is making too much noise/causing people to look at me
Type :  'bell'

This command toggles the bell that sound after each move on or off
-----------------------------------------------------------------------
Problem: I don't like the way the board looks
Type :  'style'

There are a few different board styles built into ICS.  Type 'style' to
see a list.  Choose one, then type 'style <num>' where <num> is the 
number of the style you want to try.  Sorry, nothing graphic yet.
-----------------------------------------------------------------------
Problem: So who's really the best around here?
Type :  'best' or 'best blitz' or 'statistics' or 'statistics blitz'

'best' will show you the names and ratings of the best players on ICS.
'best blitz' will show you the best players at time controls of 1-10 minutes.
'statistics' will show you statistics about ICS players in general.
'statistics blitz' will show you statistics about ICS blitz players.
=======================================================================

IV. Complete Command List
-----------------------------------------------------------------------
Conventions:
 <XXX> = required parameter
 [XXX] = optional parameter

adjourn -
  Offer an adjournment.  Must be confirmed by other player.  Does NOT
  save game.
all -
  List all observers of the game you are currently playing.
assert -
  Assert a win over your opponent if they have gone net-dead.  You MUST
  have a material advantage of 7 points to use this. 
assess <name> -
  Assess the results of a game with the named player.  The named player
  MUST be logged on for this to work.  Only for registered players.
automail <e-mail address> -
  Sends your games to the e-mail address specified upon completion.
bell -
  Toggle the beep on/off.
best ['blitz'] -
  Lists the top 20 players.  'best blitz' lists the top 20 blitz players.
decline <'draw'|'adjourn'|name> -
  'decline draw' declines an offered draw.  'decline adjourn' declines an
  offered adjournment.  'decline <name>' declines a game with the named 
  player.
draw -
  Offer a draw to your opponent, or accept an offered draw.
flag -
  Call an opponent's time flag if their time drops below zero.
games -
  List all games currently in progress
help [topic] -
  Enter the help system.  'help' with no arguments give you an overview.
hold -
  Saves and adjourns a game when your opponent has gone net-dead.  
  Recommended.
inform -
  Toggle whether or not you receive information printouts about people 
  logging on and off the server.
last [name] -
  Without argument, shows the last 20 people who logged onto the server.
  Given a name, shows the last time that player logged on (within the last
  few hours)
legal - 
  Toggles the legal flag.  If legal is off, games played are unrated.
load <filename> -
  Load the game saved in the given file.  
mail <e-mail address> <num> -
  Mail the game moves from game <num> to the given e-mail address.
match <name> <time> -
  Offer or accept a match with the named player at the given time control.
moves [num] -
  Without argument, shows the moves for your current match.  Otherwise
  shows the moves for match <num>.
observe <num> -
  Toggle observing game <num>.
open -
  Toggle flag indicating whether or not you are accepting match requests.
promote <piece> -
  Pawns that reach the 8th rank are normally promoted into queens.  To
  underpromote to some othe piece, use this command.
quiet -
  Toggles whether or not you hear 'shout's.  
quit -
  Leave ICS
ranking -
  Currently this command is inactive.
refresh [num] -
  Without argument, refreshes your current game.  With a game number given,
  shows you the current position of that game.  For continuous updates, use
  the observe command.
resign -
  Resign a game to your opponent.
save -
  Save a game into the file <white player name>-<black player name> to be
  restarted later.
say <mesg> -
  Print a message on your opponent's screen.
servers - 
  Lists all servers currently connected to the ratings server.
shout <mesg> -
  Prints a message on everyone's screens.
shutdown -
  Only for use by the system administrator.
statistics ['blitz'] -
  Prints out statistics on the ratings of ICS members.  'statistics blitz'
  prints out statistics on the blitz game ratings of ICS members.
stats [name] -
  Prints out the statistics for one user.  Without argument, it prints out
  your statistics, otherwise it prints the statistics of the named player.
stored -
  Currently this command is inactive.
strength [num] -
  Prints out the material strength for both sides of one game.  Without
  argument, it prints out the statistics for your current game, otherwise
  it prints the statistics of the selected game.
style [num] -
  Without argument, lists the available board style on ICS.  Otherwise,
  it switches your display to the selected board style.
tell <who> <mesg> -
  Prints a message on the named player's screen.
thist [name] -
  Without argument, prints out the results of the most recent games on this
  server.  Otherwise, prints any recent results by the named player.
time [num] -
  Shows remaining time in a game.  Without argument, it shows the time 
  remaining in your current game, otherwise, the time remaining in the
  selected game.
uptime -
  Shows statistics on how long the server has been running, and how long
  it has been connected to the ratings server.
verbose -
  Toggles whether or not a visual board is sent as opposed to simply a 
  list of moves.
watching -
  Lists all the games you are currently observing.
who -
  Lists who is currently on the server.
=======================================================================