pufengdu / IO8EMMOK

A driver to allow loading of EMM386.EXE in MS-DOS 8.00 real mode
GNU General Public License v2.0
14 stars 0 forks source link

IO8EMMOK

A driver to allow loading of EMM386.EXE in MS-DOS 8.00 real mode

THIS DRIVER IS DESIGNED ONLY FOR MS-DOS 8.00, NOT OTHERS.

Version 1.3

About running WFWG311

Well, some more notes are needed here. Running WFWG311 should not need EMM. XMM only should be enough to let WFWG311 to start. WFWG311 has its own EMM, the 86mmgr.vxd. Therefore, it seems like that EMM386.EXE should not be a "must load first" component. However, this is not the case in MS-DOS 8.00. As I have stated as comments in the code, the XMM in IO.SYS always resides in HMA, which is different to all older versions. Even with the IO8EMMOK.SYS, it will not support loading WFWG311 directly using XMM, as IO8EMMOK.SYS does not consider loading WFWG311 system VMs. But...

It will allow you to load WFWG311, if you have loaded EMM386.EXE before loading WFWG311. After loading EMM386.EXE, when WFWG311 is initializing, it imports global memroy map from EMM rather than XMM. See the below screenshot for WFWG311 running on MS-DOS 8.00.

Enhanced Windows 3.xx

Note: Do NOT waste your time trying to use QEMM386 / 386MAX to get similar things done. They do not work in MS-DOS 8.0.

Condition

Install

Put IO8EMMOK.SYS in your DOS directory

Enable the real-mode DOS. Use any patch for that purpose.

DO NOT apply patch in this thread. https://msfn.org/board/topic/183250-how-to-disable-the-built-in-xms-driver-in-windows-mes-iosys

Add the following line as the FIRST line in your config.sys

DEVICE=C:\DOS\IO8EMMOK.SYS

You may load your EMM386.EXE after the above line, with any parameter.

DEVICE=C:\DOS\EMM386.EXE [ANY PARAMETERS]

Without the IO8EMMOK, MS-DOS 8.00 will hang when loading EMM386.EXE. Now, reboot your system. The system will not hang again. Enjoy.

Compile

Use MASM 6.15 to compile the source code.

Note

WIN386.EXE patch method

For Windows For Workgroup 3.11. Use hex editor to do the following replace

Find

 66 c7 46 49 ff ff

Replace

 6a ff 8f 46 49 90

There will be two replacements, together.

Supplementary Notes