en:docs:dos:api:int21:34
no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


en:docs:dos:api:int21:34 [2020/12/09 06:42] (current) – created prokushev
Line 1: Line 1:
 +{{page>en:templates:dosint}}
 +
 +====== Int 21H, AH=34H ======
 +
 +===== Version =====
 +
 +2 and higher
 +
 +===== Brief =====
 +
 +GET ADDRESS OF INDOS FLAG
 +
 +===== Family API =====
 +
 +
 +===== Input =====
 +
 +        AH = 34h
 +
 +===== Return =====
 +
 + ES:BX -> one-byte InDOS flag
 +
 +===== Notes =====
 +
 +  this function executes on the DOS stack, and thus cannot be called
 +          while another DOS function is already executing; you should use
 +          this function once at the beginning of the program and store the
 +          returned pointer rather than calling it when requiring DOS access
 +        the value of InDOS is incremented whenever an INT 21 function begins
 +          and decremented whenever one completes
 +        during an INT 28 call, it is safe to call some INT 21 functions even
 +          though InDOS may be 01h instead of zero
 +        InDOS alone is not sufficient for determining when it is safe to
 +          enter DOS, as the critical error handling decrements InDOS and
 +          increments the critical error flag for the duration of the critical
 +          error.  Thus, it is possible for InDOS to be zero even if DOS is
 +          busy.
 +        SMARTDRV 4.0 sets the InDOS flag while flushing its buffers to disk,
 +          then zeros it on completion
 +        the critical error flag is the byte immediately following InDOS in
 +          DOS 2.x, and the byte BEFORE the InDOS flag in DOS 3.0+ and
 +          DR DOS 3.41+ (except COMPAQ DOS 3.0, where the critical error flag
 +          is located 1AAh bytes BEFORE the critical section flag)
 +        for DOS 3.1+, an undocumented call exists to get the address of the
 +          critical error flag (see AX=5D06h)
 +        this function was undocumented prior to the release of DOS 5.0.
 +
 +===== See also =====
 +
 + AX=5D06h,AX=5D0Bh,INT 15/AX=DE1Fh,INT 28
 +
 +===== Note =====
 +
 +Text based on [[http://www.cs.cmu.edu/~ralf/files.html|Ralf Brown Interrupt List Release 61]]
 +
 +{{page>en:templates:int}}
 +
 +{{page>en:templates:fapi}}