www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/10/16/18:36:45

From: oak9755 AT silver DOT sdsmt DOT edu (Olav Kindt)
Newsgroups: comp.os.msdos.djgpp
Subject: Re: VESA pointers ... again
Date: 16 Oct 1996 14:58:14 GMT
Organization: South Dakota School of Mines and Technology
Lines: 26
Distribution: world
Message-ID: <542t67$ahe@news.sdsmt.edu>
References: <Pine DOT SUN DOT 3 DOT 91 DOT 961016140445 DOT 22571C-100000 AT is>
NNTP-Posting-Host: silver.sdsmt.edu
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Eli Zaretskii (eliz AT is DOT elta DOT co DOT il) wrote:
: > 	struct vesainfo{
: > 		...
: > 		WORD *Vesamodes;	(WORD = ushort)
: > 		..}
: > 
: > 	Now the problem is that this (i think) is a far pointer into DOS
: > memory somewhere.
: 
: WORD is 16 bit, so it cannot be a far pointer (which is stored as a 
: DWORD, i.e. 32 bit).
: 

But the WORD * is a 32 bit value (It point to a 16 bit value);

and yes I'm using the packed data, and I've checked that the size of the
structure is a total of 256 bytes. Another weird thing I've noticed is
that when treating the Manufacturer pointer (BYTE * Manufacturer) the same
way, => Segment is 16 high bits, Offset is 16 Low bits, it works. This
really puzzles me, since the same operation on the VideoModes pointer
doesn't work. Any other suggestions out there?

I'll send my code if any body wishes to see it.

Regards Olav Kindt

- Raw text -


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