4.      SCSI and the real Life ...

        In real life, theory is just a list of things that shouldn't
        happen <g>.
        So, let's collect some experiences and comment about them ...

4.1.    Installing a SCSI host adapter

        Basically, a SCSI host adapter is a standard PC board, regardless
        of the bus system used. As an example, let's follow my standard
        installation of an Adaptec 1542CF:

        First, look at the default values of the board and verify that
        it doesn't collide with other devices in your PC.
        Of course, you may have some other device in your PC that will
        bring you problems later, but first we just want to see if there
        is some obvious reason why it wouldn't work. So, control the
        I/O-address range, the IRQ(s), DMA channel, and the BIOS address
        for conflicts. Also, if you use a memory manager, exclude the
        chosen BIOS address space from its memory pool.
        If you have chosen all resources, enter them in your list of
        ressources. If you don't have one for your PC, it's a good idea
        to start one now.
        If all is ok, install the host adapter in the PC and turn it on
        again. If you didn't deinstall the BIOS, you will see a BIOS boot
        message like:

             Adaptec AHA-1540CF/1542CF BIOS 2.01s
             (c) 1993 Adaptec, Inc.  All Rights reserved

               Press <Ctrl><A> for  SCSISelect(TM)  Utility!  

             Target #0 -   DEC       DSP3085S-B SD16    - Drive C: (80h)
             Target #1 -   QUANTUM   LP425S   606_      - Drive D: (81h)

        The boot-up message will list all devices that are on the SCSI
        bus and turned on. Also, it will show you if any of them are
        disks that are supported by the BIOS.

        Now, it's the best time to start any test programs that are in
        the BIOS. With the 1542CF, there is a DMA transfer test program
        you can use to test the maximal DMA speed your motherboard can
        safely use.
        So, press <Ctrl><A> if the BIOS tells you to do so, select the
        host adapter's base address (normally it will be preset) and
        press the <Enter> key.
        Select "Host Adapter Diagnostics" and press Enter. If the test
        runs for some time without problems (i normally use 3 passes),
        you see that the DMA speed is on the safe side.
        Now, turn off the PC and install the SCSI device(s). If you have
        more than one internal device,
        - set up a unique SCSI ID ( _not_ 7 ) on each of the devices and
        - select one of these devices to be at the end of the cable.
        Make sure that the choosen device has its termination enabled and
        disable termination on all other devices. Termination is either
        enabled through one or more jumpers, or simply by installing or
        removing some resistor packs on the device's PCB. Now, attach the
        SCSI cable to the host adapter and to the last device. Don't
        forget the device's power connector.

        Turn the PC on and watch if the SCSI device is being recognized
        by the host adapter. If yes, ok, turn off the PC and install the
        next device. Watch for the recognition again and install .......
        If all devices are recognized, install the EZSCSI driver package.
        From this point on, you should be up and running.

        If you did deinstall the BIOS, or if it's a simple host adapter
        without BIOS, you will not see any reaction until you install the
        drivers.

        Of course, in real life, you will install all devices at once
        and in most cases all will work ok. The above is just the correct
        way i tell the new technicians <g>.

4.1.1.  SCSI disks and CMOS RAM

        Usually, SCSI disks are not entered in the BIOS setup's CMOS RAM.
        Unfortunately, there are also some exceptions to this rule - some
        host adapters with a WD1003 emulation - especially DPT's models -
        calculate a "best fit" drive type on low-level formatting of the 
        first two drives and enter it in the CMOS RAM.
        With those controllers, notice the drive type - if you lose the
        CMOS settings, the system won't boot without those parameters,
        and it sometimes is a slightly tedious process to get them back.

4.1.2.  The "device at ID 7" bug...

        There is a potential error pending here, as some disk vendors 
        deliver their drives with all ID jumpers set, setting the SCSI
        device to 7. The basic sense here, as told by a Conner rep, is 
        to provide all neccessary jumpers with the drive. But i had 
        some customers that had a single disk drive with ID 7 connected.
        If you connect this device as only device, the system usually 
        works - the device just shows up on all device IDs but 7 - very 
        irritating. If you add a second device, you are in trouble - it 
        won't work, and you most likely will search for the error on 
        the new device, although it is set up right.

4.2.    Installing SCSI devices.

4.2.1.  Setting proper termination

        Remember - the basic rule is: Termination on both ends of the
        SCSI chain. So, if you want to install the new device as the
        last device on one of the sides of the _complete_ cable, you
        need to enable termination on it. If it replaces another device
        that was at the end of the cable before and now is installed on
        another connector on the bus, you also have to disable the
        termination on this device.
        If you install an external SCSI device, but you had only
        internal devices so far, you also have to disable your host
        adapter's termination. This might be done by software, as with
        the newer Adaptecs, or by removing the (mostly three) terminator
        packs near the host adapter's SCSI connector, or by setting a
        jumper on the host adapter. Clearly, the same occurs, if you get
        your first internal device and had only external devices before.

4.2.2.  Finding out and setting the SCSI ID of the new device

        First you have to find out a free SCSI ID. The best method for
        this is simple - look at your host adapters bootup message and
        look for free IDs.

             Adaptec AHA-1540CF/1542CF BIOS 2.01s
             (c) 1993 Adaptec, Inc.  All Rights reserved

               Press <Ctrl><A> for  SCSISelect(TM)  Utility!  

             Target #0 -   DEC       DSP3085S-B SD16    - Drive C: (80h)
             Target #1 -   QUANTUM   LP425S   606_      - Drive D: (81h)
             Target #3 -   TOSHIBA   CD-ROM XM-3301T
             Target #4 -   SDI       LASERSTOR  E5

        In this example, IDs 2, 5 and 6 are free for new devices. You
        can't use ID 7, as this is the host adapter's ID. 

        On internal devices, the ID is normally set by three jumpers in
        a 4-2-1 configuration. The sum of the jumper values counts for
        the ID. So, if you want a hard disk at ID 0, remove all three
        ID jumpers, if they are set. For ID 1, jou must set the jumper
        with value 1, mostly called ID0, whereas the "2" jumper is 
        called ID1 and the "4" jumper is called ID2.
        If you play with Wide SCSI, you could have 4 (8-4-2-1) or, in 
        the future, even 5 (16-8-4-2-1) jumpers for ID selection.

        Some older IBM host adapters have an especially nice "feature"
        - they scan the SCSI IDs "top-down" from ID 6 to ID 0 and give
        logical IDs to the found devices, from 0 upwards. After this
        process, all software (including OS) sees only the logical IDs.
        So, if you have an IBM SCSI system, be careful when selecting
        IDs - maybe you can't trust the ID's any tools report.

4.3.    What can be wrong?

        Basically - all <g>. However, if i should make a list about
        problems i found or had at various offices and systems, there
        are some all-time highs and standard cases:

          - unstable termination, passive termination with Fast-SCSI,
            very rare: active termination with old SCSI devices.
          - wrong termination (too much devices terminated or SCSI bus
            ends not terminated correctly)
          - self-made short flat ribbon cables with bad contacts
          - using Fast-SCSI with cheap external round cables
          - too long cables, especially with adding Fast SCSI
            devices to an existing, stable SCSI system
          - setting the new device to a used ID
          - using a SCSI adapter that doesn't provide term. power
            (or disabled) and having no device set to provide it.

4.3.1.  Cabling with "Standard" SCSI

        SCSI-1 and "Standard" SCSI-2 normally isn't very picky with
        its cabling. However, there are a few traps you could stumble
        in...
        The mixing of flat and round cables gives impedance changes
        that could lead into problems. Normally, you will use flat
        cable or twisted pair flat cable inside and round cables for
        external cabling. This normally works. Some times, when we
        tested different configurations, adding another "quick and
        dirty" flat cable to the external chain, it didn't work ...
        changing the flat cable to be the first cable after the
        controller sometimes did the trick.
        However, SCSI cabling is a sensitive thing, so, if i encounter
        strange problems, i look for correct termination first and for
        the cables directly after this.
        I've got some configurations outside that worked only after we
        changed the _complete_ cabling to flat cable.

        If you buy external cables, you will see that 30 cm is the
        _minimal_ length you can buy - if you can find these cables.

4.3.2.  Cabling with Fast SCSI

        Other that SCSI-1, Fast SCSI is _very_ picky with its cables.
        If you buy a system from a "better" vendor, you will often see
        twisted-pair signal cables also for the internal cabling. This
        makes much sense, as the signal/noise ratio is better with this.
        With Fast SCSI, the allowed SCSI bus length drops to 3 meters
        including the internal cables. Keep this in mind if you install
        Fast-SCSI devices, or, if you have the choice, select a Twin-
        channel SCSI host adapter like, for example, Adaptec's 2742T
        instead of the standard 2742.

4.3.3.  Termination and Termination Power

        The termination basic rule is simple - both ends of the SCSI
        chain. So, in general, there are only three configurations
        to consider for a hardware setup - internal devices only,
        external devices only and the combination of internal and
        external devices. Diagrams are in Appendix C.

        In the first two setups, usually you don't have to change
        anything on the host adapter, because all host adapters come
        with termination enabled. If you're using both internal and
        external devices, you have to disable the host adapter's
        termination, either by disabling it per software or a jumper,
        or by removing two or three resistor packs.

        With those simple rules in mind, however, i had some cases
        where i got a system up and running only if i apply Termination
        on both ends _and_ on the host adapter. This usually points to
        cable misimpedance, but if you do have such a setup, if it
        works, you can leave it as it is.
        But keep in mind that the next device you attach or remove may
        change this - and then you may have a hard time to find out
        the error on "a perfectly working system".

        I had such a setup in my home system - HD, tape and CDROM
        internal, the internal end terminated with an active terminator,
        the 1542CF terminated (active), MO and scanner external and
        terminated with an active terminator, high-end cables, 2 meters
        all in all, only the 1542CF supplies termination power - all
        perfect. But without the host adapter's termination, no way...
        So, don't be scared if a setup works that shouldn't - usually,
        i verify it again and if it works, try to live with it.
        In the meantime, all is ok - the MO died, and with it died the
        strange termination setup....

        The termination circuits need some power source, practically
        called "termination power" <g>. Typically, every device has
        the possibility to provide termination power to the SCSI bus,
        but the SCSI-2 drafts defined the initiator as the standard
        TP provider, so this rule was usually followed by the
        manufacturers during the long pre-standard years and host
        adapters generally supply termination power.
        As you would expect, there's no rule without exceptions ...
        Some older, cheap host adapters don't provide termination
        power to the bus. One example is the old Future Domain TMC-845
        host adapter. In those cases, you have to set one of your
        devices to supply termination power to the SCSI bus.
        The same occurs generally to the parallel-to-SCSI adapters.
        Those adapters usually get their power from the TP line and
        therefore need a device supplying it to the bus.


4.3.4.  Identifying a terminator

        Sometimes, you get a terminator and no hint on it if it's an
        active or passive one. In this case, two simple resistance
        measures can give you the type:
        From one signal line to another signal, an active terminator
        following the standard circuit diagram should give you a readout
        of 220 ohms. A passive terminator should have 264 Ohms.
        Measured from any signal to ground, a passive terminator should
        read 143 ohms, an active terminator has no connection from the
        signal lines to ground, so it won't give you a readout other
        than "overflow" <g>.

        The precise description - "why is it so?" - is in Appendix E,
        together with a "caution" note for active terminators.

        Also, i don't have "quick identifying information" about FPT
        terminators. As i don't have a real diagram for them, it's hard
        to guess how to recognize them.


4.4.    SCSI drivers on PCs

        If you attach only hard disks to a SCSI adapter, you mostly
        won't need to install drivers, as hard disks are managed by
        the BIOS, except in some special cases.
        However, to access SCSI devices other than hard disks, you
        need some drivers. What drivers you need, depends on your host
        adapter, your operating system, your driver package and your
        devices. However, with any software interface there are some
        generic rules:

        - You need a hardware-specific part, that talks to your host
          adapter's SCSI chip.
        - Based on this hardware-specific part, there are some device-
          specific parts, that sit on the hardware-driver to talk to
          their supported devices.
        - On this device-dependent drivers, there _could_ be some
          application-specific parts, either as application-specific
          drivers or as (invisible) part of the application.


4.4.1.  ASPI drivers for DOS

        With ASPI, in first place you need an ASPI manager for your
        host adapter. This driver is the hardware dependent part of
        your driver package. For example, with an Adaptec 154x adapter
        in your PC, you will need to install ASPI4DOS.SYS. With a DPT
        SCSI host adapter, it would be DPTDDL.SYS, with a QLOGIC host
        adapter it would be QLASPI.SYS and so on ...
        After this driver is installed, the ASPI interface can be used
        by all sort of device drivers. For example, to address a CDROM
        drive, you could use Adaptec's ASPICD.SYS or Trantor's TSLCD.SYS
        (only the ASPI-based version from SCSIWorks!). You could use
        ASPIDISK.SYS to address removeable devices (Bernoullis, MO's ...)
        or hard disks, if your SCSI BIOS doesn't support them or isn't
        installed. Let's look at my DOS config.sys file to see some of
        these drivers:

        Don't mind the parameters that i don't explain at the moment.
        They're specific to my setup or hardware. Also, the path
        C:\DOS\SCSI is the path i installed the drivers on my system.
        The values in brackets on the right side of the DEVICE=.. lines
        are the memory consumption of these drivers on my main system.

          DEVICE=C:\DOS\SCSI\ASPI4DOS.SYS /D                     [ 8 kB]
               This is the ASPI manager for my Adaptec 1542CF. It does
               basically nothing but providing the ASPI interface. The
               /D-parameter gives some additional information at startup.

          DEVICE=C:\DOS\SCSI\ASPIDISK.SYS /D /R1                 [ 5 kB]
               This driver supports removeable-media devices like my
               Bernoulli 90Pro removeable disk and the Maxoptix Tahiti
               Magneto-Optical drive.

          DEVICE=C:\DOS\SCSI\aspicd.SYS /D:ASPICD0               [12 kB]
               ASPICD.SYS is the device driver for a SCSI CDROM drive.
               The /D:ASPICD0 parameter installs the CDROM driver with
               the device name "ASPICD0". This _exact_ name is needed
               later for MSCDEX.EXE in Autoexec.bat.
               The same parameters could be used with other CDROM
               drivers, for example Toshiba's MDSCD_AS.SYS or
               Trantor's TSLCDR.SYS.

          DEVICE=C:\DOS\SCSI\EPSN.SYS 3 /i79 /S6                 [ 3 kB]
               EPSN.SYS is the driver to address my EPSON scanner.
               A HP Scanjet II series scanner could be similar
               supported with a line like DEVICE=C:\DOS\SCSI\SJIIX.SYS.

        The CDROM driver needs an additional part in DOS's Autoexec.bat
        file, MSCDEX.EXE, to enable access to the CDROM's filesystem
        to DOS. The corresponding line in Autoexec.bat is:

          C:\DOS\MSCDEX.EXE /D:ASPICD0 /L:T /M:0                 [23 kB]

        This line installs the CDROM Extension and needs _exact_ the
        same drivername after the /D: parameter that you used with the
        CDROM driver in Config.sys. /L:T tells MSCDEX to install the
        CDROM on drive letter T:, /M:0 means no buffers are set up, for
        i use DOS 6.2's SMARTDRV cache also on my CDROM.


4.4.2.  CAM drivers for DOS

        The driver scheme for CAM is very similar to ASPI: a CAM shell
        driver as first driver, then various possible drivers: a CDROM
        driver, a driver for removeable disks and hard disks that are
        not supported by the BIOS and other specific drivers.

        Although standardized, CAM seems to exist in various flavours.
        With NCR, you normally get a CAM driver, a DISKIDD.SYS driver
        for removeable media and one generic ore some device-specific
        CDROM drivers. With a 53C9x chip-based adapter for example, you
        probably would have CAMC9X.SYS, CDROM.SYS and DISKIDD.SYS.
        With the 53C7xx and 53C8xx chips, the drivers changed slightly.
        With them, (at least i think so!) NCR introduced SDMS, their
        SCSI Device Management System. The SDMS kernel is mostly in the
        host adapter's or PC's BIOS, the CAM drivers are only needed
        if you want to use CAM or ASPI for attaching other devices.
        Now there are DOSCAM.SYS and MINICAM.SYS, ASPICAM.SYS, CDROM.SYS
        and SCSIDISK.SYS. According to NCR's driver text files, the main
        difference between DOSCAM.SYS and MINICAM.SYS is that DOSCAM
        supports synchronous transfers, Tagged command queuing, SCSI
        Disconnect/Reconnect and multithreading, where MINICAM.SYS
        doesn't support these "advanced" SCSI functions.
        A typical set of Config.sys entries for NCR-based host adapters
        could look like the following:

        DEVICE=C:\DOSCAM.SYS .......
                the CAM 3.0 base driver

        DEVICE=C:\ASPICAM.SYS
                NCR's ASPI shell over CAM. After loading this driver,
                you can use all CAM or ASPI-based applications.

        DEVICE=C:\SCSIDISK.SYS .......
                NCR's disk driver for removeable drives or drives with
                sector sizes other than 512 bytes. Also needed if you
                want to address more than seven SCSI drives with DOS 5+.

        DEVICE=C:\CDROM.SYS .......
                The generic CDROM driver. Its syntax is exactly as
                described above with ASPICD.SYS.

4.4.3.  SCSI drivers for OS/2

        With OS/2 2.0, things went easier. The only host adapter
        specific part is the .ADD driver. SCSI, ASPI and CDROM support
        are standard with OS/2 2.x.

        The following excerpt is from my OS/2 config.sys:

          BASEDEV=OS2DASD.DMD
                This is OS/2's hard disk driver

          DEVICE=C:\OS2\OS2CDROM.DMD /Q
          IFS=C:\OS2\CDFS.IFS /Q
                These two entries install CDROM support and the CDROM
                file system.

          BASEDEV=xxxxxx.FLT
                If neccessary, you can install the appropriate .FLT
                file here for your CD-ROM drive, i.e. Hitachi.FLT.

          BASEDEV=OS2SCSI.DMD
                This is the generic SCSI support driver.

          BASEDEV=AHA154X.ADD /v
                This is the host adapter driver, in this case the
                .ADD module for my Adaptec 1542CF. The /v parameter
                gives some informatio about the attached devices at
                startup.

          BASEDEV=OS2ASPI.DMD /all
                This is the OS/2 ASPI driver. The parameter /all
                specifies access to all devices for the VASPI driver.

          DEVICE=C:\OS2\MDOS\VASPI.SYS
                This is the virtual ASPI driver for the DOS-VDM's. This
                is also part of Adaptec's Virtual ASPI implementation.

          DEVICE=C:\OS2\OPTICAL.SYS or
          DEVICE=C:\OS2\MO.SYS
                This is IBM's driver for Magneto-Optical drives.
                Officially it is designed for 128 MB 3" drives, but
                it also works with other MO's like my Maxoptix Tahiti.

        In the meantime there are some Shareware and PD extensions to
        OS/2 SCSI. One of these is Andreas Kaiser's ASPITAPE/SCSITAPE
        driver package with GNU TAR. The two entries here support tape
        backup to SCSI tapes under OS/2 with my drive (SCSI-1, ID 2).

          set TAPE=+++TAPE$2
          basedev=scsitape.dmd TAPE$2 2 S1

        If you get a new SCSI .ADD driver, you need to install it in
        OS/2's CONFIG.SYS file. There are two possible ways to install
        the driver. Either you install the driver via OS/2's "Selective
        Install" command - you'll need a matching .DDP file for the
        driver -, or you include it into Config.sys manually. See your
        OS/2 documentation or the driver's readme file for better
        information.

4.4.4.  FastDisk SCSI drivers for Windows 3.x

        In the last time, some vendors got tired of the user's lament
        about missing Windows FastDisk drivers and supplied such drivers
        to allow Windows to use 32 bit disk access.
        In short, a Windows FastDisk driver replaces the Disk BIOS with
        a protected-mode Windows driver. This is usually faster, for it
        saves at least two mode transitions (from protected mode to real
        mode - then the BIOS call - and back to protected mode) and
        BIOSes usually are in slow ROM, mostly in an 8-bit ROM.
        Switching CPU modes is a time-consuming job, so FastDisk is of
        some value.
        Additionally, it has some benefits with RAM usage and cooperates
        better with Windows' paging mechanism.

        Future Domain was one of the first vendors to provide FastDisk
        drivers. They had them nearly from the beginning and were the
        only vendor for some time.
        Lately Adaptec introduced full FastDISK driver support in EZSCSI
        version 3.11. After these drivers are installed, you can enable
        Windows' 32-bit disk access. 32-Bit file access worked before,
        if you had installed the DOS ASPI drivers.
        An additional bargain in Adaptec's control panel module is the
        possibility to activate the SCSI drive's write caching feature.
        Although SCSI disk drives usually are able to cache write
        requests, they usually come with write caching disabled. ATA
        drives, on the other hand, usually have it enabled by default.

        At present, i'm not aware that NCR has a FastDisk driver
        available. If this is wrong, please inform me - i don't have a
        NCR-based SCSI adapter at the moment, so i'm not in touch with
        the latest drivers.

        To sum it up - if you are using Windows (likely <g>) and SCSI,
        ask your vendor for a FastDisk driver. It can lead to some
        speed improvements, although there are situations where they
        doesn't help - in any case, it's a good idea to have them
        installed.
        With Windows 3.11, you can save the base memory for the
        SmartDrive cache and use VCACHE instead - always worth it,
        although the actual VCACHE doesn't support CDROMs.
        Windows NT and Windows 9x don't share this slight problem -
        the Miniport drivers that both systems use are protected mode
        drivers by definition.


4.5.    DOS again - SCSI drivers and memory usage

        If you install a full set of drivers, you will notice that some
        of those drivers are real memory hogs. So, if you have multiple
        drivers to choose from, it may worth it to compare what they can
        do and how much memory they need. To give just a short example -
        when i got IOMega's IOSCSI package for my Bernoulli, it contains
        also an ASPI-based CDROM driver, scsicd.sys. This CDROM driver
        needs only 5 kB memory, compared to the 12 kB my ASPICD.SYS uses
        (release 3.20). Keeping in mind what trouble and what amount of
        time people waste to find 7 kB of free memory, this is a notable
        enhancement. Also, compare new driver releases you might get -
        they may need more or less memory, without neccessarily changing
        anything in your system.
        To mention just a few CDROM drivers i tested on my system:

        Adaptec ASPICD.SYS Version 3.21     - 12.672 Bytes
        IOMega SCSICD.SYS Version 2.2       -  5.280 Bytes,
        Relialogic NCRCD.SYS Version 1.0.2  -  7.104 Bytes
        Buslogic BTCDROM.SYS Version 2.00   - 11.024 Bytes
        MicroStaff MCDTOS.SYS Version 2.55  - 10.000 Bytes

        Microsoft's MSCDEX Version 2.23     - 23.856 Bytes
        American Science's SUPERCDX 2.13    - 68.720 Bytes
        The Japanese MACCD module           - 32.384 Bytes

        For the hard cases, there is Helix' Multimedia Cloaking, a set
        of Mouse driver, MSCDEX program and some others that run in
        protected mode with a small stub driver in base memory to save
        conventional memory. I don't know of other products like this,
        but it seems to work - at least at a friend of mine.


4.6.    Size limits - disks, partitions and other...

        Sometimes, questions like "Why can't i use disks with over
        a Gigabyte", "How can i setup my 9 GB disk drive with DOS"
        and similar arise. This is sometimes confusing, as it touches
        a bunch of limits coming from hardware, BIOS architecture,
        DOS architecture, drivers and other sides.

        In short, there are four applicable basic limits, and they get
        sometimes confused...
        - 504 MBytes, according to the WD-1003 and the AT BIOS,
        - 1 GB, for most older SCSI adapters, due to the standard
          translation scheme from SCSI blocks to the PC's
          track/sector/head address scheme.
        - 2 GB, the limit for a DOS partition
        - 8 GB, the maximal addressable disk size for DOS

        So, to avoid confusion, let's explain the various limits
        one at a time....

4.6.1.  The 504 MB limit

        The PC's standard disk hardware was designed with a sector
        address scheme consisting of cylinder/track, head and sector.
        DOS uses this scheme, and at its implementation, it had
        plenty of spare capacity - remember that at that time a 5 MB
        disk drive was state of the art.
        So, with up to 1024 cylinders, 256 heads and 63 sectors per
        track, DOS can address up to 8 GByte of disk space.

        However, the WD-1003 controller that was the reference for
        the BIOS implementation could only address up to 16 heads
        and the standard disk BIOS took over this limit.
        So, the limit for MFM/RLL and IDE disks under DOS is still
        504 Megabytes or 528 Megabytes, as the drive vendors mostly
        state (504 MB = 528482304 Bytes) - 528 sounds bigger than
        504, you know <g>....

        This limit also applies with the Windows 3.x WDCTRL FastDisk
        driver - it is designed to work with strictly standard
        WD-1003 compliant interfaces.

4.6.2.  The 1 GB limit and extended translation

        All SCSI adapter BIOSes translate the SCSI disks logical
        block numbers in cylinder/head/sector addresses.
        For this translation, the established standard scheme is
        64 heads and 32 sectors per track, thus giving DOS an
        addressable range of 1 GByte with 1024 cylinders.

        Newer and higher end host adapters offer an extended
        translation scheme to address bigger disks. There are some
        different translation schemes, so let's name only two:
        Adaptec translates to 255 heads and 63 sectors per track,
        Buslogic's older adapters use variable sector and head
        counts, depending on disk size.


4.6.3.  The 2 GB partition limit

        DOS has a limit on partition size - 2 GB. This limit is due
        to DOS addressing disks in maximal 65536 addressable units,
        called "clusters". A cluster can consist of up to 64 sectors,
        depending on disk size. The cluster size is determined by
        FDISK on setting up the partition.
        This also leads to inefficient disk usage with DOS's FAT file
        system. with a 2 GB partition, you will end up with 32 kB
        sectors - means that the smallest batch file uses 32 kB
        disk space.

4.6.4.  The 8 GB disk size limit

        As stated above, DOS manages its disks by cylinder/head/sector
        addresses, with absolute limits at 1024 cylinders, 256 heads
        and 64 sectors per track. 
        Add this with DOS's 512 byte sectors and you end up with
        slightly under 8192 MB - voil, 8 GB.
        In real life, you won't see over 255 heads and 63 cylinders.
        I'm not sure why those limit are one unit lower than expected
        - i never had to do with this -, but DOS simply locks up if it
        sees one of the offending parameters.

