home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 9 Archive
/
09-Archive.zip
/
x1os294h.zip
/
X1USER.ES
< prev
next >
Wrap
Text File
|
1996-06-04
|
56KB
|
1,251 lines
------------------------------------------------------------------------------
TIPO DE DOCUMENTO : MANUAL DE USUARIO DE X1
LENGUAJE : ESPAÑOL
TIPO DE TEXTO : ASCII SIN FORMATO
JUEGO DE CARACTERES : IBM-PC ASCII
VERSION DEL PROGRAMA : X1 v0.94f (beta)
ULTIMA ACTUALIZACION (mm-dd): 960521
ULTIMA NOTA DE REVISION : TEXTO PRELIMINAR -- PUEDE HABER MODIFICACIONES
TRADUCIDO POR : J. Lupión
-------------------------------------------------------------------------------
IMPORTANTE: No utilice este programa antes de haber leído, comprendido
y aceptado los términos dispuestos en la licencia de uso.
============================
MANUAL DE USUARIO DE X1
UNA VISION GENERAL
============================
1. Requerimientos mínimos de hardware.
2. ¿Qué es? (resumen)
3. Cómo usar X1 (formato de la línea de ordenes y repaso de las órdenes
y opciones)
Formato de la línea de órdenes
Reglas de sintaxis de la línea de órdenes
Ordenes de X1
Funciones de X1
4. Variables de entorno (módulo de lenguaje)
5. Formatos y métodos de compresión (visión general y ejemplos)
6. Nombres de los ficheros temporales.
7. Códigos de salida.
1. Requisitos
=============
CPU : 386sx o superior
RAM : Se recomienda un mínimo de 4Mb de memoria.
S.O. : DOS/Win95 (DOS 3.3 o posterior)
OS/2 (32-bits)
NT/Win95
Para conseguir los mejores resultados, se recomienda obtener la versión del
programa específica para su sistema operativo.
Tenga en cuenta que la memoria que X1 dice detectar es la cantidad de
memoria que el gestor DPMI le dice que existe -que es la memoria realmente
"visible"-. Dependiendo del administrador de memoria (DOS, OS/2...) puede
incluso estar empleando memoria virtual basada en disco, en cuyo caso
el valor visualizado puede ser incluso superior a la cantidad de memoria
física instalada en su sistema. Sin embargo, desde el punto de vista de
X1, es de menor importancia cómo se administra la memoria que cuánta
memoria le permite emplear el gestor de memoria.
2. ¿Qué es?
===========
Este programa es un compresor, es decir, comprime varios ficheros en un único
archivo. Se maneja, en su totalidad, desde la línea de órdenes (o prompt
del sistema) y los procesos de compresión y extracción están combinados
en un único programa. En el compromiso entre velocidad, memoria y tamaño del
archivo, X1 favorece este último aspecto e intenta hacer el máximo uso posible
de los recursos del sistema en que se ejecuta.
Sus características principales son:
* Introducción del nuevo formato propio .X
* Compatible con ARJ,(PK)ZIP,LHA(RC),ZOO,HA,RAR
* Interfaz de usuario con múltiples idiomas.
* Contiene métodos "experimentales" como resultado de la exploración de
algoritmos de alto rendimiento. "Experimental" no significa inestable, sino
más bien que el método puede no ser soportado en versiones futuras de X1.
El interfaz de la línea de órdenes es similar al de ZOO y HA, pero las
letras de las opciones se parecen más a las de ARJ y LHA, teniendo poco que
ver con PKZIP. Con un poco de conocimiento de los compresores más
populares, debería ser posible pasar por alto algunas partes de la
documentación.
3. Cómo usarlo (formato de la línea de órdenes y repaso de las órdenes y
=============== opciones)
A continuación sigue es la especificación del programa. Si X1 se comporta
de forma diferente, entonces se debe bien a un error o a un fallo en
la implementación de la función en cuestión, de acuerdo con esta especificación.
El decir que X1 es un "compresor" producirá un número de expectativas, basadas
en las capacidades de otros compresores. Consecuentemente, no sólo es importante
decir lo que hace, sino también lo que NO ha sido implementado.
Si lo mencionado en el texto aún no ha sido implementado, la sección será
precedida por un mensaje "**No implementado**". Estos mensajes irán
disminuyendo en número en futuras versiones en el programa.
Formato de la línea de órdenes
------------------------------
X1 orden[<opciones>..] <archivo> [<especificación de ficheros>..]
Definiciones:
orden[<opciones>..] Sólo se permite una orden (el primer carácter)
seguida por una serie de opciones -sin espacios
entre orden y opciones ni entre las opciones-.
<archivo> Es el nombre del archivo, la extensión por defecto es ZIP
<esp. de ficheros>.. Son los ficheros a archivar, por defecto se consideran
todos los ficheros si no se especifica ninguno. Se
pueden utilizar los comodines (*,?).
Reglas de sintaxis de la línea de órdenes
------------------------------------------
Ordenes y opciones pueden especificarse bien en mayúsculas o en minúsculas.
Tenga en cuenta que X1 tiene dos opciones de exclusión del trayecto en lugar de
una como suele ser habitual en otros compresores. Esto es consecuencia de
las reglas #1 y #2.
* Regla #1 (inclusión del path):
-----------------------------
Por defecto, todos los trayectos mencionados en la línea de órdenes se
añaden al archivo -a no ser que se active la opción X.
* Regla #2 (inclusión del path):
-----------------------------
Por defecto, todos los trayectos encontrados durante la búsqueda
recursiva (opción "R") se añaden al archivo -a no ser que se active la
opción E-. Esto es algo diferente a como lo hacen los otros compresores.
* Regla #3 (varias especificaciones con respecto al mismo directorio):
-------------------------------------------------------------------
Con especificaciones sin un path explícito, se asume el path de la
especificación anterior.
Sea "x1 a test <arg[1]> .. <arg[i]> <arg[i+1]>.."
Si <arg[i+1]> no contiene el carácter "\" ("/") o ":" entonces se asume
que trabaja en el mismo directorio que <arg[i]> (que a su vez puede
trabajar bajo el bajo el mismo directorio que <arg[i-1]>, etc.)
¿Qué significa esto? Significa que:
"x1 a prueba \dir1\dir2\*.c *.h"
hace lo mismo que:
"x1 a prueba \dir1\dir2\*.c \dir1\dir2\*.h"
¿Qué NO significa esto? Bien,
"x1 a prueba dir1\*.c dir2\*.h"
<< NO >> hace lo mismo que
^^^^^^^^
"x1 a prueba dir1\*.c dir1\dir2\*.h"
porque "dir2\*.h" contiene un "\".
Igualmente,
"x1 a prueba dir1 *.c"
no funciona como
"x1 a prueba dir1\*.* dir\*.c"
que realmente no tendría sentido.
La justificación para este convenio es única y exclusivamente el
ahorrar pulsaciones (obsérvese que no hizo falta repetir "\dir1\dir2\"
en la línea de órdenes en el primer ejemplo.
¿Efectos laterales o inconvenientes? Si quiere los ficheros del
directorio actual, debe especificarlos TODOS antes de incluir los
directorios. Sin embargo este convenio no debería restringir al
usuario de ninguna manera.
Regla #4 (directorios incluídos en el archivo):
----------------------------------------------
Especificar un nombre de directorio en la línea de órdenes implica la
compresión de todos los ficheros de ese directorio. Obsérvese que
"x1 a prueba \dir1\dir2"
produce el mismo resultado que
"x1 a prueba \dir1\dir2\" y que
"x1 a prueba \dir1\dir2\*.*"
Si se indica la opción de recursión, TODOS los ficheros por debajo de
\dir1\dir2 serán también procesados.
¡Pero cuidado! Si los nombres de fichero son idénticos a los nombres
de trayecto puede no ser obvio cuál será el resultado final...
===========
= ORDENES =
===========
H (visualiza comentarios de ayuda)
---------------------------------
Esta orden sólo se emplea en el contexto "x1 ?", y visualizará un breve
resumen de las órdenes y opciones. La página que se muestra NO ES la misma
que sale cuando se ejecuta el programa sin parámetros. Si no se especifican
parámetros, sólo se listan las órdenes posibles (entre ellas, "?").
Si la información se imprime demasiado deprisa, se recomienda dirigirla a
un fichero ("x1 ? >archivo.lst") que puede ser posteriormente visualizado con
su visor favorito (F3 en El Comandante Norton) o en su editor favorito.
X1 habla muchos idiomas. Sin embargo, algunas lenguas fueron más difíciles de
comprender que otras, así que no podemos garantizar que el significado de
los mensajes sea cristalino. En caso de duda, deberían consultarse las
páginas en inglés, danés, francés, alemán y español (¡en este orden de
prioridad!)
(En PC) Si la configuración de página de códigos de su ordenador está mal,
el resultado será que faltarán caracteres. Es recomendable tomarse el
tiempo necesario para configurar la página de códigos correctamente.
A (añadir ficheros al archivo)
----------------------------------
Opciones válidas: $,A,C,E,F,I,K,L,M,N,O,R,S,T,U,V,X,Y,Z
Esta orden tiene dos modos de operación:
* crear un archivo y añadir ficheros...
* actualizar (re-abrir) el archivo y añadir más ficheros...
Esta orden, básicamente, comprime y añade los ficheros especificados a un
archivo. En el caso de que el archivo nombrado no exista se crearía uno con
ese nombre. Si existe, entonces se actualiza. Esto significa que nuevos
ficheros con los mismos nombres que otros ficheros ya existentes en el
archivo sobreescribirán a éstos. Existen unas pocas excepciones (cuando
se comprimen módulos sólidos), pero su explicación se encuentra ahora fuera
de contexto.
Si se omite un directorio base, se asume que el directorio actual será el
directorio por defecto.
Si no se especifican ficheros en la línea de órdenes, todos los ficheros
(en el directorio por defecto) serán añadidos. Esto significa que "x1 a
prueba test.x" comprime todo lo que haya en el directorio por defecto.
De ninguna forma es posible comprimir un archivo que está siendo actualizado
dentro de sí mismo.
Si no se especifica la extensión del archivo comprimido, entonces se supone
la extensión ZIP. Si desea comprimir a otro formato, es necesario
especificar en el archivo la extensión de ese formato (ARJ,LZH,...). No es
posible comprimir en archivos con extensiones arbitrarias.
Se puede evitar que algunos ficheros sean incluidos con el uso de la opción
"Z".
Ejemplo (compresión en formato propio ): x1 a archivo.x mi_fich.doc
Ejemplo (compresión en formato ZIP): x1 a archivo.zip mi_fich.doc
C (añadir comentarios al archivo)
--------------------------------
**No implementado**
Opciones válidas: I,C
Esta orden añade comentarios a un archivo. Pueden incluirse comentarios en los
formatos ARJ,ZIP,ZOO y X pero no en los LHA y HA, debido a diferencias en las
estructuras de encabezamiento.
D (borrar ficheros de un archivo)
--------------------------------
Opciones válidas: I,S,Z
Para ser borrada, la entrada correspondiente en el archivo tiene que ser igual
que un argumento de la línea de órdenes (se ignoran mayúsculas y minúsculas)
Si una especificación no contiene un trayecto, entonces surte efecto para
todas las entradas del archivo, sin tener en cuenta sus directorios. Esto
quiere decir que
"x1 d prueba.x *.pas"
borrará incluso las entradas "dir1\dir2\*.pas" en el fichero (si las hay).
Por otro lado,
"x1 d prueba.x dir1\dir2\*.pas"
sólo eliminará el último tipo de ficheros.
Si se solicita el borrado de todos los ficheros, entonces el mismo archivo
es eliminado (borrado).
Los nombres de fichero pueden ser excluídos del borrado con la opción "Z".
Ejemplos:
(borrado de múltiples entradas): x1 d archivo.x *.pas *.doc
(borrado de un archivo completo): x1 d archivo *.*
E (extraer ficheros sin trayecto)
--------------------------------
Opciones válidas: $,A,F,I,N,O,T,W,Y,Z
Esta órden es idéntica a "X" con la opción "E". Está incluída aquí sólo
debido al consenso general entre programas compresores de utilizar esta orden.
Durante la descompresión o extracción, la fecha y hora de los ficheros son
restauradas junto con los contenidos. Se lleva a cabo un control de CRC para
verificar que la operación ha tenido éxito. Sin embargo, el fichero se verifica
ANTES de escribir al disco, en lugar de una comprobación de lectura y
verificación.
Los ficheros se pueden extraer a un directorio especificado por el usuario u
otra unidad, pero por defecto, los ficheros se descomprimen en el directorio
actual. Todas las extracciones se hacen sin trayectos (es decir se
descomprime todo en un único directorio)
Cuando se extrae a un directorio específico, entonces el nombre de directorio
debe terminar con "/" o "\" como en "x1 e prueba.x c:\dir\". Si no se termina
el nombre de directorio con tal carácter entonces X1 asumirá que se intenta
extraer del archivo un único fichero.
Cuando se extrae a un directorio que no existe (especificado en la línea de
órdenes), se advertirá al usuario de ello y se le consultará antes de tomar
ninguna acción. El mensaje de advertencia presenta distintas soluciones desde
"si" (crear directorio por esta vez) a "nunca" (no crear nunca directorios).
El usuario responde tecleando la letra entre paréntesis. Las letras y mensajes
pueden cambiar para diferentes módulos de idiomas. Es posible responder
automáticamente a las preguntas activando una de las opciones "Y" o "N".
Cuando se extrae a una unidad en concreto, se permite que la especificación
termine con ":" como en el ejemplo "x1 e prueba.x a:". Esto se debe a que se
asume que ningún nombre válido de fichero termina en tal carácter. Si se dan
varios directorios o unidades de destino "x1 e prueba.x a: b: c:" entonces
la última unidad (o directorio) especificada será empleada en la extracción.
Si se intenta extraer un fichero con el mismo nombre que un directorio ya
existente el fichero extraído se pasará por alto (a no ser que se active
la opción de "Sobreescritura Inteligente" con la opción "W").
En el caso de que se intente extraer un fichero con el nombre de otro ya
existente, se advertirá al usuario de esta incidencia y se le consultará antes
de tomarse ninguna acción. La única excepción a esta regla son los ficheros
de tamaño nulo (0 octetos), ya que se considera que no contienen ninguna
información valiosa y se pueden sobreescribir sin advertencias. La pregunta
que se formula al usuario permite diferentes respuestas, desde "sí"
(sobreescribe el fichero por esta vez) a "nunca" (no sobreescribir jamás).
El usuario debe responder introduciendo la letra entre paréntesis.
Por ejemplo:
(extraer archivo): x1 e archivo.x file_id.diz
F (refrescar los ficheros ya existentes en el archive)
------------------------------------------------------
**No implementado**
Opciones válidas: E,F,I,X
Esta orden cambia un fichero que se encuentra dentro del archivo comprimido por
una versión más moderna, de ser posible. Esto significa que los nombres y el
número total de ficheros dentro del archivo permanece constante. Sólo cambia el
contenido de los ficheros ya archivados.
A la hora de buscar ficheros más modernos que los existentes, sólo se comprueban
la fecha y hora. Si los ficheros son más antiguos -o tienen igual fecha y hora
aunque tamaño diferente- entonces no se tienen en cuenta a la hora de refrescar.
Podrían surgir conflictos en caso de que el archivo contenga entradas con
trayectos completos. ¿Debería ser necesario especificar estas entradas
explícitamente? La respuesta escogida es: ¡no!. En vez de eso hay es
necesario excluirlas con la opción "E" -si por algún motivo no deben
refrescarse como los otros ficheros.
De forma similar a la orden "A", si no hay ficheros especificados en la
línea de órdenes, se intentan refrescar todos los ficheros presentes en el
archivo. Esto significa que "x1 f prueba.x" intenta refrescar todos los
ficheros en "prueba.x", mientras que "x1 f prueba.x *.pas" sólo intenta
refrescar los ficheros *.pas (incluyendo posiblemente los ficheros
dir1/dir2/*.pas). Para excluir que estos últimos sean excluidos hay utilizar
"x1 fz prueba.x *.pas dir1/dir2/*.pas"
Ejemplo:
(refrescar todos los ficheros) "x1 f prueba.x"
L (listado del contenido del archivo)
-------------------------------------
Opciones válidas: E,I,O,Z
Esta orden muestra la información usual acerca de los contenidos del archivo,
incluyendo:
* trayecto completo
* tamaño original y comprimido
* índice de compresión (% comprimido/descomprimido)
* fecha (de la forma día-mes-año)
* hora (de la forma horas-minutos-segundos)
* CRC (16-32 bits)
* atributos del fichero, al estilo DOS.
* método de compresión (identificado por un número en lugar de un nombre)
Un asterisco "*" añadido al final de un nombre indica que el fichero está
encriptado y por tanto no puede ser extraído.
Se intenta "encajar" en las columnas los nombres de los trayectos completos.
Si hay espacio completo para los nombres largos se muestran en la misma línea
que la información adicional. En caso contrario, se pone una línea para el
nombre del fichero y la información adicional se mueve a la línea siguiente.
Es posible mostrar todos los archivos de formatos específicos con "x1 l *.lzh"
o de todos los archivos reconocidos por el compresor "x1 l *" (que sólo
comprueba ficheros con una extensión conocida ARJ,ZIP,etc..) Es posible
mostrar sólo ficheros específicos "x1 l *.zip file_id.diz" o múltiples
ficheros como en "x1 l *.zip *.nfo *.diz".
Si la información se muestra demasiado deprisa, se recomienda dirigir la
salida a un fichero ("x1 l *.zip > archivo.lst") que puede ser luego
visualizado con su visor favorito (F3 en El Comandante Norton) o en su editor
favorito.
Por ejemplo:
(listar todos los *.ARJ, *.ZIP...): x1 l *
T (comprobar la integridad del contenido de un archivo)
-------------------------------------------------------
Opciones válidas: E,F,I,O,Z
Esta orden en realidad tiene dos modos de operación o motivos:
* verificar que el archivador no ha cometido errores durante la compresión.
* buscar errores infligidos en el archivo durante la transmisión (errores
del medio de almacenamiento o del canal de transmisión)
Con mucho, el primer tipo de error es el más alarmante. Por eso es el error
que se comprueba usualmente. Así, los datos del archivo se desempaquetan
en memoria.
Para asegurar el éxito de la posible extracción, se proporciona una función de
validación mediante un test de CRC (código de redundancia cíclica). Aunque el
proceso no es 100% seguro, es usualmente suficiente para la mayor parte de
casos prácticos.
Es posible comprobar los contenidos completos de varios archivos: "x1 t *.zip",
ficheros individuales en un grupo de archivos "x1 t *.zip *.doc" o ficheros
individuales en archivos individuales "x1 t archivo.x leeme.doc"
Si se asume que el compresor ha hecho su trabajo apropiadamente, entonces
se puede hacer una comprobación de CRC más simple y rápida. Esta comprobación
se hace con la opción F. ¿Cómo saber si el compresor ha hecho su trabajo bien?
Bien, inténtese una comprobación de CRC tradicional una sola vez (inmediatamen-
te después de la compresión). Si no hay errores, después sólo pueden esperarse
errores de CRC debidos a la transmision o almacenamiento defectuosos.
Se informa al usuario acerca de diferencias entre el CRC almacenado y el valor
de CRC calculado. En caso de errores, es muy poco probable que los datos
puedan ser recuperados (a no ser que se haya empleado alguna forma de ECC
-código corrector de errores-). Es posible a menudo actualizar ficheros con
errores de CRC, pero no podemos recomendarlo.
Si se trabaja con archivos sólidos, las comprobaciones de CRC pueden tardar un
tiempo superior al normal. Esto se produce debido al hecho de que la extracción
puede presuponer la descompresión de otro fichero. En modo sólido, los datos se
comprimen en su conjunto como un flujo continuo y esto reduce la accesibilidad.
Ejemplo:
(comprobar todos los ficheros): "x1 t prueba.x"
P (proteger el archivo contra errores)
--------------------------------------
Opciones válidas: I,L
Esta orden hace que se añada al archivo un código corrector de errores (ECC),
lo cual debería proteger al archivo, hasta cierto punto, de posibles errores
posteriores de transmisión o almacenamiento.
No es posible añadir un mismo tipo de ECC más de una vez. En lugar de utilizar
métodos simples más de una vez se recomienda usar una técnica más sofisticada
que implique un mayor gasto en tamaño.
Al igual que los métodos de compresión sobre datos tienen diferentes
rendimientos, los métodos de corrección de errores deben ser optimizados para
clases concretas de errores. A no ser que se proceda así, el resultado será
un costo mayor con un resultado pobre. Por tanto, en el futuro estarán
disponibles una gama más amplia de métodos de protección contra errores.
El método de protección por defecto es el "ECC de nivel 1".
ECC de nivel 1:
Este tipo de código de ECC está pensado para el usuario casual, que quiere
una seguridad baja con sólo un mínimo de coste en término de tamaño extra. ¡Sólo
puede compensar la pérdida de un sector! El tamaño del sector es configurable,
por defecto es de 512 octetos. Si se quiere compensar para errores de más de
un sector, se deben utilizar mayores niveles de protección. Si se protege un
sector de N octetos de longitud, el coste de tamaño adicional será de N+48
octetos. Los 48 octetos cubren una cabecera incluyendo su propio CRC, un CRC
del fichero completo y vectores de prueba empleados para localizar errores más
rápidamente. Los datos del ECC serán colocados en un bloque continuo al
comienzo del fichero.
ECC de nivel 2:
Aún por implementar.
*ATENCION* Los métodos correctores de errores sólo corrigen un número limitado
de errores. Un método sólo corregirá errores de acuerdo con su especificación,
por tanto no espere la corrección de errores más allá de la misma. La corrección
de errores sólo proporciona una seguridad limitada. Es importante no tener
una fé ciega en los métodos.
Ejemplo:
Para proteger contra la pérdida de un único sector de 512 octetos (disco floppy)
la orden a usar es "x1 p prueba.zip" ó "xm1 p prueba.zip". Para añadir una
protección ECC1 de 1024 octetos por sector (que son 2x512, de aquí m2) la
orden a usar es "x1 pm2 test.zip"
R (reparar el archivo ante posibles errores)
--------------------------------------------
Opciones válidas: I
Esta orden tiene dos propósitos o modos de operación:
* Reparar errores en el archivo.
* Sólo verificar que el archivo está libre de errores.
Una comprobación de CRC sólo investiga las entradas de ficheros comprimidas
en el archivo -no la existencia de ECCs posiblemente erróneos-.
Obviamente el "test extendido" puede (debe) ser únicamente llevado a cabo
si hay en efecto un ECC que comprobar.
Reparación de un archivo con protección ECC:
Esta operación elimina los errores -bien en los datos del ECC o en los datos
reales que debe proteger. Un mensaje advertirá si los errores no son suscep-
tibles de ser corregidos, en cuyo caso no se tomarán más acciones.
Reparación de un archivo sin protección ECC:
Este no ha sido nunca el propósito de esta orden. En X1 no hay una función
genérica de "reparación" de archivos dañados. En lugar de eso se insta al
usuario a que intente la extracción del archivo y re-archive los datos
de nuevo. Los problemas que plantea una función de reparación genérica
son bien conocidos por el programa "PKZipFix" que viene con el compresor
"PKZIP". El programa de reparación sólo actualiza la estructura de cabecera
del archivo -sin comprobar la integridad de los ficheros individualmente-.
Después de esto se pueden añadir ficheros al archivo. Sin embargo, sin un
test de integridad, no hay forma de saber si el archivo contiene otros errores.
El no comprobar esta posibilidad puede provocar una falsa sensación de seguridad.
Parece más atractivo permitir sólo la extracción del archivo -permitiendo al
usuario verificar directamente el número de errores. Si hay archivos comprimidos
almacenados dentro del archivo en cuestión, existen la peligrosa posibilidad de
que haya errores. En tales casos, lo mejor ese que el usuario intente evaluar
la situación. Si de alguna forma los usuarios estuviesen interesados (y deseando
pagar), entonces podría construirse un programa avanzado de recuperación de
errores para alguno o todos los formatos diferentes de compresión. Pero ello
no cambiará el hecho de que la mayor parte de los errores normalmente son
irrecuperables.
Ejemplo: "x1 r prueba.x"
U (desproteger archivo - eliminando código corrector de errores)
----------------------------------------------------------------
Opciones válidas: I
Esta orden deshace la acción efectuada por la orden "P". Se intentarán borrar
todos los códigos de ECC disponibles. Los fallos en la localización del
código ECC pueden deberse a dos razones: que no haya códigos ECC o que haya
errores en la cabecera que impidan la localización del código ECC. En el
segundo caso debería recomendarse el intentar eliminar los errores.
Se recomienda comprobar si hay errores antes de eliminar el código ECC.
Aunque el proceso se las puede arreglar para localizar el código ECC el archivo
puede aún contener errores en otras posiciones del fichero. No se hace
ningún tipo de comprobación de errores cuando se elimina el código ECC
(para acelerar el proceso).
X (extracción de ficheros con trayectos completos)
--------------------------------------------------
Opciones válidas: $,A,E,F,I,N,O,T,W,Y,Z
La diferencia fundamental con la orden "E" es que los ficheros son
descomprimidos con el trayecto completo (tal y como está almacenado en el
archivo). Los trayectos completos pueden verse antes de la extracción con
la orden "L".
Los ficheros pueden extraerse a un directorio o unidad especificados por el
usuario pero por defecto los ficheros se descomprimen en el directorio
actual y los subdirectorios posibles son construidos según se necesite a partir
de este directorio base. Algunos trayectos no pueden ser empleados como
extensión del directorio base, y son aquellos que contienen nombres de
unidad o especifican trayectos desde el directorio raíz. Tales trayectos
serán posicionados en el disco de acuerdo a sus especificaciones absolutas.
Cuando se extrae a un directorio o unidad específicos, los subdirectorios
serán construidos desde la posición dada. Por ejemplo "x1 x prueba.x a:"
intentará extraer todos los ficheros a A: (e intentará construir los
subdirectorios desde el directorio actual en esa unidad)
Cuando la extracción requiera un trayecto no existente en el disco, la situación
se trata como cuando se extrae a un directorio no existente especificado en
la línea de órdenes. El usuarió será avisado acerca de la incidencia y se le
consultará antes de tomar acciones.
============
= OPCIONES =
============
$ (añadir o extraer etiqueta de volumen)
----------------------------------------
**No implementado**
Compresión:
Añade la etiqueta de volumen del disco (para la primera especificación de
ficheros) al archivo. En el ejemplo "x1 a texto.x *.* a:*.* b:*.* c:*.*"
se añade al archivo la etiqueta de volumen de la unidad actual porque se usó
en la primera especificación. "x1 a texto.x a:*.* b:*.* c:*.*" hace que se
almacene la etiqueta de volumen de la unidad "a:".
Extracción:
Restaura la etiqueta del disco (si está presente) del archivo al disco
donde los ficheros serán extraídos. Dado que sólo se permite una etiqueta
de volumen en el archivo, no hay posibilidad de confusión.
A (almacenar/restaurar atributos)
---------------------------------
**No implementado**
Nota general: Esta opción esta pensada especialmente para los "atributos
especiales" tales como los atributos extendidos de OS/2. Los atributos simples
como los de MSDOS siempre son restaurados.
Compresión:
Guarda todos los atributos (posiblemente extendidos) en el archivo.
Extracción:
Restaura los atributos (posiblemente extendidos). Los atributos que dependen
del sistema operativo empleado sólo pueden recuperarse bajo el mismo sistema
operativo. En caso de conflicto, los atributos o bien no se restauran o se
escoge una sustitución adecuada y simple.
C (leer los comentarios desde un fichero)
-----------------------------------------
**No implementado**
Sólo puede usarse con la orden "C".
Hay dos formas de añadir comentarios a un archivo:
* introducirlas desde el teclado.
* insertar caracteres desde un fichero.
Si el comentario va a ser tecleado, la opción "C" no se activa. Si los
comentarios vienen de un fichero, entonces debe usarse esta opción.
E (excluir trayecto de los nombres de fichero)
----------------------------------------------
Esta opción se comporta de forma distinta según la orden que se esté
ejecutando (A,E,F)
Compresión (A):
Excluye los trayectos que se encuentran en la búsqueda recursiva de
directorios. A no ser que se active esta opción, por defecto el compresor
incluirá todos los trayectos que encuentre.
Extracción (E):
Esta función se asegura de que todos los ficheros sean extraídos en el mismo
directorio, sin tener en cuenta los trayectos almacenados en el archivo.
Refrescar (F):
La función aquí es evitar renovar ficheros en subdirectorios dentro del
archivo. De lo contrario, todos los ficheros son refrescados sin tener en
cuenta si están o no en subdirectorios.
F (mover los ficheros dentro/fuera del archivo)
-----------------------------------------------
**No implementado**
Compresión:
Se borran los ficheros del disco tan pronto como hayan sido comprimidos y
se establezca que la operación ha tenido éxito, así se garantiza una seguridad
extra, de modo que si la operación se interrumpe prematuramente, no debería
producirse ninguna pérdida de datos.
Extracción:
Se reduce el tamaño del archivo, eliminando las entradas que corresponden a
los ficheros extraídos.
I (modo silencioso)
-----------------------
** No implementado **
Esta opción suprime toda la salida por pantalla, incluyendo la cabecera del
programa y los indicadores de progreso. Esta opción se implementa para permitir
a otros programas llamar a X1 y dejar que el compresor procese los datos sin
llenar la pantalla de datos irrelevantes.
K (sobreescribir el archivo ya existente)
---------------------------------------
** No implementado **
Compresión:
La función es forzar la creación de un archivo comprimido nuevo. De no utilizar
esta opción, de existir un archivo con el mismo nombre sería actualizado y se
añadirían nuevas entradas a las ya existentes.
L<número> (nivel de compresión)
------------------------------
Compresión:
Determina un nivel más detallado de compresión. Esto puede implicar el uso de
más memoria -o una compresión más rápida y/o degradada- dependiendo del método
escogido.
Esta opción sólo tiene efecto en el método 4 del formato de compresión .X. Los
niveles válidos son 0,1,2 y 3. Cada nivel determina un modelo de memoria distin-
to.
M<método> (método de compresión)
--------------------------------
Compresión:
Especifica el método de compresión a utilizar. El método se especifica como
un número entre 0 y 256. Si el número no puede asociarse con un método válido
de compresión, se visualiza un mensaje de error.
N (Asumir "NO" en todas las preguntas)
-------------------------------------
Extracción:
La opción "N" es la opuesta de la opción "Y". Responde de antemano a todas las
posibles preguntas de X1 con un "NO". De esta forma se impide que el programa
se detenga y pregunte al usuario. Principalmente afecta la posible sobreescri-
tura de ficheros, creación de directorios, etc.
O (ordenar ficheros por nombre, tamaño, fecha, etc.)
----------------------------------------------------
**No implementada **
Deben siempre aparecer dos caracteres 'O' en la cadena de opciones en la línea
de órdenes. En la sección 'O...O' aparecerán las sub-opciones de clasificación,
que definen las claves de ordenación y sus prioridades. Sin embargo, si la
opción 'O' es la última opción que aparece entonces la última 'O' puede
obviarse.
Las posibles sub-opciones son:
A: ascendo
D: fecha
E: extensión
N: nombre
P: nombre de trayecto
S: tamaño
T: hora
B: mejor compresión
Así, por ejemplo, OSNO significa: primero ordenar por tamaño, y si dos fi-
cheros tienen el mismo tamaño, entonces ordena según el nombre.
Compresión:
Si se comprime creando un nuevo archivo, los ficheros se insertan dentro
del archivo en el orden especificado por las claves de ordenación. Si se
actualiza el archivo, las entradas existentes serán actualizadas de acuerdo a
la ordenación ya existente, y las nuevas entradas serán ordenadas según las
opciones.
Extracción:
Los ficheros son extraídos en el orden determinado por las opciones.
Ejemplo:
Ordenar los ficheros comprimidos por fecha, hora y nombre, en este orden.
"x1 aodsno prueba.x *.*"
R (búsqueda recursiva de directorios)
------------------------------------
Compresión:
Sin esta opción, sólo se procesarán los ficheros de los directorios especificados por la
línea de órdenes. Se asumirá el directorio por defecto allí donde no se hayan
defnido los directorios de forma explícita. Al activar esta opción, se
procesarán, además, todos los ficheros de los subdirectorios. Estos
subdirectorios serán visitados recursivamente en el orden en que se encuentran
en el disco. Se expanden los trayectos de los ficheros almacenados en el
archivo según se vayan visitando los diferentes subdirectorios, a no ser que
se active la opción "E". Los ficheros se visitan dos veces: primero durante
una búsqueda inicial y después cuando se realiza el proceso de compresión.
La búsqueda inicial se hace para poder estimar un tamaño de las cabeceras de
archivos sólidos y para visualizar el indicador de progreso.
S (cambia la fecha y hora del archivo a la del fichero más nuevo)
------------------------------------------------------------------
** No implementado **
Compresión:
Aparecen tres posibilidades prácticas cuando se cambia la fecha y hora del
archivo:
* seleccionar la fecha y hora más moderna de entre las entradas añadidas al
archivo actualizado.
* seleccionar la fecha y hora más moderna de entre las entradas ya existentes
al archivo antes de comenzar a actualizarlo.
* seleccionar la fecha y hora más moderna de entre todos los ficheros una vez
que se ha realizado la actualización.
En la implementación actual, sólo se ha incluído la última técnica.
Una forma fácil de poner la fecha y hora del archivo, cuando no se desean añadir
entradas extras al fichero es con "x1 lis prueba.x", que hace que se listen
(pero no visualicen) todos los contenidos del fichero y cambie la fecha
y hora del archivo en el proceso.
T (cambiar la fecha y hora de los ficheros conforme a la hora actual)
-------------------------------------------------------------------
**No implementado**
Compresión:
Esta opción pone la fecha y hora actuales como la fecha y hora de los ficheros
añadidos al archivo. La fecha y hora original de los archivos es ignorada.
Extracción:
Marca el fichero extraído con la fecha y hora actual, en lugar de la fecha y
hora almacenadas por el compresor.
Nota: Todos los ficheros en un proceso recibirán la misma fecha y hora. Incluso
aunque los ficheros seán procesados con varios segundos de diferencia, todos
recibirán la misma fecha y hora, cuando el proceso comenzó.
U (modo de compresión sólida)
------------------------------
Compresión:
Si sólo se comprime un fichero, esta opción no tiene efecto. Pero si se van a
comprimir varios ficheros, con esta opción serán comprimidos en "modo sólido".
Esto quiere decir que los ficheros son comprimidos como un flujo de datos
continuo (como si estuviesen concatenados). Para ficheros relacionados entre
sí debería resultar en una mejor compresión.
Para una compresión óptima, los ficheros deberían ser agrupados inteligente-
mente, de forma que los ficheros que más tengan que ver entre sí sean puestos
lo más juntos posible. Sin embargo, en la implementación actual esto no
se hace de forma automática.
V<tamaño> (proceso de múltiples volúmenes)
------------------------------------------
** No implementada **
Compresión:
Si no especifica ningún <tamaño>, la compresión se hará mediante un archivo
de múltiples volúmenes limitado en tamaño por el espacio en disco disponible.
Después de cada volumen, aparecerá una pregunta (a no ser que se haya dado
la opción "Y") lo cual permite la inserció de un nuevo disco. La compresión
continuará con otro fragmento del archivo.
En cualquier caso, el resultado final debiera ser una secuencia de archivos
con igual nombre y con las extensiones .x00, .x01, etc. donde .x00 contiene
el primer fragmento.
No es posible actualizar un archivo multivolumen en modo multivolumen. Pero
es posible actualizar un archivo multivolumen con entradas adicionales
normales - o actualizar un archivo no-multivolumen con entradas multivolumen.
Extracción:
Aquí <tamaño> no tiene importancia. Sólo debería intentarse la extracción
sobre una secuencia completa de archivos multivolumen. Si se intenta extraer
un fragmento individual de un archivo multivolumen sólo se tendrá éxito con
las entradas que no pasen de un sólo volumen.
W (sobreescritura inteligente en la extracción)
-----------------------------------------------
** No implementado **
Extracción:
Esta opción trata de solventar de forma inteligente ciertas situaciones donde
los ficheros a extraer sobreescribirían ficheros ya existentes debido a que
tienen el mismo nombre. Tradicionalmente, estas situaciones se resuelven
al usuario si se desea sobreescribir -e impidiendo la extracción en caso de
que se responda que no-. Existe una tercera posibilidad, donde los ficheros
son extraídos con nombres ligeramente diferentes. Las extensiones .00X, .01X
(no confundir con los tipos de archivo .X) se utilizan para la resolución
de colisiones en la extracción.
X (excluír el trayecto en los ficheros de la línea de órdenes)
-------------------------------------------------------------
Compresión:
Por defecto, todos los trayectos escritos en la línea de órdenes serán
incluídos en los nombres de ficheros añadidos al archivo. Si se especifica
un directorio con "x1 a prueba.x dir\*.*" los trayectos "dir\fich1" y
"dir\fich2" serán almacenados en el archivo. La opción "X" evita esto.
"x1 ax prueba.x dir\*.*" grabará las entradas anteriores como "fich1" y
"fich2". Tenga en cuenta que esta opción no afecta a los nombres de trayecto
almacenados durante la búsqueda recursiva con la opción "R". Para eliminar
tales trayectos debe usarse la opción "E".
Extracción:
Esta opción no tiene efecto en este caso. Debe utilizarse la opción "E" para
excluir los trayectos de los ficheros a extraer.
Y (Responder "SI" a todas las preguntas)
-----------------------------------------
Extracción:
La opción "Y" es la contraria de la opción "N". Responde de antemano a todas
las posibles preguntas con un "sí". De esta forma se impide que el programa
se detenga y pregunte al usuario. Principalmente afecta la posible
sobreescritura de ficheros, creación de directorios, etc.
Z<número> (excluir los ficheros que serían archivados)
-----------------------------------------------------
Compresión:
Cuando esta opción no se utiliza, todas las especificaciones de ficheros en la
línea de órdenes determinan ficheros a incluir en el archivo. Cuando esta
opción se utiliza pero no es seguida por un número éste se supone que es el 1.
Este número especifica cuántas de las últimas especificaciones de ficheros
encontradas en la línea de órdenes especifican ficheros a excluir. Esta
convención no permite la mezcla de máscars de inclusión y de exclusiòn. TODAS
las máscaras de exclusión deben ser especificadas juntas y al final de la
línea de órdenes.
Por ejemplo en "x1 az3 prueba.x prueba1.* prueba2.* *.bak *.swp *.tmp"
entonces el número 3 que sigue a la opción "Z" dice que las últimas tres
especificaciones marcan ficheros que NO deben ser incluidos en el archivo.
El número cuenta hacia atrás desde el final de la línea de órdenes y por
tanto no se ve afectado por el número de máscaras de inclusión.
En caso de que el número de opciones de exclusión iguale o exceda al número
total de máscaras en la línea de órdenes, se incluirán los ficheros "*.*" y
los ficheros especificados serán excluídos.
4. Variables de entorno
========================
En la versión actual sólo se soporta una variable de entorno, la
variable "COUNTRY" que se utiliza para la selección del lenguaje-juego de
caracteres.
En el DOS, se puede emplear la variable de entorno COUNTRY para especificar
el país y el juego de caracteres activo. Los caracteres especiales,
dependientes del idioma, son soportados en el grupo de caracteres ASCII
superior (posiciones 128 hasta 255) y pueden cambiar según la configuración.
Según el juego de caracteres, los caracteres dependientes del idioma pueden
cambiar de posición en la tabla ASCII, si es que están disponibles. Cuando se
necesitan tales caracteres, es importante determinar el juego de caracteres
en primer lugar.
Por ejemplo, la configuración para un teclado norteamericano podría ser:
COUNTRY=001,437
El "001" determina el idioma para los Estados Unidos, mientras que "437"
especifica la página de códigos 437 (juego de caracteres norteamericano).
Consulte en su manual del DOS la lista detallada de número y sus asociaciones.
Para X1, entonces, "001" haría que los mensajes se visualizasen en inglés. El
"437" hace que los posibles caracteres extendidos sean buscados en las
posiciones correspondientes a la página de códigos 437.
Si por alguna razón prefiere no utilizar la variable COUNTRY, se puede usar
la variable LANGUAGE en su lugar, con la misma sintaxis.
Observese que si una sentencia o frase no está soportada para el idioma actual,
el mensaje original en inglés será visualizado (a falta de nada mejor).
5. Formatos y métodos de compresión (nivel de usuario)
======================================================
En primer lugar una visión general de los formatos de cabecera y métodos
soportados.
Compresor X1, versión 0.94a ("+" indica que está soportado y "-" lo contrario)
------------------------------------------------------------------------------
nombre de capaz de visualizar
compresor | capaz de extraer
| | capaz de comprimir
| | | métodos soportados de compresión
| | | | métodos de descompresión soportados
| | | | | comentarios
| | | | | |
arj + + + 0,1 0,1,2,3,4 1,..,4 básicamente idénticos
zip + + + 0,1,8 0,1,7,8 1:shrink,7:implode,8:deflate
lzh/lha + + + 0,5 0,1,5 no hay soporte de LHA-AMIGA!
zoo + + + 0,2 0,2
ha + + + 0,1,2 0,1,2
tar + - - - -
tgz + + + 8 8 requiere cabeceras TAR gzipadas
hap + + + 0,1 0,1
rar + - (+) 0 0
arc + - - - -
pak + - - - -
sqz + - (+) 0 0
arx + - (+) 0 0,1 (5) algoritmos como en LHA1.13
put + + + 0,5 0,5 algorithos como en LHA2.x
x + + + 0,1,.. 0,1,..
------------------------------------------------------------------------------
(+) significa que sólo almacenar no es tan divertido.
Acerca del modulo ARJ:
---------------------
Un ejemplo de compresión al formato ARJ sería: "x1 a prueba.arj *.*"
Esto hace que todos los archivos en el directorio actual serán comprimidos al
archivo prueba.arj (por defecto con el método 1)
Sólo almacenar (sin comprimir) con: "x1 am0 prueba.arj *.*"
Los ficheros ARJ multivolúmenes no son (de momento) soportados.
Acerca del módulo ZIP:
---------------------
Un ejemplo de compresión al formato ZIP sería: "x1 a prueba.zip *.*"
Esto hace que todos los archivos sean comprimidos por defecto con el método
"deflate" del ZIP, conocido de las versiones 2.x. Si se requiere compati-
bilidad con versiones anteriores, es posible comprimir con un método más
antiguo: "x1 am1 prueba.zip *.*". Esto aplica el método "shrink" de la
versiones ZIP 0.9 y 1.1. No espero que se dé ningún uso serio a este
método, data de mis primeros y humildes intentos con el formato ZIP, en 1991...
Acerca del modulo LHA:
---------------------
Un ejemplo en la compresión al formato LHA sería: "x1 a prueba.lha *.*" o
"x1 a prueba.lzh *.*". Las extensiones .lha y .lzh son igualmente soportadas.
Por defecto se utiliza el método 5.
Acerca del módulo ZOO:
----------------------
Un ejemplo de compresión al formato ZOO sería: "x1 a prueba.zoo *.*"
ATENCION: El formato ZOO especifica dos tipos de encabezamiento y sólo uno
es actualmente soportado por X1 (el tipo 2, que es el más habitual). Esto
puede provocar problemas cuando X1 actualice ficheros antiguos creados con
ZOO (tipo de encabezamiento 1). Tal vez esté siendo demasiado cauto, no sé...
¡Enviénme por email varios ejemplos con cabeceras antiguas!
Acerca del módulo HA:
--------------------
Un ejemplo de compresión al formato HA sería: "x1 a prueba.ha *.*"
Esto hace que todos los ficheros por defecto en el directorio actual sean
archivados con el método 1..ASC. Si se requiere una compresión mayor por medio
de un PPM de 4º orden sería más apropiado usar (HSC): "x1 am2 prueba.ha *.*"
Dejar que el ordenador intentase ambos métodos y eligiese el mejor
automáticamente sería: "x1 am# prueba.ha *.*"
Acerca del módulo TGZ:
---------------------
Un ejemplo de compresión al formato TAR+GZIP sería: "x1 a prueba.tgz *.*"
Esto hace que todos los ficheros sean "envueltos" en cabeceras TAR y
después comprimidos al formato GZIP. En plataformas que soporten nombres de
ficheros más largos una extensión más apropiada para el archivo sería
"tar.gz." Cuando se listan los contenidos de un tal archivo, se necesita la
total descompresión (en memoria), así que puede ser necesario un poco de
paciencia.
Actualmente, no es posible extraer los contenidos de un fichero GZIP como
un único fichero.
Acerca del módulo X:
-------------------
Algo que no está directamente relacionado con ningún método de compresión
(pero que distingue al formato X de los demás tipos de archivo) es el
almacenamiento del doble CRC (capacidad de comprobación rápida del CRC). Se
calcula el CRC de los datos no comprimidos y comprimidos. Cuando se quieren
comprobar los errores de transmisión, con mirar el último campo de CRC es
suficiente. Dado que el tamaño de los datos comprimidos normalmente es
menor que el tamaño oriignal el trabajo del cálculo extra del CRC es
normalmente insignificante. No ralentiza el proceso de forma significativa.
Nótese además que los archivos .X pueden contener más de un fichero con el
mismo nombre. Esto no puede evitarse cuando hay entradas en modo sólido
de por medio. Si la entrada sólida con los nombres duplicados es borrada
entonces los otros ficheros también son borrados (ya que están comprimidos
juntos) lo cual resultará en la pérdida de datos. Este problema podía
evitarse "pretendiendo" que un nombre duplicado simplemente no está ahí
(sin mostrarlo, como en UC2 o en HPACK). Pero parecía razonable que, si
está realmente ahí, el usuario debería poder verlo... ¡un convenio más!
Número de método Nombre Packing example Comentarios
---------------- ---- ------------------- --------
1 XLZ "x1 am1 prueba.x *.*" Ventana LZ77 de 64K
(2) -
(3) -
4 XXC "x1 am4 prueba.x *.*" Posible selección de memoria
variable.
Requiere memoria de DOS (1Mb)
(5) LZP "x1 am5 prueba.x *.*"
mejor método - "x1 am# prueba.x *.*"
--------------- --- --------------------
NOTA: Para el mejor método se intentarán el método 4 y después el 1. El
método aceptado finalmente será el que ofrezca el menor tamaño.
ATENCION: El método >4 está siendo actualmente objeto de estudio... ¡no
esperar compatibilidad con futuras versiones!
El módulo X soporta el formato sólido. Un ejemplo de compresión en formato
sólido podría ser: "x1 aum1 prueba.x *.*". Un archivo puede contener varias
entradas sólidas independientes -y pueden ser mezcladas libremente con
entradas normales de un sólo fichero-. Una vez creada, un entrada sólida no
puede ser actualizada.
Para verificar un fichero comprimido, comprobando la integridad por la
capacidad de descompresión: "x1 t prueba.x *.*"
Para verificar un archivo comprimido buscando errores de transmisión:
"x1 tf prueba.x *.*"
Sí, esto le da a la opción "F" (forzar el fichero adentro/afuera) otro
significado (comprobación rápida de CRC) cuando se comprueban ficheros. Sin
embargo, esto no restringe el uso de la opción su función original, ya que
no tiene sentido "forzar" la entrada o salida de ficheros de un archivo durante
el proceso de test.
Intentar hacer una comprobación rápida de CRC en otros formatos que no soportan
doble CRC resultará en una comprobación normal -más lenta- de CRC.
Unas breves palabras del método 4:
Se emplea la opción de "nivel de compresión" de la siguiente manera:
"x1 am4l2 prueba.x *.*"
... significa en realidad compresión de nivel 2 (<4Mb. de memoria)
Nivel Memoria Comentario
0 640kb El administrador de memoria puede pedir 1Mb.
1 3Mb -
2 7Mb -
3 16Mb Imposible de probar -no tengo 16Mb. de RAM
¡Recuerde siempre que el método 4 puede cambiar de nuevo!
6. Nombres temporales de fichero
================================
Mientras se comprime, el programa utiliza un fichero temporal "X???????.SWP"
(donde ??..?? son caracteres escogidos al azar). Contiene el nuevo archivo
que está siendo construido. Si la operación parece tener éxito, a este
fichero se le pone el nombre solicitado.
Durante la extracción, puede ocurrir que una entrada del archivo extraído tenga
el mismo nombre que el propio archivo. En este caso, el archivo original se
renombra temporalmente a un nombre neutro (X???????.SWP) y borrado, una vez
que todas las entradas solicitadas hayan sido extraídas.
En ningún caso hay más de 3 ficheros abiertos (durante la actualización de
un archivo antiguo). Una vez en funcionamiento, el programa utilizará como
máximo un fichero temporal -y un único nombre para el mismo, X??????.SWP.
La extensión puede parecer un poco confusa. El fichero temporal NO ES un
fichero de intercambio (swap file). Al final, este fichero sera renombrado
y sus contenidos no se copian en ningún otro sitio-. Pero la extensión
debería ser asociada a los ficheros temporales de otros programas (compiladores
Borland) que pueden causar menos resquemor al usuario a la hora de borrarlos.
Dado que los ficheros de intercambio no son necesario, no se soportan
directorios de trabajo especiales. Para una velocidad óptima, el proceso de
compresión debería tener lugar en una unidad de disco virtual. Y los ficheros
resultantes deberían ser copiados al destino deseado.
7. Códigos de salida
====================
Referencia interna Valor Comentario
------------------ ----- -----------------------------
EXIT_OK 0 Sin errores
EXIT_INT_ERR 1 Error interno (¿?)
EXIT_NO_MEM 2 Memoria agotada
EXIT_NO_DISK 3 Espacio de disco agotado
EXIT_NO_OPEN 4 No se pudo abrir el archivo
EXIT_NO_TMP 5 No se pudo abrir el fichero temporal
EXIT_NO_FOUND 6 No se pueden encontrar los ficheros
EXIT_NO_PATH 7 No se puede encontrar trayecto
EXIT_NO_BASE 8 No se puede acceder al directorio base
EXIT_NO_MKDIR 9 No se puede crear directorio
EXIT_BREAK 10 Interrumpido por el usuario
EXIT_FILE_ERR 11 Error de fichero descnocido -- no se pudo leer
EXIT_BAD_HDR 12 Directorio del archivo (parcialmente) corrompido
EXIT_BAD_EXT 13 Los contenidos del archivo no se corresponden con la
extensión
EXIT_BAD_ARC 14 ¿Seguro que es un archivo?
EXIT_LONG_NO 15 Demasiados argumentos. Formato no soportado.
EXIT_LONG_PATH 16 Trayecto demasiado largo.
EXIT_NO_OVERRIDE 17 No se puede anular el trayecto base
EXIT_NEST 18 Directorios demasiado anidados
EXIT_SCRIPT_ERR 19 Errores en el fichero de guión
EXIT_NOTHING 20 Nada que hacer
EXIT_UNSP 21 Método no soportado en esta versión
EXIT_COM 22 Orden desconocida
EXIT_OPT 23 Opción desconocida
EXIT_OPT_DIR 24 Opción desconocida
EXIT_OPT_WR 25 Opción desconocida
EXIT_OPT_VIEW 26 Opción desconocida
EXIT_WC_FORM 27 Uso inapropiado de comodines
EXIT_WC_NAME 28 Uso inapropiado de comodines
EXIT_WC_COMPL 29 Uso inapropiado de comodines
EXIT_CHG_WRPROT 30 Intento fallido de modificar el archivo
(protegido contra escritura)
EXIT_CHG_DEL 31 Intento fallido de cambiar el archivo (borrado)
EXIT_CHG_UNI 32 Intento fallido de cambiar el archivo
(modo sólido de compresión)
EXIT_CHG_MULTI 33 Intento fallido de cambiar el archivo (multivol)
EXIT_CHG_CR 34 Intento fallido de cambiar el archivo (encriptado)
EXIT_CHG_UNCR 35 Intento fallido de cambiar el archivo (no encriptado)
EXIT_BAD_KEYFILE 36 Clave incorrecta (encriptación)
EXIT_PASS_NO 37 Identificación (de usuario) no válido (encriptación)
EXIT_PASS_DIFF 38 Verificación de password fallida (encriptación)
EXIT_SECURITY 39 Error general de seguridad (encriptación)
EXIT_NOCRYPT 40 Imposible manejar archivo encriptado
------------------------------------------------------------------------------
Stig Valentini, x1develop@internet.dk (1996 - /3/1997)
------------------------------------------------------------------------------