Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: $Revision: 1.6.2.14 $; site siemens.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!princeton!siemens!jrv From: jrv@siemens.UUCP Newsgroups: net.micro.pc Subject: Re: DOS re-entrancy Message-ID: <23900011@siemens.UUCP> Date: Thu, 6-Mar-86 09:21:00 EST Article-I.D.: siemens.23900011 Posted: Thu Mar 6 09:21:00 1986 Date-Received: Sun, 9-Mar-86 00:04:09 EST References: <103@nvuxr.UUCP> Lines: 26 Nf-ID: #R:nvuxr:-10300:siemens:23900011:000:899 Nf-From: siemens!jrv Mar 6 09:21:00 1986 There is a flag buried in the internal data area for MS-DOS called INDOS. A 0 value indicates that MS-DOS is not currently executing in a critical section. Any other value indicates that you can not make a Int 21 call. To find out the current value of this flag: 1. Before interrupt processing starts execute the GET_INDOS_FLAG function. This is function 34h in MS-DOS. (i.e. AX = 34h when doing the Int 21) 2. Upon return you don't get the flag but rather a pointer to it in ES:BX. ES = the segment address and BX = the offset address of the INDOS flag. 3. When the interrupt occurs directly test this byte from the interrupt handler to determine if calls to MS-DOS are allowable. You will have to determine appropriate actions if the interrupt occurred during a critical section of MS-DOS. Hope this helps. Jim Vallino {allegra,ihnp4}!princeton!siemens!jrv