X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f X-Recipient: djgpp AT delorie DOT com Date: Fri, 11 Apr 2014 16:04:47 +0300 From: Eli Zaretskii Subject: Re: Is this a bug in crt1.c? In-reply-to: X-012-Sender: halo1 AT inter DOT net DOT il To: djgpp AT delorie DOT com Message-id: <83r454t3tc.fsf@gnu.org> References: <201404110126 DOT s3B1Q0R8020183 AT delorie DOT com> <83y4zctgrr DOT fsf AT gnu DOT org> Reply-To: djgpp AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk > From: "Rod Pemberton" > Date: Fri, 11 Apr 2014 06:45:22 -0400 > > > Therefore, env_selector is suitable to be the 1st arg of movedata. > > Sigh, that is exactly what I asked about. > This is also where you've lost me. And you have now lost me. What exactly is the problem, in detail? movedata needs a PM selector that will work with the corresponding offset. The value of env_selector is such a selector, because its value originated from the program's PSP, which was converted as DJ described. Specifically, this part of the docs: The environment pointer in the client program's PSP is automatically converted to a selector during the mode switch. should tell you that the value at offset 0x2C in the memory block pointed to by the psp_selector is a PM selector for the environment, so copying its value to env_selector and using it in another call to movedata is correct. > I'm not going to ask you two for the other *HALF* of the question. Which is what, exactly? Sorry, my crystal ball seems to be cloudy this afternoon. But if you explain what other half is still unclear, somebody might be able to clarify that. Your questions were: > Is there a hidden conversion from RM segment to PM selector somewhere? Answered by DJ. > Is there code somewhere else which convert the value within the PSP to > a selector? Answered by the docs pointed to by DJ. > Or, does movedata() convert segments to selectors? No, it does not. > AIUI, movedata() only works with selectors. Correct. > What have I missed here? Is this the other half of the question? If so, I think it is automagically answered by the two answers above.