Parse filename (INT 21h, 29h)

Entry:
AH = 29h
DS:SI = pointer to string to parse
ES:DI = pointer to memory to fill with unopened FCB
AL = bit mask to control parsing
0 = 0: parsing stops if file separator found
1: leading separator ignored
1 = 0: drive number in FCB set to default drive if not
present in string
1: drive number in FCB not changed
2 = 0: filename in FCB set to blanks if no filename in
string
1: filename in FCB not changed if string does not
contain a filename
3 = 0: extension in FCB set to blanks if no extension in
string
1: extension left unchanged
Return:
AL = 00: no wildcards in name or extension
01: wildcards appeared
DS:SI = pointer to first byte after parsed string
ES:DI = unopened FCB

Notes: asterisks expanded to question marks in the FCB
all processing stops when a filename terminator is
encountered cannot be used with filespecs which include
a path (DOS 2+)