I wrote the IGS client for the Amiga (a long time ago). The only specs that were ever made available was a header file that listed client codes (both in use and obsolete). The server-client "protocol" consists of this: once the "toggle client on" command is sent, every line of text sent from the server is prefixed by the client code in ASCII. All commands from the client to the server are the standard command line commands. There is no handshaking, no error checking, and no guarantee that the client will receive data it is waiting for. This made it very difficult to write a robust client in the "good ol' days". I have attached the code I wrote to talk to IGS. I believe that this code is out of date because new client codes were added later. To figure out how to handle the new codes, you have to do what we had to do -- log all the text coming from the server and exercise the server by typing in all the possible commands in an attempt to have it send you a code you don't handle yet. Also you have to monitor a lot of games because several of the messages from the server are initiated by the server while you are watching and playing games. Have fun.
Attachment:
igc_server.c
Description: Binary data
Attachment:
igc_io.c
Description: Binary data