Function 34h Return INDOS Flag* Returns ES:BX pointing to Critical Section Flag, byte indicating whether
it is safe to interrupt DOS. Used widely by TSRs (see Int\21f\31)
entry AH 34h
return ES:BX points to DOS "critical section flag"
note 1) If byte is 0, it is safe to interrupt DOS. This was mentioned in some
documentation by Microsoft on a TSR standard, and PC Magazine reports
it functions reliably under DOS versions 2.0 through 3.3. Chris
Dunford (of CED fame) and a number of anonymous messages on the BBSs
indicate it may not be totally reliable.
2) The byte at ES:BX+1 is used by the Print program for this same purpose,
so it's probably safer to check the WORD at ES:BX.
3) Reportedly, examination of DOS 2.10 code in this area indicates that the
byte immediately following this "critical section flag" must be 00h to
permit the PRINT.COM interrupt to be called. For DOS 3.0 and 3.1 (except
Compaq DOS 3.0), the byte before the "critical section flag" must be
zero; for Compaq DOS 3.0, the byte 01AAh before it must be zero.
4) In DOS 3.10 this reportedly changed to word value, with preceding byte.
5) This call is supported in OS/2 1.0's DOS Compatibility Box
6) Gordon Letwin of Microsoft discussed this call on ARPAnet in 1984. He
stated:
a) this is not supported under any version of the DOS
b) it usually works under DOS 2, but there may be circumstances
when it doesn't (general disclaimer, don't know of a specific
circumstance)
c) it will usually not work under DOS 3 and DOS 3.1; the DOS is
considerably restructured and this flag takes on additional
meanings and uses
d) it will fail catastrophically under DOS 4.0 and forward.
Obviously this information is incorrect since the call works fine
through DOS 3.3. Microsoft glasnost?