5.4.1 Parameter Block

The parameter block, provided by the parent program, contains the addresses of the environment block, command tail, and default FCBs to be used by the child program. The parent program passes the address of the parameter block to Load and Execute Program.

The form of the parameter block corresponds to that of the LOADEXEC structure:

LOADEXEC STRUC

leEnvironment dw ? ;environment-block segment

leCommandTail dd ? ;address of command tail

leFCB_1 dd ? ;address of default FCB #1

leFCB_2 dd ? ;address of default FCB #2

LOADEXEC ENDS

For a full description of the LOADEXEC structure, see Section 5.8, “Structures.”

The default FCBs for the child program are provided for compatibility with programs designed for earlier versions of MS-DOS. Few programs use the default FCBs for file operations; however, some programs do inspect the contents of the FCBs, so parent programs should create “empty” FCBs when running these programs. An empty FCB consists of 11 bytes containing space characters (ASCII 20h), followed by 5 bytes containing null characters (ASCII 00h), as in the following example:

emptyFCB db 11 dup(20h), 5 dup(00h)

An invalid address for a parameter-block item or for the parameter block itself generally does not cause Load and Execute Program to fail. However, if MS-DOS copies invalid data to the child program's PSP, unexpected or improper execution of the child program may result.