Sin nada que ver con Blinker, salvo que el nombre me gustaba, y el concepto de parpadeo era muy pertinaz, Blink surgió a principios de 1997, con la idea de ser el archivador/desarchivador más rápido del mercado. No en vano, se basaba en mi apreciado RLE, como recientemente haría con RLE64, y a pesar del pobre control de calidad que me caracterizaba, estuvo activo hasta principios de 1999.
De la mano de De Trans Software (D.T.S.), aportaba importantes innovaciones. Empecemos por su interfaz de usuario, basada en consola, e inspirada en la del mencionado UC2, pero con importantes ayudas en cuanto a su uso. No tenemos más que ver la pantalla de ayuda que se accedía desde BLINK /?.
Probablemente tras Outlaw, y Diff / Patch Package que merecerá un futuro artículo, fue de los softwares que más disfruté en aquella época de finales de DOS, con las últimas herramientas de la época, todo un lujo para un aficionado.
Su eslogan era una declaración de intenciones: Fast file compressor and packer (Intended to be the fastest. Tenía por objetivo ser el más rápido del mundo, algo que seguro que os suena, y a tenor de las pruebas independientes de Squeeze Chart estuvo a punto de lograrlo. Como decía, usaba una implementación propia de RLE, aunque rápidamente le integré nuevos algoritmos. Primero LZW1 y luego FIN de Jussi Puttonen. Todos disponibles en LDS 1.1. LZW1 era una sencilla y rapidísima implementación de Lempel-Ziv-Welch, que iría modificando poco a poco para llegar a conseguir no solamente una leve mejoría en el grado de compresión (sobre el 10%), sino una mejora de su ya de por si elevada velocidad, tanto de compresión como de descompresión del 50%.
Curiosamente, los recuerdos que tengo de BLINK, es estar implementado completamente en C. Nunca podré estar seguro, porque nuevamente todo el código fuente se perdió, aunque estoy bastante seguro que al menos en las rutinas de compresión no había nada de ensamblador. Un total de algo de más de 2300 lineas de código.
Además de comprimir archivos individuales, empaquetada, es decir, los metía todos en un único archivo, permitiendo extraerlos, visualizarlos o verificarlos, tanto en conjunto, como individualmente, o usando máscaras DOS. Sin embargo nunca implementó recursividad sobre el árbol de directorios, y cuando planeé hacerlo, lógicamente las estructuras de datos internas ya no lo permitían. De hecho, ciertos hackers analizaron e hicieron ingeniería inversa del formato, aunque sin demasiado detalle.
Así que os resumo un poco lo que he ido reanalizando. Empezaba con una cabecera a nivel de archivo, con la marca Blink by D.T.S.. Ésta podía estar en la posición cero, o más adelante, para soportar SFX personalizados. Luego para cada archivo, había una nueva cabecera para el mismo. Ésta guardaba su nombre, tamaño comprimido, descomprimido, un checksum, y los atributos y fecha/hora del original. Luego venían uno o varios bloques comprimidos, encabezados por tamaño comprimido y descomprimido del bloque, y método de compresión. Así, hasta llegar al total del fichero. Debo decir que además de RLE, FIN y LZW como he comentado, se implementaba el almacenaje sin compresión (store), para aquellos datos que no eran comprimibles. Es decir, si el tamaño comprimido era superior al descomprimido, automáticamente se empaquetaba sin comprimir. Algo ingenioso, aunque a decir verdad poco original.
El siguiente rasgo interesante era su runtime de archivos autoextraibles (SFX), para permitir la descompresión de archivos de manera autónoma, es decir, sin necesidad de tener BLINK en el ordenador (Fast file SFX extractor). El módulo SFX eran apenas 12 Kb. de código comprimido, también escritos en C.
De entrada venía con dos compilaciones, una denominada de 16 bits (BLINK), compatible con procesadores 8088 o superiores, y otra denominada de 32 bits (BLINKX), que en realidad era una versión compilada para 386 o superiores, y optimizada para 486, que eran capaces de trabajar con requisitos mínimos (256 Kb. de memoria libre y DOS 3.30).
Se fueron añadiendo con el tiempo más herramientas BLINKDOC (1997), un programa en ensamblador de 8 Kb. que permitía visualizar toda la documentación del programa, o guardarla en disco.
Y después BLINKINF (1998) que también en ensamblador obtenía información del hardware, para recomendar a usuario si debía ejecutar BLINK o BLINKX.
Después en 1999, aparecería una versión beta para Win32 en modo consola, llamada BLINKW, y con las mismas funcionalidades que las de DOS, pero algunos bugs.
En el FTP del SAC (Slovak Antivirus Center) de Peter Hubinsky, aún conservan la última versión publicada (2.55), o como me gustaba llamarla Spec 2 Revision 55, y que puedes descargar aquí (121 Kb. en formato ZIP).
Dado que este tipo de artículos, siempre preservan la documentación oficial del programa, aquí la tenéis:
ÜÛÛÛÛÛÛÛÛÜ ÜÛÛÜ ÜÛÜ ÜÛÛÜ ÜÛÛÜ ÜÛÛÜ ÜÛÛÜ ÛÛÛÛ ÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛÜ ÛÛÛÛ ÛÛÛÛ ÜÛÛÛÛß ÛÛÛÛÛÛÛÛÛß ÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛß ÛÛÛÛßßßÛÛÛÜ ÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛßÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛÜ ÛÛÛÛÜÜÜÛÛÛÛ ÛÛÛÛÜÜÜÜÜÜÜ ÛÛÛÛÛ ÛÛÛÛ ßÛÛÛÛ ÛÛÛÛ ßÛÛÛÛÜ ßÛÛÛÛÛÛÛÛß ßÛÛÛÛÛÛÛÛß ßÛß ßÛÛß ßÛÛß ßÛÛß ßÛÛß ÚÄ ÄÄ Ä¿ Fast file compressor and packer (Intended to be the fastest) ÀÄ ÄÄ ÄÙ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º Spec 2 Step 55 º º º º (c) Copyright 1997-1999 º º by º º De Trans Software (D.T.S.) º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ¼ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º Introduction º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ BLINK is intended to be the fastest utility of this style available, certainly its compression algoriths are not as good as other product ones, but probably it will be faster than all of them, or at least faster than many of them, in some cases it is also faster than a DOS copy. Surprisely, its hardware requeriments are very low (see above), so it can be used in portable and old computers (since a PC with more than 10 years old, would be able to run BLINK). Our idea is to continue improving this program (specially if it were not the fastest), in the ways of: more speed, more compression, and more features in order of importance). If you discover a faster product, we will be very pleased if you send us at one of the adresses listed in the 'Contacting with us.' section, and will help us in the task of improving BLINK. ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º Public Domain º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ This program is Public Domain, it means that you can use, copy and distribute it freely. The only conditions required are þ The package is complete. þ The package has no modifications. In a few words, you should distribute the original package. ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º Disclaimer º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ We cannot make responsible of any hardware or software damage caused by our programs, or by others programs, but if you have problems, please contact us, and we will make all the posible in helping you. *** The Windows version is still in the beta stage, it means that it could *** *** have bugs, so do not use it for critical files. Obviously we expect *** *** comments, suggestions, and bugs report for you to improve it. *** ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º Requeriments and limitations º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ BLINK requires: þ 8088 processor or later for the DOS 16 bit version, a 386 procesor or later the DOS 32 bit version, and a 486 processor for the Windows version. þ 256K of free RAM at least for the 16 bit version, 256K of free RAM at least for the 32 bit version, and 384K of free RAM at least for the 32 bit Windows console version. þ 300K free on disk at least. þ DOS 3.30 or greater for the DOS versions, and Windows 3.1 plus Win32s or greater for the Windows versions. BLINK has the following limitations: þ Paths are not suported in multiple files. þ Cannot handle files of more than 4Gb. þ Cannot handle more than 65535 files. ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º The package º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ The complete BLINK package is formed by these files: þ BLINK.EXE BLINK DOS real mode (16 bit) version itself. þ BLINKX.EXE BLINK DOS real mode (32 bit) version itself. þ BLINKW.EXE BLINK Windows protected mode (32 bit) version itself. þ BLINKDOC.EXE BLINK documentation viewer. þ BLINKDOC.TXT BLINK documentation (this file is optional, if you do not have it, please, press F-1 inside BLINKDOC, and it will be automatically created. þ BLINKINF.COM BLINK information. Tells you which CPU is installed in your system, and what version of BLINK you should run (16 or 32 bit version for DOS or Windows). Please, if your package is modified or not complete, do not distribute it. ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º Product history º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ BLINK is a very alive program, here are the major changes uppon versions: ÚÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ 2.55 ³ 29/05/99 ³ Added all the methods in Blink (RLE, FIN, and LZE) ³ ³ ³ ³ also, the executables, are all compressed using UPX ³ ³ ³ ³ because of the new 8086 decompression procedure. ³ ³ ³ ³ Documented the B command for benchmark test. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 2.51 ³ 13/03/99 ³ Fixed a stupid bug in the SFX module. The Windows ³ ³ ³ ³ version is more or less finished, since we have added ³ ³ ³ ³ some features, and corrected some bugs. BLINKDOC have ³ ³ ³ ³ been revised in syntax and spell checking. Also added ³ ³ ³ ³ the support in BLINK for creating COM and EXE SFX ³ ³ ³ ³ files (actually they are the same). All the EXE are ³ ³ ³ ³ smaller because they are now compressed with LGLZ ³ ³ ³ ³ 1.04 c (by George Lyapco), and the Windows and 386 ³ ³ ³ ³ versions using UPX 0.61 (by Markus Oberhumer & Laszlo ³ ³ ³ ³ Molnar). ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 2.50 ³ 05/03/99 ³ New recompilation with newer tools (Borland C++ 4.52 ³ ³ ³ ³ to 5.02, Turbo Assembler 4.1 to 5.0, Turbo Linker 4.01³ ³ ³ ³ to 7.1 and Turbo Optimizer 1.31 to 2.00. Also the ³ ³ ³ ³ program has been optimized in terms of speed and a ³ ³ ³ ³ bit in compression. This is the fastest BLINK ever ³ ³ ³ ³ released. ³ ³ ³ ³ We are now shipping new versions of BLINKINF and ³ ³ ³ ³ BLINKDOC. Also beta testing the Windows version. ³ ³ ³ ³ This release is intended to be distributed world-wide.³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 2.01 ³ 03/12/98 ³ Due to some unstability problems, the RLE and the FIN ³ ³ ³ ³ compression method are not available. So the SFX ³ ³ ³ ³ module is smaller. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 2.00 ³ 21/09/98 ³ Added RLE algorith (improved version of the available ³ ³ ³ ³ in the 1.43 version) and the FIN algorithm. Also some ³ ³ ³ ³ bugs fixing and a bit of improvement in the speed. ³ ³ ³ ³ More or less two months of beta testing. BLINKDOC ³ ³ ³ ³ has been completed and corrected; and BLINKINF now ³ ³ ³ ³ supports until Pentium II family processors. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.70 ³ 19/06/98 ³ The SFX module is now compiled using Turbo C++ v1.01, ³ ³ ³ ³ it gives us more or less 4K in size saving. Tools ³ ³ ³ ³ upgraded (Turbo Linker v4.00 to v4.01). We have now ³ ³ ³ ³ Turbo C++ v1.01 (it generates slower code, but also ³ ³ ³ ³ smaller -very hard to get it-). ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.61 ³ 21/04/98 ³ Fixed a division by 0 bug when managing files of 0 ³ ³ ³ ³ bytes in length. Corrected a bug that appears when ³ ³ ³ ³ decompressing/viewing a mask of files. Fixed Pentium ³ ³ ³ ³ II detection in BLINKINF. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.60 ³ 04/04/98 ³ Designed new file handling, and some minor ³ ³ ³ ³ improvements; getting these ways about 50% of speed ³ ³ ³ ³ increase. Added BLINKINF with detailed CPU ³ ³ ³ ³ information. Now BLINKDOC offers a section with ³ ³ ³ ³ BLINK performance against other packers. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.51 ³ 09/02/98 ³ Removed some debugging code that was accidentally ³ ³ ³ ³ kept in the executable. Fixed a bug while creating ³ ³ ³ ³ SFX's. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.50 ³ 26/01/98 ³ Developed two versions (16 bit and 32 bit), which are ³ ³ ³ ³ very optimized (the new 32 bit version is about a 20% ³ ³ ³ ³ faster than the 16 bit one. Rewritten the code to be ³ ³ ³ ³ in the future fully compatible with DJGPP. Tools ³ ³ ³ ³ uograded (Borland C++ 4.5 to 4.52; Turbo Assembler ³ ³ ³ ³ 4.0 to 4.1 and DJGPP C++ 2.0 to 2.01). ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.44 ³ 08/01/98 ³ Removed compression method 1 (RLE). Fixed some bugs. ³ ³ ³ ³ Improved the SFX module size. Now it is 2K smaller. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.43 ³ 23/11/97 ³ Improved BLINKDOC source, now is smaller and faster; ³ ³ ³ ³ also the contents have been corrected, incremented ³ ³ ³ ³ and updated. New colors selected for BLINKDOC. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.42 ³ 10/10/97 ³ A bit of size optimization in the SFX module. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.41 ³ 10/10/97 ³ Fixed some problems with internal headers, that ³ ³ ³ ³ stores garbage under certain circunstaces. Now the ³ ³ ³ ³ header's size is smaller. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.40 ³ 27/09/97 ³ Improved the code for skiping files, now they are not ³ ³ ³ ³ read, so in this condition this version is several ³ ³ ³ ³ times faster (about 800%). ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.32 ³ 16/08/97 ³ Added BLINKDOC with more detailed information about ³ ³ ³ ³ BLINK. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.31 ³ 25/07/97 ³ Solvented a bug that makes sometimes the system to ³ ³ ³ ³ crash after decompressing. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.30 ³ 18/07/97 ³ Ability to create SFX (self extractor) files. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.21 ³ 29/06/97 ³ A great improvement in the compression about 20% and ³ ³ ³ ³ some speed improvement about 5%. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.20 ³ 03/06/97 ³ Implemented the RLE method too. There is no matter if ³ ³ ³ ³ you want speed or compression, you can chose between ³ ³ ³ ³ the two algoritms. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.10 ³ 10/05/97 ³ Changed compression method from RLE to LZE. Now some ³ ³ ³ ³ speed decrease is detected (about 15%), but a lot of ³ ³ ³ ³ ratio increase is got (about 500%). ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.01 ³ 27/04/97 ³ Some changes in the help that makes it more ³ ³ ³ ³ comprensible and complete. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1.00 ³ 19/04/97 ³ First public release of this FAST archiver. ³ ÀÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º Command line º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ USAGE: BLINK
A Add files to an archive using the best compression method. A0 Add files to an archive using the store method. A1 Add files to an archive using the RLE compression method. A2 Add files to an archive using the FIN compression method. A3 Add files to an archive using the LZE compression method. E, X Extract files from an archive. T Test archive integrity. V View files in archive. B Perform a benchark of the algos used. The file to add to/extract from/test in/view in the files (if no extension is specified .BLI is asumed; if the (extension is .EXE a self-extractor -SFX- is used). The files to add/extract/test/view (default *.*). Examples: BLINK A A:\BACKUP Creates the file A:\BACKUP.BLI that contains all the files located in the current directory using the best possible compression method. BLINK A0 \SOURCE Creates the file \SOURCE.BLI, that contains all the files located in the current directory using the store compression method. BLINK A3 IMAGES.EXE *.BMP Creates the SFX IMAGES.EXE that contains all the *.BMP files located in the current directory using the LZE compression method. BLINK E A:\BACKUP Extracts from the file A:\BACKUP.BLI all the files that contains to the current directory. BLINK X A:\BACKUP Extracts from the file A:\BACKUP.BLI all the files that contains to the current directory. BLINK T IMAGES.EXE Tests from the file IMAGES.EXE all the files that contains. the BLINK V IMAGES.COM *.BMP Views all the BMP files contained in IMAGES.COM. ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º Performance º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ The following are the results of a test that consist in packing 12 files (EXE, COM, DLL, SYS, DAT and TXT). They were done in a 486/40 with 8Mb of RAM, 450Mb Hard Disk, running Caldera DR-DOS 7.03 Beta. (Obviously we run BLINKX). ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ POSITION ³ PROGRAM ³ SWITCHES ³ TIME ³ SIZE ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 1 ³ BLINK 2.55 ³ A ³ 15'19 ³ 1,785,465 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 2 ³ PKZIP 2.04g³ -ES ³ 22'08 ³ 1,447,793 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 3 ³ PKPAK 3.61 ³ A ³ 24'23 ³ 1,804,651 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 4 ³ ARJ 2.60 ³ A -M4 ³ 26'97 ³ 1,468,097 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 5 ³ AIN 2.32 ³ A -M3 -U3 ³ 27'36 ³ 1,438,501 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 6 ³ ARC 6.02 ³ A ³ 38'89 ³ 1,857,568 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ³ TOTAL ³ ³ ³ 2,813,791 ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Benchmarks sorted by size: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄ¿ ³ POSITION ³ PROGRAM ³ SWITCHES ³ SIZE ³ TIME ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´ ³ 1 ³ AIN 2.32 ³ A -M3 -U3 ³ 1,438,501 ³ 27'36 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´ ³ 2 ³ PKZIP 2.04g³ -ES ³ 1,447,793 ³ 22'08 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´ ³ 3 ³ ARJ 2.60 ³ A -M4 ³ 1,468,097 ³ 26'97 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´ ³ 4 ³ BLINK 2.55 ³ A ³ 1,785,465 ³ 15'19 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´ ³ 5 ³ PKPAK 3.61 ³ A ³ 1,804,651 ³ 24'23 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´ ³ 6 ³ ARC 6.02 ³ A ³ 1,857,568 ³ 38'89 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´ ³ ³ TOTAL ³ ³ 2,813,791 ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÙ Benchmarks sorted by overall: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄ¿ ³ POSITION ³ PROGRAM ³ SWITCHES ³ SIZE ³ TIME ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´ ³ 1 ³ PKZIP 2.04g³ -ES ³ 1,447,793 ³ 22'08 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´ ³ 2 ³ BLINK 2.55 ³ A ³ 1,785,465 ³ 15'19 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´ ³ 3 ³ ARJ 2.60 ³ A -M4 ³ 1,468,097 ³ 26'97 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´ ³ 4 ³ AIN 2.32 ³ A -M3 -U3 ³ 1,438,501 ³ 27'36 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´ ³ 5 ³ PKPAK 3.61 ³ A ³ 1,804,651 ³ 24'23 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´ ³ 6 ³ ARC 6.02 ³ A ³ 1,857,568 ³ 38'89 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´ ³ ³ TOTAL ³ ³ 2,813,791 ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÙ Note that unless BLINK is using its smaller compression method, it is still faster that its competitors (that are using the fastest compression method). Unfortunatelly its compression ratio is still worse than the competitors (not very important for a utility designed specially thinking in speed terms). ÉÍÍÍÍÍÍÍÍÍÍÍ» º Details º ÈÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ BLINK uses three basic algoriths of compression: þ Storing: No compression is done, the block is stored in its original form (without compressing). þ RLE: Run Length Encoding. Uses a modified version of the RLE-2 that implements the possibility to activate/deactivate the compression obtaining this way better compression ratio. This algorith has been selected for its superior speed while compressing and decompressing (available only for compatibility with older versions of BLINK). þ FIN: Finish submission. Uses a kind of stadistical compression. It has been choosed for its good compression speed (althought decompression is not as fast as we want). (available only for compatibility with older versions of BLINK). þ LZE: Lempel Ziv Enconding. Uses a modified version of the LZ-77 that implements the overrun detection, so when a compressed block cannot be compressed is detected soon, without the need to finish the compression. This algorith has been selected for its good ratio compression/speed, and its good decompression time. BLINK has the ability to store a file that each block has a different sort of compression. One important think more, is that a compressed file cannot ocuppy more space than the original, because if this is detected, it is automatically stored. As a curiosity we want to say that the source is C and assembly, about 95% of C code (Borland C++ v5.02), and 5% of hand optimized assembly (Turbo Assembler v5.0), totalling about 2,500 lines of source code. In the other hand BLINKDOC (with internal version 1.70) is a small 100% assembly program; about 800 lines length; and BLINKINF is a tiny assembly program with about 300 lines of source (internal version is 1.35). NOTE: The idea was to compile the 32 bit version, using DJGPP C++ v2.01, but due to last time problems, this 32 bit version would not be available until the next release or later. Our tests with this alpha version gets about 200% of speed increase compared with the current 32 bit version that uses Borland C++ 5.02; the price is a little unstability and reliability (that will be fixed soon). In the other hand we are seriously considering to release a version of BLINK for Windows 32 bit (95/98 and NT) but this will be probably latter than the DOS 32 bit version. ÉÍÍÍÍÍÍÍÍÍÍ» º Future º ÈÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Depending on the users interest we are planning to improve BLINK in several ways: þ Implement an encription method: We thought in the XOR method because it is relatively safe, and fast; but using our estimations, this process would slow down BLINK about 15%. So until the compression algoriths do not get 15% more speed (to mantain BLINK speed as now), we will not implement the encription. þ CRC calculation: We thought in a real CRC, and in a checksum, probably we will implement the checksum, because is about 5 times faster than the CRC, anyway in an archiver there is no need of a high level integrity check, so the checksum is more suitable. If this process does not slow-down BLINK a lot, we will implement the checksum, else like before, we must wait... þ Recursively directory pack: We know almost all the archivers have this feature, but BLINK born as a chance (be the faster archiver); and we did not consider to implement this. Due to the quickly growing of BLINK, we are obligated to code this, but this will not be until 3.00 release, and will be incompatible with 1.xx and 2.xx versions. þ A real 32 bit protected mode version: Yes, it will be finished when the problems using DJGPP C++ v2.01 where solvented or we decided to use Borland PowerPack. þ A 32 bit Windows version, probably with a GUI. þ More speed and compresion ratio: As soon as we know how to do it, be sure we will do. The only thing about this is to the remove the RLE method and to substitute it by a reduced LZE, but this will method will not be used regulary, so the wins are minimal. And the suggestions you and us think good. ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º Contacting with us º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ If you want to contact us via standard mail, please write to: De Trans Software (D.T.S.) Javier Guti‚rrez Chamorro For more information, and the latest available versions of our programs contact with our Web page in Internet at: http://culturechat.reocities.com/SiliconValley/4505/