Revistas en papel
 Amiga World Nº17 - Enero 1991
Anterior
MenĂº
Logotipo
Sí puedes leer esta frase, la página ha sido actualizada.

El Amiga Me Encanta ha conseguido el permiso por escrito de IDG Comunications España
para ofrecer los artículos de la revista Amiga World España.

Crunchers Amiga World

Éste artículo
pretende
resolver
todas las
dudas que
tengan los
usuarios de
Amiga sobre
este tipo de
programas
que además
son de una
gran utilidad.

Por Jose Dos Santos Torrijos

Muchos usuarios del Amiga habrán comprobado que después decargar ciertos programas de repente el ordenador para de realizar toda tarea, y la pantalla empieza a cambiar de colores rápidamente, o vibra o el puntero se vuelve loco, efectos todos estos que duran apenas unos segundos.

Pues bien la explicación de esto no la tiene que el ordenador se haya vuelto loco, sino que el programa está cruncheado y en ese momento se dedica a hacer la tarea inversa, es decir descrunchear el programa.

Quien no conozca todavía lo que es un 'CRUNCHER' basta con decir que se trata de un programa, generalmente de dominio público, cuya misión consiste en reducir las dimensiones de un programa sin alterar su funcionamiento. Normalmente lo que hacen es buscar en el fichero los caracteres que se repiten y luego utilizan en el programa destino un código especial seguido del número de veces que se repite ese carácter y por último el código del carácter, así pues si hay en el programa 30 caracteres iguales seguidos el programa cruncheado utilizará sólo 3 para representarlos, con lo que el ahorro de espacio de memoria y de disco es evidentemente. Actualmente los métodos que se utilizan son muy variados, hay tantos que casi diría que cada cruncher utiliza su propio método, tales como utilizar complicados algoritmos de programación, buscar las cadenas de códigos iguales, encriptar los datos, etc.

La ventaja de usar un cruncher o compactador es que deja un fichero en la mitad de la longitud que ocupaba, con el consiguiente ahorro de espacio en el disco, el tiempo de carga es menor al ser también menor su longitud y también puede ser una forma de proteger ciertos datos. Aunque también tiene sus inconvenientes como por ejemplo que luego hay que esperar un cierto tiempo para que se descomprima el programa, o que el tiempo que hay que emplear para comprimirlo en la mayoría de los casos dependiendo del rendimiento que se quiera en el proceso es bastante elevado, otro problema también muy importante es que los programa comprimido luego necesitan una cierta cantidad de memoria, además de la que ocupan, para descomprimirse, con lo que programas que funcionan perfectamente con los 512K del Amiga 500 luego cuando se comprimen no funcionan para este ordenador, aunque este último problema en la actualidad está prácticamente resuelto con el potentísimo 'IMPLODER' que se descrunchea sobre los datos que ha cargado en memoria, siendo la cantidad de memoria que necesita para trabajar mínima.

A continuación pasaré a detallar como actúa cada tipo de crunchers. Debido a que hay una gran multitud de ellos estos van a ser clasificados en 4 grupos: crunchers para ficheros de código máquina, para ficheros ejecutables y por último para los crunches que se suelen usar entre los usuarios de módems.


Crunchers para ficheros de código máquina

Estos programas se encargan de comprimir rutinas o programas en código máquina que han sido salvados directamente de la memoria del ordenador como si fueran ficheros de datos. El resultado final será un programa autoejecutable que contendrá el fichero comprimido y una pequeña cabecera de longitud inferior a los 512 bytes que se encarga de descomprimir ese fichero y ejecutarlo. Los crunchers de este tipo más conocidos son el 'BYTEKILLER', 'DEFJAM-PACKER', 'TIMECHUNCHER', 'TETRACRUNCHER'.

El proceso que emplea cada uno de ellos es el siguiente.

BYTEKILLER: Nada más cargarse el programa se le preguntará al usuario los siguientes datos: el nombre del fichero que quiere comprimir, nombre que irá precedido por un asterisco si quiere que se ejecute el programa, la cantidad de memoria en kbytes que se van a reservar al cruncher para realizar su labor, el OFFSET, es decir la eficacia, siendo el máximo permitido $0800. A continuación se cargará el fichero y se comprimirá con los parámetros antes introducidos. Después de esto el ordenador preguntará si se quiere crear un fichero ejecutable o de datos, la dirección donde se quiere descrunchear y por último la dirección de arranque del programa cruncheado.

DEFJAMPACKER: Para los usuarios que tengan ampliación de memoria antes de usar este programa hay que tener la memoria FAST desactivada. El cruncher pregunta si se quiere usar el megacrunch, la dirección primera y última del bloque de memoria que se le quiera reservar para trabajar, la eficacia comprendida entre $0010 y $8000, y el nombre. Cuando se haya acabado de comprimir el fichero, el usuario tendrá que responder a las siguientes preguntas: dirección de ejecución, dirección donde se va a descrunchear, dirección de la pila y el nombre del fichero que se va a crear.

TIMECRUNCHERS: como en los casos anteriores, se le hará al usuario las siguientes preguntas: espacio de memoria que se va a reservar al crunchear, el OFFSET, en este caso comprendido entre $0100 y $FFF0, el nombre del fichero que se va a comprimir y por último la dirección de memoria donde se va a descrunchear o instalar el programa, la dirección de ejecución y los efectos de descompresión, tales como parpadeo de la pantalla, de los caracteres, efecto en el fondo, así hasta 5 posibilidades.

De los crunchers arriba comentados yo personalmente considero que el más fácil de manejar y con una velocidad de proceso bastante aceptable es el TIMECRUNCHER.


Cruncher para ficheros ejecutables

Un fichero ejecutable es aquel que se carga directamente desde el CLI o WORKBENCH. Los crunchers para este tipo de ficheros lo que hacen es cargarlos en memoria, descifrando los HUNKS o segmentos del fichero, comprimirlos y ordenar los HUNKS para después grabar el fichero en formato ejecutable, pero con la diferencia de que este ya está comprimido.

Como en el caso anterior hay una gran cantidad de crunchers dete tipo circulando por el mercado, por eso sólo se van a comentar los tres mas conocidos, 'MASTER CRUNCHER', 'POWER PACKER' e 'IMPLODER'

MASTER CRUNCHER, este quizá sea el más simple de los tres. Lo primero que hay que hacer es elegir el fichero que se quiere comprimir con el contenido LOAD de la barra de menús, a continuación el programa automáticamente empezará a comprimirlo. El sistema que indica la eficacia de la operación es bastante original, en un recuadro llamado SPEED CONTROL aparecerá un osciloscopio y según se compriman más o menos bytes el diagrama subirá o bajará. Existe otro recuadro llamado TIME CONTROL, que informa mediante una barra la cantidad de bytes que se están procesando. Además el usuario también es informado de la cantidad de bytes originales y la cantidad resultante una vez terminada la operación, a estos hay que sumarles 680 bytes que ocupa la cabecera.

Para grabar el fichero comprimido basta con seleccionar la opción WRITE de la barra de menús.

POWER PACKER V2.3a, para empezar cabe destacar la gran cantidad de opciones que posee, que son una gran ayuda en la mayoría de los casos. Actúa de la misma forma que el anterior, se selecciona la opción LOAD y después SAVE. Pero la gran diferencia se encuentra en los menús. El menú PREFS contiene estas opciones cruncher fichero o cruncher datos, el color de descompresión (parpadeo de fondo, scroll de pantalla, parpadeo del puntero o simplemente del led de encendido del ordenador mientras se comprime, multitarea y por último la opción de grabar preferencias.

Existe un menú llamado HUNKlab que permite crunchear aquellos ficheros que no se pueden comprimir normalmente.

El tercer menú permite descrunchear y recrunchear ficheros y soporta todos los programas que estén comprimidos con estos crunchers: POWER PACKER, ANC CRUNCHER, DRAG PACK, HQC CRUNCHER, MASTERCRUNCHER, RELOKIT, y TNM CRUNCHER.

El POWER PACKER dispone de una ventana por donde va mostrando todos los mensajes al usuario, así pues mientras está comprimiendo aparece el tanto por ciento del programa que se lleva comprimido y el tanto por ciento de memoria que lleva ganado, al final informa de la cantidad de bytes que ocupa el programa comprimido, a los que hay que sumar los 512 bytes que ocupa la cabecera.

Los ficheros de datos comprimidos con el POWER PACKER a la hora de descomprimirlos disponen de programas específicos para cada tipo de datos. Así pues el programa PPMORE descrunchea ficheros de texto y los muestra en pantalla. El PPSHOW realiza la misma función pero para pantallas IFF, etc.

Como se podrá comprobar, este programa es bastante completo.

IMPLODER, se trata casi del último cruncher aparecido hasta el momento. Como curiosidad durante todo el proceso de compactación va sonando una melodía, reflejándose ésta en unos ecualizadores, que a la hora de comprimir indican la cantidad de memoria que falta por comprimir, la longitud final, la eficacia, la potencia. Todos estos datos están representados por unas barras en los ecualizadores que van de 0 a 100.

Para empezar a trabajar hay que seleccionar la opción START que aparece en la pantalla, a continuación saldrá un requester para elegir el fichero, tras el cual aparece un nuevo menú donde hay que elegir la eficacia de 0 a 8, si se quiere encriptar el código, si se quiere que se grabe un icono junto al fichero y por último se selecciona la opción PROCEED.

En la parte inferior de la pantalla saldrán los siguientes mensajes: la longitud original del fichero, la nueva longitud, y el tanto por ciento de memoria ganada.

A estos tres programas se les sometió a una prueba comparativa consistente en crunchear el fichero preferences del workbench, que ocupa un total de 58152 bytes.

El MASTER CRUNCHER tardó 1,30 minutos y dejó el fichero en 34712 bytes.

El POWER PACKER en la eficacia 'good' tardo 4 minutos y comprimió el fichero en 28428 bytes, ahorrando el 53 %.

El IMPLODER en la eficacia 5 tardo 4 minutos y comprimió el fichero en 26176 bytes, ahorrando el 45 %.


Crunchers usados en comunicaciones

Estos cruncher son distintos a los demás ya que crunchean todo tipo de ficheros, y se caracterizan por ser estándares, esto es debido a que a un BBS se puede conectar cualquier tipo de ordenador y puesto que una de las secciones del BBS consiste en el intercambio de ficheros, al estar estos comprimidos tienen que poder ser luego descomprimidos por ejemplo en otro ordenador distinto del que fueron programados. Esto no tiene mucho sentido para programas de código máquina, pero su utilidad queda claramente demostrada por ejemplo cuando se tratan de ficheros de texto.

En la mayoría

de los BBS es

obligatorio el uso

de estos crunchers

por varios motivos

En la mayoría de los BBS es obligatorio el uso de estos crunchers por varios motivos muy importantes, por una parte esto ahorra memoria del disco duro que maneja el BBS y por otra parte al ser menor el fichero es menor el tiempo que se tarda en enviarlo por la línea telefónica con lo que se consigue un considerable ahorro en la tarifa telefónica.

Estos crunchers son el ARC, LHARC, ZOO y ZIP.

ARC, su nombre viene de las iniciales de 'ARCHIVE', para comprimir un fichero hay que tener en un disco formateado el ARC y los ficheros que se quieran comprimir, bastará con teclear 'ARC a nombre' y todos los ficheros que haya en el disco serán comprimidos en un único fichero llamado nombre.ARC.

Para descomprimir luego ese fichero hay que teclear 'ARC e nombre.arc'

LHARC, actúa de la misma manera que el ARC, creando ficheros con la extensión .LZH. Este cruncher está empezando a ser el más utilizado por los usuarios de Amiga.


Los crunchers para discos

Se tratan de otra modalidad de crunchers, su utilidad consiste en crunchear un disco entero y normalmente dejarlo en un fichero que ocupa la mitad, aunque luego para poder volver a usar ese disco hay que descrunchear el fichero. Entre este tipo se encuentra los siguientes programas: DIMP, WARP, DISKCRUNCHER.

Cada uno de ellos actúa de diferente manera, siendo el tiempo de trabajo y su eficacia muy diferente, por este motivo han sido sometidos los tres a la misma prueba: crunchear el disco original del workbench.

DISKCRUNCHER, este programa permite elegir la eficacia variando el offset, siendo la máxima 0800. Su funcionamiento es muy sencillo; se introduce en la unidad df0: el disco que se quiere comprimir y en la unidad df1: un disco formateado, a continuación se elige el offset, y se le da el programa la orden de crunchear, pasando este a preguntar el nombre que se le quiere dar al fichero resultante.

Lo que hace el programa es cargar en memoria 585 sectores del disco, los crunchea y los graba en un fichero. Esta operación la realiza tres veces y cada fichero se llamará nombre.a, nombre.b, nombre.c.

Luego para descrunchearlo se realiza la operación inversa, tardando sólo 5 minutos.

El programa tardó 65 minutos en la máxima eficacia, en crunchear el disco del workbench, y los tres ficheros ocuparon el total de 459.296 bytes.

DIMP, es la abreviatura de DISK IMPLODER, y se utiliza como si fuera un comando del CLI, para crunchear un disco hay que teclear DIMP read DF0: 0-79 DF1:target, donde target es el nombre del fichero que se va a crear. El ordenador avisará que se introduzca el disco que se quiere comprimir y que se pulse la tecla 'y' para continuar.

Para descrunchearlo hay que teclear DIMP write DF0:target DF1:, a continuación saldrá en la pantalla un mensaje indicando que se está descruncheando y el TRACK que se está operando.

El programa tardó 18 minutos, y el fichero creado ocupó 450900 bytes.

WARP, este programa también se utiliza desde el CLI, su sintaxis es WARP read 0 79 DF1:target, a continuación el programa pedirá que se introduzca un disco en DF0: y se pulse la tecla Return. En la pantalla aparecerá la siguiente información, TRACK que es la pista que se esta leyendo, HEAD que es la cara, LENGHT es la longitud de la pista que son 5808 bytes, y que cuando se ha cruncheado queda sustituida por la longitud final.

Para descrunchearlo hay que utilizar el comando WARP write.

El programa tardó 13 minutos, y el fichero creado con el nombre target.wrp ocupó 505433 bytes.

Mi opinión personal es que de los tres programas antes mencionados el mejor es el DIMP, a nivel de tiempos y de eficacia.


Envía esta página web a un amigo:
Esta opción está desactivada temporalmente, rogamos disculpen las molestias

Volver a la página anterior

Al menú principal