DOS driver to allow Memory Managers (e.g. EMM386) to be used with Intel AHCI (SATA) controllers without corrupting EBDA
This sets out to solve the same problems as ahcifix.386
(detailed in that project's Readme), but under EMM386
(or equivalent) as opposed to Windows 3.1.
Assemble it as a binary file using JWASM or similar, e.g. as done in the DOSBUILD.BAT
.
Load it as a device from CONFIG.SYS
, before EMM386
or any other Memory Manager. If you plan to run Windows 3.1 in Enhanced Mode, you can also specify the path to your copy of ahcifix.386
. This can be omitted if it's in C:\WINDOWS\SYSTEM
though.
For example, here's what I have in my CONFIG.SYS
:
DEVICE=C:\AHCIFIXD\AHCIFIXD.SYS C:\WIN16DDK\386\AHCIFIX\AHCIFIX.386
DEVICE=C:\DOS\EMM386.EXE RAM I=B000-B7FF FRAME=D800
I have included my EMM386.EXE
invocation to highlight that this driver is loaded before it.