ReadMe : Enhanced IIC Module    v1.01  10 June 1991
============================

This module has been rewritten from scratch to provide the following three
enhancements :-

(a)     This now operates much faster, ie as near to the 5us pulse width time
        defined by Philips in the full standard as can be achieved in
        software on an Archimedes.  Exactly how close depends on the model
        and processor speed (ARM2 or 3 etc).  The design of the software is
        constrained by the need to enable interrupts while waiting for
        acknowledgement etc as this can vastly exceed the permitted holdoff.
        Note that the operation of system interrupts and also DMA for the
        sound and video subsystems can slow this down.  Also beware that
        there may be other constraining factors, such as length of cable,
        and the addressed device need not respond instantly anyway.

(b)     Secondary addressing is now supported, ie this allows operation
        through a bus extender oddule (or equivalent).   The standard IIC
        bus allows 254 locations unexpanded.  Each bus extender uses one
        directly addressable location to provide a doorway to a further
        254 locations.   This version will send out up to four bytes of
        device address before proceeding to read or write as requested.  The
        four bytes are supplied in R0 (as before), the most significant byte
        will be sent out first (ie the address of the first extender).  Note
        that values of zero are ignored and that the IIC dynamic addressing
        protocol (which uses address zero to allocate device addresses) is
        still not implemented.

(c)     There is now an extended form of the SWI call, called 
        "IIC_ExtendedControl", which takes an extra parameter, in R3, which
        is a speed factor (approx 0.5 us increments, in range 0 - 127).
        This allows operation over much longer wires - as the capacitance of
        the wire increases, the rise and fall times of the signals also
        slow down, but if not enough time is allowed for signals to stabilise
        at each state then the signals will not be recognised correctly.  By
        specifying a longer time constant and so effectively slowing the
        whole communication down, more reliable operation can happen over
        longer distances.

Any bugs found should be reported to Baildon Electronics with full details
of how to get the problem to occur, BUT don't *expect* support for a product
that you have not paid for !

The software is provided "as is" -  Baildon Electronics makes
no warranty, express or implied, of the merchantability of this software or
its fitness for any particular purpose. In no circumstances shall Baildon 
Electronics be liable for any damage, loss of profits, or any indirect or
consequential loss arising out of the use of this software or inability to
use this software, even if Baildon Electronics has been advised of the
possibility of such loss.

Baildon Electronics
The Village Store
37 Titus Street
Saltaire
Shipley
West Yorkshire
BD18 4LU
Telephone : 0274 - 580519
Facsimile : 0274 - 531626
