On 28/06/2015 20:03, Rugxulo wrote:
> "Below 16M"? You mean for DMA or the like?

I have honestly no idea what the 'low-level' implications are. If 
someone asked me 2 days ago, I'd say that's impossible, since an 
application only requests XMS "handles" from the XMS driver, and 
performs all moves from/to XMS by calling the XMS driver over a small 
64K window of data... Hence the application is not aware at all where 
physically the memory it gets is located at.

But all the above belief of mine have been ruined recently, when I 
looked into my Doom issue. It does seem after all that 'where physically 
the XMS memory comes from' can be of some importance. I quickly (re)read 
the XMS v2.0 standard, and haven't found any function that would even 
communicate the physical address of the data back to the application... 
So I have no clue what DOS4GW does. But apparently it does something 
that works fine only if the XMS pool it obtains comes from some "low" 
XMS area. I also found a few programs that vaguely talk about this:

XMSDSK says:
 > Some machines under Win95 hang up when there's no free memory under
 > 16 MBytes. It can be used too if you have problem playing sounds
 > under Windows. These 2 issues seem to be related to DMA buffering.

SHSURDRV says:
 > This option will allocate memory before any drives, then release it
 > upon exit. It is only necessary in order for Windows to start (when
 > drives exceed more than 14MiB in total).  The default is 4
 > (kibibytes).

UIDE says:
 > /R15 reserves 15-MB of XMS, and /R63 reserves 63-MB of XMS, for DOS
 > game programs that require XMS memory below 16- or 64-MB!


> Dunno, for all I know it could be (only) soundcard related, thus any
> Doom ports that don't use that library (e.g. use Allegro instead)
> won't have the bug.

I do not think it's related to the sound card. In fact, the first thing 
I did two days ago was to run Doom with no sound at all - the problem 
was still the same.

>> it's pretty easy to work around this. And it should be a motivation to
>> XMS resident apps authors to include some switches to prefer taking top
>> XMS memory rather than the bottom one :) (or even do this by default).
>
> I don't think that's feasible.

Fortunately both XMSDSK and SHSURDRV do it perfectly, that's enough for 
me :)

Mateusz


------------------------------------------------------------------------------
Monitor 25 network devices or servers for free with OpManager!
OpManager is web-based network management software that monitors 
network devices and physical & virtual servers, alerts via email & sms 
for fault. Monitor 25 devices for free with no restriction. Download now
http://ad.doubleclick.net/ddm/clk/292181274;119417398;o
_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to