Function 29h Parse the Command Line for FilenameParses 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