home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Share Gallery 1
/
share_gal_1.zip
/
share_gal_1
/
CO
/
CO029C.ZIP
/
CCHESS12.ZIP
/
CCHESS.DOC
next >
Wrap
Text File
|
1991-07-25
|
53KB
|
2,135 lines
CCHESS: IBM PC Conference Chess
----------------------------------
CCHESS: IBM PC Conference Chess
----------------------------------
Communications Accessory
----------------------------------
CCHESS is distributed freely and may be copied by anyone for any
number of machines. The author offers CCHESS as "shareware". If
the program is found to be useful or entertaining, a registration
of $50.00 is requested. If response warrants, CCHESS will be
enhanced and extended. The author may be reached at:
CABER Software
R. (Scott) McGinnis
P.O. Box 3607 Mdse Mart
Chicago, IL 60654-0607
PLINK, GEnie id: TARTAN
Version 1.2: 880705
CCHESS: IBM PC Conference Chess
CCHESS version 1.2 is copyright 1988 CABER Software (R. Scott
McGinnis). All rights are reserved world wide, excepting redistri-
bution under the ShareWare concept. CCHESS is distributed freely
and may be copied by anyone for any number of machines, under the
ShareWare concept.
CCHESS is distributed as ShareWare. You may use CCHESS without
charge for the purposes of evaluating it's usefulness to your
purposes. It is suggested that this evaluation period be limited to
a few days of actual use. If you find CCHESS to be worth continued
use, then you are asked to pay for it. The payment is called a
"registration fee". Complete the included registration form and
mail it with your payment.
Registration of CCHESS includes the communications program COM-AND,
all published accessory programs (which currently are PC-VCO,
CBRIDGE, and CCOLOR), and several utilities (unPACKIT and unSTUFIT).
COM-AND, accessories and utilities are published separately. One
registration covers any and all of these programs.
By registering your copy of CCHESS (or any ShareWare product), you
are promoting and supporting the convenient distribution method and
free evaluation policy that brought you this copy of CCHESS.
If you have received this copy from a Users' Group, "Software
Library" or "SIG", and have paid a small fee (usually $3 to $10),
you have NOT acquired a registration or continued right to use
CCHESS. This fee was for the convenience of obtaining the diskette
with CCHESS on it. The fee does NOT apply to the registration fee.
You may NOT distribute CCHESS or it's documentation in connection
with ANY commercial venture, product, publication or service without
written approval. CCHESS may not be disassembled or modified
without express written consent.
CCHESS is supplied "as-is" with no warranties expressed or implied.
Neither CABER software nor the author will be liable for any damages
or lost revenues incurred through the use of this program or any of
its accessories and utilities beyond the registration price paid.
Version 1.2; 880705
CCHESS: IBM PC Conference Chess
Table of Contents
-----------------
I. Introduction .............................................. page 1
II. Running the program ....................................... page 2
III. CCHESS Display ............................................ page 5
IV. Services supported ......................................... page 6
V. CCHESS Commands using COM-AND .............................. page 10
VI. CCHESS Commands Standalone ................................. page 12
VII. CCHESS Main Menu ........................................... page 13
VIII. Beginning a Game ........................................... page 15
IX. Game in Progress ........................................... page 17
X. Saving and restoring a Game ................................ page 18
XI. Ending a Game .............................................. page 19
XII. Program Configuration (Alt-S, and Alt-P) ................... page 20
XIII. Program Requirements ....................................... page 23
XIV. Program and Author Information ............................ page 24
Appendices
----------
A. Switches and Parameters .................................... page 25
B. Files ...................................................... page 27
C. Messages ................................................... page 28
D. Save file format ........................................... page 31
E. Production Release ......................................... page 32
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 1
I. Introduction
A. What is CCHESS?
CCHESS for the IBM PC is an accessory program, intended to be
used with a 'base' communications program. CCHESS is integrated
into the included program 'COM-AND'. However, CCHESS may be used
with any comm program supporting a 'DOS gateway' that does not
break an established comm link.
CCHESS, used with network conferencing services such as People-
Link's PARTY, CompuServe's CB and GEnie's RTC conferencing,
provides a way to play chess with another person and 'see'
the game in progress.
B. This program
CCHESS Version 1.2 executes in CGA hi-res graphics mode, or in
Hercules graphics mode. A Microsoft Mouse is supported, if one
is available.
CCHESS may be copied freely and distributed to anyone for any
number of machines. The author offers CCHESS as "shareware". If
the program is found to be useful or entertaining, a registration
is asked. CCHESS will be extended and enhanced if response
warrants.
C. This document
This document describes the features of CCHESS. It will not
attempt to describe all the features of COM-AND (which are
available within CCHESS if used), or any other communications
program used. From time-to-time the assumption will be made
that COM-AND is used as the communications program, to high-
light the interaction between CCHESS and COM-AND.
Please do not take it that COM-AND is the only comm program
possible to use. Refer to the documentation provided with your
favorite comm program for a full discussion of its function and
features. They won't be available in PC-VCO, however.
Appendices here will provide details for very interested readers.
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 2
II. Running the program
CCHESS is an accessory program, and may be entered in one of three
ways: (1) it may be invoked through the accessory menu of the comm
program COM-AND, (2) CCHESS may be loaded itself (in which case it
will need to be able to load COM-AND) and (3) it may be loaded
'piggyback' (intended for use with the DOS gateway of other
communications programs. Each method is useful and will be
discussed separately.
A. Loading through COM-AND
COM-AND is invoked at the DOS prompt with the command:
------------------------------------------------------
"d>" COM-AND <options>
Where "d>" is the DOS prompt, and
<options> is (<parm> (<parm> ...))
where <parm> is either a switch or a parameter
Refer to Appendix A of the COM-AND document for a discussion
of switches and parameters.
------------------------------------------------------
Once COM-AND has been loaded, the usual sequence would be to dial
a network service using COM-AND's dialing directory or script
language. When connection has been established, logon achieved,
and a conference area entered, then CCHESS may be selected using
the F1 Accessories menu.
COM-AND defines an 'accessory' as:
o A name which is displayed in the menu (as you like)
o A subdirectory for use during the accessory (optional)
o A script file to be performed (optional)
o A program to be loaded - along with parameters (optional)
COM-AND was supplied with several accessory menu entries set to
load CCHESS, to serve as an example. Once loaded, CCHESS is an
independent program, using the comm link established by COM-AND,
and also many of the COM-AND functions. CCHESS is 'integrated'
into COM-AND.
Note that settings (echo/blank line suppression/logging etc) made
in COM-AND carry over to the accessory when it is loaded, and
settings made in the accessory carry over to COM-AND when the
accessory terminates.
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 3
II. Running the program (continued)
B. Loading CCHESS directly
CCHESS may be invoked at the DOS prompt with the command:
------------------------------------------------------
"d>" CCHESS <options>
Where "d>" is the DOS prompt, and
<options> is (<parm> (<parm> ...))
where <parm> is either a switch or a parameter
Refer to Appendix A of this document for a full description of
switches and parameters.
------------------------------------------------------
When CCHESS is run from the DOS prompt without the '/P' switch,
it looks for the COM-AND program on the current subdirectory (or
in the subdirectory indicated by a 'COM-AND=' environment
variable). CCHESS will not run (without the '/P' switch) unless
it can find COM-AND. CCHESS loads COM-AND and execution proceeds
on the CRT (COM-AND side) of the program.
Again, the usual sequence would be to dial a network service
using COM-AND's dialing directory or script language. When
connection has been established, logon achieved, and a conference
area entered, then CCHESS may be invoked using the F1 key.
Loaded this way, the F1 key simply serves to switch between the
two sides of the program (CCHESS and COM-AND). No menu of
additional accessories is available. All other features of
COM-AND are available, however.
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 4
II. Running the program (continued)
C. Loading CCHESS Piggyback
CCHESS may be run piggyback as follows:
------------------------------------------------------
"d>" CCHESS /P COMx <speed> <other options>
where COMx = COM1, COM2, COM3 or COM4 and
<speed> = 300, 1200, 2400, 4800, 9600
Refer to Appendix A of this document for a full description
of other options.
------------------------------------------------------
For example:
C> CCHESS /P COM1 2400
Used in this manner, CCHESS 'picks-up' a comm line already
opened and in use by another program. The 'COMx' and '<speed>'
parameters are not strictly necessary; however, their use is
recommended unless you ALWAYS use the same comm port and line-
speed on all systems where ever you go.
Note that Alt-X terminates CCHESS and simply returns you to
DOS when CCHESS is loaded piggyback. Alt-X terminates both
CCHESS and COM-AND when the program set is run without /P.
Once back at the DOS prompt, you must return to the comm program
you originally gatewayed - type 'EXIT' at the DOS prompt if your
gateway was originally to COMMAND.COM. Refer to the documenta-
tion provided with your comm program on the appropriate means of
returning from a gateway.
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 5
III. CCHESS Display
When the screen is placed into graphic mode, the screen is divided
into several areas. The top line carries the program version and
release number, and the Main menu. To the left of the screen is a
graphic representation of a chessboard. On the right is a scrolling
region of eight lines for text and a history of the game (if one
is currently in progress).
Initially the board is displayed from the point of view of the
player of the white pieces, with all pieces in their starting
position. You may setup a particular position with the 'Setup'
pulldown.
To begin a game you must have an opponent waiting. You select
'Start Game' on the Commands pulldown. You will be queried for
board position and other details. You will be asked to identify the
ID of your opponent. Your CCHESS program and your opponent's then
talk to each other, agreeing over the particulars. Your opponent
will be given a chance to refuse the set-up as you have it. If your
opponent accepts the setup, the game begins.
In conversation, when a speaker is identified (through the ID or
handle - see following) to be your opponent, moves are parsed from
received lines of text. Moves and game commands are displayed as
they happen on-line.
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 6
IV. Services supported
CCHESS is encoded to work with several network services and multi-
user systems. CCHESS parses every incoming line for an ID.
CCHESS's parser is 'automatic', in that you don't have to tell it
which system to parse.
The ID (or handle) parse begins after a carriage return from the
network. When the ID of your opponent is identified, chess commands
are parsed. The text is displayed if no command is parsed. If no
ID is identified the text is displayed. Blank lines (extra carriage
returns issued by the network) are not displayed by CCHESS because of
the limited text area (7 lines on a CGA).
CCHESS internal commands (such as moves) exchanged amongst opponents
are not displayed as text of a conversation. CCHESS does not know
if a text line is empty or not until the entire line is received.
CCHESS erases an empty text line (visible as an ID followed by no
text or followed by just a CCHESS command) and reuses the line when
end-of-line (carriage return) is received.
The CCHESS parser is only designed to deal with text issued within
the conversational area of one of the systems. The parser is
self-adjusting ... all of the supported formats will be taken as
conversation. [The automatic nature of the parser DOES produce some
false hits now and then. These do not interfere with CCHESS at all
in normal usage.]
The graphic side is not altogether appropriate for other uses, such
as reading your mail. For other uses, switch to the alpha side (F1
if you used COM-AND).
The following pages describe templates for IDs and handles as dis-
played on various systems (handles are assumed names which replace
or add to an ID). I have also included some notes on each system
and its use with CCHESS.
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 7
IV. Services supported (continued)
A. PLINK IDs and handles:
"(" <ID> ") " an initial "*" identifies handles
Example: (TARTAN) This is how a line would look on PLINK
PLINK does not report (to all in conference) when a customer
exits.
CCHESS is best used with echo off (the system doesn't echo what
you type). You turn echo off with the command /NOECHO. The key-
board buffer (controls pull-down) allows you to see your typing
locally if you need.
B. GEnie IDs and handles:
"<" [Handle] <ID> "> "
Example: <[Scott] TARTAN> This is how a line would look on GEnie
GEnie reports to all present the exit or termination of another
customer. CCHESS Version 1.2 does not use the report.
CCHESS is best used with echo off (the system doesn't echo what
you type). GEnie does not normally echo entered characters. If
you are echoing characters locally (alt-E) turn it off. Use the
keyboard buffer to see your typing.
C. SOURCE IDs and aliases:
<ID/alias> ": " -or- [nn] <ID/alias> ": "
Example: [22] TARTAN: This is how a line would look on SOURCE
The SOURCE reports to all attending the exit or termination of
another customer. CCHESS Version 1.2 does not use the report.
CCHESS is best used with echo off (the system doesn't echo what
you type). The SOURCE allows you to turn off echo by exiting the
SIG (entering command mode), setting half duplex (-> TERM -HALF)
and re-entering the SIG.
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 8
IV. Services supported (continued)
D. CIS handles:
"(" <Band> , <ID> ") "
where <Band> ::= (A!B)(N!NN)","
Example: (A1,TARTAN) This is how a line would look on CIS
CIS does not report (to all in conference) when a customer exits.
CCHESS is best used with echo off (the system doesn't echo what
you type). You turn echo off with the command /NOECHO. The key-
board buffer (controls pull-down) allows you to see your typing
locally if you need.
E. Delphi IDs and handles:
<ID> "> " where an initial "." identifies handles
Example: TARTAN> This is how a line would look on Delphi
Delphi does not report (to all in conference) when a customer
exits.
CCHESS is best used with echo off (the system doesn't echo what
you type). I recommend requesting help from an experienced
Delphi user to do this.
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 9
IV. Services supported (continued)
F. TBBS IDs:
"(" <node> ":" <ID> ") "
Example: (9: Scott McGinnis) This is how tbbs looks
TBBS does not report (to all in conference) when a customer
exits.
TBBS is still new to me; TBBS BBS's are multiuser (up to 16 lines
to a BBS), and provide a very comfortable conferencing facility.
I haven't discovered yet how to turn local echo off. CCHESS is
best used with echo off - if there is no such facility, I am sure
one will be added, just to keep the reading easy.
G. PROTOCALL IDs and handles:
"<" nn.nn <ID> ">"
Example: <04.21 TARTAN> This is how PROTOCALL looks
PROTOCALL reports to all attending the exit or termination of
another customer and various materializations and dematerializ-
ations. CCHESS Version 1.2 does not use the report.
CCHESS is best used with echo off (the system doesn't echo what
you type). You toggle echo off with the command /ECHO. The key-
board buffer (controls pull-down) allows you to see your typing
locally if you need.
I fully realize PROTOCALL is no more. But the parser still parses
its format.
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 10
V. CCHESS Commands using COM-AND
When CCHESS is loaded with COM-AND the following Alt'd keys are
available:
F1 Switch between text (CRT) and graphic modes. The switch
is not allowed if a game is in progress.
F10 Help screen. All currently implemented commands are
summarized on this screen. Any command may be executed
directly while this screen is displayed.
Alt-F10 DOS Gateway. If there is sufficient memory available, and
if the environment variable "COMSPEC" identifies a valid
.COM or .EXE file, CCHESS will load the program and execute
it. This normally is used to load a second copy of
COMMAND.COM for full access to DOS while a communication
session is in progress.
Ctl-End Send a Break. This sends a true 'break' signal.
Alt-B Redisplay (backscreen). The speed of the display may be
controlled using Cntl-PgDn (slower) or Cntl-PgUp (faster).
Alt-C Clear the screen.
Alt-D Dialing directory. The Dialing directory and file is
identical to that used by Procomm (version 2.x), to allow
files to be shared between the two programs.
Alt-E Toggle echo (full/half duplex). This function is also
invoked through the dialing directory (echo on).
Alt-F File directory. A mask is required - just as DOS DIR
command.
Alt-G Toggle blank line suppression. CCHESS will suppress blank
lines on the CRT side if you wish. This can be made a
program default through the Alt-O options menu.
Alt-H Hang-up. Hang-up the phone.
Alt-I Program information. Author information. Propaganda.
Alt-L Toggle CGA/EGA modes (if you have an EGA).
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 11
V. CCHESS Commands using COM-AND (continued)
Alt-M Define a macro for Alt-0 through Alt-9. The Macro defin-
ition file is identical to that used by Procomm (version
2.x), allowing Macros to be shared between the two.
Note: Although this menu can be used from either COM-AND or
accessory, macros are defined through COM-AND and changes
will be made on the COM-AND side.
Alt-O Options. Set controlling flags for COM-AND.
Note: Although this menu can be used from either COM-AND or
accessory, it really only effects COM-AND settings.
Alt-P Comm Parameters. Set baud rate, parity, number of data
and stop bits for use when COM-AND is initially loaded.
These settings are overridden by run-time switches.
Whatever the current setting, the dialing directory
overrides when it is used.
Note: Although this menu can be used from either COM-AND or
accessory, it really only effects COM-AND settings. Each
accessory has an Alt-P function as well accessible only when
the accessory is loaded with the '/P' switch.
Alt-R Redial the last number dialed. The program will redial the
last number dialed number until the function is terminated
(with ESC), or connection is made.
Alt-S Setup. Define initial program values, such as Modem initial-
ization, the Modem Hangup sequence, and file names.
Note: Although this menu can be used from either COM-AND or
accessory, it really only effects COM-AND settings. Each
accessory has an Alt-S function as well which may or may not
be accessible when COM-AND is loaded.
Alt-T Elapsed time. The time the program was loaded, and the time
the last call (Alt-C or Alt-R) was placed are displayed.
The elapsed time since the latest time is also displayed.
Alt-X Exit the program. The program may or may not hangup the
phone, depending on the modem. Note: COM-AND is also
terminated, no matter how you loaded CCHESS and COM-AND.
Alt-Z Toggle parity mask. The high bit mask is used only for text
received and displayed - it has no effect on XMODEM
transfers.
Alt-0/9 Send a Macro. A string of characters defined through the
Alt-M command described above is transmitted.
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 12
VI. CCHESS Commands Standalone
When CCHESS is loaded standalone (piggyback, /P) only the following
Alt'd keys are active:
Alt-C Screen Clear. Clear the text area.
Alt-L Toggle CGA/EGA modes (if you have an EGA).
Alt-S Setup. This menu allows setting a defaults used by CCHESS.
It is also available through the 'Controls' pull-down.
Alt-P Set Comm Parms. This menu provides a way to change default
communications parameters used by CCHESS ONLY when it is run
piggyback. It is therefore only available when CCHESS is
run piggyback.
Alt-X Exit the program. In this case (piggyback) only CCHESS is
terminated. You are returned to DOS.
When used in this manner, the pull-down menues are still available,
of course. Transcripting is the only function obtained through a
pull-down that is inhibited when CCHESS is run piggyback.
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 13
VII. CCHESS Main Menu
On the top line of the display in CCHESS there is a menu of key-
words. A keyword is selected (with the cursor keys or a mouse),
and a submenu pulled-down (with the return or right mouse button).
Submenu items are selected (again, with the cursor keys or a mouse),
and executed (with the return, space bar, or left mouse button).
Top-line menu items are selected with the Cursor right/left keys or
right and left motion with the mouse. When the cursor key is
depressed, the next menu item (in a circular manner) is highlighted.
The highlighted keyword is 'selected'.
A submenu is pulled-down with the Cursor-down key (or End, or PgDn,
or the left mouse button). A submenu item is selected from a
pull-down when it is highlighted by pressing the Cursor-down/up keys
keys repetitively. When the Cursor key is depressed, the next submenu
item (again in a circular manner) is highlighted. The highlighted
keyword is 'selected'.
A selected submenu item is executed with a Carriage Return. That's
the key with the silly arrow. When a submenu item is executed, the
pull-down is released (it goes back up?). Hitting the Space-bar or
the left mouse button will also execute the selected item.
A pull-down is released without executing any item with any of the
following keys: ESC, Home, PgUp, or right mouse button.
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 14
VII. CCHESS Main Menu (continued)
A. Controls
The 'Controls' pulldown allows you to select certain
control functions. Controls are:
. The board legend may be turned on and off
. The board may be viewed from either
Black's or White's side
. You may playback (and view) a saved conference
(this does not play a game).
. Transcripting may be turned on and off (if you
loaded CCHESS with COM-AND).
. Turn keyboard display on and off.
. Turn transcript hold on and off.
. Invoke CCHESS's Setup menu (Alt-S invokes COM-AND's
Setup menu if COM-AND is loaded).
B. Commands
The 'Commands' pulldown allows you to issue commands to
start and end games, and issue commands during your turn:
. Wait for a certain opponent (who will 'start').
. Start a game (when you have an opponent):
.. Start a new game
.. Restart from a saved position
.. Start a game, setting pieces by hand
. Save the current game and terminate the current
game in progress (only during turn).
. Resign the current game in progress (during turn).
. Offer your opponent a draw (during turn).
. Reject the last move transmitted (during turn).
. Resend the last move (in case it got lost).
. Switch to CRT mode (even if game is in progress;
(if a game is on, it will be terminated).
C. Setup
The 'Setup' pulldown allows you to setup board pieces:
. Reset the board to its initial state.
. Manually place individual pieces.
. Save the current position.
. Restore a saved position.
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 15
VIII. Beginning a Game
Conceptually, the hardest part of CCHESS to visualize (or to put
into words) is the beginning of a game. The bullets below perhaps
oversimplify the process, but make the process of beginning a
chess game on-line clear (I hope).
o You will need access to a network supported by CCHESS
(PLINK, GEnie, SOURCE, TBBS, PROTOCALL, CIS or Delphi)
and an ID on that network.
o You will need to logon to the network of your choice and
enter the/a conference area (a line, channel, room or what
have you).
o You will need to be on the graphics side (CCHESS). You
will need to set-up the board (using the 'Setup' pulldown).
o You will need to have an opponent present in the same
line/channel/room. Your opponent will need the CCHESS
program as well, or a well developed visual imagination,
and accurate typing skills (not recommended).
o Your opponent will need to select 'Await opponent' from the
'Controls' pulldown. Your opponent must specify your ID (or
handle or alias) as you will have it for the game. [Note:
you cannot change your ID/handle during the game.]
o You then select 'Start Game' from the 'Controls' pulldown.
You will be queried as to:
. The board - is it setup correctly?
. Are you going to play White or Black?
. What is the ID of your opponent?
o At this point, you will see a notice telling you that the
two programs (yours and your opponent's) are talking. Your
opponent will be shown the board, and be asked to accept the
game.
o If your opponent accepts the board as shown, the game is on,
and whoever plays White will be prompted for a move. If
your opponent rejects the board, you will be informed, and
have another chance to setup the board and 'Start game'.
When all this has been accomplished (most of it should seem natural
to those who spend much time on-line), the game is 'on', and the
first player to move will be prompted for a move.
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 16
VIII. Beginning a Game (continued)
Moves are prompted in the lower right hand corner (of the CGA
screen, and above the text area on a Hercules screen). A move is
entered as "<from> <to>" using standard notation. For example:
Our move: E2E4
would be King's pawn on 2 moved to King's Pawn on 4 for White, as
White's first move. Turning on the board legend makes the standard
notation easy to use (for those of us raised "P-K4").
When you are prompted for a move, you have a few other options as
well as the obvious one of entering <from> <to> square designations.
You can use the mouse to select the <from> and <to> squares, or you
might enter one of the following:
o-o Short castle
o-o-o Long castle
REJECT Refuse the last move
DRAW Offer a draw
SAVE SAVE the current position
RESIGN Exit the game
EXIT Terminate the game
Esc Hit the escape key
When you hit the 'escape' key, your cursor will re-appear in the
scrolling text area and you may type to your opponent (or anybody
listening/watching). When you enter a carriage return (or the Esc
key again), you will be returned to the move prompt.
You use the mouse to select <from> and <to> squares as follows:
o Select the <from> square with the mouse.
o Press the left mouse button to 'keep' that square.
o Select the <to> square you wish with the mouse.
o Press the left mouse button to 'keep' that square and send
the move to your opponent.
Backspace will erase your entry (entered through the keyboard or the
mouse). When you type a carriage return (or a second left mouse
button if you're using one), your move is verified and sent to your
opponent. [Note: CCHESS does not verify moves per se (it does not
help you play a better game, or avoid errors). CCHESS only verifies
that there is a piece of your color on the <from> square.]
Should line noise, or the inadvertent loss of your opponent (for
example due to 'call waiting') interfere with the exchange of moves,
you may resend your last move with the 'Commands' pulldown.
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 17
IX. Game in progress
Once the game has started, CCHESS supports the play by alternating
move prompts, first white then black, and so on. There are a few
limitations imposed by CCHESS when a game is in progress.
o You cannot switch to the CRT side (COM-AND) without
terminating the current game in progress. While a game is
in progress, the F1 key is inhibited.
o Should you encounter a program bug, or an emergency need
to switch to the CRT side, you may do so. The 'Commands'
pulldown allows a switch to CRT side - however, it will
terminate any current game in progress.
o You can playback received text (if you loaded CCHESS with
COM-AND) with Alt-B only when it is not your turn. You
will see transmitted and received CCHESS commands in the
playback, but CCHESS does not act upon them.
o Should your opponent loose a move (due to line noise or
what have you), you may resend your last move using the
'Commands' pulldown. Select 'Resend move'.
o You may reject your opponent's last move. You may type the
command 'REJECT' at your move prompt, or you may select
'Reject move' from the 'Controls' pulldown. However, no
more than one move may be rejected at a time... you may not
reject the move prior to your opponent's REJECT.
o Certain commands (EXIT/DRAW/RESIGN/REJECT) may only be
performed during your 'turn'.
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 18
X. Saving and Restoring a Game
You may save a game in progress at any time using the 'SAVE'
command entered at the move prompt (as described above), or the
'Save' option of the 'Setup' pull-down, or the 'Save and exit'
option of the 'Commands' pulldown. All three methods save the
current game (or board position if there isn't a game in progress)
in a disk file. If there is a disk file of the name you select, it
will be purged and the new position written over it.
When a position is saved, the following items are recorded:
o Timestamp of the save
o The current board position
o The current 'to move' value (if any)
o The game history (if any)
You may restore a saved position when no game is in progress, with
the 'Restore position' option of the 'Setup' pulldown. When you
restore a saved position, you will see the board as it was when
the save file was taken. You will not see the 'to move' value
unless you use the restored position to start a game ('START by
hand').
You may also restore a saved position when you initiate a game.
When you choose this option ('Restart saved game' of the 'Controls'
pulldown), the game as it was when the save took place is restored.
You will see the move log as it was when the save was taken (your
opponent will not, of course). You may select either color to play
from this point.
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 19
XI. Ending a Game
CCHESS offers several options for terminating a game in progress.
Please note that when a game is terminated, CCHESS does not
terminate. You may start a new game, switch to the CRT side (if
you loaded CCHESS with COM-AND), or just sit and puzzle. Game
termination refers only to CCHESS's tracking/display of a game.
A. Draw
You may offer your opponent a draw only on your turn. When
you offer a draw, your opponent will be queried for accept-
ance. If you opponent accepts the offer, the game is done.
If your opponent rejects the offer the game must continue.
B. Save and Exit
You may save the current position and exit the game at any
time. When you execute this option, your opponent will be
informed of the fact, and your opponent's game terminated as
well.
C. Resign
You may resign a game in progress when it is your move.
Your game is terminated, as is your opponent's.
You may save a game position after you have ended a game. This
allows you to save a game for later restart when 'call waiting'
knocks your opponent off-line.
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 20
XII. Program Configuration (Alt-S, and Alt-P)
A. Setup Screen (Alt-S)
1. Files
. Default Save file
When you save a position, you will be asked for a file name.
The file name specified here is used if you enter a blank
save file name to this query.
. Default Log
This file name will be used when you request transcripting
and enter a blank in response to the log file name query.
2. Timings and Values
. Millisecond loop
The millisecond loop value gives the number of LOOP instruc-
tions required to wait for one millisecond. This type of
timing function is used in CCHESS in several places: 1) to
to pace displays such as playback, and 2) for tone
generation. 260 is suggested for 4.77 Mhz clocks. 432 is
recommended for 8Mhz clocks. CCHESS will attempt to
calculate the correct value if you set it smaller than 10.
. Break delay
As noted above, the break delay is controlled through the
Millisecond loop value. This value "break delay"
specifies the number of "milliseconds" the comm line is
held when a break is issued (Cntl-END).
. Text Lines
You may set the size of the scrolling region for text.
Dedicated gamers will want less text, and more game history.
Buffs will want more talk and less game... Note that this
doesn't take effect until the next use of CCHESS.
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 21
XII. Program Configuration (continued)
A. Setup Screen (Alt-S) (continued)
3. Flags
. Initial advert
Turn off the advert after you've seen it. Just before you
register... This only effects standalone usage.
. Exit Query
Some people disdain the query "do you really and truly mean
it" when they type Alt-X. Some feel it mandatory. CCHESS
is distributed with exit query disabled. You may enable it,
if you're so inclined. This only effects standalone usage.
4. Save
You may change values for one execution of CCHESS, or you
may change them for all subsequent executions of CCHESS. If
you save values, the values you've saved will be used the
next time you run CCHESS.
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 22
XII. Program Configuration (continued)
B. Communications Parameters (Alt-P)
1. Rate + Parity + Data bits + Stop Bits
Baud rate, parity, number of data bits and number of stop bits
are specified in combination through the first 10 selections
on the Alt-P window. These selections are the only way you
may specify baud rate. Other parameters (parity, data bits,
and stop bits) may be set individually (below).
Do not change the current setting after you've connected to a
service. Make your setting here before you use CCHESS
on-line.
2. Parity, Data bits and Stop bits
Individual settings for parity, number of data bits and number
of stop bits comprise the next 7 items of this menu. You also
set these values when you create a dialing directory entry.
Again - do not change the current setting after you've
connected to a service. The settings on this screen are
effective only when CCHESS is run standalone. Changing a
setting here could disconnect you.
3. COM ports
The last four items on this menu are the candidates for COM
ports. Select the appropriate port for your modem. This item
is usually selected once, and then left alone.
4. Save
You save the current settings for the next execution of CCHESS
through the "Save" selection. Settings are saved to disk.
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 23
XIII. Program Requirements
This program can only function on an IBM PC or DOS compatible
machine. CCHESS does direct to screen buffer fetches and stores;
so compatibility is an important issue.
CCHESS supports CGA and Hercules. CCHESS uses a Microsoft Mouse if
one is available (not well, but it'll certainly get better).
CCHESS disk I/O is done through the 'Handle' oriented I/O routines
added to DOS 2.0. Therefore DOS 2.0 is a minimum requirement.
CCHESS (Version 1.2) requires 95K for itself. So you need 192. To
take advantage of the DOS Gateway (use another comm program) or to
use COM-AND, you'll need 384K.
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 24
XIV. Program and Author Information
This program was written using Microsoft Macro-Assembler. The
author likes assembler. Assembly language is an entirely appro-
priate vehicle for some of the program, and a not-inappropriate
vehicle for the rest of it. Everything, in moderation...
The author of this program is R. Scott McGinnis of Chicago,
Illinois. PLINK and GEnie ID: TARTAN. Comment and suggestions
(and criticism in moderation) are welcomed:
CABER Software
R. (Scott) McGinnis
P.O. Box 3607 Mdse Mart
Chicago, IL 60654-0607
For this program, I wish to thank my wife Elizabeth. She supported
me whole-heartedly in this effort. Without her belief in me I'd
probably be prospecting somewhere in the desert, talking to mules.
This program (Version 1.2) may be distributed freely with the caveat
that the Author information displayed at program termination is not
removed. If the program is found entertaining or useful, a regis-
tration of $50.00 is requested. Should response warrant it, I will
continue to develop and support this product.
Most of the hardware names and software names in this document are
trademarks or trade names of specific manufacturers.
Version 1.2: 880705
CCHESS: IBM PC Conference Chess Page 25
A. Switches and parameters
Program Switches:
/C 'CGA only': You may specify a CGA display only with this switch.
EGA and Hercules displays are inhibited. The default for CCHESS
is to automatically adjust to Hercules or CGA.
/G 'Force Hercules': You may force Hercules mode even if PC-VCO
doesn't think you have a Hercules board. However - use this
switch cautiously.
/H 'Hercules': You may specify a Hercules admissible with this
switch. This is the default.
/E 'EGA': CCHESS ignores the availablility of an EGA adaptor
unless you use this switch (EGA may be toggled within CCHESS
with Alt-L). CCHESS does not display a 'square' chess board
with EGA, but EGA does give considerably more room for text.
/P 'Piggyback': CCHESS will open the COM port in such a manner as
to retain another program's already opened line. When CCHESS is
exited, the previous state is restored. This is for use with
other communications programs having a DOS Gateway (e.g.
PROCOMM).
/X 'Debug mode': This switch enables certain resident debugging
keys. I do not recommend you use it. I document it only for
the VERY curious.
Version 1.2: 880705 Appendices
CCHESS: IBM PC Conference Chess Page 26
A. Switches and Parameters (continued)
Program parameters:
COM1 CCHESS uses the COM1 port
COM2 CCHESS uses the COM2 port
COM3 CCHESS uses the COM3 port
COM4 CCHESS uses the COM4 port
300 CCHESS uses port at 300 baud
1200 CCHESS uses port at 1200 baud
2400 CCHESS uses port at 2400 baud
4800 CCHESS uses port at 4800 baud
9600 CCHESS uses port at 9600 baud
EVEN CCHESS uses port with even parity
ODD CCHESS uses port with odd parity
NONE CCHESS uses port with no parity
DATA7 CCHESS transmits/receives 7 data bits
DATA8 CCHESS transmits/receives 8 data bits
STOP1 CCHESS uses and expects 1 stop bit
STOP2 CCHESS uses and expects 2 stop bits
Program switches require no delimiters. Parameters when contiguous
must be preceded by a blank. For example:
A> CCHESS 1200 Run the program for 1200 baud communications
A> CCHESS /P1200 Piggyback, 1200 baud
A> CCHESS /P 1200 Piggyback, 1200 baud
Program defaults are:
A> CCHESS COM2 300 EVEN DATA7 STOP1
Version 1.2: 880705 Appendices
CCHESS: IBM PC Conference Chess Page 27
B. Files
Program files: CCHESS expects the following files on the default
drive (and subdirectory)
CCHESS.DFT Parameter save area (Alt-S and Alt-P)
CCHESS will create this file if it is not found. CCHESS will auto-
matically update the .DFT file if the program version number is
different from the .DFT file version number. When CCHESS is loaded,
the old file format will be loaded. A new file will then be created
to replace the old file.
When a new major (e.g. 1.0, 1.0, ...) is released or when you move
CCHESS from one machine to another the previous .DFT file probably
should be purged (and recreated by CCHESS).
CCHESS also uses (if available) the following files:
CCHESS.SAV Default save position file
CCHESS.LOG Default log file name
Each of these file names may be changed through the ALT-S (Setup)
Menu. CCHESS currently implements the rule for file names: If the
given file name carries a drive spec (i.e. C:) or path (sub-
directory), the name is taken 'as is'. If neither condition holds,
the default drive and subdirectory are added to the file name.
Version 1.2: 880705 Appendices
CCHESS: IBM PC Conference Chess Page 28
C. Messages
Only for the technically inclined, I've included here the actual
messages CCHESS issues. These messages are ASCII, and when received
are expected to be prefaced by a parsable ID or handle.
AWAIT opponent: Transmitted when game is set to 'await opponent'.
CHESS: WAITING
=-----+------=
!
+----------------------> 15 bytes, literal ascii
START Game: Transmitted by initiator of a game. The receiver
must be 'awaiting opponent'. The transmitter awaits either
(1) ACCEPT or (2) REJECT messages from the receiver.
CHESS: START xyz<board><chksum>
=-----+----=-+++=--+--==--+---=
! !!! ! !
! !!! ! +----> 2 byte checksum, bin-ascii
! !!! !
! !!! +-----------> 64 byte board, bin-ascii
! !!!
! !!+--------------> 1 byte: Value 1/2 Unused
! !!
! !+---------------> 1 byte: Value 1/2 We are B/W
! !
! +----------------> 1 byte: Value 1/2 Who first
!
+-----------------------> 13 bytes; literal ASCII
ACCEPT game: Transmitted by receiver to initiator to accept START.
CHESS: GAME
=----+----=
!
+----------------------> 12 bytes, literal ascii
REJECT game: Transmitted by receiver to initiator to reject START.
CHESS: REJECT
=----+------=
!
+----------------------> 14 bytes, literal ascii
Version 1.2: 880705 Appendices
CCHESS: IBM PC Conference Chess Page 29
C. Messages (continued)
EXIT game: Transmitted by current player to signal abrupt terminate.
CHESS: EXIT
=----+----=
!
+----------------------> 12 bytes, literal ascii
RESIGN game: Transmitted by current player to resign game.
CHESS: RESIGN
=----+------=
!
+----------------------> 14 bytes, literal ascii
DRAW game: Transmitted by current player to offer a draw. This
message will be acknowledged by (1) OKDRAW or (2) NODRAW
CHESS: DRAW
=----+----=
!
+----------------------> 12 bytes, literal ascii
OKDRAW: Transmitted in response to DRAW message to accept
CHESS: OKDRAW
=----+------=
!
+----------------------> 14 bytes, literal ascii
NODRAW: Transmitted in response to DRAW message to reject
CHESS: NODRAW
=----+------=
!
+----------------------> 14 bytes, literal ascii
Version 1.2: 880705 Appendices
CCHESS: IBM PC Conference Chess Page 30
C. Messages (continued)
MOVE command: Transmitted by current player to indicate move. This
message rejected ad hoc by REJECT MOVE
CHESS: MOVE xxyy
=-----+---=-=+=+
! ! !
! ! +-------------> 'to' square, <alpha><numeric>
! !
! +---------------> 'from' square, <alpha><numeric>
!
+----------------------> 12 bytes, literal ascii
REJECT move: Transmitted during turn after 1st move
CHESS: REJECT
=----+------=
!
+----------------------> 14 bytes, literal ascii
Version 1.2: 880705 Appendices
CCHESS: IBM PC Conference Chess Page 31
D. Save file structure:
0 1 2 3 4 5 6 7 8
+-----+-----+-----+-----+-----+-----+-----+-----+---//
! 'C' ! 'C' ! 'H' ! 'E' ! 'S' ! 'S' ! <ver-rev> ! ...
+-----+-----+-----+-----+-----+-----+-----+-----+---//
8 9 10 11 12 13 14 ... 18
//--+-----+-----+-----+-----+-----+-----+----/ /----+-----+---//
! mm ! '/' ! dd ! '/' ! yyyy ! ' ' ! ...
//--+-----+-----+-----+-----+-----+-----+----/ /----+-----+---//
18 19 20 21 22 23 24 25 26
//--+-----+-----+-----+-----+-----+-----+-----+-----+---//
! hh ! ':' ! mm ! ':' ! ss ! ...
//--+-----+-----+-----+-----+-----+-----+-----+-----+---//
26 ... 76
//--+-----+-----+-----+----/ /----+-----+-----+-----+---//
! Col ! ToM ! 48 bytes reserved for future use ! ...
//--+-----+-----+-----+----/ /----+-----+-----+-----+---//
76 78 80 202 204
//--+-----+-----+-----+-----+----/ /----+-----+------
! Square 0 ! Square 1 ! ... ! Square 63 !
//--+-----+-----+-----+-----+----/ /----+-----+-----+
204 206 208 ...
//--+-----+-----+-----+-----+-----------+----/ /-----
! Log count ! White 1 ! Black 1 ! White 2 ...
//--+-----+-----+-----+-----+-----------+----/ /----+
<Ver-rev> Binary, Version * 256 + Revision
mm ASCII, Month number (01-12)
dd ASCII, Day number (01-31)
yyyy ASCII, Year
hh ASCII, Hour number (00-23)
mm ASCII, Minute number (00-59)
ss ASCII, Second number (00-59)
Col Color of saving player (0 = white)
ToM Color of player to move (0 = white)
Square <n> Binary, represents piece on square n
White 1 Binary, <from square #> <to square #>
Log count Binary, count of move log in bytes
Version 1.2: 880705 Appendices
CCHESS: IBM PC Conference Chess Page 32
E. Production release
This version, 1.2, is not a beta release. Beta testing of CCHESS has
proven it as a useful conference accessory. I thank Dave Thomas of
the GEnie Laptop RT for making a place for beta testing of this
program. This program will be extended ONLY if people downloading
this and reviewing it find it of interest... interesting enough to
use it and to report back to me difficulties and problems... and
interesting enough to register.
There are may be oversights and errors of omission in this program.
As this is the third public release, I expect there'll be cosmetic
requests as well as functional requests. Previous releases of CCHESS
were labelled beta releases. This version is not. In the following
weeks (months) I may address the following matters:
o Coronation (Piece promotion)
o REJECT more than one layer of moves
o A protocol for move exchange (receiver ACK's each MOVE).
o A chess clock.
o Playback of a saved game.
Each of these matters are areas I would appreciate other's opinions.
For example, a protocol for move exchanges would ensure that moves
are received by the opponent, and ensure you are informed of a lost
move. However - what should be done at that point? Experience may
show that no such protocol is required - or experience may leave some
very frustrated gamers.
The comments and criticisms I receive will be used to guide the
development of the next version and further versions of this game.
When I feel that the program is satisfactory (to its users), I'll go
on to produce a version of CHECKERS and a version of BACKGAMMON for
on-line use.
Please address any comments and criticisms you have - and bug reports
to the ID TARTAN on either the GEnie or PLINK systems.
Version 1.2: 880705 Appendices