DRAFT. EXPECT SOME OMISSIONS AND INACCURACIES
-------------------------------------------------------------------------------

NFTP : New File Transfer Protocol Client Version 0.80
Copyright (C) 1994-1996 Sergey Ayukov

-------------------------------------------------------------------------------
Home page of NFTP. Check it for new versions, updates etc.

Contents

  1. Introduction
  2. Installation
  3. Quick start
  4. Usage
        o Launching NFTP
        o Logging in and out
        o Navigating remote site and local directories
        o Transferring files
        o Customizing NFTP
  5. Keyboard commands summary
        o General keyboard commands
        o Control connection window
        o File listing (remote and local)
        o Entry fields
        o Bookmark list
        o Built-in file viewer
  6. Known bugs and limitations
  7. Troubleshooting
  8. Licensing information
  9. Acknowledgements
 10. Registration
 11. Contacting the author

Version history
-------------------------------------------------------------------------------

INTRODUCTION

NFTP is a text-mode ftp client for OS/2. Comparing to popular ncftp, it has a
number of enhancements:

   *  remote directory view is fully scrollable with minimum keystrokes
     required;
   *  remote directory contents is cached during one session - you'll never
     have to wait for retrieving the same listing;
   *  marking files for download/upload: you don't need to type filenames at
     all;
   *  remote file viewing is more simple and intelligent, and viewed files are
     cached as well;
   *  you can see client-server negotiation (even complete history during all
     run);
   *  NFTP has batch progress indicator (you see how long will take entire
     operation if more than one file was selected to transfer);
   *  file selection is simple and allows to view remote files while marking
     others to transfer;
   *  you can skip files during transfer while continuing to download/upload
     the rest;
   *  you can mark files in different directories and then retrieve them all;
   *  you can sort remote directories by name, size, date/time.
   *  NFTP comes in 12 languages: Brazilian Portuguese, Chinese, Danish,
     English, German, Hungarian, Italian, Japanese, Norwegian, Russian,
     Spanish, Swedish.

The biggest advantages over majority of PM ftp clients (like FTP-PM, sftp etc.)
are the ability to 'reget' (continue transfer after interruption), speed of
simple and effective text-mode interface, small memory requirements.

In my opinion, LW-FTP while being very elegant is useless due to big overhead
of Workplace Shell object creation/deletion.

The drawback, however, is that NFTP isn't free as ncftp. But registration fee
is only US$ 20 -- and you'll get all future versions and support by e-mail at
this price! See registration details below.
-------------------------------------------------------------------------------

INSTALLATION

  1. Requirements are
        o  OS/2 2.x or later;
        o  TCP/IP stack: IBM TCP/IP 2.0 for OS/2, OS/2 Warp Connect, OS/2 Warp
          Internet Access Kit;
        o  HPFS formatted drive to be able to download files which are not
          8.3-compliant.
        o  In addition, you also have to install emx runtime package. If you
          don't have it installed, file "emx.dll" is supplied with this version
          of NFTP. Copy it into any directory listed in your LIBPATH. The
          latest version of emx runtime support package can be found at the
          following ftp servers:
          ftp.uni-stuttgart.de:/pub/systems/os2/emx-0.9b/emxrt.zip
          ftp.sai.msu.su:/pub/os2/programming/emx-0.9b/emxrt.zip
          Instructions on installing it can be found in emxrt.zip archive.
  2. Installation.

     Unpack archive nftp*.zip into some directory and run install.cmd. After
     answering some questions necessary files will be copied to the directory
     you specified and your WPS desktop will hold two new objects -- "NFTP"
     (executable) and "NFTP Manual". You probably already done that because
     you're reading that "NFTP Manual"!

     If you want to install NFTP by hand (without install.cmd), copy all files
     into the directory of your choice (eg, "d:\apps\tcpip\nftp"), load
     nftp.ini into your favourite ASCII text editor (eg, TEDIT shipped with
     Warp) and insert your e-mail address (it will be used as a password for
     anonymous logins) at the appropriate place (line

               anonymous-password="your-e-mail-address"


     ). I also suggest to decide where you will keep your bookmarks and
     transfer history and set corresponding variables accordingly. If you like
     to launch programs from desktop, create program object for NFTP. Put
     supplied nftp.mrk file into the directory which you've chosen in nftp.ini.

     The language NFTP uses is determined by environment variable NFTP_LANG. It
     should be set to the name (without extension) of corresponding DLL file.
     E.g., if you want to use Japanese version, you should use

               set NFTP_LANG=japanes


     This statement can be put to config.sys or to the batch file invoking nftp
     (install.cmd does exactly this). If you only need English version you may
     omit this variable.

     install.cmd creates Workplace shell object to run NFTP. This feature can
     be useful even you are die-hard command-line user (see below). NFTP can
     run in a fullscreen session or in a VIO window. Installation script sets
     it to run in a window, and window will not be closed automatically after
     exit -- this can help to diagnose problems. Turn it off when everything
     works as expected.

-------------------------------------------------------------------------------

QUICK START

After installation, run nftp.exe (from command line or WPS object). If you're
launching NFTP from WPS object created by installation script you will be asked
to enter "FTP server to log in"; simply press ENTER now. You should see list of
bookmarks on the screen. Use cursor keys to select one of them and press ENTER.
If everything is set up correctly, you'll see client-server negotiation and
then finally list of files and directories on the ftp server you've chosen. Hit
SPACE to view control connection window (and it is scrollable!), TAB to view
local files/directories. Return to remote directory view by pressing space/tab
another time. Move pointer with cursor keys, press ENTER on a directory to
enter it. Select files to download with INSERT or simply press F5 to transfer
single file. To upload file to server, switch to local files view (with TAB),
select file(s) and press Shift-F5. To view local or remote file, move pointer
to it and press F3 (of course, remote file will be downloaded first -- that
will probably take some time). Navigating in the viewer is simple and
intuitive: scroll file with cursor keys. Press F10 to log off and exit NFTP.
-------------------------------------------------------------------------------

USAGE: LAUNCHING NFTP

You often already know where the file you need right now is located. Let's
suppose, say, you want to retrieve RFC 959 from

       src.doc.ic.ac.uk:/pub/rfc/


Launch nftp in the following fashion:

       nftp  src.doc.ic.ac.uk:/pub/rfc


or

       nftp  src.doc.ic.ac.uk/pub/rfc


After logging in into src.doc.ic.ac.uk nftp will change directory for you to
/pub/rfc. You will then locate required file and download it.

The command line format for NFTP is:

      nftp [hostname[[:[port]]directory]   [userid]


"hostname" is the name of ftp server ('src.doc.ic.ac.uk' in the above example),
":" can be omitted, "directory" is remote directory ('/pub/rfc' in the above
example), "port" is port number (don't use it if you don't know what's it). If
you have an account on ftp server (i.e. you're not anonymous user), you can
specify your userid in the command line. You will be asked for a password. An
important note -- there shouldn't be any spaces between hostname and directory!
Another examples are:

      nftp private.crlf.net:7500/users    (nonstandard port)
      nftp ftp/pub                        (domain suffix omitted)
      nftp 128.128.128.128:/mydir         (IP number instead of host name)
      nftp lnfm1.sai.msu.su/home/asv asv  (login with explicit directory and real password)


Specifying directories in a command line is a pretty useful feature: when
you've found some reference, paste it directly into the command line (e.g.,
File Commander/2 1.4 allows this) and you'll get right into the place without
typing anything except Ctrl-Ins and Shift-Ins! Note that it's impossible to
specify filename on the command line -- use directory name, not file name (i.e.
/pub/rfc instead of pub/rfc/rfc959.txt.gz in the above example).

NFTP will try to use any text mode you have set before starting it. Modes with
80 columns work rather good, but do not expect this from 132-col or other
modes.
-------------------------------------------------------------------------------

USAGE: LOGGING IN AND OUT

NFTP has several ways to choose ftp server. First of all, you can specify it on
the command line as an argument (see previous chapter, "USAGE: LAUNCHING
NFTP"). Second, you can put server's hostname into the bookmark list if you
frequent this site. Third, you can open it manually -- press Ctrl-L (for
anonymous login) or Ctrl-N (for named login). to be continued
-------------------------------------------------------------------------------

USAGE: NAVIGATING REMOTE SITE AND LOCAL DIRECTORIES

-------------------------------------------------------------------------------

USAGE: TRANSFERRING FILES

-------------------------------------------------------------------------------

USAGE: CUSTOMIZING NFTP

Almost all customization is done through NFTP.INI. This file usually resides in
the same directory as NFTP.EXE itself. However, you can also place it into
PATHed directory or current directory.

The file NFTP.INI is plain ASCII file and can be edited with any ASCII editor
(e.g., "System Editor" or "TEDIT"). Lines starting with semicolon ";" are
comments; empty lines are ignored. The file itself holds comments about
configuration and parameter meaning.

Note that only one entry in NFTP.INI is required -- your e-mail address
(anonymous-password). All other fields are commented by default (installation
script sets log-transfers-name and bookmarks-file). Do not forget to remove
leading ";" when doing customizations.

To get rid of overhead of parsing of text initialization file, NFTP converts
NFTP.INI into NFTP.BIN. This operation is done only when necessary (i.e. when
NFTP.BIN does not exist or older than NFTP.INI). Conversion is fully automatic
and done by NFTP-OPT. Please note that file NFTP-OPT.EXE should be placed into
the same directory as NFTP.INI or into the directory listed in PATH environment
variable. In general, you shouldn't worry about it.

Below is a complete explanation of all parameters in NFTP.INI. Parameters can
be of one of three types: integer, boolean and string. Integer values are
represented by integers :-) and can be prefixed by sign. Boolean values can be
specified as "0", "n", "no" (false), "1", "y", "yes" (true) (WITHOUT! quotes).
Different capitalization (e.g., "Yes") can also be used. Strings are
represented by character sequencies enclosed into double quotes; if value
contains only letters, digits and minus sign you can safely omit quotes. Types
and default values are shown after each parameter name in parentheses.

  1. Networking options and parameters ([network] section)
     anonymous-name (string; default: anonymous)
          your name for anonymous transfers
     anonymous-password (string)
          your password for anonymous logins. Insert your e-mail address here
     default-port (integer; default: 21)
          default ftp port. Do not change unless you're know what are you
          doing. To make this feature useful create special directories for
          sites with nonstandard ports and set 'default-port' in them, not in
          general nftp.ini: nftp will look for initialization file in the
          current direcory first
     firewalling (boolean; default: no)
          set to "yes" if you are behind the firewall
     proxy-server (string)
          name of your proxy server (firewalling only)
     proxy-login (string)
          your login on proxy server (firewalling only)
     use-PASV-mode (boolean; default: no)
          whether to use passive mode all the way. If you don't know what's
          that don't touch it

  2. General options ([options] section)
     derefence-links (boolean; default: yes)
          whether to dereference symlinks on server. Setting to 0 is not
          recommended
     show-dotted (boolean; default: yes)
          whether to include files starting with "." into the list
     debug (boolean; default: no)
          debugging. Do not set to 1 unless nftp goes crazy. Produces huge logs
     transfer-bell (boolean; default: yes)
          whether to beep at the end of transfer
     login-bell (boolean; default: yes)
          whether to beep when logged in
     transfer-pause (boolean; default: yes)
          whether to pause at transfer stats screen at the end of transfer
     log-transfers (boolean; default: yes)
          whether to log transfers. Pretty useful option to keep history and
          statistics
     log-transfers-name (string; default: "nftp.fls")
          name of transfer log. This may be global file (one for several
          instances of nftp running simultaneously).
     save-bookmark-at-logoff (boolean; default: no)
          whether to ask to save current host/dir as bookmark at logoff. Do you
          remember that nCftp does this always?
     bookmarks-file (string; default: "nftp.mrk")
          where to save bookmark information. This may be global file (one for
          several instances of nftp)
     text-viewer (string; default: "tedit.exe")
          external program invoked by Alt-F3. Substitute your favourite
          viewer/editor
     auto-switch-to-control (boolean; default: no)
          whether to switch to Control Connection Window automatically when
          sending commands to server
     default-sort (integer; default: 0 (no sort))
          default directory sort for remote file list. 0-unsorted, 1-by name,
          2-by extension, 3-by size, 4-by time
     default-download-path (string; no default value)
          if this parameter is set, nftp will change into this directory after
          start
     default-dir-mode (integer; default: 1 (parsed))
          default view of remote directory. 0 - raw (as supplied by server), 1
          - parsed (owner/group removed)

  3. Screen colours ([colours] section)

     File Listing
     pointer-marked-dir (default: yellow on cyan)
          cursor pointing to marked directory (not used)
     pointer-marked (default: yellow on cyan)
          cursor pointing to marked file
     pointer-dir (default: lightgreen on cyan)
          cursor pointing to directory
     pointer (default: black on cyan)
          cursor pointing to file
     marked-dir (default: yellow on black)
          marked directory (not used)
     marked (default: yellow on black)
          marked file
     dir (default: green on black)
          directory
     regular-file (default: grey on black)
          file

     Dialog windows
     dialog-box-text (default: grey on blue)
          dialog window
     dialog-box-selected (default: white on grey)
          selected element in a dialog window
     dialog-box-entryfield (default: black on cyan)
          entry field
     dialog-box-text-warn (default: grey on red)
          dialog window containing important information

     Control Connection
     controlconn-header (default: grey on blue)
          window header
     controlconn-respline (default: grey on black)
          server messages and responces
     controlconn-command (default: lightgreen on black)
          command which was sent to server
     controlconn-comment (default: lightred on black)
          comment (actually not a part of control connection)

     Bookmarks
     bookmark-background (default: black on grey)
          bookmark window
     bookmark-pointer (default: black on cyan)
          cursor

     Built-in File Viewer
     viewer-text (default: grey on black)
          file contents
     viewer-header (default: black on cyan)
          status line

     Miscellaneous
     status (default: grey on blue)
          status lines on remote directory (no. of files, no. of bytes, current
          host/directory etc.)
     status-local (default: white on blue)
          status lines on local directory (no. of files, no. of bytes, current
          host/directory etc.)
     transfer-status (default: grey on blue)
          file transfer panel
     help (default: black on cyan)
          help viewer

  4. Keyboard combinations ([keys] section)
     All these parameters are of type 'string' and can take more than one
     value. Separate values by comma. Quotes aren't needed because key names do
     not contain special characters.

     nothing
          binds key to no action. Useful for removing unwanted defaults

     Switching modes
     switch-to-cc (default:space)
          switches between file manager and control connection
     switch-local-remote (default:tab)
          switches between local and remote file view
     directory-mode-raw (default: ctrl-w)
          switches to raw directory view (as in versions 0.60-)
     directory-mode-parsed (default: ctrl-p)
          switches to parsed directory view (more space for filenames,
          owner/group id's omitted)

     Logging in and out
     bookmarks (default:ctrl-b)
          log in to server from bookmark list
     login-anonymous (default:ctrl-l)
          log in to anonymous ftp server, enter server name
     login_named (default:ctrl-n)
          log in to private ftp server, enter server name/login/password
     logoff (default:ctrl-k)
          log off site
     exit (default:f10)
          exit NFTP

     Transferring files
     download (default:f5)
          download file(s)
     upload (default:shift-f5)
          upload file(s)
     change-transfer-mode (default:ctrl-t)
          switches transfer mode between ASCII/BINARY
     download-all-dirs (default: alt-f5)
          download all marked files in all directories
     save-listing (default: alt-s)
          save listing of current directory

     File operations
     view-int (default:f3)
          view file with internal viewer
     view-ext (default:alt-f3)
          view file with external viewer
     delete (default:f8)
          delete file/directory
     mkdir (default:f7)
          create directory
     rename (default: f6)
          rename file/directory

     Sorting file list
     sort-name (default:ctrl-f3)
          sort file list by name
     sort-ext (default:ctrl-f4)
          sort file list by extension
     sort-time (default:ctrl-f5)
          sort file list by time
     sort-size (default:ctrl-f6)
          sort file list by size
     sort-unsort (default:ctrl-f7)
          make file list to be unsorted (as supplied by server)
     sort-reverse (default:ctrl-f8)
          reverse sort order

     Navigating directory structure
     enter-directory (default:enter,ctrl-pgdn)
          enter into the directory under cursor
     go-root (default:ctrl-backslash)
          go to the root directory
     go-up (default:ctrl-pgup)
          go to the directory one level up ("cd ..")
     reread (default:ctrl-r)
          re-read directory
     change-local-drive (default:f2)
          change local drive
     change-directory (default:alt-c)
          input remote directory name and change into it

     Selecting/deselecting files
     select (default:insert)
          select/deselect file under the cursor and move cursor one position
          down (if possible). When cursor points to the directory, just move
          down
     select-all (default:ctrl-numplus)
          mark all files in the current directory
     deselect-all (default:ctrl-numminus)
          unmark all files in the current directory
     select-by-filter (default: plus)
          mark files by user-specified filter
     deselect-by-filter (default: minus)
          unmark files by user-specified filter
     invert-selection (default: *)
          inverts selection
     select-alldirs (default: alt-numplus)
          mark all files in all visited directories
     deselect-alldirs (default: alt-numminus)
          unmark all files in all visited directories

     Miscellaneous
     autocontrol (default:ctrl-a)
          switches autoswitching to control connection on/off
     screen-redraw (default:ctrl-d)
          redraws screen (do not re-reads remote directory)
     noop (default:alt-n)
          send NO OPERATION command (useful for verifying connection aliveness)
     useflags (default:alt-f)
          switches between NLST with flags/LIST commands
     quote (default:alt-q)
          send command to ftp server verbatim
     save-bookmark (default:f4)
          save current remote directory as bookmark

  5. Owner identification ([registration] section)
     Ignored in the current version until August 1, 1996.
     name (string)
          Your registration name (specify exactly as typed in registration
          form); enclose into double quotes
     code (string)
          Your registration code; enclose into double quotes. If you're running
          unregistered version, set this parameter to empty value.
     message (boolean; default: yes)
          If you're running unregistered and hate those warnings about
          registration, set this parameter to 0 -- you'll no longer see
          warnings. Of course, files larger than 500KB will be still
          unreachable.

The following table lists valid keyboard combinations. "Y" means that this
keystroke can be used; "--" -- keystroke cannot be assigned (it's not generated
at all or intercepted by system); "N/R" -- not recommended (e.g., better leave
Esc or Enter bound to defaults); "char" -- generates plain ASCII character
code.

            VALID KEY COMBINATIONS: FUNCTION AND ALPHANUMERIC KEYS
      Key        Plain             Shift             Alt          Ctrl
 esc            N/R     same as 'esc'               --    --
 f1-f12         Y       Y                           Y     Y
 ~ `            char    char                        Y     --
 1 !            char    char                        Y     --
 2 @            char    char                        Y     Y
 3 #            char    char                        Y     --
 4 $            char    char                        Y     --
 5 %            char    char                        Y     --
 6 ^            char    char                        Y     Y
 7 &            char    char                        Y     --
 8 *            char    char                        Y     --
 9 (            char    char                        Y     --
 0 )            char    char                        Y     --
 - _            char    char                        Y     Y
 + =            char    char                        Y     --
 | \            char    char                        Y     Y
 backspace      N/R     same as 'backspace'         Y     Y
 tab            N/R     N/R                         N/R   N/R
 enter          N/R     same as 'enter'             Y     Y
 a-z            char    char                        Y     Y
 { [            char    char                        Y     same as 'esc'
 } ]            char    char                        Y     Y
 : ;            char    char                        Y     --
 " '            char    char                        Y     --
 < ,            char    char                        Y     --
 > .            char    char                        Y     --
 ? /            char    char                        N/R   --
 Space          char    same as 'space'             NA    NA

          VALID KEY COMBINATIONS: NAVIGATION KEYS AND NUMERIC KEYPAD
    Key            Plain             Shift        Alt           Ctrl
 insert     N/R                same as 'insert'   Y    Y
 delete     N/R                same as 'delete'   Y    Y
 home       N/R                same as 'home'     --   Y
 end        N/R                same as 'end'      Y    Y
 pgup       N/R                same as 'pgup'     Y    Y
 pgdn       N/R                same as 'pgdn'     Y    Y
 up         N/R                same as 'up'       Y    Y
 down       N/R                same as 'down'     Y    Y
 left       N/R                same as 'left'     Y    Y
 right      N/R                same as 'right'    Y    Y
 num /      same as '/'        same as '/'        Y    Y
 num *      same as '*'        same as '*'        Y    Y
 num -      same as '-'        same as '-'        Y    Y
 num +      same as '+'        same as '+'        Y    Y
 num enter  same as 'enter'    same as 'enter'    Y    same as 'ctrl-enter'
 num 1      same as 'end'      same as '1'        --   same as 'ctrl-end'
 num 2      same as 'down'     same as '2'        --   same as 'ctrl-down'
 num 3      same as 'pgdn'     same as '3'        --   same as 'ctrl-pgdn'
 num 4      same as 'left'     same as '4'        --   same as 'ctrl-left'
 num 5      Y                  same as '5'        --   Y
 num 6      same as 'right'    same as '6'        --   same as 'ctrl-right'
 num 7      same as 'home'     same as '7'        --   same as 'ctrl-home'
 num 8      same as 'up'       same as '8'        --   same as 'ctrl-up'
 num 9      same as 'pgup'     same as '9'        --   same as 'ctrl-pgup'
 num 0      same as 'insert'   same as '0'        --   same as 'ctrl-insert'
 num .      same as 'delete'   same as '.'        --   same as 'ctrl-delete'
-------------------------------------------------------------------------------

KEYBOARD COMMANDS SUMMARY

All interaction with NFTP is keyboard-based; there's no mouse support (and I am
not going to implement it -- at least now). This approach is somewhat tough for
novice user, but after some learning it gives the best results in terms of
usability and interaction speed. Here is the list of keystrokes ("hot keys");
it's divided into several sections each pertaining to specific mode of
operation or action classification.

                   GENERAL KEYBOARD COMMANDS

     Note that these commands are available almost always

    Key                          Meaning

 Shift+F1    program information and general keyboard commands

    F1       brings context sensitive help

    F10      logoff from site and quit NFTP

  Ctrl-K     logoff from site

  Ctrl-B     open bookmark list and log to site from it

  Ctrl-L     login as anonymous into new site

  Ctrl-N     login with userid/password into new site

  Ctrl-V     display version information

  Ctrl-A     toggle state of autocontrol flag

  Ctrl-T     toggle ASCII/BINARY mode

  Ctrl-D     redraw screen (do not re-read remote dir)

   Alt-N     send NO OPERATION command (verify connection
             aliveness)

  Ctrl-W     sets remote directory view to raw (as used in
             NFTP 0.60-)

  Ctrl-P     sets remote directory view to parsed

             use/inhibit NLST with flags (default is on). Some
             servers
   Alt-F     do not like NLST -lLa. Try if you see strange
             messages from server when retrieving directory
             listing. NOT RECOMMENDED.

                   CONTROL CONNECTION WINDOW

     Key                          Meaning

 arrow keys    move viewpoint

     Esc       bring you back to the end of history (same as
               End)

    Space      switches to directory view

    Alt-Q      send any string to server verbatim (quote)

    Alt-C      change to arbitrary directory

              FILE LISTING VIEW (REMOTE OR LOCAL)

          Key                          Meaning

                          Navigating

      arrow keys         move cursor around. Horizontal
                         scrolling is also possible

 Ctrl-Left/Ctrl-Right    horizontal scrolling by 10 symbols

        Ctrl-\           change to root directory

       Ctrl-PgUp         goto the directory level higher ("cd
                         ..")

       Ctrl-PgDn         chdir to directory under cursor

         Enter           same as above

         Alt-C           change to arbitrary directory

         Space           switch to control connection

          F2             select drive letter -- local view
                         only

                     Sorting file listing

        Ctrl-F3          sort directory by name, dirs first

        Ctrl-F5          sort directory by time, then name,
                         dirs first

        Ctrl-F6          sort directory by size, then name,
                         dirs first

        Ctrl-F7          remove sorting, return to original
                         state

        Ctrl-F8          reverse current sort order

                       Marking/unmarking

       Ctrl-num+         mark all files in current directory

       Ctrl-num-         unmark all files in current directory

        Insert           mark/unmark file under cursor.
                         Directory cannot be marked

           *             invert selection

       Alt-num+          mark all files in all visited
                         directories

       Alt-num-          unmark all files in all visited
                         directories

                      Transferring files

          F5             download file under cursor or marked
                         files (if any) -- remote view only

       Shift+F5          upload file under cursor or marked
                         files (if any) -- local view only

        Alt-F5           download all marked files from all
                         directories -- remote view only

         Alt-S           save listing of current directory
                         into file -- remote view only

                         Viewing files

          F3             view file under cursor, use fast
                         internal viewer

        Alt-F3           view file under cursor, use external
                         viewer

          Creating/deleting/renaming files/directories

          F6             rename file/directory

          F7             make directory (you have to have
                         permissions on remote)

          F8             delete file or directory under cursor

        Ctrl-R           re-read directory (refresh file list)

                         Miscellaneous

          F4             save this place as a bookmark

   alphanumeric keys     quick search for files starting with
                         these symbols

                         ENTRY FIELDS

           Key                          Meaning

        Esc/Enter         abandon/confirm

  Left, Right, Home, End  move cursor around

     Tab, Shift-Tab       move to next/previous field (if
                          any)

     Del, Backspace       delete characters

  Pressing any keys different from Left, Right, Home, End will
                   clear the initial string.

                         BOOKMARK LIST

        Key                          Meaning

    arrow keys      move cursor

       Enter        select bookmark

        Esc         abort (leave bookmark list)

        Del         delete bookmark

      Insert        create new bookmark

                     BUILT-IN FILE VIEWER

       Key                           Meaning

    arrow keys      scroll (note that you can scroll
                    horizontally also)

 Ctrl-Left/Right    scroll by 10 symbols horizontally

        F7          search for text string

     Shift-F7       repeat search for text string

     F2/Alt-S       save contents to file

       Esc          exit viewer

-------------------------------------------------------------------------------

KNOWN BUGS AND LIMITATIONS

  1.  Not all ftp servers are supported. Most ftp servers in the world use
     wu-ftpd under Unix as their server software, so you shouldn't experience
     this trouble too often. Nearly all Unix ftp servers are supported. IBM
     TCP/IP 2.0 for OS/2 ftpd and Windows NT ftpd are supported too.
  2.  When running with 'debug=1', your password will be recorded in debug
     tracefile -- beware!
  3.  When running with 'debug=1', run nftp off HPFS partition - debug file has
     long filename with two dots.
  4.  Error handling is still pretty primitive

-------------------------------------------------------------------------------

TROUBLESHOOTING

Q: nftp says "emx not found".
     A: You don't have emx runtime package installed. Read INSTALLATION section
     again.
Q: nftp crashes, saying "core dumped".
     A: If you can repeat situation, please send me details of your setup
     (nftp.ini, nftp.mrk, keystrokes which caused fault).
Q: nftp seems to be hanging, no activity is visible
     A: If this happened during transfer, try "Q". Otherwise terminate it with
     Ctrl-Break.

-------------------------------------------------------------------------------

LICENSING INFORMATION

The Program (NFTP) is owned by Sergey Ayukov and is copyrighted and licensed,
not sold. The term "Program" means the original program and all whole or
partial copies of it.

You may:

   * use the Program
   * distribute unaltered copies of the Program

You may not:

   * reverse assemble, reverse compile, or otherwise translate the Program
   * sublicense, rent, or lease the Program

The Program is provided `as is'. Any express or implied warranties, including,
but not limited to, the implied warranties for merchantability and fitness to a
particular purpose are disclaimed. Sergey Ayukov will not be liable for any
lost profits, lost savings, incident, special, or indirect damages or other
economic consequential damages, even if Sergey Ayukov has been advised of the
possibility of such damages. Some jurisdictions do not allow the exclusion or
limitation of incidental or consequential damages, so the above limitation or
exclusion may not apply to you.

The size of files that can be transferred with free version is limited to
500KB. If you want to exploit full capabilities of the Program and receive
support by e-mail from author, you have to register your copy. See section
Registration below. If you don't need neither to transfer files larger than
500KB nor support you don't have to register. Using unregistered version is
perfectly legal; the above conditions apply. Using registered version is
covered by separate license; it will be provided later.
-------------------------------------------------------------------------------

ACKNOWLEDGEMENTS

Many people have helped me in creating and improving NFTP. They are (in
alphabetical order):

   *  Hubert Brentano (translation to German)
   *  Lennart Carlson (translation to Swedish)
   *  Tth Ferenc (translation to Hungarian)
   *  Stefan Hora (testing behind the firewall)
   *  Lord Lee (translation to Chinese)
   *  Kirill Lissovsky (usability comments)
   *  Dmitry Maloff (usability comments)
   *  Ivan F. Martinez (translation to Brazilian Portuguese)
   *  Sergey Mikhaylov (usability comments)
   *  Pantaleo Nacci (translation to Italian)
   *  Jose Ruiz (translation to Spanish)
   *  Kaz Shimz (translation to Japanese)
   *  Andrew Sukhorukov (usability comments)
   *  Kim Poulsen (translation to Danish)
   *  Kristoffer Viddal (translation to Norwegian)

Special thanks to Eberhard Mattes, author of emx/gcc development system!

This program is packaged using Info-ZIP's compression utility. Info-ZIP's
software (Zip, UnZip and related utilities) is free and can be obtained as
source code or executables from various bulletin board services and
anonymous-ftp sites, including CompuServe's IBMPRO forum and
ftp.uu.net:/pub/archiving/zip/*.
-------------------------------------------------------------------------------

REGISTRATION

Registration fee will be US$ 20. For this price you'll get free updates (i.e.
all future versions of NFTP) and support from author by e-mail. Single
registration covers all national language versions, so if you want to run, say,
English and Chinese versions, you'll have to pay only once.

If you think that price is too high for this small utility, simply don't use
NFTP.

The program isn't complete, so there's nothing yet to pay for. Please wait for
release version (1.0). Version 0.80 will become unregistered August 1, 1996.
There should be another version this Summer.

For people living in Former Soviet Union countries registration will cost only
one postcard. If you want to register in advance, send nice postcard
(preferably with your home town if it's not Moscow) enclosed in envelope to
Sergey Ayukov
Sternberg Astronomical Institute
Universitetsky pr., 13
Moscow 119899
Russia
You will receive your registration number after sending registration form by
e-mail. This form will be provided later.

Nothing else here at the moment.
-------------------------------------------------------------------------------

CONTACTING THE AUTHOR

You can reach me at asv@sai.msu.su.

Where to find new versions:

  1. anonymous ftp: ftp.sai.msu.su:/pub/os2/internet/ftp/
  2.  WWW: http://crydee.sai.msu.su/nftp/
  3.  ftp-os2.cdrom.com, hobbes.nmsu.edu, ftp.leo.org

Note that first site is managed by myself so it always contains the latest
version while Hobbes and cdrom archives sometimes become outdated.

Sorry for any typos and bad grammar. I will gladly accept any corrections to
this short manual.
-------------------------------------------------------------------------------
Sergey Ayukov (asv@sai.msu.su)
-------------------------------------------------------------------------------

Version history

Version 0.1 (preview)
     First usable version. Used FTPAPI calls. Very slow; control connection
     messages cannot be seen. Wasn't exposed to public, although available.
Version 0.2 (preview)
     Got rid of FTPAPI. Full-scale socket programming of ftp control connection
     and data transfers. Introduced bookmarks.
Version 0.3 (preview)
     Never showed to public. The last version compiled with IBM CSet++. See
     0.4.
Version 0.4 (preview)
     Nearly the same as 0.3, but compiled with emx 0.9a + gcc 2.6.3. A handful
     of new features:
        o  logging in and out without restarting entire program;
        o  passworded entries in bookmark file;
        o  quick directory change: if you know where to go, you won't need to
          traverse all intermediate dirs;
        o  various bug fixes.
Version 0.5 (preview; close the beta stage)
     Bugfixes plus
        o  ability to work in any 80xXX mode (25 <= XX)
        o  online context sensitive help (press F1, Shift+F1)
        o  code reorganization
        o  some errors are handled (mostly login errors)
        o  directory sorting by name, size, date/time
        o  create directory on the remote, remove file(s) on the remote
        o  preserving date/time of files downloaded
        o  fast built-in file viewer
        o  ability to invoke any ftp server command
        o  better socket selecting scheme
     Will not work after 31 Dec 1995
Version 0.51 (preview; close the beta stage)
     I am sorry for releasing 0.5 so full of bugs... There was a lot of...
        o  fixed couple of awful bugs (memory corruption) resulting in core
          dumps etc;
        o  got rid of malloc (goodbye, flat memory space! welcome, 32-bit
          segments and memory protection!)
        o  you can set nonstandard port in nftp.ini
Version 0.52
     Same as 0.51 but without 31 Dec limitation. Only to be distributed by SAMS
     Publishing.
Version 0.53
     Nearly the same as 0.52 but limited to 30 March 1996.
Version 0.60
     I am a bit short on time; 0.53 expires today, so some new features weren't
     tested much. Bugfixes and small improvements plus:
        o  reget (restarting transfers)
        o  uploading
        o  IP numbers can be used instead of host names
        o  "Q" and "S" work! you can skip files during transfer or stop
          download/upload
        o  more intelligent networking (fixes some problems with dynamic IP)
        o  changing local directory, viewing list of local files etc.
        o  ability to specify arbitrary port (not in bookmarks though)
        o  new bookmarks can be created with Insert key
        o  installation program
        o  documentation
Version 0.70
     Few bugfixes (including failing to recognize "hostname/directory" format
     when specified in the command line) plus
        o  fixed nasty bug causing nftp to crash when viewing some files with
          internal viewer -- thanks to Jose Ruiz who pointed out to such file
        o  sort by extension
        o  much more error recovery; there should be no more situations when
          nftp exits silently;
        o  improved sound signals; includes beep after successful login
          (configurable)
        o  tables in this manual look much nicer now :-)
        o  firewalling support -- does not work yet
        o  remappable keys
        o  ability to specify download directory in NFTP.INI. NFTP will change
          into that directory after start
        o  IBM TCP/IP ftpd for OS/2 is supported
        o  Windows NT ftpd is supported
        o  Windows 3.x WFTPD by Texas Imperial Software is supported
        o  Progress indicator in "view remote file" and during receiving of
          directory listing
        o  You can now try to "chdir" to symbolic link
        o  "Parsed" directory view -- hit Ctrl-P and see
        o  National language support -- check out NFTP home page
        o  Average transfer speed is now recorded in the history (.fls file)
        o  Russian version
        o  Chinese BIG-5 version
        o  Spanish version
Version 0.71
     Several bugfixes plus
        o  '*' inverts selection
        o  f8 deletes local directories
        o  Neologic FTPD is supported
        o  moving language-dependent strings into separate DLLs (thus greatly
          reducing size of the package)
        o  (un)marking files by template (eg, '*.txt')
        o  Hungarian version
        o  German version
        o  Danish version
        o  Japanese version
        o  caching of viewed remote files
        o  downloading all marked files from all directories (alt-f5)
Version 0.72
     No new functionality. Fixed small mistakes in national language
     translations. Added Norwegian version. Added missing ASCII and Postscript
     manuals.

Version 0.80
        o  Support for Neologic FTPD in UNIX emulating mode
        o  Support for PowerWeb FTPD
        o  Support for old (with DOS-like output) Windows NT ftp server
        o  F6 renames files/directories (on remote too)
        o  Alt-S saves listing of current directory into file
        o  left/right/ctrl-left/ctrl-right scroll remote/local directory
          listing
        o  symbols select files starting with these symbols
        o  complete firewalling support (a-la WS_FTP) (wasn't completely
          tested)
        o  built-in fileviewer now has ability to save file and search for text
        o  retrieving directories/viewing files is now interruptable (with ESC)
        o  when anonymous login is denied, NFTP will retry after specified
          amount of time
        o  Italian version
        o  Brazilian Portuguese version

Planned for next versions (note that not all these features will be in the
first shareware version (1.0)):

   *  more error recovery
   *  more complete docs
   *  improved installation/setup routines
   *  bookmarks in the form of standard URLs
   *  more multithreading (view file while downloading etc)
   *  enhanced bookmarks (folders?, descriptions etc.)
   *  searching for string in file names
   *  batch mode ?
   *  autodownloading file descriptions (00index.txt) and showing them (a-la
     CuteFTP)

There were several requests for PM version. I hope that I will write it
sometimes, but probably not in 1996.
