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: 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