Storage

Set up and troubleshoot SCSI in Windows 98

The SCSI bus standard has survived many technological advances, and it's still an integral part of today's business computing world. We'll discuss a few SCSI concepts and help you configure or fix a SCSI system running Windows 98.


Every computer I've owned in the past decade has included at least one SCSI (Small Computer System Interface) hard disk. In fact, the first computer I put together had a 315 MB SCSI hard disk that retailed for nearly $5,000—fortunately, I didn't have to pay for the drive. More often than not, all of these systems included other SCSI devices, such as scanners, ZIP drives, and CD burners. Most businesses still rely heavily on Windows 98, and while setting up SCSI devices in Windows 98 isn't overly difficult, you do need to understand several core issues and potential trouble spots. I'll explore SCSI and explain how to install and configure SCSI devices in Windows 98. I’ll also examine how to troubleshoot some of the problems you might experience.

Configuring and installing SCSI devices
The SCSI bus has been around for a long time. It provides a common, standards-based means for connecting peripherals to a wide variety of computer systems, including PCs, Macs, and UNIX computers. We call it a “bus”because it supports the connection of multiple devices in a daisy-chain fashion. For example, you might have a couple of internal hard disks, an external CD-RW drive, an external tape drive, and a scanner, all on the same bus.

SCSI requires a host adapter to serve as the interface between the system and the SCSI bus. In most systems, you add a SCSI host adapter to the system as a PCI card. ISA SCSI host adapters are still around, but they’re certainly not as common as PCI. Many higher-end systems include built-in SCSI adapters on the motherboard, which eliminates the need for an expansion card. In general, you can add a host adapter to systems that already have onboard SCSI support. For example, I have a Dell 610 workstation with two built-in SCSI interfaces that are running the disk arrays and SCSI CD-ROM, and another Adaptec PCI host adapter for devices like my scanner and external ZIP drive.

RAID arrays
RAID stands for Redundant Array of Independent Disks. RAID arrays are used to provide fault tolerance and redundancy. RAID is often used in servers, but also occasionally in higher-end workstations.

SCSI types and specifications
There are more flavors of SCSI than in a Baskin-Robbins ice cream store. Eight-bit SCSI host adapters can accommodate up to eight devices, each of which is assigned a SCSI ID from 0 to 7. Sixteen-bit SCSI host adapters can accommodate up to 16 devices, each of which is assigned a SCSI ID from 0 to 15. In both situations, the host adapter itself is ID 7, and the boot disk (if booting from a SCSI drive) is ID 0. There are other configurations that come into play with RAID-based systems, but it's unlikely that you'll be implementing a RAID solution on a Windows 98 system, so I'll stick to basic configurations.

Combine the many standards with the fact that there are several different connector types, and you have a real mess to understand. Rather than focus on the ins and outs of each one, I've summarized them in Table A. Generally speaking, 8-bit SCSI uses 50-pin connectors and 16-bit SCSI uses 68-pin connectors. When shopping for cables, make sure you not only get the right number of pins, but the right form factor as well.
Table A
Type
Bus speed, MB/sec. max.
Bus width, bits
Max. device support
SCSI-1 
5
8
8
Fast SCSI
10
8
8
Fast Wide SCSI
20
16
16
Ultra SCSI
20
8
8
Wide Ultra SCSI
40
16
16
Ultra2 SCSI
40
8
8
Wide Ultra2 SCSI
80
16
16
Ultra3 SCSI or Ultra160 SCSI
160
16
16
Ultra320 SCSI
320
16
16
Ultra640
640
16
16
SCSI types and specifications

Logical units, termination, and other SCSI concepts
Unlike IDE, SCSI support is not provided directly in a computer's BIOS. SCSI adapters include onboard BIOSs that enable them to support bootable disks. As a rule of thumb, you should enable the BIOS on a host adapter if you’re booting the computer from a drive connected to that adapter. You can disable the BIOS if you’re booting from an IDE drive or there are multiple SCSI host adapters in the system, and you’re booting from a different one. How you disable the BIOS depends on the host adapter, but you should find either a jumper on the card, or, more frequently, a configuration option in the card's firmware.

For example, when you boot a system containing an Adaptec SCSI host adapter, you should see a prompt that directs you to press [Ctrl]A to enter the SCSI configuration program for the adapter. You can enable the BIOS, disable it and not scan the bus, or disable it but allow it to scan the bus. In most cases, when you have devices connected to the bus and none are boot devices, you’ll want the adapter to scan the bus for devices. If a boot device is connected, enable the BIOS.

SCSI IDs
The next consideration is how you connect the devices to the bus and whether they require termination. In every case, the device should have either jumpers or switches that enable you to set the device's SCSI ID. You use combinations of these switches and jumpers to set the ID from 0 to 6 for 8-bit devices or from 0 to 15 for 16-bit devices, with ID 7 reserved for the host adapter in both cases. Generally, no jumpers configures a device as ID 0;as I've previously mentioned, that's the ID you should assign to a bootable hard drive. As you begin to configure and connect devices to a bus, make sure you don't use the same ID for two devices. For example, the boot drive would be 0, a CD-ROM drive 1, a tape drive 2, the scanner 3, and so on. Conflicting SCSI IDs on the bus will either prevent the computer from booting or the devices from working.

Termination
Next, turn your attention to termination. The last device on each end of a SCSI bus needs to be terminated. Essentially, this means that a set of resistors sits at each end of the bus and terminates the signals flowing on the bus. Roughly speaking, if you terminate a device in the middle of the chain, devices past that termination will not receive the signals and therefore won't work. So, it's important to make sure that only the devices at each end of the bus are terminated.

The actual terminator takes different forms, depending on the device. Typically, the host adapter has built-in termination and automatically adjusts to the devices connected to it. For example, if you only connect external devices, it automatically terminates the internal end of the bus. If you have both internal and external devices, the host adapter should automatically turn off its own termination and expect the last external and last internal device to be terminated. Some older adapters don’t support automatic termination, however, so you should check your host adapter documentation or the manufacturer's Web site to determine if you need to manually enable or disable termination on the adapter. You can generally configure termination through the host adapter's firmware configuration program.

How you terminate a device depends on the device itself. Hard disks, for example, typically use a jumper to enable or disable termination. The same is true for CD drives. Devices like external ZIP drives and scanners often use switches on the device to configure termination. Some devices require a termination dongle that connects to one of the device's two SCSI ports (the other port connects the device to the SCSI bus). Whatever your configuration or device type, make sure the device at each end of the bus is terminated and, if you’re connecting both internal and external devices to a host adapter, that the host adapter is not terminated. Check the device documentation to determine how to terminate a device if needed.

Finally, you need to determine if the host adapter provides termination power (term power) to the SCSI bus to drive the terminating resistors. At least one device must provide term power, and if the host adapter doesn’t, then one of the devices on the bus must do so. It's likely that your host adapter will provide term power, but some don’t. It's a good idea to check this during configuration, but this is also something to consider when troubleshooting SCSI problems.

Installing drivers and troubleshooting
SCSI devices in Windows 98 can use real-mode and/or protected-mode drivers. Real-mode drivers are installed through Autoexec.bat and/or Config.sys, making them available prior to Windows startup. This means that you don’t need to specifically add a driver in Windows 98 if you're using real-mode drivers. Protected-mode drivers provide better performance and easier configuration, so that's the route you should take, if you’re able to.

To install a SCSI adapter in Windows 98, run the Add/Remove Hardware wizard and select the host adapter from the list. If your adapter isn’t listed, then Windows doesn’t include a protected-mode driver for it. Check with the manufacturer to see if a protected-mode driver is available. If not, you'll have to rely on the real-mode drivers. Obviously, if you're booting from a SCSI disk on a host adapter not directly supported by Windows 98, you'll have to rely on the real-mode drivers included with the adapter to get the disk recognized and Windows 98 installed on the disk.

While Windows 98 supports Plug and Play operation for SCSI host adapters and devices, the adapter must support, at a minimum, the SCSI Configured Automatically (SCAM) level 1 protocol. SCAM is a proposed SCSI-3 interface standard, so many older SCSI devices don't support the protocol and, therefore, don't support Plug and Play. So, don't be surprised if you have to configure at least some SCSI devices manually.

If a device doesn't seem to be working properly, open Device Manager and look for that telltale exclamation mark that tells you the device is having problems. In some cases the error message will be useful, and in other cases it won’t. First, make sure you've assigned a non-conflicting IRQ, DMA, and/or memory range to the adapter. Also, the drivers won't load if the bus isn’t terminated properly, so check your connections and terminations and verify that you haven't assigned conflicting IDs to devices on the same bus. Another troubleshooting step you can take, if you aren’t booting from a disk on a particular adapter, is to disable that adapter's BIOS.

You should also experiment with the drivers to determine if that's where the problem lies. If the system is loading real-mode drivers at startup and is also using protected-mode drivers in Windows, remove the real-mode drivers by commenting or removing their lines in Autoexec.bat and Config.sys. Windows can have problems switching from real mode to protected mode with certain drivers, and eliminating the real-mode drivers can cure the problem. If a device works partially in Windows, it’s a good indication that you might have a driver conflict.

Some SCSI drivers support command line parameters that enable you to configure additional options. If your SCSI device works from DOS but you're having problems in Windows, you might need to add the same switches specified for your real-mode drivers to the protected-mode drivers. Open Autoexec.bat and Config.sys in Notepad, locate the lines that load the real-mode driver, and write down the command line parameters. Next, start Windows and open the Device Manager. Open the properties for the device and click the Settings tab, and then enter the same command line parameters in the Adapter Settings field. Click OK, close the Device Manager, and restart the system to see if the problem disappears.

You can use the Bootlog.txt file to check for SCSI device initialization messages. Windows places the Bootlog.txt file in the root directory of the boot disk, and you can view it using the Edit command from a DOS prompt or with Notepad in Windows. Don't be concerned if you see LoadFail entries in the Bootlog.txt file that seem unrelated to the SCSI devices. Some LoadFail entries are typical for a normally functioning system.

If you’re receiving a Windows Protection Error at startup or shutdown, conflicting real-mode and protected-mode drivers could be the culprit. Try commenting out the real-mode drivers in Config.sys and Autoexec.bat as I mentioned previously. You might also receive such a message if a protected-mode driver is being loaded in System.ini but the driver is already initialized. Check the System.ini file to make sure the driver isn't duplicated there. You can also try commenting the driver in System.ini by placing a semicolon in front of the line that references the driver. You'll have to restart Windows to test the change.

When all else fails, simplify
Finally, there's one bit of advice that I can offer for all troubleshooting, regardless of the type of device giving you problems: simplify! It's not uncommon to have several devices installed in a system, making device or driver conflicts a common occurrence. If these devices use drivers loaded in Config.sys or Autoexec.bat, comment their lines to prevent the drivers from loading. If the problem goes away, add them back one at a time, rebooting after each, until you identify the device that is causing the conflict. For devices that use Windows protected-mode drivers, disable the devices in Device Manager, and then re-enable them one by one to identify the culprit. Also, don't rule out hardware problems. Strip the system down to its bare essentials and install the SCSI device as the only extra device. If it works, start adding devices back into the system to identify the cause of the conflict.

If in the end you still can't get your SCSI adapter or devices to work, and you're certain you have the bus and devices configured correctly, your next stop is the manufacturer's Web site or technical support hotline.

Editor's Picks