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 , 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 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 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 . 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. 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 . 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 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 if the BIOS tells you to do so, select the host adapter's base address (normally it will be preset) and press the 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 . 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 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 . 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 , 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