Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: $Revision: 1.6.2.16 $; site ima.UUCP Path: utzoo!linus!philabs!cmcl2!seismo!harvard!think!ima!johnl From: johnl@ima.UUCP Newsgroups: net.micro.pc Subject: Re: Backround Processes under MSDOS?? Message-ID: <38700006@ima.UUCP> Date: Sat, 18-May-85 16:15:00 EDT Article-I.D.: ima.38700006 Posted: Sat May 18 16:15:00 1985 Date-Received: Mon, 20-May-85 08:30:25 EDT References: <182@timeinc.UUCP> Lines: 24 Nf-ID: #R:timeinc:-18200:ima:38700006:000:1295 Nf-From: ima!johnl May 18 16:15:00 1985 > So I have taken over the DOS vector(s) and have the capability now > of determining if I am already in a DOS call. The question that arises > is: > > If I determine that I am in a dos call, how can I "suspend" the "process" > without executing an IRET. Now the best method is probably to actually > execute the IRET, and then call the timer every 1/18.2 seconds to > determine if the guy that I'm executing can now call DOS. I gather you've intercepted the INT 21 vector, so you can set a flag when the call happens, and then clear it when DOS returns. Seems to me that if you find that your "process" wants to call DOS at an inconvenient time, it has but to remember its status, set a second flag, and return. Then, when DOS returns to your code that clears the DOS-is-active flag, it can then test the second flag, realize that it has work pending, and pick up your process and do its work then. That avoids inconvenient fooling with the clock, and should be faster since you'll get in to do your DOS call as soon as the previous one is done. Then again, you could get yourself a real operating system like PC/IX or Xenix and avoid all this grief. John Levine, Javelin Software, Cambridge MA 617-494-1400 { decvax!cca | think | ihnp4 | cbosgd }!ima!johnl, Levine@YALE.ARPA