99 lines
2.5 KiB
HTML
99 lines
2.5 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
||
|
||
<html>
|
||
|
||
<head>
|
||
<meta http-equiv="Content-Type"
|
||
content="text-html; charset=Windows-1252">
|
||
<title>INT 21,4B - EXEC/Load and Execute Program</title>
|
||
<meta name="FORMATTER" content="Microsoft FrontPage 2.0">
|
||
</head>
|
||
|
||
<body>
|
||
|
||
<h1><a name="kap_interrupt_2340"></a>INT 21,4B - EXEC/Load and
|
||
Execute Program</h1>
|
||
|
||
<p> AH = 4B</p>
|
||
|
||
<p> AL = 00 to load and execute program</p>
|
||
|
||
<p> = 01 (Undocumented) create program segment prefix and load</p>
|
||
|
||
<p> program, but don't execute. The CS:IP and SS:SP of the</p>
|
||
|
||
<p> program is placed in parameter block. Used by debuggers</p>
|
||
|
||
<p> = 03 load program only</p>
|
||
|
||
<p> = 04 called by MSC spawn() when P_NOWAIT is specified</p>
|
||
|
||
<p> DS:DX = pointer to an ASCIIZ filename</p>
|
||
|
||
<p> ES:BX = pointer to a parameter block</p>
|
||
|
||
<p> on return:</p>
|
||
|
||
<p> AX = error code if CF set (see ~DOS ERROR CODES~)</p>
|
||
|
||
<p> ES:BX = when AL=1, pointer to parameter block similar to:</p>
|
||
|
||
<p> % Offset Size Description</p>
|
||
|
||
<p> 00 word when AL=1, segment of env. or zero if using parents
|
||
env.</p>
|
||
|
||
<p> word when AL=3, segment of load point for overlay</p>
|
||
|
||
<p> 02 dword when AL=1, pointer to cmd line at PSP 80h</p>
|
||
|
||
<p> word when AL=3, relocation factor for EXE overlay</p>
|
||
|
||
<p> 06 dword pointer to default ~FCB~ passed at ~PSP~ 5Ch</p>
|
||
|
||
<p> 0A dword pointer to default FCB passes at PSP 6Ch</p>
|
||
|
||
<p> 0E dword value of program SS:SP</p>
|
||
|
||
<p> 12 dword value of program CS:IP</p>
|
||
|
||
<p> - allows execution of an external program as well as overlay</p>
|
||
|
||
<p> management from within an application</p>
|
||
|
||
<p> - all registers except CS and IP are destroyed</p>
|
||
|
||
<p> - SS and SP should be preserved in code segment before call</p>
|
||
|
||
<p> since a bug in DOS version 2.x destroys these</p>
|
||
|
||
<p> - return code can be retrieved if child process exits via
|
||
~INT 21,4C~</p>
|
||
|
||
<p> - calling process must assure presence of enough unallocated
|
||
memory</p>
|
||
|
||
<p> - subfunction 4 returns with an error under DOS 4.x+</p>
|
||
|
||
<p> - calls ~INT 21,55~</p>
|
||
|
||
<p> - see also ~INT 21,26~</p>
|
||
|
||
<hr>
|
||
|
||
<table border="0" width="100%" cols="3">
|
||
<tr>
|
||
<td width="33%">Zur<EFBFBD>ck zum <a href="inte1at0.htm">Interrupt
|
||
Info</a>. </td>
|
||
<td align="center" width="33%"><a
|
||
href="mailto:Roger.Morgan@htl-steyr.ac.at">Roger Morgan</a>
|
||
/ 1998 </td>
|
||
<td align="right" width="33%"><font size="1">L.<2E>nderung <!--webbot
|
||
bot="Timestamp" s-type="EDITED" s-format="%d.%m.%y"
|
||
startspan -->29.03.99<!--webbot bot="Timestamp" endspan
|
||
i-checksum="13964" --> </font></td>
|
||
</tr>
|
||
</table>
|
||
</body>
|
||
</html>
|