https://web.archive.org/web/20010514004120/http://www.atronics.com:80/2015/readme.txt

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ATronics International Inc., 
45635 Northport Loop East, Fremont, CA, 94538, USA.
510-656-8400 (ph),  510-656-8560 (fax),  510-226-2671 (bbs,14400,8N1)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Product:  2015PL Local Bus IDE Interface Chip.

File:     README.DOC,  Version 5.40,  01 September 1995.

Purpose:  Installation instructions for the 2015PL 32-bit drivers.
          Technical info about the card and associated drivers.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Win95 notes:  You do not need the 2015pl.386 driver, just add the 
2015pl.sys driver to the CONFIG.SYS file.  That's it, 32-bit disk
access is automatic.  For proper setup, see the section in this doc on 
parameters.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Products using the 2015PL chip have both a DOS and Windows 32-bit
device driver.  Installation of these drivers consists of the
following two basic steps:

1) Copy the Device Driver to your hard drive.
2) Add a reference to the driver in the CONFIG.SYS or SYSTEM.INI file.

Included with the distribution disk is an INSTALL program that
performs the above two steps.  To run this installation program, just
log onto the disk (such as "A:") and type INSTALL.  The information
below is provided for those that wish to test their configuration at
various stages, or those that wish to have a more complete
understanding of all aspects involved.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Installation of the 2015 32-bit Device Driver for DOS.
Step 1)  Copy the Device Driver to your hard drive.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Background Information:

   The device driver, 2015PL.SYS, provides enhanced Interrupt-13 
   routines to replace the standard 16-bit routines in your 
   motherboard BIOS.  There are four main purposes for the driver:  
   1) Enables 32-bit instructions;
   2) Programs the transfer rate of the 2015PL interface chip;
   3) Enables "Multiple Sector Transfer" (MST) mode.  MST is also 
      refered to as "block mode" transfers.
   4) Supports hard drives on the Secondary connector (including the 
      new LBA method for drives over 528MB).

   Not all IDE hard drives have an MST mode.  Also, some drives that
   report a certain MST value actually do not perform well at that
   value.  These drives must be set at a lower value to function
   properly.  The 2015PL device driver has an exception table that is
   used for drives that must be set to a lower MST value.  Most likely
   your hard drive is already listed in our exception table.

Action:

   Copy the 32-bit dos driver, 2015PL.SYS, to your boot drive (for
   example, drive "C:").  We recommend that you create an appropriate
   directory (such as "2015"), and copy the driver to that directory
   using the command below:

   COPY A:\DOS\2015PL.SYS C:[\dirname]

   Note:  The square brackets "[]" around "\dirname" indicate that
   this part of the command is optional.  If you use this optional
   part, then the brackets themselves should not be typed.  Also,
   "dirname" should be replaced by the actual directory name.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Installation of the 2015 32-bit Device Driver for DOS.
Step 2)  Add a reference to the driver in the CONFIG.SYS file.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Background Information:

   The CONFIG.SYS file contains the information to set up your user
   environment.  It is read by DOS each time you boot your system.  To
   load the device driver each time the system is booted, a line must
   be added to the CONFIG.SYS file that references the 32-bit DOS
   device driver, 2015PL.SYS.  To avoid conflicts, it is recommended
   that this line be added as the last line in the CONFIG.SYS file.

Action:

   You may use any text editor, such as the DOS EDIT command, to add
   the following line to your CONFIG.SYS file:

   DEVICE=[C:\dirname\]2015PL.SYS [options]

Option Notes:

   /2:xxx       Use to turn the Secondary connector ON or OFF.
                The "xxx" is either ON or OFF.
                The switch, /2:ON, is required if ANY devices are
                attached to the Secondary connector.

   /Dx:Px       Selects Mode-3 or Mode-4 timing for the specified 
                drive.  Use this option only if one or more of your 
                IDE drives can operate at the Mode-3/4 timing 
                specifications (or faster).
                "Dx" specifies the drive.  Replace the "x" with either
                0, 1, 2, or 3.  These numbers correspond to the 1st,
                2nd, 3rd, and 4th IDE devices, respectively.
		"Px" specifies Mode-3 or Mode-4.	
                   Use "/Dx:P3" for Mode-3 drives.
                   Use "/Dx:P4" for Mode-4 drives.

   /T:xx        Selects the timing table used when the driver programs
                the transfer timing of the 2015PL chip.
                ONLY NEEDED FOR VL-BUS SYSTEMS.
                The default table is best suited for 50Mhz systems.
                "xx" corresponds to the local bus MHz rating and can
                be 25, 33, 40, or 50.

   /M           Selects Message mode.  The driver will be more
                verbose in displaying messages.  Sometimes helpful
                when diagnosing a problem.

   /Dx:Mxx      Selects an MST value for the selected drive.
                "Dx" selects the drive:  0, 1, 2, or 3.
                "Mxx" selects the MST value: 0,1,2,4,8,16,32,or 64.
                The 32-bit DOS driver will auto-detect the MST value
                for each drive.  However, sometimes a drive will not
                function properly at this auto-detected mode.  This
                switch was provided to manually set the MST value to a
                lower value.

   /X           Uses an alternate drive identification routine.  Some
                drives reset the DRQ so that the drive model is 
                garbaged.  This alternate routine should clear this up.

Other Notes:

   If your drive has been "double-spaced", then the 2015PL.SYS driver
   must be loaded AFTER the DBLSPACE driver.  If your drive is
   "double-spaced", but your CONFIG.SYS does not have a line
   referencing the DBLSPACE driver, then you must also add this driver
   to your CONFIG.SYS file.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Installation Supplement
2nd IDE connector, Virtual IDE drives.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
WARNING:  There is a difference between how FDISK and DOS assign drive
letters to partitions on drives found on the Secondary connector.  
Both FDISK and DOS use the same logic:  Assign all Primary partitions
first, then assign Extended partitions.  But, on bootup, DOS only sees 
drives on the Primary connector when it assigns drives, then when our 
driver is loaded, it negotiates with DOS to assign drive letters for 
the drives on the Secondary connector.  Whereas FDISK is run with our 
driver loaded, so it sees all drives.

IMPORTANT:  This does not create any function problems, just be sure 
to note the drive letters as assigned by DOS, not FDISK, when 
formatting.  Also, it does not affect systems that do not use multiple 
partitions on a single drive.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Background:

   The 2015PL was designed to work with the new Enhanced IDE
   specification.  This specification includes the option for support
   of up to four IDE devices.

   Since the motherboard BIOS only recognizes two hard drives (usually
   refered to as the "C" and "D" drives), the third and fourth devices
   will not be recognized directly.  Thus a device driver is needed to
   access them.

   The 32-bit DOS device driver, 2015PL.SYS, provides support for up
   to four IDE hard drives.  Thus, if the card is designed to support
   a second IDE cable, then a 3rd and 4th IDE hard drive can be
   installed on this 2nd IDE bus connector.

Action:

   1. Boot your system using the 2015PL.SYS device driver (from "C").
   2. Install 2nd, 3rd, 4th IDE hard drives onto your system, one at a
      time, using FDISK and FORMAT.

Notes for CD-ROM drives:

   Each IDE CD-ROM drive will come with it's own device driver.  This
   device driver must be installed directly after the 2015PL.SYS
   device driver.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Other OS drivers
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Windows NT:
   Please refer to README.NT file under NT directory on the
   distribution diskette.

OS2 2.1:
   Please refer to README.OS2 file under OS2 directory on the
   distribution diskette.

Novell 3.12 and 4.xx:
   Please refer to README.NOV file under NOVELL directory on the
   distribution diskette.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Additional driver "switch" notes
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
"/Txx":  Motherboard Speed Selection   *** FOR VL-BUS SYSTEMS ONLY ***
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Background:

   The 2015PL driver will attempt to program the 2015PL chip to the
   best "transfer cycle" timing for each drive.  The transfer cycle
   refers to the time it takes to move one, 32-bit chunk of data from
   the hard drive to the system memory.  The hard drive side is fixed,
   but the motherboard side is variable depending on the speed of the
   CPU.  To accomodate various CPU speeds, the 2015PL driver has four
   timing tables from which to select.

   As a safety precaution, we use the 50MHz timing table as the
   default.  If the 2015PL is being used on a 25MHz, 33MHz, or 40MHz
   VL-bus motherboard, most drives will get better results using the
   associated 25/33/40 MHz timing tables.

Action:

   If the 2015PL is running on a 25, 33, or 40 MHz motherboard, then
   you can tell the 2015PL chip to use the associated timing table by
   adding the "/T:xx" switch to the "device=" line in the CONFIG.SYS
   file.  The following example is for a 33Mhz motherboard:

   DEVICE=[C:\dirname\]2015PL.SYS /T:33
                                  ^^^^^

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
"/Dx:P3" or "Dx:P4" :  Mode-3/4, IOCHRDY drives
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Background:

   The specification for "Enhanced IDE Devices" includes, as one of
   it's features, a faster data-transfer rate called "Mode-3".
   Previous modes were 0, 1, and 2.  All used the same transfer
   protocol.  To attain this faster transfer rate, a new transfer
   protocol was developed called Flow-control using I/O Channel Ready.
   The DOS device driver, 2015PL.SYS, supports this new protocol.

   Most IDE drives produced now have support for at least Mode-3.  A
   Mode-3 drive will operate only at Mode-2 speeds unless a device
   driver or BIOS is used to change it to Mode-3 operation.

   The latest ATA-2 defines an even faster flow-control timing called
   Mode-4 (there are even spec's for Mode-5).

   The 2015PL driver supports Mode-3 and Mode-4 drives, and should be
   able to support Mode-5.

Action:

   To use the Mode-3/4 transfer protocol, add the "/Dx:P3" or "Dx:P4"
   switch for the appropriate device to the "device=2015pl.sys" line 
   in your CONFIG.SYS file.  Below is an example using the first IDE 
   drive (considered drive 0) as a Mode-3 drive:

   DEVICE=[C:\dirname\]2015PL.SYS /D0:P3
                                  ^^^^^^
   "/D1:P3", "/D2:P3", and "/D3:P3" would be for the 2nd, 3rd, and 4th
   drives, respectively.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
WINDOWS Information.                             Only for Windows 3.1x
   Using the 32-bit disk access;
   Installing the 32-bit Windows driver, "2015PL.386"
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Background Information:

   Microsoft Windows version 3.1x supports an option called
   32-bit disk access.  It accomplishes this by loading a built in
   Interrupt-13 handler, *INT13, and a 32-bit virtual device driver,
   *WDCTRL.  The WDCTRL driver was written by Western Digital and is 
   built into Windows 3.1x.  This driver will work with our 
   2015PL.SYS dos driver to enable 32-bit disk access.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   The only problem with the WDCTRL driver is that is does not know 
   about Logical Block Addressing (LBA).  LBA is the industry standard
   method of accessing drives over 540MB.  Thus, if you are going to 
   use a hard drive over 540MB, then you will need to update WDCTRL.

   ATronics has written a replacement for WDCTRL called 2015PL.386.  
   To use it, just copy the driver to any directory and change the 
   SYSTEM.INI file to reference the 2015PL.386 driver instead of the
   WDCTRL driver.

Actions:

   The following seven steps outline the installation of the 32-bit
   Windows device driver, 2015PL.386:

   1.  Copy the 32-bit Windows driver, "2015PL.386", to your Windows
       SYSTEM directory, or to any other directory (like \2015).  
       Example:
          COPY A:\DOS\2015PL.386 C:[\windows\system]

   2.  Log onto the Windows directory.  Example:  CD \WINDOWS

   3.  Make a backup of the SYSTEM.INI file.  Example:
          COPY SYSTEM.INI SYSTEM.OLD

   4.  If 32-bit Disk Access is not already turned on, start Windows, 
       call up the Desktop, 386 Enhanced, and turn on 32-bit Disk
       Access.  Exit Windows.

   5.  Use any ASCII text editor, such as DOS's EDIT, to open your
       SYSTEM.INI file.  Search for the [386 Enh] section to find the
       following lines:

          [386Enh]
          32BitDiskAccess=ON
          device=*int13
          device=*wdctrl

   6. Insert a semicolon, ";", before the line "device=*wdctrl" to
      disable MicroSoft's 32-bit virtual device driver.  Add a 
      reference to the 2015PL.386 driver as follows:

          [386Enh]
          device=*int13
          32BitDiskAccess=ON
          ;device=*wdctrl
          device=[c:\directory\]2015PL.386

   7. Save the new SYSTEM.INI file and re-start Windows.

Special Note for CD-ROM drive users:
   Because of the way Windows implements 32-bit Disk Access, CD-ROM 
   drives can not be supported on the Primary connector.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Compatibility Issues.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

VL-bus version:
   Motherboards with the "ALI" chipset have a feature in their
   Advanced Chipset Setup that changes the timing clock on the VL-bus 
   by inserting a wait state.  This feature should be disabled.

   Some old 486 motherboards with the "OPTI" chipset have a delay 
   built into the VL-bus timing clock.  If this feature can not be 
   disabled or bypassed in the Advanced Chipset Setup, then the 
   2015PL will probably not function properly without a modification 
   to the motherboard.

PCI-bus version:
   A percentage of motherboards do not have the option to route
   Interrupt-14 to the PCI-bus.  Our card is incompatible with these
   motherboards.  Typically, these motherboards already have a built-
   in IDE connector on the motherboard.

   Some pci-motherboards have a selection for specifying "level" or
   "edge" trigger for Interrupt-14.  The 2015PL uses level trigger.

   Intel has created a specification for providing Interrupt 14 to a
   PCI card.  This spec is usually refered to as "legacy".  This
   involves installing a card on the ISA-bus and attaching a cable
   from this ISA-card to the PCI-card.  We do not support this
   specification.

IDE CD-ROM Drives (CDRD) and IDE Tape Drives:
   These IDE devices are not seen by your system BIOS as normal IDE 
   drives (actually, they are not seen at all).  They are just "piggy-
   backing" on the ATA/IDE bus.  This "piggy-back" action is similar
   to the way many tape drives are attached to the floppy drive bus.

   What makes this possible is a new extension to the ATA command 
   protocol called AT Attachment Packet Interface, or ATAPI.  Both the
   2015PL interface chip and the 2015PL.SYS device driver are fully 
   compatible with this command extension.

   We have noticed that the Windows 32-bit Disk Access (32DA) 
   environment is NOT compatible with ATAPI.  Fortunately, this only 
   applies to the Primary connector.  Thus, if you are using 32DA, 
   then you must connect your IDE CDRD or Tape Drive to the Secondary 
   connector.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Multiple Sector Transfers (MST), or "Block Mode" transfers.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

   The conventional AT BIOS handles hard drive data in a 512 byte
   group called a sector.  Each time the system transfers a sector
   to or from the hard drive, some time is spent establishing and
   finishing the transfer.  These operations can be grouped together
   and considered as the "transfer overhead".  This transfer overhead
   remains the same regardless of the size of the sector.  During our
   testing, we have found that for many systems this overhead takes
   nearly the same amount of time as the actual data transfer.  Thus,
   eliminating the transfer overhead would nearly double the transfer
   rate.

   The ANSI ATA standard supports "Multiple Sector Transfers" (MST).
   This is more commonly refered to as "block transfers".  This groups
   a number of sectors together into one package.  This package can
   then be transferred using a single "transfer overhead".  If a drive
   is capable of transferring 64 sectors in one MST package, then the
   transfer overhead would be one-sixty-fourth of what it would be if
   each sector were to be transferred individually.

   Some final notes that are important to keep in mind:

   1. Not all IDE drives support MST.

   2. Not all IDE drives that support MST can do it very efficiently.

   3. The BIOS on most motherboards does not support MST.

   4. MST factors of 2,4,8,16,32 and 64 are supported by the 2015PL
      DOS Device Driver.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
32-bit Operation by Device Driver or Extended ROM BIOS.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

   Currently, IDE drives have a 16-bit interface for data transfers
   and an 8-bit interface for programmed I/O.  Also, the motherboard
   BIOS supports only 16-bit IDE routines.  To take advantage of the
   32-bit local bus, a 32-bit instruction based hard drive routine can
   replace the motherboard's original 16-bit instruction based BIOS
   routine.

   The 2015PL interface chip provides the interface between the 32-bit
   local bus and the 16-bit IDE drive, by automatically translating a
   32-bit local bus cycle into two consecutive 16-bit IDE cycles with
   a minimum of overhead on both the VESA and IDE sides.

   Usually, it will take a device driver or an extended ROM BIOS to
   replace the motherboard BIOS IDE routine to realize the 32-bit
   access.  This, of course, is the 32-bit DOS driver, 2015PL.SYS.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
IDE Drive Cycle Timing.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

   The ANSI ATA revision 3.0 specifies three modes of IDE cycle timing
   as described in the following table.  Each drive manufacturer tries
   to minimize the data transfer timing in order to provide a faster
   transfer.  Different IDE drives will come with their own timing
   specifications which are at least the same or faster than the
   timing defined by one of the 3 IDE timing modes.

   In theory, an IDE drive with a 300ns cycle time is faster than an
   IDE drive with 400ns cycle time.  However, on the ISA bus, there is
   very little we can do to improve the IDE cycle timing since the ISA
   bus is running at a very low speed to insure compatibility with the
   slowest mode of IDE timing.  Some motherboards offer a more
   efficient ISA cycle that can actually run at a faster IDE cycle
   timing than other motherboards, but the improvement is limited.

   However, on a local-bus, we can tailor the IDE timing to the
   individual IDE specification and actually take advantage of the
   faster IDE data transfer timing offered by aggressive IDE drive
   manufacturers.

   Table of IDE Cycle Timing, ANSI ATA revision 3.0:

                 +----------------------+----------------------+
                 | 16-bit Data Transfer | 8-bit Programmed I/O |
                 +----------------------+----------------------+
          Drive  |   Active    Cycle    |   Active    Cycle    |
          Mode   |   pulse     time     |   pulse     time     |
        +--------+----------------------+----------------------+
        | Mode 2 |   100       240      |   290      >290      |
        | Mode 1 |   125       383      |   290       383      |
        | Mode 0 |   165       600      |   290       600      |
        +--------+----------------------+----------------------+

   At the time of this writing, there are other timing/protocol
   specifications, called Mode-3 and Mode-4. There is also industry
   rummors of Mode-5 drives.  Currently, the 2015PL.SYS driver
   supports Mode-3 and Mode-4.  The 2015PL chip should be able to 
   support the timing of even Mode-5 drives.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Motherboard BIOS vs. Device Driver.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

   The original motherboard BIOS's were developed to work with all
   existing IDE drives, so they tended to have very conservative
   timing and thus had very slow access times.  The latest versions
   have improved the IDE data transfer efficiency, but are still
   limited to 16-bit ISA bus operation and, as mentioned earlier, they
   do not support MST.

   Since the motherboard BIOS works together with the motherboard
   chipset, different combinations of BIOS/chipset's produce different
   IDE data transfer performances.  In other words, the same
   drive/controller will produce different results on different
   motherboards.

   To overcome these limitations, the motherboard's IDE BIOS routines
   can be replaced with a device driver or an on-card ROM BIOS
   extension.

   This device driver is "IDE aware" and can thus obtain documentation
   and feature information directly from the IDE device.  This allows
   the device driver to program the VL-bus interface to its optimum
   performance level.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Data Transfer Cycle:  Concurrent Read/Write Operation.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

   To read a block of data, the CPU must transfer it 32 bits at a
   time.  For the typical 512 byte sector, this means cycling through
   a transfer loop 128 times.  If a block (one or more sectors) is to
   be read from the IDE drive buffer into memory, then the transfer
   consists of an I/O read from the drive buffer, followed by a write
   to system memory.  To write a block from memory to the drive
   buffer, the sequence is just reversed:  a memory read followed by
   an I/O write.

   During a read cycle, the 2015PL fetches the 32-bit chunk of data
   from the IDE drive buffer and presents it to the CPU through the
   I/O channel (the VL-bus interface).  Then the CPU writes the data
   to the main memory.  The functions are just reversed during a write
   cycle.

   Since the 2015PL is running on the local CPU bus, the timing
   between the 2015PL and the CPU is so closely tied as to appear to
   be synchronous.  Because of this synchronous timing, the 2015PL
   does not have to wait for the CPU to finish writing the data to
   memory before the 2015PL retrieves the next 32-bit chunk of data.
   Thus, this transfer can be said to be concurrent.  That is, while
   the CPU is reading or writing memory, the 2015PL is loading or
   unloading the IDE drive buffer.  This parallel operation technique
   is another method of reducing the data transfer time.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
What Affects IDE Drive Performance (Data Transfer Rate)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

   1.  The IDE Hard Drive Routines.

   The motherboard BIOS routines are not sophisticated enough to take
   advantage of the new high-performance IDE drives.  Replacing these
   low-end routines with high performance routines results in
   significant transfer rate improvements.  The 2015PL is packaged
   with a Device Driver, 2015PL.SYS, that takes advantage of these
   high performance drive features.

   2.  Multiple Sector Transfer (MST) Factor.

   A communication link (hand-shaking) must be established each time
   data needs to be transferred.  The larger the data package, the
   less time spent hand-shaking, and the more time spent working.
   Thus, the larger the MST factor, the better the data transfer rate.

   The size of the drive's data buffer as well as the drive's internal
   controller algorithm will determine the MST factor.

   3.  The IDE Drive Access Time.

   The Access Time is the delay between the time data is requested,
   and the drive says that it has the data ready.  From the
   perspective of the 2015PL, the hard drive is considered a 'black
   box'.  This means that it is not known what the drive does to get
   the data that is requested.  The 2015PL just deals with the drive's
   data buffer.  This data buffer is the window through which all data
   is transferred.  The 2015PL requests the data from the drive and at
   some time later the drive says that it has the data ready in the
   buffer.  This delay is called the Access Time of the drive.

   4.  The Data Transfer Cycle Time.

   The Data Transfer Cycle Time counts how long it takes to move one
   32-bit chunk of data from the IDE drive buffer to the CPU and then
   to the main system memory.  This process must cycle through 128
   times to transfer one 512-Byte sector.  There are two distinct
   concerns for performance as follows:

   4A.  The IDE Drive Data Transfer Cycle.

   The electrical characteristics of the drive's data buffer will
   determine the fastest possible speed at which the data can be
   transferred to or from the buffer to the I/O bus.

   4B.  The Motherboard Local Bus Cycle Efficiency.

   There are two factors that determine how long the motherboard takes
   to complete its' side of the data transfer.

   4Bi.  The motherboard chipset design will determine how efficiently
   the local bus transfer is handled.  Some motherboards introduce
   some timing overhead to provide more tolerance.

   4Bii. The wait states imposed on main memory access will determine
   how long it takes to complete the memory read or write.

   Usually these factors combine to produce a Data Transfer Cycle Time
   that is faster than most IDE drives.  But on some systems, an
   unusually high number of DRAM wait states and an inefficient
   chipset design can create an environment in which the 2015PL will
   need to be ran at a slower than normal speed setting.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
How To Make a Performance Comparison.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

   All of the performance numbers published by ATronics are generated
   using a given chipset based local bus motherboard.  Using a
   different motherboard will produce different results, even with the
   same IDE drive.

   In general, using the same motherboard, drive and testing program,
   you should get a consistent performance grading:  The 2015PL with
   Driver will be the fastest;  The 2015PL using the generic
   motherboard IDE BIOS routines will be second;  And the ISA IDE IO
   card with the motherboard IDE BIOS routines is the slowest.

   In rare cases one may see little or no difference.  This is due to
   a variety of factors, most of which relate to the hard drive.
   Essentially, the IDE drive itself is the bottleneck, not the bus.
   Keep in mind the 'black box' idea:  the drive controller does not
   have any control over how the IDE drive stores or retrieves the
   data.  The 2015PL deals only with the IDE drive buffer, the window
   through which all of the data must pass.

   A final point on this subject, the purpose of the 2015PL is to take
   advantage of the latest high performance IDE drives.  If no
   improvement is seen, then, most likely, the drive being used does
   not use any of the latest high performance features.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Seek Performance.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

   Some performance rating programs will conduct a "Seek Performance
   Test" to see how fast the drive seeks a particular sector.  This is
   essentially testing the Access Time of the drive.  This type of
   test is usually one of several tests run to gage the over-all
   performance of the drive.

   The seek operation is important for non-IDE hard drives because the
   hard drive controller must first seek the targetted sector before
   the transfer can be started.  With an IDE drive, all that is needed
   is a request for a particular sector;  The intelligent controller
   built onto the drive takes care of seeking and retrieving the
   sector and thus a seek command is not necessary for normal IDE hard
   drive operation.

   The Device Driver for the 2015PL processes a seek command by
   verifying with the drive controller that the sector is valid, and
   then it immediately reports back that the seek is done.  No access
   time is actually involved and thus the seek time is essentially
   zero.

   We have noticed that this 'zero seek time' creates a problem with
   the Norton hard drive performance utility.  Norton makes the
   assumption that the seek operation will take at least a certain
   minimum time.  Because of this assumption, it ignores the
   immediately received 'seek done' status, thinking that the status
   must be invalid.  At some point later it decides that the status
   must be valid, notes the time (absurdly long) and thus ends up
   giving erroneous results.

   To compensate for this, the Device Driver for the 2015PL has an
   option, "/S", that can be set to force the Device Driver to perform
   an actual seek when it is issued a seek command.  But keep in mind
   that there is no need to use this option during normal operation.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
The Significance and Use of Port 3F7h.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

   "3F7h" is an 8-bit port defined to provide status information to
   support both the floppy diskette controller and the IDE drive
   interface.  The first seven bits of this port provide IDE drive
   status information.  This information could be useful to an ISA
   based IDE controller, but is useless to the 2015PL since it keeps
   track of the drive status directly.  The eighth bit is used by the
   floppy controller to detect a floppy disk change operation.  Thus,
   the 2015PL has no need to decode this port.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ATronics International Inc., 
45635 Northport Loop East, Fremont, CA, 94538, USA.
510-656-8400 (ph),  510-656-8560 (fax),  510-226-2671 (bbs,14400,8N1)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
End of file:  README.DOC
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
