[comp.sys.ibm.pc.misc] UUDECODE on PC.

stanley@phoenix.com (John Stanley) (11/15/90)

   I am using the book "UNIX Communications" from the Waite Group as a
reference for the UUCP software I am running (WAFFLE). I have been able
to find a good UUDECODE (and UUENCODE) from another source (UUPC).

   However, I have seen requests on the net, in other groups, about
UUDECODE -- what it does, how to get it, etc. These have usually been
immediately following a post of a UUENCODED file. I have, in the past,
referred these requestors to the book I mentioned, noting that it has the
source for a simple UUDECODE.

   I recently decided to enter the code for this version, and little was
I surprised when it did not work on MS-DOS. I have tried several of the
tricks I know to get normal software to run, but this book version of
UUDECODE still gives wrong results. I use TC, and have tried many
variants of options, memory model, etc.

   Has anyone gotten this code to run on a PC, and could you pass along
the fix? I am most interested in finding what is wrong with this
particular source, but wouldn't mind getting a file that could be mailed
to people when they ask how to UUDECODE that last post.

   Thanks.



<> "Aneth!  That's a charming place!" "You've been to Aneth?" 
<> "Yes, but not yet." -- The Doctor and Seth, "The Horns of Nimon".
><
<> "Sanity check!" "Sorry, we can't accept it, it's from out of state." - me

w8sdz@vela.acs.oakland.edu (Keith Petersen) (11/15/90)

This is from the SIMTEL20 archives.  It's safe to run.  I made it from
David Kirschbaum's UUD19, which is available with complete source code
from SIMTEL20.  This BASIC program includes a checksum on each line so
the recipient can be confident that it was received without error.

Keith
-- 
Keith Petersen
Maintainer of SIMTEL20's MSDOS, MISC & CP/M archives [IP address 26.2.0.74]
Internet: w8sdz@WSMR-SIMTEL20.Army.Mil    or     w8sdz@vela.acs.oakland.edu
Uucp: uunet!wsmr-simtel20.army.mil!w8sdz              BITNET: w8sdz@OAKLAND


100 REM - BASIC PROGRAM TO CREATE UUDECODE.COM (a fast uudecoder)
110 CLS:PRINT "Creating UUDECODE.COM.  See UUDECODE.DOC for instructions."
115 OPEN "UUDECODE.COM" AS #1 LEN = 1
120 FIELD #1, 1 AS A$: CHECKSUM#=0
130 FOR I = 1 TO 47
140  LINESUM#=0: LOCATE 2,3: PRINT "Countdown: "    47 - I ;
150  FOR J = 1 TO 16: READ BYTE$: CHECKSUM#=CHECKSUM#+VAL("&H"+BYTE$)
160   LINESUM#=LINESUM#+VAL("&H"+BYTE$)
170   IF (BYTE < 256) THEN LSET A$=CHR$(VAL("&H"+BYTE$)): PUT #1
180  NEXT J
190  READ LINETOT$: LINECHECK# = VAL("&H"+LINETOT$)
200  IF LINECHECK# = LINESUM# THEN GOTO 220
210  LOCATE 4,2: PRINT "Error in line #"  ;  260 +  10 * I: GOTO 260
220 NEXT I
230 CLOSE: READ FILETOT$ : FILECHECK# = VAL(FILETOT$)
240 IF CHECKSUM# <> FILECHECK# THEN GOTO 260
250 PRINT: PRINT "UUDECODE.COM    created successfully": SYSTEM
260 PRINT: PRINT "UUDECODE.COM    is not valid!": END
270 DATA EB,54,90,49,6E,70,75,74,20,66,69,6C,65,20,65,72,  696
280 DATA 72,6F,72,2E, D, A,4F,75,74,70,75,74,20,66,69,6C,  584
290 DATA 65,20,65,72,72,6F,72,2E, D, A,73,74,61,72,74,20,  542
300 DATA 6E,6F,74,20,66,6F,75,6E,64,2E, D, A,45,6E,64,20,  509
310 DATA 6E,6F,74,20,66,6F,75,6E,64,2E, D, A, 0, 0, 0, 0,  3D2
320 DATA 62, 3,62, 3,12, 3,E8,BC, 1,E8,2D, 1,BF,12, 3,E8,  556
330 DATA AA, 0,AD,3D,62,65,75,F4,AD,3D,67,69,75,EE,AD,3D,  7CB
340 DATA 6E,20,75,E8,BF,12, 3,AC,3A,C4,76,FB,AC,3A,C4,75,  7F9
350 DATA FB,AC,3A,C4,76,FB,3A,C4,74, 4,AA,AC,EB,F8,BA,12,  991
360 DATA  3,33,C9,88, D,B4,3C,CD,21,73, 3,E9,E3, 0,A3,4E,  6A5
370 DATA  1,BF,12, 3,E8,65, 0,AC, A,C0,74,48,BB,20,20,2A,  579
380 DATA C3, A,C0,74,3F,32,E4,8B,E8,B9, 4, 6,AC,8A,E0,AC,  84E
390 DATA 8A,D0,2B,C3,D0,E4,D0,E4,D2,E8, A,C4,AA,4D,74,D4,  A77
400 DATA 8A,E2,AC,8A,D0,2B,C3,D2,E4,D0,E8,D0,E8, A,C4,AA,  AFE
410 DATA 4D,74,C1,8A,E2,AC,2B,C3,8A,CD,D2,E4, A,C4,AA,4D,  95A
420 DATA 75,C7,EB,B0,E8,15, 0,AD,3D,65,6E,75, 5,AC,3C,64,  757
430 DATA 74, 3,E8,AE, 0,E8,61, 0,B4,4C,CD,21,8B,36,50, 1,  656
440 DATA 89,3E,54, 1,BD,50, 0,BF,C2, 2,33,C0,AB,B9,27, 0,  62A
450 DATA B8,20,20,F3,AB,BF,C2, 2,3B,36,52, 1,72, 6,E8,38,  675
460 DATA  0,E8,55, 0,AC,3C,60,75, 4,B0,20,EB, 8,3C, D,74,  57E
470 DATA 1B,3C, A,74,18,AA,4D,75,DF,3B,36,52, 1,72, 3,E8,  559
480 DATA 37, 0,AC,3C, A,75,F2,BF,12, 3,EB,B4,46,89,36,50,  658
490 DATA  1,8B,3E,54, 1,BE,C2, 2,C3,BA,12, 3,8B,CA,87, E,  61D
500 DATA 54, 1,2B,CA,76, A,8B,1E,4E, 1,B4,40,CD,21,72, 1,  517
510 DATA C3,BA,16, 1,B9,14, 0,EB,22,BA,62, 3,B9,9E,FA,8B,  769
520 DATA 1E,4C, 1,B4,3F,CD,21,72, C, B,C0,74, 8,8B,F2, 3,  591
530 DATA C6,A3,52, 1,C3,BA, 3, 1,B9,13, 0,50,E8, A, 0,58,  5A3
540 DATA E9,55,FF,BA,3C, 1,B9,10, 0,BB, 2, 0,B4,40,CD,21,  69C
550 DATA C3,90,54,68,69,73,20,50,72,6F,67,72,61,6D,20,52,  655
560 DATA 65,71,75,69,72,65,73,20,44,4F,53,20,56,65,72,73,  5C4
570 DATA 69,6F,6E,20,32,2E,30,20,6F,72,20,68,69,67,68,65,  51C
580 DATA 72,2E, D, A,24, D, A,49,6E,70,75,74,20,70,61,74,  467
590 DATA 68,2F,66,69,6C,65,3A,20,20,4E,6F,20,61,63,74,69,  52F
600 DATA 6F,6E, D, A,24,B4,30,CD,21,3C, 2,73, C,BA,C2, 2,  525
610 DATA B4, 9,CD,21,B8, 1,4C,CD,21,E8,36, 0,73,23,BA,F5,  701
620 DATA  2,B9,14, 0,BB, 2, 0,B4,40,CD,21,BF,7F, 0,C6, 5,  577
630 DATA 50,8B,D7,B4, A,CD,21,E8,18, 0,73, 5,BA, 9, 3,EB,  687
640 DATA CF,BA,84, 3,B8, 0,3D,CD,21,72, 4,A3,4C, 1,C3,E9,  705
650 DATA 43,FF,BE,80, 0,BF,84, 3,FC,AC, A,C0,74, F,B4,20,  78F
660 DATA AC,3A,C4,76,FB,3A,C4,76, 6,AA,AC,EB,F8,F9,C3,C6,  A50
670 DATA  5, 0,F8,C3,55,55,44,45,43,4F,44,45,20,76,31,2E,  503
680 DATA 39, 0,4F,72,69,67,69,6E,61,6C,6C,79,20,62,79,20,  56E
690 DATA 54,68,65,6F,64,6F,72,65,20,41,2E,20,4B,61,6C,64,  565
700 DATA 69,73, 0,54,68,6F,72,6F,75,67,68,6C,79,20,72,65,  608
710 DATA 68,61,63,6B,65,64,20,62,79,20,44,61,76,69,64,20,  583
720 DATA 50,20,4B,69,72,73,63,68,62,61,75,6D,2C,20,54,6F,  588
730 DATA 61,64,20,48,61,6C,6C, 0, 0, 0, 0, 0, 0, 0, 0, 0,  266
740 DATA 76583



                        UUDECODE.DOC
                by David Kirschbaum, Toad Hall
                  kirsch@arsocomvax.socom.mil

UUDECODE.COM decodes uuencoded files to original binary form.  It is
compatible with the Unix (and other) uuencode/uudecode utilities.

Usage:

          UUDECODE<RETURN>
    Prompts for input file name.

          UUDECODE [d:][\path\]filename.uue
    Produces a uudecoded file, with the filename taken from
    within the uuencoded file (which might include a path).

Notes:

WARNING: UUDECODE does NOT check for existing files, and will gleefully
write over them!  Check first!

UUDECODE will accept an input path\filename up to 80 chars long, and will
prompt if none is specified.

A uudecoded filename is taken from the uuencoded source file and is
written to the current directory (or to the path included in the file
header).

Input files may be any length.

Uuencoded file headers (mailing headers, etc.) need not be removed.
However, any spurious lines between the "begin" and "end" lines MUST
be removed.

Anything beyond the "end" line is ignored.  If no "end" is found, the
output file is saved, but an error message is displayed.

Certain uuencoders append a "checksum" character to the end of each
uuencoded line.  UUDECODE ignores these.

Uuencoded files generated or moved through a Unix system may have LF
(ASCII 10) line endings instead of the DOS-convention CR/LF (ASCII
13/10) endings.  UUDECODE will handle those LF ends of line as well.
You MAY get a "end not found" message, but the uudecoded file will be
intact.

Certain systems and mailers will strip off trailing spaces on lines.
UUDECODE attempts to replace them.

stanley@phoenix.com (John Stanley) (11/16/90)

   Problem has been found in the book version of UUDECODE. Thanks to ralphs
at halcyon for a file with Basic, Pascal, and C source for UUDECODE. It
was browsing this file that pointed out the bug in the book. 

   Also to Keith Peterson for a Basic UUDECODE maker.

   For those who have "UNIX Communications" and want to fix their copies,
the bug is a missing "& 0x3f" after every subtraction of ' '. 

   Again, thanks. 



<> "Aneth!  That's a charming place!" "You've been to Aneth?" 
<> "Yes, but not yet." -- The Doctor and Seth, "The Horns of Nimon".
><
<> "Sanity check!" "Sorry, we can't accept it, it's from out of state." - me

kdq@demott.COM (Kevin D. Quitt) (11/16/90)

    I have C versions of UUENCODE and UUDECODE that work both under UNIX
and MSDOS.  Feel free to email for them.  If I get a number of requests,
I'll post instead.



-- 
 _
Kevin D. Quitt         demott!kdq   kdq@demott.com
DeMott Electronics Co. 14707 Keswick St.   Van Nuys, CA 91405-1266
VOICE (818) 988-4975   FAX (818) 997-1190  MODEM (818) 997-4496 PEP last

                96.37% of all statistics are made up.