Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!trantor.harris-atd.com!charybdis!sonny From: sonny@charybdis.harris-atd.com (Bob Davis) Newsgroups: comp.os.msdos.programmer Subject: Re: Word for Windows and DOS idle interrupt (INT28) Message-ID: <5094@trantor.harris-atd.com> Date: 15 Dec 90 17:31:46 GMT References: <1522@netmbx.UUCP> <1990Dec13.220804.1611@vax5.cit.cornell.edu> Sender: news@trantor.harris-atd.com Reply-To: sonny@trantor.harris-atd.com (Bob Davis) Distribution: comp Organization: Advanced Technology Dept., Harris ESS, Melbourne, FL Lines: 45 In article <1990Dec13.220804.1611@vax5.cit.cornell.edu> hd7x@vax5.cit.cornell.edu (Sanjay Aiyagari) writes: >In article <1522@netmbx.UUCP>, oeschi@netmbx.UUCP (Johann Deutinger) writes: >> I am developing a TSR using Tesseract (which seems to be a very useful >> product) to do some background processing from time to time. It even works >> well together with Windows 3.0 with one exception: when I use Word for >> Windows no DOS idle interrupts (INT28) occur. Tesseract needs them to poll >> my TSR for background processing. Other Windows applications (Write, >> Pagemaker, CorelDraw ...) don't cause this problem. Any help for me? > >Isn't it only necessary to check for INT 28's only if the DOS busy flag is set? -------------------------------------------- If the DOS busy flag (sometimes called the InDOS flag) is set, sometimes it is only set because DOS awaits keyboard input (i.e., DOS is at command prompt). Since this is a relatively benign condition as far as DOS reentrancy is concerned, one can call DOS functions ABOVE 09h without reentering critical DOS code IF ALL WE ARE DOING IS AWAITING KEYBOARD INPUT. My understanding is that INT28 (DOS Idle Interrupt) occurs when the InDOS flag (DOS busy flag) is set BUT the only reason DOS is "busy" is because I/O is awaited. Some software that never allows an ordinary DOS command level prompt may NEVER permit an INT28 to occur. (Maybe Word for Windows is one of these?) But, perhaps, with such software the InDOS busy flag will indicate that DOS is NOT busy and therefore one need not even check for an interrupt 28h to know that DOS can safely be re-entered. From my reading on the subject, I have concluded that DOS can safely be re-entered with ANY Int21h DOS function if the InDOS flag indicates DOS not busy. If you know this not to be universally true, please tell me. Also, I have concluded that, even though InDOS flag might indicate DOS busy, if Int28h (DOS idle interrupt) occurs, I can safely call Int21h functions above 09h. If you know of exceptions to this, please tell me. My conclusions on these TSR matters are incorporated into my evolving software, "T-BONES", a set of skeletal ASM programs into which the TSR designer can drop code to be executed when the TSR trigger (HotKey or Hooked Interrupt) occurs. I would be pleased to send you TBONES05.ZIP in uuencoded form for your evaluation and comment by E-mail request. _____________________________________________________________________________ Bob Davis, UofALA alum \\ INTERNET: sonny@trantor.harris-atd.com | _ _ | Harris Corporation, ESS \\ UUCP: ...!uunet!x102a!trantor!sonny |_| |_| | | Advanced Technology Dept.\\ AETHER: K4VNO |==============|_/\/\/\|_| PO Box 37, MS 3A/1912 \\ VOICE: (407) 727-5886 | I SPEAK ONLY | |_| |_| | Melbourne, FL 32902 \\ FAX: (407) 729-2537 | FOR MYSELF. |_________|