Z88 Developers' Notes | ||
---|---|---|
Contents | Contents of System Calls |
GN_Fex, expand a filename
RST 20H, DEFW $5009
IN:
BHL = source pointer (HL>255, B=0 means local pointer). HL = 0,1,2; not allowed. Source string should be terminated by a control character DE = destination pointer 0: output to IX stream handle 1: output to IX filter handle >255 place string at (DE) IX = destination handle (if DE = 0,1) C = limit of space to useOUT, if call successful:
Fc = 0 DE = points to the character after the last one written (If DE(in) > 255) B = number of filename segments returned C = number of characters in compressed space A = A7 = 1, wildcards were used A6 = 1, device name specified A5 = 1, wild directory specified ("//") A4 = 1, parent directory specified ("..") A3 = 1, current directory specified (".") A2 = 1, explicit directory specified A1 = 1, filename specified A0 = 1, extension specifiedOUT, if call failed:
Fc = 1 A = error code: RC_IVF ($17), invalid filename RC_EOF ($09), blank filename RC_BAD ($04), bad parametersRegisters changed after return:
......HL/IXIY same AFBCDE../.... differentNotes:
The routine does not process wildcards *, ? and //, but passes them to the output buffer.Bugs:
.. is expanded to parent directory
. or no directory is expanded to current directory.
If the source is in segment 2 and B=0 then problems may occur (but not for extended address). If the source is in segment 3 and BHL as extended pointer then this call will also fail.Related calls:
GN_Esa, read & write to filename segments
GN_Fcm, compress a filename
GN_Opw, Open wildcard handler
GN_Pfs, parse filename segment
GN_Prs, parse filename
GN_Wcl, close wildcard handle
GN_Wfn, fetch next match for wildcard string (handle)
GN_Wsm, match filename segment to wildcard string