home *** CD-ROM | disk | FTP | other *** search
/ Garbo / Garbo.cdr / pc / doc_net / nettrans.lzh / nettrans.txt
Text File  |  1990-04-25  |  27KB  |  601 lines

  1.  
  2.               A SHORT GUIDE TO NETWORKING AND FILE TRANSMISSION
  3.                            Erich Neuwirth
  4.                  Institute of Statistics and Computer Science
  5.                          University of Vienna
  6.                                Austria
  7.                       (A4422DAB@AWIUNI11.BITNET)
  8.  
  9.  
  10. GENERAL PRINCIPLES OF SENDING FILES IN ELECTRONIC NETWORKS
  11.  
  12. Networking is mainly used in 2 ways:
  13.  
  14.       Electronic mail
  15.       Sending (binary) files
  16.  
  17. This paper tries to explain what some of the differences are and how
  18. one of the two transmission methods sometimes can be (mis)used for
  19. tasks which seem to belong to the other method.
  20.  
  21. Electronic Mail
  22.  
  23. Electronic mail means you are sending text from one computer site to
  24. another site.  Letters of text are coded as numbers internally within
  25. computers.  Problems arise from the fact that the same letter may be
  26. represented by different numbers on different computer systems and vice
  27. versa the same number may yield a different letter on different computer
  28. systems.  Mostly we are concerned with two such representation systems
  29. for letters by numbers.
  30.  
  31.      ASCII (which is used on IBM-compatible PCs and on most non-IBM
  32.             mainframe computers)
  33.      EBCDIC (which is used on IBM (and compatible) mainframe computers)
  34.  
  35. When you are sending text from one computer to another computer the
  36. computers "think" they only are sending numbers.  People reading or
  37. writing text, on the other hand, expect characters, so some
  38. interpretation of the numbers producing the text must take place.  Simply
  39. transferring the text file as a sequence of numbers (which is what it
  40. looks like to the computers involved) would result in an unreadable file
  41. on the receiving computer system.  Therefore when using computers with
  42. different character representation systems the transmission usually
  43. involves a "translation process" which has the net effect of yielding a
  44. different "sequence of numbers" (= file)  on the receiving machine, but
  45. this file usually gives the same letters when read as a text file.
  46. Usually these translation processes work quite well for letters
  47. (lowercase and uppercase) and digits.  Quite often you will encounter
  48. problems with special characters like parentheses, brackets, tildes,
  49. carets and so on.  If you are interested in merely transferring texts
  50. this is not much of a problem, because even if some special characters
  51. get scrambled it is usually not too hard to reconstruct the original
  52. text by normal editing.  If you are setting up a new communications link
  53. it is a good idea to send a file containing all printable characters
  54. with descriptions and to test if they arrive at the other end as they
  55. should.  At the end of this paper you will find an example of how such a
  56. test file could look.  Of course such a file should be sent from both
  57. ends of the line because the scrambling process in many cases is
  58. asymmetrical, so different transpositions happen in the two different
  59. communication directions.  Closely inspecting the file you receive will
  60. show you which characters are changed during the transmission process.
  61.  
  62. Now three different events can happen:
  63.  
  64. 1) You receive all the characters as they should be:
  65.  
  66.    Action: Don't worry, be happy
  67.  
  68. 2) Some characters are not what they should be, but different characters
  69.    still are different (even when not identical with their original)
  70.  
  71.    Action: Do worry, but not too much.  In this case you can use the FIND
  72.    and REPLACE function of your text editing program to restore the
  73.    original meaning of the file.  You even could program a macro in your
  74.    text editor (if you don't know what that means just ignore this
  75.    sentence) which automatically performs the "retranslation" process.
  76.  
  77. 3) Some characters are scrambled and different characters in the source
  78.    text file come out as identical characters at the receiving end.
  79.  
  80.    Action: Do worry, because this is the worst possible situation.  It is
  81.    not possible to construct an automatic "retranslation" process.  As
  82.    long as you are only concerned with text you will not have too many
  83.    problems, because letters, digits, commas and periods usually are not
  84.    scrambled when sent between different computer systems.  If these
  85.    characters also are scrambled the transmission process does not
  86.    deserve the name "communication process" any more and you should talk
  87.    to the technical people in charge of the transmission channel to take
  88.    care of these problems.
  89.  
  90. Things become more difficult when you want to send data files or program
  91. source files.  Files of this kind usually contain special characters
  92. like parentheses and to reconstruct the original text of the file you
  93. usually have to edit the file you received by hand and to infer from the
  94. context the original meaning of a recognizably incorrect character.
  95.  
  96. The automatic file transfer usually takes place between mainframe
  97. computers.  So the most simple situation with text file transfer is that
  98. you use the editor on your mainframe computer to create your text and
  99. then you use the mailing program on the mainframe to send the text file
  100. (sometimes called e-mail or note) to its destination.  At the
  101. destination site the receiver then can receive the file and read it with
  102. the help of the text editor program on the receiving mainframe computer.
  103.  
  104. Sometimes the situation is more difficult.  The file you want to send
  105. may exist on your PC, but not yet on the mainframe which is your
  106. entrance to the international computer networks.
  107.  
  108. There is an important detail you have to take care of here.
  109. Usually you can write texts on a PC using two different kinds of
  110. programs to write with:
  111.        Text editor programs or
  112.        word processing programs
  113.  
  114. Text files produced by text editing programs usually give no problems
  115. when you try to send them over a network.  With most word processor files
  116. you will experience difficulties.  But most word processing programs have
  117. a special way of saving your text as a "plain ASCII file".  Remember to
  118. save your texts with this option if you intend to send them over
  119. networks.  And if you are still considering which word processing program
  120. you should select for your personal use, only select a program which
  121. offers this option.  If you do not know yourself how to verify the
  122. existence of such an option ask somebody more experienced than you to
  123. help you to find out.
  124.  
  125. Now you have to find a way to transfer the file from your PC to your
  126. mainframe computer.  For this purpose you need a file transfer program on
  127. the PC and on the mainframe.  Different varieties of programs of this
  128. kind exist, but the prevalent program in an academic environment at the
  129. moment is KERMIT.  To use KERMIT to transfer files you need the version of
  130. KERMIT for your PC and an installed version of KERMIT on the mainframe.
  131. The mainframe KERMIT is not your responsibility, you just have to
  132. find out from the staff of your computing center if they already have
  133. installed this program.  If they have not done so yet you should tell them
  134. to do so because KERMIT is one of the very few hardware independent
  135. standards and it should be supported.  Additionally, all KERMIT versions
  136. are in the Public Domain, so they do NOT COST MONEY.  Your local
  137. computing center also should help you to find the version of KERMIT you
  138. need for your PC.
  139.  
  140. KERMIT is a program used for 2 purposes; namely for using your PC as a
  141. terminal to your mainframe computer and for transferring files between
  142. these two systems.
  143.  
  144. Now things start to be complicated (even more complicated? I hear you
  145. complain!).
  146.  
  147. In this paper we will not deal with using KERMIT as a terminal emulator.
  148. There are many ways to do this and it mainly depends on which kind of
  149. mainframe you are using.  You should try to get some help from the people
  150. from you local computing center who can show you exactly how to use
  151. KERMIT for this purpose.
  152.  
  153. An additional remark: If you only want to use KERMIT as a "terminal
  154. emulator", which means using your PC as a terminal, you do not need
  155. KERMIT on the mainframe computer you are connecting to.  The mainframe
  156. version is only needed for file transfer between the mainframe and your
  157. PC.
  158.  
  159. Now things become really complicated!  The PC KERMIT has only one way of
  160. transferring files.  But the mainframe version usually has two ways
  161. (called "modes" by computer scientists).  One way is text mode, the other
  162. way is binary mode.  Text mode is used to transfer text files.  E-mail
  163. consists of text files so it is this mode you need for downloading e-
  164. mail from your mainframe to your PC.  Usually you need not care too
  165. much because practically all mainframe versions of KERMIT use text mode
  166. for file transfer if not told otherwise explicitly.
  167.  
  168. So simply transferring a text file from your PC to the PC of somebody
  169. else you want to send it to can be done using the following steps:
  170.  
  171. 1) Upload the text file from your PC to your mainframe with KERMIT in
  172.    text mode
  173.  
  174. 2) Use the mail facilities of your mainframe to send the text file as
  175.    mail to the intended receiver
  176.  
  177. 3) The receiver finally has to download this mail file (it still is
  178.    text) with KERMIT in text mode to his/her PC
  179.  
  180. In most cases the received file is identical with the original file.
  181. Letters and digits arrive as they should.
  182.  
  183. The idea behind text mode of KERMIT is that the meaning of characters is
  184. preserved, so when transferring in text mode KERMIT automatically
  185. adjusts for different systems of character representations on the
  186. mainframe and on the PC.
  187.  
  188. You might find that some of the special characters do not arrive as they
  189. should, but this usually is no problem when the text is only intended
  190. for reading and not as input to some computer program.
  191.  
  192. Later we will see what you can do if you have to send a text file
  193. containing special characters and want to make sure that these
  194. characters arrive unchanged.
  195.  
  196.  
  197.  
  198. TRANSFERRING NON-TEXT FILES
  199.  
  200. It is becoming even more difficult in this section, but if you want to
  201. send programs and data files usable on other machines it is important
  202. that you understand this section.
  203.  
  204. Networks can also be used to send PC programs over the network.  If you
  205. want to send a program to somebody with the same kind of PC you have, the
  206. basic procedure is very much like the procedure for transferring text
  207. files from your PC via the network to somebody else's PC.
  208.  
  209. The steps involved are:
  210.     Uploading to a mainframe
  211.     Using the sending facilities of the network
  212.     Downloading from the target mainframe to the target PC
  213.  
  214. The difficulties arising with program files are that programs contain
  215. more different symbols than text files.  They especially contain lots of
  216. so called "nonprintable" characters.  You can see this if you try to
  217. look at your program file with a text editor program or a word
  218. processing program.
  219.  
  220. The simplest solution to transferring program files and like things
  221. (called binary files in computer terminology) is to use the binary
  222. transfer mode of your mainframe KERMIT to upload the program to your
  223. mainframe.  Binary mode means that no translation whatsoever takes place
  224. while sending the file (remember, sending text files often involves a
  225. translation process).  Now you can use the facilities of your mainframe
  226. for sending files over the network.  Sending a file is not the same as
  227. sending a text as mail.  Mailing implies that your text is put into the
  228. electronic equivalent of an envelope.  Sending a files does not add the
  229. envelope, so the file being sent is (almost) identical with what you
  230. have on your PC.  The receiver then can download the file to his/her PC
  231. also using the binary transfer mode of his/her mainframe KERMIT and the
  232. PC version of KERMIT.
  233.  
  234. This file transfer quite often does not work.  Some reasons may be: the
  235. two mainframes involved come from different manufacturers, some
  236. intermediate mainframe makes problems or the file is passing through
  237. different networks.  One situation where it makes sense to try this way
  238. of sending binaries is when both mainframes are members of the EARN,
  239. BITNET or NETNORTH networks.  It usually does not work when the
  240. mainframes belong to different networks like EARN and JANET.
  241.  
  242. Now what can we do when we want to send a program or a data file from
  243. an EARN site to a JANET site?
  244.  
  245. The main idea is translating your binary file (the one you cannot read
  246. because it contains nonprintable characters) into a file consisting only
  247. of printable characters.  The most popular scheme for doing such a
  248. translation is the UUENCODE/UUDECODE process.  It implies 2 programs,
  249. one usually called UUENCODE and the other one UUDECODE.  UUENCODE takes
  250. a binary file and converts it into a file consisting only of printable
  251. characters.  UUDECODE reverses this process and restores the original
  252. binary files from the encoded file.  So what do you need these programs
  253. for?
  254.  
  255. You UUENCODE the binary file and upload it to your mainframe (using the
  256. text mode of your mainframe KERMIT).  Since it consists of printable
  257. characters only, you can incorporate it into a mail file you send.  This
  258. mail file hopefully arrives at its destination and the receiver can
  259. download the mail from his/her mainframe to the local PC.  Then it is
  260. mandatory to remove the "electronic envelope" from the mail file.  An
  261. appendix will describe how an UUENCODEd file looks and how to recognize
  262. the parts forming the "envelope".  Then the UUDECODE program can be used
  263. to translate the UUENCODEd version of the file back into its binary
  264. version.
  265.  
  266. If you want to use this process you have to get hold of a copy of the
  267. UUENCODE and UUDECODE program.  It is not possible (at least not in an
  268. easy way) to send this programs over networks if you have no experience
  269. with encoding and decoding binary files.  These programs are binary files
  270. themselves and we cannot send unencoded binary files.  So we would need
  271. the binary files already to translate the encoded versions into the
  272. binary version.  It is a "who is first, the hen or the egg" kind of
  273. situation.  There are ways of solving these problems, but the solutions
  274. involve a nontrivial amount of technical knowledge and also depend very
  275. much on the circumstances of the PCs and mainframes involved.
  276.  
  277. (For the more technically inclined: we could send the source files of
  278. the translation programs as text files, but then we have to be sure that
  279. the recipient has a compiler for the programming language we are using.)
  280.  
  281. So quite often the easiest way of setting up an environment where file
  282. transfer is possible involves sending a disk with the UUNCODE/UUDECODE
  283. programs to the sites involved.  Once the programs are available file
  284. transfer can start.
  285.  
  286. Now let us look what an UUENCODED file looks like:
  287.  
  288. ------- the file starts directly below this line ------------
  289. begin 644 erich.com
  290. MZV>0("`@("`@("`@("`@("`@4V\@>6]U(&UA;F%G960@=&\@555$14-/1$4@
  291. M=&AE('1E<W0@9FEL92X-"B`@("`@("`@("`@("`@("`@("`@("`@0V]N9W)A
  292. ;='5L871I;VYS(2$-"B0:N@,!M`G-(;@`3,TA
  293. `
  294. end
  295. ------ the UUENCODED file ended just above this line -------
  296.  
  297. The first line always contains the word 'begin' starting in the first
  298. column.  The next item is a number which you can safely ignore and the
  299. last item is the name of the UUENCODEd file.  The last line of the
  300. encoded file consists of the word "end" starting in the first column and
  301. nothing else.  Some encoding programs add a line containing size
  302. information about the encoded file, but this is not really necessary.
  303. If you use the UUENCODing program on your PC the encoded version of the
  304. file usually has the same first part of the file name as the file being
  305. encoded and the file extension .UUE So encoding a program ERICH.COM
  306. would produce a file ERICH.UUE .  This file ERICH.UUE is the one that
  307. should be uploaded and sent using the mail facilities of the network.
  308. At the receiving site the mail file sent can be downloaded to the PC.
  309.  
  310. The downloaded file usually looks similar to the following example:
  311.  
  312. ---------------- this line is not part of the file -----------
  313. Date: Sat 14 Jan 89 06:51:59-EST
  314. >From: John R.  Somebody <SOMEBODY@SOMESITE>
  315. Subject: File transfer demonstration
  316. To: The catcher in the rye <CATCHRYE@MYSITE>
  317.  
  318. begin 644 erich.com
  319. MZV>0("`@("`@("`@("`@("`@4V\@>6]U(&UA;F%G960@=&\@555$14-/1$4@
  320. M=&AE('1E<W0@9FEL92X-"B`@("`@("`@("`@("`@("`@("`@("`@0V]N9W)A
  321. ;='5L871I;VYS(2$-"B0:N@,!M`G-(;@`3,TA
  322. `
  323. end
  324.  
  325.   John R.  Somebody   1/14/89
  326.   SOMEBODY@SOMESITE   CATCHRYE@MYSITE    1/14/89 file transfer demonstration
  327.  
  328. --------- this line does not belong to the file any more ---
  329.  
  330. >From this example it should be easy to see what the next step is:  Every
  331. line above the "begin" line and every line below the "end" line has to be
  332. removed.  The remaining file the can be decoded using UUDECODE.  If no
  333. additional problems occurred the decoded program is identical with the
  334. binary program the sender wanted to send.  Now for possible
  335. difficulties:  UUENCODEd files contain special characters like brackets.
  336. Now when you are reading a text file you usually can recognize the
  337. intended special character even if it has been changed in a file
  338. transfer process.  But it is not possible to recognize changed
  339. characters in an UUENCODEd file.  So you have to find out if all the
  340. characters arrived unchanged.  For this you can use the method described
  341. at the beginning of this paper, namely sending a file with all
  342. characters together with a verbal description of the characters.  All
  343. remarks from the earlier part of the paper apply.  Inspecting such a file
  344. closely might help you to find out which characters were changed and
  345. into what and with luck you can reverse this exchange process.  The main
  346. problem with the UU scheme is that the set of characters being used
  347. contains special characters.  So a variant of this method has been
  348. devised.  It is call the XXENCODE/XXDECODE process.  Essentially it
  349. functions like UUENCODE/UUDECODE, but the encoded file only contains
  350. letters, digits, and the plus and the minus sign.  The advantage is that
  351. these characters usually are not changed when passed through different
  352. computers, so chances are higher that such a file will arrive unchanged.
  353. As with UUENCODE/UUDECODE you need the programs before you can start
  354. transmission of binary files.  The XX scheme is relatively new, so
  355. usually it is easier to find programs for the UU scheme than for the XX
  356. scheme.
  357.  
  358. It is important to be aware of the fact that UUENCODEd and XXENCODEd
  359. files are more than 30 percent larger than the original file.  This is
  360. the price we have to pay for better transportability.
  361.  
  362. There is one more important concept you should be aware of when
  363. transferring more than one file at a time and/or transferring big files.
  364. It is the concept of an archive.  An archive essentially in one file
  365. created by pasting together and compressing one or more files.  Usually
  366. when transferring a few files you use an archiving program which creates
  367. just one file out of a few files.  This archived file also is smaller
  368. than all the "source" files together.  In the archiving process you need
  369. two programs: the archiving program creating the archive and the
  370. dearchiving program reconstructing the original files.  The advantages of
  371. using archives are:
  372.  
  373. 1) It is impossible to forget a file belonging to a set of files when
  374.    transferring copies of an archive
  375.  
  376. 2) The amount of data to be transferred is smaller and therefore uses
  377.    less disk space and less connect time for transferring them
  378.    electronically.
  379.  
  380. So if you want to send a few files belonging together it is quite common
  381. to create an archive, then to send the archive and then have the
  382. recipient reconstruct the original files by archiving.  When you receive
  383. a file with file name extension ARC it is highly probable that it is an
  384. archive file.  In this case the extension ARC denotes a special
  385. archiving (= pasting together and compressing) scheme.  There is a new
  386. scheme around now which usually can be recognized by the file name
  387. extension ZIP.  The 2 programs needed to be able to work with the ZIP
  388. scheme are PKZIP and PKUNZIP.
  389.  
  390. Let us look at an example of how to use this set of programs.
  391. Let us assume we want to send 3 file named FILEA.TXT, FILEB.DTA and
  392. FILEC.COM.
  393.  
  394. If we execute the command line
  395.  
  396. PKZIP ARCHIVE FILEA.TXT FILEB.DTA FILEC.COM
  397.  
  398. PKZIP will create a file ARCHIVE.ZIP.  This file is our archive and
  399. contains all 3 "source" files in a condensed form.
  400.  
  401. To reconstruct the original files we execute the command line
  402.  
  403. PKUNZIP ARCHIVE
  404.  
  405. which will create the 3 original file FILEA.TXT, FILEB.DTA and
  406. FILEC.COM.
  407.  
  408. There are different programs around for the ARC variant of the process.
  409. ARC and ARCX are a pair performing essentially the same function as
  410. PKZIP and PKUNZIP, PKARC and PKXARC are another pair.  There also is a
  411. program called LHARC which performs archiving and dearchiving functions
  412. with just one program. The difference is that PKZIP and PKUNZIP use the
  413. ZIP scheme whereas ARC, ARCX, PKARC and PKXARC use the ARC scheme and
  414. LHARC uses the LZH scheme.  All these different schemes are
  415. incompatible.
  416.  
  417. If you want to create an LZH-archive similar to the ZIP archive of
  418. the previous example you can do so with the following command:
  419.  
  420. LHARC A ARCHIVE FILEA.TXT FILEB.DTA FILEC.COM
  421.  
  422. This will create a file ARCHIVE.LZH.
  423.  
  424. Extracting the files from the archive is done with the following
  425. command:
  426.  
  427. LHARC E ARCHIVE
  428.  
  429.  
  430. There is a special variant of archive files, so-called self extracting
  431. archives.  In this special case the archive and the dearchiving program
  432. are pasted together.  The result is an executable file (usually with
  433. extension EXE) which, when executed, reconstructs the original files
  434. contained in the archive.  It is not possible to recognize
  435. self-extracting archives from the file name extension, so you have to be
  436. told that a certain file is a self-extracting archive.
  437.  
  438. So we have met two important concepts:
  439.        Encoding for creating "mailable" files
  440.        Archiving for creating smaller files
  441.  
  442. It is quite common to combine these 2 processes.  So if we want to send
  443. a set of files, first we create an archive containing all the files and
  444. then encode this archive.  This hybrid product is sent via E-mail.  The
  445. recipient first decodes the mail file into the archive file and then
  446. dearchives the archive into the original files.  In this way we combine
  447. the advantages of compressing for reducing costs and of encoding to
  448. allow better transportability.
  449.  
  450.  
  451.  
  452.  
  453. APPENDIX A: CHARACTER TABLE
  454.  
  455. Next is a list of all printable characters together with
  456. descriptions:
  457.  
  458.   Characters of the ASCII table
  459.  
  460.        blank
  461.   !    exclamation mark
  462.   "    double quote
  463.   #    number sign
  464.   $    dollar sign
  465.   %    percent sign
  466.   &    ampersand
  467.   '    (closing) single quote
  468.   (    left parenthesis
  469.   )    right parenthesis
  470.   *    star
  471.   +    plus
  472.   ,    comma
  473.   -    minus
  474.   .    period
  475.   /    slash
  476.  
  477.   digits
  478.  
  479.   0123456789
  480.  
  481.   :    colon
  482.   ;    semicolon
  483.   <    less
  484.   =    equal
  485.   >    greater
  486.   ?    question mark
  487.   @    at-sign
  488.  
  489.   uppercase letters
  490.  
  491.   ABCDEFGHIJKLMNOPQRSTUVWXYZ
  492.  
  493.   [   left bracket
  494.   \   backslash
  495.   ]   right bracket
  496.   ^   caret
  497.   _   underscore
  498.   `   left single quote
  499.  
  500.   lowercase letters
  501.  
  502.   abcdefghijklmnopqrstuvwxyz
  503.  
  504.   {    left curly brace
  505.   :    vertical bar
  506.   }    right curly bracket
  507.   ~    tilde
  508.  
  509.   ASCII 127 is nonprintable
  510.  
  511.  
  512.  
  513. APPENDIX B: TECHNICAL DETAILS OF ENCODING AND DECODING
  514.  
  515. The rest of the paper is very technical, so you should read it only if
  516. you have some knowledge of the mathematics underlying the functioning of
  517. computers.
  518.  
  519. How do UUECODE and UUDECODE work?
  520.  
  521. For UUENCODing, the bytes forming the file are grouped in groups of
  522. three.  Every byte is an 8-bit binary number, so every group of three
  523. bytes is a 24-bit binary number.  This number then is split into four
  524. groups of 6 bits each, i.e.  into 4 6-bit binary numbers. The 6-bit binary
  525. numbers give all decimal numbers from 0 to 63.  To every such 6-bit
  526. number 32 (decimal) is added, giving numbers in the range from 32 to 95.
  527. Every number then is replaced by the ASCII character associated with
  528. this value.  (32 becomes  (a blank), 33 becomes !,...  95 becomes _ (an
  529. underscore)).  So the translation process converts each group of 3 bytes
  530. into 4 printable characters.
  531.  
  532. Additionally every group of 45 bytes (giving 60 characters) is grouped
  533. into a line in the file to be sent.  Then a leading character is added to
  534. this line.  The leading character is calculated by using the encoding
  535. scheme we just discussed onto the number of bytes represented by the
  536. line.  (45+32=77, so for a line representing 45 bytes the leading
  537. character is M (M is ASCII character 77)).  Usually the last line is
  538. shorter and therefore the leading character of the last line also is
  539. different from M.  Finally a first line containing "begin", a 3 digit
  540. number (giving access privileges on UNIX systems and meaningless on
  541. other systems) and the name of the original file and a last line
  542. containing the word "end" is added.
  543.  
  544. The decoding program then mainly has to convert each group of 4
  545. characters back into a group of three bytes (using the byte count given
  546. by the first character of each line for consistency checks).
  547.  
  548. There are some problems with this scheme.  We already discussed the
  549. possibility of special characters being scrambled.  Additionally some
  550. "smart" mailing programs assume that trailing blanks always are
  551. unnecessary.  Therefore they strip trailing blanks from every mail file.
  552. If it is only text you want to read you will not notice the difference.
  553. But an UUDECODing program will find out that the lines are too short
  554. (the first character of the line gives information about the line
  555. length!).
  556.  
  557. There are different solutions for this problem.
  558.  
  559. 1) Replace blanks by ` (the single opening quote having ASCII value
  560.    32+64=96)
  561.  
  562. 2) Add an additional nonblank character at the end of each line
  563.  
  564. 3) Make the decoding program smart enough to produce the missing
  565.    blanks by itself.
  566.  
  567. All the solutions are nonstandardized, so if you have some troubles when
  568. decoding you have to analyze them carefully.  Solution number 2 usually
  569. works better than the two other solutions.  So you should try to get an
  570. encoding program adding that additional character.  Using an editor also
  571. makes it possible to transform the different "extended" formats of
  572. UUENCODEd files into one another.
  573.  
  574.  
  575.  
  576. How do XXENCODE and XXDECODE work?
  577.  
  578. XXENCODE uses the same splitting technique as the UU scheme (3 bytes
  579. into 4 6-digit binary numbers).  Then every such number is converted
  580. into a character according to the following sequence:
  581.  
  582. +-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  583.  
  584. So (decimal) 0 becomes +, 1 becomes -, (number) 2 becomes (character) 0,
  585. ....  63 becomes z.
  586.  
  587. The mechanism for adding byte counts to lines is identical to the UU
  588. scheme with the difference the the numbers again are coded according to
  589. the above sequence of letter, digits, + and -.  So it even is possible
  590. to convert UUENCODEd files into XXENCODEd files using the replace
  591. feature of a text editor.
  592.  
  593.  
  594.  
  595. ACKNOWLEDGEMENTS
  596.  
  597. The author wishes to thank Ted Werntz whose comments and suggestions
  598. helped enourmously to improve the paper.
  599.  
  600.  
  601.