NORMAL:

Special note on "Header conversion skipped"

This is a warning message--not necessarily an invalid game. One might want
to check the condition of the game before putting it into your database.
More information has been added to the message to locate the game in
question but it is also handy to open the game file with ChessU4 (this
can be done when NORMAL completes but before you close its window). ChessU4
selects games by game number.

If the condition is not immediately apparent, look for things like extra
brackets [] or quotes (") within quotes. Non-ASCII characters will also
generate a warning since these are not accepted by PGN (or CBASCII).



=========================
 NORMAL.EXE Version 3.1.3     6/96  ASCII Chess Game Converter
=========================


Normal has two functions: it converts chess notation and game headers to a
standard syntax.

Normal operates on switch settings. A run can be custom-built to serve a
user's specific needs. Normal reads input (chess games) from one file and
writes the verified and converted games to an output file. Minor notation
errors--such as missing check, mate or capture--are corrected. Moves that
do not follow the rules of chess are flagged as errors.

Notation
--------
Normal accepts most algebraic notations including USCF, Long, Compact, and
Coordinate. Move numbers, except for the first (1.), are optional. Thus, the
following game could be converted...

1.f2-f3 e7-e6 b1-c3 f8-e7 g2-g4 e7-h4 0-1

All that was necessary was to affix the move number "1." and add the
terminator "0-1". The output notation will appear as standard USCF or
PGN (also known as "short algebraic").


Header conversion
-----------------
There are many formats of game headers--Normal deals with only two--NTR
format and PGN format.

NTR - Nunn's Text Reader Format - Sample games


  Player,A - Player,B
  Tournament 1994
  1.e4 1-0


  White,Charles (0900) - Black,Samuel (1000) [B35]
  London Chess Tournament 1881
  1.f3 e6 2.Nc3 Be7 3.g4 Bh4++ 0-1


PGN - Portable Games Notation - Sample games


  Pseudo-PGN

  [White Player,A] [Black Player,B] [Site Tournament] [Date 1994]
  1.e4 1-0


  Standard PGN (quotes required; first 7 lines required)

  [Event "Chess Tournament"]
  [Site "London"]
  [Date "1881.??.??"]
  [Round "1"]
  [White "White,Charles"]
  [Black "Black,Samuel"]
  [Result "0-1"]
  [ECO "B35"]
  [WhiteElo "0900"]
  [BlackElo "1000"]
  [Opening "Sicilian Defense, Accelerated Dragon Variation, Simagin Var."]

  1.e4 c5 2.Nf3 ... 0-1


The NTR and PGN formats above account for perhaps 80% of all chess games
published in ASCII form. Normal can also be used for other formats, such as
NIC, to verify and correct move notation. (For conversion of NIC game
headers, use shareware NIC2PGN.ZIP.)

Normal ALWAYS verifies and corrects notation. On the other hand, header
conversion is controlled by a "switch."

   convertHdrs=0	(default conversion set off)


Switches
--------
Switches set options. They determine the format of output, whether
annotations are left in a game and how they are treated, and whether
certain fields should be treated individually or combined. Switches set to
"1" activate a particular option. If set to "0" the option is turned off.

Some switches of note:

  bracketOut=0     (bracketed comments are not written to output)

  comLevelOut=0    (strips ?! move comments)

  bracketIn="[]"   (scan input for comments within [ ] brackets)

  braceTrans=1     (convert all outermost brackets to { } brackets)


Configuration files
-------------------
These are files which contain switch settings for customized runs. The
following file might be appropriate for converting NTR to PGN:

* FILE : N2PFIN.cfg
[fmtIn=NTR]
[fmtOut=PGN]
[bracketIn="{}"]
[bracketIn="[]"]
[bracketIn="()"]
[convertHdrs=1]
[comLevelOut=0]
[bracketOut=0]
[combSiteOut=1]

It does several things: for one, it scans for three different sets of
brackets, treating them as comments. The switch, bracketOut=0, tells Normal
to drop all the bracketed comments it has found from the output. Likewise,
?! move comments will also be dropped (comLevelOut=0).

If one desires to save annotations, then use bracketOut=1 and
comLevelOut=1. (These are also the defaults.) Another switch, braceTrans=1,
informs Normal to convert all outermost scanned brackets to { } brackets on
output. Beginning with version 3.0 this is likely not necessary since, if
fmtOut=PGN, any outer [ ] comments are automatically converted to { }.
Thus, if braceTrans is not specified (or omitted), outer variation ( )
brackets will be preserved.

The switch combSiteOut=1 (a default) tells Normal to combine the Site and
Event fields of PGN into Site. There is another switch, combEventOut=1
which will combine both fields into Event. To keep the Site and Event
fields separate, be sure to include the switch, combSiteOut=0.

Here's a configuration file for going in the opposite direction from the
one above, It converts PGN to NTR:

* FILE : P2NFIN.cfg
[fmtIn=PGN]
[fmtOut=NTR]
[bracketIn="{}"]
[bracketIn="()"]
[convertHdrs=1]
[comLevelOut=0]
[bracketOut=0]

A run using P2Nfin.cfg will convert games and headers to the syntax used by
Nunn's Text Reader (a ChessBase product). Note that all annotations are
removed.

Configuration (.cfg) files can also be updated from within Normal. Just
enter the configuration name (the extension can be omitted), then again
enter an asterisk (*) at the same prompt. This takes you to an editor.
Switches can be set with or without saving the changes to the current
configuration file--thus allowing modifications on a run-by-run basis.
To do so, just bypass the "Save?" prompt by hitting Enter.


Other Formats
-------------
By using convertHdrs=0, Normal will bypass any header conversions. This can
be used to verify notation in games having formats other than NTR or PGN.


Game Terminators
----------------
The only terminators recognized by Normal are 1-0, 0-1, 1/2, and 1/2-1/2.


Special Notes
-------------
Owners of Chess Assistant converting to PGN format for use with C.A.'s
PGN2CA.exe will want to specify combSiteOut=1 (now also the default). This
is because the Event field of PGN is put in the "Remarks" field of C.A.
instead of into "Place". Remarks will be lost if you subsequently print the
base back to PGN.


Hints
-----
Normal is quite forgiving of PGN headers on input. Thus the following
would be a valid game header:

[white Holmes,L][black Wilkinson][event cr Ch]

Even though the quotes are missing; the Result, Site, Date, Round, etc.,
and the fields are on a single line and out of order, it would still be
converted--or corrected if fmtOut=PGN. This knowledge is helpful if you
have a batch of new games that need formatting. Just edit in the [ ]
brackets. Be sure to also edit the output afterwards, changing the
[Date "????.??.??"] field appropriately to (say) [Date "1996.??.??"].

Command Line Run Parameters
---------------------------

Normal can be run from the Windows command line (Cntl/R) or by using "drag
and drop." (This also allows Normal to be called by a "shell.") A command
line entry might look like the following...

   c:\chess\normal.exe myFile.txt myFile.pgn normal.cfg

Then just click OK to run.

More samples (each should be preceded by "normal.exe"):

trial.txt trialout.txt normal.cfg  [typical full default]
trial.txt                          [same as above--defaults assumed]
trial                              [ditto; looks for 1 .pgn; 2 .txt; 3 .doc]
trial.txt * n2p.cfg                [ASCII->PGN writes back to input]
trial.txt * n2p                    [ditto; .cfg assumed]

WARNING: If running from the Command Line, there is no warning about backup
nor about overwriting the output file when Input = Output!

In all cases, never write back to input unless you have a BACKUP.


APPENDIX
--------

Normal switches

  fmtIn=[NTR/PGN]  - sets defaults; may be omitted
  fmtOut=[NTR/PGN] - sets defaults and output format; required

  1/0 Switches                  "On" function (switch=1)
                     ---------------------------------------------
  braceTrans=      - translates all scanned brackets to { } braces
                     (default is Off)
  verboseOut=      - insert space after period of move number
                     (default is Off)
  convertHdrs=     - attempt header conversion/reformat PGN from PGN
                     (default is On)
  bracketOut=      - pass bracketed comments to output
                     (default is On)
  comLevelOut      - pass ?! move comments to output
                     (default is On)
  combEventOut     - create PGN Event=Site + Event (clear Site)
                     (default is Off)
  combSiteOut      - create PGN Site=Site + Event (clear Event)
                     (default is On)
  expandECO        - create expanded opening name text (PGN [Opening "text"])
                     if ECO code is present (default is Off)
                     (Requires ECO index table)

                     value switches (fmtOut=PGN only)
                     ---------------------------------------------
  PGNTag=0           limit PGN header tags to basic 7
  PGNTag=1           appx. PGN spec. (default)
  PGNTag=2           pass WhiteTitle/BlackCountry, etc.; handle LongECO;
                     allow up to 4 "unknown" tags
  PGNTag=3           similar to PGNTag=1 but WhiteTitle/BlackCountry
                     converted to abbreviations on player tags

                     bracket switches
                     ---------------------------------------------
  bracketIn="{}"   - Scans incoming notation for { } brackets and treats
                     any enclosed text as a comment
  bracketIn="[]"   - as above but scans for [ ] brackets

  bracketIn="()"   - etc. Other brackets could be used such as "<>", etc.

                     Note* if braceTrans=1 then all incoming brackets are
                     converted to { } on output.


Comments, suggestions, bugs? Contact:

  Paul W. Onstad, INTERNET:70641.3236@compuserve.com


NORMAL.EXE is now shareware. See the ReadMe or U4Key.txt file for
registration information. Non-validated copies (limited to 500 games) can
be freely distributed. The only restriction is that Normal should not be
modified, and, if posted elsewhere, should be accompanied by this ReadMeNM
file plus the other accompanying files--U4Key.txt, ReadMe.txt, Normal.cfg,
and the sample tutor file, Trial.txt.

[end of file]







