[comp.windows.ms.programmer] Over 16 Meg

ravi@xanadu.com (Ravi Pandya) (05/30/91)

Has anyone had any success at all trying to get Windows 3.0 Enhanced
Mode to recognize the existence of over 16 Mb of RAM? I have 32 Mb of
RAM, and a couple of applications that can make good use of it, and
this limitation is infuriating. I have spent several days trying
various combinations and options of HIMEM, QEMM, EMM386, etc. to try
and get anything useful out of it, and have been spectacularly
unsuccessful. The "documentation" and "error messages" that Windows
provides have not been any help at all. Nor has Microsoft Online, a
very expensive and not particularly useful service. (And Microsoft has
the gall to raise the price to $2500 a year!!!)

Why on earth is this limitation there in the first place? I can
understand the reason in 286 mode, but in 386 enhanced mode it is
unexcusable. Is it the same kind of short-sighted laziness that led to
the original DOS 640k limit? 16 Mb is only an order of magnitude
beyond a reasonable current configuration, which means a lot of people
will be bumping their noses on it fairly soon. Is Windows 3.1 / 4.0
going to be any better? What about OS/2 2.0?
	--ravi

	Ravi Pandya
	Xanadu Operating Company
	550 California Avenue
	Suite 101
	Palo Alto, CA 94306
	415 856 4112 ext 122
	415 856 2251 fax
	ravi@xanadu.com

lair@ellis.uchicago.edu (Scott A. Laird) (05/31/91)

In article <1991May30.000945.12529@xanadu.com> ravi@xanadu.com (Ravi Pandya) writes:
>Has anyone had any success at all trying to get Windows 3.0 Enhanced
>Mode to recognize the existence of over 16 Mb of RAM? I have 32 Mb of

Windows is still more or less a 286 app, with segments and 24-bit addressing,
and shouldn't be able to directly access 32 Mb of RAM.  Nothing designed to
run on a 286 can use more than 16 Mb of extended memory.  Even in 386 enhanced
mode, Windows is still only capable of 16 Mb, because the computer is still
more or less running like a 286, it is just using virtual memory and the
virtual-86 mode for running DOS apps.  It still shouldn't be capable of
32-bit addressing.

>Why on earth is this limitation there in the first place? I can
>understand the reason in 286 mode, but in 386 enhanced mode it is
>unexcusable. Is it the same kind of short-sighted laziness that led to
>the original DOS 640k limit? 16 Mb is only an order of magnitude
>beyond a reasonable current configuration, which means a lot of people
>will be bumping their noses on it fairly soon. Is Windows 3.1 / 4.0
>going to be any better? What about OS/2 2.0?

Like I said, the limit is a hardware limit on the 286 chip.  OS/2 1.x has
the same problem.  I suppose the reason for the 640k limit is with the
hardware on the 808x, so the two are related.  

Both OS/2 2.0 and Windows 4.0 are supposed to be capable of 32-bit addressing,
as well as running Windows 3.0 apps.  That means that there is no 16 Mb limit.
I believe OS/2 2.0 can use more or less the full 4 Gb available (assuming that
you managed to install all of it :-), and Windows 4.0 is, from what I've heard,
limited to 2 Gb.  Oh well.  Both should be big enough for quite a while.
I would be suprised (shocked, more likely) if any PC is capable of having 4 Gb
installed before the end of the decade.  I know there are a few machines now 
available now that can do it, but none are aimed at the PC market niche.  Few
people could afford a PC with $200,000 in RAM, and for word processing, etc
it isn't that useful.  Now for fluid flow simulations, its another story,
but I don't believe many of those run under Windows...

Hope this does some good...

>	--ravi
>
>	Ravi Pandya
>	Xanadu Operating Company
>	550 California Avenue
>	Suite 101
>	Palo Alto, CA 94306
>	415 856 4112 ext 122
>	415 856 2251 fax
>	ravi@xanadu.com

Scott.


-- 
Scott A. Laird            |  "But this goes to 18,446,744,073,709,551,616"
lair@midway.uchicago.edu  |  		   - Nigel on his 64-bit computer
The University of Chicago |  

leoh@hardy.hdw.csd.harris.com (Leo Hinds) (05/31/91)

In article <1991May30.000945.12529@xanadu.com> ravi@xanadu.com (Ravi Pandya) writes:
>Has anyone had any success at all trying to get Windows 3.0 Enhanced
>Why on earth is this limitation there in the first place? I can
>understand the reason in 286 mode, but in 386 enhanced mode it is
>unexcusable. 

I think you have hit the nail on the head ... win3 (sometimes referred to as 
win/16) is a 16 bit implementation, leading one to conclude that it has the
same overall limitations as a 286 (16MB of memory).  When (if?) win/32 makes
it out, then it would appear logical (to me) that it would be able to support
considerably more memory.


leoh@hdw.csd.harris.com         	Leo Hinds       	(305)973-5229
Gfx ... gfx ... :-) whfg orpnhfr V "ebg"grq zl fvtangher svyr lbh guvax V nz n
creireg ?!!!!!!? ... znlor arkg gvzr

mcdonald@aries.scs.uiuc.edu (Doug McDonald) (05/31/91)

In article <1991May30.174414.19047@midway.uchicago.edu> lair@ellis.uchicago.edu (Scott A. Laird) writes:
>In article <1991May30.000945.12529@xanadu.com> ravi@xanadu.com (Ravi Pandya) writes:
>>Has anyone had any success at all trying to get Windows 3.0 Enhanced
>>Mode to recognize the existence of over 16 Mb of RAM? I have 32 Mb of
>
>Windows is still more or less a 286 app, with segments and 24-bit addressing,
>and shouldn't be able to directly access 32 Mb of RAM.  Nothing designed to
>run on a 286 can use more than 16 Mb of extended memory.  Even in 386 enhanced
>mode, Windows is still only capable of 16 Mb, because the computer is still
>more or less running like a 286, it is just using virtual memory and the
>virtual-86 mode for running DOS apps.  It still shouldn't be capable of
>32-bit addressing.
>


I do not understand this. In 386 enhanced mode, Windows 3.0 uses virtual
8086 mode for DOS programs. It should be able to run those above 16 megs.
Does it?


Doug McDonald

risto@tuura.UUCP (Risto Lankinen) (06/03/91)

mcdonald@aries.scs.uiuc.edu (Doug McDonald) writes:

>In article <1991May30.174414.19047@midway.uchicago.edu> lair@ellis.uchicago.edu (Scott A. Laird) writes:
>>In article <1991May30.000945.12529@xanadu.com> ravi@xanadu.com (Ravi Pandya) writes:
>>>Has anyone had any success at all trying to get Windows 3.0 Enhanced
>>>Mode to recognize the existence of over 16 Mb of RAM? I have 32 Mb of
>>
>>Windows is still more or less a 286 app, with segments and 24-bit addressing,
>>and shouldn't be able to directly access 32 Mb of RAM.  Nothing designed to
>>run on a 286 can use more than 16 Mb of extended memory.

>I do not understand this. In 386 enhanced mode, Windows 3.0 uses virtual
>8086 mode for DOS programs. It should be able to run those above 16 megs.
>Does it?

Hi!

I don't have the hardware, so I can't check it out, but how is it with the
EISA or MCA buses?  Doesn't the AT-bus have 24 address pins only, so that
there's no 'standard' way to access the memory above 2^24, even if the CPU
were capable of addressing a greater amount of memory?  The way to go, in
addition to having CPU >= 386 , would be to increase the number of address
pins, which both EISA and MCA do.

As said, I'm only guessing...  can anyone confirm?

Terveisin: Risto Lankinen
-- 
Risto Lankinen / product specialist ***************************************
Nokia Data Systems, Technology Dept *  2                              3   *
THIS SPACE INTENTIONALLY LEFT BLANK * 2 +1 is PRIME!  Now working on 2 -1 *
replies: risto@yj.data.nokia.fi     ***************************************

pena@brainware.fi (Olli-Matti Penttinen) (06/03/91)

In article <1190@tuura.UUCP> risto@tuura.UUCP (Risto Lankinen) writes:
   >>>Has anyone had any success at all trying to get Windows 3.0 Enhanced
   >>>Mode to recognize the existence of over 16 Mb of RAM? I have 32 Mb of
   >>
   >>Windows is still more or less a 286 app, with segments and 24-bit addressing,
   >>and shouldn't be able to directly access 32 Mb of RAM.  Nothing designed to
   >>run on a 286 can use more than 16 Mb of extended memory.

   >I do not understand this. In 386 enhanced mode, Windows 3.0 uses virtual
   >8086 mode for DOS programs. It should be able to run those above 16 megs.
   >Does it?

   Hi!

   I don't have the hardware, so I can't check it out, but how is it with the
   EISA or MCA buses?  Doesn't the AT-bus have 24 address pins only, so that
   there's no 'standard' way to access the memory above 2^24, even if the CPU
   were capable of addressing a greater amount of memory?  The way to go, in
   addition to having CPU >= 386 , would be to increase the number of address
   pins, which both EISA and MCA do.

   As said, I'm only guessing...  can anyone confirm?

   Terveisin: Risto Lankinen
   -- 
   Risto Lankinen / product specialist ***************************************
   Nokia Data Systems, Technology Dept *  2                              3   *
   THIS SPACE INTENTIONALLY LEFT BLANK * 2 +1 is PRIME!  Now working on 2 -1 *
   replies: risto@yj.data.nokia.fi     ***************************************

Yes, that exactly is the case. BTW, the same problem occurs with all
Unix implementations for ISA bus machines, as well. One possible way
of (partially) solving the problem is to let each task own max. 16 MB
and let the MMU logic take care of the rest. Inherently machine
dependent and doesn't work with Windows, of course :-)

==pena

--
Olli-Matti Penttinen <pena@brainware.fi> | "When in doubt, use brute force."
Brainware Oy                             |    --Ken Thompson
P.O.Box 330                              +----------------------------------
02151  ESPOO, Finland       Tel. +358 0 4354 2565       Fax. +358 0 461 617

donc@microsoft.UUCP (Don CORBITT) (06/05/91)

In article <1991May30.174414.19047@midway.uchicago.edu> lair@ellis.uchicago.edu (Scott A. Laird) writes:
>In article <1991May30.000945.12529@xanadu.com> ravi@xanadu.com (Ravi Pandya) writes:
>>Has anyone had any success at all trying to get Windows 3.0 Enhanced
>>Mode to recognize the existence of over 16 Mb of RAM? I have 32 Mb of
>
>Windows is still more or less a 286 app, with segments and 24-bit addressing,
>and shouldn't be able to directly access 32 Mb of RAM.  

[continued discussion on why win 3.0 can't use features of 386]

This is a very good argument, unfortunately it turns out to be incorrect.
Win 3.0 in Enchanted mode allows the creation of 32 bit apps, or 16 bit
apps using 32 bit registers and addresses.

I have no specific information about the 16 MB limit on 3.0.  However,
there is nothing in Windows 3.x design to enforce such a limit.  It is
very possible to allocate 8MB, and use the 386 32 bit registers to directly
access any byte in that block of memory.

In fact, there are already 32 bit applications shipping on windows 3.0.
It turns out that a complete 32 bit app requires a mapping layer for the
API calls, so we don't advertise Win3 as a 32 bit operating system.  But
if you want to fiddle with a rrreeeaaallllyyy bbbbiiiiigggg chunk of memory,
and you have the RAM (or disk space), you can do it today with minimal
effort.

(This minimal effort includes a compiler that knows about 32 bit addressing,
or writing 80386 assembly language.  But that's the case in any OS.)
--
Don Corbitt, uunet!microsoft!donc, MSWinDev
Mail flames, post apologies.   Support short signatures, 3 lines max.