
                  Virtual Long Filename Support Driver (VLFN)
                  -------------------------------------------

                            Version 0.91  (Beta 2)


What is VLFN?
-------------

  By installing this package, you'll be able to use long filenamed files in
  your OS/2's DOS box, the same way as you see them in WinXX.

What does it mean 'Version 0.91'?
---------------------------------

  This program is still in Beta stage, which means that there are no guaran-
  tees that it will work correctly and will not crash you computer.

  For known issues please check 'Known problems' section!

How to install?
---------------

  - Unzip the program somewhere, let's say to C:\VLFN.
  - Add the following lines to your config.sys:
    DEVICE=C:\VLFN\VLFNMEM.SYS
    DEVICE=C:\VLFN\VLFN.SYS
  - Reboot
  - Start VLFND.EXE

  At this stage, VLFN is ready to serve your DOS sessions.
  If you want a DOS session to have Long Filename (LFN) support, start
  LFN.COM there, that's all.

Warning!
--------

  Some parts of this program run in RING 0, as device driver. If something
  bad happens there, it can cause TRAP or system halt. Keep in mind that it is
  still a Beta version, so *don't run it on machines on which life depends*!

How does it work?
-----------------

  As I know, there is no way to access long filenamed files from DOS sessions
  through normal file handling functions. Only OS/2 executables can see and use
  them.

  So, the program redirects all file operations from a DOS session to an OS/2 
  executable (VLFND.EXE), which makes everything instead of the DOS session,
  and converts long filenames to short ones and vice versa.

  To remember long filenames on FAT drives, and short filenames on HPFS/JFS/etc
  drives, it uses Extended Attributes to store these special filenames with
  the files. It uses .LONGNAME attribute on FAT drives, and .SHORTNAME on the
  others.

  All this work is done by the VLFN Daemon, VLFND.EXE.

  VLFN.SYS is a virtual device driver, which offers services for DOS sessions.
  In our case, these services are the LFN-enabled file operations. If a DOS 
  session want something from VLFN.SYS, it sends a request to VLFN.SYS, which
  redirects it to the daemon.

  VLFNMEM.SYS is a (character) device driver. It's only job is to reserve 128K
  memory as a communication buffer between VLFN.SYS and VLFND.EXE, and give the
  address of this buffer to everybody who asks for it.

  By running LFN.COM in a DOS session, this TSR (resident program) will patch
  the in-memory DOSKRNL image, so some requests will go to VLFN.SYS instead of
  the OS/2 kernel directly. In other words, by running LFN.COM, you 'turn on' 
  LFN support in a DOS session.

VLFND.EXE Parameters:
---------------------

  You can fine-tune the VLFN Daemon using the following parameters:

  /PRIORITY <c> <d>

    Sets the priority of Daemon.
    <c> can be 1..4 (Priority Class: Idle, Regular, TimeCritical or FServer)
    <d> can be -31..31 (Priority Delta)
    Default (and recommended) value is 3 and 0.

  /LOGTOSCREEN

    Write log information to screen

  /LOGTOFILE

    Write log information into file VLFN_LOG.TXT

  /LOGLEVEL <l>

    Sets how detailed the log information should be.
    You can create the value <l> by combining the following values:
      1  Startup/Shutdown information
      2  VLFN Daemon main messages
      4  Long filename related messages
      8  Extended Attributes related messages
     16  EA Cache related messages
    For example: /LOGLEVEL 6 will turn on logging for Main messages and Long
    filename related messages too.

  /NOEABUGFIX

    OS/2 has a bug with reading extended attributes of CHKDSK.LOG files.
    VLFN does not try to read/write EAs for these files by default. If you
    know that your system does not have this bug, you can use this switch.

  /NOEACACHE

    VLFN Daemon saves EA information in its own EA Cache to speed up LFN ope-
    rations. You can turn this off by using this switch. Not recommended.

  /EACACHESIZE <s>

    You can specify the amount of memory to be used for EA cacheing. The defa-
    ult is 131072 (128 Kbytes), but you can modify it here.
    Use bigger cache if you have a lot of files on your path.
        
To-do (plans):
--------------

  - Bugfixes. Still needs some.
  - CD-Rom and Network support.
  - Implement WinXX DOS-based LFN functions, and report WinXX to DOS applica-
    tions. It will be easy after every other thing works.

How to contact the author?
--------------------------

  If you have any comments/questions, feel free to send a mail to
  Doodle <kocsisp@dragon.klte.hu> !

  Please read the 'Known problems' section before reporting bugs!

Known problems
--------------

  - Pipe redirection not perfect. (eg. 'type file.txt |more' fails)
  - CD-Roms, Network drives and other remote drives are not supported yet.
    Only FAT, HPFS and JFS drives are tested, and known to work.
  - Bigger programs (aka. not Notepad) crash in WinOS/2
  - Only Full-screen WinOS/2 works

The author would like to say big thanks to the following people:
----------------------------------------------------------------

  Henk Kelder for giving me the source code of his great program EABrowse
  Dave Evans for helping me with ICAT
  Timur Tabi for helping me with my jump-table problems
  Joe Nord for explaining how to convert VDM's addresses to FLAT ones correctly
  John Martin (JMA) for his unmeasurable help

--- END ---