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?