Contents

Programs Included:

 Wincode

 Winsort

 Install

 Bonus

Other Info:

 Mailing List

 Copyrights

 Disclaimer


 Wincode

 Introduction

 Features!!!

 Setup

 Configuring and Using

 SMART Decoding

 Errors and Warnings

 Version History

 Updates


Introduction
Wincode: a UUcoder for Windows

(C) Snappy_Inc. (1993,1994)

written by George H. Silva

***PLEASE DISTRIBUTE PROGRAM FREELY WITH ALL FILES INTACT***

Wincode is a Windows 3.1 program which converts 7-bit ASCII (Text) files to  8-bit BINARY (EXE, COM, GIF, etc) files (and vice versa) through a process known as uucoding. This ASCII/BINARY conversion allows you to send and receive  binary files via e-mail or any other ascii-based communications system. It provides a quick and easy way to distribute programs to people all over the world (it takes a few minutes, on average, for e-mail to reach across the world). UUcoding is also a common practice on many Internet NewsGroups in which users wish to exchange binary data. If you spend any time on the Internet, you should own a UUcoder. If you use Windows, then Wincode is for you.

I originally wrote this program for my own needs and released it to the public as  FREEWARE. I did not expect such a positive response to this small utility but have since been encouraged to upgrade and support it. However, I want to make a distinction here: this program is FREEWARE, it is NOT Public Domain. I still retain the Copyright to the source code and to the use and distribution of the program. Please see the Other Info section for further information. I hope others find this program as useful as I do and if so, drop me a line at the address(es) in the Copyrights section.

Wincode is 100% compatible with all standard UUcoders. I have tried to incorporate as many extra features as possible to make the uucoding process painless. The average user may not need/use all of Wincode's features, but hey, they are Free!

So why is such a great program free? Well, I guess I've found enough useful FREEWARE utilities that I figured I'd make one myself. Enjoy.  :-)

I suggest that all users (novice and expert) carefully read this help file. It contains all the information you need (and more) to run Wincode.

Requirements:

 IBM compatible running DOS 3.3 or higher with a 286 or higher processor.

 Windows 3.1 running in standard or enhanced mode with at least 2MB memory. Wincode now supports en/de-coding of files up to 8MB in size.

 About 370K of disk space for all programs.

Files:

 WINCODE.EXE [image] the main executable program

 WINCODE.HLP [image] the HELP file

 README.TXT [image] the introductory text file

 portions of this program are copyright (C) 1991,1993 Borland

 Windows is a trademark of Microsoft Corporation

 GIF is a service mark of CompuServe Incorporated


Wincode Features
Features!!!

 A Full Featured Windows 3.1 Program written in TPW 1.5

 Drag and Drop Encoding/Decoding   - Use your favorite Windows file manager to choose the files you want and drop them on the Wincode window or icon (EASY batch file processing).

 SMART Decoding - supports decoding of single files, multi-part files, single files containing multi-part files, etc. Also incorporates many error-bypass options and the ability to correct improper output filenames when en/de-coding.

 Winsort - an integrated file-sort companion. Winsort will process multi-part containing single files which are disordered. See Supported Formats for more info.

 EMBL File Compatible - you can en/de-code files in the EMBL UUcode format. This is useful for researchers who utilize the EMBL File Server.

 Bytes per File - you can encode into one large file or into several files of any length you chose (for e-mail system that restrict file size) ---  there's even a BYTES-to-LINES-IN-FILE conversion message.

 File and Line Checksums - Wincode will incorporate checksums into the encoded text for monitoring data integrity.

 File name(s) - you can set your own file names for encoded or decoded files as they are being created. Otherwise, Wincode will do all the work for you.

 File Extension(s) - you can set your own extensions for encoded or decoded files. For encode, choose Default and Wincode will do the work. For Decode, you can enter up to twenty (20) custom extensions.

 File Directory(s): - You can set the working directory as well as the encoded and decoded file directories. For coding, you can choose from using the input file directory, using a custom directory per file or setting a fixed directory. You also set a temporary directory for Wincode to use while handling multiple files (the TEMP, ENCODE and DECODE directories can be cleaned from within Wincode).

 File Headers - by default, the program encodes files with headers which include section numbers and a file name --- this option can be turned on/off.

 Multiple/Single File - you can either encode into one large file or many small files of desired length (supports encoding up to 999 file parts).

 Code Type - you can set the code table Wincode will use for either encoding or decoding files. Choose from UUE, XXE or make your own! You also have the option of including these tables in the encoded files.

 File Type - set the Text File Type Wincode will create for encoded files. Choose from MS-DOS, MAC or UNIX.

 Dump Files - You can have Wincode move encoded files that have been decoded to your temporary directory to facilitate deleting.

 Run Decoded Files- you can set Wincode to automatically execute files that have just been decoded.

 Error Checking- allows you to set Error-checking on (for files which decode improperly) or off (to speed up Wincode).

 Create Report File- you can set this to create Report files for both encoding and decoding of files. Report files contain essential file processing information as well as output file error listings.

 The Start As Icon option can be set so that Wincode will start as an Icon when it is first initialized.

 Close When Done - this option can be set so that Wincode will shut down after completing a task.

 Winsort First - this option is used to pass mixed multi-part containing single files to Winsort for pre-processing.

 Multimedia Sound Support - if you have a sound card and have assigned new sounds to your Windows events, Wincode will take advantage of this ability. Otherwise, you will hear a Default beep for important events. Sound Effects can be disabled.

 The Wincode Client Area is now Double-Click 'aware'. Double-Clicking on the specified Mouse button yields the following results: Left = 'File' Menu Popup; Right = 'Options' Menu Popup; and Middle (if exists) = 'Help' Menu Popup.

 Wincode can accept a Command Line parameter when starting. You can now ASSOCIATE (in File Manager) Wincode with an extension (such as UUE) and start Wincode by double-clicking the associated file. Although Wincode IS a single-instance application, if Wincode is running, the file you click on will be automatically passed to the active copy.

 The 'Wincode Package' now includes Snappy Installer. This program insures Wincode is installed/upgraded correctly.

 Feel free to browse the entire HELP file to discover Wincode's full potential. As always, I offer free support.


Wincode Setup
Setting Up Wincode...

Getting started is really simple. First, you need to make sure that your WINDOWS directory is in your PATH statement (standard procedure). Then, use Install to copy the appropriate files to a directory of your choice...I use C:\UTIL\WINCODE...

To make a Wincode Icon:

(1) choose File|New from the PROGRAM Manager menu

(2) select Program Item and hit OK

(3) for Description type in:     Wincode

(4) for Command Line select Browse and highlight WINCODE.EXE or type in  the full path name of where the file is located...i.e. C:\UTIL\WINCODE\WINCODE.EXE

(5) select OK and the Wincode Icon will appear in the group you selected

(6) to run Wincode, double-click on its icon...

To run Wincode from the Windows Command Line:

(1) choose File|Run from the PROGRAM Manager menu

(2) type in the full path of where the program is located...

Wincode starts with its default settings (choose Options|Configuration to see this)...It will create a WINCODE.INI file in your WINDOWS directory as soon as you quit the application...


Configuring and Using Wincode

The following is Wincode's menu-layout. Click on each HIGHLIGHTED menu choice for a detailed explanation of it's function:

File Menu

Encode

Decode

Exit

Options Menu

Encode...

Decode...

Wincode...

Configuration

Reload from Disk

Help

Contents

About


Encode

Choose this to uu-encode a single file. An appropriate FILE OPEN dialog appears which allows you to select a file for encoding. The default start-up directory for selecting files is set with the Options|Wincode  Working Directory menu choice. When you select the file you want, choose OK and Wincode will begin processing the file as specified in your active CONFIGURATION. Encoded files are created in the directory specified under the 'Encode Info' section of the active CONFIGURATION (see below). Encoded-file names are created in the following manner:

 Wincode takes the name of the file being encoded and appends a number (starting with one (1) and going to nine-hundred-ninety-nine (999)).

 If Wincode predicts the input file will be encoded into more than 9 files, it will append '01','02', etc; if Wincode predicts the input file will be encoded into more than 99 files, it will append '001','002', etc; otherwise, it will use '1','2', etc (this allows proper ordering of files in the DOS directory).

 Wincode will truncate the input-file-name so that it does not exceed the DOS eight-character limit.

 If you have the Single File option selected, Wincode will use the entire input file name with the extension you have set for the encoded file.

When Wincode is Encoding a file, it will display an information Window which details the input file name, output file name and the percentage of the input file Wincode has encoded. The main menu will change to display Stop and Quit options.

Due to the way in which Wincode uses Windows' memory, there is an 8MB (8192000 bytes) limit on the size of each file it encodes. If you obtain a memory allocation error and you are sure that you have the required memory (i.e. you have 4 MB RAM and you're encoding a 3 MB file), try setting a larger SwapFile size for Windows. Wincode may be trying to take more 'real' memory than Windows can spare. See your Windows manual for details on creating a larger SwapFile.

NOTE: Since displaying 'Windows' requires System resources, Wincode will work considerably faster in its iconic state.

Encoded File Format:

Single File:

begin mode filename.ext

(ENCODED TEXT GOES HERE)

` (this indicates file termination...)

end

Multi-File:

File1

begin mode filename.ext

(ENCODED TEXT GOES HERE)

File1 ends...

File2

(ENCODED TEXT GOES HERE)

File2 ends...

File(etc)

(ENCODED TEXT GOES HERE)

` (this indicates file termination...)

end

Notes:

1) if applicable, File Headers are inserted at the beginning and end of every file.

2) if applicable, File Checksums are listed immediately following the keyword end as: sum -r/size checksum/filesize.

3) if applicable, a Code Table is also included.

4) ASCII characters used to encode files vary with the Code Type selected.

5) The default encoding mode is 644 (owner:rw-; group:r--; public:r--). See the Mode section for details on changing this value.

See Make EMBL Files for important information regarding differences in Encoded file format.


Decode

Choose this to uu-decode a single (including multi-part) file. An appropriate FILE OPEN dialog appears which allows you to select a file for decoding. The default start-up directory for selecting files is set with the Options|Wincode  Working Directory menu choice. When you select the file you want, choose OK and Wincode will begin processing the file as specified in your active CONFIGURATION. Decoded files are created in the directory specified under the 'Decode Info' section of the active CONFIGURATION (see below).

To decode a multi-part file, select the first file in the series and Wincode will open the rest of the files as it needs them. Wincode interprets multi-part files as such:

 If the input file does not contain the appropriate 'end' message to stop decoding, Wincode will continue reading the file searching for the rest of the encoded text.

 If nothing is found, Wincode checks to see if the input-file name ends with a 'number' (this can be ANY number: filename3270.uue is as valid as filename1.uue, etc). Wincode searches the current directory for the next file in sequence by incrementing the 'number' in the original input file.

 If no file is found, Wincode will prompt you for the next file in sequence.

Wincode will ALWAYS read a file from first-to-last byte. It can decode MULTIPLE files concatenated in a single file: the files can be pieces of a single file or multiple files. The only requirement is that the files be IN ORDER within the input file. However, with Winsort, it is possible to overcome this limitation.

When Wincode is Decoding a file, it will display an information Window which details the input file name, output file name and the percentage of the input file Wincode has scanned through and/or decoded. The main menu will change to display  Stop and Quit options.

Due to the way in which Wincode uses Windows' memory, there is an 8MB (8192000 bytes) limit on the size of each file it decodes. If you obtain a memory allocation error and you are sure that you have the required memory (i.e. you have 4 MB RAM and you're decoding a 3 MB file), try setting a larger SwapFile size for Windows. Wincode may be trying to take more 'real' memory than Windows can spare. See your Windows manual for details on creating a larger SwapFile.

NOTE: Since displaying 'Windows' requires System resources, Wincode will work considerably faster in its iconic state.

See SMART Decoding and Winsort.


Exit

Choose this to end the program. If your CONFIGURATION has changed, a dialog box will prompt you whether you wish to save these settings.


Encode Options

Click on any area to obtain more information:

Or select one of the following:

Bytes per File

CheckSums

File Name

File Extension

Directory

File Headers

Include Table

Single File

Make EMBL Files

Code Type

File Type


Bytes per File

This allows you to set the maximum number of ENCODED bytes per file.

I stress ENCODED because this does not include File Headers or any other headers or trailers created by the encoding process (you need a 'begin-end' pair, etc). When you select this option, the following dialog appears:

Click on any area to obtain more information:


This is were you enter the encoded file size in bytes. Min.= 1 Byte; Max.= 8192000 Bytes


This shows an approximate conversion of bytes-per-file to text-lines-per-file. The information is updated each time you click recalculate.


This allows you to check your output-file size prior to setting a definite value.


Checksums

Wincode supports two types of Checksums: line and file.  Line checksums involve summing the ordinal value of every encoded character per line modulo 64 and placing this character at the end of the encoded line. This type of data security is *really* only necessary for noisy communications.

File checksums involve using the UNIX 'sum -r' 16-bit checksum algorithm. Every character (value AND position in file) in the original file contributes to the checksum. This type of analysis is amendable to everyday use (it is 'on' by default). The checksum result is listed at the end of the encoded file as sum -r/size. Wincode looks for checksum values as it decodes files when the Error Checking option is 'on'. The  Bonus DOS utility provided performs this type of checksum analysis on any size file.

Click on any area to obtain more information:


With this option set, Wincode will create checksums for EVERY encoded line in the output file.


With this option set, Wincode will create sum -r/size checksums for the input file and list the results at the end of the output file.


Encode File Name

When Wincode encodes files, it uses the input file name to create appropriate output file names. The Wincode created file names usually differ only by extension and/or numbering to keep multi-part files in order. This option allows you to choose a new file name for every file that Wincode encodes.

Click on any area to obtain more information:


Select this if you want Wincode to create the appropriate names for encoded files. When this option is set, you will see a 'W/' in the (Encode Info) Output File Name/Extension section of the Configuration dialog .


Select this if you want to create the names for encoded files yourself. You will be prompted to RENAME the file name Wincode has chosen for EVERY file being encoded (including each part). When this option is set, you will see a 'U/' in the (Encode Info) Output File Name/Extension section of the Configuration dialog.


Encode File Extension

This allows you to set the file-extension your encoded files will all have. Generally, this is 'UUE'. However, it can be anything you want. If you choose Default, then Wincode will automatically assign the following extensions:

 UUE for UUcoded files.

 XXE for XXcoded files.

 USR for User-defined table coded files.


Encode Directory

This option allows you to set the directory in which your encoded files will be created. A VALID directory must be indicated when entering this value. You can either browse through your drive to select a directory or input a new directory which Wincode will create for you.

Click on any area to obtain more information:

You should frequently check the SET directory and delete unnecessary files as they accumulate.

See Clean Directories.


This option allows you to create encoded files in the same directories as the original input file.


This option allows you to select the location of each encoded file before it is created by Wincode. You will be prompted for a new directory for EVERY file.


This option is set when the SET radio button is selected. When you double-click on the directory portion, a directory dialog appears. You are able to chose an existing directory or input a new directory for Wincode to create. The directory can be changed at any time without affecting the current selection. This is the directory in which all WC_E_RPT files will be created if the Create Report File option is set.


File Headers

This option, when checked, will create File Headers for each encoded file. The File Headers mark the BEGINning and END of the file. They indicate a  'part-number' (important for multiple files) and filename (of the original file) for each encoded file.

Format:

section xx/yy  file filename.ext  [Wincode v# ]

where

xx/yy indicates the part number (xx) from the total parts (yy)

filename.ext indicates the original BINARY file

# indicates the Wincode version number

NOTE: Winsort relies on these headers to be able to sort files. I recommend leaving this option 'on' so that the receiver of your files can benefit.


Include Table

With this option enabled, Wincode will include a code table preceding the 'begin' line of the encoded file. The code table takes the following format:

table

first 32 characters of table

second 32 characters of table

begin etc, etc --- encoded file goes here.

Note that there are NO spaces between the keyword table, the table lines and the keyword begin.


Single File

This option, when checked, overrides the Bytes per File option and encodes the input-file into ONE encoded file. Wincode uses the original input file name (with the appropriate extension) as the output file name.


Make EMBL Files

The European Molecular Biology Laboratory, Heidelberg (EMBL) supports a large database of scientific programs which run on a variety of platforms (DOS, MAC, UNIX, etc). All programs on the File Server are freeware/shareware. A fast and effortless way to obtain information/programs from EMBL is through automated e-mail. To get any file from the EMBL File Server, use e-mail addressed to NETSERV@EMBL-Heidelberg.DE. The body of the mail message should contain one server command per line (example: GET DOS_SOFTWARE:filename.ext). Within a few minutes you will receive a reply with the information you requested in encoded form. However, the Encoding scheme supported by EMBL is a variation of standard UUcoding. EMBL offers free UUen/de-code (UUE.EXE and UUD.EXE) DOS based programs for their files. Starting with version 2.2 of Wincode, the EMBL format is supported for both Encoding and Decoding. Some important format issues are discussed below:

Encoding Format:

Single File:

table

!"#$%&'()*+,-./0123456789:;<=>?

@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_

begin 644 filename.ext

(ENCODED TEXT GOES HERE)

(blank space here)

end

Multi-File:

File1.UAA

table

!"#$%&'()*+,-./0123456789:;<=>?

@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_

begin 644 filename.ext

(ENCODED TEXT GOES HERE)

include File2.UAB

File1.UAA ends...

File2.UAB

table

!"#$%&'()*+,-./0123456789:;<=>?

@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_

begin part b File2.UAB

(ENCODED TEXT GOES HERE)

include File(etc).U(etc)

File2.UAB ends...

File(etc)

table

!"#$%&'()*+,-./0123456789:;<=>?

@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_

begin part (etc) File(etc).U(etc)

(ENCODED TEXT GOES HERE)

(blank space here)

end

Notes:

1) A Code Table is included in EVERY file. The code table is standard UUcode, however, the space (#32) is NOT re-mapped to the back-quote.

2) For multi-part files, there is a keyword begin in every file. In successive files, the 'begin' is followed by the keyword part indicating which 'letter-part' of the main file is being encoded.

3) There is an include directive at the end of multi-part files which lists the name of the next file part. This keyword is used by Wincode (and the EMBL decoder) to determine the next file in sequence.

4) Files are arranged by EXTENSION; not by FILENAME. The ordering scheme is as follows:

a) The entire FILENAME is retained, only the extensions change.

b) For single files, the extension is UUE. For multi-part files, this extension varies as indicated in C and D below (the first extension is UAA).

c) Successive files are created by incrementing the last letter of the extension alphabetically (from 'a' to 'z').

d) When 'z' is reached, the middle letter in the extension is incremented alphabetically and the last letter is reset to 'a'. Step C is then repeated for new file parts. This method essentially allows for 26x26=676 unique file names based on extension.

5) A very important point (not shown above) is that every ENCODED line in each file ends with a lowercase letter used as a 'line-check'. The coding works in reverse alphabetical order (the first line ends in 'z') and continues cycling throughout and across multi-part files. Wincode analyzes these 'line-checks' for file integrity. (interestingly enough, the 'line-checks' play a dual role: 1) to insure file integrity by preventing spaces (#32) from being stripped by the mailer and 2) to insure the file is decoded correctly by acting as 'line-sequence' checks).

6) When encoding EMBL files, certain features of Wincode are disabled. These include:

a) Line Checksums

b) Encode Code Type

c) Include Table

Decoding Info:

Wincode is Decode compatible with the EMBL encoded files. The following points should be noted:

1) To decode an EMBL file, ONLY the FIRST file should be passed to Wincode. Unlike *standard* multi-part files, EMBL files ALL contain the keyword begin which will fool Wincode if they are not recognized as part of the EMBL multi-part sequence.

2) 'Line-checks' are analyzed as the file is decoded. If an error occurs, Wincode disables this feature ('line-checks' are referred to as 'checksums' throughout the program. However, they are not *true* checksums).

3) The Include directive is essential for Wincode to decode EMBL files.

NOTE: The EMBL UUcoding format is NOT supported by all standard UUcoders. For more information on the EMBL File Server and their UUcoding format, please contact them at:

NETSERV@EMBL-Heidelberg.DE (e-mail) or 192.54.41.33 (Anonymous FTP)

Snappy_Inc is in no way associated with EMBL.


Encode Code Type

This dialog allows you to set the type of code table Wincode will use to encode files.

Click on any area to obtain more information:

See Make Table


Wincode will create standard UUencoded files.


Wincode will create XXencoded files. These files use a different encoding table and are not universally supported by all en/de-coders.


This option forces Wincode to use the User defined table to create encoded files. Unless you wish to encrypt your files or just plain confuse people, set the Include Table option 'on' so that other decoders can read the file (NOTE: not all decoders support alternate table selection).


File Type

Text file formats can differ in the control codes used to terminate a line. This option allows you to control which file type Wincode will create when encoding files (Wincode can decode all of these file types).

Click on any area to obtain more information:


Wincode creates MS-DOS compatible files. Lines terminate with a CR/LF (#13/#10).


Wincode creates MAC compatible files. Lines terminate with a CR (#13).


Wincode creates UNIX compatible files. Lines terminate with a LF (#10).


Decode Options

Click on any area to obtain more information:

Or select one of the following:

File Name

File Extension(s)

Temp Directory

Directory

Dump Files

Run Decoded

Error Checking

Code Type


Decode File Name

When Wincode decodes files, it uses information from the input file to create appropriate output file names (the original file name is part of the encoded information). This option allows you to choose a new file name for every file that Wincode decodes.

Click on any area to obtain more information:


Select this if you want Wincode to create the appropriate names for decoded files. When this option is set, you will see a 'W/' in the (Decode Info) Input File Name/Extension section of the Configuration dialog .


Select this if you want to create the names for decoded files yourself. You will be prompted to RENAME the file name Wincode has chosen for EVERY file being decoded. When this option is set, you will see a 'U/' in the (Decode Info) Input File Name/Extension section of the Configuration dialog.


Decode File Extension

This allows you to set the file-extension(s) Wincode will recognize as being an encoded file(s). Generally, this includes 'UUE' for UUcoded files and 'XXE' for XXcoded files. However, you can set up to 20 valid extensions of your choice.

Click on any area to obtain more information:

NOTE: this file extension setting is IMPORTANT: when you select File|Decode, if you have set only ONE file extension, then only files with this extension will appear in the FILE OPEN dialog; otherwise, ALL file types will appear. Also, and more importantly, if you  Drag and Drop files on the Wincode window or icon, ALL the files with the extension(s) set here will be batch DECODED...


This is the active ADD/DELETE window. It displays the current extension to be added or deleted.


This allows you to ADD the extension displayed above. You are limited to a total of twenty (20) different extensions.


This allows you to DELETE the extension displayed above. You must have at least one (1) valid extension at all times.


This box displays the current selection of decode extensions. Double-clicking an extension here will place it in the active ADD/DELETE window.


Temp Directory

This option allows you to set a directory for Wincode to write temporary files. When the Dump Files option is enabled, Wincode will dump the decoded files into this directory. This is also the directory in which Winsort creates it's temporary files. You should frequently check the directory and delete unnecessary files as they accumulate.

See Clean Directories.


Decode Directory

This option allows you to set the directory to which your input-files will be decoded. A VALID directory must be indicated when entering this value. You can either browse through your drive to select a directory or input a new directory which Wincode will create for you.

Click on any area to obtain more information:

You should frequently check the SET directory and delete unnecessary files as they accumulate.

See Clean Directories.


This option allows you to create decoded files in the same directories as the original input file.


This option allows you to select the location of each decoded file before it is created by Wincode. You will be prompted for a new directory for EVERY file.


This option is set when the SET radio button is selected. When you double-click on the directory portion, a directory dialog appears. You are able to chose an existing directory or input a new directory for Wincode to create. The directory can be changed at any time without affecting the current selection. This is the directory in which all WC_D_RPT files will be created if the Create Report File option is set.


Dump Files

This option allows you to move (dump) encoded files that have been decoded into a common directory to facilitate deletion. Wincode first reads the entire original file into memory while creating a copy (in the specified temporary directory) with the extension WCT. If the file copy is completed correctly, it erases the original encoded file and renames the WCT file in the temporary directory. Wincode will warn you if duplicate file names exist.

NOTE: This option is incompatible with Winsort.


Run Decoded

This option allows you to run the newly decoded programs instantly. Wincode automatically scans your WIN.INI file for ASSOCIATIONS (matches file extensions to executables) and runs the appropriate program with the newly decoded file as a command line parameter. If no associations are found, it treats the decoded file as 'executable' and tries to launch it. This can be useful for GIF files, self-extracting files, etc where you don't want to switch back and forth between programs (i.e. Wincode and File Manager) to decode and run.

NOTE: As a precaution Wincode will prompt you before launching any files. Files will not execute after decoding if any of the following is true:

1) There was an error in decoding

2) The file is invalid

3) The file has no associations and is not an executable


Error Checking

Wincode incorporates many Error Checks when en/de-coding a file. However, in order  to save on time and user input, you can shut *most* of this feature off. If you encounter  a problem with a decoded file, turn this feature on (by checking it) and try  re-decoding the file.

The following types of Errors are monitored:

 Memory Allocation Errors.

 Whether an Input File exists and/or can be opened (if the file DOES  exist, allows you to select a new filename, overwrite the file, or skip it).

 Error-Handling for temporary files (applies to DUMP option).

 Existence of a valid Mode value in the Header.

 Existence of a valid Filename value in the Header (provides option to change the filename to a valid DOS filename). Also prompts for the next file in sequence if none found.

 Existence of begin/end pair in encoded files being Decoded.

 Number of characters per encoded line.

 Individual characters in each line are checked for validity.

 Line and File CheckSums if enabled.

 Assorted Errors for handling Multi-part files.

(The above listing represents a general list of actual Errors Wincode can detect.)

NOTE: The level of error-checking varies depending on the method in which  the User selects a file. By default, when you perform Batch decoding, *some* error-checking is off. Using the File|Decode option ensures the most  error-checking providing the Options|Decode|Error Checking option is set.

See Errors and Warnings.


Decode Code Type

This dialog allows you to set the type of code table Wincode will use to decode files.

Click on any area to obtain more information:

See Make Table


Wincode will decode standard UUencoded files only.


Wincode will decode XXencoded files only. These files use a different encoding table and are not universally supported by all en/de-coders.


Wincode will decode using the standard UUencode table. However, if it encounters a valid code table prior to the keyword 'begin', it will switch to using this table to decode the file. If Wincode cannot find a valid table for a non-UUcoded file, an error will result. Either edit the file to include the table OR set the User Code Type option.


This option forces Wincode to use the User defined table to decode files. It allows you to control which type of file Wincode will be able to decode (recognize as valid).


Wincode Options

Click on any area to obtain more information:

Or select one of the following:

Working Directory

Make Table

Clean Directories

Create Report File

Start As Icon

Close When Done

Sound Effects

Winsort First


Working Directory

Select this option to choose the default start-up directory for Wincode. Whenever you select the File|Encode or File|Decode option, the default directory for selecting input files is determined by this setting.

NOTE: Wincode will try to create any directories you specify that do not exist.


Make Table

Click on any area to obtain more information:

This option allows you to create a personal code table. Wincode will use this table whenever a Code Type User option is set in en/de-code. I also suggest setting the Include Table option to minimize confusion for other users.


The table must be sixty-four (64) characters in length consisting of ASCII characters from ' ' (the space,#32) to '~' (the tilde,#126). The characters must be in ORD from left to right...that is, they must be in increasing sequential order in accordance with an ASCII table. The ASM routine used for decoding will not tolerate a non-ordinal code table. I advise using this option with caution unless you are familiar with the ASCII character set.


Clean Directories

This option allows you to DELETE all the files that have accumulated in your TEMP , ENCODE  and DECODE directories. Both Wincode and Winsort create/use temporary files. Wincode (if set) also creates Report files in the En/De-code directories. You should periodically 'clean' these directories to minimize wasted disk space.


Create Report File

This option allows you to create Report files for either the Encoding or Decoding  process (or both at the same time!). The files are named WC_E_RPT.number  for Encoding or WC_D_RPT.number for Decoding where (in either  case) number is a given extension starting at '001' and ending at '999'. Wincode  will assign the extension in increasing order to prevent overwriting Report files.  If, by chance, you reach 999 files, Wincode will loop back to file number 001 and  overwrite it (if it exists). Report files, by default, are placed in the directory  specified by the SET choice under the  Options|En/De-code|Directories selection.

For Encoding, the Report file contains the following information:

 The Input file it is Encoding.

 The Original (input) File Size.

 The Approximate Encoded File Size(s)...generally this is accurate  to within 10 bytes.

 The Code Type.

 The Text File Type.

 The File it is Encoding the Input file into.

 The Total Number of Encoded Files.

 The type of Checksums being created (if applicable).

 The Checksum value (if applicable).

 Any Error Messages that may arise!

For Decoding, the Report file contains the following information:

 The name of the Encoded file it is Decoding.

 The Input File Size.

 The name of the file being Decoded.

 The Checksum status (if applicable).

 Any Error Messages that may arise!

See Errors and Warnings.


Start As Icon

This option allows you to start Wincode as an icon. It is useful if Wincode is pre-configured and you wish to process files by  drag and drop. This option is also handy if you set Wincode to Close When Done and run it by double-clicking associated files.

NOTE: When Wincode runs as an Icon, it operates considerably faster in both encoding and decoding.


Hi there! I'm the Wincode Icon.


Close When Done

With this option set, Wincode will perform its task then close itself down. This is ideal if you just need to quickly decode a file and you don't want to bother dealing with Wincode being on your desktop. In fact, if you set this option in conjunction with the Start As Icon feature, you could decode as you go using File Manager and the Windows Associations (without being bothered by Wincode :-) ).


Sound Effects

Wincode now incorporates Multimedia Sound Support. If you have a sound card and have assigned new sounds to your Windows events, Wincode will use them to get your attention. If you have not re-assigned your Windows sounds, the Default Windows beep is used. This option allows you to turn Wincode's sound effects On or Off.


Winsort First

This option notifies Wincode that it should pass all files to Winsort for pre-processing. You should read and understand Winsort's features before using this option (it does take extra time to sort the files).

NOTE: This option is incompatible with the Dump Files option.


This button executes Wincode's HELP file with the current dialog box topic open.


This button closes the current dialog box.


Configuring Wincode
Configuration

Choose this to display the active (while the program is running) settings for Wincode. By choosing SAVE, these settings will be written to your WINCODE.INI file (the WINCODE.INI file is created after you first execute Wincode). Otherwise, choose EXIT and nothing changes. If you change an option, it is NOT written to disk unless you select SAVE, however, any configuration changes during the active session will be displayed in this dialog.

Click on any area to obtain more information:

If the configuration is changed and not saved before exiting, a reminder message will appear upon exiting.

NOTE: The current position of the Wincode window is also saved each time you select the SAVE button.


Displays the current Encode setup information.


Displays the current Decode setup information.


Displays the current Wincode setup information.


Closes the configuration dialog and saves the current configuration.


Closes the configuration dialog without saving the current configuration.


Reload from Disk

Select this to reload the configuration in the WINCODE.INI file. If WINCODE.INI does not exist, the configuration is reset to program defaults.


About Wincode...

Displays the program name, version and company name:


OK!...feel free to e-mail your comments and suggestions...


SMART Decoding

SMART decoding involves being able to manipulate input files such that the user does the least amount of work. Wincode now has the ability to decode:

 single files

 multi-part files

 multi-part single files

 multiple multi-part single files

The 'intervening' text need not be removed in ANY of the files, Wincode will decide what is encoded and what is not. Generally, the only requirement is that the files be in order (see NOTE below). This means that for any type of 'multi-part file' (see above), part one must precede part two (etc) within the file. However, part three could exist in another file provided the file is 'numbered' and follows the first file!

NOTE: Wincode now comes with Winsort, an integrated file-sort companion. Winsort allows a user to decode multi-part files (any type) that are NOT in order. For more information, read the Winsort section of this Help file.

See Winsort and Error Checking.


Single File

This type of file consists of a single encoded file from 'begin' to 'end'.

Format:

file.uue:

begin 644 file.exe

..........

(encoded info--file.exe)

..........

end

etc...


Multi-Part Files

This involves one encoded file split into several files.

Format:

file1.uue:

begin 644 file.exe

..........

(encoded info--file.exe)

..........

file2.uue:

..........

(encoded info--file.exe)

..........

file3.uue:

..........

(encoded info--file.exe)

..........

end

etc...


Multi-Part Single Files

This type of file contains Multi-Part Files concatenated into a single text file.

Format:

file.uue:

begin 644 file.exe

..........

(encoded info--file.exe)

..........

(intervening text)

..........

(encoded info--file.exe)

..........

(intervening text)

..........

(encoded info--file.exe)

..........

end

etc...


Multiple Multi-Part Single Files

This condition involves Multi-Part Single Files that are enumerated and 'split' over several files.

Format:

file1.uue:

begin 644 fileA.exe

..........

(encoded info--fileA.exe)

..........

(intervening text)

..........

(encoded info--fileA.exe)

..........

(intervening text)

..........

(encoded info--fileA.exe)

..........

end

begin 644 fileB.exe

..........

(encoded info--fileB.exe)

..........

file2.uue:

(intervening text)

..........

(encoded info--fileB.exe)

..........

(intervening text)

..........

(encoded info--fileB.exe)

..........

end

begin 644 fileC.exe

..........

(intervening text)

..........

(encoded info--fileC.exe)

..........

(intervening text)

..........

(encoded info--fileC.exe)

..........

end

etc...


Errors and Warnings
Wincode Errors and Warnings

Wincode now separates the en/de-coding problems it encounters into Errors and Warnings. An Error is generally an unrecoverable problem which either causes Wincode to Halt completely or produces an error in the resulting output file. A Warning is a problem which Wincode can try to fix or which may be easily remedied by the User. Warnings are also issued as notifications of potential problems (i.e. they are not *real* problems). The following list describes the  possible problems you may encounter based on whether you are Encoding or Decoding. A list of General Wincode problems is also provided.

Encode:

ERROR 01: File Read/Memory Allocation Error. Results in Wincode halting execution. There is an error in allocating global memory and/or reading the input file into memory. Wincode has an 8MB limit on file sizes it can handle.

ERROR 02: Memory Allocation Error. Results in Wincode halting execution. There is an error in allocating global memory (see ERROR 01).

ERROR 03: Can't Open File. The INPUT file is either corrupt, changed, has an invalid DOS filename or does not exist.

ERROR 04: Can't Open File. The OUTPUT file is either corrupt, changed, has an invalid DOS filename or does not exist.

ERROR 05: Error writing to output file. This problem generally arises from insufficient disk space.

WARNING 01: SET directory is invalid. Directory selected for encoded output files has become invalid. This problem generally arises when the directory no longer exists.

Decode:

ERROR 01: File Read/Memory Allocation Error. Results in Wincode halting execution. There is an error in allocating global memory and/or reading the input file into memory. Wincode has an 8MB limit on file sizes it can handle.

ERROR 02: Memory Allocation Error. Results in Wincode halting execution. There is an error in allocating global memory (see ERROR 01).

ERROR 03: Error writing Temp file. This problem arises when the Dump Files option is set and there is an error in disk-space allocation (i.e. insufficient disk space).

ERROR 04: Can't Open File... The INPUT file is either corrupt, changed, has an invalid DOS filename or does not exist.

ERROR 05: Error creating Temp file. This problem arises when the Dump Files option is set and there is an error in disk-space allocation (i.e. insufficient disk space).

ERROR 06: Error deleting (MOVING) original input file. This problem arises when the Dump Files option is set and there is an error in disk-space allocation (i.e. insufficient disk space).

ERROR 07: Error deleting UUE file. This problem arises when the Dump Files option is set and there is an error in disk-space re-allocation (the file has changed, is corrupted or does not exist).

ERROR 08: Improper Mode value. This error is reported if the input file mode value is incorrect or does not exist. Though Errors are *generally* unrecoverable, this error can sometimes be bypassed.

ERROR 09: Illegal DOS filename. Wincode allows you to chose a new filename.

ERROR 10: Can't Open File. The OUTPUT file is either corrupt, changed, has an invalid DOS filename or does not exist.

ERROR 11: Error writing output file. This problem generally arises from insufficient disk space.

ERROR 12: Next file number not found. This problem is reported if the next file in sequence in a multi-part set is not found by Wincode. You are given the option to enter a new filename.

ERROR 13: New 'begin' found before 'end' of previous encoded file. This error generally occurs in a multi-part containing single file. The files are perhaps not in order.

ERROR 14: Encoded line # checksums do not match...disabling analysis... This error is reported if the file line checksums do not match. Wincode performs modulo 64 line checksums. Line checksum formats, however, differ from encoder to encoder so you may get this error frequently. Wincode will disable checking if this problem arises and the file will be decoded normally.

ERROR 15: Encoded line # of file filename is too long. This problem arises when the encoded file is corrupt and is generally unrecoverable.

ERROR 16: filename is empty. This error is reported when the input file size is zero (0).

WARNING 01: WCT File exists in Temp directory... This message alerts you to temporary file errors. WCT (WinCode Temporary) files are created to insure file integrity when dumping files.

WARNING 02: UUE File exists in Temp directory... This message alerts you to temporary file errors.

WARNING 03: Too many characters per line (maybe line checksums or EMBL file)... This message alerts you to potential file line-length problems. Wincode recognizes and analyzes both line checksums (mod 64) and EMBL file line 'checks'.

WARNING 04: Nothing to Decode. This problem arises if the keyword 'begin' is not found within the file.

WARNING 05: Wincode default bypass of Mode value. This message is written in the Report file when Wincode is running with Error Checking off and a problem arises in the file header text.

WARNING 06: Skipping line # of file filename. This message is written in the Report file when Wincode encounters a line which may have confused it. Usually the decoded file will be ok. This message is generated automatically 'just in case'.

WARNING 07: Encoded line # of file filename is too short...disabling length checks... This message replaces the Space-Replace option message. It indicates that Wincode has found the first instance of a truncated line in the encoded file. The missing characters are automatically replaced with ASCII character #32 (a space). From this point on, Wincode handles space-replacing without warnings (disabled).

WARNING 08: Checksums do not match... This message is written in the Report file. Wincode lists the calculated and expected file checksums. Checksum errors may indicate corrupt encoded files.

WARNING 09: Problem detected...Check encoded file. File decoding was aborted unexpectedly.

WARNING 10: SET directory is invalid. Directory selected for decoded output files has become invalid. This problem generally arises when the directory no longer exists.

WARNING 11: Improper Code Table detected...Check encoded file. Wincode requires a Table made of Valid ASCII characters in the range #32 to #126 in ORD from left to right (the ORDering is required for increased speed in the ASM routine).

General:

ERROR: WINSORT.EXE not found. The Winsort executable (EXE) file must be in the same directory as the Wincode executable file. This error is only reported if the Winsort option is selected.

ERROR: Invalid Working Directory...using Wincode default. This error is reported when Wincode is first started. It indicates a problem in the working directory saved in the INI file. The default is the current directory.

ERROR: Illegal file name. This error is reported if the commandline filename passed to Wincode is invalid.

WARNING: No Files Sorted. This indicates a problem with Winsort. The files passed by Wincode were either not proper encoded files or of improper format.


Wincode Version History

Version 2.2 --- released 1/3/94 --- This version. A few changes/bug-fixes:

 Fixed a bug in the Decode 'Auto' Code Type algorithm (would choke on standard UUcode Tables).

 Added Clean Directories option to DELETE Wincode-created files.

 Added ability to encode 999 (vs 99) files.

 Added ability to rename both encoded and decode files as they are created.

 Added EMBL file compatibility for both en/de-code.

 Added 'include' file directive for decoding files.

 Improved Code Table and Line checksum algorithms.

 Improved Decode algorithm.

 Re-wrote Bytes Per File code.

 Improved DialogBox 'display' code - this is part of a UNIT I wrote (in TPW 1.5) which is a modification of STDDLGS..it provides *versatile* File Open, Directory Selection and Center/Display-Dialog code...Free to anyone interested.

 Fixed Save Configuration bug (saved Window position always).

 Added Left/Middle/Right Mouse Button Double-Click Popup Menus.

 Added Sound Effects On/Off option.

 Fixed CommandLine processing bug.

 Four new INI file options were enabled (were always there but never used).

 Integration with Winsort was enhanced. Winsort upgraded to v1.1

 Updated associated programs and Help file.

 Upgraded Installer to v1.1 --- this includes some code optimization and a new Log file feature.

Version 2.1 --- released 12/5/93 --- The following improvements/bug-fixes were made:

 Fixed Memory Allocation bug when decoding.

 Improved Encoding code - now much faster.

 Corrected file number and % complete code.

 Added ability to support 8MB files for en/de-coding.

 Integrated and improved the HELP file.

 Added Winsort version 1.0.

 Added Sum version 1.1 to Wincode package.

 Created Install (version 1.0) program to correctly upgrade previous version of Wincode...Install will also be used for future updates.

 Added the 'Close When Done' option.

 Improved file directory handling...choosing output file location is now more flexible.

 Incorporated *new* file/directory handling dialogs.

 Added code to handle dialog displaying.

 Added multi-media sound capabilities to Wincode events.

 Changed dialog fonts.

 Added multi-extension capability for decoding.

 Improved Bytes Per File code.

 Updated Configuration dialog.

 Improved the Assembly code.

Version 2.0 --- BETA version. Limited public release 11/1/93. Contains the following improvements/enhancements:

 Changed the *entire* menu setup. Now uses pop-up dialogs.

 Added 16-bit UNIX 'sum -r' file checksums capabilities (written in Assembler).

 Added line checksum checking/incorporation.

 Added 'default' extensions for encoded files.

 Wincode now handles *many* code formats. Added support for en/de-coding of UUE, XXE or User created files (need code table).

 Added ability to create User Defined code tables for Wincode to use when en/de-coding. Also added option to include Tables in encoded file.

 Added option for choosing Text file format (MS-DOS,MAC or UNIX).

 DUMP directory became TEMP directory. Wincode uses this directory for creating temporary files AND dumping files. Also used by Winsort.

 Added AUTO code detection for decoding. See HELP file for info.

 Added integrated file-sort utility support (for future program: Winsort).

 Added CANCEL option to INI save dialog when exiting Wincode.

 Improved INI file handling: Options now use numbers to represent the various states (1= on ; 0 = off).

 Removed the Space-Replace feature. This option is now built-in to provide better decode error-checking.

 Improved decoding algorithm...fixed many of the bugs that would cause Wincode to crash or would fool Wincode.

 Added inline Assembler to decoding algorithm for improved speed and to allow for using multiple code tables.

 Fixed memory allocation bug which caused version 1.5 to crash on various system setups.

 Increased crash protection. Wincode now reports different problems as WARNINGS (recoverable) or ERRORS (unrecoverable).

 Enumerated ERRORs and WARNINGs for easier problem-solving.

 Tighter integration of Report-File code.

 This version represents a complete re-write (optimization) of the program code.

Version 1.9 to 1.6 --- These were developing BETA versions. None were ever released to the public. See above (version 2.0) for improvements listing.

Version 1.5 --- released 8/22/93 --- Contains the following fixes:

 Fixed syntax errors in HELP file.

 Fixed bug in Space-Replace option.

 Added the ability to re-edit incorrect configuration entries.

 Added internal version info.

 Added improved 'crash' protection.

 Fixed bug in saving INI file...would set FileSize Bytes = 0 and cause GPFs.

 Added ability to change Decoding-File Name if it exists.

 Improved File-Rename dialog handling.

Version 1.4 --- Enhancement of v1.3; Public Release #3 --- 8/6/93.

Version 1.3 --- BETA version. Changed the *entire* look of Wincode. It now supports the following:

 Multi-tasking ability enhanced (won't hog CPU).

 Added 'Stop' and 'Quit' options when en/de-coding.

 Better Encoding support..includes a reformatted section header which provides more detailed info (part of total and filename).

 *Much* better decoding abilities: fixed a few decode algorithm bugs; added ability for multiple file decoding from single file (even handles  multiple-multiple file decoding from single file!); added ability to decode UNIX or MAC  based TEXT files in addition to DOS-based TEXT files.

 En/de-coding Information window was enhanced.

 Changed Lines per File to Bytes per File (more accurate file sizing).

 Added 'in same directory' ability for en/de-coding.

 Added 'Dump directory' option for encoded files that have been decoded.

 Removed Command Line option and added WIN.INI association search for running decoded files.

 Added Error Checking On/Off option to speed decoding.

 Added Space-Replace Option.

 Added ability to change input file name if invalid.

 Added the REPORT FILE option.

 Added the 'Start As Icon' option - it increases the en/de-coding speed by not having to display a window.

 Added ability to take a command line file when starting Wincode.

 Added single-instance limit.

 Added HELP file and modified the main menu.

 Modified the ABOUT box.

 Added the 'Percent Processed' to main Window when executing batch-jobs.

Version 1.2 --- Fixed the 'next-file-in-sequence' search algorithm. The original search routine would look for a (uppercase) 'M' to begin decoding...some non-encoded header text would occasionally fool Wincode. The new search routine looks for the first line of VALID encoded characters before decoding (essentially proof reading)...

Version 1.1 --- Removed the 'DROP TO xxCODE' option. Wincode now uses the file extension (see 'File|Decode|File Extension' option) to decide which files should be encoded and which should be decoded. With this, you do not need to switch back and forth between encoding and decoding options (Wincode will do the work for you...)

Version 1.0.3 --- Original release of Wincode.


Wincode Updates

 Increase program execution speed (if I can someday afford a Win32 compiler).

 Any useful suggestions users may have?


Winsort

 Introduction

 Supported Formats

 Problem Solving

 Updates and Version History


Winsort Introduction

Winsort is an integrated file-sort companion designed to work with Wincode v2.1 and later. It functions behind the scene (i.e. no icon, etc) to pre-process files by sorting the various file-parts of ANY type of multi-part file (i.e. Multi-Part Files, Multi-Part Single File, Multiple Multi-Part Single Files, etc). This allows you to decode multi-part files in which the parts are out of order; essentially removing the Wincode files-must-be-in-order restriction. Winsort currently supports seven (7) known formats. Future updates will only be created in response to user demand. If you know of a format you want supported, e-mail the info to me.

Winsort execution is completely controlled by Wincode. The following list describes how both programs function together (You must have the Winsort First option checked):

 Wincode creates a file list which it passes to Winsort.

 Winsort checks each file extension. If the extension matches one found in the decode extension list, it will process the file. Otherwise, Winsort will skip to the next file.

 Winsort reads through each valid file searching for supported header formats.

 Headers are used to obtain the filename and section part number.

 Filenames and file parts are internally catalogued for sorting.

 Winsort creates logical DOS filenames for each file part and extracts the encoded information to these temporary files. Temporary files are created in the Temp Directory.

 A new file-list is created by Winsort and passed back to Wincode.

 Wincode uses the information in the temporary files to decode.

Winsort supports its own error checking. It is designed as a self contained executable to facilitate future upgrades and support.

Things Users should know (version 1.1 and up):

Three INI file options were added to allow some flexibility when calling Winsort. These options are NOT automatic; you must edit your WINCODE.INI file manually. Use these options ONLY if you feel you need them. They are NOT necessary (Wincode will function just fine without them)!

First, you need to create a NEW section in the WINCODE.INI called:

[Winsort]    (use the INI file you have now as a format example)

then, you can add the following sections:

 WinsortExe= (this allows you to set another filename for Wincode to recognize as the Winsort executable; the default is WINSORT.EXE)

 WinsortDir= (this allows you to set the location of the Winsort executable.This directory MUST end in a backslash '\'; the default is Wincode's start-up directory)

 WinsortSwitch= (this allows you to set a CommandLine parameter (switch) that will be passed to Winsort when it is executed. The ONLY valid switches are FLEFT or FLEFT LOOP. See below for more info)

FLEFT or FLEFT LOOP

This option is for users who experience communications problems with encoded files. Sometimes, communications program and/or various text file editors have the nasty habit of adding a SPACE (#32) at the beginning of every line of a text file (this can also happen when transferring text files between different machines i.e. MAC to PC, etc). This may 'look' nice for the User, but it destroys the integrity of encoded files. To compensate for this, Winsort has the ability to 'strip' these spaces from the encoded files before it hands them back to Wincode (essentially making the text 'Flush LEFT').

The switches work as such:

WinsortSwitch=FLEFT

This option turns off Winsort's 'sorting' feature while enabling the 'Flush LEFT' capability (strip-only mode). Wincode passes the files to Winsort as usual, however, rather than sort the files, Winsort will strip-off any spaces on the left-hand margin of the text. The new files are created in the Temp directory with the SAME name as the originals.

WinsortSwitch=FLEFT LOOP

This option performs the same 'stripping' function as above, however, the files are re-processed by Winsort for 'sorting'. The sequence of events is:

1) Wincode passes the files to Winsort

2) Winsort strips off any left-hand-margin 'spaces'

3) Winsort passes the files back to itself and sorts them as usual.

4) Winsort passes the files back to Wincode for processing.

Important Notes:

 If a file contains both supported and NON-supported header formats, only the supported formats will be sorted and passed to Wincode. You should be aware of this as it will seem that Wincode is ignoring portions of the file. Future updates of Winsort to support more header formats should fix this problem.

 Winsort does NOT delete the temporary files it creates in the Temp Directory.

 You MUST have enough disk space for Winsort to create the temporary files AND for Wincode to create the decoded files.

 For multi-part files, ALL file parts should be 'dropped' on Wincode so that Winsort can catalogue the multiple sections accordingly.

 Winsort version 1.1 requires Wincode v2.2 or greater in order to use the three Winsort INI file options mentioned above.

 Winsort is not compatible with the Dump Files option.

Files:

 WINSORT.EXE [image] the main executable program


Supported Formats

Winsort v1.1 supports the following file header formats:

1) Wincode v2.0 and later:

Wincode headers have been re-designed to list only vital information. Winsort requires that both the leading and the trailing header exist. It analyzes both headers to insure that all the encoded information is intact. The PART format is as follows:

section xx/yy  file filename.ext  [Wincode v# ]

(ENCODED INFO GOES HERE)

section xx/yy  file filename.ext  [Wincode v# ]

2) UUencode by R.E.M:

Winsort treats R.E.M file headers much the same as Wincode headers. However, since UUencode does not include a trailing 'header', Winsort uses the trailing 'sum -r' information to signal the end of the encoded text. This method *may* be more error prone than having the dual checking listed above. The PART format is as follows:

section xx of uuencode version # of file filename.ext by R.E.M.

(ENCODED INFO GOES HERE)

sum -r/size sum-value section (from 'begin' to 'end')

3) xmitBin by Jim Howard:

Winsort will process ANY file whose headers match this format; whether or not created with xmitBin (it is listed for Users who recognize the header format). Both the filename AND the part number(s) MUST be in the FIRST header. Winsort looks for the keyword BEGIN and then obtains the info it needs. It stops collecting information when it reaches the END keyword. The following is a SAMPLE of the header format (the actual 'cut here', etc text may vary):

BEGIN --- CUT HERE --- Cut Here --- cut here --- filename.ext xx/yy

(ENCODED INFO GOES HERE)

END --- CUT HERE --- Cut Here --- cut here --- filename.ext xx/yy

4) Self Extracting Archive (shar) Files by 'post-bin':

Winsort will read the 'part' and 'file' lines to obtain the information it needs. The keyword END is used to signal the end of encoded information.

# (EXTRACTION INFO GOES HERE)

(EXTRACTION SCRIPT GOES HERE)

part=filename.ext

pfile=filename.ext

file=xx

(EXTRACTION SCRIPT GOES HERE)

BEGIN------------ filename.ext ------------ xx/yy ---

(ENCODED INFO GOES HERE)

END------------ filename.ext ------------ xx/yy ---

(EXTRACTION SCRIPT GOES HERE)

5) POST V1.2.0:

Support for POST is provided ONLY for files which contain the END keyword. I have seen this with version 1.2.0 but cannot guarantee other versions. Winsort obtains the information it needs from the 'POST' line and then uses the END keyword to stop. The BEGIN is not used. The format is as follows:

POST V1.2.0 filename.ext (Part xx/yy)

BEGIN -- Cut Here -- cut here

(ENCODED INFO GOES HERE)

END -- Cut Here -- cut here

6) 'X-File' headers:

This format has been on the Internet but I'm not sure of all the specs...

X-File-Name: filename.ext

X-Part: xx

(MORE INFO)

BEGIN-------------------- CUT HERE ---------------

(ENCODED INFO GOES HERE)

END-------------------- CUT HERE ---------------

7) 'Subject - EOET' headers:

This is actually a 'catch-all' form of sorting. USENET groups contain header information which can be extracted with the file. If the 'Subject' line of this header contains a VALID DOS filename and a VALID part number (in this format xx/yy), Winsort will consider it the start of the encoded information and start writing to the TEMP file. It stops writing when it encounters ANY of the above End Of Encoded Text (EOET) keywords (i.e. 'END', 'section', 'sum', 'SHAR_EOF',etc). The general format is as follows (it may vary depending on how you access the internet):

Group: alt.binaries.pictures.utilities, Item xxxx etc, etc

Subject: filename.ext (xx/yy)

From: silva@tethys.ph.albany.edu (silva)

Date: 3 Jan 94 2:20:00

(OTHER NET INFO, IF ANY)

(USER INSERTED INFO, IF ANY)

(ENCODED INFO GOES HERE)

(EOET KEYWORD GOES HERE)

NOTE: In order for Winsort to obtain the CORRECT file info from the Subject line, the following MUST be true: a) there is at least ONE period ('.') in the line which is part of the filename.ext information; b) there must be a '/' in the part number (i.e. even if there is only one file, 1/1). If the two conditions are not met, Winsort will continue looking for another filename/part indicator (i.e options 1-6 above). You should be aware that this method of sorting is the FIRST option Winsort will try (since the Subject line precedes all other types of headers).

Winsort v1.0 only supports formats 1) and 2) listed above.

Future updates to Winsort depend on your suggestions...


Winsort Problem Solving

This section will be updated as problems/solutions are reported/developed. If you experience problems with Winsort, check the temp files (if any) it created. Sometimes the problems involve file ordering which can easily be fixed by renaming files.

 Problem: Wincode is accepting files, but Winsort is ignoring them.

 Solution: The files being passed to Winsort are either non-encoded files (based on the file extensions recognized by Wincode) or they contain NON-supported header formats.

 Problem: Wincode is not decoding the entire encoded file.

 Solution: Winsort will only sort internal file parts containing supported header formats. All other information is ignored and NOT passed to Wincode. Try decoding the file without Winsort.


Winsort Updates and Version History

Version 1.1 --- Released with Wincode v2.2. Includes the following changes:

 Added ability to take a commandline parameter.

 Added the Flush Left capability.

 Added support for POST headers (provided the BEGIN/END pair is included.)

 Added support for Self Extracting Archive File (shar) headers.

 Added support for xmitBin (by D. Jim Howard) headers. This allows for supporting ANY BEGIN/END headers in which filename AND part info are included in the first header.

 Added support for 'X-File' created headers.

 Added support for 'Subject'/EOET created headers (see Supported Formats for more info).

Version 1.0 --- Original release of Winsort.

I would like Winsort to be able to interpret *all* header formats. If you want a particular format to be supported, send the info by e-mail. :-)


Install
Snappy Installer

Introduction

The Snappy Installer functions to install Wincode correctly while insuring proper file integrity.  It was created for three main reasons:

1) To allow users to easily upgrade from older versions of Wincode (the INI file structure changed from version to version which caused many problems when upgrading) while retaining their previous configuration.

2) To create a program to insure that all files are being distributed intact and to perform simple virus checking.

3) To create a 'programmable' program. The Installer is configured entirely from the INI file. Future updates (bug fixes) of Wincode need not include all files.

Using the Installer

Before running the installer, make sure all program files (as listed in the README.TXT) are located in the same directory (I suggest copying all the files to a floppy). Using Program/File Manager, RUN the INSTALL.EXE program.

When the install program is executed, you will see a full screen display with a centered dialog box as shown below.

Click on any area to obtain more information:

Installation progress is displayed graphically as each file is copied and the checksums are calculated. Snappy Installer will also properly Date/Time stamp each file it transfers. The Time stamp can be used to quickly determine a Snappy program version; for example, a file stamped 2:10:00 is actually version 2.1, etc. The user is notified of any errors detected during installation.

Unsuccessful Installation

A Log file (INSTALL.LOG) is created in the Source directory. If install fails for any reason, check the contents of this file. The following should be noted:

1) A Bad Checksum (CS) Error indicates a corrupt file. This could be due to Virus infection or incorrect data transmission. Do NOT use these files. Please contact me for a replacement.

2) If one of the required files is missing, Installer will indicate an Unsuccessful Installation. See note #4 below.

3) A general ERROR message is given if Installer encounters problems copying appropriate files (i.e the disk is full, etc). Check your destination drive and try  re-installing the software.

4) Installer updates and maintains the VERSION section in the WINCODE.INI file. Any errors encountered during installation will set VERSION=ERROR. If you are sure that all files are correct and still receive an 'Unsuccessful Installation' error (such as when a file is missing, etc), you should manually edit your WINCODE.INI file to correct this value. Refer to the ABOUT dialog for correct version info.

5) I will replace 'damaged' files for Free.

Files:

 INSTALL.EXE [image] the main executable program

 INSTALL.INI [image] the INI data file


This button launches WINCODE.HLP to display the INSTALL program section.


When the Install program is initially started, this button is disabled. If Snappy Installer detects a previous version of WINCODE.INI in your Windows directory, this option will be enabled (after you select a Destination directory). A Previous Version dialog will pop-up indicating the supported versions you can upgrade from with the current INSTALL.INI. Select the proper version number and installation will commence.


Use this to select a source directory which contains the files to be installed. By default, this directory is set to the INSTALL.EXE starting directory.


Use this to select a destination directory for the program files. Any existing files in this directory WILL be overwritten. You may enter a directory which does NOT exist and Snappy Installer will try to create it for you. This directory MUST be set before installation can proceed.


Use this option if you want Snappy Installer to create the default directories needed by Wincode. This option will overwrite previous configuration settings. Four sub-directories are created under the main program directory: 1) 'Decode'; 2) 'Encode'; 3) 'Files' and 4) 'Temp'.


When the Install program is initially started, this button is disabled. Selecting a Destination directory will enable this option. Installation begins immediately. NOTE: If a previous version of Wincode is detected on your system, Installer will warn you that INSTALLing (rather than UPGRADing) will overwrite your current configuration.


Choose this if you wish to exit the install program without installing Wincode.


Bonus
BONUS!

Sum utility:

With version 2.1 (and later) of Wincode you now also receive a free DOS 'sum -r' utility. This small program computes UNIX 'sum -r/size' checksums on files of ANY size. At a DOS prompt, type:

sum filename 	(or just 'sum' to see the program usage)

Checksums are useful in monitoring file integrity. 'Sum -r' checksums are calculated using each byte in a file relative to the next byte in sequence. This allows you to insure that files remain unchanged (either by a virus or bad data transmission lines).

Sum is written in Turbo Pascal with inline Assembly to calculate the checksums.

Files:

 SUM.EXE [image] the main executable program


Mailing List

I have tried to maintain a mailing list of users who would like to receive free updates by e-mail. I was offering this 'service' free to anyone who wrote in with questions or comments about Wincode. However, I regret to say that I will not be offering this service 'free' anymore. Instead,I have decided to make it 'Postcard-support'. What is Postcard-Support? It is based on the idea of PostcardWARE software in which you send the author a Postcard from your home state, country, whatever to register the product. I have spent quite a bit of my free time developing and supporting Wincode. It will ALWAYS be FREEWARE. However, if you wish to get pre-releases of new versions of Wincode, Winsort or any other Snappy_Inc software, you must mail me a Postcard to the address given below. I will be making a new mailing list of users who send postcards. I repeat, Wincode is STILL FREEWARE, however, if you want to save yourself the hassle of finding it on the internet or downloading it from a BBS you can be on my mailing list.

I welcome all comments and suggestions. I will also answer all questions and support ALL Snappy_Inc software for FREE as long as there is public interest (Please remember to include program version information).

NOTE: Users who send in bug reports or help me BETA test any Snappy_Inc software are automatically entitled to free updates and personally e-mailed pre-releases of future programs.

Send Postcards to:

George Silva

Snappy_Inc

Oxford Heights: Buckingham #5

Albany, NY 12203

Don't forget to include your e-mail address!

Thanks for your support...


Copyrights

WINCODE.EXE, WINCODE.HLP, WINSORT.EXE, INSTALL.EXE and SUM.EXE are ALL copyright 1993,1994 Snappy_Inc. software. It is illegal to distribute these programs individually without prior permission from the author. It is also illegal to reverse-compile or alter the executables or associated files in any way. The Snappy Installer (INSTALL.EXE) is provided to insure that all files are distributed together and intact. Copyright information is included within all the executable files listed above.

If you find any bugs, glitches, whatever I can be reached by e-mail at one of the following addresses (Please remember to include program version information):

 Internet: silva@tethys.ph.albany.edu   (preferred)

 Internet: silva@stat.ph.albany.edu

 CompuServe: 74640,1647

 America Online: Snappy

If you need help, support, the latest version of Wincode or just want to let me know you like/hate the program, drop me a line. See the Mailing List section for more info regarding obtaining the most current versions of the software.

Thanks for trying and using Snappy_Inc software...

G.H. Silva

I'd like to thank everyone (you know who you are) who sent encouraging suggestions  and comments...

All programs listed in the Winsort Supported Formats section of this Help file are copyright their respective owners. They are listed here for reference purposes only. I make no guarantee of their functionality or compatibility with Wincode or Winsort.


Disclaimer

DISCLAIMER: I MAKE NO GUARANTEE THAT THIS SOFTWARE WILL FUNCTION FLAWLESSLY NOR WILL I TAKE ANY RESPONSIBILITY FOR DAMAGES INCURRED BY THE USER EITHER ACCIDENTALLY OR INTENTIONALLY THROUGH THE USE OF THIS SOFTWARE. THE SOFTWARE IS PROVIDED AS IS. IT IS FREEWARE AND YOU MAY DISTRIBUTE IT AS SUCH PROVIDING YOU KEEP THE PROGRAM FILES, THE ASSOCIATED DATA FILES AND THE INTRODUCTORY TEXT FILE IN ORIGINAL INTACT CONDITION. THE EXECUTABLE PROGRAMS SHOULD NOT BE REVERSE-COMPILED IN ANY WAY. THE PROGRAM MAY BE DISTRIBUTED IN SHAREWARE\FREEWARE PACKAGES IN WHICH FEES COVER DUPLICATION/MEDIA COSTS. THIS PROGRAM MAY NOT BE SOLD COMMERCIALLY OR PRIVATELY WITHOUT THE PERMISSION OF THE AUTHOR.


Stop

This option appears in the main menu when Wincode is either encoding or decoding a file. By choosing Stop, you terminate the en/de-coding of the current file.

If Wincode is encoding, it will finish the file it is currently on and a) move on to the next file to encode if executing a 'batch' process (i.e  Drag and Drop); or b) stop everything.

If Wincode is decoding, it will stop decoding the current file but will still search through the rest of the input file for more encoded files. If this is a 'batch' process, Wincode will continue to the next file when it finishes scanning.

As a precaution, Wincode will prompt for confirmation before stopping the current process.


Quit

This option appears in the main menu when Wincode is either encoding or decoding a file. By choosing Quit, you terminate the en/de-coding of the current file and all successive files if you are running a batch job.

As a precaution, Wincode will prompt for confirmation before quitting all jobs.


 Drag and Drop

The drag & drop feature essentially allows batch en/de-coding. To use this option, open a session with any file-manager program that allows Drag & Drop processing of files. Then, select all the files you want to en/de-code and drop them on the Wincode window (or icon). Each file is processed using the specifications of your active Configuration. Wincode will DECODE all dropped files which carry the extension you set for decoded files (see Decode Extension); otherwise it will ENCODE them. For decoding multi-part files, you only need to drop the FIRST file of the series (Wincode finds the rest). However, you can select an entire directory of files (single and multi-part files to be decoded AND files to be encoded) and Wincode will correctly analyze and  en/de-code all valid files (you will notice it searches through invalid files very quickly). When Wincode is batch processing (i.e. you've dropped files on it), many default error messages are suppressed. If a decoded file appears corrupt, try decoding it again by using the File|Decode menu choice with Error Checking ON and  Wincode may report the errors.

NOTES:

1) When files are Dropped on Wincode for batch processing, the Window Caption changes  to 'xxx % processed' indicating the percent of the Batch job completed.

2) If you wish to have Winsort pre-process the files to decode, you MUST drop ALL the file parts of a multi-part file. I suggest dropping everything on Wincode and letting Winsort/Wincode do the work for you.

3) If you try to decode a non-sense file, Wincode will scan and ignore it.


Wincode.INI
Wincode.INI File

The format and explanations are as follows:

(NOTE: Unless otherwise stated, 0 = false; 1 =true)

[Encode] 	(all these parameters affect ENCODING)

LineCheckSum= (determines line checksum state)

FileCheckSum= (determines file checksum state)

SetNameFirst= (allows user to rename each encoded file as it is created)

BytesPerFile= 	(stores the output file length in BYTES)

Extension= 	(stores the default encode file extension)

Directory= 	(stores the SET encoded directory location)

Headers= 	(determines the include headers state)

IncludeTable= 	(determines whether or not to include tables)

SingleFile= 	(determines whether or not to encode to a single file)

CodeType= 	(sets the code type: 1=UUE; 2=XXE; 4=USER)

FileType= 	(sets the text file type: 1=MS-DOS; 2=MAC; 3=UNIX)

EMBLFile= 	(determines whether or not to create EMBL compatible files)

DirOption= 	(sets the directory type: 1=default to location of input file; 2=set on encode; 3=SET for all files - uses Directory value above)

Mode= 	(added by User if necessary)

[Decode] 	(all these parameters affect DECODING)

SetNameFirst= (allows user to rename each decoded file as it is created)

RunDecoded= 	(determines whether or not to run decoded files)

ErrorChecking= 	(determines the state of Error Checking)

TempDirOn= 	(determines whether or not to dump files after decoding)

TempDir= 	(stores the location where temporary files are created)

Directory= 	(stores the SET decode directory location)

CodeType= 	(sets the code type: 1=UUE; 2=XXE; 3=AUTO; 4=USER)

DecExtNum= 	(stores the number of decode extensions)

Ext#= 	(keeps track of each decode extension by number)

DirOption= 	(sets the directory type: 1=default to location of input file; 2=set on decode; 3=SET for all files - uses Directory value above)

[Wincode] 	(Wincode over-all defaults)

WhereX= 	(co-ordinate for upper left corner of Wincode window)

WhereY= 	(co-ordinate for upper left corner of Wincode window)

CreateReportFile= (determines whether or not to create a Report File)

StartAsIcon= 	(determines whether or not to start Wincode as an icon)

Table= 	(stores the user created table...this value always ends in a tilde (~) )

Directory= 	(location of default working directory)

CloseWhenDone= (determines whether or not to terminate Wincode after execution)

SoundEffects= (determines whether or not to use Multimedia sounds)

Winsort= 	(determines whether or not to run Winsort first)

Version= 	(this value is created and used by Snappy Installer)

if they exist:

[Winsort] 	(added by User if necessary)

WinsortExe= 	(added by User if necessary)

WinsortDir= 	(added by User if necessary)

WinsortSwitch= 	(added by User if necessary)

[WinsortIn] 	(used by Winsort)

[WinsortOut] 	(used by Winsort)

***This file will be updated each time a new version of Wincode is installed using the Snappy Installer provided. Otherwise, the file may contain extraneous text and Wincode may NOT function properly.


Include Directive

The 'include' directive allows Wincode to identify the next file in sequence without relying on the previous file's name (ordering scheme). The format is:

---file start

(ENCODE TEXT)

include nextfile.ext

---file end

Though the directive is *only* used by EMBL files, it is recognized by Wincode regardless of the file type it is decoding. You can manually edit-in the 'include' directive at the end of ANY encoded file to redirect Wincode.


Wincode Client Area

The Client Area specifies the enclosed 'Window' portion (not including the menu or titlebar) of the executing Wincode task. This area is used to show Wincode's progress during en/de-coding. Double-Clicking a Mouse button on the Client Area produces a given menu depending on the button used. See below:


This is the Wincode Client Area. Double-Click here to obtain the indicated Popup menus.


This is a standard three-button Microsoft Mouse.


Double-Click this button to view the File Menu Popup.


Double-Click this button to view the Help Menu Popup.


Double-Click this button to view the Options Menu Popup.


Mode

Wincode sets the default encoding mode to 644 (owner:rw-; group:r--; public:r--). This value is only relevant on Unix machines with decoders that set the file permission. File permission determines how a user can access a file. The categories and their mode values are:

- = no permission = 0

r = read; access to view the file = 4

w = write; able to change the file contents = 2

x = execute; able to run the file as a command = 1

To obtain a 'mode' value, you add up the permission values for each field (owner,group and public) and list them in that order. There is actually a 'directory' field also but this is set to zero for 'files' (mode values for files all begin with 0; so 644 = 0644). Generally, when you create a file on a UNIX machine, the file has '-rw-r--r--' (0644) file permission. You can see this by typing in 'ls -l' at the UNIX prompt (you will see that directories have a 'd' as the first field). Wincode follows this standard and sets the mode accordingly. DOS based machines, however, don't incorporate User restrictions on file access. All files on a DOS machine are essentially considered 'public'. As Wincode is designed for Windows 3.1 (running on DOS), you needn't worry about the mode value; it is ignored.

However, for those of you who want the option of changing the mode, you can do it manually. To do this, you must edit the WINCODE.INI file and add the Mode= field under the [Encode] section. The mode you set MUST be only three (3) characters long and should conform to the guidelines stated above.