Possible Windows 2.11 Bug

Discuss MS-DOS, Windows 1, 2 and 3.
Post Reply
LangsamSpieler
User avatar
Posts: 302
Joined: Sun Apr 16, 2017 4:38 pm
Location: Zurich, Switzerland
Contact:

Possible Windows 2.11 Bug

Post by LangsamSpieler »

When i start Windows 2.11 with Win386, a error is coming with too high memory. When i start Windows 2.11 with Win86, Windows sucessfully starts up but it show a error in the Startscreen with the high Memory, but Windows can run sucessfully.
416175:38 BetaArchive Registration
416176:06 First BetaArchive Post
4251811:32 Archive Access Granted

Overdoze
User avatar
Posts: 1762
Joined: Mon Feb 24, 2014 10:28 am
Location: Slovenia

Re: Possible Windows 2.11 Bug

Post by Overdoze »

It's far more likely you simply haven't configured your memory properly in DOS.
All roads lead to Neptune™

KRNL386 - my site about retro computing | My site about Windows 1.0 | My blog | 86Box Manager | LeakDB - list of PC OS warez leaks

LangsamSpieler
User avatar
Posts: 302
Joined: Sun Apr 16, 2017 4:38 pm
Location: Zurich, Switzerland
Contact:

Re: Possible Windows 2.11 Bug

Post by LangsamSpieler »

With how may memory are Windows 2.11 work?
416175:38 BetaArchive Registration
416176:06 First BetaArchive Post
4251811:32 Archive Access Granted

TheCollector1988
User avatar
Donator
Posts: 3604
Joined: Wed Feb 23, 2011 12:11 am
Location: Italy
Contact:

Re: Possible Windows 2.11 Bug

Post by TheCollector1988 »

You need himem.sys iirc and a side note, you need a true DOS environment (not DOSBox if on emulation).

xelloss
User avatar
Donator
Posts: 400
Joined: Sun Aug 18, 2013 7:26 pm
Location: Edinburgh, Scotland

Re: Possible Windows 2.11 Bug

Post by xelloss »

IIRC Windows 2.x tries to make the high memory area (HMA) available to its programs; MS-DOS >= 5.0 tries to load itself in the HMA when the DOS=HIGH directive is included in config.sys, which results in Windows 2.x complaining about an incorrect memory configuration.

Probably, to run Windows 2.x you should also avoid loading HIMEM.SYS, as this was only introduced a few years later. I think Windows/386 2.1x comes with its own built-in memory driver, which emulates expanded memory backed by extended memory, without the need to load HIMEM or EMM386.

To be on the safe side, remove any HIMEM, EMM386, DOS=HIGH (and/or DOS=UMB) from config.sys, then install Windows/386 2.11. The installation program will make changes to config.sys if needed.

dfawcus
Posts: 81
Joined: Sat Apr 29, 2017 2:21 pm

Re: Possible Windows 2.11 Bug

Post by dfawcus »

Ignoring the 386 VMM version.

For 2.10/2.11 there are two versions of USER userf.exe and users.exe, the former is expected to be used with the HMA available, the latter when it is not available. At setup time you get the choice as to which will be used (it may not explicitly mention those names).

It can also make use of Expanded Memory (EMM) for swapping, preferably EEMS (EMS 4.0), with as much conventional memory as possible back filled.

So you need HIMEM (or some other HMA provider) to allow for it to place USER there, and nothing else (including DOS) must be using the HMA. To provide EEMS you'll need an appropriate provider (say EMM386) as needed to match the emulation being provided.

Battler
User avatar
Donator
Posts: 2117
Joined: Sat Aug 19, 2006 8:13 am
Location: Slovenia, Central Europe.
Contact:

Re: Possible Windows 2.11 Bug

Post by Battler »

EMM386 needs at least C800-CFFF free in order to successfully allocate EMS pages. If you're using a virtualizer, they tend to use a video BIOS which is bigger than 32 kB (so going quite past CFFF:000F), and fill D000-EFFF with option ROM's, making EMM386 virtually unusable. QEMU kind of does the same, and even makes non-assigned memory mappings return 0x00 instead of the correct 0xFF, which means that even if the memory is free, HIMEM and EMM386 will not consider it such and not use it unless you specifically include that memory with I= in EMM386's command line.
This is why PCem and 86Box are recommended (as is PCE), as you have the guarantee of C800-DFFF free (D000-DFFF if using AT MFM or any XT hard disk controller, as they need their ROM at C800) and on most boards, also E000-EFFF (on all boards actually, but on some boards, the buggy BIOS'es leave a leftover of the compressed BIOS data at E000-EFFF, which can be safely overwritten, but EMM386 needs to have the I=E000-EFFF parameter added).
Main developer of the 86Box emulator.
Join the 86Box Discord server, a nice community for true enthusiasts and 86Box supports!

The anime channel is on the Ring of Lightning Discord server.

Check out our SoftHistory Forum for quality discussion about older software.

Post Reply