[comp.sys.zenith.z100] Fast machine language uudecode for MSDOS

W8SDZ@SIMTEL20.ARMY.MIL (Keith Petersen) (09/06/88)

[---forwarded message---]
 Date: Sunday, 4 September 1988  17:14-MDT
>From: kaldis@topaz.rutgers.edu (Theodore A. Kaldis)
 To:   Keith Petersen <W8SDZ@SIMTEL20.ARMY.MIL>
 Re:   Assembly Language UUDecoder

[UUDECODE.ARC] contains three MS-DOS files: UUDECODE.EXE, which is an
assembly language UUDecoder for MS-DOS; UU.ASM, which is the assembly
source code for it; and UUDECODE.BAS, which is an ASCII BASIC file
that will create UUDECODE.EXE when run.

UUDECODE.EXE is a "packed" .EXE file, packed by the Microsoft utility
EXEPACK.  The original UU.EXE was over 64K long, as it utilizes a 63.75K
input buffer.  The program will take the input filename from the command
tail, or else will prompt the user for one if none is specified.  Paths
are supported up to 40 characters for input filenames.  The output
filename is taken from the .uue file, and is written to the current
directory.  Input files can be any length, and the headers need not be
removed.  However, spurious lines between the 'begin' and 'end' lines
*must* be removed (by "cat infile | sed '/^BEGIN/,/^END/p' > outfile",
on the UNIX side for example, given Rahul's current format).  Anything
beyond the 'end' line is ignored.  If no 'end' is found, the output file
is saved, but an error message is displayed.

Since this program has been written in assembly language, it is
lightning-fast.  Most of the execution time is taken up by disk reads and
writes (at least such is the case on my 12 MHz '286 machine).  When all
the files are on a hard disk, the conversion takes place in just a few
seconds.

UUDECODE.BAS is included for the benefit of those who do not have a
UUDecoder.  This method strikes me as a bit more sensible -- and
certainly more convenient -- than the BASIC UUDecoder that I first used
to UUDecode a "real" UUDecoder.

Finally, this program was written "on the fly", i.e., it was not well-
planned beforehand -- I just sat down at the PC, and started coding.  I
am not aware of any bugs, and you will also notice that the source is not
commented.  I declared a copyright on the source, but all rights are
waived with the exception that the copyright notice not be removed, and
proper credit is given.  Others are free to modify the code, so long as
they give proper credit to the original author.

---------------------------------------

UUDECODE.ARC has been added to the SIMTEL20 archives in directory
PD1:<MSDOS.FILUTL>.

--Keith Petersen
Maintainer of the CP/M and MSDOS archives at SIMTEL20.ARMY.MIL [26.0.0.74]
Arpa: W8SDZ@SIMTEL20.ARMY.MIL
Uucp: {att,decwrl,harvard,ucbvax,uunet,uw-beaver}!simtel20.army.mil!w8sdz