You are not logged in. You can browse in the PowerBASIC Community, but you must click Login (top right) before you can post. If this is your first visit, check out the FAQ or Sign Up.
PowerBASIC itself does not limit EMS usage -- that limit is set by the memory manager installed on the target PC.
32-bit Windows can typically allocate 16 to 32Mb of EMS to a DOS app, and some memory managers such as QEMM can provide up to 64Mb of EMS.
Within PowerBASIC/DOS, individual arrays are limited to 32Mb each. However, the FRE(-11) function can only report up to a maximum value of 16Mb free EMS, even if more EMS is still available (theoretically we could report larger values, but some EMS memory managers were found to inaccurately report values above 16Mb).
As an experiment, you could test the actual limit on your machine by allocating a bunch of virtual arrays of say, 4Mb each, until EMS is completely consumed.
We were not talking about ME as such, but you might try looking for answers on how to "switch it on" at places such as www.computing.net or (or dare I say it!) www.msdn.microsoft.com - in the latter, try searching in the Knowledge Base (MSKB) area.
Windows ME started life as Win98 TE (third Edition), it is alleged that MS would sell more if they labelled it as a new OS, and added a few new features, such as hiding away the ability to boot to DOS.
I can also tell you that Windows ME is no closer a relation to XP (which is NT-based) then Win95 or Win98/98SE.
But no matter what is touted about ME, there is still a DOS layer under it, even if you can't see it immediately.
Or to put it another way: 95, 98 and ME are all <U>hybrid</U> OS's... when running 32-bit applications they have to "thunk" to 16-bit mode to do most operations (graphics, file system, you name it!).
Conversely, WinNT, Win2K, and WinXP are pure 32-bit OS's. All support for 16-bit and DOS applications is done in a 100% emulated environment layer known as NTVDM (NT Virtual DOS Machine). This works in conjunction with WOW32 - the Windows (16-bit) on Windows (32-bit) emulation layer to provide support to Win16 applications.
... and that makes it 100% different to how the hybrid versions operate.
There are a number of books available on the internals of Windows... it almost makes for interesting reading, but there are some real nuggets of useful information to be gleaned if you are interested in Windows programming to any degree.
So, it becomes quite evident that applications based on use of EMS
are harder and harder to maintain everyday with the new MS
Operating systems and PC's. And the only reason why we are all so
interested in getting EMS is because PB 3.50 stores VIRTUAL
ARRAYS in EMS. So the question is 'Is anyone at POWERBASIC
redesigning the compiler in order to have VIRTUAL ARRAYS stored
in XMS? (please say yes!)
We process personal data about users of our site, through the use of cookies and other technologies, to deliver our services, and to analyze site activity. For additional details, refer to our Privacy Policy.
By clicking "I AGREE" below, you agree to our Privacy Policy and our personal data processing and cookie practices as described therein. You also acknowledge that this forum may be hosted outside your country and you consent to the collection, storage, and processing of your data in the country where this forum is hosted.
Comment