[net.micro.atari16] HELP!!!

cbz@mhuxl.UUCP (Craig B. Ziemer) (09/09/86)

Please forgive me for my ignorance, but would some kind net.hacker explain
a few things to me?  I bought a 520st several months ago and have been
using it mostly to help me with graduate work (i.e. word processing, charts,
graphs, etc.).  I have recently acquired a modem to use so I can dial-in
to the systems at work.  I am fairly baffled by all the talk on uuencode,
uudecode, shar files, sources vs. binaries, etc., and I feel like I am
missing out on some great software because I don't know how to down-load
the stuff to my machine.  Would someone please give me some definitions,
procedures, etc. or recommend some other source for this info?  Please
reply via e-mail.  Thanks in advance.


                                                     Craig B. Ziemer
                                                     mhuxl!cbz

fouts@AMES-NAS.ARPA (09/12/86)

Hmm, let me try to simplify the problem.

     Since most of this conversation happens because of the
introduction of Un*x flavored facilities, I will try to explain in Un*x
terms.

     When people produce programs, especially in C, on Un*x systems
they tend to do them in multiple source files, usually with a
'makefile' (command file for the make utility, but make is another
article (:-) which depends on the files having the right names and
being in the right places.

     To mail these files around to other users on the net, the source
files are placed in encapsulated form.  However, simply stacking them
all together in one file leaves the recipient with the problem of
unpacking that file into all of the smaller files.

     So, a format called shar (short for shell archive) was invented,
which is simply to encapsulate each of the files into a huge shell
script (Un*x command file) which the recipient simply feeds to the
shell to get all of the files where they belong.

     To simply the process even further, there are number of public
domain Un*x utilities floating around which will do the packaging for
you.

     A related problem is that some mail systems have an upper limit on
the size of a mail message they will transmit.  This leads to the '1 of
n' mail messages you sometimes see (like the source for uEmacs.)

     The problem with just sending sources is that not everyone will
have the compiler that you used to produce the software.  (I for
instance don't have any C compiler yet, having not figured out which
one to buy (:-()  So some people will send the executable image.

     Since the executable is binary data, any byte in it can have any
of the legal values from 0 to 255 (assume unsigned) but the ASCII
character set is officially only from 0 to 127 and many implementations
will strip off the high order bit when sending data over terminal
lines.

     Also, many mailers have problems with 'nonprinting' (or control)
characters, some of which are treated especially.  The solution to this
problem is to encode binary files such as executable image into various
formats in which the results are all 'printing ascii' characters.

     uuencode and uudecode are opposite ends of this chain.  uuencode
encodes the file (the 'uu' is because they were intended to be used by
uucp on unix systems) and the uudecode decodes them on the other side.

     uuencode also calculates a checksum which uudecode checks. This
gives you some assurance that nothing went wrong with the file (like a
bit getting flipped by a noisey modem) during transmission along the
mail system.

     Another complexity which you didn't mention is how you get the
file from the mail system or buletin board computer to your ST.  There
are two (or more?) competing mechanisms for transfering files, both of
which were designed to get around limitations and problems in using
terminal (RS232) lines to transmit data.

     The first is the *MODEM (for * = x, y, z) family of protocols,
first invented by Ward Christians in the early '70s for use between
microcomputers.  There are public domain XMODEM programs for most
computers, as well as XMODEM facilities included in most 'communication
programs'.  If you want to get files from buletin boards, you'll
probably need XMODEM, since most buletin boards use it.

     The second is KERMIT, a protocol invented at Columbia university,
and placed in the public domain.  Again, there are KERMIT
implementations for most computers, and some of the communications
programs include the KERMIT protocol.

     If you try to get files off of buletin boards you will also
discover that there are alternatives to shar for archiving, to
uuencode/decode for decoding, and all about tools for file compression;
but that's for another discussion (;-)

     Hope this helped more than it hurt.

Marty

----------