INT 2fH ae00H: Notify Pending Command
Compatibility: ◄Undoc► 3.0+
Expects: AX ae00H
DX ffffH
DS:BX address of length-prefixed command-line buffer
DS:SI address of an 8-byte upshifted, blank-padded command name
──────────────────────────────────────────────────────────────────
Returns: AL flag: 00H = no, ISR does not want to intercept
ffH = yes, ISR will process the command
──────────────────────────────────────────────────────────────────
Info: This is intended as a way to intercept commands typed at the DOS
command prompt before COMMAND.COM gets a chance to process them.
A TSR program hooks INT 2fH and watches for AX=ae00H. Then it
compares the text at DS:SI with a command that it wishes to
intercept. If it wants to handle that command, it sets AL=ffH
and executes an IRET. If it has no interest, it just passes
control to the next INT 2fH handler.
Don't process the command yet. When you signal interest in a
command, COMMAND.COM will immediately execute INT 2fH ae01H and
you should take action only upon that event.
DS:BX On entry, DS:BX points to a command line buffer in the form:
RawCmdLineRec
Offset Size Contents
▀▀▀▀▀▀ ▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
+0 1 bBufLen length of the buffer
+1 1 bTextLen length of the command-line text (abText)
+2 n abText text of the command line
2+n 1 bCr one byte of 0dH (Carriage Return)
3+n size of a RawCmdLineRec structure
Note that this is layout is similar to that used in DOS fn 0aH
(get buffered string input), which COMMAND.COM uses to obtain
user input.
When intercepting commands, you must save a copy of this buffer.
See Notes, below.
DS:SI On entry, DS:SI points to an upshifted, blank-padded version of
the first word on the command line. This text will be exactly
eight characters long; space characters (ASCII 20H) are appended
to the text to fill-out the 8-character buffer:
CmdNameRec
Offset Size Contents
▀▀▀▀▀▀ ▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
+0 8 abCmd blank-padded command name
8 size of a CmdNameRec structure
AL If you wish to intercept this command, set AL to ffH and return
to DOS via an IRET. COMMAND.COM will issue an INT 2fH with
AX=ae01H immediately, and you can take action then.
If you do not wish to intercept this command, you should pass it
down the chain by using a FAR JMP to the address which originally
handled INT 2fH when your TSR was installed.
Notes: When COMMAND.COM issues the subsequent INT 2fH ae01H, it does not
supply the DS:BX pointer to the full command line; therefore, you
must save this address for use in the ae01H subfunction.
See Also: INT 2fH aexxH Command Processor Hook
INT 2fH: Multiplex Interrupt
DOS Functions
-♦-