Function  29h  Parse the Command Line for Filename 

Parses a text string into the fields of a File Control Block Struct -FCB

entry AH 29h

DS:SI pointer to string to parse

ES:DI pointer to memory buffer to fill with unopened Struct -FCB

AL bit mask to control parsing

bit 0 = 0: parsing stops if file seperator found

1: causes service to scan past leading chars such as

blanks. Otherwise assumes the filename begins in the

first byte

1 = 0: drive number in Struct -FCB set to default (0) if

string contains no drive number

1: drive number in Struct -FCB not changed

2 = 0: filename in Struct -FCB set to 8 blanks if no

filename in string

1: filename in Struct -FCB not changed if string does

not contain a filename

3 = 0: extension in Struct -FCB set to 3 blanks if no

extension in string

1: extension left unchanged

4-7 must be zero

return AL 00h no wildcards in name or extension

01h wildcards appeared in name or extension

0FFh invalid drive specifier

DS:SI pointer to the first byte after the parsed string

ES:DI pointer to a buffer filled with the unopened Struct -FCB

note 1) If the * wildcard characters are found in the command line, this

service will replace all subsequent chars in the Struct -FCB with

question marks.

2) This service uses the characters as filename separators

DOS 1 : ; . , + / [ ] = " TAB SPACE

DOS 2,3 : ; . , + = TAB SPACE

3) This service uses the characters

: ; . , + | / \\ [ ] = " TAB SPACE

or any control characters as valid filename separators

4) A filename cannot contain a filename terminator. If one is encountered,

all processing stops. The handle functions will allow use of some of

these characters.

5) If no valid filename was found on the command line, ES:DI +1 points

to a blank (ASCII 32).

6) This function cannot be used with filespecs which include a path

7) Parsing is in the form D:FILENAME.EXT. If one is found, a corresponding

unopened Struct -FCB is built at ES:DI