💾 Archived View for spam.works › mirrors › textfiles › computers › scsidefs.txt captured on 2023-12-28 at 17:21:50.

View Raw

More Information

⬅️ Previous capture (2023-06-14)

-=-=-=-=-=-=-

                                INTRODUCTION

Hello, folks!

This text file is an attempt to answer the commonly asked questions I
constantly see on IBMHW. The questions are very simple, but the task
of responding to them is difficult, takes quite a while to compose and
can really only touch the highlights of SCSI. I felt that a file
posted in the library would serve to give people a start to understand
SCSI and some of the important parts that relate to day-to-day
installations and usage.

This is not a detailed explanation, as the SCSI specifications
contain the details and are very extensive, besides an average user
need not understand the technical aspects of SCSI to be able to
install and use SCSI devices. I recommend that you scan this text and
then home in on the part that you have a particular interest in for
some details. Don't be daunted by all the information here, you don't
have to understand it all to use SCSI. Most installations of SCSI
devices are virtually plug and play with the newer host adapters and
software packages. SCSI has indeed come a long way since the beginning
and is rapidly becoming the technology of choice for
performance-oriented systems and software.

If you're a novice to SCSI or PCs, give chapter 4 "SCSI and the real
life" a try - hopefully it has your answers to install a host adapter.

There will be a companion file to this one which will give you the
easy way to install SCSI devices. While it will revolve mostly around
Adaptec products, it is in no way an attempt to sell Adaptec products
and no Adaptec employee had any involvement in it's creation. (It's
just that Skip - who wrote this introduction - and i have experience
mostly with Adaptec's host adapters -Gerhard) Adaptec is the world's
leader in SCSI hardware and SCSI software, and their products are more
widely used and better known than other brands. There are also quite a
few CIS members who are Adaptec gurus, due to experience with
Adaptec's products on various forums, so you usually can get
assistance wherever you are.

But do remember that, for the most part, SCSI is SCSI and what applies
to one supplier usually applies to them all.

This text is based on my own knowledge of SCSI. and I'm not in any way
omniscient, infallible or whatever <g>, I would like to get all sorts
of comments about what may be wrong, what's missing and so on...

Please take the SCSI-3 parts not too serious at the moment - I think I
didn't make real errors, but - unlike SCSI-1 and SCSI-2 - the SCSI-3
spec consists of various parts that are interlocked to each other and
are still "subject to change". I'll keep an eye on it and update this
over time. The SCSI-3 details will follow later, as I'll need some
time to read through these docs and - especially - understand them.

If you are interested in the official SCSI documents, NCR's SCSI BBS
on ++1 - 719-574-0424 has them all. However, they are big and - in
their naming scheme - somewhat hard to find.

Gerhard Islinger
CIS:      ID 100023,3537
Internet: 100023.3537@compuserve.com

Also, it seems there has to be a legal part:
This file is provided "AS-IS", with no warranty as to it's correctness.
Use at your own risk. The author(s) is/are not liable to any damage
that may occur from usage of this information.

History:
Rel. 0.8        Initial release on CIS.
Rel. 0.9        Entered drivers for DOS and OS/2.
                Moved the connectors to App. A.
Rel. 0.91       68pin and 110pin connectors/ Disconnect / SCSI-ATAPI /
                Dal Allen's article / added SDMS description / BBS #
Rel. 0.92       Bertil Hagnell requested some information about SCSI
                utilities, so i added some as chapter 5. Definitely not
                complete, but where should i end this ?
Rel. 0.93       finally dug out my old LADDR docs and added a slightly
                more thorough definition.. Added Appendix D with some
                QIC tape definitions. It's not directly relevant to
                SCSI, but i got a few questions for the QIC/SCSI
                relationship lately, so why not...
        At this point, Skip Lutz rewrote parts of the text for a more
        readable english and some news.
Rel. 0.94       Minor changes contributed by Skip Lutz.
                No content changes
                Rewrote introduction
Rel. 0.95       Couldn't stop working <g> Todd Plummer made me think
                about RAID, so i included a simplified definition with
                some generic SCSI device parts (chapter 6)... Also,
                Mike B. pointed me towards a _big_ fault in the serial
                SCSI-3 part...MBytes/sec instead of MBits/sec <sigh>

Still neccessary:
-       SCSI troubleshooting "cookbook"
-       PnP, SCAM and some ongoing protocols
-       whatever you may find missing ...

CREDITS:  - Skip Lutz
          - Bertil Hagnell and Todd Plummer for questions that led
            to new chapters
          - Mike Berhan, Paul Blais, Jake Brown, Jay Ice, Paul Matteucci
            and some others that always give advice in IBMHW and CDVEN.
          - the guys I forgot - not many, I hope

        As stated above, this is based mostly on my actual knowledge
        about SCSI. Of course, I got this information from some places.
        Some of these I can remember and/or still use, are:

          SCSI-2 spec (ANSI document X3.131-1994)
          parts of the SCSI-3 drafts
          various articles in c't, Byte and PC Magazine
          Apple "Inside Macintosh" for the Mac connectors

        Today i realized that the german-language MagnaMedia CIS forum
        holds most internet faq's. So, i'll include what i find new in
        the SCSI faq. -Gerhard, 15.9.94

                                TABLE OF CONTENTS

1.              What is SCSI ?
1.1.            SCSI-1
1.2.            SCSI-2
1.2.1.          Fast SCSI
1.2.2.          Wide SCSI
1.3.            SCSI-3
1.3.1.          Fiber Channel
1.3.2.          Serial Channel

2.              Inside the Basics
2.1.            ID's and LUNs
2.2.            Termination
2.2.1.          "Classic" Passive Termination
2.2.2.          Active Termination
2.2.3.          Forced Perfect Termination (FPT)
2.3.            Connectors
2.4.            Cables, Cable Lengths, Repeaters
2.5.            Signal levels
2.6.            Single-Ended and Differential SCSI
2.7.            Synchronous and Asynchronous Transfers
2.8.            Disconnect/Reconnect
2.9.            SCSI or IDE/ATAPI ?
2.10.           Speed Considerations

3.              SCSI and PC's
3.1.            Software Interfaces
3.1.1.          ASPI
3.1.2.          CAM
3.1.3.          SDMS
3.1.4.          LADDR
3.2.            Host Adapters
3.2.1.          BIOS
3.2.2.          Bus Mastering
3.2.3.          Caching Host Adapters
3.2.4.          Sound Cards with SCSI
3.2.5.          Disk-Only SCSI Host Adapters
3.2.6.          ISA, EISA, VL and PCI
3.2.7.          PCMCIA and Parallel-to-SCSI adapters

4.              SCSI and Real Life ...
4.1.            Installing a SCSI Host Adapter
4.2.            Installing SCSI Devices
4.2.1.          Setting Proper Termination
4.2.2.          Finding out and setting the SCSI ID of a new device
4.3.            What can be Wrong?
4.3.1.          Cabling with "Standard" SCSI
4.3.2.          Cabling with Fast SCSI
4.3.3.          Termination and Termination Power
4.4.            SCSI drivers on PCs
4.4.1.          SCSI drivers for DOS
4.4.2.          CAM drivers for DOS
4.4.3.          SCSI drivers for OS/2

5.              SCSI Driver Software (and where to find it)
5.1.            Driver Packages
5.1.1.          CDROM Drivers and Software
5.1.2.          Scanner Drivers and Software
5.1.3.          Removeable and Magneto-Optical Devices.
5.2.            Some Small SCSI Tools
5.3.            Tape Software ( Shareware Only)
5.4.            Programming for SCSI

6.              Some thoughts about SCSI devices (and other interfaces)
6.1.            Hard disk drives
6.1.1.          RAID drive arrays
6.2.            Removeable disk and Magneto-Optical drives
6.3.            CDROM drives
6.4.            Jukeboxes and other media changer devices
6.5.            Tape drives
6.6.            Scanners


APPENDICES:

A.              SCSI Connectors
A.1.            25 pin DB-25 SCSI Connector
A.2.            50 pin SCSI Connectors
A.3.            68 pin SCSI Connectors
A.4.            110 pin SCSI Connector ("L"-cable)
A.5.            Other SCSI Connectors

B.              Some Places to Obtain SCSI Information
                Support BBS Numbers

C.              Termination Diagrams

D.              SCSI and QIC - Any Relations ?


1.      What is SCSI ?

        SCSI ( Small Computer System Interface ) is a general-purpose
        parallel bus system. It originated from Shugart's 1979' SASI
        (Shugart Associates System Interface) and Shugart and NCR
        presented it to the ANSI in 1981.It beacme official in 1986,
        when the ANSI-committee X3T9.2 defined the SCSI-1 spec as
        document X3.131-1986.

        Of course, "general-purpose parallel bus system" means all and
        nothing. What helped SCSI to spread was its very high speed
        (for this time) and - driver problems aside - its flexibility.
        However, it was - and is - the disk and tape interface of choice
        for Unix systems and that's where I first had contact with SCSI
        - I changed from an MFM system with 2 * 80 MB disks and a QIC-02
        tape controller (8 bit) to a SCSI system with a 380 MB disk and
        a SCSI tape, both attached to one 16 Bit SCSI adapter - freed a
        slot, one interrupt and was a _lot_ faster.

        SCSI in all it's flavours is now an acknowledged and very well
        standardized multipurpose interface. SCSI supports a wide
        variety of devices which include hard disks, removeable disks,
        magneto-optical devices, tape drives, printers, processors,
        WORMs, CD-ROMs, scanners, medium-changers (jukeboxes), and
        communication devices.

        With PCs, the most common devices are hard disks, removeable
        devices like MO, WORM, Syquest and Bernoulli disks, CDROMs,
        tape drives and image scanners.

        In the Macintosh world, where SCSI was included in all models
        since the Mac Plus and expansion slots were not available on
        some, there are even some SCSI-based video and network
        adapters.


1.1.    SCSI-1

        SCSI-1 defined a universal 8 bit I/O-Bus that allows connection
        of up to 8 devices including the so-called "host adapter". Every
        device must have a unique ID in the range of 0 to 7. SCSI-1
        was a high-speed bus system, compared to this time's
        peripheral devices.


1.2.    SCSI-2

        SCSI-1 was the first approved standard and lacked some points
        and some definitions. So SCSI-2 development and approval started
        while SCSI-1 still wasn't officially approved. In 1986, when
        SCSI-1 was officially approved, SCSI-2 already was in the works
        until now, when on January 31, 1994, the draft in revision 10L
        was approved by the ANSI Board of Standards Review.
        The official SCSI-2 designation (doc. nr.) will be X3.131-1994.
        As you might remember, most manufacturers used the term "SCSI-2"
        from about 1988 in marketing. This isn't real approved SCSI-2,
        of course, but mostly you can trust this, as the changes were
        not big for "standard" devices. SCSI-2 merely entered a better
        formal definition, removed some oddities and obsolete things,
        added some extensions, and most importantly, added the ability
        to double and even quadruple data transfer speed on the SCSI bus
        with it's "Fast" SCSI and "Wide" SCSI options. Note the key word
        - OPTIONS.

        - The Type-1 connector (DB-50) was removed, high density SCSI-2
          connector alternatives were added to the official options
        - Synchronous Transfers became a standard feature, with optional
        - Fast Synchronous Transfer Mode (Fast SCSI-2)
        - Sync. Negotiation can be invoked by Initiator _and_ Target.
        - 16Bit- and 32Bit-Wide SCSI became a defined option.
        - SCSI bus parity changed from "optional" to "mandatory"
        - Initiators now must provide terminator power
        - Message support became mandatory
        - Command Queueing became a defined option. For a device with
          command queueing needs memory to reorder the commands,
          this - with a little step further - introduced device caches,
          that can be manipulated through the Mode Sense Pages.
        - the Common Command Sets (CCS) for several device classes
          became formally defined.

        The only real possible problem I found with SCSI-2 compatibility
        is, a lot of older host adapters - typically the SCSI initiator
        - can't handle the SCSI-2 Sync. Negotiation when it's started by
        the target. Both the host adapter and device can be easily
        changed to prevent any problem here, and it's rare to begin
        with.


1.2.1.  Fast SCSI

        With SCSI-2, Fast SCSI was defined as an option. Despite the
        tendency of the market to define Fast-SCSI as "different, but
        faster SCSI", Fast SCSI is only an additional synchronous data
        transfer mode with tighter timing to achieve the 10MB/sec max.
        data rate. As with any other synchronous transfer mode, only
        data transfers are synchronous, the commands are transferred
        asynchronous. Fast SCSI is _very_ picky with the SCSI cabling,
        especially with round external cabling. Most external cables
        doesn't support reliable Fast SCSI, the few that do are _very_
        expensive. Fast SCSI is "not recommended" with passive
        terminators. However, if you keep an eye on cable quality, I
        found it working reliable on my system and most others I know.


1.2.2.  Wide SCSI

        Another SCSI-2 option is Wide SCSI. Two flavors are defined, 16
        Bit and 32 Bit. Wide SCSI can be combined with Fast SCSI and so
        can give up to 40 MB/sec data rate.
        Every 8 bits have their own parity bit and also with every 8 bits
        you have the possibility to address another 8 devices. For every
        data bit line selects a device, with 16 Bit Wide SCSI, you can
        address 16 devices, 32 Bit Wide SCSI has 32 possible ID's.
        The X3T9.2 committee defined a 68-pin SCSI cable for 16Bit and
        a combination of a standard 8Bit 'A' and a 68 pin 'B' cable for
        16 Bit and 32 Bit Wide SCSI. However, there is a 110 pin
        'L'-cable at least in discussion that will support 8, 16 and
        32 Bit connections and should be standardized with SCSI-3.


1.3.    SCSI-3

        SCSI-3 is somewhat a revolution in the SCSI world - it defines
        high speed _serial_ interfaces. At the moment, there seem to be
        three of these serial interfaces in the works: Fiber Channel,
        Fiber Channel Low cost and P1394.
        On the software side, there seem to be only some small additions
        for the command sets - a new command set for graphical devices,
        a slight extension to the cache option and so on ... But still,
        this may change ...

        Many device suppliers are currently advertising their products
        as SCSI-3 and this appears to be an attempt to make the consumer
        think he is getting something "better" than SCSI-1 or -2.
        All SCSI devices that support the Common Command Set can be run
        with SCSI-1, -2, -3, and probably SCSI-4 some day. If you see
        this being advertised, ask the suppier exactly how the device
        is different with SCSI-3 implemented and/or supported. You'll
        hear lots of Weasel Words, but no facts. The device just has
        CCS support. Nothing to get excited about, and surely nothing
        to pay extra for!

        The Fiber channel and FC/LC should provide up to 100 MBits/sec
        data throughput, where P1394, also called "FireWire", is defined
        to give up to 200 MBits/sec. P1394 seems to have one advantage
        over Fiber Channel - it's an "isochronous" transport layer, that
        means, it delivers - and should guarantee - a continuous data
        stream. This seems to be what the multimedia people pray for
        - no missing parts in images and sounds.

        There is also a new connector scheme called Single Connector
        Attachment (SCA). SCA uses an 80-pin connector to provide all
        neccessary signals for 8- and 16-bit SCSI devices, including
        power connections, LED-control and so on. It's major advantage
        is the possibility to use SCSI devices as a single plug-in
        module without the need for an additional connector between
        the bus and the device, as it's with today's cheap HD "drawers".
        Although SCA devices should be on the market, I didn't see an
        SCA device 'til now, so I think they'll take some time to show
        up in PCs.

        Also new in this game are SCAM, a SCSI auto-configuration
        protocol, and Plug-and-Play-SCSI, the SCSI part of Plug-and-Play.
        I'll dig inside this and then will add some chapters about...

2.      Inside the Basics

2.1.    ID's and LUNs

        Every SCSI device need to have a unique ID on the bus. For this
        reason, most devices have three ID jumpers to set the SCSI ID
        from 0 to 7. In most cases, ID 7 is reserved for the host adapter.
        ID 0 is for a boot device and is usually a hard drive. ID 1 is
        normally used for a second hard drive, but this is not a require-
        ment. Some host adapter BIOS' or software drivers will notify you
        that the device for ID 0 is not a hard drive if another type of
        device is using this ID. This is not an error, so don't be too
        concerned with the message. ID 2 and up are normally used for
        other devices with ID 2 being popular with CD ROM's. With the
        exceptions of ID 0 and 7, there is no particular ID that *has*
        to be assigned to any device type. Use what you want, the host
        adapter will sort them out with ease.

        Additionally, every ID can have up to seven sub-units identified
        by a LUN (Logical Unit Number). Thus, you can address multiple
        devices through one ID, like dual drives (Bernoulli did this on
        their external Dual Bernoulli Boxes).
        LUNs are mostly used in bridge controllers, that use the LUN-
        subaddressing scheme to emulate a big disk drive with multiple
        smaller disks. Up to eight disks could be combined to a big
        disk drive, where the single drives are addressed by LUNs. A
        special case of these bridge controllers are RAID controllers.

        By using LUNs, theoretically you could attach 49 devices to one
        bus cable (7 IDs * 7 LUNs, without ID 7 for the host adapter),
        if you use all LUNs for specific devices. But LUNs are only very
        seldom used in PC applications.


2.2.    Termination

        The SCSI bus needs to be "terminated". This means, both ends of
        the bus must have a circuit of some sort to eliminate signal
        reflections that would occur from the physical ends of the bus.
        There are various circuit schemes of termination, the two most
        popular are drawn below.
        The termination circuit needs some power, and, to deliver this,
        there is a line called TERMPWR or Termination Power on the bus.
        Mostly, the TP source is the host adapter, for this reason you
        can see fuses on most host adapters, mostly about 1.5 Amp types.

        A more thorough diagram of the various termination
        configurations is in App. C.


2.2.1.  "Classic" Passive Termination

        The "old" passive termination ("Alternative 1" in the SCSI-2
        spec) came with SCSI-1 and simply was made of a 220 Ohms pull-up
        and a 330 Ohms pull-down resistor per signal in a circuit like
        this:

             ?????????????????????????????
            ???     Termination Power (TP) +5V
            ? ?
            ???220 Ohms
             ?                      Signal
        ??????????????????????????????????
             ?
            ???
            ? ?
            ???330 Ohms
             ?
             ? Ground 0V
            ???

        This termination scheme works good, but it draws a lot of power
        from the TP provider.



2.2.2.  Active Termination

        Active termination ("Alternative 2" in the SCSI-2 spec) consists
        of a 110 Ohms resistor per signal pulled up to a 2.85 volts power
        supply. Most SCSI-2 and all Fast SCSI-2 devices support this
        termination type.

        ?????????????????????????????????????????????? TermPWR
        ?
        ?                                     R3
        ?                                 ???\/\/\/??? -DB(0)
        ?                                 ?              .
        ?                                 .              .
        ?   Voltage Regulator             .              .
        ?   ???????????                   ???\/\/\/???   .
        ????? 2.85 V  ?????????????????????              .
        ?   ??????????? ???R1?    ?       ???\/\/\/???   .
        ?         ?     ? ?  ?C2  ?C3     ?              .
        ?C1       ?     ???  ?    ?       ???\/\/\/???   .
        ?         ????????   ?    ?       ?              .
        ?               ???  ?    ?       ???\/\/\/???   -I/O
        ?               ? ?R2?    ?           R20
        ?               ???  ?    ?
       ???              ??? ???  ???


2.2.3.  Forced Perfect Termination (FPT)

        There is another Termination scheme out there, called FPT.
        According to what I  understand, it uses diode clamps to
        two regulated voltages to eliminate under- and overshoot.
        Clamp values should be at about 3.0 and 0.5 volts.
        The clamping to two regulated voltages in the signal range
        instead of clamping to TP and ground gives the diodes an
        earlier switching point and thus enhances signal quality, as
        the over- and undershoot elimination process begins earlier
        in the signal.
        From its concept, FPT should be even better than "normal"
        active termination.
        I have no real FPT circuit, as I have never seen a FPT terminator,
        but the rough schematic below should be basically right.


        TP ????Voltage Regulator
            ???????
            ? VR1 ?
            ???????
       about  ?   ???????           + 3 V
       3.6 V ?????? VR2 ????????????????
              ?   ???????         -+-
              ?                   /_\ D1
              ?                    ?
              ?        pull-up     ?
              ?????????/\/\/\?????????????????????????? Signal
              ?        resistor    ?
              ?                   -+-
              ?                   /_\ D2
              ?   ???????          ?
              ????? VR3 ????????????????
                  ???????          + 1.2 V



2.3.    SCSI Connectors

        There are many different connectors for SCSI. Some of them were
        defined with SCSI-1 and now obsolete, like the DB-50 connector.
        The most common ones today are the 50-pin Centronics-type SCSI-1
        connector, the 50-pin High Density SCSI-2 connector and the DB-25
        connector Apple introduced on their Macintosh computers.
        Most new host adapters and external devices use the SCSI-2 HD
        connector and in this case you normally can trust that it's a
        "real" SCSI-2 device.
        The pinouts of the common connectors are shown in Appendix A.


2.4.    Cables, Cable Lengths, Repeaters

        Cable lenghts were defined up to 6 meters maximum in SCSI-1 for
        a single-ended SCSI bus and up to 5 MHz data rate. So, the
        variants

        - "standard" asynchronous transfer (mostly up to 3.3 MBytes/sec)
              -and-
        - "standard" synchronous transfer (5 MBytes/sec)

        can have up to these 6 meters _total_ cable length for the bus.
        Keep this in mind, if you use long cables, and don't forget the
        cable lengths for the internal device cables.
        With Fast SCSI-2 the highest possible data rate doubled to 10MHz
        in synchronous mode and - you might guess it - the cable length
        was halved. So, if you use Fast SCSI-2 devices, your _maximal_
        SCSI bus length is 3 meters.
        SCSI-2 allows up to 10 cm cable "stub" length from the device
        to the main bus cable. Sometimes this length is exceeded,
        causing higher capacitive loading. Sometimes this even works,
        for the maximal allowed stub length for any device-to-device
        connection is 20 cm, but don't _expect_ that to work reliably
        over 10 cm, especially with 10 MHz Fast SCSI-2 signalling.

        A differential SCSI bus can use the full cable length up to 25
        meters (approx. 82 feet) and keep the max. data rate of 10 MHz.
        This is especially important with external devices, as most
        external single-ended cables can't cope with 10 MHz.

        All cables should have matching impedances - not easy (means
        impossible) with flat and round cables on the same bus.

        There are a lot of rules and rules-of-thumb for SCSI cables
        that make a good external SCSI cable an _expensive_ cable.
        The SCSI documents have lots of technical details about cabling.
        For example, a three-layer wire-pair placement scheme with
        defined impedance rules is recommended for external cables that
        makes the cable not so easy (means expensive) to produce.
        Therefore, there are a lot of external cables with too low
        impedance in the 50 to 70 Ohms range instead of the recommended
        90 to 110 Ohms.

        In a few years of practice with SCSI, I saw a lot of errors and
        faulty behaviour suddenly go away with a change to high-quality
        cables.
        Without trying to advertise - Amphenol seems to be one source of
        high-end SCSI cables - at least Adaptec recommended them until
        they started selling (very good !) cables themselves.

        There are some "repeater" devices for SCSI that seem to work.
        Basically, these are fast(!) bidirectional signal amplifiers
        including termination for each side. Personally, i don't know
        one, but iX, a german Unix magazine, mentioned a device called
        "ACI-1074A" from a company called "Applied Concepts" - whoever
        is this...


2.5.    Signal levels

        Single-Ended SCSI signal levels vary from 0V to +5.25V. All
        signals are active low. True is a voltage level between 0 and
        +0.8 V and false is a voltage between +2 and +5.25 V.
        Differential SCSI signals conforms to the EIA RS-485 interface.


2.6.    Single-Ended and Differential SCSI

        There are two different electrical SCSI interfaces, Single-Ended
        and Differential SCSI.
        Single-Ended, "Standard" SCSI has (sic!) single ended TTL trans-
        ceivers that allow up to 5 MHz data transfer rates with up to
        6 meters cable length or up to 10 MHz data transfer (Fast SCSI)
        with up to 3 meters cable length.
        Differential SCSI has RS-485-style transceivers that allow up to
        10 MHz data transfer rate, but with cable lengths up to 25 meters
        and with much better S/N conditions.
        Important is, Single-Ended and Differential devices are _not_
        electrically compatible with each other. If you try to mix them,
        you'll likely end up in destroying the Single-Ended devices on
        the bus and - less probably - even the differential device(s).


2.7.    Synchronous and Asynchronous Transfers

        SCSI can use two handshaking modes, Asynchronous and Synchronous.
        The main difference is, Asynchronous is basically a "classic"
        REQ/ACK handshaking system for each data packet, where with
        Synchronous, multiple REQ's can be issued before receiving ACK's,
        thus giving a big performance plus.


2.8.    SCSI Disconnect / Reconnect

        Typically, not all SCSI commands can be processed immediately.
        For example, rewinding a tape or scanning a page with an image
        scanner can take a long time, as can seeking to a sector on a
        CD-ROM or hard disk.
        Such operations can tie up the CPU unnecessarily while waiting
        for the device to complete the task. For these cases, SCSI has
        a defined way for a device to disconnect from the SCSI bus, thus
        freeing the SCSI bus for other SCSI transactions or at least
        freeing the CPU from being tied to the SCSI bus waiting for the
        operation to complete.

        When the disconnected device completes this operation, it can
        reconnect to the bus, causing a hardware interrupt.
        When this interrupt occurs, bus control is returned back to that
        SCSI operation, which then completes.

        This SCSI "disconnect/reconnect" mechanism provides overlapped
        I/O functionality, thus allowing multiple outstanding SCSI
        requests with different devices to be processed at the same
        time. Especially with devices with higher typical command times,
        this is a very valuable SCSI feature.


2.9.    SCSI or IDE/ATAPI ?

        Much is talked about SCSI speed higher or lower than ESDI or
        ATAPI. This discussion generally only covers disk drives, without
        comparing the system in terms of performance or flexibility.

        At work, over years I've tested a lot of disk drives with ATAPI
        and SCSI versions against each other, and generally, you won't
        find much difference in speed between the various interfaces,
        as they all are fast enough to handle disk drives. Also, I've
        seen a lot of comparisons where the contenders were choosen
        accordingly to the opinion they should prove.
        Personally, I find it of more interest that SCSI, as a universal
        8-bit interface, without problems reaches the speed of a 16-bit
        disk interface like ATAPI.
        For both interfaces deliver similar speed, I believe the "SCSI
        is faster/better" - "NO! ATAPI is faster/better" debate
        completely misses the point.
        If just a disk interface is needed for a desktop PC, IDE/ATAPI
        is significantly cheaper, mainly for it's mass production and
        the cheaper adapters.
        If it comes to multiple devices as CDROM, tapes or scanners,
        this changes. SCSI is _very_ flexible here, and today, drivers
        are not the problem they were in the past. Also, the ongoing
        SCSI integration in motherboards will drop SCSI cost.
        So, the battle is still open <g>. Skip Lutz says the battle is
        long over and the SCSI Warriors are running around stabbing the
        wounded, so you decide which way it went. <VBG>


2.10.   Speed considerations

        A small maximal speed table for the SCSI transfer modes could
        read like this:

        Transfer type           Bits    Speed/Data rate

        Asynchronous             8       3.3 MBytes/sec
        Synchronous              8       5.0 MBytes/sec
        Fast Synchronous         8      10.0 MBytes/sec
        Wide Synchronous        16      10.0 MBytes/sec
        Fast Wide Synchronous   16      20.0 MBytes/sec
        Wide Synchronous        32      20.0 MBytes/sec
        Fast Wide Synchronous   32      40.0 MBytes/sec

        When reading things like "data rate buffer-to-bus 10 MB/sec"
        with SCSI devices, keep in mind that this doesn't mean the real
        sustained data rate your hard disk or CDROM can deliver - it's
        just the speed the device can post its cache contents to the
        SCSI bus. With hard disks, you will mostly find statements like
        "internal data rate 30-47 MBit/s", what would mean in this
        example, the disk drive could transfer 5,875 MBytes/sec raw data
        internal. But this value cannot be reached - you'll loose some
        speed due to the disk architecture: If you have a disk drive with
        60 sectors per track and 5400 rpm, the value could be not better
        than:  ( sectors * bytes/sector * rpm ) / seconds per minute,
                  (60    *   512        * 5400) / 60   = 2,765 MBytes/sec
        Add to this some command overhead, head movement times and so on,
        then you get an impression, how realistic these values are ...
        Another good example are CDROM drives - my Toshiba 3401 has
        330 kB/sec sustained data rate, but its burst data rate can go
        up to 4.2 MB/sec in synchronous mode.


3.      SCSI and PC's

        PC-specific SCSI standards include mostly software depending on
        the operating system. However, if you choose SCSI for your PC,
        think about your needs before buying a SCSI host adapter.

3.1.    Software Interfaces

        Besides various vendor-specific implementations like, for
        example, Bernoullis OAD (Open Architecture Drivers) there are
        a few vendor-independent standards:

        - ASPI for DOS, OS/2 and Netware
        - CAM/SCAM for DOS (and OS/2 ?)
        - LADDR for OS/2 1.x

3.1.1.  ASPI

        ASPI stands for Advanced SCSI Programming Interface. Mainly, it
        originated at Adaptec and was soon adopted by major companies.
        ASPI provides a communication layer to the SCSI adapter and the
        devices without the need to know about the host adapter - all
        communication is made to the ASPI interface. So, basically the
        host adapter manufacturer writes an ASPI driver for his host
        adapter and he's in business without the need of writing a new
        CDROM driver, a disk driver and so on.
        Most actual tape backup software needs ASPI as a communication
        layer or - at least - support it.
        ASPI generally exists for DOS, OS/2 and NetWare. Also, Adaptec
        supplies ASPI for Windows with their host adapters, and ASPI for
        Win32 should follow soon. I could see ASPI for Windows support
        only with Adaptec controllers, but other manufacturers should
        (hopefully) follow soon. What's missing (imho) is an ASPI layer
        for Unix... But this seems not so easy with Unix's kernel/driver
        concept.

3.1.2.  CAM

        CAM is the "official" ANSI software interface for SCSI devices.
        I'm not absolutely sure if it's a draft or a standard yet.
        However, it seems to be used only by NCR and Future Domain with
        their SCSI host adapters, and at least FD supplies an additional
        ASPI-over-CAM driver with their boards.

3.1.3.  SDMS

        NCR now calls its CAM drivers NCR SCSI Device Management System
        (SDMS). SDMS is based on a standard SCSI BIOS, that can be ROM-
        (bootable) or RAM-based (non-bootable) to address the host
        adapter hardware. The SCSI drivers link to this BIOS. Generally,
        a SDMS driver is completely hardware-independant. One special
        case with SDMS is that NCR also offers so-called "concatenated"
        SCSI device drivers, where a SCSI-chip specific SCSI BIOS is
        appended to the driver code.
        See also - CAM drivers for DOS


3.1.4.  LADDR

        LADDR was Microsoft and IBM's (and others like Adaptec and
        Compaq...) approach to embed a disk driver and SCSI interface
        into OS/2 1.2 and 1.3. For OS/2 1.x's small market share and
        LADDR's limitation to a single OS, it didn't get bigger
        acceptance and ha been replaced by direct SCSI support
        beginning with OS/2, version 2.0.
        The concept wasn't bad, however. LADDR (LAyered Device DRiver)
        support was built in OS/2 1.3 (and it was possible to integrate
        it in 1.2).

        A concept diagram would look like this:

        ????????????????????
        ? OS/2 File System ?
        ????????????????????
         ????? ????? ?????
         ?   ? ?   ? ?   ?
         ?TSD?-?VSD?-?BID?-???????????
         ?   ? ?   ? ?   ?           ?
         ????? ????? ?????           ?
           ?     ?     ?             ?
           ??????????????      ????????????????
           ?    IOS     ?      ?              ?
        ????????????????????   ?Host Adapter  ?
        ?   OS/2  LADDR    ?   ?              ?
        ????????????????????   ????????????????

        Module types were:

        BID - Bus Interface Driver, the host adapter specific driver

        VSD - Vendor Specific Driver, drivers to modify or enhance the
              operation of specific peripherals. VSD's were used to add
              features or correct incompatibilities with devices.

        TSD - Type Specific Driver, the driver for a specific type of
              peripheral, for example CDROM drives

        The drivers were:

        - BASEDD01.SYS, IOS12.sys, IOCONFIG.SYS, all from Microsoft, for
          implementing LADDR.

        - a host adapter .BID file, for example WD7000AX.BID. Some of
          these came with OS/2, otherwise were available from the host
          adapter vendors.

        - STDDISK.VSD and DISK.TSD, both from Microsoft, for disk
          integration.

        - CDROM.VSD, CDROM.TSD and CDROM.FSD, all from Microsoft, for
          CDROM operation.

        - correct .VSD and .TSD modules for addressing tape devices or
          other SCSI devices.

        If you look at the actual driver concept in OS/2 2.x, you will
        see that isn't much difference - mostly just the names changed.

3.2.    Host Adapters - Variants and Terminology

        There are some flavors of SCSI host adapters; with and without
        BIOS, with or without cache, ISA 8 Bit or 16 Bit, EISA, VL and
        PCI bus interfaces, SCSI-IDE combo adapters, standalone or
        integrated with sound cards, disk-only adapters, and, and ....
        Let's try to bring some light in here ...

3.2.1.  BIOS: If you want to boot from a SCSI device, you need a SCSI
        BIOS, that handles the boot process, for a standard PC BIOS
        doesn't know anything about SCSI. This BIOS handles the interface
        between SCSI's Logical Block addressing scheme and the PC's
        Cylinder/Head/Sector scheme.

3.2.2.  Bus mastering: Some PC host adapters use "DMA Bus mastering" to
        achieve higher data rates from the SCSI host adapter's buffer to
        system memory. Bus mastering is a method to move data over the
        system bus by bypassing the CPU and giving control over the bus
        to the peripheral controller, so that the bus can be used up to
        its maximal data rate without the CPU overhead of a 'normal' I/O
        transfer. On ISA PCs, don't forget that ISA doesn't have logic
        to prevent concurrent bus master accesses, so having - for
        example - an Adaptec 1542 and a busmastering network adapter
        like the NE2100 will give you sudden lockups and other trouble.
        Also, remember that an ISA card can "see" only 16MB RAM on the
        bus, so, with a busmastering ISA adapter and more than 16MB
        RAM, you also may have trouble. All this are additional points
        for EISA, VL and PCI bus systems.

3.2.3.  Cache host adapters: a hardware cache is a good method to speed
        up the disk interface. However, you should define if your
        environment can benefit from a hardware cache _before_ buying it.
        The pro-cache and the anti-cache societies fight "holy" wars
        about cacheing, so please allow me to clarify that the following
        is my _personal_ opinion on this theme:

        A cache controller is a good investment for multitasking environ-
        ments like Unix and especially Network servers. With DOS, it's
        generally better to spend the money for main RAM than for cache
        RAM and use a software cache.
        My personal experiences are: DPT 2012 and AMI EISA SCSI adapters
        in Novell and NFS Servers brought _big_ performance gains,
        especially with heavy-loaded servers.
        In DOS systems, a performance gain was visible, but it didn't
        equalize the price tag, especially with the expensive EISA cache
        controllers. However, this may differ with different cache
        controllers, as the possible performance gain is strongly
        dependent on the cache algorithm.

3.2.4.  Sound cards with SCSI: There are basically two types of them:
        one has a full-fledged SCSI adapter integrated on the PCB,
        without any difference to a standard SCSI host adapter without
        BIOS. One example for this type is the SoundBlaster 16/SCSI,
        with an Adaptec SCSI chip on the board. The other variant I know
        about is the ProAudio Spectrum with a SCSI interface, that's
        "embedded" into the sound card ports.
        The PAS type is limited in speed, but not in SCSI functionality.
        If you get standard drivers for them, they all give you full
        SCSI capabilities, but you can't boot from them. If you want to
        boot from a SCSI disk, you need a full-fledged SCSI adapter with
        BIOS. New in the market is Adaptec's SCSI Audio Machine AMM 1570.

        It combines a sound card and a full-featured host adapter with
        SCSI BIOS. Its sound part implements General MIDI, but i wasn't
        impressed by its sound quality compared with my PAS and
        especially the TurtleBeach. The SCSI part seems a bit slow
        compared with a standard SCSI adapter and i don't like that it
        has jumpers. To me, it seems a bit too expensive with a list
        price of about $500 here in Germany.
        However, it's a full-featured and bootable SCSI host adapter
        and sound board in one package. For the idea seems good, it
        should get competitors soon.

3.2.5.  Disk-only SCSI host adapters: Mostly the Seagate ST-01 and ST-02.
        These adapters had their time when SCSI was a new disk interface.
        As they could be used only for disks and didn't have standard
        drivers for ASPI or CAM, they soon became obsolete.

3.2.6.  ISA, EISA, VL and PCI: clearly the PC bus affect system
        performance. As for example the Adaptec 1542 supports DMA bus
        mastering speeds up to 10 MByte/sec, it would be fast enough
        for Fast SCSI-2. However, most ISA designs support only 5MB/sec
        DMA speed, so the ISA bus is a bottleneck with fast SCSI devices.
        EISA busmasters can transfer up to 33MBytes/sec over the bus, so
        in this case you really can benefit from faster devices, as the
        bottleneck is the device or the SCSI bus here.
        The same is true for VL and PCI SCSI host adapters. Also, if
        you want to have more than 16MB of RAM, you bypass some
        potential problems with the more advanced bus systems. (see
        also 3.2.2. - Bus mastering)
        PCI boards have a speciality: Normally the SCSI BIOS is part of
        the SCSI adapter, but there are PCI boards with SDMS (NCR SCSI
        Device Management System) support in the BIOS, but without SCSI
        chip. So, for these boards, you can get cheap PCI SCSI adapters
        without BIOS, only with the NCR 53C810 chip on it, but never-
        theless bootable from a SCSI disk. So, with a PCI board, the
        best choice is one with the SCSI chip on it.

3.2.7.  PCMCIA and Parallel-to-SCSI adapters: I have very limited
        experience with both of these; Personally I use a Trantor
        T348, at the office there are some different parallel-to-SCSI
        devices. All of them work and all share the same experiences.
        My Trantor T348 seems to be a stable and - if the parallel
        port allows it - fast SCSI interface. A friend of mine uses
        this T348 for backing up his notebook to a DAT tape and this
        works without flaws.
        However, the T348 and its pre- and successors T338 and T358
        (an EPP variant of the T348) need a SCSI device that provides
        termination power, as they draw their operating current from
        the SCSI bus. This may give you problems, as normally I disable
        termination power on my external devices, for only one device
        on the bus (normally the host adapter) should provide TP.
        Keeping this in mind and acting accordingly, Parallel-to-SCSI
        adapters seem to be a possible solution for attaching SCSI
        devices to a system without a SCSI adapter, but they are limited
        in speed, especially with parallel ports that work only uni-
        directional.
        PCMCIA - I never used a PCMCIA SCSI adapter, so I can't comment
        on them. However, with the full PCMCIA driver set on my Toshiba
        needing about 130 kB of memory, plus the SCSI drivers, I can't
        take PCMCIA too serious with DOS, especially when working with
        SCSI or network drivers. OS/2 should solve this problem, though,
        as memory isn't a primary concern there.

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.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 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.

        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, where the "2" jumper is called
        ID1 and the "4" jumper is called ID2.
        If you play with Wide SCSI, you will have 4 (8-4-2-1) or even
        5 (16-8-4-2-1) jumpers for ID selection.

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. However, i had some cases whereIi got a system up and
        running only if I apply Termination on both ends _and_ on the
        host adapter.
        I have 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 when I turn off the host adapter's termination,
        _nothing_ works!
        So, don't be scared if a setup works that shouldn't - I verify
        it again and if it works, try to live with it.

        PS: last week (september '94) this suddenly changed - no device
        or cable was changed, but the system suddenly refused to boot
        and i had to disable the adapter's termination - now the
        termination scheme is correct, but i don't know why it didn't
        work before ..... -Gerhard


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-dependant drivers, there _could_ be some
          application-specific parts.

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 dependant 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 is
                specific to Adaptec's VASPI driver set i use and
                doesn't apply on the standard OS2ASPI.DMD.

          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
                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.

          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.

5.      SCSI driver software (and where to find it)

        Some thoughts about SCSI utilities and software here....
        Most driver packages come with disk formatting utilities and
        some other stuff. However, there are some other packages and
        general utilities.

5.1.    Driver packages

        The best known SCSI driver packages (at least for me) are Corel
        SCSI, Adaptec's EZSCSI, Trantor's SCSIWorks and Future Domain's
        PowerSCSI!. Of course, there are many others I can't mention -
        I simply don't know about them.

        Most versions of these packages I've seen all include various
        ASPI or CAM and ASPI drivers, additional drivers like CDROM
        and hard disk drivers and some basic utilities like low level
        formatter and partition manager.

        Lately the vendors tend to add some value to the packages:

        EZSCSI 3.0, for example, bundles the drivers with Windows ASPI
        driver and DLL, a PhotoCD viewer, various help files and a tape
        backup program, CD players and a SCSI interrogator. Also, a HP
        scanner driver for the SJIIx series is included, although this
        seem to be a bit unstable with the actual ASPI driver versions.
        So, it seems to be worth a try to use the ASPI driver from
        EZSCSI 2.03 when using a HP scanner with these adapters.

        Corel SCSI, a more hardware-independent approach, can "sit" on
        the vendor's ASPI driver (it supplies a lot of these, also for
        manufacturers that don't have ASPI drivers of their own) to
        give support for CDROM, scanners, disks, tapes and nearly
        whatever devices are there...
        Even CDROM burners and SCSI printers have some support.

        The last version of SCSIWorks! i've seen also has a HP scanner
        driver and includes TapeMate II, a relative good tape backup
        program for DOS.

        Future Domain's PowerSCSI! contains CAM drivers for their host
        adapters, a CDROM driver and CD-Audio tool, a disk formatter and
        a SCSI device analyzer - nice tool if you have a FD adapter.

        There is also a $40 shareware SCSI driver package called MSDRVR
        from a japanese company called "Micro Staff" with ASPI-based
        disk, MO and CDROM drivers on CompuServe. I didn't try it, but
        it may be worth a look (MSDRVR.ZIP, IBMHW forum).

        If you look specifically for NCR's 53c8xx drivers, the german
        c't BBS at ++49-511-5352301 is worth a look. c't has a deal with
        NCR and major motherboard manufacturers like Asus, J-Bond and
        Gigabyte to have the latest drivers and Flash BIOS versions on
        their BBS for download. I don't know if it's allowed to upload
        these drivers to CIS or other BBS, but i didn't find an explicit
        "NO" in my log files.


5.1.1   CDROM drivers and software

        There are different SCSI CDROM drivers. Some of these use a
        standard interface like ASPI or CAM as a base and some directly
        address the hardware. When looking for a CDROM driver, keep in
        mind that it not only must support your drive, but also your
        host adapter or your SCSI driver interface. So, for example,
        there are some flavours of Trantor's TSLCDR.SYS. Some of them
        work over ASPI, but most of these supplied with sound cards are
        dedicated to the sound board's hardware. The same happens with
        some other CDROM drivers.

        The drivers I know personally are ASPICD.SYS from Adaptec,
        Trantor's TSLCDR.SYS (ASPI and hardware-specific types) and
        Toshiba's MDSCD_AS.SYS. All of these work with my Toshiba 3301
        and 3401 drives, just that MDSCD_AS.SYS locks up when a multi-
        session PhotoCD is in the drive on startup.

        There are some packages out there to read digital audio data
        from the drive. CorelSCSI 2.0 includes two such programs for
        DOS and Windows. Also, there is Jim McLaughlin's CDDA 1.0 and
        CTCDREAD from c't, a german magazine. According to CDDA's doc,
        a few others exist on the internet - however, i know none of
        them. CDDA 1.0 works with various Apple, Chinon, NEC, Sony and
        Toshiba drives. Also, it has a MSCDEX-only mode that may work
        on other, also non-SCSI drives.

5.1.2.  Scanner drivers and software

        A lot of SCSI scanners that come with dedicated SCSI adapters
        also have "standard" drivers to attach the scanner to another
        SCSI host adapter and address it over ASPI or CAM interfaces.
        For the HP Scanjet IIxx series, this driver is called SJIIX.SYS.
        My own Epson GT-6500 works flawlessly over ASPI with EPSON.SYS.
        If you don't have a generic SCSI driver for your scanner, ask
        your dealer about it and/or look in the vendor's forum or the
        Graphic support (GRAPHSUP) forum on CompuServe. Also, there are
        some drivers in forum sections of OEMs like Vobis (This german
        stores have OEM models of some Microtek and Mustek scanners and
        so keep the drivers in their forum)
        If you don't find anything, Corel SCSI 2.0 is worth a look.
        The Corel guys support a lot of different scanners with their
        generic TWAIN-over-ASPI support.

5.1.3.  Removeable and Magneto-optical devices.

        There seem to be basically three types of removeable disks in
        the market: magneto-optical drives, Bernoulli and Syquest disks.
        I don't have access to a Syquest, but I use my Bernoulli and a
        MO drive with ASPIDISK.SYS under DOS. With OS/2, there is a
        driver for Magnetoopticals (OPTICAL.SYS), and the Bernoulli
        is supported as a very big floppy disk with the standard drivers.
        IOMega's OS/2 drivers work by bypassing OS/2's driver concept
        with IOMega's own (slow) SCSI adapters, so I never tested them.
        Generally, if possible, I try to use standard drivers, not the
        vendor-specific ones, for I get better compatibility with the
        "standard" ones.

5.2.    some small SCSI tools

        Over times, I collected various SCSI tools that came with host
        adapters or as a support aid from vendors. There are some useful
        utilities that might save you time. So, here a list of some of
        these niceties:

        NCR's GANGCOPY.EXE copies complete SCSI disks that are attached
        to a NCR CAM-compliant host adapter. It can be very useful for
        dealers or support staff with big standard configurations - copy
        the master and then mount the copy into the new PC.

        HP's SCSI driver pack for the Scanjet II scanners has a tool
        called FindSCSI.EXE. It scans for ASPI and CAM drivers, then
        displays the attached devices like this:

           ADAPTEC AHA-1x4x is ASPI Host adapter 0.
                 QUANTUM PD425S       at Address 0, Stat 0.
                 DEC     DSP3085S-B   at Address 1, Stat 0.
                 TANDBERG TDC 3600    at Address 2, Stat 0.
                 TOSHIBA CD-ROM XM-33 at Address 3, Stat 0.
                 SDI     LaserStor    at Address 4, Stat 0.
           CAM manager is NOT present

        Also, Conner supplies ASPIINFO.EXE with their SCSI backup
        software. It uses only ASPI, but displays more information.
        I think that I saw ASPIINFO originally on CIS, so it may be
        freely available.

        Also, there is a tool called SHOWSCSI that started as a demo
        program for the c't ASPI library. It is basically a small clone
        of Adaptec's Windows-based SHOWSCSI program. Output is like:

         ???????????????????????????????????????????????????????????????
         ? Host Adapter #0                                             ?
         ???????????????????????????????????????????????????????????????
         ? Host Adapter SCSI_ID: #7                                    ?
         ? ASPI-Manager        : DOS SCSIMGR 3.3                       ?
         ? Host Adapter ID     : ADAPTEC AHA-1x4x                      ?
         ???????????????????????????????????????????????????????????????
         ???????????????????????????????????????????????????????????????
         ? Host Adapter #0 - SCSI ID 0 - LUN 0: Disk Device            ?
         ???????????????????????????????????????????????????????????????
         ? Device Information             ? Miscellaneous              ?
         ?   Vendor ID  : QUANTUM         ?   Device Type : SCSI-2     ?
         ?   Product ID : PD425S          ?   Capacity    :  406 MByte ?
         ?   Revision   : 606_            ?   Bytes/Sector:  512 Byte  ?
         ???????????????????????????????????????????????????????????????
         ?  SCSI-Features                                              ?
         ?    [?] Synchronous Mode          [ ] WIDE SCSI (16-bit)     ?
         ?    [?] SCSI Linking              [ ] WIDE SCSI (32-bit)     ?
         ?    [ ] Command Queuing                                      ?
         ???????????????????????????????????????????????????????????????
         ???????????????????????????????????????????????????????????????
         ? Host Adapter #0 - SCSI ID 1 - LUN 0: Disk Device            ?
         ......
        and so on - you get the idea.

        Seagate has a tool called ASPIID, that shows lots of more-or-less
        useful information about SCSI disks. Also seen on CompuServe...

5.3.    Tape software (only Shareware)

        There are a few Shareware or Freeware TAR implementations out.
        The first I ever saw was Greg Shenaut's ASPITAPE.SYS and PCTAR
        combination. If I remember right, ASPITAPE.SYS is $20-Shareware
        and PCTAR is freeware. According to my test-experience, it works
        flawless, but the TAR is somewhat limited in its possibilities.

        At the moment, I use GNU Tar for DOS and OS/2. I found GNU Tar
        for DOS on CompuServe in the IBMHW forum, GNU Tar for OS/2 in
        the OS2USER forum. Both work OK with my systems and any other i
        tested, and GNU Tar is IMHO the best TAR in the world.
        ASPITAPE/PCTAR should be in IBMHW also or in the UNIXFORUM.


5.4.    Programming info for SCSI

        At the moment, I don't know how to obtain CAM programming info.
        However, NCR's SCSI BBS surely should be a good point to start
        searching.

        ASPI information can be obtained from Adaptec BBS. There is a
        very good ASPI programming lib for ASM, C and Turbo Pascal from
        c't, a german magazine. I'll upload what I have to the German
        computer forum GERNET in the next days (section "c't"). I'm not
        sure if i'm allowed to upload it to IBMHW, so that must wait
        'til i'm sure.

6.      Some thoughts about SCSI devices (and other interfaces)


6.1.    Hard disk drives

        SCSI was always a high-end interface for hard disks. For it was
        expensive, it naturally showed up only in high-end disks. At the
        moment, you'll see that all "state of the art" hard disks use
        SCSI and the generation before (in capacity/technology terms)
        gets equipped with IDE/ATAPI interfaces for the mass market.
        The point where this technology transfer comes in changes
        slightly - now there are 1GB+ ATAPI and EIDE hard disks, but the
        2GB+ range is still - i think - a SCSI domain.


6.1.1.  RAID drive arrays

        RAID is a technology that's nearly "married" with SCSI. RAID
        is a method to combine two or more disk drives to a bigger
        logical drive with or without redundancy/fault tolerance.
        The acronym RAID (Redundant Array of Inexpensive Disks) tells
        the main reason why it came up - either combining cheap disks
        to sell a disk system for much more money than the disk drives'
        cost <g>, or combining drives to get a bigger drive that was
        possible with a single drive.
        Now, RAID is primarily a security option, for it's actual used
        types add redundancy to the disk system to be able to swap a
        defective disk without using data.

        RAID exists in several levels ordered by numbers;

        RAID 0, called "striping", combines two or more disks to a big
        logical disk drive. The data is distributed between the disks
        by a "striping factor", that means, data are separated by blocks
        of, let's say 32 kByte, between the disks. This could, not
        neccessarily must, give also better performance with big files,
        for data come from parallel drives.
        Raid 0 gives no security plus.

        Sometimes you'll see "disk spanning" advertised as a RAID 0
        feature. Spanning isn't RAID, though, as it is just combining
        two or more disks to a bigger logical one by adding up the
        sector numbers without striping. Spanning was mostly used in the
        past, when single disks didn't get over 1GB.
        Spanning was easy implementable in driver software. SpeedStor's
        abilities, for example, also include disk spanning.

        RAID 1, also called "disk mirroring", adds no capacity, but
        enhances security by reading/writing the same data from/to two
        disks. With an intelligent two-channel controller, this can
        sometimes lead to a small performance plus on read operations,
        for - if all disks can read and write simultaneously - the first
        disk completing the read process sets the "time mark". Write
        operations normally become slower, as the write must be done on
        all drives before it's completed.
        In real world, it's normally a speed brake, at least its software
        variants.

        RAID 2 uses a dedicated drive for error-correcting information.
        The high redundancy of RAID 1 (2 GB disks for 1 GB data) was
        reduced by using Hamming-codes for the correction data to about
        40%. RAID 2 needs ECC error correction built-in in all disks.
        In the RAID 2 model, striping is implemented at bit-level, that
        means, bit 0 goes to disk 0, bit 1 to disk 1 and so on...
        However, i never saw or got info about a RAID 2 system, for they
        would be very expensive to implement.

        RAID 3 and 4 consists of at least 2 data drives and a dedicated
        ECC data drive. Data is striped between the disks, typically in
        byte-packets and XOR combined for the ECC drive. Typically, the
        performance is good with large file reads, worse with small file
        accesses or many writes on a network server.
        RAID 4 used very high striping factors, thus giving better
        performance than level 3, but still somewhat slow, for the ECC
        drive still has to be used on _every_ disk write access.

        RAID 5 distributes the ECC data between all drives, so the
        bottleneck of level 3 and 4, the dedicated ECC drive, vanishes.
        So, disk accesses can overlap, thus giving better performance.

        RAID level 7 i saw only once in a high-end workstation cluster.
        Level 7 systems normally have a big (200-500 MB) cache and lots
        of disk channels or even workstations. ECC data are calculated
        and maintained in the cache; mainly for this reason, performance
        is very good and can be scaled up by adding cache RAM and/or
        disk channels.


6.2.    Removeable disk and Magneto-Optical drives

        All removeable devices i used myself started as and still are
        SCSI devices. The only other devices i know are Syquest's Puma
        ATAPI drive and an older Sony MO with an ESDI interface and a
        special interface card.


6.3.    CDROM drives

        SCSI CDROMs mostly share the CDROM Common Command Set. This
        means, all these CDROM drives work with a standard driver, at
        least in their data mode. However, the audio commands are not
        standardized, so you might encounter driver problems here, when
        installing a brand-new drive with older drivers. All drivers
        i know default to data-mode only in this case.
        Older NEC drives can be a bit difficult here, especially the
        portable CDR-35 and CDR-36 models. Their SCSI implementation
        is described best as "bold" - simply "bad" isn't enough here.
        I got my old CDR-35 working _only_ with a Trantor MiniSCSI
        parallel adapter and only, if it was the _only_ device on the
        bus, but not with various Adaptecs and also not with the FD
        adapters i could test with.
        The CDR-73/74/83/84 drives mostly work, if "SCSI parity" and
        "Synchronous Negotiation" are disabled for these IDs or the
        whole bus.


6.4.    Jukeboxes and other media changer devices

        Jukeboxes for all types of media (CDROMs, WORMs, MOs, DAT
        cartridges) are generally available as SCSI devices only, as
        SCSI is the only standardized interface that supports them
        in PC architectures. Either each medium gets a dedicated ID
        that can be addressed by the PC or the different media are
        combined to a single structure.
        Of course, the various Mainframe interfaces are also supported
        by devices like WORM changers - these devices originally came
        from this "Jurassic park" world into the lower-end system worlds
        like workstations and PCs.


6.5.    Tape drives

        Professional tape drives started with the QIC-36 and QIC-02
        interfaces, then fast tended towards SCSI. For the lower-end
        market, the QIC consortium defined QIC-107 and -117, the
        floppy-disk based interfaces for the QIC-40 and QIC-80 mini-
        cartridge tape drives. QIC-117 strongly depends on the PC's
        floppy disk controller's timing and signaling and therefore
        isn't very portable to other architectures.
        High-end tapes like QIC with 500MB+, 4mm and 8mm DAT, DLT and
        so on generally aren't available other than SCSI and maybe a
        few specific interfaces from the mini and mainframe world.


6.6.    Scanners

        Scanners exist with a lot of interfaces. In the past, serial,
        parallel and IEC interfaces were common besides SCSI. The higher
        resolution and color depth fast decided this interface struggle
        towards SCSI. Generally, professional scanners use SCSI now, but
        keep this history in mind when looking at some older, but maybe
        very good scanner. The SCSI models mostly work with standard
        host adapters, if you find a driver for them. Canon, for
        example, switched to ASPI support only a few months ago.

        SCSI scanners are often somewhat "incorrect" in identifying
        themselves to the system. My EPSON GT-6500 for example, tells
        me "EPSON SC" as vendor info, and "ANNER GT-6500" as model,
        besides the SCSI-0 id it gives to the host adapter. 
        This comes, for most Scanner manufacturers have their own
        pre-SCSI-II command set that they rely on. There was never a
        standardizing neccessity as with hard disks, where devices not
        compatible with the SCSI CCS would have been impossible to sell.
        So, SCSI is still sort of a mess with most scanner vendors.

Appendix A.     SCSI Connectors


A.1.    25 pin DB-25 SCSI connector

        The DB-25 connector is the one looking like a PC's printer port.
        I think Apple introduced this DB-25 connector for SCSI, but I'm
        not sure about it. The Macintosh Plus didn't supply Termination
        power, so pin 25 isn't connected with this model.
        Future Domain had a different DB-25 connector on their first
        adapters and adopted the Apple pinout scheme on their TMCxxxM
        SCSI host adapters later. Also, the M-models have a label
        "Apple pinout" somewhere on the slot plate.
        The adapters in question are the TMC-820, -830, -840, -845,
        -850, -860, -870, -875, -885 and MCS-350. If you need a cable
        for one of these, contact Future Domain for the cable with part
        number HCA-108.
        Extreme care should be taken if you get a Future Domain Cable
        or an adapter where you're not _absolutely_ sure if it's an old
        FD or an Apple-style device. Wrong connections will blow your TP
        fuse on the host adapter and - probably - destroy the host
        adapter or other devices on the SCSI bus !

        The pin counting is like:     1  2  3  4 ... 13
                                       14 15 16 ... 25

        Pin       Signal         Signal
                  Apple          old FD

         1        -REQ           GND
         2        -MSG           -DB(1)
         3        -I/O           -DB(3)
         4        -RST           -DB(5)
         5        -ACK           -DB(7)
         6        -BSY           GND
         7        Ground         -SEL
         8        -DB0           GND
         9        Ground         SPARE
        10        -DB3           -RST
        11        -DB5           -C/D
        12        -DB6           -I/O
        13        -DB7           GND
        14        Res./Ground    -DB(0)
        15        -C/D           -DB(2)
        16        Res./Ground    -DB(4)
        17        -ATN           -DB(6)
        18        Ground         -DB(P)
        19        -SEL           GND
        20        -DBP           -ATN
        21        -DB1           -MSG
        22        -DB2           -ACK
        23        -DB4           -BSY
        24        Ground         -REQ
        25      * Term. Power    GND        *: not connected in the
                                               Mac Plus connector.

A.2.    50 pin SCSI connectors

        Type  1 is the flat cable connector on the devices' PCB.
        Type  2 is the 50-pin Centronics-style connector, still the
                "Standard" PC SCSI connector
        The SCSI-2 high density connector's pinout is identical to the
        Type 2 Centronics-style connector

        Type 1    1 3 5 7 ..... 49     Type 2    1  2  3 ..... 25
        counts   ??????????????????    counts   +/--------------\+
                 ??????????????????              \______________/
                  2 4 6 8 ..... 50               26 27 28 .... 50


         Pin       Type            ?     Pin       Type
                Single-Ended       ?            Differential
                1          2       ?            1          2
                                   ?
          1     GND       GND      ?      1     GND       GND
          2     -DB(0)    GND      ?      2     GND       +DB(0)
          3     GND       GND      ?      3     +DB(0)    +DB(1)
          4     -DB(1)    GND      ?      4     -DB(0)    +DB(2)
          5     GND       GND      ?      5     +DB(1)    +DB(3)
          6     -DB(2)    GND      ?      6     -DB(1)    +DB(4)
          7     GND       GND      ?      7     +DB(2)    +DB(5)
          8     -DB(3)    GND      ?      8     -DB(2)    +DB(6)
          9     GND       GND      ?      9     +DB(3)    +DB(7)
         10     -DB(4)    GND      ?     10     -DB(3)    +DB(P)
         11     GND       GND      ?     11     +DB(4)    DIFFSENS
         12     -DB(5)    Res.     ?     12     -DB(4)    Res.
         13     GND       n.c.     ?     13     +DB(5)    TRMPWR
         14     -DB(6)    Res.     ?     14     -DB(5)    Res.
         15     GND       GND      ?     15     +DB(6)    +ATN
         16     -DB(7)    GND      ?     16     -DB(6)    GND
         17     GND       GND      ?     17     +DB(7)    +BSY
         18     -DB(P)    GND      ?     18     -DB(7)    +ACK
         19     GND       GND      ?     19     +DB(P)    +RST
         20     GND       GND      ?     20     -DB(P)    +MSG
         21     GND       GND      ?     21     DIFFSENS  +SEL
         22     GND       GND      ?     22     GND       +C/D
         23     Res.      GND      ?     23     Res.      +REQ
         24     Res.      GND      ?     24     Res.      +I/O
         25     n.c.      GND      ?     25     TRMPWR    GND
         26     TRMPWR    -DB0     ?     26     TRMPWR    GND
         27     Res.      -DB1     ?     27     Res.      -DB(0)
         28     Res.      -DB2     ?     28     Res.      -DB(1)
         29     GND       -DB3     ?     29     +ATN      -DB(2)
         30     GND       -DB4     ?     30     -ATN      -DB(3)
         31     GND       -DB5     ?     31     GND       -DB(4)
         32     -ATN      -DB6     ?     32     GND       -DB(5)
         33     GND       -DB7     ?     33     +BSY      -DB(6)
         34     GND       -DBP     ?     34     -BSY      -DB(7)
         35     GND       GND      ?     35     +ACK      -DB(P)
         36     -BSY      GND      ?     36     -ACK      GND
         37     GND       Res.     ?     37     +RST      Res.
         38     -ACK      TRMPWR   ?     38     -RST      TRMPWR
         39     GND       Res.     ?     39     +MSG      Res.

         Pin       Type            ?     Pin       Type
                Single-Ended       ?            Differential
                1          2       ?            1          2
                                   ?
         40     -RST      GND      ?     40     -MSG      -ATN
         41     GND       -ATN     ?     41     +SEL      GND
         42     -MSG      GND      ?     42     -SEL      -BSY
         43     GND       -BSY     ?     43     +C/D      -ACK
         44     -SEL      -ACK     ?     44     -C/D      -RST
         45     GND       -RST     ?     45     +REQ      -MSG
         46     -C/D      -MSG     ?     46     -REQ      -SEL
         47     GND       -SEL     ?     47     +I/O      -C/D
         48     -REQ      -C/D     ?     48     -I/O      -REQ
         49     GND       -REQ     ?     49     GND       -I/O
         50     -I/O      -I/O     ?     50     GND       GND

        There is a DB-50 connector (three-row) variant in SCSI-1 that
        Sun Microsystems used for older peripherals, but it's normally
        not used any more. However, if you need the layout, holler, and
        I'll search for it.


A.3.    68 pin SCSI connectors

         Pin    Cable Type         ?     Pin    Cable Type
                Single-Ended       ?            Differential
                B          P       ?            B          P **
                                   ?
          1     GND       GND      ?      1     GND       -DB(12)
          2     GND       GND      ?      2     +DB(8)    -DB(13)
          3     GND       GND      ?      3     +DB(9)    -DB(14)
          4     GND       GND      ?      4     +DB(10)   -DB(15)
          5     GND       GND      ?      5     +DB(11)   -DB(P1)
          6     GND       GND      ?      6     +DB(12)   GND
          7     GND       GND      ?      7     +DB(13)   +DB(0)
          8     GND       GND      ?      8     +DB(14)   +DB(1)
          9     GND       GND      ?      9     +DB(15)   +DB(2)
         10     GND       GND      ?     10     +DB(P1)   +DB(3)
         11     GND       GND      ?     11     +ACKB     +DB(4)
         12     GND       GND      ?     12     GND       +DB(5)
         13     GND       GND      ?     13     +REQB     +DB(6)
         14     GND       GND      ?     14     +DB(16)   +DB(7)
         15     GND       GND      ?     15     +DB(17)   +DB(P)
         16     GND       GND      ?     16     +DB(18)   DIFFSENS
         17     TRMPWRB   TRMPWR   ?     17     TRMPWRB   TRMPWR
         18     TRMPWRB   TRMPWR   ?     18     TRMPWRB   TRMPWR
         19     GND       GND      ?     19     +DB(19)   Res.
         20     GND       GND      ?     20     +DB(20)   +ATN
         21     GND       GND      ?     21     +DB(21)S  GND
         22     GND       GND      ?     22     +DB(22)   +BSY
         23     GND       GND      ?     23     +DB(23)   +ACK
         24     GND       GND      ?     24     +DB(P2)   +RST
         25     GND       GND      ?     25     +DB(24)   +MSG
         26     GND       GND      ?     26     +DB(25)   +SEL
         27     GND       GND      ?     27     +DB(26)   +C/D
         28     GND       GND      ?     28     +DB(27)   +REQ
         29     GND       GND      ?     29     +DB(28)   +I/O
         30     GND       GND      ?     30     +DB(29)   GND
         31     GND       GND      ?     31     +DB(30)   +DB(8)
         32     GND       GND      ?     32     +DB(31)   +DB(9)
         33     GND       GND      ?     33     +DB(P3)   +DB(10)
         34     GND       GND      ?     34     GND       +DB(11)
         35     GND       -DB(12)  ?     35     GND       +DB(12)
         36     -DB(8)    -DB(13)  ?     36     -DB(8)    +DB(13)
         37     -DB(9)    -DB(14)  ?     37     -DB(9)    +DB(14)
         38     -DB(10)   -DB(15)  ?     38     -DB(10)   +DB(15)
         39     -DB(11)   -DB(P1)  ?     39     -DB(11)   +DB(P1)
         40     -DB(12)   -DB(0)   ?     40     -DB(12)   GND
         41     -DB(13)   -DB(1)   ?     41     -DB(13)   -DB(0)
         42     -DB(14)   -DB(2)   ?     42     -DB(14)   -DB(1)
         43     -DB(15)   -DB(3)   ?     43     -DB(15)   -DB(2)
         44     -DB(P1)   -DB(4)   ?     44     -DB(P1)   -DB(3)
         45     -ACKB     -DB(5)   ?     45     -ACKB     -DB(4)
         46     GND       -DB(6)   ?     46     DIFFSENS  -DB(5)
         47     -REQB     -DB(7)   ?     47     -REQB     -DB(6)
         48     -DB(16)   -DB(P)   ?     48     -DB(16)   -DB(7)
         49     -DB(17)   GND      ?     49     -DB(17)   -DB(P)
         50     -DB(18)   GND      ?     50     -DB(18)   GND
         51     TRMPWRB   TRMPWR   ?     51     TRMPWRB   TRMPWR
         52     TRMPWRB   TRMPWR   ?     52     TRMPWRB   TRMPWR

         Pin    Cable Type         ?     Pin    Cable Type
                Single-Ended       ?            Differential
                B          P       ?            B          P **
                                   ?
         53     -DB(19)   Res.     ?     53     -DB(19)   Res.
         54     -DB(20)   GND      ?     54     -DB(20)   -ATN
         55     -DB(21)   -ATN     ?     55     -DB(21)   GND
         56     -DB(22)   GND      ?     56     -DB(22)   -BSY
         57     -DB(23)   -BSY     ?     57     -DB(23)   -ACK
         58     -DB(P2)   -ACK     ?     58     -DB(P2)   -RST
         59     -DB(24)   -RST     ?     59     -DB(24)   -MSG
         60     -DB(25)   -MSG     ?     60     -DB(25)   -SEL
         61     -DB(26)   -SEL     ?     61     -DB(26)   -C/D
         62     -DB(27)   -C/D     ?     62     -DB(27)   -REQ
         63     -DB(28)   -REQ     ?     63     -DB(28)   -I/O
         64     -DB(29)   -I/O     ?     64     -DB(29)   GND
         65     -DB(30)   -DB(8)   ?     65     -DB(30)   -DB(8)
         66     -DB(31)   -DB(9)   ?     66     -DB(31)   -DB(9)
         67     -DB(P3)   -DB(10)  ?     67     -DB(P3)   -DB(10)
         68     GND       -DB(11)  ?     68     GND       -DB(11)

        ** The Differential P connector scheme here might be wrong !
        I got only one scheme for it and this scheme listed the DB(12)
        to DB(15) and DB(P1) signals twice with a preceeding "+". The
        other layouts seem ok.


A.4.    110 pin SCSI connector ("L"-cable)

        Pin     Single    Diff.    ?    Pin     Single    Diff.
                Ended              ?            Ended
                                   ?
          1     GND       GND      ?     56     GND       GND
          2     GND       +DB(24)  ?     57     -DB(24)   -DB(24)
          3     GND       +DB(25)  ?     58     -DB(25)   -DB(25)
          4     GND       +DB(P6)  ?     59     -DB(P6)   -DB(P6)
          5     GND       +DB(27)  ?     60     -DB(27)   -DB(27)
          6     GND       +DB(28)  ?     61     -DB(28)   -DB(28)
          7     GND       +DB(29)  ?     62     -DB(29)   -DB(29)
          8     GND       +DB(30)  ?     63     -DB(30)   -DB(30)
          9     GND       +DB(31)  ?     64     -DB(31)   -DB(31)
         10     GND       +DB(P3)  ?     65     -DB(P3)   -DB(P3)
         11     GND       +DB(12)  ?     66     -DB(12)   -DB(12)
         12     GND       +DB(13)  ?     67     -DB(13)   -DB(13)
         13     GND       +DB(14)  ?     68     -DB(14)   -DB(14)
         14     GND       +DB(15)  ?     69     -DB(15)   -DB(15)
         15     GND       +DB(P1)  ?     70     -DB(P1)   -DB(P1)
         16     GND       GND      ?     71     -DB(0)    GND
         17     GND       -DB(0)   ?     72     -DB(1)    -DB(0)
         18     GND       -DB(1)   ?     73     -DB(2)    -DB(1)
         19     GND       -DB(2)   ?     74     -DB(3)    -DB(2)
         20     GND       -DB(3)   ?     75     -DB(4)    -DB(3)
         21     GND       -DB(4)   ?     76     -DB(5)    -DB(4)
         22     GND       -DB(5)   ?     77     -DB(6)    -DB(5)
         23     GND       -DB(6)   ?     78     -DB(7)    -DB(6)
         24     GND       -DB(7)   ?     79     -DB(P)    -DB(7)
         25     GND       -DB(P)   ?     80     GND       -DB(P)
         26     GND       DIFFSENS ?     81     GND       GND
         27     TRMPWR    TRMPWR   ?     82     TRMPWR    TRMPWR
         28     TRMPWR    TRMPWR   ?     83     TRMPWR    TRMPWR
         29     TRMPWR    TRMPWR   ?     84     TRMPWR    TRMPWR
         30     GND       +ATN     ?     85     GND       -ATN
         31     GND       GND      ?     86     -ATN      GND
         32     GND       +BSY     ?     87     GND       -BSY
         33     GND       +ACK     ?     88     -BSY      -ACK
         34     GND       +RST     ?     89     -ACK      -RST
         35     GND       +MSG     ?     90     -RST      -MSG
         36     GND       +SEL     ?     91     -MSG      -SEL
         37     GND       +C/D     ?     92     -SEL      -C/D
         38     GND       +REQ     ?     93     -C/D      -REQ
         39     GND       +I/O     ?     94     -REQ      -I/O
         40     GND       GND      ?     95     -I/O      GND
         41     GND       +DB(8)   ?     96     -DB(8)    -DB(8)
         42     GND       +DB(9)   ?     97     -DB(9)    -DB(9)
         43     GND       +DB(10)  ?     98     -DB(10)   -DB(10)
         44     GND       +DB(11)  ?     99     -DB(11)   -DB(11)
         45     GND       GND      ?    100     GND       GND
         46     GND       +DB(16)  ?    101     -DB(16)   -DB(16)
         47     GND       +DB(17)  ?    102     -DB(17)   -DB(17)
         48     GND       +DB(18)  ?    103     -DB(18)   -DB(18)
         49     GND       +DB(19)  ?    104     -DB(19)   -DB(19)
         50     GND       +DB(20)  ?    105     -DB(20)   -DB(20)
         51     GND       +DB(21)  ?    106     -DB(21)   -DB(21)
         52     GND       +DB(22)  ?    107     -DB(22)   -DB(22)
         53     GND       +DB(23)  ?    108     -DB(23)   -DB(23)
         54     GND       +DB(P2)  ?    109     -DB(P2)   -DB(P2)
         55     GND       GND      ?    110     GND       GND

A.5.    Other SCSI connectors.

        Sometimes, for many reasons strange to me, a company decides
        to introduce a new SCSI connector.
        One of these is the Apple PowerBook's HDI-30 connector.

        Apple's external HDI-30 SCSI connector has the following pinout:

          Pin     Internal      External
                  Connector     Connector

           1      DISK.+5       -LINK.SEL       I have no idea what
           2      DISK.+5       -DB(0)          -LINK.SEL is for.
           3      Ground        Ground
           4      Ground        -DB(1)
           5      Ground        TERMPWR         Pin 5 (TP) is not used
           6      -DB(0)        -DB(2)          by Apple ("reserved for
           7      -DB(1)        -DB(3)          future use") and is not
           8      -DB(2)        Ground          connected in Apple's
           9      -DB(3)        -ACK            original PB SCSI cable.
          10      -DB(4)        Ground
          11      -DB(5)        -DB(4)
          12      -DB(6)        Ground
          13      -DB(7)        Ground
          14      -DB(P)        -DB(5)
          15      DISK.+5       Ground
          16      -BSY          -DB(6)
          17      -ATN          Ground
          18      -ACK          -DB(7)
          19      Ground        -DB(P)
          20      -MSG          Ground
          21      -RST          -REQ
          22      -SEL          Ground
          23      -C/D          -BSY
          24      -I/O          Ground
          25      -REQ          -ATN
          26      Ground        -C/D
          27      Ground        -RST
          28      Ground        -MSG
          29      DISK.+5       -SEL
          30      DISK.+5       -I/O

------- If you know of another special SCSI connector, please let me
        know. I'll then try to include it here.


Appendix B.     Some places to get information about SCSI
                Support BBS numbers

        There are some documents over and about SCSI. Of course, the
        first source of information are the spec documents. However,
        they are hard to read and hard to understand if it's your first
        jump into SCSI.
        There is a very good article about "What's new in SCSI-2" in
        the January 1991 issue of "Computer Technology Review". It is
        written by Dal Allan from ENDL, one of the real "SCSI gurus".
        Also, there are some books about SCSI (i have none of these,
        so I can't comment on them).

        Also, there are some places where SCSI information is present
        in electronic form.

        In first place, the NCR SCSI BBS, where the official documents
        are available.
        The NCR SCSI BBS        : 001-719-574-0424

        NCR also has a support BBS for their systems, where drivers are
        available for download:
        The NCR Drivers BBS     : 001-803-843-1811

        Also, there are some SCSI vendors that offer BBS support.
        They may or may not have some SCSI-related information.
        For example, the Adaptec BBS has all the ASPI documents.
        Some of these BBSs I list here. The BBSs with a * are
        BBSs I called recently, so I assume the phone number is ok.

        * Adaptec-BBS           : 001-408-945-7727
        * access from Germany   : 089-45640618

        * Future Domain BBS     : 001-714-253-0432

        * Storage Dimensions    : 001-408-944-1221
        * Maxtor                : 001-303-678-2222
                                  (maybe also -2020 ?)

        * Buslogic's BBS        : 001-408-492-1984

        Chinon BBS              : 001-310-320-4160
        Colorado Memory Systems : 001-303-635-0650
        Conner's BBS number     : 001-408-456-4415
        Plextor BBS             : 001-408-986-1569
        Promise BBS             : 001-408-452-1267
        * Quantum BBS           : 001-408-894-3214
        Seagate BBS             : 001-408-438-8771
        Sony BBS                : 001-408-955-5107
        Syquest BBS             : 001-510-656-0473


Appendix C.     Termination Diagrams


        Here are some termination diagrams about various configurations
        and their neccessary termination.

        Your host adapter may have a software-possibility to enable or
        disable termination. In this case, of course, you don't need to
        remove the resistor packs to disable termination.
        Also, with external device termination, you could also terminate
        the last external device internal, but that would limit your
        flexibility with them, so i suggest having all external devices
        not terminated and attaching an external active terminator to the
        last device's second connector.

        Only internal devices:


              ?????????????????????????????????????????????????????
        ??????????????     ??????????????     ??????????????????????????
        ?            ?     ? not        ?     ?             ::::::: ???
        ? Terminated ?     ? terminated ?     ?Termination> ... ... ???
        ?            ?     ?            ?     ?Resistors  >   ...   ???
        ??????????????     ??????????????     ?        installed    ???
                                              ?                     ???
                                              ???     ??           ???
                                                ???????????????????? ?

        Only external devices:


        ??????????????????????????
        ?             ::::::: ?????
        ?Termination> ... ... ???????????????? ?????????
        ?Resistors  >   ...   ?????    ??????????????  ? ??????????????
        ?        installed    ?????    ? not        ?  ??? Terminated ?
        ?                     ?????    ? terminated ?    ? through    ?
        ???     ??           ???       ?            ?  ??? <----      ?
          ???????????????????? ?       ??????????????  ????????????????
                                                       ^^External
                                                         Terminator

        Internal and external devices:


                       ??????????????????????????
                       ?    ??????????????????????????
                       ?    ?             ::::::: ?????
        ?????????????? ?    ?Termination> ... ... ??????? ??????????????
        ? not        ? ?    ?Resistors  >   ...   ????? ? ? not        ?
        ? terminated ???    ?        removed      ????? ??? terminated ?
        ?            ? ?    ?                     ????? ???            ?
        ?????????????? ?    ???     ??           ???    ? ??????????????
                       ?      ???????????????????? ?    ?
                       ?                                ?
        ?????????????? ?                                ? ??????????????
        ?            ? ?                                ? ? Terminated ?
        ? Terminated ???                                ??? through    ?
        ?            ?                      External    ??? <----      ?
        ??????????????                      Terminator >????????????????

Appendix D.     SCSI and QIC - any relations ?


        Principally, the terms SCSI and QIC have (nearly) nothing to
        do with each other. However, there are some contact points.
        QIC stands for "Quarter Inch Committee" and originally meant a
        non-profit organization that was formed from tape drive and
        tape cartridge vendors to get exchange standards for tapes.

        The QIC committee and its members since then develop, approve
        and promote the various QIC standards. The numbers are somewhat
        chaotic - they somewhat seem to come out "by the numbers".
        QIC defines tape drive interfaces like SCSI, Floppy-controller
        interfaces, QIC-02/36 and tape formats like QIC-40, 80, 150 ...
        Let's try some cleaning up...

        Tape drive interface standards:

        QIC-02        : a somewhat "intelligent" hardware interface,
        QIC-36        : basic hardware interface, simpler than QIC-02
        QIC-104/11    : mainly describes SCSI-1 as tape interface
        QIC-107       : Commands and timing for QIC-80 drives
        QIC-117       : the "floppy tape" interface for QIC-80 streamers
        QIC-121       : like QIC 104, but based on SCSI-2

        A lot of the older QIC-02 interfaces are basically QIC-36 drives
        with an additional QIC-02 bridge controller. Some of these bridge
        controllers can be replaced with SCSI bridge controllers like the
        Emulex MT-02 or Adaptec ACB-3530.

        QIC tape formats:

        QIC-ID       Tape        Storage     Tracks      Length
                                 (MB)                    (FT.)
          11         300XLP        45          4           450
          24         DC600A        60          9           600
          40         DC2000        40         20           205
                     DC2060        60         20           307.5
          80         DC2080        80         32           205
                     DC2120       120         32           307.5
         120         DC600A       125         15           600
         150         DC6150       150         18           600
                     DC6250       250         18          1020
         525         DC6320       320         24           600
                     DC6525       525         24          1000
        1000    Magnus 9100      1000         32            ?
        1350           9135      1350         36            ?

        Most formats offer eXtended Length (XL) tapes that give higher
        capacity, for example the 250MB DC6250 tapes for QIC-150 drives.
        Also, there is a nuisance in the industry to call the QIC-80
        tapes with XL tapes (120MB) "250 MB" tapes. This works only
        with the compression built into the backup _software_.
        Keep this in mind if you compare tape drives with different
        technologies. The only company I know that uses a similar
        approach is Colorado with their PowerTape drives. They can
        compared by basically halving their capacity and look for the
        nearest capacity standard.

        QIC has become a company (Quarter Inch Compatibility, Inc), that
        still defines and certifies tape standards. Now, the members are
        3M, Sony, Gigatek, HP, Conner, Colorado Memory Systems, IOMega,
        Wangtek and Tandberg.
        However, since they are a company, the "introduction rate" of
        new, mostly mini-cartridge-based tape formats and standards
        was inflationary. Lots of new formats came up, some of these new
        tape drives can even read QIC-80 tapes, but most are not upward
        compatible. Of course, these standards are incompatible with each
        other, so that you can be sure that half of these standards will
        become obsolete in their first years - seems that the lession is
        "If it's business - forget the standards".
        But we'll see - it's our responsibility to buy what we feel
        should survive, not the other systems.

        Some of the new Mini-standards are:

        name/format   cartridge     capacity   can read
                      type

        QIC-3010-MC   QIC-143       255 MB     QIC-40/80
        QIC-3020-MC   QIC-143       500 MB     QIC-40/80/3010
        QIC-555M      QIC-143       555 MB     ---
        QIC-875M      QIC-143       875 MB     QIC-40/80/555M
        QIC-3GB(M)    QIC-138         3 GB     QIC-555M