
    Ŀ
                               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: I've gotten several questions regarding ARJ SFX archives and ULP's
        inability to detect them. This is not a limitation of ULP, but bugs in
        ARJ versions 2.21, 2.21a and 2.22. The ARJ SFX signature was not
        inserted into the ARJ SFX header, therefore no program relying on this
        signature (such as ULP) cannot detect ARJ SFXs created with these
        versions. Versions 2.20 and 2.30 correctly insert the signature.


0.96    - A fault in the duplication system appeared on my system recently,
(9/6/92)   forcing a change in the database file format. Unfortunately,
           existing databases cannot be converted, as one piece of information
           required is not maintained. Hence, it will be necessary to
           regenerate the duplication database. Also, you will note the
           database will be about 60% larger in size. There is good news: the
           scanning routine is greatly improved (3 to 5 times faster by one
           user's estimation), which should greatly reduce the time required to
           rebuild the database, especially systems running CD-ROMs and/or
           LANs. This change will also allow development of a purge function
           for removing old CRCs from the database. NOTE: The FWKCS import
           function still works if you would like to import old data into your
           database for improved integrity. The ZDCS import function has been
           disabled until I can work on deciphering the database (I need to see
           if the information required is available).

           CONFIGURATION FILE CHANGE!!!  ULP and ULPTEST can now be forced to
           pass, without testing, specific files defined by file extension.
           This is intended to be used for non-DOS files such as Unix Tar Z and
           Macintosh files that some boards accept. Refer to the NO_PROC_EXT
           for more information.

           ULP, ULPTEST and ULPDB now check the drive specified in WORK_DIR
           to insure there is enough space left for 4 times the size of the
           archive being processed. This will help prevent unpacking errors on
           RAM disks. If there is not sufficient space, it will unpack on the
           drive where the file is located (a warning for CD-ROM users). Note
           that you MUST include the drive spec in the WORK_DIR parameter, if
           used.

           CONFIGURATION FILE CHANGE!!!  ULP, ULPTEST and ULPDB are now capable
           of swapping themselves out of memory when executing external
           programs. While I have taken great pains to keep ULP's memory
           requirements low (128K typical), small DESQview windows can be
           difficult to work in, especially with programs like ARJ that have
           large memory requirements. Using the SWAP parameter in the
           configuration file, the ULP programs will swap to EMS, XMS and disk
           (in that order).

           ULP and ULPTEST now check the number of subdirectory levels
           contained in an ARJ archive that has embedded pathspecs. If all
           files contained within are at the same level, the file will be
           processed without regard to paths. If there are varying levels, then
           it will be rejected as before for embedded paths. The reasoning for
           this is that ARJ includes pathspecs by default, and many users who
           upload using ARJ don't realize it. If this seems like a good idea to
           incorporate on ZIP archives, let me know. I'm undecided since a
           person has to consciously force pathspecs to be kept in a ZIP file;
           logic would indicate that the person had a reason for doing so.

           The age checking has been changed to fail an archive for average
           age. This change was made because occasionally a user would upload
           an old archive, but after having tinkered with a file (e.g. a
           configuration file), resulting in it being incorrectly passed.
           Instead of the file being rejected based solely upon the newest file
           date, an average age is now calculated, and if the average is
           greater than AGE_LIMIT, the archive will be rejected.

           ULPDB can now merge two ULP CRC-32 databases together, using the -M
           command line switch. This will be used to develop pre-built CRC
           databases for CD-ROM disk that sysops can merge with their existing
           CRC databases for fast installation.

           ULP, ULPTEST and ULPDB now check the temporary subdirectory prior to
           unpacking for stray files and deleting if necessary. This is needed
           if one of these programs hangs or is aborted for some reason, since
           unpacked files may be left behind.

           ULPDB will now add unknown format files to the CRC database when
           discovered. Previously, these files would not be added, resulting in
           various .DOC, .TXT, .MAC, etc. files from being included in the
           database.

           ARJ SFX archives would always fail the screening process. Fixed.

           More recoding for improved speed and efficiency.

           Also, Salt Air (PCBoard Support BBS) has granted me an ULP support
           conference on their system. It is conference #42, and I will be
           monitoring it at least twice per week.

0.95    - The ULP programs now operate off of a binary configuration file
(7/30/92)  generated by the ULPCFG program. In it's current incarnation, ULPCFG
           simply reads in your existing text configuration file and outputs a
           binary version (don't remove your text version though; it will be
           needed to make configuration changes). However, by doing so, ULPCFG
           does extensive data checking searching for common configuration
           errors. This program will be evolving over the next few revisions
           into a full-fledged configuration program, eliminating the text file
           entirely. NOTE: please implement all configuration file changes into
           your text configuration prior to running ULPCFG.
           (ULPCFG syntax:  ULPCFG -TULP.CFG -CULP.BIN)

           After answering some questions about ULP registration codes, the
           absurdity of having 2 codes dawned on me since nothing would change
           if I only had a single code. However, a benefit to having a single
           code would make changing executable types easier. Beginning with
           this version, only the 086+ registration code is required for all
           versions.

           CONFIGURATION FILE CHANGE!!!  ULP is now capable of updating your
           DOWNLOAD.TXT file with the correct extension if the archive format
           has been changed during processing. This feature will allow
           utilities that scan DOWNLOAD.TXT for file information to reflect
           correct information. Refer to the UPDATE_DLTXT and DLTXT_FILE
           parameters in the configuration file.

           CONFIGURATION FILE CHANGE!!!  Against my better judgement, I have
           installed the ability for ULP to insert BBS ads. To me, this seems
           hypocritical, given the ability of ULP to remove the damned things.
           However, the request has been made many times, so I have added the
           ability. I STRONGLY recommend against them; BBS ads are aggravating
           to other sysops, so please be considerate and use the ARJ or ZIP
           comment instead. Refer to the BBS_AD_FILE parameter, which is
           commented out by default.

           CONFIGURATION FILE CHANGE!!!  The DEST_HDR parameter is no longer
           required. Delete it from your text configuration file, or else
           problems will result.

           ULP and ULPTEST now use the WORK_DIR subdirectory as the base
           directory for temporary file storage during processing. This can be
           set to a RAM disk for greater speed and less hard disk wear and
           tear. However, be careful that you have enough free RAM disk space
           to decompress a large archive, or the file will be failed as an
           unpacking error.

           ULPDB can now import ZDCS databases as well as FWKCS databases into
           an ULP database for ease of installation and transition from a
           previous system. See the '-I' command line switch in the
           documentation.

           ULPDB now requires much less memory to compile the database under
           most conditions, allowing use in low memory situations such as small
           DESQview windows.

           ULP now retains the original archive date and time when running in
           mass conversion mode (-M) versus stamping the file with the
           conversion date and time.

           ULP and ULPTEST now maintain the file date and time stamps on the
           files when copying. Before, sysops wanting to date their archives
           with the newest file date instead of the current date (for example,
           using the '-o' parameter for PKZIP), was getting the date stomped by
           my file-copying routine. Fixed.

           The ULP programs could not use a root directory for any of the
           pathspec parameters. The only place this usually posed a problem was
           RAM disks being used for the work directory, and just specifying
           something like "D:\" would cause ULP to choke. In addition, the ULP
           programs will attempt to create the work subdirectory if not found
           upon startup. This will also benefit the use of RAM disks for ULP
           programs.

           ULPDB 0.94 had a bug where the CRC database index file would be
           written with 0 for the indeces under certain conditions. Fixed, and
           was generally distributed as ULPDB 0.941.

           ULP had a bug in which if an archiver command line containing the
           DOS redirection character '<' was incorrect or the process failed,
           ULP would remove the original files, create 0-byte files in the
           destination directory and log huge files sizes in the log file.
           Fixed a data-damaging bug, however, some of the problem was tracked
           to DR-DOS not handling redirection the same as MS-DOS. DR-DOS
           requires a space before and after the redirection character; this is
           not required with MS-DOS. For example:
               ARC_PACK pkzip -a -ex -z<c:\ulp\comment.txt @ARCHIVE@ @FILES@
           would fail under DR-DOS, where this would function correctly:
               ARC_PACK pkzip -a -ex -z < c:\ulp\comment.txt @ARCHIVE@ @FILES@

           Under certain circumstances, ULP would not delete a BBS ad file
           contained in the database from an archive. Fixed.

           Extensive recoding of the programs for improved efficiency and error
           checking.

           Upgraded compilers to Borland C++ version 3.1, allowing generation
           of 386-specific executables for those registered users with 80386 or
           80486 machines.

0.94    - ULPTEST is now capable of inserting internal descriptions files
(6/25/92)  during upload processing if it runs in NORMAL mode. If a file is
           tested in FAST mode, the user-supplied description will remain
           intact (since the archive is not unpacked, ULPTEST cannot read the
           internal description file). Note an additional command-line switch
           is required for the upload description file passed by PCBoard as the
           %3 batch file parameter. Refer to the '-D' switch in the
           documentation.

           CONFIGURATION FILE CHANGE!!! ULP and ULPTEST now have a second
           duplication filter: executable duplication limit. Refer to the
           EXE_DUPE_LIMIT parameter in the configuration file and docs. This
           addition also modified the logic of the DUPE_LIMIT; it is now a
           lower limit for archive passing, not an upper limit for archive
           failure. I strongly suggest values of 50 for DUPE_LIMIT and 80 for
           EXE_DUPE_LIMIT. These changes will greatly improve the objectivity
           of determining an archive's duplication.

           CONFIGURATION FILE CHANGE!!! ULPTEST can now be forced to suppress
           its header that is output to the user through the COM port, giving
           a seamless look between PCBoard and ULPTEST. See the SUPPRESS_HDR
           information. Note that this will work only for registered users...

           ULP and ULPTEST now detect imbedded paths in ARJ and ZIP files and
           will not process the file, renaming it to .PTH. This will prevent
           the unpacking of these archives; if unpacked without pathspecs
           maintained, the potential of losing data in these archives is high.

           ULPDB can now import FWKCS databases into an ULP database for ease
           of installation and transition from a previous system. See the '-I'
           command line switch in the documentation. Note: if someone can
           provide me with a ZDCS database and file format information, I can
           implement a database import function for ZDCS as well.

           ULPDB can now be forced to unpack and manually calculate file CRC-32
           values for all archives when adding files to the database. Refer to
           the '-U' command line switch. This new switch only has meaning when
           used in conjunction with the '-A' switch.

           ULPDB no longer implicitly calls a database compilation (-S) when
           new data is added to it. The -S switch must now be included on the
           command line if compilation is desired.

           The database compilation routine in ULPDB has been dramatically
           improved (yes, again!) in terms of speed by implementing a
           sort/merge approach in addition to the straight database sort.

           ULP and ULPTEST now screen ARJ archives in addition to ARC, PAK and
           ZIP archives for DOS reserved keywords to increase system security.

           The archive identification routine has been strengthened to reduce
           false identification of files are archives (specifically false ARC
           and ZOO identifications).

           The age computation used in ULP and ULPTEST has been improved to
           interpolate partial months for better accuracy. Also, problems
           caused by ages that are out of range (such as prior to 1980) have
           been corrected.

           ULPTEST would require PCBOARD.DAT and PCBOARD.SYS whether COMM_IO
           was turned on or off. Now, if COMM_IO is set to NO, ULPTEST makes no
           attempt to find PCBOARD.DAT or PCBOARD.SYS. In addition, if a local
           node is set up to run ULPTEST (setting the COM port number to 0 in
           PCBSETUP), no attempt is made to communicate with any serial port.

0.93    - Two new command-line parameters have been added to ULP.EXE. '-R'
(5/9/92)   will retest all archives found in the subdirectory passed to it. It
           will not use duplication checking or age checking; it was installed
           to allow the periodic retesting of archives for viruses, etc. '-M'
           will retest and convert all archives found in the subdirectory
           indicated; this can be used for mass archive conversion. Note that
           these functions cannot be used on a CD-ROM or other write-protected
           media at this time.

           A new command-line parameter has been added to ULPTEST.EXE: '-H',
           which defines the COM port handshaking method. Valid arguments are
           'hardware' (RTS/CTS), 'software' (XON/XOFF) or 'both', the default
           being 'hardware'. If you use hardware handshaking, then you do not
           need to specify a different handshaking method. (The previous
           version of ULPTEST defaulted to 'hardware', so if it operated
           correctly, then no changes are necessary).

           ULPADS has a new command-line parameter: -M will merge two BBS ads
           databases together into a single database. This will allow a sysop
           to keep his/her database intact, while adding any new BBS ad data
           included in the distribution database. Refer to the documentation
           for more information.

           The database validation routine has been removed from ULP.EXE and
           ULPTEST.EXE; it was just too slow on large databases. It is retained
           in ULPDB.EXE, however, to validate the database before compiling. It
           is no longer a configurable parameter; it is now part of the
           standard process of compiling the database. Remove the DB_VALIDATE
           parameter from your configuration file.

           The segmented sorting algorithm in ULPDB has been improved by
           scaling the number of segments to best fit the database size. Valid
           numbers of segments are 2, 4 and 8 in addition to the original 16,
           automatically determined by ULPDB. Developing this has improved the
           sorting speed by up to 40% over the original 16 segment sorting (if
           a smaller number of segments is used).

           Some improvements have been made in the archive viewing function of
           ULPDB; age has been added to the display.

           If you ran ULPDB in the file viewing mode (-V), you *had* to supply
           a path to the file being viewed. If you were in the current
           directory where the file to be viewed was located, and did not
           provide a path, ULPDB would fail saying it could not locate the
           file (duhhh...). Fixed.

           The file identification routine would incorrectly identify a file
           *within* an archive that ended with a .ARC extension as being an ARC
           format archive. While this may sound serious, this bug has been in
           the code since day one, and someone just now noticed it; this bug
           would cause false archive failures while unpacking.

           Bad GIF files were not being renamed to .BAD as advertised. Fixed.

           Oops...the database validation feature could not be disabled. Fixed.

           NOTE: Sorry for the length of time to get this version out; I've
           been extremely busy with work, a couple of graduate classes and my
           BBS converting to a Fidonet hub. Most of this is behind me now,
           allowing me to spend more time programming ULP.

0.92    - ULPID.EXE has been removed from the ULP distribution archive. It
(3/29/92)  will be re-released at a later date as a separate product for
           non-ULP users. The original intent for ULPID is no longer necessary,
           as ULPTEST performs all of the same checking ULPID did (and has for
           some time); there is no need to bloat the distribution archive. If
           you need to branch in PCBTEST.BAT for some reason, use PCBoard's
           TESTFILE.EXE utility.

           CONFIGURATION FILE CHANGE!!! ULPTEST is now capable of generating
           status information for the user online through the COM port. The COM
           port information can be added on the command line, or read from
           PCBOARD.DAT and PCBOARD.SYS, defined either from the command line or
           the PCBoard environment variables. Refer to the COMM_IO parameter in
           the configuration file and documentation. Note: the comm I/O
           routines I am currently using support only IRQ2-7; this should
           support most systems. If you require a high interrupt, please
           contact me.

           CONFIGURATION FILE CHANGE!!! The maximum number of lines to be
           inserted from an internal description is now configurable. CDC has
           defined that the maximum number of lines for FILE_ID.DIZ is 10; ULP
           previously had no limit (this probably wasn't wise). Refer to the
           DESC_LIMIT parameter in the configuration file and documentation.

           CONFIGURATION FILE CHANGE!!! ULP and ULPTEST can now validate the
           CRC database before using it, to ensure that they are not using a
           corrupted database. This was installed for users who may be nervous
           about the validity of their database; I want to emphasize that there
           have been NO reports of corrupted databases to date. Note that this
           only validates the CRC for the period of time since the last
           database compile (-S option). Make backups of your database
           frequently, as nothing can be done to recover a corrupted database.
           Refer to the DB_VALIDATE configuration option in the documentation.

           The node number parameter is now optional in ULPTEST. ULPTEST will
           attempt to obtain the node number from PCBOARD.SYS, the path to
           which is either defined on the command-line or from the PCBoard
           environment variables. If you have the environment variables
           disabled (using the /NOENV switch in PCBoard), you will have to
           create a separate PCBTEST.BAT for each node with the specified node
           number on the command line. Refer to the documentation for a
           complete explanation.

           The command line switches have been changed for the ULP system
           programs. All switches now have '-' identifiers so that arguments
           can be included in any order, and to support wildcards in the future
           (I hope). Refer to the documentation for more information.

           A function has been added to ULPDB to review an archive and report
           which files inside the archive are already in the database. This
           feature can be used to help determine if an archive rejected for
           duplication should be accepted.

           CONFIGURATION FILE CHANGE!!! An ASCII text file viewing utility
           (such as Vernon Buerg's LIST) is required for the new ULPDB viewing
           function. Refer to the VIEWER configuration parameter in the
           documentation.

           With the addition of COM I/O to ULPTEST, all VERIFY.ULP files
           uploaded to pre-verify archives are now failed by ULPTEST to prevent
           the user from getting upload credit for uploading a VERIFY.ULP file
           (for those boards enforcing download ratios).

           Hey! Check it out! No bugs reported or found in the last version...

0.91    - The first beta test release (finally!); all major features have been
(3/2/92)   installed, and only bug fixes and minor improvements will occur
           before release of version 1.00. The beta releases are planned to be
           less frequent than the alpha releases were, probably on the order of
           every 4 weeks or so.

           CONFIGURATION FILE CHANGE!!! The CRC duplicate database format has
           been changed, resulting in a 50% increase of the main database size.
           The .NEW database file has been obsoleted; remove this parameter
           from your configuration files. This change was required to provide
           room to add features now and in the future. A utility is included
           (DBCVT.EXE) that will convert your current database to the new
           format. Just run DBCVT from your ULP directory and answer the
           questions.

           CONFIGURATION FILE CHANGE!!! ULP and ULPTEST now support two logging
           modes: verbose and terse, set by the parameter LOG_MODE. The terse
           mode is equivalent to the original logging, while the verbose mode
           includes more information about the archive compiled during testing.

           ULPTEST now updates the duplicate database with its own data to
           prevent a user from uploading the same file twice. Prior to this
           release, the database was updated only during the event by ULP,
           allowing this potential problem. Since ULPTEST does not perform as
           stringent of tests as ULP does, it's CRC data is discarded by ULPDB
           during compilation. Therefore, you must run ULP in your event at
           least as often as you run ULPDB to compile your database, to ensure
           that the data is entered permanently into the CRC database.

           ULPADS no longer requires the configuration file as a parameter;
           instead you supply the name of the BBS ads database file. This
           resulted in a reduction of the program size (about 5K).

           PCBTEST.BAT FILE CHANGE!!! ULPTEST would fail archives for
           duplication and/or age limits when invoked using PCBoard's TEST
           function. This has been fixed, and the %2 parameter passed to
           PCBTEST.BAT by PCBoard must be passed to ULPTEST as well. Refer to
           the new PCBTEST.BAT file included in this archive.

           ULPTEST would log a negative age to the log file for an archive that
           failed the age limit. The archive was correctly processed and
           dispositioned; just the logging was incorrect. ULPTEST could leave
           its temporary subdirectory behind with a read-only archive in it
           under special circumstances with nested archives. And (barf!)
           ULPTEST could hang the system if an invalid VERIFY.ULP file was
           uploaded for upload preverification. All are fixed (*sigh*).

           If an ARC, PAK or ZIP archive was hacked up bad enough, ULP and
           ULPTEST would hang during file screening, usually causing a memory
           error. The archive screening routine has been strengthened handle
           badly hacked archives.

           Worked on the documentation some more to help clarify the operation
           and installation of ULP. Hopefully it won't stink (as bad) now...

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