Differences
This shows you the differences between two versions of the page.
en:docs:dos:api:int21:34 [2020/12/09 06:42] – created prokushev | en:docs:dos:api:int21:34 [2024/05/02 05:50] (current) – prokushev | ||
---|---|---|---|
Line 24: | Line 24: | ||
===== Notes ===== | ===== 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 |
- | | + | |
- | the value of InDOS is incremented whenever an INT 21 function begins | + | during an INT 28 call, it is safe to call some INT 21 functions even though InDOS may be 01h instead of zero |
- | | + | |
- | during an INT 28 call, it is safe to call some INT 21 functions even | + | 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. |
- | | + | |
- | InDOS alone is not sufficient for determining when it is safe to | + | 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) |
- | SMARTDRV 4.0 sets the InDOS flag while flushing its buffers to disk, | + | |
- | | + | this function was undocumented prior to the release of DOS 5.0. |
- | the critical error flag is the byte immediately following InDOS in | + | |
- | | + | |
- | | + | |
- | | + | |
- | for DOS 3.1+, an undocumented call exists to get the address of the | + | |
- | | + | |
- | this function was undocumented prior to the release of DOS 5.0. | + | |
===== See also ===== | ===== See also ===== | ||
- | AX=5D06h, | + | AX=[[en: |
===== Note ===== | ===== Note ===== |