From: Eli Zaretskii Newsgroups: comp.os.msdos.djgpp Subject: Re: Thoughts on physical address and DMA Date: Sat, 25 Aug 2001 19:49:40 +0300 Lines: 20 Message-ID: <3B87D724.24375966@is.elta.co.il> References: <1438-Sat18Aug2001102628+0300-eliz AT is DOT elta DOT co DOT il> <3B7ED952 DOT 99DF5497 AT yahoo DOT com> NNTP-Posting-Host: 192.116.55.139 Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: fu-berlin.de 998758261 1048199 192.116.55.139 (16 [61365]) X-Mailer: Mozilla 4.7 [en] (Win98; I) X-Accept-Language: en To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Nick wrote: > > In other words, to get the linear address for physical address `foo', you > would do `foo + __djgpp_conventional_base'. The text you quoted from the FAQ doesn't mention physical address at all. That's no accident: there's no physical address involved in these computations, only a linear address and an offset from the DS base address. > If it's unclear, this is a snippet that should > help: > > linear = physical + __djgpp_conventional_base; > physical2 = linear - __djgpp_conventional_base; No, the computation does this: linear_zero_based = DS_relative - DS_base_address There's no physical address involved here, anywhere.