Toolkit II, Manual de Usuario | ||
---|---|---|
Anterior | Siguiente |
En la terminología del QDOS, un directorio es el lugar donde el sistema
espera encontrar un fichero. Un directorio puede ser tan sencillo como el nombre
de un dispositivo (por ejemplo, el nombre del Microdrive 2: MDV2_) o mucho más
complejo, formando parte de un "árbol de directorio". Por ejemplo,
el directorio MDV2_ puede incluir los directorios JOHN_ y OLD_ (nota: todos
los nombres de directorio acaban en "_"), y JOHN puede incluir los
ficheros DATA1 y TEST.
MDV2_ | +-------+-------+ | | JOHN_ OLD_ | +-------+-------+ | | DATA1 TEST
Obsérvese que los árboles de directorio crecen hacia abajo. El nombre de fichero completo en el QDOS para DATA1 en el ejemplo anterior es MDV2_JOHN_DATA1.
Una característica inusual de la estructura de directorios del QDOS es la ausencia formal de una "extensión" al nombre de fichero: no son estrictamente necesarias ya que las "extensiones" (como _aba para los ficheros de ABACUS o _asm para los ficheros fuente en ensamblador) son tratadas como ficheros dentro de un directorio.
Lo dicho puede ser ilustrado en el caso de un programa en ensamblador TEST, procesado usando el macro ensamblador y editor de GST. El fichero fuente en ensamblador (TEST_ASM), el listado de salida del ensamblador (TEST_LIST), la salida relocalizable del ensamblador (TEST_REL), el fichero de control del enlazador ("linker") (TEST_LINK), el listado de salida del enlazador (TEST_MAP) y el programa ejecutable producido por el enlazador (TEST_BIN) son todos tratados como ficheros del directorio TEST_.
MDV2_ | +-------+ | JOHN_ | +-------+ | TEST |
+----+---+-------+-------+-------+-------+
| | | | | | ASM LIST REL LINK MAP BIN
El Toolkit II permite seleccionar directorios de omisión. Los valores de omisión se pueden utilizar en todas las operaciones del sistema de ficheros. Un valor de omisión puede ser seleccionado en cualquier nivel de complejidad, dando el punto de partida para encontrar un fichero en la estructura de árbol. Así, en el ejemplo anterior, si el valor de defecto es MDV2_, bastará dar el nombre JOHN_TEST_ASM para encontrar el fichero fuente en ensamblador. Si el valor de omisión es MDV2_JOHN, dicho fichero será encontrado en TEST_ASM. Con el nombre entero MDV2_JOHN_TEST_ASM, se encontrará el fichero independientemente del valor de omisión.
Inusualmente, las extensiones del Toolkit II al QDOS, posibilitan tres valores de omisión distintos para la estructura de directorio. Ello es debido a que el QDOS es intrínsecamente un sistema operativo multi-dispositivo. Es de esperar que los programas ejecutables estén en un directorio diferente, y probablemente también en un dispositivo diferente, que los ficheros con los datos manipulados.
Además, los procedimientos de copia serán usados más probablemente para copiar de un directorio a otro, o a una impresora o otro dispositivo de salida, que para copiar al mismo directorio.
Hay tres comandos para seleccionar los tres valores de omisión:
DATA_USE nombre directorio selecciona omisión datos
PROG_USE nombre directorio selecciona omisión programas
DEST_USE nombre directorio selecciona omisión destino
Si el nombre de directorio dado no acaba en "_", el subrayado será añadido al nombre de directorio.
El valor de DATA_USE se utiliza para la mayoría de comandos del sistema de ficheros del Toolkit. PROG_USE se usa sólo para buscar los ficheros de programas en los comandos EX/EXEC. DEST_USE se usa para encontrar el nombre de fichero destino cuando se usan los comandos que copian o renombran ficheros (SPL, COPY, RENAME, etc) con un solo nombre de fichero.
Hay una forma especial de DEST_USE que no añade "_" al nombre dado. Dicha forma define el dispositivo de omisión del "spooler":
SPL_USE nombre de dispositivo
De esta forma se selecciona también el dispositivo de omisión, pero si el nombre del dispositivo no acaba en "_", no se le considera un directorio, de manera que el valor de omisión para el nombre de fichero de destino, se utiliza sin modificación.
Así, en los dos ejemplos siguientes:
DEST_USE flp2_old (el valor de omisión es FLP2_OLD_)
......
SPL fred
o
SPL_USE flp2_old_ (el valor de omisión es FLP2_OLD_)
......
SPL fred
el fichero "fred" será volcado a "flp2_old_fred". Sin embargo, si, como en el ejemplo siguiente, se utiliza SPL_USE con un nombre que no acaba en "_" (es decir, un nombre que no sea de tipo directorio):
SPL_USE ser (el valor de omisión es SER)
......
SPL fred
el fichero "fred" será volcado a "ser" en lugar de a "ser_fred".
Obsérvese que SPL_USE y DEST_USE definen en mismo valor de omisión (el de destino).
Hay tres comandos que permiten moverse a través de un árbol de directorio.
DDOWN nombre desciende (añade "nombre" al valor de omisión)
DUP asciende (elimina el último nivel del directorio)
DNEXT nombre asciende y a continuación desciendepor una rama diferente del árbol
No es posible ascender más allá del nombre del dispositivo mediante el comando DUP. La longitud del valor de omisión no puede de ninguna manera exceder los 32 caracteres.
Estos comandos operan sobre el directorio de omisión para los datos. Bajo ciertas condicionas, pueden también actuar sobre los otros valores de omisión:
Si el valor de omisión para programas es el mismo que para datos, ambos valores se unen y los comandos anteriores operarán también sobre el valor de omisión para PROG_USE. Si el valor de omisión para la destinación, acaba en "_" (es decir, si es un directorio y no un dispositivo), los comandos anteriores actuarán también sobre dicho valor.
A continuación se da un ejemplo de la aplicación de las reglas anteriores:
datos programas destino valores iniciales mdv2_ mdv1_ ser DDOWN john mdv2_john_ mdv1_ ser DNEXT fred mdv2_fred_ mdv1_ ser PROG_USE mdv2_fred mdv2_fred_ mdv2_fred_ ser DNEXT john mdv2_john_ mdv2_john_ ser DUP mdv2_ mdv2_ ser DEST_USE mdv1_ mdv2_ mdv2_ mdv1_ DDOWN john mdv2_john_ mdv2_john_ mdv1_john_ SPL_USE ser1c mdv2_john_ mdv2_john_ ser1c
Mediante el siguiente comando, que lista los tres valores de omisión, podrás saber en qué nivel del árbol de directorios te encuentras:
DLIST lista valores de omisión para datos, programas y destinaciones
o DLIST #canal
o DLIST \ nombre
Cuando no se especifica canal de salida, los valores de omisión se listan en la ventana #1.
Existen tres funciones que permiten encontrar los valores de omisión desde un programa en SuperBASIC:
DATAD$ devuelve la omisión para datos
PROGD$ devuelve la omisión para programas
DESTD$ devuelve la omisión para destinaciones
Estas funciones se usan sin ningún parámetro:
IF DATAD$<>PROGD$: PRINT "Directorios Separados"
DEST$ = DESTD$
IF DEST$(LEN(DEST$))="_": PRINT "Destino"!DEST$
Tanto en el Sinclair QL Toolkit original, como en este Toolkit, existen facilidades para permitir a los programas ejecutables el encontrar los valores de omisión de los directorios, aunque estas facilidades apenas son empleadas por los programas comerciales para el QL.
Lo solución real para permitir el uso de directorios de omisión al nivel de "traps" del QDOS, sólo puede ser obtenida mediante el uso de accesorios adicionales en la puerta para expansiones o mediante el cambio de las ROMs que contienen el sistema operativo. Sin embargo, la mayoría de los programas comerciales no reconocerían los valores definidos. En el apéndice B se da un ejemplo de como superar este problema.
Anterior | Índice de Materias | Siguiente |
Editando ficheros | Mantenimiento de ficheros |