




PCFSP 
Version 1.05
Novemeber 6, 1993



   
By Lindsey Smith 

Email: lsmith@symantec.com

US Mail: 8276 Menlo Drive
         Baton Rouge, LA 70808
         USA



                            
Based on FSP 2.6.5
By Wen-King Su
wen-king@vlsi.cs.caltech.edu


       


I. What is PCFSP?
-----------------

PCFSP is a port to the PC of the UNIX program set collectively known as 
FSP. Well then, what is FSP? FSP is a TCP/IP file transfer protocol similar 
to FTP, the standard Internet file transfer program. With FSP you (the 
client) can upload and download files from an FSP site (the server)
via the Internet. If you have an Internet-connected PC, I highly recommend 
you give PCFSP a try.

PCFSP is CardWare.  To be a fully registered user of PCFSP you must
send a postcard to the US mail address above.  I prefer something
scenic or touristy...  In return for the postcard, you'll be notified
by Internet email (don't forget to give/email me your Internet
address) of updates to PCFSP.  That's not too bad is it?



II. What do I need to run PCFSP?
--------------------------------

Basically you need a PC that is connected to the Internet and has some 
sort of packet driver loaded. Exactly what drivers you need to load
and what other configuration tweaking needs to be done before you can
access the Internet is far beyond the scope of this document. There are
far to many networking operating systems and PC TCP/IP implementations
for me to give you much help in this department. Don't be intimidated
by this, though. You'll proabably just need to talk to your network 
administrator before you begin configuring PCFSP. He/she should be able
to get you up and running. Just remember that PCFSP itself is very simple 
to configure, it's making your system capable of running PCFSP or any
other Internet access software that can be tricky.



III. Configuring PCFSP
----------------------

PCFSP depends on a file called WATTCP.CFG for its configuration
information. If you have used Internet access software on your PC
before, then filling in the information in WATTCP.CFG should be
pretty straightforward. Otherwise I suggest you get your system
administrator to help you fill it in.

Edit the sample WATTCP.CFG file provided. My WATTCP.CFG file is 
shown below as an example.


my_ip=192.246.63.98
netmask=255.255.255.0
nameserver=38.145.250.2
gateway=192.246.63.1


The my_ip line should be set to your unique IP address.  The netmask
line should be set to the netmask of your LAN's configuration. The
nameserver line should be set to a numeric IP address that will resolve
IP names into IP numbers.  And finally, the gateway line should be set
to the address of your Internet gateway.

If gateways and netmasks are Greek to you, don't worry. As I've said 
before, your network administrator should be able to fill in the
information for you. It's really not as complicated as it might seem.

The WATTCP.CFG file needs to be in the same directory as the PCFSP
executables.  You can, however, put the executables and WATTCP.CFG in 
a directory in your DOS path. As long as WATTCP.CFG is in the same
directory as the executables, PCFSP should be able to run properly.

Once you have WATTCP.CFG filled in, run the SETFSP batch file. This
file sets the FSP_HOST and FSP_PORT environment variables to usable
defaults. Now run FVER. If your WATTCP.CFG is set properly, then
FVER should first print "[SEISMO.SOAR.CS.CMU.EDU : 21]".  If it
does not, there is either something wrong in your WATTCP.CFG file
or the Waterloo TCP/IP library used in PCFSP is incompatible with
your network configuration.  Double check your WATTCP.CFG, then try
again. If FVER still doesn't work, contact me at the email address at
the top of the file.

If everything has worked so far, FVER should have printed
"[SEISMO.SOAR.CS.CMU.EDU : 21]".  Next it should print the FSP version
information for the seismo site.  If FVER does not print the version
information, then the seismo site may be down.  Refer to the section on
changing FSP sites and the site list at the end of this document.
Set FSP_HOST and FSP_PORT to a site other than seismo and run FVER
again.  If _that_ site doesn't respond correctly, keep trying the
other sites in the list.  If none of the sites respond, as above, 
contact me at the email address at the top of file.

If FVER responded properly, then your configuration should be
finished.  All other FSP commands should work without any other
tweaking.



IV. Changing FSP Sites
----------------------

Like its UNIX predecessor, PCFSP uses two environment variables to
specify the FSP server you are interacting with.  The FSP_HOST
variable contains the IP number or name of the site and the FSP_PORT
variable contains the FSP port number.  As a start, some name and
port pairs are included at the end of this document.

FSP_HOST and FSP_PORT must be defined for any PCFSP command to work.
The SETFSP batch file is a convenient way of doing this.

When you want to change sites, merely change the settings of FSP_HOST
and FSP_PORT at the DOS prompt like this:

C:\>set fsp_host=alpha.gnu.ai.mit.edu
C:\>set fsp_port=21

That's all there is to it.

Whenever you change sites be aware of the fact that the site you want
to access might be down.  I recommend that whenever you change sites
that you either run "FVER" or "FCD /" to verify that the site will
respond.  

Also be aware that changing sites does not reset the FSP_DIR. This is
another good reason to do an "FCD /" right after you change sites.



V. PCFSP Command Set
--------------------

Below is a description of each PCFSP command.  The format is as
follows:

COMMAND [-switches] RequiredParamter [OptionalParameter]

where 

COMMAND is the name of the PCFSP executable (.EXE) file

[-switches] are optional command line switches that modify the behavior 
of the command. Switches are combinable so "FLS -l -a" is equivalent to
"FLS -la"

RequiredParameter is a paramter that must be specified.  For example,
file1 must be specified when using the FCAT command.

[Optional Paramter] is a paramter that may be specified only if
necessary.  Usually optional paramters come in the form of multiple
paths, files, or directories.  For example, if you wanted to list
the contents of more than one directory you could "FLS dir1 dir2"
instead of "FLS dir1", then "FLS dir2"

The three paramter types:

   A file is an actual file and not a directory. FCAT paramters, for 
   example, must be files since you cannot literally view a directory
   as you could a text file.

   A directory is an actual directory and not a file. Dot (.) is the
   current directory, dot-dot (..) is parent directory, and forward
   slash (/) is the root directory.

   A path may either be a file or a directory. You can, for example,
   perform FLS operations on both files and directories.

All FSP commands can be cleanly exited by pressing Ctrl-C,
Ctrl-Break, or ESC.

Setting the FSP_TRACE environment variable will cause all PCFSP
commands to print hash marks as operation progresses. The SETFSP
batch file will do this for you.


FCAT file1 [file2] ... [fileN]

FCAT is similar to the DOS TYPE command.  It reads text files from the
server machine and then displays them on your screen.  The files are
not saved on your machine as they would be during an FGET.



FCD [directory]

If no path is specified, FCD prints the current working directory on
the server machine. If a path is specified, FCD attempts to change into
that directory.  FCD works similarly to the DOS CD command with the
notable exception that the slash convention is reversed.  In DOS you
use a backslash (\) to specify the root and to separate directories.
FSP, however, adheres to the UNIX convention of the forward slash ('/').



FGET [-oprs?] file1 [file2] ... [fileN]

FGET attempts to retrieve files from the server machine. The * and ?
wildcards are expanded.

During the course of PCFSP use you are certain to run into UNIX long
filenames: files that do not meet the DOS limitation of 8 characters,
a dot (.), and a 3 character extension.  FGET attempts to "fix" long
filenames into valid, unique DOS filenames.  For example if you were
to "FGET Long.File.Name.1 Long.File.Name.2", FGET would create 2
unique files instead of merely overwriting the first file with the
second.

Also be aware of the fact that UNIX filenames are case sensitive, so 
READ.ME, Read.Me, and read.me are all different files.

FGET has four, mutually exclusive command line switches that modify
its behavior when it detects that it might overwrite a file that
already exists on your harddrive.

   -o Overwrite the file that already exists 

   -p Prompt on each file whether to overwrite, rename, or skip the
      file

   -r Attempt to rename the file to a unique filename to preserve the
      file that already exist but still get file from the server

   -s Skip the file without overwriting the file that already exists

   -? Prints the FGET usage message



FLS [-1ACFLRacdfgiklqrstu?] [path1] [path2] ... [pathN]

FLS lists the contents of directories in the same way as the UNIX ls 
command.  If you are not a UNIX user, ls is an ancestor of the DOS DIR 
command.  If you do not specify a path, FLS lists the contents of the 
current directory.  By default FLS displays only the names of files
in the directory and sorts them alphabetically.  You can modify FLS's
behavior using the following command line switches.

   -1 List one entry per line

   -A List all entries beginning with a period (.) except for . and ..

   -C Force multicolumn output with entries sorted down the columns

   -Dxx/yy/zz Display only files that were last modified on or after
      the date specified in month/day/year format

   -F Mark directories with a trailing /, sockets with a trailing =, 
      symbolic links with a trailing @, and executable files with a 
      trailing *

   -L For symbolic links, list the file or directory the link 
      references rather than the link itself

   -R Recursively list subdirectories encountered

   -a List all entries; by default, entries whose names begin with a
      period (.) are usually not listed (see -A)

   -c Use time of last file status change for sorting or printing

   -d List only the name (not the contents) of directory arguments.
      Often used with -l to get the status of a directory

   -f Turns off entry sorting

   -g Include the group ownership of the file in a long output

   -i Include the i-number of each file in the first column of the 
      report

   -k Print file sizes in kilobyte blocks

   -l List in long format, giving mode, number of links, owner, size 
      in bytes, and time of last modification for each file (see -u).
      For symbolic links, the pathname of the linked-to file is 
      preceded by "->"

   -q Print nongraphic characters in file names as the character '?'

   -r Reverse the order of sort to get reverse alphabetic or oldest 
      first as appropriate

   -s Give the size of the disk blocks (in kilobytes rounded up to 
      the nearest kilobyte) allocated for each file. This number 
      depends, in part, on the block size of the disk partition the 
      file resides on

   -t Sort by time modified (latest first) instead of by name

   -u Use time of last access instead of last modification for 
      sorting (with the -t option) and printing (with the -l option)

   -? Prints an abbreviated usage message



FMKDIR directory1 [directory2] ... [directoryN]

FMKDIR attempts to create the specified directories.

Be aware that you may not have rights to create directories on server 
machines.



FPRO [+c] [-c] [+d] [-d] [directory1] [directory2] ... [directoryN]

FPRO without the +/-c or +/-d arguments displays the directory
protection mode of each path.  You can modify each path's directory
protection mode with the following switches:

   +c give others permission to create new items
   -c deny others permission to create new items
   +d give others permission to delete old items
   -d deny others permission to delete old items



FPUT file1 [file2] ... [fileN]

FPUT attempts to upload the specified file(s) to the server machine. 
The * and ? wildcards are expanded as necessary.



FRM file1 [file2] ... [fileN]

FRM attempts to delete the specified file(s). The * and ? wildcards
are expanded as necessary.

Be aware that you may not have rights to delete files on server
machines.



FRMDIR directory1 [directory2] ... [directoryN]

FRMDIR attempts to delete the specified directories.

Be aware that you may not have rights to delete certain directories 
on server machines.



FVER

With no parameters, FVER returns the server's FSP version information. 
If specify any parameters, FVER prints the PCFSP version information.



V. Additional PCFSP features
----------------------------

FSP_TRACE 

Setting this variable will cause PCFSP commands to print hash marks
periodically during the course of operation so you know that the
operation is proceeding. The marks, the letters 'R', 'I', and 'E', each
have a certain meaning. 'R' is printed the first time the client
listens for a response from the server. An 'I' is printed for each
listen after the first.  E means an error has occured and PCFSP will
retry the last operation. You can set (enable) tracing or unset
(disable) tracing with the following commands.

C:\>set fsp_trace=1   (to enable)
C:\>set fsp_trace=    (to disable)



FSP_LOG

Setting this variable to a filename will cause FGET to log all
transactions it makes. You can set (enable) tracing or unset
(disable) tracing with the following commands.

C:\>set fsp_log=c:\fsp\fsp.log      (to enable)
C:\>set fsp_log=                    (to disable)



VI. FSP Site List
-----------------

This list is by no means complete. It was merely culled from the
alt.comp.fsp Frequently Asked Questions (FAQ) file.

   There is a list, maintained by <archive-admin@Germany.EU.net>,
   which you can get hold of by fsp from ftp.Germany.EU.net (port
   2001):/pub/lists/fsp-servers.  Various other people produce
   lists as well: have a look around!

   You are encouraged to post site information to alt.comp.fsp, and
   if you post in the format below, most people will be able to
   slurp your list straight into their front-end programs.  There's
   an unofficial standard for the format, which you can find on taxus
   in the file "fsplist.std".

   In the meantime, here's a list to get you going.

   128.52.46.11      21   alpha        # GNU Alpha releases
   131.231.19.21     21   genie        # small UK site
   192.76.144.75   2001   germany      # big German archive
   131.215.131.148   21   mosaic       # BSD386/Usenet
   128.2.206.138     30   seismo       # main FSP code site
   146.169.2.1       21   src          # big UK site
   129.177.30.10   9000   taxus        # fspadm, fsp-shell tools
   131.155.2.71      21   terra        # big Netherlands site
   18.172.1.2        21   tsx          # linux
   fsp.warwick.ac.uk 21   warwick      # Computer Underground Digest
   128.252.135.4     21   wuarchive    # WUStL archive site



VII. PCFSP and 4DOS
-------------------

4DOS is a wonderful COMMAND.COM replacement that implements several
features that generic MS-DOS does not such as command aliasing and
scrollback.  The FGET command automatically detects if you are using
4DOS. If you are, FGET creates an entry in the DESCRIPT.ION file for
each file that you get. The entry contains the original long filename
before FGET converted it into a DOS compatible filename.

If you take a look at the provided SETFSP.BAT there are few ALIAS
commands REM'd out. If you are using 4DOS I highly recommend removing
the REMs and using the aliases. I find they are very handy.



VIII. End Notes
---------------

Hopefully this document has given you enough information to configure
and use PCFSP without too much fuss.  If you run into problems or
bugs or have questions or comments, don't hesitate to email me at the
address at the top of the file.  In the future I'd like to distribute
a troubleshooting guide, so if you run into a problem and then solve
it, let me know so I can include your solution.

There are two discussion groups at present for FSP.  The first is the
alt.comp.fsp Usenet newsgroup and the second is an Internet mailing
list which can be subscribed to by sending mail to
listserv@germany.eu.net.

If you have any ideas or bug reports for PCFSP, drop me a line.  All 
suggestions are appreciated.

Finally, many thanks to Keith Grimes for all the testing and coding
he has done to PCFSP. Many of features were conceived and/or implemented 
by him.



IX. Legal Stuff
----------------

PCFSP is provided as is and without warranty. The author is not
liable for any damage occuring from usage of this software.

The PCFSP software package is Copyright 1993 by Lindsey Smith.

