home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / archiver / cpk44.arj / MANUAL.DOC < prev    next >
Text File  |  1991-11-01  |  41KB  |  1,073 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.                                    COMPACK 4.4
  11.                          DOD Program Compaction Software
  12.  
  13.                                    USER MANUAL
  14.  
  15.  
  16.  
  17.  
  18.                                     CONTENTS                                    ________
  19.                                                                Page
  20.  
  21.            Installation.........................................1
  22.            Distribution.........................................3
  23.            Getting Started......................................3
  24.            Rationale............................................3
  25.            How COMPACK works....................................4
  26.           Real Time Envronment....................................5
  27.            Some typical compression statistics..................5
  28.            COMPACK Syntax.......................................6
  29.            Command Line Options.................................6
  30.            Examples.............................................6
  31.            Hardware and Software Requirements...................7
  32.            COMPACK Error Messages...............................7
  33.            COMPACK Warning Messages.............................7
  34.            Optimizing COMPACK...................................8
  35.            Compacting BIOS Files................................9
  36.            Problem Cases........................................9
  37.            Known Anomalies......................................9
  38.            Answers to some common questions about COMPACK.......11
  39.            BuildSFX - Self Expanding Program Creator............13
  40.               BUILDSFX Syntax...................................13
  41.               BUILDSFX Hardware and Software Requirements.......13
  42.               Example Use.......................................13
  43.               Execution of the SFX..............................13
  44.               Minimizing SFX Disk Size..........................13
  45.            Sample Commercial Use Licence........................14
  46.  
  47.  
  48.  
  49.  
  50.                                   INSTALLATION                                  ____________
  51.  
  52.         COMPACK  is  supplied as a self expanding file  (created  by  our
  53.         utility  program  BUILDSFX).  To install the  software  select  a
  54.         suitable  directory  as  the  default  and  execute  the  program
  55.         CPK43.EXE.   This will automatically create all the files in  the
  56.         current directory (overwriting any files with the same name).  Be
  57.         sure to read the file README.
  58.  
  59.  
  60.                                   2 August 1991
  61.  
  62.                         Prominence Computer Services Ltd.
  63.         Strada  Sottopiazzo  18,  14056 Boglietto  di  Costigliole  (AT),
  64.         Italy.
  65.  
  66.  
  67.             Copyright (C) Prominence Computer Services Ltd. 1990,1991
  68.  
  69.  
  70.  
  71.         COMPACK 4.4 User Manual                               Page 2
  72.  
  73.  
  74.                               Fax. +39 (11) 9574117
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.             Copyright (C) Prominence Computer Services Ltd. 1990,1991
  135.  
  136.  
  137.  
  138.         COMPACK 4.4 User Manual                               Page 3
  139.  
  140.  
  141.                                   DISTRIBUTION                                  ____________
  142.  
  143.         COMPACK  and BUILDSFX are the copyrighted property of  Prominence
  144.         Computer  Services  Ltd., and are distributed as  Shareware.   As
  145.         such,  you  are  free  to  use and  copy  the  software  for  non
  146.         commercial  purposes.  The software may not be modified.  If  you
  147.         find   the  programs  generated  are  small  and  fast,  then   a
  148.         contribution of US $25 would be appreciated.  If you send $40  or
  149.         more  you  become a registered user and will be sent  the  latest
  150.         version of COMPACK with printed manual.
  151.  
  152.         If  you  use  COMPACK  or COMPACKted  programs  in  a  commercial
  153.         environment or government institution registration is obligatory.
  154.         Commercial distribution of COMPACKted programs requires a written
  155.         agreement (not required for compaction of public domain  software
  156.         or shareware so long as credits are given in the documentation or
  157.         program).   Commercial  users  wishing  to  distribute   programs
  158.         compressed  by  COMPACK  or BUILDSFX  should  contact  Prominence
  159.         Computer  Services Ltd. for further details.  A sample  agreement
  160.         is appended to this manual.
  161.  
  162.         In Italy COMPACK is available from Polimatica SRL, Corso  Francia
  163.         233  A,  10098  Cascine Vica, Rivoli (TO).   Tel  011-9597222  (3
  164.         lines).  FAX +39 (11) 9574117.
  165.  
  166.  
  167.                                  GETTING STARTED                                 _______________
  168.  
  169.         COMPACK transforms your DOS programs, both EXE and COM files,  to
  170.         load  faster and take up less space on disk!  You don't  need  to
  171.         read this manual to start using COMPACK.  Like all good software,
  172.         COMPACK  comes with help already built in.  Just enter  "COMPACK"
  173.         at  the  DOS  prompt for a summary of the  syntax  and  available
  174.         options.  The rest of this manual is really only for reference.
  175.  
  176.  
  177.                                     RATIONALE                                    _________
  178.  
  179.         Hard disk are always too small, modem bills too high, and network
  180.         response  time too slow.  The classic solution to these  problems
  181.         has  been to compress the data prior to transmission  or  backup.
  182.         There  are a number of archive utilities to compress  files  into
  183.         "LBR, "ZOO", "ZIP", "ARC", "PAK", "LZH" and similar  incompatible
  184.         formats.
  185.  
  186.         These  utilities work fine when the objective is archiving.   But
  187.         access  to  data, (ie running a program) requires  an  additional
  188.         decompression  utility  and this adds delay and  complexity.   In
  189.         order  to  hide this complexity many  software  distributors  are
  190.         obliged   to  create  bulky  installation  procedures,   somewhat
  191.         counter-productive  when  the aim is to reduce media  costs.   In
  192.         fact  most  archive  expanders  are  not  suitable  for  software
  193.         distribution.  Firstly the expansion program itself takes up tens
  194.         of thousands of bytes of overhead.  Secondly file compression  is
  195.         compromised  by  the  need to  maintain  the  archive  updatable.
  196.         Neither  of these "features" is of any use to the  poor  computer
  197.         user  who  simply wants to use his software with the  minimum  of
  198.         expense and delay.
  199.  
  200.  
  201.             Copyright (C) Prominence Computer Services Ltd. 1990,1991
  202.  
  203.  
  204.  
  205.         COMPACK 4.4 User Manual                               Page 4
  206.  
  207.  
  208.         COMPACK  therefore is not an archiving program.  It is a  utility
  209.         which  simply compresses DOS programs.  The  compressed  programs
  210.         will run the same as before without the use of any extra software
  211.         or  hardware.   This is an important advantage because  it  means
  212.         that  compressed software is portable.  There is no risk  that  a
  213.         program  will  not  run  because  an  essential  utility  is  not
  214.         available.   Unlike other software,  the expansion code does  not
  215.         disable  interrupts  for extensive periods (less than  10uS)  and
  216.         consequently  compacted  programs work correctly even in  a  real
  217.         time  environment (such as a network).  Furthermore  no  messages
  218.         are  embedded  in the code so foreign language  programs  can  be
  219.         compressed without problems.
  220.  
  221.         With  few exceptions COMPACK will compress programs smaller  than
  222.         the  very  best  archive utilities.   As  for  speed,  COMPACKted
  223.         programs  actually load faster!  COMPACKted programs  running  on
  224.         floppy  disk, CD-ROM, or over networks will typically respond  in
  225.         half the time of their bulky predecessors.  At the other extreme,
  226.         on  a  fast  RAM  disk, there may be  a  small  additional  delay
  227.         (perhaps  up to a few tenths of a second).  Of course such  delay
  228.         is  barely perceptible and is compensated by the ability  to  fit
  229.         even more data in the RAM disk.
  230.  
  231.  
  232.                                 HOW COMPACK WORKS                                _________________
  233.  
  234.         In  simple  terms,  COMPACK  compresses  the  input  program  and
  235.         sandwiches the result between header and trailer code.  Under DOS
  236.         3.X and later the input file is opened DENY_WRITE preventing  any
  237.         other  process (including COMPACK itself or other network  users)
  238.         from overwriting.  Note that your operating system may not  offer
  239.         this protection unless SHARE is loaded.
  240.  
  241.         The  extra header and trailer code amounts to just a few  hundred
  242.         bytes  and is responsible for recreating the exact image  of  the
  243.         uncompressed  program  and passing control to it.   The  code  to
  244.         expand  COM files is smaller and faster than the code  to  expand
  245.         EXE  files.  The compression algorithm is based on  Lempel  Ziv's
  246.         first  proposal, a sliding window algorithm.  (This algorithm  is
  247.         quite  distinct  from their second proposal, also  known  as  the
  248.         Lempel Ziv Welch algorithm.)
  249.  
  250.         COMPACK  replaces repeated byte strings by shorter references  to
  251.         previous   identical  strings.  This  is  called   substitutional
  252.         compression  (as opposed to statistical compression).   There  is
  253.         nothing  very  original in this, almost all  modern  software  or
  254.         hardware compressors in the past few years have used a  variation
  255.         on  this basic method.  Common variations include a second  phase
  256.         of  statistical  compression  whereby  frequent  references   are
  257.         encoded  in  fewer  bits than less  frequent  ones.   Statistical
  258.         compressors  have been applied successfully, for example, in  the
  259.         Huffman  encoding  of LZH archives (hence the name)  and  Shannon
  260.         Fano encoding of ZIP archives.
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.             Copyright (C) Prominence Computer Services Ltd. 1990,1991
  269.  
  270.  
  271.  
  272.         COMPACK 4.4 User Manual                               Page 5
  273.  
  274.  
  275.         Combined  with  the  prior phase  of  Lempel  Ziv  substitutional
  276.         compression,  these techniques achieve excellent compression  but
  277.         are  not suitable for compressing programs for  several  reasons.
  278.         Firstly the expansion algorithms are relatively complex, adding a
  279.         significant amount of overhead.  Secondly the algorithms tend  to
  280.         be slow.  Thirdly memory requirements tend to be high, and  there
  281.         simply may not be sufficient room in memory for both tables and a
  282.         large  program simultaneously.  It would certainly be a  pity  if
  283.         large  programs,  which have the most to gain  from  compression,
  284.         could not be expanded again!
  285.  
  286.         COMPACK  manages  to avoid these  disadvantages  whilst  actually
  287.         achieving even greater compression.  There is no second phase  of
  288.         statistical   compression.  Memory  requirements  are   minimised
  289.         because there are no tables.  The simplified expansion code takes
  290.         up  just a few hundred bytes adding very little overhead  to  the
  291.         COMPACKted  program.   Simplicity implies speed:   the  expansion
  292.         code executes between 3 and 20 times faster than similar  archive
  293.         utilities.    Disadvantages?   Well,  to  achieve  the   superior
  294.         compression COMPACK analyses the program to be compressed in very
  295.         considerable  detail, and this takes time.  We feel it  is  worth
  296.         investing  this  time  once and recouping  the  speed  and  space
  297.         savings whenever the program is run.
  298.  
  299.  
  300.         Real Time Environment
  301.  
  302.         Many PC applications are finding their way into networks,  multi-
  303.         tasking   platforms  and  real  time  applications.    In   these
  304.         environments   a   program  which  disables  interrupts   for   a
  305.         significant  amount  of  time is  considered  ill  behaved.   For
  306.         example,   disabling   interrupts   could   cause   a    resident
  307.         communication  program  to lose a character,  (and  probably  the
  308.         entire packet).  If you are already having problems of this  kind
  309.         with  programs compressed by other utilities, COMPACK may be  the
  310.         answer.    COMPACKted  programs  have  no  additional   interrupt
  311.         latency.
  312.  
  313.  
  314.               Some typical compression statistics using COMPACK 4.4              _____________________________________________________
  315.  
  316.                            Original      Compacted    Reduction
  317.                              Size          Size          %
  318.  
  319.              CYCLONE.COM     5632          3650         35
  320.              COPYWRIT.COM   34784         17548         50
  321.              CED.COM        59206         34524         42
  322.              TCC.EXE       179917         85388         52
  323.              TC.EXE        290249        156972         46
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.             Copyright (C) Prominence Computer Services Ltd. 1990,1991
  336.  
  337.  
  338.  
  339.         COMPACK 4.4 User Manual                               Page 6
  340.  
  341.  
  342.                   COMPACK - COM and EXE File Compacter program                  ____________________________________________
  343.  
  344.         SYNTAX        ______
  345.  
  346.              COMPACK  \path\program.in \path\program.out [msg] [-options]
  347.  
  348.         Note that the filename must be unambiguous (no '*' nor '?').  The
  349.         third  parameter  is  an  optional  message  which  is  appended,
  350.         uncompressed,  to  the  output program.  This might  be  used  to
  351.         include  a  serial  number and or  copyright  notice.   Copyright
  352.         notices   embedded  in  the  program  code  will  of  course   be
  353.         compressed, and therefore may not be visible unless displayed  by
  354.         the program.
  355.  
  356.         Command Line Options        ____________________
  357.  
  358.         Options always begin with the "-" character and may occur in  any
  359.         order,  even  mixed up with the other arguments.   The  following
  360.         letter may be in either upper or lower case.
  361.  
  362.  
  363.          -r  Allows  program  compaction to continue even  if  the  space
  364.              saving   is  not  significant.   Normally   COMPACK   aborts
  365.              compaction  if  it cannot save at least  1024  bytes.   This
  366.              option  can  be  useful  where real  objective  is  to  make
  367.              unauthorised  disassembly  or modification  of  the  program
  368.              difficult rather than compression.  In addition this  option
  369.              retains the output program even if it contains excess  debug
  370.              information.   Use  this option with care.  It  is  possible
  371.              that the COMPACKted program will not work.
  372.  
  373.          -o  Displays  the  order  form  on  the  screen.   (Print   with
  374.              PrintScrn key).
  375.  
  376.          -i  Causes  COMPACK  to abort compaction if it  can  identify  a
  377.              possible optimisation of the input program.  See section  on
  378.              Optimising COMPACK.
  379.  
  380.          -g  Speeds  up  compression  (by about 50%) at  the  expense  of
  381.              program size (about 1% larger).
  382.  
  383.          -h  Most linkers produce EXE headers which are a multiple of 512
  384.              bytes so there may be considerable unused space.  Using  the
  385.              "-h"  option normal EXE program compression is bypassed  and
  386.              COMPACK attempts to reduce the header to a smaller  multiple
  387.              of  16  bytes.   This is a useful technique  for  EXE  style
  388.              device drivers or for very small EXE files.
  389.  
  390.  
  391.  
  392.  
  393.         Examples        ________
  394.  
  395.             COMPACK bigprog.exe -g fastprog.exe
  396.             for %q in (*.com) do COMPACK %q d:%q -r
  397.             for %q in (*.exe) do COMPACK %q d:%q "Copyright (c) Fox 1991"
  398.  
  399.  
  400.  
  401.  
  402.             Copyright (C) Prominence Computer Services Ltd. 1990,1991
  403.  
  404.  
  405.  
  406.         COMPACK 4.4 User Manual                               Page 7
  407.  
  408.  
  409.         Hardware and Software Requirements (Version 4.4)        ________________________________________________
  410.  
  411.                        COMPACK.EXE       program.com    program.exe
  412.  
  413.           Free Memory  256 k Bytes       65k Bytes      Program + 16k
  414.           DOS          2.0 or later      Any            Any
  415.           CPU          8088              8088           8088
  416.  
  417.                              COMPACK Error Messages                             ______________________
  418.  
  419.                                                                      Exit
  420.                                                                      Code
  421.  
  422.              Insufficient memory                                     3
  423.              Error writing output program                            3
  424.              EXE header too large at XXXX bytes                      3
  425.              Unsuitable Overlay file                                 3
  426.              Unsuitable HIGH loading EXE file                        3
  427.              Cannot open FILENAME                                    3
  428.              Insufficient Saving.  Program not compacted.            3
  429.              COM file > 64k Bytes                                    3
  430.              EXE program contains excess debug info or overlays.     3
  431.              Invalid EXE header.  Relocation overlap.                3
  432.              Input and output filenames must be different            3
  433.              COMMAND.COM should not be COMPACKted                    3
  434.              Invalid EXE header.  Actual length less than Reported   3
  435.  
  436.         All  the  above error messages are fatal, causing  the  immediate
  437.         termination of the program.
  438.  
  439.         Note the error message regarding excess debug information.   This
  440.         condition is noted when the DOS file size is significantly longer
  441.         than  the  file size registered in the EXE file  header.   It  is
  442.         possible  that  the  excess information is an  overlay  or  other
  443.         essential information which is read from disk at execution  time.
  444.         This condition is considered a warning if the "r" (retain) option
  445.         is specified.  Naturally such programs may not function correctly
  446.         when compacted so testing is essential.
  447.  
  448.                             COMPACK Warning Messages                            ________________________
  449.  
  450.            Warning: Multi-segment COM file.
  451.            Warning: File may have been already compressed with EXEPACK.
  452.            Warning: It may be possible to convert this file to COM format.
  453.            Warning: No significant saving - new program created anyway.
  454.            Warning: Already COMPACKted.
  455.            Warning: Probable Device Driver.
  456.  
  457.  
  458.         Warning messages are purely informatory and point out some format
  459.         of  the  source  program  file  which  deserves  attention.   For
  460.         example,  using our COM2EXE utility to convert multi-segment  COM
  461.         files  back  into  the  original  EXE  format.   Similarly  other
  462.         utilities  may  strip off debug information.  These  are  usually
  463.         included  with  the compiler or operating system.  In  all  cases
  464.         even  greater  execution  speed and smaller  programs  should  be
  465.         possible.  In the next section we will see how to transform these
  466.         programs into a more simple and suitable format for compression.
  467.  
  468.  
  469.             Copyright (C) Prominence Computer Services Ltd. 1990,1991
  470.  
  471.  
  472.  
  473.         COMPACK 4.4 User Manual                               Page 8
  474.  
  475.  
  476.                                Optimising COMPACK                               ___________________
  477.  
  478.         COMPACK obtains best results when it compresses a program in  its
  479.         most simple format.  By using the -i command line option  COMPACK
  480.         attempts  identify what kind of program is being  compressed  and
  481.         returns  with  a  DOS error code.  This can be used  by  a  batch
  482.         program to simplify the program (possibly expanding it) prior  to
  483.         re-compacting it again with COMPACK.
  484.  
  485.  
  486.              Exit Code      Program Type
  487.  
  488.                   16        Already compressed by PKLITE
  489.                   15        Already compressed by LZEXE
  490.                   14        Probable Device Driver
  491.                   13        Normal EXE
  492.                   12        Convertible to COM format with EXE2BIN
  493.                   11        Packed by EXEPACK
  494.                   10        Multi-segment COM File
  495.                    9        COMPACKted File
  496.                    0        Normal COM File
  497.                    3        Error
  498.  
  499.  
  500.         In  order to automate the process of converting programs  into  a
  501.         more  efficient  format prior to using COMPACK you  can  use  the
  502.         batch  command  file REPACK.BAT.  REPACK  uses  utility  programs
  503.         supplied  by  third  parties to perform the  conversion.   It  is
  504.         invoked in the same way as COMPACK :-
  505.  
  506.            REPACK bigprog.exe smallprog.exe
  507.  
  508.         EXE  programs  are  convertible to COM format  if  there  are  no
  509.         relocatable items, if there is no stack segment, if the  starting
  510.         execution address is 100H and the code fits into one 64K segment.
  511.         The appropriate conversion program, EXE2BIN is supplied with many
  512.         DOS operating systems.
  513.  
  514.         EXEPACK is a utility supplied by Microsoft which attempts  simple
  515.         compression  of an EXE file.  For example it performs run  length
  516.         encoding,  compressing  repeated  bytes  into  a  more  efficient
  517.         format.   This compression is sometimes quite  effective  because
  518.         many programs have data areas initialised to some constant value.
  519.         Of  course run length encoding is only special case of  COMPACK's
  520.         sliding  window  algorithm.   In short anything  EXEPACK  can  do
  521.         COMPACK should be able to do rather better!
  522.  
  523.         Multi-segment  COM  files  are small EXE files  which  have  been
  524.         converted to COM format by a proprietary utility.  The format  is
  525.         used  in various system programs supplied with PC-DOS and  MS-DOS
  526.         (for  example CHKDSK.COM).  The reason for using this  format  is
  527.         not  clear  because  it results in larger COM  files  which  load
  528.         slower than their EXE counterparts.
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.             Copyright (C) Prominence Computer Services Ltd. 1990,1991
  537.  
  538.  
  539.  
  540.         COMPACK 4.4 User Manual                               Page 9
  541.  
  542.  
  543.                               Compacting BIOS Files                              _____________________
  544.  
  545.         IO.SYS  and IBMBIO.COM may be sucessfully compressed  by  COMPACK
  546.         even though strictly speaking they are neither COM nor EXE  style
  547.         files.  COMPACK takes care of all the details without any special
  548.         options.  Neither MSDOS.SYS nor IBMBIO.COM may be compacted.
  549.  
  550.  
  551.                                   PROBLEM CASES                                  _____________
  552.  
  553.         Not all executable files may be compressed successfully:  COMPACK
  554.         may (see messages) abort compression if:-
  555.  
  556.            - the .EXE file is an overlay.
  557.            - the .EXE file is a high memory loading program.
  558.            - the .COM file is larger than 65000 bytes.
  559.            - the .EXE file contains overlays or debug information
  560.            - the program is a device driver (eg CACHE.EXE).
  561.  
  562.         Executable files should be stripped of any debugging  information
  563.         prior  to compression as this is not automatically  removed,  and
  564.         cannot  be  used  by a debugger in  compressed  form.   Naturally
  565.         inferior compression results by including inaccessible  debugging
  566.         information in a compacted file.  COMPACK attempts to detect this
  567.         situation  and  aborts compaction if the program size  is  longer
  568.         than  specified in the EXE header.  However compaction  continues
  569.         if the -r switch is used.
  570.  
  571.         Programs  which  rely  on  re-reading  themselves  from  disk  or
  572.         checking their own size such as COMMAND.COM and certain protected
  573.         software programs may fail to execute correctly when  compressed.
  574.         COMPACK  cannot  always detect such  programs  automatically,  so
  575.         thorough testing is essential.  Always maintain a backup copy  of
  576.         the original program.  COMPACK aborts compression if  COMMAND.COM
  577.         is  specified as the input program unless the -r switch is  used.
  578.         Using  the /P parameter the SHELL command in CONFIG.SYS can  load
  579.         COMMAND.COM  permanently in memory so it should never be  re-read
  580.         and  therefore works in compacted form.  Unfortunately this  does
  581.         not  always  work  with some  operating  system  and  application
  582.         program combinations so again, careful testing is essential.
  583.  
  584.            Example:-
  585.                              SHELL=C:\COMMAND.COM /P
  586.  
  587.  
  588.                                  KNOWN ANOMALIES                                 _______________
  589.  
  590.         1) COMPACK aborts compaction of an EXE file with more than  about
  591.         8500  relocatable segment references.  Fortunately very  few  EXE
  592.         files are this large.
  593.  
  594.         2) COMPACK does not update the checksum field in the .EXE header.
  595.         This  field is not used by DOS, and consequently there should  be
  596.         no ill effects under compatible operating systems.
  597.  
  598.         3)  OS/2  and  Microsoft  (tm)  Windows  format  files  are   not
  599.         supported.
  600.  
  601.  
  602.  
  603.             Copyright (C) Prominence Computer Services Ltd. 1990,1991
  604.  
  605.  
  606.  
  607.         COMPACK 4.4 User Manual                               Page 10
  608.  
  609.  
  610.  
  611.                                    Disclaimer                                   __________
  612.  
  613.         Prominence Computer Services Ltd. hereby disclaims all warranties
  614.         relating to this software, whether express or implied,  including
  615.         without  limitation any implied warranties of merchantability  or
  616.         fitness  for a particular purpose.  Prominence Computer  Services
  617.         Ltd.   will   not  be  liable  for   any   special,   incidental,
  618.         consequential,  indirect  or  similar  damages  due  to   program
  619.         malfunction or any other reason.  In no event shall the liability
  620.         of  Prominence Computer Services Ltd. for any damages exceed  the
  621.         price paid for the licence to use the software, regardless of the
  622.         form of the claim.  The person using the software bears all risks
  623.         as to the quality and performance of the software.
  624.  
  625.  
  626.         COMPACK  has  been  tested  on  many  thousands  of  files   with
  627.         successful  results.   Nevertheless the  possibility  of  program
  628.         errors  can  never  be completely  eliminated.   Testing  is  the
  629.         resonsability  of  the  user.   But if  you  have  any  comments,
  630.         suggestions or complaints, please contact us.  We will  endeavour
  631.         to assist all registered users.  Naturally we intend to  continue
  632.         development  of COMPACK and feedback from users is  an  essential
  633.         part of this process.
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.             Copyright (C) Prominence Computer Services Ltd. 1990,1991
  671.  
  672.  
  673.  
  674.         COMPACK 4.4 User Manual                               Page 11
  675.  
  676.  
  677.                  Answers to some common questions about COMPACK                 ______________________________________________
  678.  
  679.         Q:  How is it possible that COMPACK can compress programs  better
  680.         than the best archiving programs?
  681.  
  682.         A:  COMPACK  understands  the contents of program  files  and  is
  683.         optimised to compress programs efficiently.  For example  COMPACK
  684.         can  realise  that  much of the space dedicated to  an  EXE  file
  685.         header  is  redundant.  General purpose archivers  apply  general
  686.         purpose algorithms, paying more attention to compression time and
  687.         archive  updating at the expense of compressed archive  size  and
  688.         expansion time.
  689.  
  690.  
  691.         Q: Will a compressed program always behave like the original?
  692.  
  693.         A: Apart from programs which attempt to read themselves, (such as
  694.         COMMAND.COM,  overlay programs, programs with  debug  information
  695.         etc.)  all programs will run similarly (probably faster)  because
  696.         the  expansion  code  constructs an identical  program  image  in
  697.         memory  just as if the program had been loaded in memory by  DOS.
  698.         Naturally there has to be a little extra memory for the expansion
  699.         code  to  run but this is only a few kbytes.  Unlike  some  other
  700.         compressed  programs, COMPACKted programs may be  freely  renamed
  701.         because they do not attempt to read themselves.
  702.  
  703.  
  704.         Q: However fast the expansion algorithm may be, surely it takes a
  705.         finite  amount  of time and therefore compacted  programs  should
  706.         take longer to execute?
  707.  
  708.         A:  Almost all compacted programs execute faster because  smaller
  709.         programs  load  faster.  The code expansion  rate  can  typically
  710.         exceed  10  Mbits per second on an 80386 and this is  far  faster
  711.         than the overall throughput of a network or mechanical disk.
  712.  
  713.  
  714.         Q:  How can I be sure that COMPACK will work with my  application
  715.         program?
  716.  
  717.         A:  If  your application works with any other compacter  such  as
  718.         Microsoft's  EXEPACK, it will almost certainly work with  COMPACK
  719.         but with much better performance.
  720.  
  721.  
  722.         Q:  What  programs  are the best candidates  for  compression  by
  723.         COMPACK?
  724.  
  725.         A:  The  bigger  the  better!   Small  programs  are   compressed
  726.         successfully  but there will always be fixed overhead (about  300
  727.         bytes)  of the expansion code to consider.  This code  becomes  a
  728.         smaller proportion of the whole for large programs.  In  addition
  729.         the   compression  itself  becomes  more  efficient  for   larger
  730.         programs.
  731.  
  732.         Q. Much of our distribution software includes data files as  well
  733.         as  programs.  How can COMPACK be used to  minimise  distribution
  734.         media costs?
  735.  
  736.  
  737.             Copyright (C) Prominence Computer Services Ltd. 1990,1991
  738.  
  739.  
  740.  
  741.         COMPACK 4.4 User Manual                               Page 12
  742.  
  743.  
  744.  
  745.         A. Use COMPACK and our BUILDSFX utility to create self  expanding
  746.         files.  The programs created by this combination are the smallest
  747.         and fastest available, way ahead of any competitive solution.
  748.  
  749.         Q. Will my compacted application work on non-standard platforms?
  750.  
  751.         A. Almost certainly.  COMPACTed programs make no extra DOS  calls
  752.         and  access no DOS nor BIOS memory structures when expanding  and
  753.         so should be compatible even with non DOS operating systems which
  754.         recognise standard EXE and COM programs.   But note that  COMPACK
  755.         does  not  support Microsoft's Windows format nor  other  formats
  756.         which will not run under DOS.
  757.  
  758.         Q. Why does my compacted application not work?
  759.  
  760.         A.   It  is  possible  your  application   uses   non-initialised
  761.         variables.  Check its execution when running in different  memory
  762.         configurations,  when running under a debugger etc.   Also  check
  763.         there  is  sufficient RAM available.  As a final  resort  contact
  764.         Prominence with sample program.
  765.  
  766.  
  767.         Q. How much extra memory does a compacted program use?
  768.  
  769.         A. A COM style program uses the full 64K byte segment  regardless
  770.         of  how  big  the  original file was.   This  is  a  very  modest
  771.         requirement  as today most PCs come with at least 640  kBytes  of
  772.         RAM.   An EXE style program needs an extra 0 to 16  kBytes  extra
  773.         (3k  bytes  is  typical).   You can find  out  the  exact  memory
  774.         requirements of EXE programs using Microsoft's EXEMOD utility.
  775.  
  776.  
  777.         Q. Why is it better to prefer COM files over EXE files?
  778.  
  779.         A.  COM  files  contain no  relocation  tables  and  consequently
  780.         relocation is not included with the expansion code, so  compacted
  781.         COM  files are slightly smaller.  Because all COM files  must  be
  782.         smaller than 64 kBytes, the expansion code is faster as it is not
  783.         necessary to cope with multiple segments.
  784.  
  785.  
  786.         Q. Why does COMPACK think that my COM file is an EXE program (and
  787.         vice versa)?
  788.  
  789.         A.  Good question.  An EXE file always starts with the  signature
  790.         bytes "M" "Z" and a COM file does not.  The filename extension is
  791.         ignored by both DOS and COMPACK in determining whether or not the
  792.         program is EXE style.
  793.  
  794.  
  795.         Q.  How much does a licence cost to use COMPACK on  software  for
  796.         corporate distribution?
  797.  
  798.         A.  Just $125 one time fee permits unrestricted  distribution  of
  799.         programs  compacted  by  COMPACK.  No  licence  requirements  are
  800.         necessary for user groups clubs etc who distribute software on  a
  801.         non profit making basis.  Licencing of BUILDSFX is negotiable.
  802.  
  803.  
  804.             Copyright (C) Prominence Computer Services Ltd. 1990,1991
  805.  
  806.  
  807.  
  808.         COMPACK 4.4 User Manual                               Page 13
  809.  
  810.  
  811.                     BUILDSFX - Self Expanding Program Creator                    _________________________________________
  812.  
  813.         Purpose        _______
  814.  
  815.         BUILDSFX is a utility program to concatenate multiple data  files
  816.         into  a single EXE style program which re-creates the data  files
  817.         in the current directory when executed.  COMPACK is automatically
  818.         invoked to compress the program providing a very efficient  means
  819.         of distributing all kinds of data and program files.   Benchmarks
  820.         show  that  creating  files  in  this  way  is  far  faster  than
  821.         conventional  self  expanding files (up to 20 times  faster)  but
  822.         file  size is smaller than the best archiving programs.  In  fact
  823.         it is usually faster to execute a BUILDSFX file than use DOS COPY
  824.         command!
  825.  
  826.  
  827.         BUILDSFX Syntax        _______________
  828.  
  829.            BUILDSFX input-file output-program
  830.  
  831.         The  first parameter is an ambiguous file specification,  (ie  it
  832.         may  optionally contain '*', or '?') defining the input files  to
  833.         be included in the program.  The second parameter is the name  of
  834.         the  output  program which is created in COMPACKted  EXE  format.
  835.         Both  may  contain pathnames.  In order to work correctly  it  is
  836.         essential that COMPACK.EXE is in the current path.
  837.  
  838.         BUILDSFX requires DOS 2.0 or later and 256k bytes of free memory.
  839.  
  840.  
  841.         Example Use        ___________
  842.  
  843.            BUILDSFX D:\TXT\*.?OC  E:MAKEDOC.EXE
  844.  
  845.  
  846.         Execution of the SFX        ____________________
  847.  
  848.         When  executed the SFX.EXE program will expand itself  in  memory
  849.         and  proceed to create its component data files (overwriting  any
  850.         files  with the same name) in the current  directory.   Obviously
  851.         there must be sufficient free memory available for SFX to run  so
  852.         care  should  be  taken  not  to  create  excessively  large  SFX
  853.         programs.  If necessary multiple SFX programs.
  854.  
  855.         The  SFX  returns  an  error  code  of  0  if  file  creation  is
  856.         successful,  otherwise  a simple message is displayed  and  error
  857.         code  >  0 is returned.  These error codes can be detected  by  a
  858.         batch file or install program.
  859.  
  860.  
  861.         Minimising SFX disk size        ________________________
  862.  
  863.         COMPACK works by compressing repeated byte strings so files which
  864.         are likely to contain similar strings should be grouped  together
  865.         in  the  SFX.  This can be done by reordering the  files  in  the
  866.         input  directory.  For example, it is often appropriate  to  sort
  867.         the  input  directory first by filename extension,  and  then  by
  868.         increasing file size.
  869.  
  870.  
  871.             Copyright (C) Prominence Computer Services Ltd. 1990,1991
  872.  
  873.  
  874.                          COMPACK COMMERCIAL USE LICENCE                         ______________________________
  875.  
  876.  
  877.         MEMORANDUM OF AGREEMENT        _______________________
  878.  
  879.         between  COMPANY.  (hereinafter called the Licensee)  of  COMPANY
  880.         ADDRESS,  of the one part and Prominence Computer  Services  Ltd.
  881.         (hereinafter called the Licenser) whose registered office is at 7
  882.         Old King Street, Bath BA1 2JW, England, of the other part.
  883.  
  884.         Definitions        ___________
  885.  
  886.         a)  'The Product', means the Licensee's computer software,  known
  887.         as APPLICATION.
  888.  
  889.         b)  'The  Utilities',  means  the  Licenser's  computer  software
  890.         package known as COMPACK used for file compaction, and  described
  891.         in  the documentation whether or not incorporated in whole or  in
  892.         part  into  other software.  Where appropriate  in  context,  the
  893.         phrase  includes all or any modifications substantially based  on
  894.         or derived from the software package whether entitled COMPACK  or
  895.         not.
  896.  
  897.  
  898.  
  899.         NOW IT IS HEREBY AGREED BETWEEN THE PARTIES HERETO AS FOLLOWS:-        _______________________________________________________________
  900.  
  901.         1)   The  Licenser  hereby  grants  to  the  Licensee  the   non-
  902.         transferable  and  non-exclusive  rights  use  the  Utilities  on
  903.         Product  for  distribution  and the Licensee agrees  to  pay  the
  904.         Licenser  a  one time fee of US $125.  This  agreement  does  not
  905.         authorise  the distribution of the Utilities for profit, nor  are
  906.         any rights are granted until the fee has been paid.  The Licensee
  907.         may  terminate  this agreement in writing within 30 days  of  its
  908.         execution for a full refund of any fee already paid.
  909.  
  910.  
  911.         2)  The Licenser hereby warrants that the Utilities are  original
  912.         and will in no way whatever infringe upon any existing copyright.
  913.         The  Licensee agrees that all components of the Product  modified
  914.         by  the  Utility  shall  be protected  by  copyright,  and  shall
  915.         exercise  at  least the same care and diligence  to  protect  the
  916.         Licenser's intellectual property as it does to protect its own.
  917.  
  918.  
  919.         3)  The  Licensee agrees to acknowledge in the  Utilities  or  in
  920.         their documentation that the use of COMPACK has been licensed  by
  921.         the Licenser.
  922.  
  923.  
  924.         4)  The  parties  to this Agreement  undertake  to  maintain  the
  925.         confidentiality  of any communication which is specified  at  the
  926.         time  as being confidential, and undertake not to  disclose  such
  927.         information   as   sales  figures,  billing   methods,   pricing,
  928.         algorithms,  technical specifications, program code  unless  such
  929.         information is already made public (other than by breach of  this
  930.         Agreement).
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.             Copyright (C) Prominence Computer Services Ltd. 1990,1991
  939.         5)  Prominence  Computer  Services  Ltd.  hereby  disclaims   all
  940.         warranties relating to the Utilities, whether express or implied,
  941.         including   without   limitation  any   implied   warranties   of
  942.         merchantability or fitness for a particular purpose.   Prominence
  943.         Computer  Services  Ltd.  will not be  liable  for  any  special,
  944.         incidental,  consequential,  indirect or similar damages  due  to
  945.         program  malfunction or any other reason.  In no event shall  the
  946.         liability  of Prominence Computer Services Ltd. for  any  damages
  947.         exceed  the  price  paid for the licence  to  use  the  software,
  948.         regardless  of  the  form of the claim.   The  person  using  the
  949.         software bears all risks as to the quality and performance of the
  950.         software.
  951.  
  952.  
  953.         6) This Agreement shall be subject to and construed according  to
  954.         the laws of England.
  955.  
  956.  
  957.         __________________________________________      __________________
  958.  
  959.         Authorised Signature                            (Title and Date)
  960.         COMPANY.
  961.  
  962.  
  963.         __________________________________________      Director
  964.         Authorised Signature                            1 January 1991
  965.         Prominence Computer Services Ltd.
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004.  
  1005.             Copyright (C) Prominence Computer Services Ltd. 1990,1991
  1006.  
  1007.  
  1008.  
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066.  
  1067.  
  1068.  
  1069.  
  1070.  
  1071.  
  1072.             Copyright (C) Prominence Computer Services Ltd. 1990,1991
  1073.