Note: This API call is for DOS and Win16 personality only. Use Family API for portability.

2018/09/07 05:04 · prokushev · 0 Comments

Int 21H, AH=34H


2 and higher



Family API


      AH = 34h


ES:BX → one-byte InDOS flag


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
      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


2018/09/04 17:23 · prokushev · 0 Comments