This QUUDCD, which is a fast uudecoder written in assembly language. This program will take one or many uuencoded file[s], and uudecode it[/them] into the original binary file. The initial input file may be entered on the command line, or else the program will prompt the user for it. Any drive or path may be specified for the input file, but only to 80 characters (which should be more than enough). IMPORTANT: If there is more than one portion to the encoded file, they must all be in the same directory, and they must follow a particular naming convention, explained below. The output file will be written to the current logged drive, and this feature cannot be overridden. There are no command line switches. Usage is: QUUDCD [drive][path][filename.ext] For multipart encoded files, this program will search for the next encoded file portion according to these rules: The first uuencoded file may have any DOS-legal name and extension (or even no extension). The second uuunecoded file *MUST* have a '1' as the last character of the filename -- NOT the extension. Or, if the last character of the filename of the first file WAS a number (ANY number -- whether '1' or something else, the last character of the second filename must be one number higher. Subsequent files must have filenames ending in numbers of ascending order. All other filename characters must be the same, and all files must have the same extension. Moreover, this program utilizes a recursive technique to increment filename numbers, and is capable of "rolling around" when the last digit is a '9', and adjusting a higher order digit. It is even able to "extend" a filename, such as from '999.UUE' to '1000.UUE'. It will not, however, extend a filename to more than 8 characters (excluding the extension). Probably, the easiest thing to do is to name multipart files simply by number, such as '1', '2', '3', etc. Here are some examples of filenames that will work: File: Ex. 1: Ex. 2: Ex. 3: Ex.4: Ex. 5: ---- ---------- --------- ----- ---- --------- 1st: abcdef.uue file1.uue 14998 999 rstu9.xxx 2nd: abcde1.uue file2.uue 14999 1000 rst10.xxx 3rd: abcde2.uue file3.uue 15000 1001 rst11.xxx etc. ... ... ... ... ... Here are a couple that won't: File: Ex. 1: Ex. 2: ---- ---------- ---------- 1st: abcdef.uu1 file-a.uue 2nd: abcdef.uu2 file-b.uue 3rd: abcdef.uu3 file-c.uue etc. ... ... This program is an "intelligent" program. It is able to decode uuencoded files of any length (in addition to multiple files, as outlined above), and even to strip out spurious lines in the main body of the encoded portion. Thus, it is possible to concatenate multipart postings to a single file (without removing headers and .signatures), and this program will successfully decode it. Also, the headers and .signatures need not be edited out of individual multipart encoded files. The encoded files may have CRLF line end pairs, or just the single UNIX (tm) LF character. This program has been designed to use large buffers, so as not to cause undue wear and tear on disk drives. It also allocates memory dynamically, and it requires a maximum of slightly more than 64K when decoding large files. If you have limited memory, or a large chunk of memory dedicated to resident applications, you might not have enough memory to run this program. This is version 2.1, which incorporates several improvements suggested by David Kirschenbaum (kirsch@braggvax.ARPA). Also, the 1% of the code that does 99% of the work has been tweaked to make it even faster. Please note that there is a Copyright (C) 1988, 1989 on the program by Theodore A. Kaldis. The program may be distributed freely, without charge. UNIX is a trademark of AT&T
fred1144