Versions described : v0.2;v0.3;v0.4;v0.4.1;v0.5;v0.5.1;v0.5.2;v0.5.3;v0.6;
--

DZComm version 0.2 (26.03.97)

- modem status and line status placed into read queue.
  Since comm_port_get() returned *packed* value, do next :

  c=comm_port_get();
  if (q_reg_(c)==DATA_BYTE)
   { ch=data_(c);
     ...
   }

  if q_reg()=LSR_BYTE then next call data_() will return
  status byte from LSR.

  if q_reg()=MSR_BYTE then next call data_() will return
  status byte from MSR.

  if q_reg()=DATA_BYTE then next call data_() will return
  data byte from RDR.

- added documentation on FIFO queue routines. See dzcomm.txt
  Note : it's not documentation on 16550 FIFO feature !

  Source file for this functions is /src/queue.c

DZComm ver 0.3 (19.05.97)

- serious bug fixed. This bug coused system crash then it runs on slow PC
  at high baud rate.

- modem status and line status removed from read queue.
  Instead of it you may provide your own handlers for this events.

- comm_port_get() - removed from library. Use comm_port_test() instead.
  Data returned by comm_port_test() is not packed now, so you never need
  q_reg() call.

- XON/XOFF flow control add.

- add comm_port_load_settings(). Now you may load settings from file.

- add comm_port_reinstall(). Change any port settings and apply it at
  runtime.

- add modem_hangup().

- add comm_port_string_send() and comm_port_command_send().

- found on the Net and placed into /doc excellent serial hardware description
  by Christian Blum.

DZComm ver 0.4 (30.09.97)

- RTS/CTS flow control add

- adding byte counters for in/out data streams

- adding some new settings to be recognised by comm_port_load_settings()

- hardcoded defaults I/O address used then BIOS have no data (this may
  occurs on notebooks and brand named PCs)

- makefile changed. Not needed to rebuild entire liballeg now :)

DZComm ver 0.4.1 (9.12.97)

- fixed bugs at RTS/CTS flow control, but I still not 100% sure in it :(
  since all docs I can get contains different opinion about implementation
  of RTS/CTS flow control (I even don't say about chipsets bugs which
  may occurs at certain conditions)

- comm_port_trx() in previous version does not count output bytes properly.
  Now it is.

- minor changes in comm_port_rdr() and comm_port_trx(). Slightly improve
  performance.

- minor changes to the internal stuff off queue_get() and queue_put().
  Two lines of code added to be the re-entrant function.

- makefile changed. Previous version contains rules 'lib' and 'dzcomm' it
  coincides with dir names and worked improperly. Now fixed.

- tested with Allegro 2.2 and Allegro 3.0 (WIP). See installation note
  for more details about it.

- default in/out buffer size is now 2K (1K in previous version)

- Spell correction to the word 'boud', now it is 'baud' ;)

DZComm ver 0.5 (15.1.97)

- 'comm_port_init' renamed to 'dzcomm_init'

- 'comm_port_new' renamed to 'comm_port_init'

- number of parameters passed to 'comm_port_init' reduced to one -
  just comm port number. port1=comm_port_init(_com1);

- members of enumerated type 'comm' now has prefix '_' (underscore), so
  _com1,_com2,_com3,_com4,_com5,_com6,_com7,_com8

- now you can use precompiled variables com1,com2,...,com8 to refer to
  comm. If you dislike my notation to the port just declare your own
  variable for example *modem and call modem=comm_port_init(_com2); or
  comm_port_init(_com2);
  modem=com2;

- you don't need to provide comm_wrapper for installed ports. It's done by
  a lib. Just call comm_port_init(_com1) to initialize com1 variable and
  after that call comm_port_install_handler(com1) to initialize comm's
  harware.

- changes to comm.ini file syntax. Now you may place settings for all using
  ports to the single file. The syntax of main marameters is not changed, but
  you had to provide section for each port -
  [COM1]
   ...
  [COM1 END]

  ...
  [COMn]
   ...
  [COMn END]

- Function comm_port_load_settings(device *port,char *ini) returns now
  three different values :
  0 - some error reading 'ini' file;
  1 - success;
  -1 - settings for a given port not found in 'ini' file;

- documentation changed according to lib changes.

- setup utility added to maitain 'ini' file for DZComm

- RTS/CTS flow control fixed by Salvador Eduardo Tropea (SET)

- IRQ8-IRQ15 now handled properly. Thanks to Salvador Eduardo Tropea (SET)

- syntax in 'ini' file fixed : 'boud' now 'baud'

DZComm ver 0.5.1 (2.3.98)

- fixed nusty bug at interrupt wrapper. This bug was introduced in v0.5
  and could couse a serious problem on some machines.

- fifo_queue functions changed a bit:
  1. fifo_queue is circular buffer now (I hope so ;)
  2. queue_new_(uint size,uint dsize) is now available. This function
  allocates space for a queue from 'size' - elements each of 'dsize' -
  bytes length. For the reason of compatibility with previous versions
  'dsize' could be in range 1-4 bytes. queue_put() still returns int
  and queue_get() still accepts int as argument.

- by default I/O buffers now 4096 of BYTES not ints

Version 0.5.2 (16 March 1998); bug fixed release

- Many thank to Nils Lohmann for fixing 16550A FIFO staff. Now it works
  fine.

- Fixing problem with 'device_clients' queue. This problem cause data
  loosing in DZComm even if RTS/CTS or XON/XOFF flow control specified.

DZComm ver 0.5.3 (Apr 7 1998)

- fixed my stupid error in queue_put() and queue_get(). This bug was
  introduced in 0.5.1 then I redesigned queue to be a circular buffer.

- comm_port_out() returns int instead of void.
  Return values : 0 - everething is OK, 1 - port's output queue is near full.

- fifo_queue functions changed a bit:
  two new functions added:
  int fifo_get_(queue,void *data);
  int fifo_put_(queue,void *data);
  (Note underscore at the end of function name)
  In conjuction with queue_new_(uint size,uint dsize) you may create and place
  in queue any data structure.

- several things changed to increase performance.

DZComm ver 0.6 (September 14 1998)

- Nail Townsend contributed experimental code which purpose is supporting IRQ sharing
  among comm devices (he plays with multi-port card). This patch don't affects DZComm
  functionality in usual situation. It only starts to play if you install two or more
  comm ports on the same IRQ. Unfortunately, original comm cards don't support IRQ
  sharing on hardware level. So, you need either multi-port card such as Nail has or
  tailor you hardware as described in ser_port.txt file included in DZComm distribution.
  So, if you have properly installed hardware capable to perform IRQ sharing you may
  try new feature just by assigning the same IRQ number for two (or more) different
  ports : 
  comm_port_init(_com1);
  comm_port_init(_com2);
  com1->nIRQ=7;
  com2->nIRQ=7;
  comm_port_install_handler(com1);
  comm_port_install_handler(com2);

- Minor fixes made by Nail Townsend to improve comm_delete() and comm_reinstall()