X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f From: "Rod Pemberton" Newsgroups: comp.os.msdos.djgpp Subject: Is this a bug in crt1.c? Date: Thu, 10 Apr 2014 21:01:57 -0400 Organization: Aioe.org NNTP Server Lines: 21 Message-ID: NNTP-Posting-Host: CNsg4fVcCsvs3UaOgZtQCw.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit X-Complaints-To: abuse AT aioe DOT org User-Agent: Opera Mail/12.16 (Linux) X-Notice: Filtered by postfilter v. 0.8.2 Bytes: 1677 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com The following two lines are in crt1.c (in libc and pmode directories). movedata(_stubinfo->psp_selector, 0x2c, ds, (int)&env_selector, 2); movedata(env_selector, 0, ds, (int)dos_environ, _stubinfo->env_size); To me, this appears to be an error. But, I'm assuming that I'm missing something since DJGPP works. But, I haven't determined why this works. In the first line, env_selector appears to be copied from the DOS PSP where it's supposedly a real-mode segment. Then, env_selector is used immediately in the second line where it's used as a protected-mode selector. Is there a hidden conversion from RM segment to PM selector somewhere? Is there code somewhere else which convert the value within the PSP to a selector? Or, does movedata() convert segments to selectors? AIUI, movedata() only works with selectors. What have I missed here? Rod Pemberton