Hamarsoft (R) Hap (R) 4.02 TESTDRIVE, April 12, 1996, 1200 GMT. You will need an 80286, NEC V20 or higher to run these programs. Document updated June 18th 1996. DISCLAIMER : You are using this software at your own risk ! --------------------------------------------------------------------------- Harald Feldmann will in no way be liable for any damages, loss of business profits, business interruption or loss of business-, private-, public- or other information, arising out of the use or inability to use the Hap and/or Pah programs or data processed by the Hap and/or Pah programs or any other program that accompanies the Hap and or Pah programs, whether direct or consequential, regardless of the fact that Harald Feldmann may have been advised of the possibilities of such damages. =========================================================================== This software is provided to you under the terms of the Hamarsoft License Agreement. By using the software you agree to be bound by those terms. You are assumed to have taken knowledge of those terms prior to using the software. Hamarsoft (R) is a registered trademark and a registered servicemark owned by Harald Feldmann. Hap (R) and Pah (R) are trademarks of Harald Feldmann. Other mentioned products' trademarks and registered trademarks are acknowledged. Hamarsoft P.O. Box 451 6400 AL Heerlen The Netherlands ---------------------------------------------------------------------------- This is a publicly distributed demonstration version of the HAP 4.0x datacompression product. HAP 4.0x is the successor of HAP 3.14e, which was the registered, improved, version of the publicly distributed HAP 3.00 This demonstration version, called a testdrive version, has virtually the same look and feel as the real product. It compresses files in the same way as the full version so you can determine the compression capability of the full version before you register. You are expressly forbidden to reverse-engineer this program and to use any knowledge you may gain about this product to create or enhance similar or competing products. By having the HAP 4.0x testdrive software on your disks or in your computer memory, you agree to be bound by the nondisclosure agreement as listed in the license.doc file. If you do not agree with this, do not use the software and delete it from your disks and your computer's memory. Harald Feldmann reserves the right to make changes to the HAP, PAH and accompanying programs and / or documentation without notification. By using either program you agree to the abovementioned terms. ---------------------------------------------------------------------------- *** IMPORTANT *** HAP 4.0x Testdrive does not allow file output to take place. Effectively this means that you cannot really create archives. The testdrive version 'fakes' the creation or update of an archive. The compression level you see on the screen however, is the real compression level. You should add approximately 64 bytes to the displayed size because of archive overhead in the real version. Because of the file output restriction, several commands, which are present in the full version are disabled. In fact, the software code for these routines is not even present in the testdrive version. Because of safety, some additional options have been removed also to ensure no harm can be done to your original files. Below you will find a description of the commands present in the full version of HAP 4.0x. Where applicable, three stars (*) mark differences with the testdrive version. USE OF HAP 4.0x testdrive COMMANDS: HAP takes several commands. HAP: =========================================================================== You can perform five basic operations with HAP: Add,Move,Delete,List and Test, using the a,m,d,l and t commands respectively. ADD: (valid modifiers are '+' prefix, '3','c','i','I','Y','t' and 'T') *** i, I and Y modifiers not present in testdrive version as it does not allow disk output. When 'a'dding a file to an archive, HAP tries to compress the file to the best of its ability. If this is unsuccessful, HAP will store an exact copy of the file in the archive, otherwise HAP will store the compressed version in the archive. HAP uses a 'smart' compression algorithm. When a file is encountered of which HAP knows (or can figure out) it cannot compress, like already compressed files of some types, HAP will skip further compression of that file and copy it to the archive. This detection mechanism is very accurate, but may overlook some files of which you know will compress a little bit. For these files you may run HAP again with the '+a' command, instead of the 'a' command to FORCE HAP to attempt compression of the entire specified file(s). MOVE: (valid modifiers are '+' prefix, '3','c','i','I','Y','t' and 'T') When the original files should be deleted after successful compression (or storage) use the 'm'ove command instead of the 'a'dd command. *** Move command not present in testdrive vesion. Note that HAP deletes the original files one by one after they have been processed. A user abort or error condition will interrupt the process and leave the remaining files on disk. The already processed files will be inside the archive and will have been deleted from your disk, provided they were not read-only. In case of read-only files, HAP will prompt you whether you would like to delete the file, keep the file or delete all read-only files that HAP will encounter while processing your command. The command-line override for this question is 'Y' (Assume Yes on all queries). DELETE: (valid modifiers are 't' and 'T') *** Delete command not present in testdrive version. When 'd'eleting a file, or set of files, HAP will delete the specified file(s) from the specified archive, provided both are present. In the delete process, you may specify a date filter. See 't' modifier. LIST: (valid modifiers are 't' and 'T') *** List command not present in testdrive version. When 'l'listing a file, or set of files, HAP will list the specified file(s) within the specified archive, provided both are present. In the list process, you may specify a date filter. See 't' modifier. TEST: (valid modifiers are 't' and 'T') *** Test command not present in testdrive version. While compressing files with HAP 3.14e step 09 or higher HAP will calculate CRC's or Cyclic Redundancy Checks. These numbers can help identify errors in the extracted file by matching the calculated number stored in the archive with the one calculated by PAH during extraction. To speed up this process, a second number is calculated and applied to the compressed archive. This number is called the 'seal'. The TEST command checks this seal against the compressed file itself. Any changes will be detected and reported. Note that the pre-step 09 versions of HAP did not add this number. In these cases (with your existing 3.00 compatible archives), HAP and PAH will display 'N/A' for Not Available (or Not Applicable). A status line will be shown at the end of the file listing to confirm how many files were either: - Not sealed (older archives without seal capability). - Had BROKEN seals (damaged archives). - Had INTACT seals (are in original condition). In case there are any broken seals or any files without seals, the number of files in each group will be shown as well. The number of intact files is NOT shown. In the test process, you may specify a date filter. See 't' modifier. '+' option ('+' prefix) HAP uses a so-called 'smart' compression algorithm. This enables HAP to determine whether certain files are compressable before they have been completely processed. When HAP encounters such a file, it will simply copy the file to the archive, instead of trying to 'learn' it. In spite of the fact that this smart method is very accurate, there may be incidental cases where a little bit compression might have been possible. In order to _force_ HAP to attempt complete compression of each file, use the '+' prefix before your add or move command. (+a or +m) 'c' option ('c' modifier) To use the HAP 3.00+ compatible file format, use the 'c' modifier. HAP 4.0x uses the HAP 4.0x file format by default. This is a handy switch if your target audience does not yet have a HAP 4.0x compatible uncompressor. 'i' option ('i' modifier) *** i modifier not present in testdrive version. The 'i' modifier instructs HAP to process only those files you specified at the 'a' or 'm' command that have their archive-bit set. HAP will process the file and subsequently reset the archive-bit. The archive-bit is set whenever a file is created or written to. Some backup programs make use of this feature to determine which files were changed since the last backup so the backup program needs to back up only the changed files. This process is therefore also often referred to as 'incremental backup'. 'I' option (capital-i 'I' modifier) *** I modifier not present in testdrive version. Like the 'i' modifier, the 'I' modifier processes only those files that have their archive-bit set, but contrary to 'i', this modifier does NOT reset the archive-bit. 'Y' option (capital-y 'Y' modifier) *** Y modifier not present in testdrive version. In certain situations, HAP will encounter situations that might require your attention and judgement. One of these cases involve the deletion of read-only files during the 'm'ove command. HAP does not assume any preference by default. To facilitate automated processing of large numbers of files, you may wish to issue the 'Y' modifier at the command line to instruct HAP always to delete read-only files while performing the 'm'ove operation. Note that these files will not be deleted until after they are successfully processed into the archive. 't' option ('t' modifier), aliased by 'T' The 't' modifier activates a date filter in all PAH commands. It consists of four inherent modifiers (-,+,= and #). These modifiers determine how the date filter acts on the dates of the files you want to process. The 't' (or 'T') command has the following meaning: t-YYMMDD: Process all files whose dates are before the date specified as year-month-day. The dates range from January 1st 1980 to December 31st 2079. To specify a year beyond 1999, simply use the last two digits, HAP and PAH can figure out by themselves what year is meant. For example: 940612 specifies June 12th 1994 000101 specifies January 1st 2000 341224 specifies December 24th 2034 For ease of use, zero is a valid month and day value. This property comes in handy in specifying entire months with the # modifier. t+YYMMDD: Process all files whose dates are after the date specified. t=YYMMDD: Process all files whose dates are equal to the date specified. t#YYMMDD-YYMMDD: Process all files whose dates are equal to or after the first date, but are before the second date. Note that this does _not_ include the second date. '3' option (32-BIT ADDRESSING modifier) When run on an 80386 or higher processor, HAP can use, under restricted conditions, the 32-bit addressing capabilities of these processors. The choice to use these capabilities is one made by the user. HAP never activates 32-bit addressing automatically. HAP defaults to NOT using these instructions. To enable the 32-bit addressing option, append a '3' to your add or move command like in: '+a3' or 'a3' or 'm3' or '+m3'. Incompatibilities: ============================================================================= MICROSOFT WINDOWS: HAP is known to hang the CPU in some cases while using the 32-bit addressing option under the Microsoft Windows DOS box and after using Microsoft Windows 3.0 in standard mode. This behaviour is not caused by bugs in HAP. Hamarsoft strongly disrecommends using the '3' option while running, or after having run, Microsoft Windows. This behavior occasionally also occurs with compression software of other vendors. DESQVIEW: HAP has been tested in concurrent windows under DesqView 386 with the '3' option enabled. HAP's performance is considered stable under this 386- specific version of DesqView. OS/2: It is not recommended to run HAP with the '3' option under the OS/2 DOS box or after exiting OS/2. *** PAH is not part of the testdrive package, but the documentation is included to give the user an overview of the options in PAH 4.0x PAH: =========================================================================== You can perform four basic operations with PAH: Extract,Delete,List and Test, using the e,d,l and t commands respectively. EXTRACT: (valid modifiers are 'y','Y','t' and 'T') When 'e'xtracting a file, or set of files, PAH supports full drive and path redirection. By default PAH extracts to the current drive and directory. The redirection string should follow the archive name, separated from it by a space. To recognize a redirection string (to distinguish it from a file specification), the redirection string must start with either: - a backslash (\), which indicates a path relative to the root directory on the current drive. - a dot, followed by a backslash (.\), which indicates a path starting at the current level going upwards. - two dots, followed by a backslash (..\), which indicates a path relative to the level below the current one (one directory 'down'). - a drive designator (C:), which indicates that the path is on a specific drive. (Note that this may restate the current drive). Given pathnames must be valid under DOS or result in a name valid under DOS. If not valid, PAH will abort the extraction. Invalid path names may result when the FULL resolved path name exceeds 64 characters (which is possible under some circumstances in DOS). If the entire or partial path does not exist yet, PAH will ask you whether it should create it for you. Use the 'y' or 'Y' modifiers to let PAH always assume 'yes' to this question. In case the files you wish to extract already exist, PAH will ask you whether you wish to overwrite them or not. The 'y' or 'Y' modifier will override this question and always assume 'yes'. DELETE: (valid modifiers are 't' and 'T') When 'd'eleting a file, or set of files, PAH will delete the specified file(s) from the specified archive, provided both are present. In the delete process, you may specify a date filter. See 't' modifier. LIST: (valid modifiers are 't' and 'T') When 'l'isting a file, or set of files, PAH will list the specified file(s) within the specified archive, provided both are present. In the list process, you may specify a date filter. See 't' modifier. TEST: (valid modifiers are 't' and 'T') While compressing files with HAP 3.14e step 09 or higher HAP will calculate CRC's or Cyclic Redundancy Checks. These numbers can help identify errors in the extracted file by matching the calculated number stored in the archive with the one calculated by PAH during extraction. To speed up this process, a second number is calculated and applied to the compressed archive. This number is called the 'seal'. The TEST command checks this seal against the compressed file itself. Any changes will be detected and reported. Note that the pre-step 09 versions of HAP did not add this number. In these cases (with your existing 3.00 compatible archives), HAP and PAH will display 'N/A' for Not Available (or Not Applicable). A status line will be shown at the end of the file listing to confirm how many files were either: - Not sealed (older archives without seal capability). - Had BROKEN seals (damaged archives). - Had INTACT seals (are in original condition). In case there are any broken seals or any files without seals, the number of files in each group will be shown as well. The number of intact files is NOT shown. In the test process, you may specify a date filter. See 't' modifier. 'y' option ('y' modifier) In certain situations, PAH will encounter situations that might require your attention and judgement. One of these cases involve the deletion of already existing files during the 'e'xtract command. PAH does not assume any preference by default. To facilitate automated processing of large numbers of files, you may wish to issue the 'y' modifier at the command line to instruct PAH always to overwrite existing files, except read-only files, while performing the 'e'xtract operation. 'Y' option (capital-y 'Y' modifier) Like the 'y' modifier it allows automatic overwriting of already existing files. In addition to 'y', 'Y' also automatically allows overwriting of read-only files. 't' option ('t' modifier), aliased by 'T' The 't' modifier activates a date filter in all PAH commands. It consists of four inherent modifiers (-,+,= and #). These modifiers determine how the date filter acts on the dates of the files you want to process. The 't' (or 'T') command has the following meaning: t-YYMMDD: Process all files whose dates are before the date specified as year-month-day. The dates range from January 1st 1980 to December 31st 2079. To specify a year beyond 1999, simply use the last two digits, HAP and PAH can figure out by themselves what year is meant. For example: 940612 specifies June 12th 1994 000101 specifies January 1st 2000 341224 specifies December 24th 2034 For ease of use, zero is a valid month and day value. This property comes in handy in specifying entire months with the # modifier. t+YYMMDD: Process all files whose dates are after the date specified. t=YYMMDD: Process all files whose dates are equal to the date specified. t#YYMMDD-YYMMDD: Process all files whose dates are equal to or after the first date, but are before the second date. Note that this does _not_ include the second date. CONTACTING THE DEVELOPERS: ============================================================================= e-mail : feldmann@pi.net Mail : Hamarsoft P.O. Box 451 6400 AL Heerlen The Netherlands Syntax recap: *** restrictions apply as outlined above. ADDING FILES TO AN ARCHIVE: [additional filespecs] do not type the <> or []. [drive:][\path\] [filespec2 filespec3 ..] adds the files on drive:\path\filespec to haparch. You may specify any filename for haparch even with extensions. Hap will cut off the extension, if any, and add .HAP itself. The current release of Hap 3.14e does not store subdirectories and does not search any within another. Note that the , AND MUST be supplied. Meaning 'add all files in the current directory to HAPPY.HAP' is done by: HAP a HAPPY *.* Aborting compression leaving the already compressed files intact in the archive is done by pressing ESC or CTRL-C. _FORCING_ HAP TO ATTEMPT COMPRESSION OF THE SPECIFIED FILE(s): HAP +a HAPPY *.* MOVING FILES TO AN ARCHIVE: Instead of using the 'a' command, use the 'm' command or '+m' command in case you want to _force_ HAP to compress. Moving the files will delete them after successful processing. HAP +m HAPPY D:\*.* Using the 3, Y and t modifiers: HAP +m3Yt#940101-030101 HAPPY D:\*.* E:*.* This command will force compression using 32-bit addressing on 80386+ processors, delete all files, including read-only files, after successful compression, and only process those files which are dated on or after January 1st 1994 and before January 1st 2003 from the root directory of drive D and the files in the current directory on drive E (using the same criteria). TESTING FILES IN AN ARCHIVE: HAP tt#940101-030101 HAPPY *.EXE *.BAT *.dat This will test all *.exe, *.bat and *.dat files with dates on or after January 1st 1994 but before January 1st 2003 in the archive named HAPPY.HAP and show the results of the test. EXTRACTING FILES FROM AN ARCHIVE: [redirection] [filespec2 filespec3 ...] extracts filespec and additional filespecs from haparch to the current directory. Note that filespec MUST be supplied, meaning 'recall all files in HAPPY.HAP to the current drive and directory' is done by: PAH e HAPPY *.* or, which is also valid: PAH e HAPPY .\ *.* In order to get your files extracted to a specific drive and / or directory, add the destination path as an argument behind the archive name. Note that the redirection string must start with: a backslash (\), a dot (.\), a double dot (..\) or a drive designator (C:). These are the characters that PAH recognises to be a redirection string. PAH defaults to the current drive and path for extraction. If the target path does not exist yet, either completely or partially, PAH will ask you whether it should create it for you. If you specify the 'y' or 'Y' modifier, PAH automatically assumes 'yes' to this question. If the files already exist in the target path, PAH will ask you whether it should overwrite them or not. Use the 'y' or 'Y' modifier to override the question and to let PAH assume Yes for the answer. The date filter currently works on the files _inside_ the archive. If a file already exist on disk with a different date than the one inside the archive (possibly not matching the date criterion) it will be overwritten if 'y' or 'Y' is supplied also. ..................................................................... Example: PAH is in C:\UTIL\PAH.EXE HAPARCH is in D:\HEY\MORE\ME\HAPARCH.HAP you want your *.exe and *.com files to be extracted to E:\NEXT\MORE\ then type: C:\UTIL\PAH e D:\HEY\MORE\ME\HAPARCH E:\NEXT\MORE *.exe *.com in either upper or lower case. ..................................................................... LISTING FILES IN AN ARCHIVE: or [filespec2 filespec3 ...] Lists filespec and additional filespecs within haparch. Use the 'Pause' key or CTRL-S on the AT keyboard to pause the scrolling. The 't' modifier may be used to filter files according to their dates. DELETING FILES IN AN ARCHIVE or [filespec2 filespec3 ...] WARNING ! HAP and PAH use a rigid delete command. This does not allow you ! to use PCTOOLS or other file recovery software to bring back a ! deleted file or archive. Make backups ! The 't' modifier may be used to filter files according to their dates. End of document.