_______ ____|__ | (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 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 /: where 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 (c1) (c2) where 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 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 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 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 [] where 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 [] 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.