Function 29h (41)        Parse Filename

Parses a command-line text string and places it in the various fields
of an FCB.

On entry:      AH         29h
AL         Parsing flags (see below)
DS:SI      Pointer to the string to be parsed
ES:DI      Pointer to the FCB

Returns:       AL         FFh      If function fails
00h      If function succeeds, no wildcards
01h      If function succeeds, and wildcards
are encountered

Parsing flags:

Bit       Means
0        Scan past (ignore) leading separator characters
1        Drive ID byte in FCB is modified only if drive is
specified in command line
2        Filename in FCB is modified only if filename is
specified in command line
3        Filename extension in FCB is modified only if filename
extension is specified in command line
4-7       Ignored


Function 29h parses a command line for a filespec with the form
d:FILENAME.EXT. If a filename is found, an FCB is created; otherwise
the function returns FFh in AL. The function enables a program to set
up a default drive, filename, and extension, and to allow the user to
override these defaults at will.

Notes:         DS:SI points to the location of the filespec to be
parsed. ES:DI points to the location where the FCB
will be created. The low-order four bits of AL
specify parsing parameters, as follows:

If bit 0 is 1, the function scans past leading
separator characters (blank spaces, for example) to
find the filespec. If bit 0 is 0, the filespec is
expected to be in the first byte of the command

If bit 1 is 1, the function sets the drive byte in
the FCB only if it is included in the filespec being
parsed. This allows the FCB to have its own default
drive (which the user may override), rather than
using the DOS default drive.

If bit 2 is 1, the function changes the filename in
the FCB only if a valid filename is found in the
filespec. This allows your program to set up a
default filename, which can be overridden by the
command input.

If bit 3 is 1, the filename extension in the FCB is
changed only if a valid filename extension is found
in the filespec.

If the function encounters a '*' wildcard character
in the filename or extension, it fills out the
remainder of the filename or extension with '?'
wildcard characters. Assuming the rest of the
parsing operation is successful, the function in
this case returns 01h in AL, alerting your program
of the need for find-first / find-next processing
(see Function 11h and Function 12h).

If the parse is unsuccessful, AL returns FFh, and
the second byte of the FCB (ES:DI+1) will be blank.

Function 29h cannot handle path names.

See also: FCB

29h (41) Parse Filename