www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2002/07/20/19:30:09

From: shayyaps AT yahoo DOT com (Iyappa Swaminathan)
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Help with Fat DS
Date: 20 Jul 2002 16:16:20 -0700
Organization: http://groups.google.com/
Lines: 48
Message-ID: <299ed26b.0207201516.5f44e2a3@posting.google.com>
References: <299ed26b DOT 0207180806 DOT 7e55ced2 AT posting DOT google DOT com> <1027077283 DOT 928051 AT queeg DOT ludd DOT luth DOT se>
NNTP-Posting-Host: 205.175.225.5
X-Trace: posting.google.com 1027206981 15180 127.0.0.1 (20 Jul 2002 23:16:21 GMT)
X-Complaints-To: groups-abuse AT google DOT com
NNTP-Posting-Date: 20 Jul 2002 23:16:21 GMT
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

Hi Martin,

Well, Section 18.7 was more helpful. I could access locations in the
range 0xffff0000 with a program segment like below,

   mi.address = 0xffff0000;
   mi.size    = 0xffff;
   __dpmi_physical_address_mapping(&mi);
   sel = __dpmi_allocate_ldt_descriptors(1);
   __dpmi_set_segment_base_address(sel,mi.address);
   __dpmi_set_segment_limit(sel,mi.size-1);
   printf("FFFFFFF0 = %x\n", _farpeekw(sel, 0xfff0));

while the above program runs on a normal PC with DOS, I am getting a 

"Error: could not allocate page table memory" 

in our target board which runs ROM-DOS. There are no other programs
running. Even a mem /c commands shows 613K of conventional memory
free.  I'd like to know what is the normal page table entries one
should use in setting parameters using CWSPARAM.EXE.  Any anwers would
be really helpful.

Thanks, 
Iyapps.


Martin Str|mberg <ams AT speedy DOT ludd DOT luth DOT se> wrote in message news:<1027077283 DOT 928051 AT queeg DOT ludd DOT luth DOT se>...
> Iyappa Swaminathan <shayyaps AT yahoo DOT com> wrote:
> : I am trying to read from the locations in the range 0x40000000 and in
> : the range 0xffff0000. I tried using the __djgpp_near_ptr_enable()
> : function, and then using _farpeekx() functions to read from those
> : locations using _dos_ds. But I am getting a SIGSEGV error.
>  
> : I even tried extending the limits of _dos_ds by doing 
>  
> : __dpmi_set_segment_base_address(_dos_ds, 0) and
> : __dpmi_set_segment_limit(_dos_ds, 0xffffffff)
>  
> : The above calls succeed, but the net result is the same. I am not able
> : to read from those locations?
> 
> Did you read FAQ 18.6?
> 
> 
> Right,
> 
> 						MartinS

- Raw text -


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