| 
 |  | 
                   INT 21 - DOS 2+ - LOAD OR EXECUTE (EXEC)                   
  
    
      | 
         Input  | 
      DOS1 | 
      N | 
      DOS2 | 
      Y | 
      
         DOS3  | 
      Y | 
      DOS5 | 
      Y | 
      
         Output  | 
     
    
      | 
         AX  | 
      4Bh | 
      Subfunction | 
      Error
        Code | 
      AX | 
     
    
      | 
            | 
        | 
        | 
        | 
        | 
      BX | 
     
    
      | 
         CX  | 
        | 
        | 
        | 
        | 
      CX | 
     
    
      | 
         DS:DX  | 
       File
        Name | 
        | 
        | 
      DX | 
     
    
      | 
         ES:BX  | 
      Parameter
        Block | 
      Set
        if Error | 
      CF | 
     
   
 
Subfunction:    0 = Load and execute program
                1 = Load but do not execute (internal, DOS 3.x, DesqView)
                2 = Load but do not execute (internal, DOS 2.x only)
                3 = Load overlay; do not create PSP
Parameter Block:
    AL = 0
        00h     WORD    Segment of environment (0 = use current)
        02h     DWORD   Command line
        06h     DWORD   FCB 1
        0Ah     DWORD   FCB 2
    AL = 1
        Process ID set to new program's PSP; get with function 62h
        00h     WORD    Segment of environment (0 = use current)
        02h     DWORD   Command line
        06h     DWORD   FCB 1
        0Ah     DWORD   FCB 2
        0Eh     DWORD   Will hold SS:SP on return
        12h     DWORD   Will hold program entry point (CS:IP) on return
    AL = 2
        New program's initial stack and entry point returned in registers
        00h     WORD    Segment of environment (0 = use current)
        02h     DWORD   Command line
        06h     DWORD   FCB 1
        0Ah     DWORD   FCB 2
    AL = 3
        00h     WORD   Segment load address
        02h     WORD   Segment relocation factor
Note:   DOS 2.x destroys all registers, including SS:SP
See Also 3Dh 4Ah 4Dh 59h FCB PSP EXE File Header Error Codes |