Multiplex Interrupt (Interrupt 2Fh) is a common entry point for terminate-and-stay-resident programs (TSRs) that provide services to other programs. Programs use this interrupt to request services from and to check the status of such MS-DOS commands as print, assign, and append.
A program requests service by placing a specified function number in the AX register and issuing Interrupt 2Fh. Some functions may require additional values in registers before issuing the interrupt.
Following is a list of the Interrupt 2Fh functions:
Value | Function name |
0100h | Get PRINT.EXE Installed State |
0101h | Add File to Queue |
0102h | Remove File from Print Queue |
0103h | Cancel All Files in Print Queue |
0104h | Hold Print Jobs and Get Status |
0105h | Release Print Jobs |
0106h | Get Printer Device |
0600h | Get ASSIGN.COM Installed State |
1000h | Get SHARE.EXE Installed State |
1100h | Get Network Installed State |
1400h | Get NLSFUNC.EXE Installed State |
1680h | MS-DOS Idle Call |
1A00h | Get ANSI.SYS Installed State |
4300h | Get HIMEM.SYS Installed State |
4310h | Get HIMEM.SYS Entry-Point Address |
4800h | Get DOSKEY.COM Installed State |
4810h | Read Command Line |
4B01h | Build Notification Chain |
4B02h | Detect Switcher |
4B03h | Allocate Switcher ID |
4B04h | Free Switcher ID |
4B05h | Identify Instance Data |
0AD80h | Get KEYB.COM Version Number |
0AD81h | Set KEYB.COM Active Code Page |
0AD82h | Set KEYB.COM Country Flag |
0AD83h | Get KEYB.COM Country Flag |
0B000h | Get GRAFTABL.COM Installed State |
0B700h | Get APPEND.EXE Installed State |
0B702h | Get APPEND.EXE Version |
0B704h | Get APPEND.EXE Directory List Address |
0B706h | Get APPEND.EXE Modes Flag |
0B707h | Set APPEND.EXE Modes Flag |
0B711h | Set True-Name Flag |
These functions are available only if the corresponding MS-DOS command or program has been loaded. If the command or program is not loaded, MS-DOS carries out a default action, such as setting the carry flag and setting the AX register to 0001h (ERROR_INVALID_FUNCTION).
Programs that install their own Interrupt 2Fh handler must create a chain of handlers—that is, save the original address from the Interrupt 2Fh vector-table entry and call the address as part of their processing. Note that Interrupt 2Fh function numbers 0000h through 0BFFFh are reserved for system programs and commands. Other programs can use function numbers 0C000h through 0FFFFh.