VOGONS


First post, by Paolo_R

User metadata
Rank Newbie
Rank
Newbie

I realise this is may be considered off-topic but I am curious as to how DOSBox represents Expanded memory (EMS).

I use DOSBox to run Javelin, a financial modelling application for which the availability of, and access to, memory significantly impacts the size of model that can be developed i.e. more is better!

On a 3GB Windows XP pc, with DOSBox's ems/umb/xms all enabled (=true) when I load Javelin in DOSBox its status line shows free conventional memory of 206k and free expanded memory of 15008K.

In XP, if I modify JAV.EXE's properties to select EMS memory of 16384k and load Javelin in an XP command window, free conventional memory is shown but there is no entry (not even zero) for expanded memory.

So I am curious as to why Javelin would find DOSBox's emulation of DOS memory more 'realistic' than XP's. What particular 'magic' have the DOSBox devs included to achieve this?

Just very curious.

Reply 1 of 13, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

XPs emulation is pretty flawed.
Do you have EMS in a ntvdm while typing mem at all ?

Water flows down the stream
How to ask questions the smart way!

Reply 2 of 13, by Paolo_R

User metadata
Rank Newbie
Rank
Newbie

Qbix: I have the following entries in config.nt:

dos=high, umb
device=%SystemRoot%\system32\himem.sys
files=40
buffers=100
device=%systemroot%\system32\ansi.sys
emm=ram

Opening an XP command window and typing 'mem' gives:

655360 bytes total conventional memory
655360 bytes available to MS-DOS
625840 largest executable program size

1048576 bytes total contiguous extended memory
0 bytes available contiguous extended memory
941056 bytes available XMS memory
MS-DOS resident in High Memory Area

Does this answer your question?

Reply 3 of 13, by Dominus

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

If javelin got released in dos times, it might not see memory above a certain amount 😉

Windows 3.1x guide for DOSBox
60 seconds guide to DOSBox
DOSBox SVN snapshot for macOS (10.4-11.x ppc/intel 32/64bit) notarized for gatekeeper

Reply 4 of 13, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

When you modify the properties of a DOS program in XP, you should get a DOS shortcut, which you must use to launch the program in order to gain the modified properties.

Reply 7 of 13, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

if you search this forum, there are a lot of threads about expanded memory under XP. (and fixes)
Usually it involves changing some resources on your PC

Water flows down the stream
How to ask questions the smart way!

Reply 8 of 13, by Paolo_R

User metadata
Rank Newbie
Rank
Newbie

Qbix: yes, I have done a lot of searching on this. There seem to be certain PC setups where areas of memory are 'stolen' for various devices thus causing EMS emulation not work. As I said originally DOSBox works for me - I was interested in how DOSBox achieves EMS emulation.

Reply 9 of 13, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

dosbox emulates a full PC. So it has nothing to do with your XP or whatever OS you run.

Water flows down the stream
How to ask questions the smart way!

Reply 11 of 13, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
Paolo_R wrote:

Qbix: yes, I have done a lot of searching on this. There seem to be certain PC setups where areas of memory are 'stolen' for various devices thus causing EMS emulation not work. As I said originally DOSBox works for me - I was interested in how DOSBox achieves EMS emulation.

Have you tried EMS Magic, then?
http://www.emsmagic.com/

Reply 12 of 13, by Paolo_R

User metadata
Rank Newbie
Rank
Newbie

Jorpho: yes, but Javelin loads with a message to the effect that expanded memory is not configured properly and ignores it for 'security' reasons.

So DOSBox really does seem to work its magic uniquely!

Reply 13 of 13, by Paolo_R

User metadata
Rank Newbie
Rank
Newbie

Have you tried EMS Magic, then?

Just to end this one - I received the following from the developer of EMS Magic in response to my query:

"Unfortunately Javelin is incompatible with EMS Magic, due to Javelin's extensive use of data aliasing.

This means it maps the same logical memory page to multiple physical pages. With a hardware EMS implementation, writing to one physical page will automatically update the other physical pages which have the same logical mapping. However, EMS Magic cannot emulate this in software since it doesn't know when physical pages are being written to, only when they are mapped or unmapped. "

He goes onto recommend a full system emulator, including DOSBox. So DOSBox really does some exceptional things.