INT 21,4B - EXEC/Load and Execute Program

AH = 4B

AL = 00 to load and execute program

= 01 (Undocumented) create program segment prefix and load

program, but don't execute. The CS:IP and SS:SP of the

program is placed in parameter block. Used by debuggers

= 03 load program only

= 04 called by MSC spawn() when P_NOWAIT is specified

DS:DX = pointer to an ASCIIZ filename

ES:BX = pointer to a parameter block

on return:

AX = error code if CF set (see ~DOS ERROR CODES~)

ES:BX = when AL=1, pointer to parameter block similar to:

% Offset Size Description

00 word when AL=1, segment of env. or zero if using parents env.

word when AL=3, segment of load point for overlay

02 dword when AL=1, pointer to cmd line at PSP 80h

word when AL=3, relocation factor for EXE overlay

06 dword pointer to default ~FCB~ passed at ~PSP~ 5Ch

0A dword pointer to default FCB passes at PSP 6Ch

0E dword value of program SS:SP

12 dword value of program CS:IP

- allows execution of an external program as well as overlay

management from within an application

- all registers except CS and IP are destroyed

- SS and SP should be preserved in code segment before call

since a bug in DOS version 2.x destroys these

- return code can be retrieved if child process exits via ~INT 21,4C~

- calling process must assure presence of enough unallocated memory

- subfunction 4 returns with an error under DOS 4.x+

- calls ~INT 21,55~

- see also ~INT 21,26~


Zurück zum Interrupt Info. Roger Morgan / 1998 L.Änderung 29.03.99