File: /~heha/hsn/dos/doslfn/doslfnjh.zip/readme.txt

+---------------------------------------------------------------+
| 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
Wrong umlauts? - Assume file is ANSI (CP1252) encoded