Section 10.4. Installing and Configuring a CD-ROM Drive

   

10.4 Installing and Configuring a CD-ROM Drive

External CD-ROM drives are "installed" simply by connecting them to the parallel or SCSI port, as appropriate, and connecting power, although SCSI models may require setting jumpers to configure SCSI ID and termination. Internal CD-ROM drives are 5.25" half-height devices, and require the same physical installation steps as any other 5.25" externally accessible drive. The exact configuration steps required differ between ATAPI and SCSI interfaces, as described in the following sections.

10.4.1 Installing and Configuring an ATAPI CD-ROM Drive

ATAPI CD-ROM drives are installed just like any other ATAPI/IDE device. Other than physical installation, the only decisions you need make are whether to install the drive on the Primary or Secondary ATA interface and whether to jumper the drive as Sole, Master, or Slave. In general, use the following guidelines:

  • On a system with one or two ATA hard drives and one ATAPI CD-ROM drive, install the first hard drive as Primary Master (PM), the second hard drive, if present, as Primary Slave (PS), and the CD-ROM drive as Secondary Master (SM).

  • On a system with three ATA hard drives and a CD-ROM drive, install the first two hard drives as above, the third hard drive as SM, and the CD-ROM drive as Secondary Slave (SS).

  • On a system with one or two ATA hard drives, an ATAPI CD-ROM drive, and an ATAPI tape drive, install the hard drives as above, the CD-ROM drive as SM, and the tape drive as SS.

  • On a system with an ATA hard drive, an ATAPI CD-ROM drive, and an ATAPI CD writer, jumper the hard drive PM, the CD-ROM drive PS, and the CD writer SM. The goal is to have the CD writer on a different ATA channel than any drive that may be used as a source, including the CD-ROM drive and the hard drive.

  • On a system with two ATA hard drives, an ATAPI CD-ROM drive, and an ATAPI CD writer, jumper the first hard drive PM, the CD-ROM drive PS, the second hard drive SM, and the CD writer SS. Recognize that attempting to create a CD from data on the second hard drive risks data corruption, because the second hard drive and the CD writer are on the same ATA channel.

  • On a system with an ATA hard drive, an ATAPI CD-ROM drive, an ATAPI CD writer, and an ATAPI tape drive, jumper the hard drive PM, the CD-ROM drive PS, the CD writer SM, and the tape drive SS.

ATAPI CD-ROM drives require no special configuration steps to function. All recent operating systems, including Windows 95/98 and Windows NT/2000/XP, load ATAPI drivers and recognize ATAPI drives automatically.

Master/Slave Problems with ATAPI CD-ROM Drives

We occasionally receive reports of ATAPI CD-ROM drives that work properly when configured as Slave, but not when configured as Sole or Master, even when they are the only device on the channel. We have never encountered this situation in working with hundreds of systems and CD-ROM drives over the years. However, it has been reported to us often enough that we believe a problem may exist, although we do not have adequate information to determine what combination of controller, drive, operating system, and so on causes the problem.

In theory, any ATAPI CD-ROM drive can function as a Master, Slave, or Sole drive on an ATA channel. That has been our experience. Many CD-ROM drives are designed to function properly as the only drive on a channel even when they're jumpered Slave. That's a matter of convenience, and to avoid support calls when a user forgets to change the default jumpering, which is almost always Slave. Configuring an ATAPI device as a Master-less Slave is not officially supported in the ATA/ATAPI specification, though.

We speculate that one possible cause of the confusion is that an ATA channel may be set to use bus mastering (DMA). If that's the case, making a non-DMA capable CD-ROM drive the Master might indeed cause problems, although we have not tried this configuration. A channel must run both devices either PIO or DMA, and the presence of a non-DMA device on the channel should make that channel revert to PIO, whatever the configuration settings happen to be. Most (but not all) currently shipping ATAPI CD-ROM drives are DMA-capable.

10.4.2 Enabling Bus Mastering (DMA) Support

By default, ATAPI CD-ROM drives usually operate in Programmed I/O (PIO) mode rather than Direct Memory Access (DMA) mode, which is also called Bus Mastering mode. The fact that PIO mode limits DTR to 16.7 MB/s versus the 33.3 or 66.7 MB/s DTR available with DMA is unimportant, because no current CD-ROM drive even approaches the DTR limit of PIO mode. What is important is that PIO mode causes much higher CPU utilization than DMA mode. A typical ATAPI CD-ROM drive operating in PIO mode may occupy 80% or more of the CPU when the drive is being accessed heavily, while the same drive operating under the same conditions in DMA mode may occupy only 1% to 5% of CPU time.

Accordingly, enabling DMA mode is usually a good idea, but doing so requires that the BIOS, operating system, chipset, and CD-ROM drive itself all support DMA mode. Most, but by no means all, recent ATAPI CD-ROM drives support DMA mode. Most motherboards of late Pentium vintage or later also support DMA mode on their embedded ATAPI interfaces. All versions of Windows 95/98, and Windows NT 4 with Service Pack 3 or later support DMA mode. The exact steps required to enable DMA mode differ according to your chipset and the exact version of Windows you are using, as follows:

Windows 95

Identify the exact release of Windows 95 you are using by right-clicking My Computer and choosing Properties. The General page displays the minor version number, as follows:

4.00.950 (Windows 95 Retail) or 4.00.950a (OEM Service Release 1)

No DMA driver is supplied with these versions. If your computer uses an Intel 430 or 440 chipset, download the Intel Windows 95 Bus Mastering IDE driver from ftp://download.intel.com/design/pcisets/busmastr/bmide_95.exe and install it following the directions supplied with the driver. The Intel BM-IDE driver works directly with the chipset, and does not require a system BIOS that supports DMA. Many CDs supplied with motherboards contain the Intel BM-IDE driver. If the version you have is 3.01 or earlier, do not install it. Download and install Version 3.02 or higher. If your computer uses a non-Intel chipset, visit the web page for the motherboard or chipset manufacturer to locate drivers.

4.00.950b (OSR 2/2.1) or 4.00.950c (OSR 2.5)

A native DMA driver is supplied with these versions. Use that driver rather than the driver supplied by Intel or another chipset manufacturer. The Microsoft drivers require DMA support in BIOS, so you may need to flash your system BIOS to the latest version before installing the driver. Before installing the Microsoft driver, remove the Intel BM-IDE driver (if present) by running the BM-IDE installation program and choosing deinstall. To install the Microsoft driver, right-click My Computer, choose Properties, and then click the Device Manager tab. Locate the CD-ROM drive and double-click it to display the Properties sheet. Click the Settings tab and mark the DMA checkbox in the Options section. Close the dialog and reboot the system. Redisplay the Properties sheet for the drive after rebooting to verify that the checkbox remains marked and that DMA is enabled.

Windows 98/98SE/Me

The original Windows 98 release and Windows 98 SE are both identified as 4.10.1998, and both are supplied with a native DMA driver, as is Windows Me. To enable it, follow the same steps described above for Windows 95 OSR 2 or higher. Note the following considerations for Windows 98/98SE/Me and DMA:

  • On a clean install, we found that Windows 98/98SE/Me automatically determines whether the chipset, drives, and BIOS support DMA. If so, DMA is automatically enabled by default.

  • On an upgrade install to a system running Windows 95 OSR1 or earlier, we found that Windows 98/98SE/Me Setup does not install DMA support, even if all required elements are present. If this occurs, you can enable DMA support by marking the DMA checkbox and restarting the system.

  • On an upgrade install to a system running Windows 95 OSR2 or higher, we found that Windows 98/98SE/Me Setup enables DMA only if Windows 95 had the Microsoft DMA drivers installed and enabled. If the drivers were not installed, or if they were installed but DMA was not enabled, Setup installs using PIO mode. Again, you can enable DMA support manually by marking the DMA checkbox and restarting the system.

  • Installing Windows 98/98SE/Me as an upgrade on a Windows 95 system running the Intel BM-IDE driver causes all sorts of IDE problems. The Intel BM-IDE driver version 3.01 has no uninstall option, but can be uninstalled using the version 3.02 or higher setup program. Before upgrading to Windows 98/98SE/Me, run BM-IDE version 3.02 or higher and choose the deinstall option.

Windows NT 4

The early versions of Windows NT 4 have no DMA support. Microsoft began shipping a DMA driver with Service Pack 3, but we have had various problems with that driver. The driver supplied with Service Pack 4 or later seems to function properly. To enable DMA on a Windows NT 4 system, take the following steps:

  1. If you have not already done so, download and apply Service Pack 4 or later.

  2. Run Dmacheck.exe from the \support\utils\i386 directory. The dialog indicates the present status of DMA on each ATA channel. Mark the DMA Enabled option button on the channel(s) you want to enable DMA for. Note that if a channel has two ATA devices connected, you should not enable DMA unless both devices are DMA-capable.

  3. Restart the computer and run Dmacheck.exe again. The channel(s) you enabled should still have the DMA Enabled option button marked. If that is not the case, either the ATA interface or one or more devices on the channel are not DMA-capable.

Windows 2000/XP

Windows 2000 and Windows XP generally manage DMA properly and automatically. During a fresh install, Windows 2000/XP tests the ATA interface and the connected devices to determine DMA compatibility. If the interface and all connected devices are DMA-compatible, Windows 2000/XP enables DMA for that interface. A problem may arise during an upgrade installation, however. If the earlier OS version was not configured to use DMA, Windows 2000/XP may not enable DMA even though the interface and devices support it. To check DMA status on a Windows 2000/XP system, and to enable DMA if necessary, take the following steps:

  1. If you're not sure how your CD-ROM drive is configured, restart the system and watch the BIOS boot screen to determine whether the drive is connected to the Primary or Secondary ATA channel and whether it is configured as Master or Slave.

  2. Right-click the My Computer icon and choose Properties. Click the Hardware tab and then the Device Manager button to display Device Manager.

  3. Locate the IDE ATA/ATAPI Controllers entry and click the + icon to expand the listing. There should be three lines visible, assuming that both IDE channels are enabled. The first, which will be something like Intel® 82801BA Bus Master IDE Controller, is for the ATA controller itself. The two remaining lines should be Primary IDE Channel and Secondary IDE Channel.

  4. Right-click the channel to which your CD-ROM drive is connected, choose Properties, and then click the Advanced Settings tab to display the IDE Channel Properties dialog. This dialog, shown in Figure 10-2, has two sections, one for Device 0 (Master) and another for Device 1 (Slave). The listing for your CD-ROM drive should display the DMA mode currently in use in the Current Transfer Mode box. If it does, your drive is operating at peak efficiency, and you can exit the dialog. For example, Figure 10-2 shows that the CD-ROM drive installed as the master device on the secondary IDE channel is using Multi-Word DMA Mode 2, which is the highest DMA standard it supports.

    Figure 10-2. The Secondary IDE Channel Properties dialog shows that this drive is operating in DMA mode
    figs/pcn2_1002.gif
  5. If the Current Transfer Mode box for the CD-ROM drive lists PIO Mode, check the setting for that device in the Transfer Mode box. If the drop-down list in that box is set to DMA if available, that means that Windows has determined that either the interface or the drive (or both) does not support DMA. Exit the dialog and resign yourself to running in PIO mode. If the Transfer Mode box is set to PIO Only, use the drop-down list to change that setting to DMA if available, save your changes, restart the system, and redisplay that dialog. If the Current Transfer Mode box for the drive now displays a DMA mode, the drive is now using DMA. If the box still displays PIO Mode, Windows has determined that it is unsafe to use DMA mode.

Regardless of operating system, it's a bad idea to configure a PIO-mode device to share an ATA channel with a DMA-capable device. That's because ATA doesn't allow mixing DMA mode and PIO mode on one channel. If one device runs PIO mode, both must do so, which cripples the DMA-capable device. In particular, it's a horrible idea to put a PIO-only CD-ROM drive on the same channel as an Ultra-DMA hard drive, because that means the hard drive will run in PIO mode, which cuts throughput by half or more and dramatically increases CPU utilization. Put the PIO-only drive on its own channel, alone or with another PIO-only device, or replace the drive with a DMA-capable drive.

10.4.3 Installing and Configuring a SCSI CD-ROM Drive

Installing and configuring a SCSI drive is somewhat more involved. Rather than attempting to provide step-by-step instructions, which vary according to the specific drive and adapter, we've chosen to illustrate a typical installation using a Plextor UltraPlex 40Xmax drive and an Adaptec 2930 SCSI host adapter, noting potential pitfalls along the way:

  • If you have not already done so, the first step is to install the SCSI host adapter. To do so, power down the system, remove the cover, and locate an unused PCI expansion slot that supports bus mastering. Many recent systems support bus mastering on all available slots. Older systems may support bus mastering on only some slots. In that case, the slots capable of bus mastering are normally white or ivory, and those not capable of bus mastering are brown or black. Remove the slot cover for the selected slot, align the bus connector with the slot, and press down firmly to seat the adapter. Use the screw that secured the slot cover to secure the adapter. If you have a spare drive activity indicator LED, you can connect it to J2 on the host adapter (pins 1 and 2 if the cable has only two positions).

  • Both the Plextor drive and the Adaptec host adapter fully support SCAM (SCSI Configured Auto-Magically), a kind of Plug-N-Play for SCSI. Note the following issues when working with SCAM:

    • SCAM-compliant drives like the Plextor UltraPlex 40Xmax allow a SCAM-compliant host adapter like the Adaptec 2930 to set the drive's SCSI ID and termination status automatically.

    • SCAM-tolerant drives report their SCSI ID and termination status to the adapter, but cannot reset SCSI ID or termination status automatically. Instead, you must change jumpers or switches on the drive manually to set SCSI ID and termination.

    • Non-SCAM drives do not even report their current settings to the adapter, let alone allow the adapter to reset them automatically. When using non-SCAM devices, you must manually verify settings and change them as necessary. Note that enabling SCAM on the host adapter may cause your computer to hang if you connect a non-SCAM drive, because the adapter is unable to determine current settings for the non-SCAM device. If this occurs, use the Adaptec SCSISelect utility at boot time to disable SCAM on the adapter.

  • If you are installing a non-SCAM adapter and/or drive, you must set SCSI IDs manually using the jumpers or switches on the adapter and drive. If the adapter supports seven devices (plus the adapter itself), the adapter is normally configured as SCSI ID 7 (the highest priority SCSI ID), leaving SCSI IDs 0 through 6 available for drives. ID 0 is normally reserved for the boot hard disk, and ID 1 for a secondary hard disk. A CD-ROM drive should normally be assigned to ID 2 or higher. If the host adapter is dedicated to devices other than hard drives, it is acceptable to assign ID 0 or ID 1 to the CD-ROM drive.

  • If you are installing a non-SCAM adapter and/or drive, you may also need to terminate the SCSI bus manually. Exactly two devices must be terminated on each SCSI bus, and these devices must be those at each end of the bus, as follows:

    • If the SCSI adapter has only internal devices attached to it, the adapter itself and the final device on the internal SCSI chain must be terminated.

    • If the SCSI adapter has only external devices attached to it, the adapter itself and the final device on the external SCSI chain must be terminated.

    • If the SCSI adapter has both internal and external devices attached to it, do not terminate the SCSI adapter itself. Instead, terminate the final device attached to the internal chain and the final device attached to the external chain.

Note that most recent SCSI host adapters, including the Adaptec 2930, can automatically detect the presence of terminated SCSI devices on the bus and automatically set their own termination status accordingly. On Adaptec models, which we recommend exclusively, this option can be enabled or disabled by using SCSISelect to set Host Adapter Termination to AutoTerm, which is the default setting. Also note that a few internal SCSI cables have a built-in terminator at the end of the cable. If you use such a cable, make sure that termination is disabled on all drives connected to that cable.

  • Once you have resolved SCSI ID and termination issues and have the drive physically installed, the next step is to connect the cables. Most adapters are supplied with a standard two-device cable. If you need to connect more than two drives, replace the cable before proceeding. Otherwise, connect the cable to each drive, making sure to align pin 1 on the cable (indicated by a red stripe) with pin 1 on each device (indicated by a small number, triangle, or dot on the connector). It doesn't matter which drive connects to which cable position, so mix and match drives and cable positions in whatever way makes it easiest to route the cable. Also connect the power cable and the audio cable that links the CD-ROM drive to the appropriate connector on your sound card or motherboard.

  • After verifying all settings and connections, turn on any external SCSI device(s) first, and then turn on the PC. Ordinarily, the system should boot normally, but the SCSI CD-ROM drive may or may not be recognized, depending on your operating system and other factors. Before you configure the operating system to use the drive, however, some systems may require that you complete one or both of the following steps:

    CMOS Setup

    On most systems, the PCI bus assigns IRQs and port addresses automatically. If your system requires setting PCI bus parameters manually, do so during the first restart, using the system or motherboard documentation for guidance.

    SCSI Setup

    The SCSI BIOS displays its own splash screen while initializing, which normally displays adapter and BIOS information and a list of installed SCSI devices. Ordinarily, the default settings are fine, but in some cases you may need to change settings to get the drive to work at all or to optimize its performance. If this is the case for your system, press whatever key sequence is needed to invoke the SCSI Setup routine and make the necessary changes, as recommended by the documentation for the host adapter and/or drive.

    If either or both of these steps are needed, restart the system after completing each.

10.4.4 General SCSI CD-ROM Troubleshooting

If you have installed your SCSI host adapter and drive properly and installed the requisite drivers (described in the following sections) and your drive does not work, check the following items before proceeding to other troubleshooting steps:

  • Is the host adapter installed in a bus-mastering PCI slot? Verify with the system or motherboard documentation that the chosen slot supports bus mastering, or try another slot.

  • Are all SCSI devices turned on, and were they turned on when you booted the system? The SCSI adapter recognizes only devices that are active when the system boots. If necessary, power down all SCSI devices, turn off the computer, turn the SCSI devices back on, and then turn the PC back on.

  • Are all SCSI cables and power cables connected properly? Verify that the pin 1 orientation of all SCSI cables and devices is correct, and that the power cable is fully seated in each SCSI drive.

  • Does each SCSI device on the bus, including the host adapter, have a unique SCSI ID, and is the bus terminated correctly? If not, correct the ID assignments and/or termination and restart the system.

  • If SCAM is enabled on your host adapter, are you certain that all connected devices are SCAM-compliant (or at least SCAM-tolerant)? If not, either replace the non-SCAM device, or disable SCAM on the adapter and configure SCSI IDs and termination manually.

  • Are you certain that you have installed all driver software that your adapter and/or devices require?

10.4.5 Windows 9X/2000/XP SCSI Driver Installation and Troubleshooting

Ordinarily, Windows 9X/2000/XP automatically detects installed SCSI host adapters and devices. If it does not, first verify that the hardware is installed and configured properly. If there is no apparent hardware problem, use the Add New Hardware Wizard to force installation of the necessary drivers for the new hardware.

To do so, open Control Panel (Start figs/u2192.gif Settings figs/u2192.gif Control Panel) and double-click Add New Hardware. Accept the default selection to allow Windows to attempt to auto-detect the new hardware. If Windows fails to detect the hardware, or locks up during the detection process, restart the system, reinvoke the Add New Hardware Wizard, and this time tell it that you want to select from a list. If you have a driver disk supplied by the manufacturer, choose the Have Disk option at the appropriate point in the process. Otherwise, use the lists of manufacturers and models displayed by the Add New Hardware Wizard to select the standard Windows drivers for the installed devices. If no listed device exactly matches what is installed, you can sometimes use the most closely similar device that is listed. Ordinarily, the driver will load correctly and the device will be recognized. If problems occur, take the following steps to resolve them:

  1. Open Device Manager (Start figs/u2192.gif Settings figs/u2192.gif Control Panel figs/u2192.gif System figs/u2192.gif Device Manager). Locate the SCSI controller item in the list, and click the plus sign to its left to expand the listing. Your SCSI host adapter should be listed. If it is not and you have not yet installed drivers manually, exit Device Manager and install the drivers. If you have already attempted a manual installation and are certain that all hardware is properly installed and configured, contact the manufacturer or dealer for a replacement device.

  2. If the device is listed, highlight it and click Properties to display the General page of the property sheet for the device. The Device Status section should state "This device is working properly." If it does not, the most likely causes are a resource conflict or a hardware problem. The Device usage section contains a list of stored hardware profiles. Make sure that the checkbox for current configuration (and any other configurations for which you want to use this device) is marked.

  3. Click the Resources tab and examine the Conflicting Device list section at the bottom, which should state, "No conflicts." If a conflicting device is listed, reconfigure one or both devices to eliminate the conflict.

  4. After making any necessary changes to the General page and the Resources page, save your changes and restart the system. The device should be recognized properly. If it is not, contact the adapter manufacturer's technical support.

10.4.6 Windows NT 4 SCSI Driver Installation and Troubleshooting

After ensuring that the SCSI adapter and devices are installed and configured properly, restart Windows NT. Open Control Panel (Start figs/u2192.gif Settings figs/u2192.gif Control Panel) and double-click SCSI Adapters. Windows NT displays the SCSI Adapters dialog Devices page, which shows installed SCSI (and IDE) adapters. Click Add to install the device drivers for the host adapter. Windows NT displays a Creating Driver List progress bar as it builds the driver list, and then displays the Install Driver dialog, which contains a list of manufacturers in the left pane and a list of SCSI adapters for the selected manufacturer in the right pane. Select the manufacturer and adapter from these lists only if you do not have a more recent driver supplied by the manufacturer. If you have a driver disk, click Have Disk and follow the prompts. In either case, if drivers already exist on the system, you'll be asked whether you want to use the existing drivers or install new drivers. When so prompted, install the new drivers unless you have good reason to keep the old ones. After driver installation completes, restart the system to load the drivers. Ordinarily, the driver will load correctly and the device will be recognized. If problems occur, use the following methods to resolve them:

  • Use Event Viewer (Start figs/u2192.gif Programs figs/u2192.gif Administrative Tools (Common) figs/u2192.gif Event Viewer) to view the System log, which contains a timestamped list of errors. These messages are often terse and confusing, but may allow you to narrow down the problem.

  • Use the SCSI Adapters utility (Start figs/u2192.gif Settings figs/u2192.gif Control Panel figs/u2192.gif SCSI Adapters) to verify that the SCSI driver was installed.

  • Use Windows NT Diagnostics (Start figs/u2192.gif Programs figs/u2192.gif Administrative Tools (Common) figs/u2192.gif Windows NT Diagnostics) to verify that the SCSI driver is running, the resources it is using, and whether there are any conflicts.

  • Use the Devices utility (Start figs/u2192.gif Settings figs/u2192.gif Control Panel figs/u2192.gif Devices) to verify that the SCSI driver is listed as a supported device and that it is configured to start automatically when the system starts.

10.4.7 Changing CD-ROM Drive Letter Assignments

By default, all versions of Windows assign a CD-ROM drive the next available drive letter following those for any local volumes. If you subsequently install an additional hard disk or repartition your drive to create additional volumes, the letter assigned to the CD-ROM drive may change, which may confuse installed software that attempts to access the CD-ROM drive as the old letter. You can avoid this "musical chairs" reassignment of CD-ROM drive letters by manually assigning the CD-ROM drive a drive letter that is higher than the drive letter for any existing local or network volume. We use R: for the CD-ROM drive by long-standing habit, although there is something to be said for assigning it to Z:. To assign a different drive letter to the CD-ROM drive, proceed as follows:

Windows 95/98/98SE/Me

Right-click the My Computer icon, choose Properties, and then click the Device Manager tab. Double-click the CD-ROM drive to display its Properties sheet, and then click the Settings tab. Use the spinner to assign an unused drive letter to the CD-ROM drive and then restart the system.

Windows 2000/XP

If you have not already done so, right-click the Task Bar, choose Properties, click the Advanced tab, and mark the Display Administrative Tools checkbox in the Start Menu Settings pane. From Control Panel, choose Administrative Tools figs/u2192.gif Computer Management. In Computer Management, expand the tree if necessary to show items in the Storage branch. Click Disk Management, locate your CD-ROM drive in the lower-right pane, right-click its icon to display the context-sensitive menu, and choose the menu item Change Drive Letter and Path. Assign an available drive letter to the CD-ROM drive, save your changes, and exit. Once you accept the changes, the new drive letter takes effect immediately.

Windows NT 4

Start Disk Administrator (Start figs/u2192.gif Programs figs/u2192.gif Administrative Tools (Common) figs/u2192.gif Disk Administrator). Right-click the CD-ROM drive and mark the Assign Drive Letter option box. Use the drop-down list to assign the desired drive letter and click OK. Windows NT displays a confirmation dialog. If you accept the change, the new drive letter becomes active immediately.

If you change the drive letter assignment for a CD-ROM drive, do so immediately after installing the drive or the operating system. If you use that drive under its original letter to install software, that software will later attempt to access the drive using the old drive letter.

       


    PC Hardware in a Nutshell
    PC Hardware in a Nutshell, 3rd Edition
    ISBN: 059600513X
    EAN: 2147483647
    Year: 2002
    Pages: 246

    Similar book on Amazon

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net