www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/09/02/06:09:04

From: neil AT robots DOT ox DOT ac DOT uk (Neil Townsend)
Newsgroups: comp.os.msdos.djgpp
Subject: Re: GCC / RHIDE and CWSDMPI/CWSDPR0/Stubbing
Date: Wed, 2 Sep 1998 09:45:51 GMT
Organization: None evident here.
Lines: 46
Message-ID: <1998Sep2.094551.28057@catorobots.ox.ac.uk>
References: <Pine DOT SUN DOT 3 DOT 91 DOT 980902110316 DOT 517S-100000 AT is>
NNTP-Posting-Host: cato.robots.ox.ac.uk
NNTP-Posting-Date: 2 Sep 1998 09:45:57 GMT
Originator: neil AT cato
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

In comp.os.msdos.djgpp Eli Zaretskii <eliz AT is DOT elta DOT co DOT il> writes:
>
>On Tue, 1 Sep 1998, Neil Townsend wrote:
>
>> After much thought and newsgroup reading, it strikes me that I would be
>> better off using CWSDPMR0 (or some other) rather than CWSDPMI as I wish only
>> to use physical memory.
>
>Could you please explain why is this a good idea?  If CWSDPR0 suits
>you, it means that your programs don't use more memory than is
>physically installed on your machine, right?  (Otherwise, they'd abort
>with ``Virtual memory exhausted'' message.)  If so, using CWSDPMI
>won't make your programs page either.  So why would you need to force
>them use CWSDPR0?

If I'm wrong, please correct me but here is my reasoning. I'm writing some
code which acquires data at a high rate and stores it to RAM; speed is an
issue. I want to ensure that only physical memory is used and that the
memory management is as fast as possible. Therefore, from what I've managed
to garner form the docs I've seen with djgpp and this group, it struck me
that CWSDPR0 (or perhaps PMODETSR?) would be ideal because there would be no
overhead with potential (but unused) disk swap decisions.

>Please note that CWSDPR0 is different from CWSDPMI in areas other than
>VM support.  For starters, it runs your program at Ring 0; it also
>doesn't swap stacks on hardware interrupts.  It is quite possible that
>some programs will misbehave with it if they were not tested under
>CWSDPR0 (I'd guess most of them weren't).

Does that mean that under CWSDPR0 the allegro timer routines, for example,
can cause problems? Or have I misunderstood you here - would it be more to
do with interrupt routines that I've registered using the dpmi interrupt
registration routines?

>But I think using CWSDPR0 as the default server is a bad idea.

I think that as a general rule, I agree with you, but I wondered if it would
be better for this particular instance. If you think I'm wrong, please
correct me.

Many thanks,

Neil

-- 
Neil Townsend   +44 (1865) 273121   neil AT robots DOT ox DOT ac DOT uk

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019