delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2001/06/07/12:44:43

Message-ID: <002e01c0ef70$d92dffe0$1400a8c0@alex2000>
From: "Alex Oleynikov" <alex AT compuweigh DOT com>
To: <djgpp AT delorie DOT com>
References: <Pine DOT SUN DOT 3 DOT 91 DOT 1010607174442 DOT 1521J-100000 AT is>
Subject: Re: DJGPP on PTS-DOS run problem
Date: Thu, 7 Jun 2001 12:42:32 -0400
MIME-Version: 1.0
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4133.2400
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400
Reply-To: djgpp AT delorie DOT com

> Eventually you will come to a low-level function which calls __dpmi_int,
> to use some DOS service, and fails.  You don't need to go any further:
> just post here where did that happen, and what error code did that DOS
> function return in the __dpmi_regs structure accepted by __dpmi_int.

Inside access( ) there is a call to findfirst( ), which fails with errno=22
(ENOENT)
Particularly, this DPMI call has failed inside findfisrt():

...
r.h.ah = 0x4e;
r.x.dx = __tb_offset;
r.x.ds = __tb_segment;
r.x.cx = attrib;  // 0x21 in this case (archive+readonly)
__dpmi_int(0x21, &r);
if(!(r.x.flags & 1))  // CF is set after the DOS interrupt call, so this
condition is always FALSE
{
  /* Recover results */
  dosmemget(__tb+pathlen, _sizeof_dos_ffblk, ffblk);
  return 0;
}

errno = __doserr_to_errno(r.x.ax);
return errno;


Alex

- Raw text -


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