-------------------- AmigaOS 3.1.4.(1) project -----------------------

Changes for 45.10 (17.12.2016)

- This this actually a pretty old release of the audio.device, though
  newer than contained in the kickstart. Work for this was done for
  Os 4.0 back then (more than ten years ago...).

- Recompiled with the latest SAS/C and registerized parameters instead
  of the stack-based arguments.

- Updated from K&R C to ANSI C.

- Fixed one particular bug: CMD_RESET crashed when the channels were
  lost. This caused AmigaBasic to crash on a DisplayBeep(). The latter
  stole channels from AmigaBasic which tried to beep itself.

Changes for 45.11 (9.7.2018)

- The audio.device did not return an error in case channels were never
  allocated and no unit exists.

- Added support for NSCMD_DEVICEQUERY.

Changes for 45.12 (15.7.2018)

- Removed pointless trampoline functions.

Changes for 45.13 (15.8.2018)

- Hardware registers were not declared as volatile, hence the compiler
  might have optimized access to them out. )-:

- The "small busy loop" that waits for the audio channel to become free
  slows now the CPU down by accesses to the hardware registers.
  
Changes for 45.14 (8.9.2018)

- The small busy loop that waits for the channel to become empty
  was still optimized away by the compiler, so it was transferred to 
  assembly.

- In case someone issues a CMD_WRITE while being in Disable-state, the
  busy loop would wait forever.

Changes for 45.15 (20.9.2018)

- The name of the audio interrupts was garbled due to a linker issue. 
  Fixed.

Changes for 45.16 (5.10.2018)

- The audio.device apparently blocked an interrupt by polling the 
  custom chip interrupt enable flag while waiting for the channel to 
  become free. Removed the offensive code.

Changes for 45.17 (7.10.2018)

- Reverted the change from 45.11. Unit == 0 is not an error condition.

Changes for 45.18 (13.2.2019)

- Apparently, some broken programs expect that Begin() returns an 
  error code - how could it, it is not a synchronous call in general. 
  However, just to be nice, it now returns io_Error in case it was, 
  and returns 0 otherwise.

------------------------------ AmigaOS 3.2 project -------------------

Changes for V45.19:

- Instead of starting audio by writing a dummy period into the
  audio data register, the device now triggers the interrupt manually.
  This avoids a race condition for the first two samples.

Changes for V45.20:

- The previous release tends to cause hiccups on fast machines, thus the
  old code was reverted, though the period was reduced from 8 to 1 to
  avoid trouble with some emulators.

Changes for V47.1:

- Bumped to 47.1 to allow automatic loading for the 3.2 ROM.
