INT 2eH: Perform DOS Command
Expects: DS:SI offset of an Lstring▲ of a DOS command to perform
(note: memory must be available when loading programs)
Returns: ?? (it's not apparent how to obtain status of request)
SS:SP are destroyed ◄════
Info: This is ◄undocumented► through DOS 6.0. There are too many
drawbacks to make this a really useful function (see notes).
INT 2eH performs a DOS command, as if it had been typed at the
DS:SI must point to a string in which the first byte is the
length of the string, followed by the command text. After the
command, a byte of 0dH (CR) must be appended (but don't count it
in the first byte). For instance:
DB 0fH, "set PROMPT=$p$g", 0dH ;text is 0fH (15) bytes long
This example illustrates the main potential use -- it is able to
Set values into the DOS master (root) environment. In all other
cases, fn 4bH is preferred, (e.g., EXEC COMMAND.COM, passing it
the line "/c dos_cmd") since the EXEC fn is fully documented.
Notes: ■ Don't use this while a batch file is running. This would cause
a fatal reentrancy problem (COMMAND.COM uses this to execute
batch commands). Since a program cannot control whether a
batch is in progress, this is NOT a reliable function.
■ Be sure to free up some memory to execute programs and
remember to relocate your local stack into the shrunken memory
■ Provide plenty of stack space -- DOS really eats it up. SS and
SP must be saved before the call and restored directly after.
See Also: INT 2fH aexxH (hook COMMAND.COM command line)
fn 4b00H (load and execute a program)