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

2018/09/07 08:04 · prokushev

Int 28H


2 and higher



Family API


SS:SP = top of MS-DOS stack for I/O functions


all registers preserved



This interrupt is invoked each time one of the DOS character input functions loops while waiting for input. Since a DOS call is in progress even though DOS is actually idle during such input waits, hooking this function is necessary to allow a TSR to perform DOS calls while the foreground program is waiting for user input.

The INT 28h handler may invoke any INT 21h function except functions 00h through 0Ch.

under DOS 2.x, the critical error flag (the byte immediately after the InDOS flag) must be set in order to call DOS functions 50h/51h from the INT 28h handler without destroying the DOS stacks.

calls to INT 21/AH=3Fh,40h from within an INT 28 handler may not use a handle which refers to CON

at the time of the call, the InDOS flag (see INT 21/AH=34h) is normally set to 01h; if larger, DOS is truly busy and should not be reentered the default handler is an IRET instruction supported in OS/2 compatibility box

the _MS-DOS_Programmer's_Reference_ for DOS 5.0 incorrectly documents this interrupt as superseded the performance of NetWare Lite servers (and probably other peer-to-peer networks) can be dramatically improved by calling INT 28 frequently from an application's idle loop

See Also

INT 21/AH=34h,INT 2A/AH=84h,INT 2F/AX=1680h


2018/09/04 20:23 · prokushev

en/docs/dos/api/int28.txt · Last modified: 2021/12/22 14:35 by prokushev