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

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 :)
