[comp.sys.mac.misc] An FTP Primer II: Downloading and Decoding

beausol@milton.u.washington.edu (Raymond Beausoleil) (04/09/91)

As promised, here is the second of a two-part article that I agreed to
write for Optics & Photonics News. Once again, I find myself crashing into
a word-count limit, so those of you with experience in these matters
will notice that I have oversimplified and just outright omitted some things.

If you find any factual errors in the article, then please let me
know ASAP! I am particularly concerned about my references to the
MS-DOS archives.

Again, thanks in advance,

Ray Beausoleil (beausol@u.washington.edu)
----------------------------------------------------------------------

An FTP Primer II: Downloading and Decoding 

Ray Beausoleil
beausol@u.washington.edu

   Last month, in Part I of this article, I briefly described the INTERNET File 
Transfer Protocol (FTP). In particular, I demonstrated how to use the Unix "ftp" 
interface to transfer personal computer software packages from a remote archive 
to your local Unix mainframe or minicomputer. These programs have usually been 
compressed and/or encoded by the archive administrators. This month, I will 
provide a brief introduction to the process of first downloading this software 
to your microcomputer, and then decoding it using special utility programs. 

   The method that you must use to download software from your local mainframe 
computer to your microcomputer depends on the operating system and the software 
installed on the mainframe, and the configuration of your network (e.g., 
Ethernet or modem). You should begin by asking your system administrator for a 
list of information transfer protocols that have been installed at your site and 
the commands that invoke these protocols. Some of the most popular protocols 
include XModem, YModem, ZModem, Kermit, and NCSA Telnet. Paul Kelley has 
described XModem and Kermit in his article "Information transfer for personal 
computers," published in the February 1991 edition of this column.

   In Tables I and II, I have listed freeware and shareware telecommunications 
and utility software packages for the Macintosh and the IBM PC, respectively. 
For Macintosh software, I recommend the archive at sumex-aim.stanford.edu 
(INTERNET address 36.44.0.6), located in the directory /info-mac. ZTerm, an 
excellent shareware telecommunications application program, can be found in the 
directory /info-mac/comm. ZTerm not only uses the XModem and YModem data 
transfer protocols, but also offers one of the best implementations of the 
ZModem protocol for any personal computer. When you are connected through ZTerm 
to a Unix mainframe that uses the ZModem protocol, you may download a file 
simply by entering "sz" followed by a space and the name of the file. ZTerm 
detects that a file is being sent, identifies the file type, and then chooses 
the correct transfer mode! For local systems which have implemented the Kermit 
protocol, the program MacKermit (also available at sumex-aim.stanford.edu in the 
/comm subdirectory) provides a robust Macintosh interface.

   A huge archive of IBM PC software is maintained at wuarchive.wustl.edu 
(INTERNET address 128.252.135.4), in the directory /mirrors/msdos. The most 
popular shareware telecommunications package for the IBM PC, ProComm, may be 
found there in the subdirectory named (oddly enough) /procomm. ProComm uses the 
XModem, YModem, and Kermit transfer protocols, and can also follow the ZModem 
protocol through an external command shell. ProComm has evolved into the 
relatively inexpensive commercial product ProComm Plus.

   As Paul Kelley mentioned in his article, the simplest way to download files 
to your microcomputer is to display the file on your monitor. Both ZTerm and 
Procomm allow you to capture incoming text and write the text to a disk file. As 
described below, you may then decode the files for later use. Almost all of the 
files stored in the large archive of Macintosh software maintained at sumex-
aim.stanford.edu have been encoded as ASCII (text) characters using a format 
known as BinHex 4. These files have names that end with the extension ".hqx", 
and can be captured directly from your monitor after you have transferred them 
to your local Unix host. You may direct a Unix machine to write a ".hqx" file to 
your monitor by entering the command "cat", followed by a space and the name of 
the file to be transferred. However, almost all of the files stored in the IBM 
PC software archive wuarchive.wustl.edu have been stored in binary format. After 
you have transferred one of these files (e.g., "file.arc") to your local Unix 
mainframe or minicomputer, you can use the command "uuencode file.arc file.arc" 
to ASCII-encode "file.arc" and then write it to your monitor. In both cases, you 
must decode the ASCII file on your microcomputer using one of the utility 
programs listed in Tables I and II; since you will not be able to decode these 
utilities themselves until after you have the utilities, you must obtain copies 
of their binary executable files from a colleague or user group.

   A typical binary file can be up to 50% smaller than the corresponding encoded 
ASCII file, and can be transferred to your personal computer in proportionally 
less time. Therefore, if at all possible, you should try to download using the 
binary transfer mode. This is relatively straightforward for IBM PC files 
transferred from the wuarchive.wustl.edu archive and then downloaded to a 
microcomputer using ProComm Plus.

   You may decode BinHex Macintosh files into MacBinary files on your local Unix 
host prior to downloading them using a utility such as "mcvert." You may build 
your own copy of "mcvert" by following these steps: (1) transfer the file 
"mcvert-15.shar" from the "/info-mac/unix" subdirectory at sumex-
aim.stanford.edu using "ftp"; (2) enter "sh mcvert-15.shar" at your local Unix 
prompt, and ignore any error messages caused by the file header; and (3) enter 
"make" at the Unix prompt. This process will create a number of files on your 
directory; you may delete all but "mcvert" itself. Now, to decode any files that 
have the extension ".hqx" (including files that consist of more than one part), 
simply enter "mcvert *.hqx" at the Unix prompt. Your Unix directory will then 
contain files with the extension ".bin", which can be downloaded using the 
MacBinary transfer mode.

   Both the Macintosh and the IBM PC binary files that you have downloaded to 
your personal computer are actually miniature archives that contain one or more 
compressed executable and/or data files. These archives can be easily and 
rapidly expanded using the appropriate utility files listed in Tables I and II. 
(The label "SEA" designates self-extracting archives which will decompress 
themselves automatically upon launching.) On the Macintosh, files obtained from 
sumex-aim.stanford.edu will usually have extensions such as ".sit" (Stuffit 
Classic), ".cpt" (Compact Pro), or ".sea" (Compact Pro self-extracting archive). 
On the IBM PC, files transferred and downloaded from wuarchive.wustl.edu will 
have extensions such as ".ARC" (PKUNPAK.EXE), ".ZIP" (PKUNZIP.EXE), ".LHZ" 
(LHARC.EXE), ".ZOO" (LOOZ210.EXE), or ".EXE" (self-extracting archive or simple 
executable file).

   At first, the downloading and decoding process may seem daunting to you, 
particularly if either the system architecture of your local host is not Unix, 
or the software installed on that system does not follow one of the few examples 
that I have given in this article. Rest assured that others have almost 
certainly solved your problems already; one of your most dependable resources is 
the knowledge of your colleagues. Alternatively, as I mentioned briefly in Part 
I, you may learn more about personal computer telecommunications by subscribing 
to the appropriate INTERNET news groups. If you ask the right people the right 
questions, you might find that while you may not be able stand upon the 
shoulders of giants, you may be able to stand upon their feet.

(I am grateful to John McGarvey, Matt Derstine, Geoff Kinnel, Betsy Richards, 
David Faust, and Geoff Allen for their generous assistance in gathering 
information for this article.)


Table I: Files obtained from sumex-aim.stanford.edu (36.44.0.6) in the
         directory /info-mac

File Name               Location            Description
-----------------------------------------------------------------------
file-types.txt           /help      Brief list of sumex-aim file types
zterm-085.hqx            /comm      ZTerm (X,Y,ZModem; no Kermit)
mackermit-098.hqx        /comm      MacKermit (No X,Y,ZModem)
stuffit-16-part1.hqx     /util      Stuffit Classic w/BinHex 4 (SEA)
stuffit-16-part2.hqx     /util
compact-pro-13.hqx       /util      Compact Pro w/BinHex 4 (SEA)
mcvert-15.shar           /unix      Unix shell archive for mcvert



Table II: Files obtained from wuarchive.wustl.edu (128.252.135.4) in the
          directory /mirrors/msdos

File Name               Location            Description
-----------------------------------------------------------------------
00-files.doc        /starter   Description of wuarchive file types
00-index.txt        /starter   Descriptions of files in /starter
prcm243.arc         /procomm   ProComm shareware communications program
prcm243d.arc        /procomm   ProComm documentation
prcm243d.arc        /procomm   ProComm utilities
pk361.exe           /starter   PKPAK.EXE/PKUNPAK.EXE (SEA)
pkz110eu.exe        /starter   PKZIP.EXE/PKUNZIP.EXE (SEA)
lh113c.exe          /starter   LHARC.EXE (SEA)
looz210.com         /starter   ZOO archive extracter/lister
uudecode.com        /starter   Convert ASCII uuencoded files to binary