+---------------------------------------------------------------+
| DOSLFN - A Real-mode driver for Long File Names missed in DOS |
| With full Unicode and DBCS support! |
+---------------------------------------------------------------+
INTRODUCTION
This is a customised version of DOSLFN 0.32o by Henrik Haftmann. See DOSLFN.TXT
for usage details; this document only describes the changes. This distribution
only contains the main programs and their sources; if you need LOWDMA and/or
codepages, please obtain the full package from Henrik (see DOSLFN.TXT).
ADDITIONAL SWITCHES
m[sln] Specify the maximum size of the shortname path (80), longname path
(260) and filename (256). Note that even though DOS will not CD into an
extra-long path, it can still be specified explicitly, so the default value
of 80 might not be enough. See MVALUES, below.
o Timezone offset. If no timezone is given, TZ will be re-read. See below.
TZ Timezone environment variable. As explained in DOSLFN.TXT, with the
exception that I use minutes, not fractional hours (eg: "5:30", not "5.5").
And just to clarify, the TZ value is added to local time to make UTC time.
Thus if your timezone is ahead of UTC, you specify a *negative* value for
TZ. However, the status will display the positive value.
** If profiling is enabled **
p Display the profile data - number of calls, time in seconds, description.
pr Reset the profile data - number of calls and time are set to zero.
pc Calibrate your profile timing constant. Profiling makes use of the Pentium
Read Timestamp Counter (RDTSC) instruction for timing. Unless you happen to
have a 2.6GHz P4 you will need to re-compile DOSLFN with your constant.
DOSLFNMS
DOSLFNMS is intended for use with MS-DOS 7 (but may also work with FreeDOS)
and also has some features removed to reduce its size:
- doesn't disable itself when starting Windows;
- doesn't recognise codepage changes;
- doesn't handle double-byte character sets;
- doesn't use the CeQuadrat link table.
MVALUES
MVALUES can be used to scan your drives to find the optimum sizes for the m
switches. This could save over a ¬K from the resident size. It only accepts
one parameter, which is a string of drives to scan (default is C).
KNOWN PROBLEMS
* Creating a *really* long name on a 512-byte cluster (allocating a second
cluster will fail; other cluster sizes will always have enough room).
* Changing disk (or formatting, resizing a RAM disk) will not reset the cache
for that drive. This may cause DOSLFN to think a file/dir still exists.
Workaround: fill the cache with entries from another drive (eg: attrib /s).
* Truename fails on devices (Win98 succeeds - d:/device; XP fails - not found).
* NIOS' internal commands don't work (this is a problem with NIOS & MS-DOS 7).
Workaround: add an invalid drive to the PATH.
* Appending a backslash after a filename will not find that file (but it's ok
for a directory).
CHANGES
Version 0.33 (07/04)
User:
+ time conversion functions (NTFSDOS will now DIR correct times)
+ o switch to specify timezone or read TZ environment variable
* changed statistics counters to 7 digits (DWORDs)
+ status includes used heap size and timezone
+ read lowercase names generated by XP
- flush dirty sectors before changing drive
- fixed bug where "path not found" should be "file not found"
- prevent loading DBCS tables if not using DBCS
- better fallback mode support (network drives & non-Joliet CDs):
- get/set modification time work; all others fail, not erroneously succeed
- delete wildcards
- Volume Information (71A0) returns unknown filesystem ("?")
- fixed bug with rename corrupting memory (crashed COMMAND.COM)
- return error 1 (invalid subfunction) for invalid attrib/truename/alias/time
- fail all attribute functions for devices
- free the previous link table if loading a Rock-Ridge CD
- fixed memory allocation size (filling the heap would crash DOS) & display
- SFN to create, but LFN to use (eg: SFN MkDir, LFN ChDir, DOSLFN would not
see the new dir.); may still be problems with Create Temporary File (5A)
- Volume Information returns "FAT32" if appropriate
- remove the hidden file created when a directory couldn't be expanded
* prevent free space from having to be recalculated (DOSLFNMS)
Source:
+ conditional compiles:
USEOLDDOS enable LFN filtering on DOS find functions
USEWINTIME enable real Win <-> DOS time conversions
USEXP enable reading of XP lowercase 8.3 names
USEFREESPC enable setting of the DPB free cluster count
PROFILE enable profiling (requires & assumes Pentium)
PROFILECACHE enable profiling of fastopen cache (also requires above)
PATHLOOK see what's (not) being cached
* removed DT_BIGDOS, added DT_FAT12 and swapped positions of DT_FAT16/32
(DT_FAT?? is the number of nibbles per entry - size optimisation);
DT_DrvPar is now only used by CD (distinguishes Rock-Ridge from Joliet)
* fixed some comments, removed some commented code
* install the shortname entry directly (PF_Install_Short)
* size optimisations, including:
* most CD code is now overwritten if CD support is not required
* use only extended or standard DPB/disk functions
* assume alias numbers (both DOSLFN & SHSUCDX) are < 2560
* patch code directly instead of TESTing [ctrl]
* read 4 FAT sectors at a time (2K buffer)
* new fastopen cache (caches 16 directories and 16 names, across all drives)
* get/set attribute uses directory entry (faster than using DOS)
* CDs always use sector 16 as volume start (this is all SHSUCDX does)
- fixed printf bug with signed numbers (was using CX, not ECX)
+ p switch to display profile data
+ pr switch to reset profile data
+ pc switch to calibrate profile timing (recompile with this value)
* trying to use a file as a directory will immediately fail (this replaces the
FindFirst directory attribute test)
* modified heap to use byte-sized allocations, extending the allocation if
there are 1, 2 or 3 bytes left over; removed allocation strategy
* Alloc_Cluster creates its own directory entry
Version 0.32o, third jh release (12/03, but dated 10/03)
- deleting on a CD will return error 5 (access denied), not 2 (file not found);
- CeQuadrat's link tables now work.
Version 0.32o, second jh release (10/03)
- set the error code when using the wildcard unlink function;
- corrected a bug in finding files for the wildcard unlink.
Version 0.32o, first jh release (10/03)
* various size optimisations;
* modified generation of CD short names, SHSUCDX 2.0 tilde generation;
+ added options to specify the maximum size of paths (/m[sln]);
- keep the creation time (LFN functions only);
- recognise case-only renames;
- correctly clear carry for the attribute functions;
+ primitive support for Linux Rock-Ridge CDs;
* only load the link table when reading a new CD (as determined by the VSN);
- remove trailing spaces from incorrectly coded Joliet volume labels;
- don't write the buffer for LFN truename (Int21/AX=7160/CL=2) if the file
doesn't exist;
- allow writable devices when current drive is a CD;
* modified the Joliet Link Table (.JLT) file format (filename uses the Volume
Serial Number instead of the label; TYPE will show it);
- MKLINK: better mapping of empty directories;
- MKLINK: potential problem with Joliet volume labels corrected;
+ MKLINK: option to "manually" create the links;
- CP437UNI.TBL: fixed the translation of the "micro" symbol (æ).
email: jadoxa@yahoo.com.au
web: http://doslfn.adoxa.cjb.net/
Detected encoding: ANSI (CP1252) | 4
|
|