
This directory contains version 3.1 of the National SONIC NDIS driver
(EISA).   Changes from version 2.0 include:

1)  Both the DOS and OS/2 drivers are assembled to an 80386 coding
    standard, since this driver is for EISA cards (and there are no
    8086/80286 EISA CPUs).   80386 commands are used where possible,
    thus giving faster performance.

2)  To accomodate Windows, DOS V5.0, and other DOS applications that
    use extended memory (via the EMM386.EXE driver),  the DOS driver
    now does all output  from two fixed low-memory buffers,  and the
    DOS driver has been restricted  to being loaded into low-memory.
    These changes are an alternative to using the DOS  "Virtual DMA"
    calls which are quite slow -- using the low-memory buffers seems
    to be an equivalent "trade-off" in time.    The DOS driver still
    has an 8-entry transmit queue and thus can handle as much output
    as before.

3)  To accomodate the DOS output buffers  and the low-memory loading
    restriction, the amount of input buffering in the DOS driver has
    been cut from 24K to 18K (three buffers of 6K each,  rather than
    4).  Since the DOS driver is used only on workstations, this did
    not materially affect throughput.

4)  The OS/2 driver still does output from its transmit queue (imme-
    diate data) and from main memory, as before;  its output perfor-
    mance is absolutely unaffected.

5)  The OS/2 driver has been changed from using 8 input buffers of
    6K each to using 4 input buffers of 12K each.   Since the SONIC
    does not input to the last 1.5K of each specified input buffer,
    this change results in using 42K out of 48K of the input buffers
    (rather than only 36K as before).  The number of RFA descriptors
    has been increased accordingly.    Also, the number of transmit-
    queue entries has been increased from 16 to 20.    These changes
    should yield better I-O performance from the OS/2 driver, for a
    total cost of only 2K of memory.

6)  Starting with version 3.1 of this driver (29-Jun-92), the "inac-
    tivity" timeouts are a conditional-assembly option.   To include
    them, you must re-assemble the driver with the  /DINACT  option.
    The supplied DOS and OS/2 versions of the driver (in this direc-
    tory) were created with "inactivity" timeouts disabled.
