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 !