From: furballs@sequent.com
Newsgroups: comp.os.msdos.programmer
Subject: Re: Need help on TSR's
Date: 10 Apr 92 19:37:00 GMT
Organization: Sequent Computer Systems, Inc.

In article <oddt.4@sofus.dhhalden.no> oddt@sofus.dhhalden.no (ODD ROBERT TORJUSSEN) writes:
>Hi, everybody !
>
>----------------------------------------------------------------------
>This is a reposting, because I didn't get any respons on the last one.
>----------------------------------------------------------------------
>
>If I'm not finding a solution to my programming problems soon, God knows 
>that whill happen ...  =:[]
>
>As maybe some of you recall from earlier postings, I'm working on a project
>where we develop/use some tsr-routines. 
>The source code is a combination of MS C (ver. 6.0.) and assembly.
>
>We've come so far in the development, that the 'prototype' tsr is up running 
>and seems to work ok. We're started to add some 'features' to this tsr.
>Among the things we want to do, is letting the tsr do some system-calls
>(to activate/start an extern program).
>
>This is were the problems occurs. :-(
>
>When certain events occur, the tsr does an system call (C function: 
>spawnlp()). But, for some reason the tsr is not able to launchthis child 
>process. 
>I've tried some debugging wich include: making a small driver C routine 
>(not an tsr) to check the spawnlp() system call. This all worksjust fine. 
>So to me it seems like it's the tsr that causes the problem.
>I've checked the return-value from the spawnlp() function. It returns a 
>value that indicate some memory errors/problems (error code : ENOMEM).
>
>So my questions are:
>- Does anybody know what's wrong ?
>- What/where can the problem be ?
>- Does anyone know where I can find examples/documentation (source code/  
>  articles/books) on how to call extern programs from a tsr ? 
>
>Please, help me. 
>I'm going nuts if I don't find a solution !!!!!!
>(Please reply by E-mail)
>
>Thanks,
>        Robert.
>
>*****************************************************************************
>*   Robert Torjussen                 *    E-mail : oddt@sofus.dhhalden.no   *
>*   Ostfold Regional College         *    Voice  : int + 47 9 18 65 63      *
>*   Department of Computer Science   *    Fax    : int + 47 9 18 54 85      *   
>*   Halden, NORWAY                   *                                      *
>*****************************************************************************
>*                                                                           *
>*                       SKIERS DO IT WITH POWDER                            *
>*                                                                           *
>*****************************************************************************

The best thing you can do for you self is get on the phone and call
South Mountain Software (201) 762-6965 and order a copy of HOLD
EVERYTHING and Resident C. These guys did all the home work for you
and it even comes with source code. I have released 4 commercial
products with these tools and they work like a champ. They do not
break mysteriously and yes, you can spawn children in a context
sense with them.

TSR's can not directly spawn a child process without first
suspending the forground task and swapping it due to the
non-reentrant nature of MS-DOS code. BUt, you can background task
in a time slice and do lots of different things, such as background
communications, disk I/O, printing, etc.

I know they work with C6.0, since one of the products I wrote was
done that way.

Good Luck...