
           CHIEF'S GENERIC INSTALL for WINDOWS v2.40
           -----------------------------------------

           (c) 1994, Dr. Abimbola A. Olowofoyeku (The African Chief)
           ----------------------------------------------------------


    Files in the package
    --------------------
    1. INSTALL.EXE    (Windows install executable)
    2. WINSTALL.HLP   (basic help file for the installer)
    3. SETUP.EXE      (OPTIONAL small loader for INSTALL.EXE)
    4. SAMPLExx.INF   (sample INF files for WINSTALL.INF)
    5. INSTALL.TXT    (this file)


    What is CHIEF'S GENERIC INSTALL?
    --------------------------------
    Chief's Generic Install (hereinafter referred to as "Install") is a
    generic program for installation of Windows applications.

    Install is an "off-the-shelf" installation suite. The program will
    copy files from floppy disks (or a directory on a hard disk) to the
    destination directory. If the files are compressed with Microsoft's
    COMPRESS.EXE they will be decompressed automatically.In this respect
    Install uses the routines in LZEXPAND.DLL. If the files are not
    compressed, they will simply be copied.

    -----
    NOTE:
    -----
    The main executable is INSTALL.EXE - and that is all that needs to
    be run. I have supplied SETUP.EXE as an optional loader. All it does
    is to;

     [a] display a "initializing install ..." message
     [b] copy the necessary Install files (INSTALL.EXE, WINSTALL.INF,
         WINSTALL.HLP) to the TEMP directory.
         For these purposes, these 3 files may be compressed on the
         install disks - but they must retain their real names (as
         above) - except INSTALL.EXE, which if compressed with the -r
         option, can be called "INSTALL.EX_" (the original name will
         be restored by SETUP.EXE)
     [c] load the copy of INSTALL.EXE from the TEMP directory, with the
         parameters necessary for it to work properly if run in this
         way


    Is this useful? "Not really" is the answer. It may help to speed up
    loading if the user is using a slow floppy disk (or if INSTALL.EXE gets
    bigger than it is now) - but at the moment, it does not really speed up
    things. It may help in cases where there are many floppy disks, and
    system memory is low (in case Windows needs to read some parts of
    INSTALL.EXE again from disk). This will rarely (if ever) occur -
    because the code segment in INSTALL.EXE is PERMANENT (not discardable).

    So - SETUP.EXE is here only for future purposes - and for people who
    prefer to type "A:SETUP" instead of "A:INSTALL".


    ---------------------
    ---------------------
    Using Chief's Install
    ---------------------
    ---------------------
    I have tried to make Install as easy to use as possible. You only
    need to take the following steps;

      1. Create your installation disk set by placing your application's
         files on them (up to 20 installation disks are supported).

     2.  You may or may not compress the files with COMPRESS.EXE (it is
         immaterial whether you do so or not). If files are compressed
         and an underscore is used in the compressed file names, these
         names will only be converted to the original file names if
         they were compressed with the -r option.


      3. Create an installation information file in ASCII format, using a
         text editor. The file should be called WINSTALL.INF, and should be
         in the format described below.

      4. Run the Install program.

    That's it folks!


    Restrictions/Features
    ---------------------
    1. You can only install into any combination of the following;
         (a) ONE destination directory, and up to 20 subdirectories
             under it
         (b) the Windows directory
         (c) the Windows SYSTEM directory
         (d) the TEMP directory
    2. Only a maximum of 20 installation disks are supported. Install will
       prompt for the disks as they are required.
    3. Install will optionally offer to put the destination directory
       into the "PATH" statement in AUTOEXEC.BAT
    4. Install will optionally create a Program Manager group file, and
       icons for any supplied file(s) - .EXEs, README files, etc.
    5. Install will optionally run any supplied program(s) during the
       installation, as part of the installation process.
    6. Install will optionally run any supplied program(s) immediately after
       the installation is complete
    7. The stipulated format of the WINSTALL.INF file must be followed
       strictly.
    8. Install allows you to supply on-line for the installation.
       You have to create a Windows help file called WINSTALL.HLP. This
       help file can be accessed by clicking on the "HELP" button. A simple
       one is supplied. You can either use that, or create your own.
       If no WINSTALL.HLP file is found in the path, then the "HELP"
       button is removed from the Install window.
    9. Install will check whether there is sufficient space on the target
       drive - based on information which you supply as to how much disk
       space your application requires.
       If you need extra temporary disk space for the installation, Install
       can check for this also.
   10. Install will make entries in any INI (or other) file(s) specified
       by you. Up to 20 entries can be made. Do NOT use this feature to
       insert an entry which may already exist - the old entry will be
       deleted and replaced by the new one (e.g., do NOT use it for
       "DEVICE=" lines in SYSTEM.INI


    The format of WINSTALL.INF
    --------------------------
    WINSTALL.INF is the configuration file for the installation. You need
    to follow the instructions on this file carefully, otherwise, Install
    will not work correctly. The best thing is to edit the sample files
    which I have provided. They contain sufficient comments for you to
    understand them. WINSTALL.INF is a standard ASCII file, in the
    following format;

    1. Any line beginning with a ";", or "[" or "REM" is ignored
    2. Empty lines are ignored

          e.g., these lines will be ignored

              [This line will be ignored]
              ; So will this line

              REM  so will the one just above me, and me as well!


    3. Each line must not contain more than 220 characters

    4. There are RESERVED WORDS for each valid entry - as follows;
                 --------------
          $TITLE      : your program's title
          $TARGET     : the default target directory
          $SPACE      : the amount disk space needed for the install
          $SWAP-SPACE : any temporary swap space needed for the install
          $DISK       : 1-20 = the installation disks and their contents
          $DEST       : points to the target directory chosen by the user
          $WINDIR     : points to the Windows directory
          $SYSDIR     : points to the Windows SYSTEM directory
          $TEMPDIR    : points to the TEMP directory
          $INI        : text file(s) to write entries into
          $GROUP      : title of the Program Manager group
          $ICON       : file(s) to create Program Manager icons for
          $PRE-EXEC   : program(s) to run DURING the installation
          $EXEC       : program(s) to run AFTER the installation
          $CLEANUP    : file(s) to be deleted AFTER the installation
          $WINDOW     : whether INSTALL should start MAXIMIZEd or not
          $WINDOW-BACKGROUND : to change the background color of the window
          $TEXT-BACKGROUND : to change the background color of the text
          $SETCHECKBOX   : to automatically set the checkbox for creation
                           of Program Manager group
          $NO-END-DIALOG : to disable the final "installation completed" dialog.
          $NO-PATH-DIALOG: to disable dialog to update AUTOEXEC.BAT


    RESERVED WORD
    *************

    $DISK
    -----
    You use this reserved word to specify the disk(s) in the installation
    set, and the file(s) which should be copied from them. Each file name
    or file specification should be separated from the next one by a
    semi-colon.

    You can use the wildcard character "*" in this regard. The format for
    specifying the disk(s) is this;

         $DISK n = <filenames(s)>

            where:
             n = numbers from 1 to 20
             <filename(s)> = the file specifications
             the easiest thing to do would be to just specify "*.*" - to
             copy all the files - but you can be more specific

        EXAMPLES:
          $DISK 1 = *.*
          $DISK 2 = *.DLL;*.HLP;*.DRV;WS*.*;EXPAND.EXE;COMPRESS.EXE;README.TXT
          $DISK 3 = HELP.DOC;*.FFF


       * If you specify a file that does not exist on the disk, it will just
         be ignored.

       * A maximum of 30 file specifications is allowed on each "$disk" line -
         but note that each line cannot be longer than 220 characters in total.

       * Compressed files with underscores in the filename will have the
         filenames expanded into the name of the original files only if
         the original files were compressed with the -r option

       * NOTE: *
       ---------
       * It is advisable (but not necessary) to use underscores in compressed
         file names. This is only for the (cosmetic) purpose of enabling Install
         to differentiate between compressed and uncompressed files when
         displaying date and size of existing files concerning which the user
         is being prompted for over-write permission.

         If a compressed file can be identified in this way, Install will not
         display the size of the compressed file in such cases, since it might
         confuse the user. If the compressed file name is the same as that of
         the original file, then Install cannot make this type of distinction.



    RESERVED WORD
    *************

    $TITLE
    ------
    This us used to specify the name or title of your application. This is
    what will appear in the title of the installation program's window -
    You can have only ONE such line.
    - e.g.;
            $TITLE=Great Program v1.20


    RESERVED WORD
    *************

    $SPACE
    ------
    Use this to specify the amount of disk space needed for the installation.
    The amount should be in BYTES and should only contain whole numbers (no
    spaces, no letters, and no decimals).

    This information is used by Install to warn the users of the amount
    of space that they need to have free on their disks, and to show the
    progress of the installation in the "percentage meter". Install will
    check to see that the specified amount of space exists on the
    target drive before installation begins. If there is insufficient
    space, Install will abort with an error message.

    There is no need for the number to correspond exactly with the actual
    required number of bytes - a difference of up to 2% of the size of
    your application (plus or minus) is allowed, and such differences will
    be catered for automatically. In fact, it is always good to add about
    1% to the actual disk space needed - because of the vagaries of disk
    cluster sizes, it may be wise to over-estimate the disk space needed
    (a little bit of trial and error is in order here).
    You can have only ONE such line.

    e.g.,

         $SPACE=2002003


    $SWAP-SPACE
    -----------
    Use this to specify the amount of any temporary swap disk space
    needed for the installation. The amount should be in BYTES and
    should only contain whole numbers (no spaces, no letters, and
    no decimals).

    This information is used by Install to warn the users of the amount
    of space that they need to have free on their disks - bit it does not
    show in the "percentage meter".

    You can have only ONE such line.

    e.g.,

         $SWAP-SPACE=0


    RESERVED WORD
    *************

    $TARGET
    -------
    This is used to specify the name of the DEFAULT target directory for the
    installation. The user will be able to change this at run time.
     - e.g.,
            $TARGET=C:\MYPROGRAM

     If the target directory does not exist Install will create it - but
     note that it will not create directories recursively.
     You can have only ONE such line.


     Other Directories
     -----------------
     By default, ALL the files will be installed into whatever is the target
     directory chosen by the user. You can however specify that certain files
     should be installed into subdirectories UNDER THE TARGET DIRECTORY TREE,
     or into the WINDOWS DIRECTORY, or into the WINDOWS SYSTEM DIRETORY, or
     into the TEMP DIRECTORY.

     To use this, you use the $DEST, $WINDIR, $SYSDIR, $TEMPDIR reserved words.

    RESERVED WORD
    *************

     $DEST
     -----
     [i] Where ever this appears at the beginning of a line, the following take place;
          (a) "$DEST" is replaced with the target directory selected by the
              user. For example, entry of "$DEST\BIN=PROG.EXE", if the user
              installed to "C:\NEWPROG", becomes "C:\NEWPROG\BIN=PROG.EXE"
          (b) anything after the "=" sign is taken as the file(s) to be installed into
              that directory (instead of into the target directory). There can be up to
              14 file names, each separated by a semi-colon (NO wildcards are allowed
              here!).

     The sub directories will be created when necessary - but note that the order in which
     they are specified may be important - if there are deep levels of nesting, the ones
     higher up the tree must be specified first.

     You can have up to 20 such lines.

     [ii]  Where ever this appears elsewhere in a line, the "$DEST" is replaced with
           the target directory selected by the user. This use of the $DEST reserved
           word is only useful in the "$ICON", "$INI", and "$EXEC" lines.


    RESERVED WORD
    *************

     $WINDIR
     -------
       [i] Whenever this appears at the beginning of a line, the files on that line are
           installed to the Windows directory (instead of the target directory).
           There can be up to 14 file names, each separated by a semi-colon (no wildcards
           are allowed here).
       You can have only ONE such line.

       [ii] Where ever this appears elsewhere in a line, the "$WINDIR" is replaced with
           the Windows directory. This use of the $WINDIR reserved word is only useful in
           the "$ICON", "$INI", and "$EXEC" lines.


    RESERVED WORD
    *************

     $SYSDIR
     -------
       [i] Whenever this appears at the beginning of a line, the files on that line are
           installed to the Windows SYSTEM directory (instead of the target directory).
           There can be up to 14 file names, each separated by a semi-colon (no wildcards
           are allowed here).
       You can have only ONE such line.

       [ii] Where ever this appears elsewhere in a line, the "$SYSDIR" is replaced with
           the Windows SYSTEM directory. This use of the $SYSDIR reserved word is only
           useful in the "$ICON", and "$EXEC" lines.


    RESERVED WORD
    *************

     $TEMPDIR
     --------
       [i] Whenever this appears at the beginning of a line, the files on that line are
           installed to the TEMP directory (instead of the target directory).
           There can be up to 14 file names, each separated by a semi-colon (no wildcards
           are allowed here).
       You can have only ONE such line.

       [ii] Where ever this appears elsewhere in a line, the "$TEMPDIR" is replaced with
           the TEMP directory. This use of the $TEMPDIR reserved word is only useful in
           the "$INI", and "$EXEC" lines.


    RESERVED WORD
    *************

    $INI
    ----
    This is used to specify any ASCII files that configuration information
    should be written into. Normally, these will be INI files of some sort,
    but they can be any file, as long as it is in ASCII format.

    You have have up to 20 "$INI" lines - and each line MUST be in the format
    prescribed below;
       * each line must contain 4 entries - each separated with a semi-colon

       [a] the first entry is the NAME of the file to be written to - a full
           path must be supplied - otherwise, the file is presumed to be in
           the WINDOWS directory. You can use "$DEST" here, to specify files
           in the directory tree of the target directory.
           If the file does not exist, it is created.
       [b] the second entry is the title of the section ("Application name"
           in Windows API speak) that should contain the entry.
       [c] the third entry is the name of the entry you wish to make ("Keyname"
           in Windows API speak)
       [d] the fourth entry is the string that you wish to associate with the
           entry.

     - e.g.,
          $INI=C:\AUTOEXEC.BAT;MYPROG;SET PROGDIR;$DEST
          $INI=$DEST\MYPROG.INI;CONFIG;STARTUP;PROG.EXE /FE=XDS.XCL
          $INI=WIN.INI;EXTENSIONS;GFD;$DEST\BIN\GFD2.EXE ^.GFD


    RESERVED WORD
    *************

    $GROUP
    ------
    This is used to specify the name of the Program Manager Group
    in which the icons will be created. This can be the name of an
    existing group (e.g., "Accessories", "Main", etc.) in which case,
    the items will just be added to the ones already in that group.

    However, you may specify a completely new group. If this does not
    exist, it will be created (e.g., "MyProgram").
    You can have only ONE such line.


    RESERVED WORD
    *************

    $ICON
    -----
    This is used to specify the names of the files for which you want
    Program Manager icons to be created. There can be a maximum of 12 icons.

    Each $ICON line should contain only ONE entry. This is the name of the
    file to create an icon for (this could be a program file plus a
    parameter or any other file). This should be followed by a semi-colon,
    and after the semi-colon, the title that Program Manager should give to
    the icon.

    Each name should be separated by a semi-colon. You can put them all
    one one "$ICON" line - or you can have up to 12 "$ICON" lines.

          e.g.,
          $ICON=MYMAIN.EXE;Cool Prog v1.20
          $ICON=WINHELP.EXE MYPROG.HLP;My help file
          $ICON=NOTEPAD.EXE ORDER.FRM;Order Form
          $ICON=NOTEPAD.EXE REGISTER.TXT;Registration documentation
          $ICON=NOTEPAD.EXE README.TXT;Readme file


    RESERVED WORD
    *************

   $EXEC
   -----
   This line is optional. It specifies the name(s) of any program(s) that
   should be run immediately after the installation is completed (with any
   optional parameters to be passed to the programs). You can have only ONE
   such line.

    - e..g.,

        $EXEC=CONFIG.EXE

    You can put as many as 5 programs on this line. In such cases, each
    one must be terminated by a semi-colon

    - e.g.,

        $EXEC=CONFIG.EXE /DIR=C:\TEMP; MYPROG1.EXE; MYPROG2.EXE /NEW

       In the above example, there are 3 programs to be run. The first
       and the third are run with parameters, while the second one has no
       parameter.


   $PRE-EXEC
   ---------
   This line is optional. It specifies the name(s) of any program(s) that
   should be run during the installation, as part of the installation
   process. These programs will be run immediately after the files have
   been copied from the disks. Install will try to wait for these programs
   to terminate, before continuing. Such attempted waiting will work for
   Windows programs, but will fail if used to run DOS programs under OS/2.

    - e..g.,

        $PRE-EXEC=EXPAND.EXE $DEST\REE.BIN


   $CLEANUP
   -------
   This is optional. It specifies the name(s) of any temporary files(s)
   that should be deleted after the installation. Such deletions (if any)
   will be done immediately after any $PRE-EXEC lines have executed
   and returned. If there is no $PRE-EXEC line, then the deletions will
   be done after the $INI lines have been processed. If there are no
   $INI lines, then the deletions will be immediatelt after the $DISK
   lines have been processed.

   If the specified files do not exist, they are simply ignored.

   There can be up to 20 $CLEANUP lines. Each line should contain only
   ONE entry. The only other reserved words permissible on these lines
   are $DEST and $TEMPDIR. I will *never* add $WINDIR or $SYSDIR to this
   list, because I can see no reason why one would want to delete files
   from people's Windows or SYSTEM directories.

   Use this reserved word with care. I accept no responsibility for any
   problems caused by using it.

    - e..g.,

    $CLEANUP=$TEMPDIR\4EDE6.$$$
    $CLEANUP=$TEMPDIR\54DE6.$$$
    $CLEANUP=$DEST\TEMPFIL.INI


   The $TEMPDIR can be used here with the Install program files in cases
   where you choose to use SETUP.EXE as a loader - e.g.,

    $CLEANUP=$TEMPDIR\INSTALL.EXE
    $CLEANUP=$TEMPDIR\WINSTALL.INF
    $CLEANUP=$TEMPDIR\WINSTALL.HLP

   This way, Install can cleanup the files which have been copied by
   SETUP.EXE to the TEMP directory.


    RESERVED WORD
    *************

   $WINDOW
   -------
   This line is optional. It should specify whether you want Install to
   start up maximized or not. If the entry here is "MAXIMIZE" then Install
   will start maximized - otherwise it will just start normally.
   You can have only ONE such line.


   RESERVED WORD
   *************

   $NO-END-DIALOG
   --------------
   This line is optional, and is not very useful. All it does is to
   suppress the final dialogs which inform the user about whether the
   installation was successful or not, and that the installation is
   completed. The default behaviour of Install is to present these
   dialogs to the user. Use this reserved word to disable that feature.
   If this feature is used, the warning dialog that comes up if the size
   of the files actually installed is less than 98% of the size stated in
   the $SPACE reserved word is also disabled.
   This line takes no parameter.


   RESERVED WORD
   *************

   $NO-PATH-DIALOG
   ---------------
   This line is optional. It disables the dialog box which asks the
   user whether the target directory should be added to the PATH
   statement in AUTOEXEC.BAT. The default behaviour is to present this
   dialog. Use this reserved word to disable that feature.
   This line takes no parameter.


   RESERVED WORD
   *************

   $SETCHECKBOX
   ------------
   This line is optional. It automatically checks the checkbox titled
   "click here to create Program Manager item".
   This line takes no parameter.



   RESERVED WORD
   *************

   $WINDOW-BACKGROUND
   ------------------
   This line is optional. It can be used to set the background color
   of the main window of the Installer. The default is to have a white
   background. Because the background is a Windows brush handle, the
   only valid values for this setting are 0,1,2,3, or 4
       0 = White
       1 = Light Grey
       2 = Grey
       3 = Dark Grey
       4 = Black

   If you use this to change the window background, be sure to also set
   the $TEXT-BACKGROUND (below) to an appropriate setting. For example,
   if this setting is 1 (light grey) then the text background should be
   set to 192,192,192 (so that the window and text backgrounds should
   match).

   e.g.,

   $WINDOW-BACKGROUND=1
   $TEXT-BACKGROUND=192,192,192

   $WINDOW-BACKGROUND=2
   $TEXT-BACKGROUND=128,128,128



   RESERVED WORD
   *************

   $TEXT-BACKGROUND
   ----------------
   This line is optional. It can be used to set the background color
   of the text in the main window of the Installer. The default is to
   have a white background.

   The color used here can either be;
     [a] one long integer value (you can use hexadecimal values in
         Pascal notation) - see below for explanation
     or
     [b] three values represent RGB (red, green, blue) values.

   If using RGB values, they should be separated by commas, or
   semi-colons (e.g:  128,128,128 - for a dark gray background)

   If using a hexadecimal value (those that begin with $00 and then
   are followed by SIX values). The SIX values here represent
   Blue, Green, Red - or reversed RGB. In this respect, "FF" turns the
   color to full intensity, "00" turns it off, and any other value
   varies the intensity.

   Note that the color that results from any value depends on the
   display driver of the user (particularly the number of colors).
   For a 256 color setup, you can use the following values;

          White       : $00FFFFFF
          White       : 255,255,255

          Black       : $00000000
          Black       : 0,0,0

          DarkGray    : $00808080
          DarkGray    : 128,128,128

          Red         : $000000FF
          Red         : $255,0,0

          Blue        : $00FF0000
          Blue        : 0,0,255

          DarkRed     : 128,0,0
          DarkRed     : $00000080

          DarkPurple  : 128,128,240
          DarkBlue    : 0,0,150
          Purple      : 200,0,200
          Light Cyan  : $00FFFF00
          Green       : $0000FF00
          Yellow      : $0000FFFF
          Magena      : $00FF00FF
          LighGray    : $006F9FFF
          Gray        : $006688FF


    e.g.,
         $TEXT-BACKGROUND=128,128,128
         $TEXT-BACKGROUND=$00FFFFFF

//////////////////////////////////////////////

    LICENSE
    -------

    Chief's Install is released as "ChiefWare". This means that you may use
    and supply it as the installation routine for any of your applications,
    as long as;
       [1] You offer me, by e-mail, a (registered) copy of your application,
           and, if I am interested in it, you send me a free copy. This point
           only applies to shareware and freeware applications

       OR, if your application is a commercial one,
           You send me a nice and unique postcard from your area

       [2] My name does NOT appear ANYWHERE in your application's
           documentation - I am not interested in answering any questions
           from any of your customers.

    You may also distribute it freely - as long as;
       [1] ALL the files which I have supplied are included, and
       [2] NO ATTEMPT is made to modify or alter ANYTHING in any of the files.
       [3] You do not charge ANYTHING for distributing this package (disk
           vendors may charge a reasonable fee, not exceeding $5 (US) for
           media and duplication).


    Please note the disclaimers below.

    DISCLAIMER
    ----------
    I do NOT warantee ANYTHING concerning any of the programs which
    make up Chief's Install. I accept NO RESPONSIBILITY for ANY LOSS
    OR DAMAGE of ANY kind, including, but not limited to, losses of a
    physical, mental, social, financial, marital, or of whatever nature,
    resulting from the use, or the purported use of Chief's Install,
    for any purpose whatsoever. You use Chief's Install ENTIRELY AT YOUR
    OWN RISK, and you supply it to your customers or acquaintances
    ENTIRELY AT YOUR OWN RISK.

    If these terms are not acceptable to you, then please DELETE all
    the files from your disks immediately.


    BUGS
    ----
    There may be bugs in the program, although I do not know of any extant.
    I welcome bug reports. I will try to fix them if I can. If I can not
    fix them, then sorry.


    Contact address:
    ----------------
    Dr. Abimbola Olowofoyeku
    268 Horwood
    Newcastle
    Staffs, ST5 5BQ
    ENGLAND

    Email: laa12@keele.ac.uk



      ------------------
      Dr. A. Olowofoyeku
      October 1994
      ------------------

