[ Go to July 1997 Table of Contents ]|
While working on this month's removable media feature (see "Storage to Go"), I tested my system's SCSI bus and discovered all sorts of new ways to get into trouble. Fortunately, I also found my way out of trouble. The lessons I learned might help you avoid problems when you get around to optimizing your system with a new hard drive.
I'll begin with a quick review of SCSI system configuration basics. A conventional 8-bit SCSI chain can accommodate eight devices, each of which must be assigned its own ID number to indicate its priority. Unlike an IRQ number, ID 0 is the lowest priority and ID 7 equals the highest. The host adapter, which serves as the interface between the computer's own system bus (ISA, EISA and PCI) and the SCSI chain, is usually assigned ID 7 and the bootable hard drive is ID 0.
There is no relationship between the SCSI ID and the physical location of a device in the chain. For example, in a simple one-drive system, an internal SCSI hard drive and the host adapter are at opposite ends of the chain, both physically and logically. If you connect an external device later on, the adapter is now physically somewhere in the middle of the chain. If you add an internal CD-ROM drive, the existing hard drive is no longer at the other physical end of the chain. But they retain their logical positions on the chain; the host adapter keeps its ID 7 designation and the hard drive remains set at ID 0.
SCSI connections need to be terminated (properly matched to their environment) to make the signals act correctly. High-speed electromagnetic signals are subject to reflections if the line they travel on is not terminated. Just as you need the proper kind of coaxial cable for your TV set if you don't want ghosts on the screen (ghosts are caused by reflections), you need terminations to match the characteristics of the SCSI line to those of the SCSI devices, so your data signals won't be reflected.
A terminator is a resistor network that attaches to an adapter card circuit board or plugs into a rear-panel SCSI connector. It provides the required impedance matching characteristics for the SCSI chain.
Physical position is important in SCSI termination. You might have found that out the hard way after adding a new device that brought your whole system to its knees. Remember the Terminator II law: Use a terminator at each physical end of the chain and none in between. This means that if a SCSI hard drive is the only installed device, then terminate both it and the adapter. If you add an internal SCSI CD-ROM drive-usually via a flat cable that extends from the host adapter to the hard drive and then to the CD-ROM drive-then disable the hard drive termination and terminate the CD-ROM drive instead. If you add an external drive later, disable the host adapter termination and terminate the external device.
The Terminator II law is simple in theory, but proper configuration can be complicated in practice. On many hard drives, an inaccessibly located jumper on the underside determines termination status. External devices are usually easier to configure. In the absence of a rear-panel termination switch, you'll need an external termination network. Just connect the drive to the SCSI chain and plug the network into the other connector.
That brings up another source of confusion. On many external devices there's no functional difference between the two connectors. Either can serve as the input while the other serves as the output to the next device or to an external terminator. However, on some newer external SCSI devices, the connectors come labeled Input and Output. This is usually an indication that the device supports automatic termination. If you connect no additional devices to the output, then the device itself automatically terminates the chain with no need for external termination. If you subsequently add another device through the output connector, its presence is detected and internal termination is disabled. For automatic termination to work properly, note the input/output labeling and make your connections accordingly.
Some host adapters come with installed resistors that set termination. When a host adapter is no longer the last physical device on the chain, you must disable termination by removing the resistors. Termination is automatic on many new adapters such as the Adaptec AHA 2940 series. These adapters disable termination if SCSI devices are plugged into both the internal and external connectors. They automatically enable termination if either connector is unoccupied.
The medium and its messages
If there are no SCSI ID number conflicts and the terminations are properly set, you may never encounter a SCSI-related error message during boot-up. And up to a point, you may even get away with an improperly terminated system. My old 486 has a single SCSI device-an internal CD-ROM drive that has never been terminated-and it's worked fine for years. But if I insert another SCSI device between the controller and the CD-ROM drive, I can no longer get away with this improperly terminated chain. Trouble will also arise if more than two devices are terminated or if there's an ID conflict. Furthermore, the relationship between a displayed error message and the real problem is not always clear. For example, the following ominous warning showed up immediately after I connected some external devices to the host adapter and rebooted the system:
When I disconnected the cable leading to the first external device, the message went away and the system again booted successfully from the internal SCSI drive C:-just as it had been doing for years. The actual problem turned out to be an identity crisis. Two external SCSI devices accidentally had been set to the same SCSI ID number. When I resolved this problem, the system again booted successfully.
The last three lines above also appeared when two external SCSI devices were "accidentally" terminated, and the boot sequence halted at the first of the two terminated devices. This time, clearing the extra termination and rebooting displayed a "Hard disk read failure" message. To resolve this problem, I rebooted with the external SCSI chain disconnected, then rebooted with it connected again. The only explanation I can offer for this odd solution is that the host adapter's automatic termination network needed the two-step process to reset itself properly.
Another odd problem is when your system reports it has seven identical SCSI drives installed. In this case, the drive and the host adapter are both set to the same ID, which confuses the latter. To prevent such conflicts, many drives can only be set to an ID in the 0 to 6 range. When you get this message, it probably means the host adapter has been accidentally set to an ID in this range, too. To resolve the problem, make sure the adapter is at ID 7, then double-check the drive(s) in case you have one that can also claim this ID.
The lesson learned is that although an error message definitely indicates a problem, it's not necessarily the one cited in the message. When in doubt, carefully check the entire SCSI chain. Make sure it's terminated at both ends and not in the middle, and that no devices share the same ID number.
If you add a SCSI drive to a system that currently boots from an IDE or other non-SCSI hard drive, you can't boot from the new drive unless you remove or disable the old one. That's because the typical system BIOS only supports IDE boot drives. If there aren't any, then the BIOS on the host adapter boots the SCSI drive. However, if there is an IDE drive installed, then the SCSI BIOS never gets a chance to take over. So if you were thinking about making the new SCSI drive your boot device and leaving the old IDE drive installed, think again. This isn't necessarily a bad thing, though. The IDE boot will be faster.
To test the SCSI drive as a boot device, temporarily disable the installed IDE drive via CMOS configuration. Make a note of the current hard disk type number, then change it to None and reboot. The system will ignore the IDE drive and boot from the SCSI drive. Reverse the procedure to restore the original CMOS configuration and once again boot from the IDE drive. It's not the most elegant dual-boot technique, but it works. Remember, a SCSI drive connected to a sound card usually won't boot because the sound card doesn't include the BIOS required for SCSI booting.
Under default conditions, all hard drives listed under My Computer display the same drive icon, followed by the volume label (if any) and drive letter. However, all removable-media volume labels are ignored, and each device is identified as "Removable Disk (X:)," where X is the assigned drive letter. That's no great problem if you have only one or two such devices. If you have more, then you might assign a distinctive icon to each one to help distinguish one from another.
Open the following Registry key and look in its Contents pane for the item listed immediately below the Name and Data columns seen here:HKEY_CURRENT_USER\Software\
Double-click on the NoDriveTypeAutoRun icon and change the value data to 91 00 00 00. This forces Windows 95 to check each removable-media device when Explorer opens for the first time.
Next, locate the icon you want to use to identify a removable-media drive. If that icon is embedded in a larger file such as SHELL32.DLL, then either make a note of its position within that file or extract it to a small single-icon file. For example, to use the colorful beach ball icon found in the PIFMGR.DLL file, use Notepad to write one (not both) of the two-line files shown here:
[autorun] icon=C:\Windows\System\ PIFMGR.DLL,7
or if you know the name of the icon file,
Name the file AUTORUN.INF and save it to the root directory of the appropriate removable-media disk or cartridge. If you've extracted the icon to a separate icon file, give it a distinctive name and save it in the same root directory. From now on, Explorer will show the distinctive icon each time you insert that disk or cartridge in the drive.
There is one side effect. With the NoDriveTypeAutoRun value changed as described above, Explorer searches all removable-media devices, including floppy disk drives. That takes more time. If you're impatient waiting, reset NoDriveTypeAutoRun back to 95.
The obvious advantage of an external removable-media device is you can move the medium and the device from one site to another. However, when you remove a device, each device that uses a higher drive letter drops down one letter. To prevent this reaction, open Device Manager, highlight any installed device, then click on the Properties button and Settings tab. In the Reserved drive letters section, use the down-arrows to assign the letter of your choice as both the Start and End drive letters. That permanently assigns the selected letter to the selected device and prevents the device from dropping down one letter if you remove something below it. It's the same procedure previously described to prevent a CD-ROM drive from wandering from one letter to another as you add and remove other drives. Such new letter assignments take place the next time Win95 opens.
An icon-editing PS
Previously, I described a technique (Optimizing Windows, April) to change the color of the two open-folder icons used by the Registry Editor and the Win95 Explorer. Some readers reported that Explorer's open-folder icon did not change its appearance, even after the icon was recolored. For those still puzzled about why the edit didn't "take," here's the clue:
If you open any icon resource file for editing, your icon editor will probably display the set of 32x32 pixel icons. However, the open-folder icon displayed by Explorer is taken from the 16x16 pixel set in the same resource file. Therefore, use your editor to select that icon set and then make the desired edit. Having done that, you'll see the recolored icon in Explorer.
Consulting editor John Woram is the author of The Windows 95 Registry: A Survival Guide for Users (MIS: Press, 1996). Contact John in the WINDOWS Magazine areas on America Online and CompuServe, or at the e-mail addresses here.