X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-bounces using -f Message-ID: <3C2A2C5E.45353EA7@ieee.org> From: Don Duttweiler X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.4.9 i686) X-Accept-Language: en MIME-Version: 1.0 Newsgroups: comp.os.msdos.djgpp Subject: start.exe, bash, PIFs, and Win 98 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Lines: 94 Date: Wed, 26 Dec 2001 19:56:38 GMT NNTP-Posting-Host: 24.15.132.206 X-Complaints-To: abuse AT home DOT net X-Trace: news1.rdc1.sdca.home.com 1009396598 24.15.132.206 (Wed, 26 Dec 2001 11:56:38 PST) NNTP-Posting-Date: Wed, 26 Dec 2001 11:56:38 PST Organization: Excite AT Home - The Leader in Broadband http://home.com/faster To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com The Win 98 binary start.exe allows you to initiate executation of a PIF from a DOS window. Things don't work quite right though if the DOS window is running Bash instead of command.com. Details follow. I want to be able to do this because of a desire to use makefiles from a DOS window while developing programs that must run in DOS mode (as opposed to just a DOS window). The start.exe command lets you automatically trigger the switch to DOS mode from within the makefile. Win 98 is the last of Microsoft's offerings supporting real-mode DOS so this is not an issue on the most recent Windows versions just because real-mode DOS has gone away. Details: 1) On a system running Win 98 create a pif, say pifTest.pif. 2) The file attributes settable under the "General" tab don't seem to be of consequence for what follows. For concreteness though use what seems to be the default, which is to have the Archive bit set and the others clear. 3) Under the "Program" tab enter the command line c:\windows\command\mem.exe. Select "Close on exit" although this particular choice also seems inconsequential for what follows. 4) Under the "Advanced" tab choose "MS-DOS mode." This is crucial, the problem goes away if MS-DOS mode is not forced. It is true that mem.exe runs fine in a windows box and doesn't need MS-DOS mode. I've picked it here just because everyone has it and the problem is triggered as long as MS-DOS mode is forced. Observations: 1) If you initiate pifTest by clicking on it from "My Computer" or "Windows Explorer" everthing works as expected. 2) If you open a DOS box (DOS windows) running command.com (an icon available off the Start Menu allows doing this in a default configuration), and then type the command start pifTest everything works as expected. 3) If you open a DOS box running Bash (I'm running 2.04 but don't think there is sensitivity to this) and type exec start pifTest everything works as expected. 4) If you open a DOS box running Bash and type start pifTest an error message pops up in a window. The window is titled "Winoldap" (Whatever that is. The name makes no sense to me). The error message begins "This program has performed an illegal operation ..." Clicking on a "Details" button gives the register dump. If you just simply hit "Return" to execute the default button, which is "Close," everything continues on just fine. So the only real problem is the need to be hitting "Return" all the time just to get rid of this error message and continue on. What doesn't work: I've tried lots of things to get rid of this problem. The fact that prepending "exec" solves the problem is probably quite significant. Unfortunately, I can't use that as a solution to the real problem, because if the command calling start.exe is within a makefile prepending exec no longer helps. Perhaps the real issue is whether or not some parent process is waiting around for a return code from some child process. Adding "&" to the end of the line with the start.exe command doesn't seem to make any difference. Enabling the various options available with the start.exe command doesn't seem to make any difference. Stripping config.sys and autoexec.bat to almost nothing doesn't seem to make any difference. Occasionally, the error message is not triggered even when omitting the "exec" and calling from a DOS box running Bash. This seems to happen right after dosTest.pif has been altered in almost any way. Until a few months ago I was running Win 95 on a 200 MHz Pentium Pro. The problem was not triggered under that configuration. I upgraded the CPU to a 933 MHz PIII and the OS to Win 98 simultaneously and can not now go back and do just one at a time to see whether the new machine or the new OS brought on the problem. It would be wonderful is someone could make some sense out of all this. Thanks for any help. -- Don Duttweiler duttweiler AT ieee DOT org