                                      _______
                                 ____|__     |               (R)
                              --|       |    |-------------------
                                |   ____|__  |  Association of
                                |  |       |_|  Shareware
                                |__|   o   |    Professionals
                              -----|   |   |---------------------
                                   |___|___|    MEMBER


              The QuickFix System Version 2.01 Evaluation
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                       Copyright (C)1992,1996 R.Janorkar


        The QuickFix System is supplied as is. The author disclaims all
        warranties, expressed or implied, including, without limitation,
        the warranties of merchantability and of fitness for any
        purpose. The author assumes no liability for any damages, direct
        or consequential, which may result from the use of this software
        package.

        The entire QuickFix System package, including, but not limited
        to, the Fixmenu program, the QuickFix program, the MakeFix
        program, the Fix2Exe program, and all associated manuals and
        program documentation is Copyright 1992,1996 R.Janorkar, all
        rights are reserved. Altering, modifying, decompiling or reverse
        engineering this software or its documentation is expressly
        prohibited.

        The QuickFix System creates, maintains and applies file
        modification patches to software files.

        A file modification patch is a process by which one or more
        software files can be modified (converting the file(s) in the
        process).

        This is a FULLY FUNCTIONAL evaluation release of the QuickFix
        System v2.01, you may NOT distribute the patch files created
        with this release. All features are available in this release to
        allow you to evaluate the program completely. Registration is
        mandatory for commercial and personal use. Please use the order
        form enclosed in this archive, or call the number given below.
        The commercial package contains dual media diskettes, a printed
        manual, a registration number, and a license that allows you to
        use the QuickFix System on any number of workstations, on any
        number of individual products, with NO royaltee fees for such
        usage.

        This release is a minor documentation update release. It is
        functionally identical to version 2.00 evaluation.

        The commercial QuickFix System package is written and marketed
        by R.Janorkar, 52-A Carmine Street #555, New York, NY 10014 FAX
        212-691-2637. Voice support is temporarily unavailable.

        The following documentation is adequate for evaluation purposes,
        the commercial package comes with a printed illustrated manual.


        Association of Shareware Professionals <ASP> statement
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        "This program is produced by a member of the Association of
        Shareware Professionals (ASP).  ASP wants to make sure that the
        shareware principle works for you. If you are unable to resolve
        a shareware-related problem with an ASP member by contacting the
        member directly, ASP may be able to help. The ASP Ombudsman can
        help you resolve a dispute or problem with an ASP member, but
        does not provide technical support for members' products. Please
        write to the ASP Ombudsman at 545 Grover Road, Muskegon, MI
        49442-9427 USA, FAX 616-788-2765 or send a Compuserve message
        via CompuServe Mail to ASP Ombudsman 70007,3536"

        
        Introduction
        ~~~~~~~~~~~~
        There are four programs included in the QuickFix System.

        A full featured database manager menu interface program called
        Fixmenu. This front end program allows you to create, maintain
        and update file modification patch (Fix) files for your software
        programs and files.

        The MakeFix patch creation utility is the patch generator that
        creates the individual update patch (Fix) files. It is executed
        by the menu interface program automatically, but can also be run
        from the operating system as a stand alone program.

        The QuickFix patch applicator utility applies the update patch
        (Fix) files created by the QuickFix System, and is meant to be
        distributed along with the patch files to the end users.

        The Fix2Exe utility converts update patch (Fix) files into self
        executing programs that do not require the QuickFix applicator
        program.

        The QuickFix System will work on any IBM compatible computer
        system from XT class to 486 class. A hard drive is required,
        with a minimum of 1 Megabyte free disk space. More disk space
        will be needed as more patch files are created. The program will
        detect when it is being run on a monochrome display and use a
        default monochrome color set giving maximum display visibility.

        The QuickFix System does NOT require a math co-processor or a
        mouse.

        Since the QuickFix System is disk intensive, the use of external
        disk cache software is recommended to speed up operation.

        The Fixmenu interface program requires 512 Kilobytes of free
        conventional memory. EMS (Expanded Memory LIM v3.2 or v4.0) will
        be used if it is present.

        The QuickFix applicator utility uses only 70 Kilobytes of
        conventional system memory and requires no Expanded memory.

        The MakeFix patch creation utility uses only 75 Kilobytes of
        conventional system memory and requires no Expanded memory.

        The Fix2Exe conversion utility uses only 65 Kilobytes of
        conventional system memory and requires no Expanded memory.

        All programs requires DOS 2 or higher to operate.

        The use of certain TSR (Terminate Stay Resident) programs and
        certain device drivers may cause conflicts with the QuickFix
        System. If this is the case, it will be necessary to disable the
        offending program before the QuickFix System can be used.

        The QuickFix System requires very little hard disk space to
        install, less than 1 Megabyte. Simply extract the contents of
        this archive into an appropriate directory

        The Fixmenu interface program MUST be started from this home
        directory. All the data files and the work files that the
        program creates will reside in the home directory.

        The QuickFix System can generate upgrade Fix files for vastly
        different files. It can apply multiple updates from the same Fix
        file, and even update a file from any of a series of releases to
        the latest version. Subdirectories can also be specified,
        allowing entire file directory structures to be updated from a
        single Fix file.

        The fix applicator utility checks the target files before and
        after applying the fix. If the target file does not match the
        CRC of the Original file that is coded into the Fix file, the
        user is notified and the applicator attempts to continue with
        the next fix if more updates are included in the Fix file. After
        applying the fix, the target file is again tested against the
        CRC of the Modified file coded into the Fix file. If any target
        files are missing the applicator will display a message to the
        user and skip to the next file that needs to be updated.

        The menu driven Fixmenu interface program is very easy to use.
        On line help is available at all times, and the menus are simple
        and intuitive. The Fixmenu program also maintains the various
        splinter files associated with a project, to allow changes and
        creation of new Fix files with a minimum of fuss. The file
        sizes, and time/date stamps of all the Original and Modified
        files are recorded in the project database, if either has
        changed, the associated splinter file is updated.


        The FixMenu interface program
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        The Fixmenu program is a full featured menu driven database
        management program that creates and maintains Fix files. The
        Fixmenu program keeps track of the Fix files generated,
        maintains a database for each project recording file
        information, and maintains the individual splinter files.

        Your display type will be detected, and the program will
        automatically select Color or Monochrome mode. There are two
        possible command line options that can be used with the Fixmenu
        program. If for some reason the program does not recognize your
        Monochrome display, you can force it into Monochrome mode by
        using the command line parameter /M

                        FIXMENU /M

        The program also detects the number of drives attached to your
        computer system. If for some reason it does not list all your
        available drives in the file directory tree, you can pass the
        drive specification on the command line with the parameter
        /<drive>: where <drive> is the letter for you last drive. For
        example, if you have drives A: through E: installed, you would
        use the command line parameter /E:

                        FIXMENU /E:

        If you have drives A: through Z: installed, you would use

                        FIXMENU /Z:

        Specifying a non existent drive will not cause any damage, but
        if the non existent drive is selected in the file directory
        tree, no file names and no directory names will be displayed.

        Command line parameters can be passed in any order.

        The Fixmenu program requires 512K free conventional memory to
        operate. If there is any Expanded memory available (EMS LIM 3.2
        or 4.0) it will be used as well. In the event of incompatible
        EMS memory conflicts, you can disable the Fixmenu EMS usage by
        adding an environmental variable to your AUTOEXEC.BAT startup
        batch file:

                        SET FIXMENU=E0

        Where E instructs Fixmenu to limit EMS usage to 0 Kilobytes.
        Note that you can also use a different value here if you merely
        wish to restrict the amount of EMS that the program will use.

        If your display exhibits a peculiar looking cursor, you can add
        an environmental variable to your AUTOEXEC.BAT startup batch
        file:

                        SET FIXMENU=BADCURS

        This will instruct Fixmenu to use an alternate video cursor
        display method. You can use both options in the SET FIXMENU
        variable together:

                        SET FIXMENU=E0;BADCURS

        in any order as long as they are separated by a semi colon.
        Remember not to leave any blank spaces in the line.

        The Fixmenu program is NOT network aware. It will not work
        across networks. It will be necessary to install one copy of the
        program for every site. However, the Original and the Modified
        files can be used across networks (they can not be shared while
        being used).

        The menu interface program requires the MakeFix patch creation
        program to exist in the same directory (the home directory). If
        the MakeFix utility is not found, the menu program will display
        a message and abort.

        The Fixmenu program catalogs each set of files as Projects.
        There can be any number of individual records within a project,
        and any number of projects may exist.

        There are six options available from the Main Menu.

                        Select Project
                        Add Project
                        Delete Project
                        Edit Project
                        Run Project
                        Quit

        On line help is available in the Fixmenu program by pressing the
        F1 key at any time. A window will appear with the help text. Use
        the Page Up and the Page Down keys to navigate the help screens
        displayed. Pressing the Escape key will return to the program.
        The Fixmenu program also has a built in screen saver feature. If
        you do press any key for 5 minutes, the screen will be blanked
        with a moving "Press any key" message. Press any key to restore
        the menu and to continue using the program. The screen blanker
        can be called at any time by pressing the Alt-B key combination.

        Select Project
        The Select Project option allows you to choose from a list of
        existing project names. If only one project exists, it will be
        selected without any prompting. If more than one project exist,
        use the Up and the Down arrow keys to navigate the list and
        select with the Enter key. If there are more projects than can
        be displayed in the allocated space, you can use the Page Up and
        the Page Down keys to navigate the list. The Home key will take
        you to the first item and the End key will take you to the last
        item on the list. Pressing Escape will abort the selection and
        will return to the Main Menu. If any project was active before
        selecting this option, it will remain active. Only one project
        can be active at a given time.

        Add Project
        The Add Project option allows you to add a new project to the
        system. You may use any name up to 8 characters with no imbedded
        spaces. The project name that you enter will be used as a root
        name for the database and splinter files that will be created.
        Press the Enter key to accept the name you have entered, the new
        project will become active and the new project database will be
        created. Press the Escape key to abort and return to the Main
        Menu, if a project was active it will remain active. If you
        enter a project name that is already in use, the new project
        will NOT be created, the old project with the same name will
        become active instead.

        Delete Project
        The Delete Project option is used to delete an entire project.
        If no project is active this option will not be available. If a
        project is active, this option deletes the database for the
        active project and ALL splinter files that are associated with
        the project. Final Fix files (if any exist) will NOT be deleted.
        You will be prompted to confirm the deletion, type YES to delete
        delete the project, pressing Escape or typing any other letters
        will abort the deletion and return to the Main Menu. Deleting a
        project is PERMANENT!!! Be absolutely sure before answering YES
        to the prompt.

        Edit Project
        This option allows you to edit the individual records in a
        project, to make changes or add new records to the project. If
        no project is active this option will not be available. A browse
        window will appear with the following prompts. The Page Up key
        takes you to the previous record, and the Page Down key takes
        you to the next record. If you were at the last existing record,
        a new blank record is added. After you have finished editing,
        press the F10 key to save the record and exit back to the Main
        Menu.

        Project name: This is the name of the active project, and
        can not be changed.

        Order: This is the order in which the individual splinter files
        will be assembled to create the final Fix file(s). By default
        the order begins at 1 and increments with each new record added.
        You may change this order if required. If two records are given
        the same Order number, the older record will be used first.

        Active: Splinter files are created and included in the final Fix
        file(s) only if this field is set to Y. Setting this field to N
        will cause the record to be totally ignored. Since there is no
        way to delete individual records, setting this field to N is the
        only way to prevent a record from being used.

        Original: This is the full drive:\path\filename.extension of the
        Original file to use for creating an update patch. The file
        size, time and date are displayed on the next line. If the file
        does not exist, the file size, time and date fields will be
        blank. You may type in the file name with full path, or press
        the F9 key to activate the pop up file directory tree. Pressing
        the Enter key on an empty field also has the same result.

        Comment: This is the Fix file comment associated with the
        Original file. This comment will be displayed when the Fix file
        is applied by the end user. It can contain any relevant
        information regarding the Original file such as the version
        number. If the associated splinter file exists, and you edit
        this field, the splinter file will be updated with the new
        comment. The update is done only when you press the Page Up, the
        Page Down or the F10 key to save and exit.

        Modified: This is the full drive:\path\filename.extension of the
        Modified file to use for creating an update patch. The file
        size, time and date are displayed on the next line. If the file
        does not exist, the file size, time and date fields will be
        blank. You may type in the file name with full path, or press
        the F9 key to activate the pop up file directory tree. Pressing
        the Enter key on an empty field also has the same result.

        Comment: This is the Fix file comment associated with the
        Modified file. This comment will be displayed when the Fix file
        is applied by the end user. It can contain any relevant
        information regarding the Modified file such as the version
        number. If the associated splinter file exists, and you edit
        this field, the splinter file will be updated with the new
        comment. The update is done only when you press the Page Up, the
        Page Down or the F10 key to save and exit.

        Final Fix filename: This is the name of the desired final Fix
        file. The final Fix file is created from the individual splinter
        files from Active records only. The Fix file will always be
        created in the QuickFix home directory, you can not specify a
        path. If you do not specify a file extension after the file
        name, an extension of .QF will be assumed. If any of the
        Original or Modified files have been changed (if they do not
        match the size, time and date in the respective database
        records), the associated splinter file and the final Fix file
        are deleted. To rebuild them use the Run Project option from the
        Main Menu.

        On disk: This is the actual disk file name of the splinter file
        for the record. You can not edit this field, if no splinter file
        is present this field will be blank. The root name of the
        splinter file will be the same as the project name, with a
        unique file extension (.000 .001 .002).

        Path specification: The QuickFix System has the capability to
        update entire directory structures. If you wish to use this
        feature, you can enter the appropriate path name in this field.
        The path name that you specify is used from the location at
        which the Fix is applied, it does NOT specify an explicit
        directory.

        Memo: This field is available for your notes, it is not used by
        the program in any way.

        Run Project
        This option creates the individual splinter files and the final
        Fix file(s) for the active project. This option will not be
        available if no project is active. When you select this option,
        a pick list will offer two choices, to Only create splinter
        files or to Create splinter & Fix files. If you choose to create
        only the splinter files, the final Fix file(s) will not be
        assembled. If you choose to create both splinter files and final
        Fix files, the final Fix files will also be created. The Fixmenu
        program will execute the MakeFix utility for each active record
        in the project, creating the individual splinter files. If a
        splinter file exists, and is up to date (both the Original file
        and the Modified file have not been changed) the same splinter
        file is used, saving time. The MakeFix program could run for
        hours, depending on the nature of differences between the files.
        A screen snapshot is taken after each splinter file has been
        prepared. After all the splinter files and (if selected) the Fix
        file(s) have been created, the screen will be blanked with a
        moving "Press any key" message.

        Quit
        This option closes all databases and splinter files, and returns
        to the operating system. Pressing Escape at the Main Menu also
        has the same result. You must always use this option to quit the
        program before turning the power off to your computer system, as
        some files may be inadvertently left open and cause data loss.


        The QuickFix applicator utility
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        The QuickFix program is the update Fix file applicator utility.
        It uses the Fix files created by the Fixmenu and the MakeFix
        programs to update the target files, and must be distributed
        along with the Fix files to the end users. If a target file can
        not be found or does not match the CRC that is encoded into the
        Fix file, QuickFix will inform the user, skip the file, and will
        attempt to continue with the next Fix (if any). If a fatal error
        does occur, QuickFix will report the error and will suggest a
        possible solution to remedy it.

        The QuickFix applicator program requires only 70 Kilobytes of
        conventional memory to run. It does not require any Expanded
        memory. Sufficient disk space is required to complete the
        updates, equal to the size of the largest file being affected.

        Using QuickFix is very easy, simply pass the name of the Fix
        file on the command line. Both the Fix file and the QuickFix
        applicator program must exist in the same directory as the
        target file(s). For example, to apply a Fix file named
        UPDATE.QF:

                        QUICKFIX UPDATE.QF

        If no file extension is specified for the Fix file, an extension
        of .QF is automatically assumed:

                        QUICKFIX UPDATE

        If the Fix file is named QUICKFIX.QF it will be found and used
        by the applicator program automatically without needing any
        command line parameters, for example:

                        QUICKFIX

        If no command line is specified, and no QUICKFIX.QF default Fix
        file is found in the current directory, QuickFix will display an
        error message and terminate.


        The MakeFix creation utility
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        The MakeFix program creates the update Fix files. It only
        accepts input in the form of command line arguments. The Fixmenu
        interface shell handles the required syntax when it is used, but
        you can also use this utility to create Fix files directly from
        the DOS command line.

        The MakeFix patch creation program requires 75 Kilobytes of
        conventional memory to run. It does not require any Expanded
        memory.

        The syntax to use MakeFix is:

        MAKEFIX <original> (c1) <modified> (c2) <fixfile> <path>

        where <original> is the drive:\pathname\filename.extension
                of the Original file to use;
        and (c1) is the comment associated with the Original file,
                contained in parenthesis (), if no comment is
                specified this option will be ignored;
        and <modified> is the drive:\pathname\filename.extension of
                the Modified file to use;
        and (c1) is the comment associated with the Modified file,
                contained in parenthesis (), if no comment is
                specified this option will be ignored;
        and <fixfile> is the filename.extension of the Fix file to
                create, NO path is allowed, the Fix file can be
                created in the current directory only;
        and <path> is the path information to write into the Fix
                file, if the preceding and trailing backslashes are
                omitted, they will be added automatically. If this
                option is used it is ignored.

        MakeFix will compare the Original file and the Modified file,
        mapping their differences into the specified Fix file. The
        Original and the Modified file names will be displayed, with
        their respective file sizes in Hexadecimal digits.

        If both the Original and the Modified files are identical to
        each other, MakeFix will display an error message and terminate
        without creating a Fix file.

        As MakeFix compares the Original and the Modified files, it
        displays the location within the files in the form of a
        Hexadecimal address. If differences are found, a hexadecimal
        number will show the amount of tries MakeFix has attempted. A
        quick pass will be made first, if this fails a slower pass will
        be made to resolve the difference between the files.

        Large files with severe differences could take MakeFix several
        hours to complete. Operation can be aborted by pressing the
        Control-C keys, but the Fix file that was being created will
        only be half complete and will be useless.

        To create multiple update Fix files from the command line, you
        must run the MakeFix program on each set of Original and
        Modified files using the same final Fix file name for each set.
        Each successive Fix will be appended to the same Fix file,
        creating a multiple update Fix file. The MakeFix program tests
        the validity of the Fix file if it exists, if the Fix file is
        corrupt it is DELETED and a new one is created. If the existing
        Fix file is valid, it is used and the new Fix information is
        appended to it. Note this does not allow you much flexibility,
        use of the Fixmenu interface program is recommended.


        The Fix2Exe conversion utility
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        The Fix2Exe program converts Fix files into self executing
        programs. The resultant self applying executable Fix files do
        not require the QuickFix applicator, they update the target
        files themselves. The Fix2Exe program is not called by the menu
        interface, it is a standalone utility that can be used after the
        final Fix file has been prepared.

        The Fix2Exe conversion program requires only 65 Kilobytes of
        conventional memory to run. It does not use any Expanded memory.

        The syntax to use Fix2Exe is:

                FIX2EXE <infile[.ext]> [<outfile[.ext]>]

        where <infile[.ext]> is the path and file name of the Fix
                file that is to be converted, if no extension is
                specified then .QF is assumed;
        and [<outfile[.ext]>] is the path and filename for the EXE
                program to create, if not specified the same root
                name as the source Fix file will be used, if no
                extension is specified then .EXE is assumed.

        Fix2Exe will create the specified executable Fix program that
        can be distributed to end users.

        If the specified output EXE file already exists, it will be
        overwritten without any warning.

        The self EXEcuting fix files created by Fix2Exe are functionally
        identical to the original Fix files, except they do not require
        the QuickFix applicator utility.


        Thanks go to ...
        ~~~~~~~~~~~~~~~~
        Harris 'Speedy' Lam
        Rick 'Trekky' Alvey
        Joe 'Wave' Eversole
        Dane 'Babble' Beko
        and Marcus 'Modem' Byron for his invaluable help.





