www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/11/29/14:15:23

From: "Peter Remmers" <pitti AT tfh-berlin DOT de>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: VESA and more generally using dpmi to access VIDEO Memory
Date: Fri, 27 Nov 1998 19:26:09 +0100
Organization: TFH-Berlin (Berlin, Germany)
Lines: 30
Message-ID: <73mqsq$t5f$1@idy05.tfh-berlin.de>
References: <MPG DOT 10c7c628d7c67f2898969b AT news>
NNTP-Posting-Host: ip099167.tfh-berlin.de
X-Newsreader: Microsoft Outlook Express 4.72.3110.1
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

>this works : VideoSelector=__dpmi_segment_to_descriptor(0xa000);
>
>this doesn't work :
>__dpmi_meminfo LFB;
>
>VideoSelector=__dpmi_allocate_ldt_descriptors(1);
>LFB.size=0xffff;
>LFB.address=0xa0000000l;
>__dpmi_physical_address_mapping(&LFB);
>__dpmi_set_segment_base_address(VideoSelector, LFB.address);
>__dpmi_set_segment_limit(VideoSelector, LFB.size);
>
>What have i forgotten ??


The physical address of the video memory should not be hardcoded,
but rather obtained from VESA >= 2.0 or something, or else this
will indeed only run on YOUR computer - but I guess this is only
supposed to be an example...
The only difference I can see to code I have written is the
call for the segment limit:

__dpmi_set_segment_limit(VideoSelector, LFB.size-1);

The size must be 1 less. Then it should work.

Peter Remmers



- Raw text -


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