









                                  MDIFF  -  MPATCH
                                    Versin  1.50










        Un programa simple pero completo para producir y aplicar patches a
        programas y archivos de datos para DOS, OS/2, Windows 95 y Windows NT.








                              Manual en idioma espaol.












              (C) 1995/96 Maurizio Giunti - Todos los derechos reservados






     1.INDICE


     1.INDICE                                                                 2


     2.GARANTIA                                                               3


     3.DISTRIBUCION Y USO                                                     3


     4.POR QUE?                                                              3


     5.QUE HACE MDIFF-MPATCH?                                                3


     6.EJEMPLOS                                                               3


     7.DOS, OS/2, WINDOWS 95 Y WINDOWS NT                                     4


     8.LIMITES Y ERRORES CONOCIDOS                                            4


     9.MDIFF - MDIFF2 - MDIFFW                                                4


     10.MPATCH - MPATCH2 - MPATCHW                                            5


     11.MDF2EXE - MDF2EXE2 - MDF2EXEW                                         6


     12.SUGERENCIAS                                                           6


     13.LIBRERIAS PARA APLICAR PATCHES                                        6


     14.REGISTRANDO MDIFF                                                     6


     15.COMO CONTACTAR AL AUTOR                                               7


     16.AGRADECIMIENTOS                                                       7





                                                                              2






     2.GARANTIA
     ESTE SOFTWARE Y LOS ARCHIVOS QUE LO ACOMPAAN SE VENDEN "COMO ESTAN" Y SIN
     GARANTIA EN CUANTO A SU FUNCIONAMIENTO O COMERCIABILIDAD U OTRAS GARANTIAS
     TANTO EXPLICITAS COMO IMPLICITAS.
     La nica garanta otorgada con este software es que ocupa espacio en su
     disco. No se puede garantizar absolutamente que funcione perfectamente o
     que sea la solucin para su problema. Sin embargo, no es un virus y no
     contiene (a menos que haya sido infectado o modificado despus de la
     compilacin) troyanos, back-doors u otras basuras similares. En cada caso
     el autor declina su responsabilidad directa o indirecta, por daos morales
     o materiales que eventualmente puedan resultar de su uso.

     3.DISTRIBUCION Y USO
     Este software pertenece a la categora de programas Shareware: por lo que
     se puede copiar y utilizar libremente por un perodo de prueba de 15 das.
     Despus de este perodo el usuario que desee continuar utilizndolo debe
     registrar su copia enviando el importe de la registracin al autor,
     Maurizio Giunti.
     Los usuarios que paguen el importe de la registracin recibirn una "clave
     de registracin" que contenga su nombre (o el de su empresa/organizacin
     para licencias a empresas).
     Este software puede ser distribudo sin costo alguno, exceptuando el cargo
     eventual por gastos de copiado o transporte/flete.
     De todos modos, es imperativo que se distribuya el PAQUETE ORIGINAL sin
     modificacin ALGUNA.
     Unica excepcin: se puede distribuir el programa MPATCH.EXE, MPATCH2.EXE
     y/o MPATCHW.EXE con uno o ms archivos *.MDF creados con una copia
     REGISTRADA de MDIFF. Adems se puede distribuir cualquier archivo
     ejecutable producido con MDF2EXE.EXE, MDF2EXE2.EXE y MDF2EXEW.EXE que
     contengan nicamente patches MDF creados con una copia registrada de
     MDIFF.
     El autor de este programa no reclama derechos sobre los patches *.MDF.

     4.POR QUE?
     Hace un tiempo tena que distribuir una versin actualizada de un programa
     mo: el paquete comprimido ocupaba ms de 200 KB, y seguramente hubiera
     sido ms conveniente para todos actualizar el viejo ejecutable mediante
     un patch. Me puse en bsqueda de un software que me permitiera crear y
     distribuir un patch de mis programas para DOS y OS/2: para DOS encontr
     algunos (pero ninguno me satisfizo por varios motivos); para OS/2 no
     encontr ni uno! Por lo tanto, decid hacer uno y... aqu est! 8-)

     5.QUE HACE MDIFF-MPATCH?
     MDIFF crea un archivo binario con las diferencias entre dos archivos. Con
     MPATCH y el archivo original se puede recrear el nuevo archivo partiendo
     del archivo de diferencias. Qu hay de bueno en todo sto? Simple:
     suponiendo que el archivo de diferencias sea ms pequeo que el nuevo
     archivo, es ms conveniente distribuir slo sto, en lugar del archivo
     completo, sobre todo si la distribucin se hace por modem.

     6.EJEMPLOS
     Como un ejemplo puse en dos directorios de nombre VIEJO y NUEVO, el MDIFF
     versin 1.45a (una versin alfa (de prueba) en progreso) y MDIFF 1.45
     respectivamente:

     Directorio de VIEJO\*.EXE
     MDIFF.EXE       46602  16/08/95   21.01

     Directorio de NUEVO\*.EXE
     MDIFF.EXE       46602   21/08/95  00.45
                                                                              3






     C:\>mdiff VIEJO\MDIFF.EXE NUEVO\MDIFF.EXE
     MDIFF  V1.50 - MDF file generator (Dos)
     (C) Copyright 1995/96 Maurizio Giunti

     Registered to: MAURIZIO GIUNTI

     VIEJO\MDIFF.EXE,NUEVO\MDIFF.EXE => MDIFF.MDF
     Working...(100%)   MDF size: 1215 bytes   Rate: 2%
     <Done!>

     Directorio de *.MDF
     MDIFF.MDF        1215   7/10/95  13.43

     Ahora podemos aplicar el patch llamado MDIFF.MDF al archivo viejo para
     reconstruir el nuevo:

     C:\>mpatch MDIFF.MDF VIEJO\MDIFF.EXE
     MPATCH  V1.50 - MDF file applier (Dos)
     (C) Copyright 1995/96 Maurizio Giunti

     MDF file produced by: MAURIZIO GIUNTI

     Working: 0% |###########| 100%
     <Done!>

     I obtain the following file:

     Directorio de *.EXE
     MDIFF.EXE       46602  21/08/95   0.41

     que es el EQUIVALENTE a nivel BINARIO del nuevo archivo.

     7.DOS, OS/2, WINDOWS 95 Y WINDOWS NT
     MDIFF y MPATCH para DOS, OS/2 y Windows32 se obtienen a travs de la
     compilacin del mismo fuente, por lo tanto, no existe ninguna diferencia
     en la funcionalidad en el uso de los programas sobre los distintos
     sistemas operativos. Adems, los archivos *.MDF producidos con MDIFF para
     DOS pueden ser utilizados con MPATCH para OS/2 o Windows32 y viceversa.

     8.LIMITES Y ERRORES CONOCIDOS
     MDIFF no puede trabajar con archivos de ms de 16 MB y no puede procesar
     archivos ms pequeos que 20 veces el largo de un chunk.
     Adems, MDIFF para OS/2, habindose obtenido a travs de una compilacin
     directa del fuente de MDIFF para DOS, no est capacitado para trabajar
     con los atributos extendidos (EA) y simplemente se limitar a ignorarlos.
     Adems, si se construye un patch usando MDIFF para DOS u OS/2, al
     aplicarlo usando MPATCH para Windows32 se obtendr una fecha y hora
     incorrecta en el nuevo archivo. Lo mismo sucede si se construye un patch
     con MDIFF para Windows32 y se lo aplica con MPATCH para DOS u OS/2. Esto
     error surge de una implementacin distinta de la funcin utime() en los
     compiladores de Microsoft y Borland.

     9.MDIFF - MDIFF2 - MDIFFW
     El programa MDIFF se ocupa de comparar dos archivos y de almacenar las
     diferencias entre ellos en un tercer archivo que, generalmente, es mucho
     ms compacto. Esta es la sintaxis de la lnea de comandos:

                                                                              4





        MDIFF [-C<c>] [-R<r>] [-F<f>] [-S] [-Z] [-P<pwd>] <OldFile> <NewFile>
                                     [<MDFfile>]

     <OldFile> es obviamente el nombre de la versin anterior del archivo a
     comparar, mientras que <NewFile> es el nombre de la versin actual. Si es
     necesario, se puede especificar el nombre del archivo de diferencias a
     crear <MDFFile>; si no, MDIFF crea un archivo que tiene el mismo nombre
     que <NewFile> pero con extensin ".MDF".
     Para buscar las partes similares en los archivos MDIFF usa un string base
     de largo predefinido de nombre chunk. El largo del chunk es de 16 bytes
     por defecto, pero puede ser cambiado, en un rango 4-256, con el switch -C
     seguido del largo deseado.
     Cuando MDIFF pierde el sincronismo entre los dos archivos que est
     comparando trata de resincronizarlos buscando el chunk que est elaborando
     en el archivo viejo. Esa bsqueda se efecta en un entorno del ltimo
     chunk encontrado, en el rango definido por el switch -R. Por defecto ese
     rango es de 8 bloques de 512 bytes, pero puede variar entre 1 y 16.
     Si esa bsqueda falla MDIFF trata de forzar ese sincronismo entre los dos
     archivos buscando en un rango mayor, definido por 1/16 del tamao del
     archivo viejo. Esta segunda bsqueda puede ser deshabilitada o su rango
     puede ser cambiado mediante el switch -F.
     Especificando el switch -S, una vez terminada la operacin, MDIFF arrojar
     algunos datos acerca de la composicin del archivo de diferencias.
     Tambin es posible, mediante el switch -Z, insertar en el archivo de
     diferencias un breve comentario (con un mximo de 2 KB), que ser
     visualizado durante la aplicacin del patch por parte de MPATCH. El
     comentario se toma del dispositivo de entrada standard (stdin) y, por lo
     tanto, puede ser tomado de un archivo usando el comando de redireccin
     "<".
     Mediante el switch -P se puede proteger el patch con una clave de
     acceso (<pwd>): aquel que no conozca la clave no podr aplicar el patch.
     Por favor tenga en cuenta que el campo de clave hace distincin entre
     maysculas y minsculas.

     10.MPATCH - MPATCH2 - MPATCHW
     Con el archivo anterior y el archivo de diferencias .MDF se puede
     reconstruir el archivo nuevo usando MPATCH. Esta es la sintaxis de la
     lnea de comandos:

                 MPATCH [-P<pwd>] <MDFfile> [<OldFile> [<NewFile>]]

     El nico parmetro obligatorio es el nombre del archivo de diferencias
     <MDFFile>, ya que el mismo contiene el nombre de los otros dos archivos,
     pero es posible modificar esa imposicin simplemente especificando los
     nombres deseados en el orden correspondiente. MPATCH acepta slo el
     switch -P que permite especificar una eventual clave de acceso
     necesaria para aplicar el patch.
     En caso de error MPATCH retorna un errorlevel que debe ser interpretado
     segn la siguiente tabla:
     0        "OK!"
     1        "Memoria insuficiente!"
     2        "No se puede abrir el archivo MDF!"
     3        "Archivo MDF invlido!"
     4        "Las versin del archivo MDF no coincide!"
     5        "NO REGISTRADO!"
     6        "Archivo VIEJO corrupto o incorrecto!"
     7        "No se puede abrir el archivo VIEJO!"
     9        "No se puede crear el archivo NUEVO!"
     10       "Falla general: archivo NUEVO corrupto!"
     11       "El archivo VIEJO y el NUEVO no pueden ser el mismo!"
     12       "El archivo nuevo ya fue patcheado!"
     13       "Clave de acceso incorrecta!"


                                                                              5





     11.MDF2EXE - MDF2EXE2 - MDF2EXEW
     MDF2EXE es un simple programa que se ocupa de almacenar uno o ms (hasta
     127) archivos de patch MDF en un archivo ejecutable (DOS, OS/2 o
     Windows32).
     Este tipo de ejecutable se llama patch autoinstalable.
     La sintaxis del programa MDF2EXE:

           MDF2EXE <mdf_file 1> [<mdf_file 2>....<mdf_file n>] <exe_file>

     Los distintos <mdf_file x> pueden contener "wildcards" (*,?); en este
     caso MDF2EXE buscar automticamente los archivos a insertar.
     El archivo ejecutable creado (que DEBE tener extensin .EXE) podr ser
     ejecutado sin ningn parmetro en la lnea de comandos y buscar
     automticamente los archivos a actualizar. Opcionalmente se puede
     utilizar el switch -P para especificar la clave de acceso, o los switches
     -V o -L para visualizar la lista de los patches contenidos en el archivo.
     Advertencia: no se deben comprimir los patches autoinstalables con PKLite,
     LZexe u otros programas de compresin/encriptacin similares; de otro
     modo, dejarn de funcionar.

     12.SUGERENCIAS
     El mtodo ptimo para construir un archivo de diferencias sera el de
     buscar en todo el archivo viejo los chunks que componen el nuevo archivo;
     obviamente, ese mtodo sera de una lentitud exasperante.
     El algoritmo en que se basa MDIFF representa un compromiso entre resultado
     y velocidad de ejecucin, por eso conviene regular los parmetros de
     funcionamiento de MDIFF mediante los switches correspondientes. Veamos
     cmo actuar en algunas situaciones tpicas:
     1.Archivos con poqusimas modificaciones: es bueno utilizar un chunk muy
       amplio (32, 64 o ms) para reducir al mximo el tamao del archivo de
       diferencias, sobre todo si se est trabajando con archivos de texto o de
       bases de datos.
     2.Archivos de texto: cada tanto un chunk de largo 32 es el ms indicado; es
       conveniente probar de disminuir o eliminar el sincronismo forzado
       mediante el switch -F.
     3.Archivos ejecutables muy grandes: a menudo se obtienen resultados
       mejores agrandando el rango de bsqueda del sincronismo mediante el
       switch -R.
     Un ltimo consejo: no esperen milagros de MDIFF. Si los dos archivos
     comparados son muy distintos el archivo de patch resultar muy grande. En
     estos casos hay poco que hacer, y hay que resignarse a distribuir el nuevo
     archivo entero. MDIFF es realmente til slo si el nmero de
     modificaciones hechas a los archivos no es demasiado grande.



     13.LIBRERIAS PARA APLICAR PATCHES
     Includo en este paquete encontrar un conjunto de libreras para crear
     sus propios programas para aplicar patches. Estas libreras NO PUEDEN
     aplicar patches MDF creados con una copia NO REGISTRADA de MDIFF.
     Esto no significa que no sean completamente funcionales. Significa que
     las libreras slo pueden aplicar patches producidos por una copia
     registrada de MDIFF.



     14.COMO REGISTRARSE
     Si registra MDIFF obtendr una CLAVE DE REGISTRACION que contenga su
     nombre (o el de su (o el de su empresa/organizacin para licencias a
     empresas). Cuando produzca un patch con un MDIFF registrado, se grabar su
     nombre en el patch y cuando MPATCH aplique los mismos mostrar su nombre.
     Adems, todo usuario registrado tiene autorizacin para distribuir
     libremente MPATCH.EXE, MPATCH2.EXE y MPATCHW.EXE con cualquier archivo MDF
     que haya creado. Tambin se pueden distribuir libremente los patches
     autoinstalables creados por usuarios registrados.
     No se requiere el pago de royalties ni de cargos extras!
     Includo en el paquete de MDIFF encontrar un programa de registracin
     para Windows de nombre REGISTER.EXE. Por favor ejectelo en el entorno
     Windows.
                                                                              6





     REGISTER.EXE es una pequea aplicacin para Windows escrita por Grzegorz
     (Greg) Kochaniak, que provee toda la informacin necesaria para comprar
     MDIFF y que permite mandarla directamente al servicio Kagi Shareware por
     correo postal, correo electrnico (e-mail) o fax. Si no usa Windows, por
     favor contctese conmigo.
     Por cualquier informacin acerca de Kagi Shareware por favor lea el
     archivo KAGI.TXT.

     15.COMO CONTACTAR AL AUTOR
     Por cualquier problema o pregunta puede contactarme en las siguientes
     direcciones:

     correo postal:
                     Maurizio Giunti
                     Via G.B. Foggini, 24
                     50142 Firenze (FI)
                     ITALY

     e-mail:
                     Fidonet:      2:332/102.3
                     Internet:     giunti@kagi.com
                                   giunti@abeline.it
                                   giunti@statsun.ds.unifi.it

     16.AGRADECIMIENTOS
     Querra agradecer brevemente a todos aquellos que me han ayudado en el
     desarrollo de este software y de su documentacin, y a aquellos que se
     ofrecieron con coraje como beta-testers. En orden alfabtico:

                             Mauricio Mello de Andreade

                                   Andrea Baitelli

                                    Silvia Borri

                                 Juan Jose Comellas

                                    Filippo Dini

                                 Fabrizio Fioravanti

                                 Cristiano Guidoccio

                                Giovanni Lopes Pegna

                                  Marco Maccaferri

                                  Marco Menichelli

                                   Giuseppe Scarpi

                                   Toni Tatafiore

                                    Duncan Wilcox



                                                                              7

