Interrupt 2Fh Multiplex Interrupt

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.

Comments

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.