This is the history of PARCP development:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

2.62 - 29.07.1997
=================
- PARCP clearly displays which configuration file is used now.


2.60 - 22.07.1997 - PARCP has become keyware, PARCP cable is available
=================
- PARCP now recognizes two new directives in the CFG file: Username and
  Keycode. You'll get the keycode when you register.

- thanks to idea from Ivan Dimbleby I asked Titan Designs if they could
  make the PARCP cables for PARCP users. They agreed, so now you can order
  the PARCP cable at them, hopefully. Read the documentation for more
  informations.

- Sorting has been rewritten to eat less memory. It may however still be
  too slow on 8 MHz machines - please check it out, I still can optimize it
  a bit

- fixed priority bug - the $PARCPDIR had a higher priority than the -f
  command line option by a mistake. Now it is fixed, so you can really use
  the configuration file you point to with the -f option even when the
  PARCPDIR variable is set. This allows you to have one most used
  configuration which the PARCPDIR points to and one or more less
  frequently used config files which you can select by the option on the
  command line of PARCP.

- some little fixes and enhancements (Client should get all error reports
  from Server now).


2.55beta - 09.07.1997 - I have reached *two* registered users. Wow! :-|
=====================
- Alt-Ctrl-Shift as the Interrupt Key works now in DOS version of PARCP,
  too. It was rather easy to add this, because the internals of TOS and DOS
  are *very* similar to each other (even the bit fields of special keys
  match in TOS and DOS! :-)

- Dir listing has been modified (especially the format of date and time).
  The maximum length of filename in dir list is 32 characters now (is it
  enough?) All directories are listed together before files (handy! :-)

- Sorting of dir listing!! I was planning to add it later to the fullscreen
  version of PARCP 3.0, but I have written it already. Seven different ways
  of sorting! (see the SORT command discussion).

- sending of filenames with wildcards has been rewritten. You should notice
  that especially when sending files from top/root directory of large disk
  with deep directory tree (in previous versions of PARCP the routine for
  sending files searched through the whole directory tree even when it was
  unnecessary).

- internal changes for better memory management (is it better, Koos?)


2.50 - 22.06.1997 - thanks for bugreport to Ivan Dimbleby
=================
- fixed stupid bug in DEL command (template matching didn't work)

- DEL command enhanced - now it deletes files and directories recursively
  (if SUBD is ON, see documentation)

- new command REN for renaming files (command set is complete now, I think)

- SAVE command enhanced - now it can create missing cfg file, update all
  values in existing cfg file and even add new lines to existing cfg file -
  that's important for easy updating cfg files with new commands of still
  developed PARCP.


2.40 - 10.06.1997 - I really need more regular betatesters!
=================
- the most important news: I have found the reason of random unexpected
  crashes of Atari PARCP - the program stack was overflowing :-(
  C, the high-level language strikes back again.... Next time I'll start in
  pure assembler, I swear! :-)
  Anyway, the stack is increased to 16 kB, hopefully it will be enough.

- fixed a problem of drag&drop directories - now you can put on the command
  line of PARCP not only files to be sent, but also directories or even
  whole drives! Yes, it's possible to say PARCP D:, which will copy all
  files from your D: drive to the Server! Isn't it just nice for CD-ROM
  burning?

- a quick work-around of another possible bug in MiNTlibs (chdir()).
  It seems that I will have to update a quite few MiNTlibs calls soon.
  Maybe I'll become the MiNTlibs maintainer? :-)

- fixed a stupid bug which was introduced yesterday in 2.30 release.
  Sending of multiple files by drag&drop works fine again.


2.30 - 09.06.1997 - PARCP is shareware and is supported by CyberSTrider
=================
- first of all: found and fixed bug in MiNTlibs! The CD-ROM related
  problems were caused by this bug (apology goes to author of MetaDOS).
  Dir should work fine in CD-ROM directories now.

- a problem with long response time of slow CD-ROM drives and CD's with
  huge directories required to enlarge the standard 10 seconds timeout
  value. That's why you find new configuration command 'Timeout' which
  takes decimal number as the timeout value in seconds.

- new Client command STAT for showing actual settings (since switches don't
  show all settings anymore).

- new Client command SAVE for saving actual settings into configuration
  file. The SAVE command parses the configuration file and strips all
  commands - so don't be surprised. Maybe I'll fix that later.

- during drag&drop existing files the 'Quit' possibility now works as
  expected.

- two new AKA's were introduced: ls = DIR, lls = LDIR (specially for Koos
  Kuil :-) PARCP Client is fully compatible with usual FTP clients now.

- minor fixes and code cleanups.


2.20 - 01.06.1997
=================
- Fast assembler routines for Atari have been optimized once more.
  I think I have reached the limits of hardware and the PARCP can't be
  made faster. I'll concentrate on IBM assembler routines in future
  PARCP releases.

- introduced a workaround for annoying bug in MetaDOS - now I know finally
  why so many clean programs have problems with reading files on CD-ROMs!

- Abort Key stops multiple files transfer now

- new Client commands:
  mkdir = alias for MD
  bye   = alias for QUIT
  LMD -> creates directory on Client (alias is lmkdir)

- when asking for overwrite you can choose "Quit" from multiple files transfer

- fixed silly bug with invisible characters (a bug in my working version
  of MiNTlibs... soon you will know what's going on here)


2.11beta - 26.05.1997
=====================
- fixed cosmetic bug in percentage displaying

- greatly enhanced configuration file handling - PARCP can now create
  or update its configuration file correctly.

- writting PARCP new documentation is in progress...


2.10beta - 06.05.1997
=====================

 Bugfixes:
 ---------
- better access rights to directories created on Linux/MiNT

- a workaround for evil bug in TOS (statfs()) - no more
  "Please insert a X: diskette into drive A:" alerts

 Important changes:
 ------------------
- PARCP.CFG - at last! Configuration file of PARCP with all switches and
  many new variables is available. Details will be discussed in documentation.

- the environment variable "PARCPPAR" is obsolete now! Use the
  configuration file for setting up your favourite switches etc.

- a new env.variable "PARCPDIR" is recognized. It should point to
  PARCP home directory (it's used for searching the PARCP.CFG)

- command line parameters reduced to -s (PARCP Server) and -f filename
  where filename points to an alternate configuration file.

 Configuration file:
 -------------------
 It's a plain textfile, can be freely edited by hand. The configuration
 file is searched:
 1) where -f command points to. If it's not a valid config file, then...
 2) search for PARCP.CFG in actual directory, then...
 3) in PARCP's home directory, and at last...
 4) in $PARCPDIR directory

 New features:
 -------------
- transfer in progress can be interrupted any time by pressing
  on Atari: Alt-LeftShift-Control
  on IBM:   Ctrl-C

- waiting PARCP Server can be aborted the same way as the file transfer

- PARCP can keep time-stamp of copied file (KEEP switch)

- better buffering of files - you can specify how big is file buffer

- variable length of transfer block - use longer block for higher speed

- better handshanking - just protocol revision is checked
  (PARCP v2.10 will be compatible with newer versions until a protocol
   change will occur)

- debug version of PARCP can be compiled.

- when HASH is OFF the progress is indicated by percentage of transferred
  file size

- after drag & drop file on PARCP Client the can receive the file and
  quit (QuitAfterDrop = TRUE) or stay and wait for another connection.


2.04beta - 12.04.1997 - thanks to Koos Kuil for bugreports!
=====================
- fixed problem with transferring files 0 bytes long

- fixed problem with displaying free space on a disk

- new command 'F' is recognized in PARCPPAR environment variable.
  It enables the fast assembler routines on Atari PARCP.

- added CWSDPMI.EXE which provides DPMI services for IBM PARCP.
  Please read enclosed CWSDPMI.DOC, thanks.


2.03beta - 31.03.1997
=====================
- FAST ASSEMBLER ROUTINES RE-IMPLEMENTED!! The transfer speed is back
  to 88 kB/s!! You can select between the original TOS routines and the new
  fast assembler ones on-the-fly by Client command "FAST". The fast routines
  are disabled by default for max. compatibility.

- fixed litle problem with "Error reading the file"

- fixed problem with drag&dropping directories

- little cosmetic changes


2.02beta - 29.03.1997
=====================
- BUGFIX: drag&drop didn't work

- sending of single files (filename without wildcards) is now faster
  because they aren't searched in directory but send immediately.


2.01beta - 28.03.1997
=====================
- long awaited feature: PARCP can now send or receive whole subdirectories!
  By default this is turned on, but it can be turned off by "d" in $PARCPPAR
  I've also found a bug in Linux's libc, will have to report it...

- PARCP reports the length of transferred file in blocks (= in dots)

- Client's switch commands (HASH,CASE,OVER,SUBD) without the ON or OFF
  parameter acts as a toggle switch.

- removed two problems with timeouts while waiting for answer to
  "Overwrite?" question.


2.00beta - 25.03.1997
=====================
- PARCP has been completely rewritten and is now compiled by GNU C 2.7.2

News: - PARCP uses new method of handshaking (end of "Timeouts" I believe)

      - PARCP supports multitasking operating systems

      - PARCP Server does not hog CPU while waiting for connection!

      - PARCP reads an environment variable PARCPPAR and uses its
        value for setting of different PARCP options

      - PARCP Client is much more comfortable

      - drag&drop of files onto PARCP Client is supported again!

      - .. and much more, I can't remember it all.

- I have no time for updating docs so I am releasing PARCP `as is', mainly
  for betatesters.


1.00beta - 31.12.1996
=====================
- lowlevel assembler code on Atari has been optimized one more time. It
  saved another 80 CPU cycles in the inner loops. Receiving of two bytes
  should (in ideal case) take only 350 cycles - that makes the upper limit
  of transfer speed around fantastic 40 kB/s on standard 8 MHz ST!

- dir listing buffer decreased to 4096 bytes

- HASH mark changed to dot '.' (dot is nicer I think :)

- documentation updated and whole package released.


0.78beta - 30.12.1996
=====================
- added new commands L/DEL: it, as the name says, deletes files.

- eliminated possible problems with different sizes of library constants
  between Pure and Borland C (e.g. MAXPATH is 119 on Atari but 260 on PC)

- dir list can now be cancelled by pressing 'q' in "more" prompt

- many code clean ups


0.77beta - 28.12.1996
=====================
- removed about four errors from send_files(), now it really works

- removed all waitings for a key - now it should be ready for batch
  processing


0.76beta - 27.12.1996
=====================
- added new commands PGLEN, GET:

  'PGLEN' sets the number of lines on your screen. Default is 25, but e.g.
          I have 40 lines on screen. If you set 0 lines, dir listing will
          not be stopped.

  'GET' transfers a file or files from server to client

- some important code cleanups

- eliminated possible problems with memory overflow in handshake()


0.75beta - 26.12.1996
=====================
- added new commands LQUIT, HASH:

  'HASH' turnes on and off printing characters indicating transfer in
         progress

  'LQUIT' is a very important command - it quits just the client while
          server keeps waiting for another session. This way you can start
          server on one machine automatically after boot up and connect
          from the other machine only sometimes when you need to copy a
          file.

- memory buffers (55 kB) made statical (it may be better than allocating it
  dynamically every time - especially in multitasking environments)


0.74beta - 25.12.1996
=====================
- read() -> fread(), because read() on PC can read max 32 kB long block :-/


0.73beta - 24.12.1996
=====================
- DIR buffer made smaller (20 kB -> 10 kB) (Small memory model on PC)

- little changes of source code with aim at PC compatibility


0.72beta - 23.12.1996
=====================
- user interface rewritten from scratch. PARCP now acts like ftp client and
  server. The idea was taken from Parallel communication routines written
  by Ian D. Gay (gay@sfu.ca).

  Implemented the following commands: L/PWD, L/CD, MD, PUT, L/DIR, HELP
  and QUIT.

  'PWD' prints the current path (=drive and directory) on server

  'CD' changes the current path on server

  'DIR' lists files in current path on server

  'L-functions' do the same but on client (i.e. local machine)

  'MD' creates directory in current path on server

  'PUT' sends a file or files from client to server

  'HELP' shows short help message

  'QUIT' ends both client and server

- fopen() -> open(), fread() -> read() etc.

- PC timeout increased to 1E7 empty loops

- many small changes in the whole source code


0.71beta 24.11.1996
===================
- ST part of lowlevel routines has been rewritten into assembler. It is now
  again much faster (on a plain ST the speed increase went from 16 up to 22
  kB/s).

- true timer timeouts has been implemented in the ST version of PARCP. The
  timeout is now set to 3 seconds (I think it is enough even for reading
  from a floppy).

- Since 0.70beta the transfer can be interrupted anytime by pressing Shift
  key on Atari computer or Return on PC (as you can see in the source code
  of lowlevel routines). I forgot to update docs, sorry.

  21.12.1996
- I thought I would be able to rewrite even the PC part of lowlevel
  routines into assembler, but I have no time for studying Intel assembler,
  so I am releasing this version for testing right now.

- PAR_IN and PAR_OUT created.

  PAR_IN sets the parallel port into input state. If you use PARCP
  regularly and have the PARCP cable connected all the time, you should put
  PAR_IN into your AUTO folder (Atari) or AUTOEXEC.BAT (PC). It will
  minimize the danger of destroying your parallel ports.

  PAR_OUT resets the parallel port into output state which is the default
  after power on or reset of computer. If you want to print on printer
  after using PARCP, you have to run PAR_OUT first (or reset the computer).

- documentation updated.


0.70beta 19.11.1996
===================
- timeouts are hopefully away (I don't know why, but it doesn't matter :)

- an old code for handshaking removed (it made more troubles than good
  things). Now it begins directly with sending or receiving, so please
  don't start Senders on both ends...

- new speed records achieved: 56 kB/s on unidirectional port and 77 kB/s on
  bidirectional one (between my Falcon040 and IBM 6x86)


0.69beta (unreleased)
=====================
- tested communication between two PC's - proved that PARCP is totally
  flexible and works between any two supported computers (great!)


0.68beta (unreleased)
=====================
- still fighting.. also speeded up some little routines.


0.67beta (unreleased)
=====================
- fighting with strange problems - a lot of timeouts and other stuff.
  Can't find the reason...


0.66beta 14.11.1996
===================
- initial handshaking has been improved a bit. PARCP now also does check
  of the PARCP version on both sides and refuses to work if the versions
  differ from each other.

PC version only:
- the command line parameter '-p' has been changed: now it is followed by
  the LPT port number (i.e. 2 for LPT2 or 3 for LPT3 - the default value
  is 1 => LPT1). That means you need not to search for the address of your
  parallel port anymore.

- new command line parameter '-H' added: you have to use it if you have
  unidirectional parallel port only. You also have to use the HW adapter
  then. If you don't know what type of parallel port your machine has got,
  you can use my PARTEST.EXE.

- PARTEST.EXE created. Before starting it please disconnect all peripherals
  and/or cables from your parallel port(s). After selecting LPT port it
  will tell you if you can use bidirectional feature of your port OR if
  you will have to build the HW adapter and always specify '-H' on command
  line of PARCP...


0.65beta (unreleased)
=====================
- timeouts added to the low-level functions. I have used very simple
  incrementing of a variable and counting to one million ;-) Hope it will be
  enough for every kind of machine..
  Transfer can also be interrupted by a keypress now.


0.64beta (unreleased)
=====================
PC version only:
- now this is something we all have been waiting for: a support for
  bidirectional parallel ports of new PC motherboards!
  That simply means more speed and no HW adapter (with good PC motherboard,
  of course). This feature has been implemented thanks to important
  informations about PC hardware from Michal Kara.

  PARCP now can send or receive files with transfer rate about 72 kB/s on my
  system (Falcon040/40 and IBM6x86/60). That's quite good I think.


0.63beta (unreleased)
=====================
- introduced new, MUCH FASTER method of handshaking - the result is
  dramatical speed improvement (about 50% faster than 0.62beta!!)
  Thanks for the idea to Michal Kara.


0.62beta 23.10.96
=================
~ compiled on a friend's PC (thanks to Milos Matus)
- added option for selecting parallel port address (for PC version only)
- ST version compiled with ARGV startup code - now you can pass much more
  filenames on the command line than before (the 126 chars limit is removed)


0.6beta 20.10.96
================
~ released at the Freecon '96 (Atari show in Pilsen)
* a bug found: receiving more than one file at session didn't work
- added check for passed filename (if it exists)
* corrected bug in CABLES.TXT (the 13th pin of PC connector was wired wrongly)


0.5beta 16.10.1996
==================
~ the first public release (for friends only :)

0.3beta 20.8.1996
==================
~ I demonstrated the first working version of PARCP at Narsil Party 1996 in
  Trpisov.

0.1alpha 26.7.1996
==================
This is the first saved PureC source code of PARCP. It already managed to
drive both ST and PC parallel ports and to read and write data to it.

First thoughts about PARallel CoPy came to my head in June 1996. I hated
the bugs in ST-Trans and didn't like the half-way interface of HDD-Daemon
2.0. That's why I started working on PARCP...
