home *** CD-ROM | disk | FTP | other *** search
- -------
- CHESSBD
- -------
- (c) 1994, 1995 by Don Fong (dfong@igc.apc.org)
- Updated april 1995
-
- 1. GENERAL DESCRIPTION
-
- CHESSBD is a chess game reader (or "viewer") for Windows, similar to PGNRD
- by Keith Fuller. It can read "almost any" game file. It incorporates a
- heuristic parser that attempts to handle sloppy "natural" input and poorly
- specified formats. The goal --- not quite attained --- is to parse
- anything posted to the the rec.games.chess newsgroup, with no hand editing.
- For example, CHESSBD can more or less make sense of the "Shamkovich benchmark"
- posted by Steven J. Edwards in Jan 1994. However, some files cannot be
- parsed without hand editing.
-
- CHESSBD is shareware. See section 4 below for details.
-
- See section 6 below for installation instructions. See the online help for
- usage instructions, or for information about the syntax and heuristics used
- by CHESSBD.
-
- 2. FEATURES
-
- * Recognizes both algebraic and descriptive move notation, eg,
- p-k4
- p-n8=Q+
- e4
- e8Q
- * Accepts most known variants of "castling" notation
- oo
- 0-0-0
- * Disambiguates using +# (ep) indicators, etc
- nxp#
- * Recognizes PGN game headers
- [Event "..."]
- * Recognizes "natural" game headers of the form
- White: XXX Black: YYY
- * Handles nested variations between ()'s
- (14. Nxd5 Qxd5 (14...Nxd5 e5!))
- * Heuristically recognizes variations embedded in commentary text
- 15... d5
- If 15... dc, Black will be faced with the ...
- * Interactive "drag and drop" moves using the mouse
- * Interactive traversal of game tree
- * Works under Windows 3.1; uses color
- * Can function as an ICS interface via Winsock TCP/IP.
-
- 2.1. NEW IN CHESSBD 2.0
-
- Features added since first release as CHESSBD 1.0 :
- * ICS interface capability
- * Bug fixes (see section 7).
- * SAN compatible output.
- * Supports PGN [Setup "..."] tag.
- * Partial support for USCF standard headers
- * Improved dialogs for navigation and game selection.
- * Textport wraps long lines (%set wrapcol=NNN).
- * Create index files for faster reloading of large files.
- * Fairly complete options dialog.
- * Windows help file.
-
- 3. BUGS AND MISFEATURES
-
- * Makes NO attempt to fix incorrect input moves (eg by capitalization)
- or guess ambiguous moves.
- * Windows 3.1 only; will NOT run under 3.0 .
- * Inefficient, may run slow.
- * Uses Borland C++ 4.0 and OWL 2.0, therefore it exhibits the associated
- peculiarities and glitches.
- * OPTIONS dialog is weak and needs more work.
- * HELP file is weak and needs more work.
- * See also the section "Implicit Header Recognition Failures"
- in the "Parser Heuristics" help topic.
- * ICS functions are still somewhat immature.
-
- 4. ORDERING INFORMATION
-
- CHESSBD is shareware. If you find this program useful,
- please send a contribution of $5.00 or more to:
- Don Fong/227 Alta Ave/Santa Cruz, CA 95060 USA
- Thanks to everyone who sent $$ for CHESSBD 1.0 !
-
- Send bug reports and suggestions to:
- dfong@igc.apc.org
-
- Thanks.
-
- 5. ACKNOWLEDGEMENTS
-
- Thanks to Keith Fuller (PGNRD) who gave me advice on windowization,
- and to Daryl K. Baker whose windows port of GNUCHESS contained many
- instructive examples of how do do things.
-
- 6. INSTALLATION
-
- CHESSBD is a windows program; install it as you would any windows
- program. Decide what directory you want to put it in, and make that
- the startup directory for the program when creating the program item.
- Move the files chessbd.exe, chessbd.ini, chessbd.hlp, _chessbd.rc,
- and icsprofs.dat files into the same directory. If you are going to
- use custom .ini files --- for example, setting up your user-programmable
- buttons or menu items (see "About other .ini files" below) --- then
- put these files in the same directory too. See the online help for
- more info.
-
- You will probably want to edit the example ex_ics.rc script (and then
- rename it to be _ics.rc) to have your correct ICS login name and password,
- so the program can log you in automatically. You will probably want to
- edit the icsprofs.dat dialing directory to have your correct login name on
- the different servers, so the program can help you switch between servers
- easily. See the online help for more info.
-
- 6.1. INVENTORY
- chessbd.exe - the executable - required
- chessbd.hlp - winhelp file - required
- chessbd.ini - initialization - recommended
- _chessbd.rc - program startup script - optional
- icsprofs.dat - dialing directory - recommended
- nicok.ini - alternative pieces by nicok@IAEhv.nl
- (Nico Koolsbergen) - doc
- ericch.ini - alternative pieces by ericch@microsoft.com
- (Eric Churchill) - doc
- tinyscrn.ini - alternative chessbd.ini for small monitors
- smaller pieces based on design by Eric Churchill
- bigscrn.ini - alternative chessbd.ini for big monitors
- larger pieces based on design from Nico Koolsbergen
- ex_ics.rc - sample ics login script - doc
- dial_ics.rc - sample ics login script for direct modem
- connection - doc
- readme.txt - this file - doc
- qanda.txt - questions and answers - doc
- demofile.txt - sample games file - doc
-
- About chessbd.ini :
- You can edit the windows initialization file chessbd.ini (using an external
- text editor of your choice) to alter the appearance or operation of CHESSBD.
- Or you can use the program's Options dialog. You do not need to have a
- chessbd.ini file: the program will default to reasonable values in its
- absence.
-
- About other .ini files :
- If you want to try one of the alternative .ini files, you can either edit
- chessbd.ini to add the assignments from the other files, -or- you can add
- the other file to the command line when you invoke it from the program
- manager. (Eg, "chessbd nicok.ini" will read in nicok.ini after the normal
- chessbd.ini file.) You can specify multiple .ini files if you wish. They
- will be processed from left to right. The values in the rightmost (last)
- file will take precedence in case of a conflict. CHESSBD treats these
- files as read-only: thus if you change and save variables at run-time using
- the options dialog, the changes will be saved to chessbd.ini , NOT to these
- additional .ini files. This may or may not be what you want.
-
- About _chessbd.rc :
- The script file _chessbd.rc is read upon program startup. You can edit the
- file (using an external text editor of your choice) and add script commands
- to customize the program according to your taste. See the "Script Commands"
- "Option Variables" topics. You do not need to have a _chessbd.rc file.
-
- 7. HISTORY
- History of changes to CHESSBD.
- ----- feb 94
- first release as CHESSBD 1.0 .
-
- ----- mar 94
- bug fix - vertical bar
- garbage '|' char caused crash because it looks like a variation
- bug fix - board update
- board display not updated properly if user drags a piece w/ mouse,
- then drops it back on its starting location,
- then decides to drag another piece.
- bug fix - weak header, punct moves
- improper rejection of weak headers containing number comma,
- because it looked like a move.
- bug fix - W: B: header
- improper rejection of W: B: headers when W: and B: on same line
- enhancement - scrollbar
- added thumb tracking to move scrollbar
- cosmetic - colors
- changed default colors to be more pastelish
- ----- jun 94
- bug fix - W: B: header
- workaround for borland varargs bug
- enhancement - FEN
- recognize PGN's FEN/Setup tags
- enhancement - SAN
- add shortened algebraic (SAN) option (%set sanout=1)
- enhancement - HH:MM time notations
- recognize, treat as comments
- enhancement - $NAGs
- recognize them, treat as comments.
- ----- jul 94
- enhancement - wrapcol
- auto line wrap in the text window (almost working)
- ----- aug 94
- bug fix - easyvar mainline bug
- under some circumstances, the main line would be taken as a
- variation after an easy variation!
- bug fix - navigate dialog
- disable bc++ 4.0 OK/CANCEL misfeature
- enhancement - rearrange controls
- make game selection part of navigate dialog
- enhancement - improved game selection dialog
- listbox now scrolls horizontally; cancel+ok buttons
- disable +G and -G as appropriate
- enhancement - options dialog
- set options thru dialog
- enhancement - ini file
- options be saved to ini file, thru options dialog
- bug fix - real comment within implicit comment
- if a multi-line real {} comment occurred within an implicit
- comment, the program would not recover to the main line afterwards.
- ----- sep 94
- bug fix - memory allocation
- improperly freed mem could have caused corruption
- enhancement - open file
- can now "run" a file while another file is "open"
- can now "open" a file from with a "run" file
- (but not %open from within %open, or run from within %open)
- enhancement - scan file
- open cmd now adds files to game list without clearing it
- close clears the game list
- enhancement - drag & drop moves
- flicker-free piece dragging; target square indicator
- ----- oct 94
- bug fix - move scrollbar
- move scrollbar is now properly updated when adding moves
- via drag & drop
- change - ini vars
- got rid of separate "ini" table; ini vars are now just regular
- vars with a flag
- enhancement - piece motion
- simple chess moves can now be animated
- change - cmds
- cmd routines now "void" not "int"
- change - graphics change
- added "grchange" method to textport, nav dialog, etc
- enhancement - index
- added index file feature
- uploaded to caissa.onenet.net!
- ----- nov 94
- enhancement - for >1000 games
- implement ownerdraw listbox for selection
- enhancement - accelerators
- added accelerator stuff
- bug fix - esc in setup dialog
- enhancement - file dialogs
- now have memory of cur dir
- change - help
- clean up help file options section
- enhancement - material update flag
- display material balance in to-move string
- enhancement - saveall
- command to save all games
- enhancement - score line len
- when writing score, put multiple moves on same line
- - upto outlinelen
- change - speedup
- faster check testing
- change - cleanup
- muck with header files
- opt bug - in eng.c -O2 or -Ov seem to trigger (eng_extreme())
- workaround to defeat faulty optimization
- enhancement - piecechars
- now can set to different letters...
- change - bit fields
- use IPCLASS uniformly
- reorder bit fields in IDLOC
- reduce r & c bitfield sizes in IDLOC, to 3 bits!
- bug fix - repaint after dialog
- add UpdateWindow() calls to eliminate "flash effects" after dialog.
- bug fix - non-dos text files
- read input in binary mode
- (borland iostream messes up if reading a UNIX text file
- w/o '\r's in text mode)
- change - rename mainx.h routines for consistency
- change - cleanup naming of event stuff
- enhancement - search feature
- search in select game dialog
- change - use library for non-windows objects
- enhancement - edit game
- dialog to edit current game
- ----- jan 95
- enhancement - add ics stuff
- change - redesign chesswin --> msgbdwin
- put msgs in subclass of bdwin
- rearrange grchange stuff
- rearrange initialization stuff
- enhancement - ics cmds
- %icsinput %icsoutput etc
- enhancement - %cecho cmd
-
- enhancement - fixed output-over-input problem
-
- enhancement - textport
- noecho mode, beep on \7
- change to unix-like tty processing
- enhancement - added sysmenu to most dialogs
- add "ics arena match" dialog
- cleanup -
- eliminate obsolete MakeWindow() calls
- improve modularity
- bug fix - filtering overrun problem corrected
- change - disable viewer stuff in ics mode
- enhancement - resizable chatwin
- - save ics window layout
- ----- feb95
- bug fixes
- who dropping lines
- changes to match dialog
- change - move strings to text segment
- enhancement - resizable arenawin
- bug fix - ICS info dialog
- ----- mar95
- enhancement - automatically add people to chat combobox
- enhancement - make icsrawout work
- change - for FICS compatibility
- change - tweak dialog sizes
- version h
- bug fix - FICS match command
- enhancement - dialing dir
- enhancement - querylogout
- change - rename and renumber all ID's !
- ----- apr 95
- enhancement - capture dialog
- change - make various ICS buttons expand to internal commands
- instead of ICS commands - for generality
- change - get rid of "EDITLINE" class
- bug fix - add "." and "..." after move numbers in icsgames.pgn
- enhancement - adding direct modem support
- enhancement - user programmable menu
- change - use checkmenuitem instead of changing the item name
- enhancement - board scaling, mainwindow scaling
- version i
-