

                Multi Patch Compiler/Processor for Web Deployment Version 1.10
                


                      Copyright (c) 1997 Chris Wood,  All Rights Reserved
                      







   Disclaimer
   

   This program is copyrighted material for personal use on one computer.

   If you would like to continue to use version 1.10 of MPC/P after an evaluation period of
  ten days, or you wish to have full access to all the commands, you will need to register
  MPC/P just by sending an email to me giving me your full name, name you wish to appear in
  your compiled files, email address, state or county, country of residence, any suggestions
  or opinions to improve MPC/P to 'chris.wood@programmer.net'.

   This program can only be used on the understanding that no responsibility is held by or
  can be accepted by the author for any problems arising through its use, or misuse.

    It is the understanding of the author that this program operates in the manner in which
  it is intended and contains no major 'bugs' or errors.

   No charge, other than a nominal disk handling, duplication and postage fee, may be made
  for it and should be supplied as an archived file bearing the file name 'MPCvvv.???',
  where 'vvv' corresponds to the version number (ie 100) and '???' corresponds to a relevant
  archive extension (such as ZIP, ARJ, RAR, etc) which contains the files listed below.


   Archive File contents
   

   FILE_ID  DIZ........Brief Description.
   MPC      TXT........This file.
   MPC      EXE........Multi Patch Compiler executable file.
   MPP      COM........Multi Patch Processor Engine executable file.
   EXAMPLE  MPS........Example 'Multi Patch' Script file.

   All information provided by this text file is for guidance only.



   Description
   

   Simple but powerful script language to make changes to binary files, able to create
  standalone COM files, as well as being able to produce very much smaller, encrypted,
  compiled '*.MPC' files, which you can then distrbute with or without the small Patch
  Processor engine. so making the chore of editing Hex addresses directly in programs a thing
  of the past.

   'Multi Patch Processor' using various advanced patching techniques.



   Installation
   

   Extract 'MPC110.ZIP' file into one directory, and start experimenting with writing '*.MPS'
  files, and compiling them with 'MPC.EXE'.  And then processing the '*.MPC' files with
  'MPP.COM'.

   I strongly recommend registering MPC/P, as soon as possible, as then you will be able to
  implement all the commands within MPC/P, its free, so why not give it a go.



   Multi Patch Compiler Usage
   


      Syntax :- MPC [filename(.MPS)] [/?]

   If no filename given then the first '*.MPS' file found will be compiled.



   Multi Patch Script Language
   


   All numbers and data not enclosed in quotes (" ") is represented by hexidecimal digits.

   Maximum length of input line must not exceed 255 characters in length, or the input line
  will be truncated, and the length of old data, and new data must match, else corruption
  will occur.

   If you wish to add comments in the '*.MPS' script file, then just put an ';' (semi-colon)
  in front of the comment to render the rest of the line invisible to MPC, also the
  semi-colon is used as an delimiter for all the commands.



   STANDALONE - Create COM file   [Registered version only]
   

   Syntax:- STANDALONE;

   Standalone command directs MPC to create a COM file, out of the MPS script file.



   OPEN - Open file   [Registered version only]
   

   Syntax:- OPEN [filename.ext] [file size]

         Example:- OPEN example.txt 0000:0009;

   Open 'example.txt' if the file size is equal to 9 bytes, or exit with error.

   'filename.ext' is in the standard dos (8.3) format.



   XOPEN - Open file
   

   Syntax:- XOPEN [filename.ext]

         Example:- XOPEN example.txt;

   Open any size 'example.txt' if the file exists, or exit with error.

   'filename.ext' is in the standard dos (8.3) format.



   CREATE - Create file
   

   Syntax:- CREATE [filename.ext]

         Example:- CREATE example.txt;

   Creates a file called 'example.txt', if the file exists then it is truncated to zero
  bytes in length.

   'filename.ext' is in the standard dos (8.3) format.


   CLOSE - Close file
   

   Syntax:- CLOSE;

   Close the last opened file, or exit with error.



   ATTR - Change Attribute of a file
   

   Syntax:- ATTR [filename.ext] [attribute]

         Example:- ATTR example.txt R:H;

   Changes the Attribute of 'example.txt' to read only, and hidden.

   'filename.ext' is in the standard dos (8.3) format.

       Attribute possible values,

                 N....Normal file attribute
                 R....Read only file attribute
                 H....Hidden file attribute
                 S....System file attribute
                 A....Archive file attribute

   As demonstrated above you can combine the attributes, just by using a colon (:) between
  the values, to produce various attribute settings for files.



   MSG - Display message
   

   Syntax:- MSG [message]

         Example:- MSG Successfully patched example.txt;

   Displays message 'Successfully patched example.txt' in the centre of the screen on the
  current line.



   CPATCH - Compare patch   [Registered version only]
   

   Syntax:- CPATCH [segment:offset] [old data] [new data]

         Example:- CPATCH 0000:0002 4D,50,53 4D,50,43;
                                     'M P S'  'M P C'

   Goto segment:offset file position, read three bytes of data, and compare them with
  old data, if match then write new data to segment:offset file position, or exit with
  error.



   XPATCH - Overwrite patch
   

   Syntax:- XPATCH [segment:offset] [new data]

         Example:- XPATCH 0000:0002 "Hello"09"World";

   Goto segment:offset file position, and write new data to the current segment:offset file
  position.



   SPATCH - Search patch   [Registered version only]
   

   Syntax:- SPATCH [old data] [new data]

         Example:- SPATCH 4D,50,53 4D,50,43;
                           'M P S'  'M P C'

   Search currently opened file for old data, if match found then overwrite old data with
  new data, or exit with error.




   Multi Patch Processor Usage
   


      Syntax :- MPP

   Multi Patch Processor will open the first '*.MPC' file it finds, and will then process
  the contents accordingly.



   Free Registration
   

   To register your use of 'Multi Patch Compiler/Processor' version 1.10 free of charge, just
  send an email to me giving

  full name,

  name you wish to appear in your compiled files (any thing you like nick names, comments,
  it is up to you, be creative if you wish),

  email address,

  state or county,

  country of residence,

  whether you can accept email attachments or not,

  any suggestions, comments, or opinions to improve MPC/P to 'chris.wood@programmer.net'.


   If you can not receive email attachments, it would not be a problem to send the key file
  as text for you to create on your own system.

   The key file is only needed for compiling the scripts, and is not needed for correct 
  operation of MPP, or the standalone COM file.

   If you wish to send sterling (money) to me to help promote the development of this program,
  then send an email requesting an address to send all monies to.



   Help, suggestions, and or bug reporting
   

   If you need any help with 'Multi Patch Compiler/Processor', or have any suggestions for
  future releases of 'Multi Patch Compiler/Processor', or you find any bugs which might
  have slipped through the net, then please contact me via email at the address below,


                     Internet:-  chris.wood@programmer.net



   Future
   

   Just some of the things I will be introducing hopefully in the next version of MPC.

     Integrate a binary file difference engine into MPC.

     Probably add more commands to make it do a lot more then what it currently can do.

   I have several other good ideas on improving MPC/P, if the demand for MPC/P carries on
  increasing.



   History
   

   I developed 'Multi Patch Compiler/Processor' because I wanted an easier way of changing
  known values at certain file addresses in disk files to alternative values, in an easier,
  clearly documentable and easily distributable way.

   For example to distribute hex patch cheats for saved games, rather than distribute a
  mammouth save game editor just to amend one byte in a file, etc..

   'Multi Patch Compiler/Processor'

          Version 1.10 - Added compile to com file support as requested by a user who wishes
                        to remain anonymous.

                         Added data encryption to prevent the casual user from taking credit
                        for your hard work, and hopefully minimise the risk of virus
                        corruption.

                         Added proper string handling support for patching commands, note 
                        there are no spaces between strings, and hex, unless needed for 
                        command syntax.

                         Added extra commands,
                           
                            'XOPEN' to give better support to the search patch command.
                            'CREATE' to create files.
                            'ATTR' to change the attributes of files. 

                         Added key file support, to help me keep track of how much interest
                        is out there for this type of program, and hopefully give me enough
                        incentive to continue to develop MPC/P.

                         Removed the need to have a space after the patching commands,
                        instead I have introduced a semi-colon delimiter, which indicates end
                        of line (this is now compulsary, after each command, any thing after
                        the semi-colon is totally invisible to MPC.).


          Version 1.00 - First public release.


                                     End



