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

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 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.