
    Ŀ
                               UpLoadProcessor Revision History File
                     
             ķ    
                           The following is a list of the most
        Ľ  Ľ           recent changes made to the ULP system
                               by revision level, in reverse order.
     
      ͼ


   *** NOTE:  Refer to the UPGRADE.TXT file for upgrading instructions! ***


1.07b    - Eliminated a "null pointer assignment" error caused if you disabled
(4/24/94)  all disk logging (by blanking the disk log filename field in ULPSM).

           Fixed an obscure bug where if a nested archive was encountered by
           ULP, ULPTEST or ULPDB in the format of the first archiver configured
           in ULPSM, it would not be detected.

1.07a    - Fixed VENDINFO.DIZ importing if you had your maximum number of lines
(4/7/94)   set to greater than the FILE_ID.DIZ limit (10 lines).

           Improved ULPDB's compilation/sorting speed while making it much less
           susceptible to errors.

           Reduced the size of ULPSM by about 20K to 25K.

1.07     - Added support for registration key files, which will be utilized in
(3/12/94)  version 2 of ULP.  This version will search for your ULP.KEY, and if
           found, will use the information within.  If a key file is not found,
           it will use the original registration code system.

           By modifying the buffer handling, the runtime memory requirements of
           ULP, ULPTEST and ULPDB have been reduced by roughly the size of your
           database buffer (internal duplication system users only).

           On request of a user, I increased the number of upload directories
           that may be configured in ULPSM to 297 (!) upload directories, up
           from 24.  He only asked for 99 directories, but decided to overkill
           a tad... <bg>  This was released separately as ULPSM 1.06a, filename
           ULPSMBIG.ZIP.

           Documented the previously undocumented -D switch in ULP.EXE.

           Added a command-line switch to ULPSM to enable it to initialize the
           process data file from the command line.  This was done in
           preparation for ULP 2.0, which removes that function from ULP.EXE.

           Added checking in ULPSM to determine if changes occurred in the
           source subdirectory definitions in the upload directory
           configuration, and warn that re-initializing of the process data
           file may be necessary.

           Embellished the ZDCSULP error messages a little to help track down
           problems associated with the interface.

           Renamed the ULP.CFG and ULPDIR.CFG to SAMPLE.CFG and SAMPLE.DIR,
           respectively, to prevent overwriting of your configuration files
           when upgrading versions.

           Fixed ARJ security envelope detection (yes, again).

           Tweaked the segment definitions for the segmented sorting algorithm,
           since a user experience an "segment too large" error.  Along the
           same lines, ULPDB now offers a -F command line switch where a user
           can force a segment size in the event the error occurs again.

           Some users experienced lockups running ULPDB.  As I discovered
           today, ULPDB never locked up; the sorting algorithm I use doesn't do
           well when a huge level of duplicate records are present or when
           records are worst-case ordered.  In response, I added a "whirlybird"
           indicator to show that ULPDB is still working during the sort step.

           Attempted to fix external deletion mode for DR-DOS users.

           The ULP.EXE GIF testing module was going to the wrong work
           subdirectory to try and find duplication data, meaning it never
           failed GIFs for duplication.

           The @CR@ variable was broken in the GIF information line.  Fixed.

           ULPDB would barf if it encountered blank lines in a list file passed
           to it via the -A parameter.  Fixed.

           On some systems running the latest version of DESQview, ULP would
           freeze during time delays.  Changed timing functions to Borland's
           internal functions in the 386 code (since it is the only version
           compiled 100% Borland), as DESQview seems happier with those timing
           functions.

1.06     - Added preliminary support for the new VENDINFO.DIZ standard for
(1/28/94)  internal description files.  Further support will be added in a
           future version if this standard catches on.

           At the request of a couple of users, ULPSM has been modified to
           permit editing 24 upload subdirectory configurations, up from the
           previous limit of 15.

           Also at the request of a user, increased the number of configurable
           special-case file extensions to 24 from 10 (this applies to both
           "extensions to never process" and "extensions to process and
           compress").

           Added a sample configuration for the new UC2 compression format to
           the sample configuration file.  Note that this format is identified
           only by extension.  Signature identification will not be implemented
           until the archiver becomes more widespread and mature.

           Altered the logging of "files previously processed" to place 4
           filenames per line, reducing log file bloat for those with large
           numbers of files in their source upload directories.

           Removed the archive info line from "file extensions to never be
           processed" files, since the data is generally inaccurate.

           The ARJ security envelope format was changed in ARJ version 2.4,
           breaking ULP's secured ARJ archive detection.  Fixed.

           Some users reported that the ULPTEST pre-verification test was
           broken, but I was unable to replicate it.  However, after reviewing
           the code, I found the problem and now I can't figure out how it ever
           worked in the first place!  I wasn't properly opening the temporary
           data file for the pre-verification routine.  Fixed.

           Oops...ULPDB was returning an errorlevel of 0 regardless of what
           happened during its execution.

           ULPSM archivers configuration menus would not permit numbers in the
           file extension.  Fixed.

1.05     - Finally nailed that swapping lockup problem that has been affecting
(1/6/94)   a small precentage of the people using ULPTEST!  The direct comm
           interrupts were left hooked during the swap, and if something
           (keystroke, line noise, etc.) were to be received by the modem
           during the swapped spawn, the unservicable interrupt could lock the
           system.  ULPTEST now shuts down the direct comm I/O prior to a spawn
           and restarts it after the returning from the spawn.  This, in
           conjunction with updated library code, should fix all swapping
           problems.

1.04     - Disk swapping has been broken since swapping was first introduced
(12/31/93) into ULP during early 0.9x beta testing; this was due to a bug in my
           third party library.  Fixed.

           Added the file SWAPPING.DOC to fully explain the ins and outs of
           swapping with ULP.  Read it...the rare lockup problem (experienced
           by a half-dozen or so out of a few hundred ULP users) has not been
           tracked down by the library vendor as of this release.

           ULPTEST will now follow the description column number as configured
           in ULPSM for description secondary lines. Originally, ULPTEST forced
           this value to 32, relying on ULP.EXE to correct the description in
           the event, which was not compatible with ULPTEST's slow mode.

           It appears I was overzealous in my attempts to not falsely detect an
           ARC format archive, and was not recognizing some valid ARC archives.
           Fixed.

           Found that if an archive had a sufficient number and layers of
           nested archives, ULPTEST could abort with a stack overflow error.
           Corrected by increasing ULPTEST's stack size by 1K. This was
           discovered when processing V12N21.ZIP, which has multiple 4-level-
           deep nested archives within.  ULP.EXE does not exhibit this problem.

           ULPTEST's local mode switch (-L) was not working. Fixed.

           If you had your default archiver as the first archiver in page 1 of
           the "archivers" menu, ULP.EXE would insert the wrong new file size
           for an archive that was converted from a format other than your
           default. Sorry 'bout that...

           Fixed a bug where very badly damaged archives could hang ULP while
           screening for corruption.

           Learned that ULP would still strip leading spaces regardless of the
           smart word-wrapping toggle (it shouldn't have with word-wrapping
           off). Fixed.

           Fixed a bug where spawned processes on nested archives could fail
           for an invalid command line parameter due to an improperly restored
           pointer if no @-variable was used in the command line.  This bug has
           existed since the 0.90 versions of ULP, but apparently no one found
           it until I found it recently.

           If the work subdirectory drive letter wasn't capitalized, ULP would
           incorrectly think there wasn't enough space available on the work
           drive, and would default to the startup drive as the work drive.
           Fixed.

           ULPDB's view function would not operate on a file located on a
           write-protected device (e.g. CD-ROM drive). Fixed.

1.03     - Changed the swapping code (yes, again) because the code installed in
(11/6/93)  version 1.02 was mangling the direct comm I/O after the first swap.
           Also, the type of swapping is now configurable (see the General
           Options menu). Options for swapping are now: (N)one, (E)MS, (X)MS,
           (D)isk and (A)uto.

           Added the brain-dead newest file age checking algorithm back into
           ULP as an option (see the Age Checking menu). I *strongly* recommend
           you stick with average age checking, as it's much more resistant to
           tampering than simply basing acceptance off the newest file, but
           some people seem adament about using a newest file algorithm.

           Removed the "elapsed time" code, saving about 1.5K of executable
           size each on ULP, ULPTEST and ULPDB.

           Shortened the length of the @-variable names that ULP utilizes in
           order to free up a few more characters for the configuration
           information fields in ULPSM (refer to the documentation for the new
           variable names).

           Removed the erroneous FOSSIL port limitation of 8 (port numbers 0
           through 7). Any port number will now be accepted on the command
           line.

           Fixed a bug in ULPADS that, under certain conditions, incorrectly
           identified ads as having already been entered into the CRC database,
           when in fact, they had not.  The end result was the perception that
           ULP was not removing some BBS ads.

           Fixed a problem where ULPTEST would still attempt to access the comm
           port regardless of the configuration. Also improved ULPTEST's
           handling of comm port detection and determination. Due to some users
           having problems with stray DSZPORT variables, the order of the comm
           port determination was changed to:
               1. It utilizes the information directly passed on the command
                  line.
               2. It will search for the PCBDIR, PCBDAT and PCBDRIVE (optional)
                  environment variables to locate the PCBOARD.SYS and
                  PCBOARD.DAT files.
               3. It will look in the current subdirectory where ULPTEST was
                  started from for the PCBOARD.SYS and PCBOARD.DAT files.
               4. It checks DSZPORT environment variable for the comm port
                  information.

           Discovered that ULP and ULPTEST were not including GIF files in the
           byte counts, making the @BYTE@ variable incorrect for GIFs and
           archives with nested GIF files. Fixed.

           Fixed a bug where ULPTEST would not properly count the number of
           executable duplicates, thereby skewing the percentages. (I think
           this bug only affected ULP's internal duplication system).

           ULPTEST did not properly handle what PCBoard was passing for 115,200
           baud in the 5 character space allocated in PCBOARD.SYS for the DTE
           baud rate. Fixed.

           Mike Cocke is now a reseller of my shareware products, and can
           accept credit card registrations. Please see the REGISTER.FRM file
           for more information.

1.02     - In an effort to further improve ULP's already frugal memory usage,
(10/7/93)  the internal database buffer size is now user selectable. Three
           sizes are available for optimum database speed and memory usage:
           2.5K, 5K and 10K. The smallest should be used for small databases
           (less than 1 meg) or in severe memory conditions. The largest should
           prove *slightly* faster for large databases (greater than 3 megs).
           Previous versions of ULP had the database buffer hard-coded to 10K.
           (This buffer is used only for internal database users; no buffer is
           allocated when ZDCS is used).

           Changed swapping code to what appears to be a more stable and
           compatible routine. In addition, an additional 25K of memory is now
           available with swapping enabled.

           Since ULPTEST fast and normal modes do not repack archives, the BBS
           ad checking was not enabled. This posed other problems, such as
           inaccurate duplication levels due to the BBS ads being included in
           the statistics. ULPTEST fast and normal modes now perform BBS ad
           checking but do not remove the ads until ULP.EXE reprocesses the
           file in the event.

           Argh! Under certain circumstances, ULPTEST would create an archive
           of the same name as being tested, except with the extension .ULP,
           containing only a comment.

           ULPSM would not allow a non-zero errorlevel to be configured for a
           GIF file checker. Fixed.

           With some help from the Fidonet C echo, I was able to fix my FOSSIL
           code for the Microsoft compiler, and have switched ULPTEST back to
           Microsoft C 7.0.

           Updated my direct comm libraries to the latest version.

1.01     - The "error disposition" and "virus disposition" functions now have a
(9/22/93)  third option: (K)eep. When (K)eep is selected, ULP will keep the
           defective uploads, but will not rename them. Note that selecting
           (K)eep prevents the use of ULP's override mode, since override mode
           keys off of the file extension that (R)ename produces. However, the
           purpose of the (K)eep function is to allow systems to more easily
           retain a rejected file.

           The "insert information line" flag has been removed from ULPSM. ULP
           and ULPTEST will now insert a line only if one is defined, giving
           the increased flexibility to add an archive info line, but not a GIF
           info line, vice versa or both.

           Added a new function to ULPSM's description processing menu: "Insert
           lack of description line". By setting this to 'Y', ULP.EXE will move
           files that have no description to the destination area, inserting
           the description line "No description available". Setting this to 'N'
           operates in the same manner as previous versions, where the file is
           not moved.

           ULPSM will also accept an environment variable, defined using the
           %VARIABLE% convention DOS uses, in the work subdirectory field. Note
           that the environment variable must still conform to the requirements
           for the work directory paremeter (trailing backslash, path length,
           etc.).

           Increased the maximum allowable number of description lines to 60,
           to match PCBoard 15's limit. Note that setting the limit higher will
           use more memory in ULP and ULPTEST.

           Extended ULPDB's segmented sorting algorithm to allow a complete
           recompile of a duplication database of up to 128 megs in size (I had
           one ULP user creeping up on the previous limit of 8 megs in size).

           Prior to this release, GIF file testing within ULP could not be
           disabled; ULP would always detect the GIF file and attempt to test
           it. It is now possible to disable GIF detection and testing entirely
           if all minimum image parameters are set to 0 and the GIF file tester
           command line is blanked out.

           Removed the bomb archive checking code in ULP and ULPTEST in favor
           of the improved disk space checking routine. Previously, ULP and
           ULPTEST would fail an archive if a file contained within was over
           the hard-coded limit of 5 megabytes in size; this is no longer the
           case (unless there is insufficient disk space to decompress the
           archive).

           Due to the ever-increasing memory requirements of SCAN, an example
           F-PROT command line has been added to the default ULP configuration
           file for those who wish to change virus testers, or simply want the
           extra safety of two virus testers.

           ULPTEST slow mode was not following the archiving flags for nested
           archives and nested SFX archives. ULPTEST also did not detect ZIP
           -AV stamps or ARJ security envelopes (this was by design when only
           normal and fast modes were available; I forgot to install it when
           slow mode was added).

           ULPSM would not allow numerals to be included in the special case
           file extensions. Fixed so all valid filename characters are
           accepted.

           Finally tracked down a long-standing bug that would process nested
           archives twice under certain circumstances.

           Fixed a problem where the privileged user list handling wasn't
           working exactly as planned when ULPTEST was run in normal or fast
           modes.

           Fixed a problem where ULPTEST normal and fast modes would not detect
           that the same file uploaded twice between events were duplicates.

           ULPSM would erase the unpacking command line in the archivers entry
           screen if the pack command was edited. This error also produced
           archiving errors if the command line extended to within 3 characters
           of the end of the packing command line field. Fixed.

           Cleaned up a few "Divide by zero" errors that would appear under
           some conditions.

1.00     - First non-beta production release.
(8/28/93)

0.91 through 0.99 - Beta test versions...

0.90/A through 0.90/I - Alpha test versions...
