DOS Fn 34H: Get InDOS Address (DOS Reentrancy Status)
Compatibility: 2.0+
Expects: AH 34H
──────────────────────────────────────────────────────────────────
Returns: ES:BX addr of the 1-byte InDOS flag (if ES:[BX]=0, OK to pop up)
addr+1 of the ErrorMode flag (if ES:[BX-1]!=0, use no fns)
──────────────────────────────────────────────────────────────────
Info: Returns the address of a DOS status flag that indicates the
current state of INT 21H processing.
DOS is not built to be re-enterable. For instance, if DOS is
performing an INT 21H function and a program gains control via a
timer or other interrupt, then that program should refrain from
making DOS calls (otherwise, DOS static internal variables and
stack data will become scrambled).
However, there are times when DOS is prepared for possible
reentrancy (it has switched to a secondary stack). When that's
the case, DOS clears the InDOS flag, thereby signalling that it
is OK for programs to make DOS calls.
When ES:[BX] is non-zero, a background program (TSR, or popup)
MUST NOT use any INT 21H functions.
Versions: Undocumented until DOS 5.0, but functional since DOS 2.0.
Notes: ■ You may ignore this flag if you are running as an INT 28H
handler. When INT 28H is called, DOS is in a stable state and
it's OK to do disk I/O and use other DOS fns (though you must
avoid Fns 01h-0cH unless you set the ErrorMode Flag to 1).
See Also: InDOS Flag
ErrorMode Flag
INT 08H
TSR/Popup Functions
Process Control Functions
DOS Functions
-♦-