Forcing Windows 9x to run harddisks in DMA mode

© www.rizla72.btinternet.co.uk/osr2secrets.htm

BUS MASTER DMA - Part 4
BUS MASTER DMA - Part 3
BUS MASTER DMA - Part 2
BUS MASTER DMA - Part 1

BUS MASTER DMA - Part 4

There are a few more things you can do to fix a buggy Bus Master DMA EIDE driver, especially if you "patched" OSR2's default hard disk controller drivers with Intel's NEW Bus Master (BM) DMA drivers. Download the UPDATE that matches your Pentium or Pentium II/III chipset!

THE BUGS:
- Your older IDE/non-IDE hard drive is not recognized by Win95 B/C OSR2, and does not appear on the Device Manager "Disk drives" list.
- Your IDE/ATAPI cd-rom drive is not recognized by OSR2, and does not appear as Device Manager's "CDROM" item.
- You cannot enable the DMA transfer option for your hard disk(s)/cd-rom(s) under OSR2's Control Panel -> System -> Device Manager -> Disk drives/CDROM -> Settings -> DMA check box.
- You have a non-working "Secondary IDE controller" (exclamation sign) under "Hard disk controllers" menu in Device Manager.

THE FIXES:
- Download and install the updated ESDI_506.PDR IDE driver version 4.00.1116 for ALL Windows 95 releases, from Microsoft.
- Restart Windows
- Run Regedit and go to:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\hdc
Under "hdc" there should be at least three or four keys: from 0000 to 0003.
- Look for the 000x (where x = 0 - 3) keys that have a "DriverDesc" string, which have something like "Primary [Bus Master] IDE controller" or "Secondary [Bus Master] IDE controller" as values (these can usually be found under the 0002 or 0003 keys). In ALL 000x keys that match the criteria above, modify the "PortDriver" string from "IDEATAPI.MPD" to read "ESDI_506.PDR" (no quotes).
- Restart Windows. - Remove ALL hard and cd-rom drives from OSR2 Device Manager's list and restart Windows.
- They will be redetected by the Hardware Wizard (and hopefully correctly configured) the next time you start

If you have one or two hard IDE/EIDE drives connected to the primary IDE port on your motherboard (E)IDE controller, and an ATAPI/IDE cd-rom drive connected to the secondary IDE interface, it might help if you configure your cd-rom drive as slave, even if it is the ONLY drive on the secondary IDE port. To do this, power off your PC, open the case and reset the jumpers on the back of your internal IDE/ATAPI cd-rom drive to "slave", following the instructions in your provided cd-rom manual. Reboot, access your CMOS/BIOS Setup, and reconfigure the Secondary IDE port to match your new hardware settings:
cd-rom as slave
Save your changes and reboot.

HKLM\System\CurrentControlSet\Services\Atapi\Parameters\Device0 (Primary Device)
HKLM\System\CurrentControlSet\Services\Atapi\Parameters\Device1 (Secondary Device)

Settings of value 'DriverParameter':
0x0 OFF
0x1 AutoDetect
0x2 ON

There exists a utility DMACheck for this purpose at the Microsoft site.

BUS MASTER DMA - Part 3

This is the only solution that allowed me to enable DMA IDE disk transfers on a Win95B OSR2 machine:
Stuck in MS-DOS Compatibility mode, DMA didn't take, CD-ROM lost, and Exclamation points next to all IDE controllers. When rebooting, the following error appears:
Your multi-function device (Standard dual PCI IDE controller) has some child devices using 32-bit drivers and others using compatibility mode drivers.
This configuration is not supported. After you restart your computer Windows will use compatibility mode drivers for each child device attached to this multi function device. If you want to use 32-bit drivers, you may be able to obtain and updated driver for the device that caused the problem by contacting your hardware manufacturer, or you can disable the device.
Here's what to do:
Power down, remove cover, unplug cd-rom from the motherboard, or sound card if SCSI, that is cd-rom plugged into the sound card. Next unplug sound card from motherboard, as the on board IDE controller must also be disconnected. Unplug any 2nd hard drives or removable drives from the motherboard IDE connectors. The only thing that can be plugged into the motherboard can be your main drive "C". Make any necessary BIOS settings if needed (only required for additional hard drives), and you may also have to reset jumpers on the primary drive to show primary only.
Restart the computer, but tap on the F8 key until it comes up with the menu screen. Choose Safe Mode.

REGEDIT.EXE HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\IOS

On the right hand side you should have some data such as default, static etc. Look for something that says NOIDE. If it is there, highlight it and press the delete key on the keyboard. Answer yes to deleting and then close the Registry editor.

Also while in Safe mode, right-click once on My computer and choose Properties. Then choose Device Manager, and take the plus out of Hard disk controllers, and highlight and remove the setting Standard Dual PCI IDE Controller. WARNING: this may freeze up your system, if so hit the reset button, or Ctrl+Alt+Del, and let the system restart. It will detect your PCI IDE Controller and re-set it up. Then power down and start plugging in the cd-rom, sound card etc, and let Windows boot back up.

This worked for me, and was much better than reformatting and reloading all the software.

BUS MASTER DMA - Part 2

These are the necessary steps to have the Bus Mater DMA transfer properly enabled in Windows 95B/C OSR 2.x Device Manager (on certain systems, anyway). But it seems that the workarounds described below didn't work on a friends machine. Here's a resolution.
"DMA attempt, stuck in MS-DOS compatibility mode ?
I tried your DMA for hard drives trick, and now I'm stuck in MS-DOS compatibility mode.
Device Manager says hard drives are not working properly, and I can't get back my cd-rom.
1. Click on Start -> Run -> type in Sysedit.
2. The System editor will come up. The first window is Autoexec.bat. Look for a line that has Mscdex in it and type REM at the beginning of the line. Save settings and exit. Then reboot.

If it still doesn't show up...
1. Restart the computer, but tap on the F8 key until it comes up with a menu screen. Choose Safe Mode.
2. In safe mode, right-click once on My computer and choose Properties. Then choose Device Manager.
3. If cd-rom is listed in Device Manager, highlight it and click remove. Then close device manager and restart the computer from the Shut Down menu.

If it still doesn't show up...
1. Click on Start -> Run -> type in Regedit.
2. This will bring up the Registry editor screen. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VXD\IOS.
3. On the right hand side of the screen now you should have some data such as default, static etc. Look for something that says NOIDE. If it is there, highlight it and press the Delete key. Say Yes to deleting and then close the registry editor. Restart the computer.

If it still doesn't show up...
1. Look in Device Manager under hard disk controls and see if you have any yellow circle with an ! in the middle of it. If there is, highlight it (them) and click remove. Close the Device Manager and restart the computer.
2. It will redetect hardware as it reboots, just let it run the Wizard.
---The above didn't work---
I have a Western Digital 2.5 GB IDE hard drive for drive "C" and an old Samsung 420 MB hard drive for slave drive "D", and an 8x Creative Labs cd-rom plugged into the AWE32 sound card.
Pentium class motherboard with a Cyrix 686-200MHz chip with 32 MB of RAM. I think I shouldn't, or no one should try this unless all the drives are IDE. As the first errors I got where:
Your multi-function device (Standard dual PCI IDE Controller) has some child devices using 32-bit driver and others using compatibility-mode drivers. This configuration is not supported.
After you restart your computer, Windows will use compatibility mode drivers for each child device attached to this multi function device. If you want to use 32-bit drivers, you may be able to obtain and updated driver for the device that caused the problem by contacting your hardware manufacturer, or you can disable the device.
I tried reinstalling Win95B, to no avail, sure wish I had kept a backup copy of my Registry files.

DMA attempt, stuck in MS-DOS compatibility mode?
My advice is to upgrade your MSHDC.INF file (located in the C:\Windows\Inf folder), if you haven't already done so, with the Intel INF file Update, and only after that install the BM DMA driver update v3.02 from Intel.

Other resources for DMA/BM drivers, problems, solutions:
- Intel BM DMA support web page
- Intel BM DMA for Pentium II/III chipsets
- BM Drivers web site
- Unofficial OSR2 resource

As mentioned in Part 1 OSR2 topic, the requirements for the DMA transfer enhancement to work are:
- You must have Win95B OSR2 (or later);
- You must have a motherboard and an EIDE controller that supports DMA (multiword) I/O transfers (PIO Mode 4 at 16.6 MB/sec), which means your motherboard has to have a DMA capable controller;
- You must have at least a Pentium class (or above) CPU;
- Your IDE/EIDE hard drives have to support EIDE DMA transfer (at least modes 1 and 2, multiword).

DMA = Direct Memory Access.
PS: A cd-rom drive connected to a sound card IDE/ATAPI interface (like the Creative Labs AWE32/AWE64), does NOT support DMA transfers (the AWE interface is IDE ISA 16-bit, NOT EIDE PCI 32-bit).
You have to hook up your IDE/ATAPI cd-rom drive to the motherboard EIDE controller (which has to support the DMA transfers), to be able to take advantage of this OSR2 enhancement.
PS2: To my knowledge, the Mscdex line (or/and Smartdrv) in Autoexec.bat should NOT interfere with 32-bit Fast Disk (virtual protected mode VXD disk and file transfers) proper operations in Win95 (any Win95 version), IF your hard disk AND cd-rom drives are connected to an EIDE (PCI 32-bit) interface, preferably the one on the motherboard. It never did on my last 3 Pentium systems. I didn't experience MS-DOS compatibility mode in any of these releases: Win95 retail, Win95a OSR1, Win95B OSR 2.0, or Win95B OSR 2.1 on any of my drives:
1. Intel Plato II Premier motherboard + Pentium 90;
2. Tyan Tomcat S1 motherboard + Pentium 200;
3. Megatrends HX83 motherboard + Pentium MMX 233.
But I always hooked up my cd-rom to the motherboard EIDE interface, while ALWAYS using the MSCDEX line in my Autoexec.bat.
I was/am using:
1. Western Digital Caviar ACH31000 EIDE 1 GB PI/O mode 4 (DMA mode 0) HD;
2. Maxtor DiamondMax 5.1 GB EIDE PI/O mode 4 (UltraDMA mode 2) HD;
3. Maxtor DiamondMax 8.4 GB EIDE PI/O mode 4 (UltraDMA mode 2) HD.
My old/new IDE/ATAPI internal cd-roms:
1. Turtle Beach NEC 8x;
2. Pioneer DR-444 12x;
3. Memorex 32x.

PS3: Also, your cd-rom must be 100% ATAPI/IDE compliant, which means it must support DMA transfers, at least mode 1."

BUS MASTER DMA - Part 1

Do you have...
- a Pentium or Pentium Pro/II/III class motherboard?
- an IDE/EIDE hard drive(s) capable of DMA transfer modes?
- an IDE/ATAPI compliant CD-ROM/DVD drive?
- Windows 95 B/C OSR 2.x or later installed?
If you answered "yes" to the questions above, you're in for a treat.
You can tell OSR2 to handle ALL 32-bit bus master (BM) (E)IDE drive transfers through the DMA (Direct Memory Access) controller, and thus save your CPU some processing time and power for more important tasks.

COMMENT:"Careful here! I tried this twice and ended up with my FATs trashed. This bug seems to occur only on Fujitsu drives on an overclocked bus (83MHz). I have a Pentium 166 MMX overclocked to 2.5 * 83 = 210 MHz."
This comment courtesy of Yuri Khan (kukina@nioch.nsc.ru).

NOTE: Make sure you have installed the ORIGINAL DMA EIDE bus drivers that come bundled with Win95B OSR2 for this to work!
To find out what kind of Bus Master Controller is installed on your OSR2 system by Win95 B/C, right-click the My Computer icon, select Properties, click the Device Manager tab, and finally double-click on "Hard disk controllers".
It should list 3 or 4 items. Here they are on my Intel Pentium P55C MMX 233MHz, Triton II HX machine, equiped with an Intel 82371SB PIIX3 dual Bus Master EIDE/IDE Controller:
- "Intel 82371SB PCI (Bus Master) IDE Controller"
- "Primary IDE controller (dual fifo)"
- "Secondary IDE controller (dual fifo)"
If you also have an ISA 16-bit bus sound board (like the Creative Labs Sound Blaster AWE64/AWE32 PnP), then you also show a 4th item on this list, because this type of sound card has a built-in IDE controller for a cd-rom drive hookup:
- "Generic/Standard IDE/ESDI controller" (or similar).
The IDE Bus Master Hard Disk Controller numbers may be different on your system, if your motherboard is equiped with a different chipset, but the list should be similar.
Now all you have to do, is:
- Right-click on My Computer icon.
- Select Properties.
- Click the Device Manager tab.
- Double-click your "CDROM".
- Double-click your cd-rom drive name.
- Select the Settings tab.
- Check the DMA box.
- Click OK.
- Click OK again.

You will be prompted to restart your computer. Don't do this yet. Repeat the above steps for EACH of your installed IDE hard disks:

- Right-click on My Computer icon.
- Select Properties.
- Click the Device Manager tab.
- Double-click your "Disk drives".
- Double-click your "GENERIC IDE DISK TYPE47" (or whatever other name was assigned to your hard disk/s).
- Select the Settings tab.
- Check the DMA box.
- Click OK.
- Click OK again.

When you're done enabling DMA transfer for ALL your EIDE/IDE drives, go ahead and restart your system.

REQUIRED READING from Microsoft Knowledge Base:
- Computer with Ultra DMA IDE Controller May Hang" under Win95B OSR 2.0 and OSR 2.1!
- Windows 95 IDE Support for SMART, DMA, and ATAPI Tape Drives" refers to ALL Win95 releases prior to OSR 2.5!
- DMA Check Box Does Not Remain Checked" refers to older IDE drives NOT capable of DMA mode(s) under Win95 B/C OSR 2.x!

Read these topics and then install the free driver update

ADDENDUM:
Another EIDE Bus Master driver compatible with the DMA transfer setting under OSR2 is the one provided by Intel (BM DMA IDE driver version 3.02). Works with ALL Windows 95 releases. Point your web browser to the Intel Bus Master IDE Drivers Home page, and download Intel Win95 Bus Master IDE driver v3.02 [bmide_95.exe, 605 KB, free].
WARNINGS:
Owners of Creative Labs Sound Blaster 16 (ASP), Vibra (16), AWE32 or AWE64 (Gold) ISA sound cards may encounter a Windows Protection Error (WPE) because these boards automatically assign I/O Base Address (BA) 620 to the Creative Wavetable Synthesizer, which is also used by the Intel Bus Master DMA Drivers 3.0x, especially if connecting 2 IDE devices (2 HDs or 1 HD + 1 CD-ROM/DVD drive) to the motherboard primary IDE interface (IDE1).
To avoid this: open Control Panel -> System -> Device Manager tab -> Sound, video and game controllers -> Creative Wavetable Synthesizer -> Resources tab -> uncheck "Use automatic settings" box -> Select "Setting based on:" -> "Basic configuration 0001" [I/O BA 640] -> click OK twice -> reboot.

Users of Quarterdeck MagnaRAM 97, QEMM 9.0, Sincronys Windrenalin and/or Network Associates (formerly Helix) Hurricane 98 v1.0x may experience CONFLICTS OR LOCKUPS with OSR2's DMA setting enabled for your fixed / removable drives, available from: Control Panel -> System -> Device Manager tab -> Disk Drives/CDROM -> your drive name Properties -> Settings tab -> DMA check box, ONLY IF these 3rd party retail products' application acceleration/faster loading features are enabled !