Manual de esxDOS Parte II

Si sabes cómo hacer algo, prepara un tutorial y ayuda a tus compañeros

Manual de esxDOS Parte II

Notapor wilco2009 » 24/09/2013 10:58

Ya estamos aquí de nuevo con una nueva entrega del tutorial.
En esta ocasión el tuto versa sobre los comandos de esxDOS, una de las caracteristicas que distinguen a esxDOS de otros firmwares para divIDE.

COMANDOS esxDOS
Existen dos tipos diferentes de comandos de esxDOS, los llamados "DOT" commands, que como su nombre indica comienzan por un punto, y las extensiones de la funcionalidad de comandos existentes en el basic.

Imagen


"DOT" COMMANDS
Cuando trabajamos en modo 48K, la forma de trabajar del teclado nos limita el número de comandos que podemos escribir.
Ya sabéis, el cursor comienza conteniendo una "K" y a la pulsación de cualquier tecla se inserta el comando correspondiente.
Esto fue una optimización bastante buena, que le permitió al tío Clive, que no paraba de quemar neuronas pensando cómo hacer su producto más barato :D , ahorrar memoria a la hora de procesar las entradas por teclado y reducir la memoria que ocupaba una línea de programa, almacenando los comandos como tokens.
El inconveniente viene cuando quieres añadir nuevos comandos. Es imposible hacerlo de una manera lógica porque no vienen previstos en el teclado, y toca empezar a hacer ñapas. :P
Para esquivar este inconveniente una técnica muy popular es anteponer un símbolo de los que vienen en rojo en el teclado del spectrum gomas. A partir de ese momento el cursor cambia a "L" y ya puedes escribir lo que quieras. :D
Pues bien, en el caso del esxDOS, se ha optado por anteponer un "." (punto) a los comandos nuevos.

Imagen


El listado de nuevos comandos "punto" que se han añadido hasta ahora es muy extenso y tiene una nomenclatura bastante linuxera.

Algunos ejemplos son los siguientes:
.ls, .cd, .tapein, .tapeout, .chmod, .mkdir, .mv, cp, .more, .divideo, .vdisk, .playwav, .dskprobe, .snapload, .gramon, .speakcz.

Los "DOT" commands se cargan en el momento los utilizamos y residen en la carpeta SYS. De hecho, muchos de estos comandos han sido implementados a posteriori como aportaciones de usuarios.
Os invito a que exploréis el contenido de la carpeta SYS y comprobaréis que existe un archivo por cada comando.

Vamos con su manejo.

Lo primero que debéis saber es que podéis consultar la sintaxis de un comando, tecleandolo sin parametros. Siempre y cuando, claro está, que el comando no se pueda usar sin parámetros :D .

Por ejemplo:

Código: Seleccionar todo
.tapeout


generará la siguiente salida por pantalla:

tapeOUT v0.1 (c) phoenix
Usage: tapeout [args] [tapfile]
-c: Close file
-o: Overwrite file


Vamos a repasar la sintaxis de muchos de los comandos uno por uno.

El comando .ls.

Como podrá adivinar cualquiera que conozca mínimamente Linux, el comando .ls permite mostrar un listado de los archivos que contiene la carpeta actual.

.ls se puede usar sin parámetros o pasandole como parámetro un nombre de directorio.
En este último caso mostrará por pantalla los archivos contenidos en dicho directorio.

El resultado será algo como esto.

Imagen


El comando .cd.

De nuevo, al igual que en linux (y también en DOS), sirve para cambiar el directorio activo.
El directorio al que queremos cambiar se especifica como parámetro, y sigue las reglas de sintaxis de Linux.

Si utilizamos .cd sin parámetros, nos mostrará el directorio activo.

Ejemplo:
Si estamos en el directorio raiz y queremos cambiar al subdirectorio /games teclearemos.
Código: Seleccionar todo
.cd games


Imagen


El comando .mkdir.
Crea un directorio ubicado en el directorio activo. Admite como parámetro el nombre del nuevo directorio a crear.

Ejemplo:
Si estamos en el directorio raiz y queremos crear el subdirectorio /juegos teclearemos.
Código: Seleccionar todo
.mkdir juegos


El comando .mv.

Dependiendo de los parámetros, renombra o mueve un archivo o un directorio.
La sintaxis del comando es:
Código: Seleccionar todo
.mv <origen> <destino>


Donde origen y destino, pueden ser ficheros o directorios.

La mala noticia es que de momento, ni este ni los siguientes comandos admiten comodines. :(
Tendremos que esperar a las siguientes versiones.....

Ejemplos:
Código: Seleccionar todo
.mv hola1 hola


El comando anterior renombrará el directorio HOLA1 como HOLA.

Código: Seleccionar todo
.mv BATMAN.TAP BATMAN.PAP


Renombrará el archivo BATMAN.TAP como BATMAN.PAP.

Código: Seleccionar todo
.mv BATMAN.TAP /games/BATMAN.TAP


Moverá el archivo BATMAN.TAP a la carpeta /games.

El comando .cp.
La sintaxis de este comando es prácticamente idéntica a la del comando .mv, pero en este caso el resultado será que se creará un copia del fichero, conservándose el mismo en su posición original.

Código: Seleccionar todo
.cp BATMAN.TAP /games/BATMAN.TAP


El comando anterior copiará el archivo BATMAN.TAP al directorio /games.

El comando .more.

Es un comando que nos permite visualizar archivos de texto. Es el equivalente al comando type del msdos.

La sintaxis es:

Código: Seleccionar todo
.more <archivo de texto>


El comando .chmod.

Nos permitirá modificar los atributos de un determinado fichero.

La sintaxis es:

Código: Seleccionar todo
.chmod  <+/-><attr> <archivo>


Ejemplo:

Código: Seleccionar todo
.chmod +h BATMAN.TAP


Convertirá en archivo oculto el fichero BATMAN.TAP.

Anteponiendo el signo - se desactivan los atributos y con + se activan.

R Permiso de lectura.
W Permiso de escritura
X Permiso de ejecución
A Atributo de archivo.
S Atributo de sistema.
H Atributo de archivo oculto.


Los comandos .tapein y .tapeout.
Estos dos comandos nos permite utilizar un archivo .tap como si de una cinta virtual se tratara.
El comando .tapein nos permitirá asignar un archivo tap a la entrada del spectrum, y el comando .tapeout nos permitirá asignar otro archivo diferente a la salida.
Es algo así como si tuvieramos dos computones y conectaramos uno de ellos al ear (.tapein) y el otro al mic (tapeout.).

La sintaxis es la siguiente:

Código: Seleccionar todo
.tapein [args] <fichero de entrada>
args:
   -c cerrar fichero
   -p activa/desactiva la pausa de screen$
   -a hace un reset rápido y carga
   -r rebobina la cinta
   -s <ptr> posiciona la cinta en el archivo nº ptr

.tapeout <fichero de salida>
   -c cerrar fichero
   -o sobreescribir fichero



Ejemplos:

Código: Seleccionar todo
.tapein archivo1.tap
.tapeout archivo2.tap


Hará que todo lo que grabemos con SAVE (o los datos que se graben desde un programa), vayan a parar a archivo2.tap.
Por otro lado, todo lo que intentemos cargar con LOAD se intentará leer desde archivo1.tap.

Código: Seleccionar todo
.tapein -s 5 archivo1.tap
.tapeout -o archivo2.tap


Abrirá el archivo1.tap como de entrada y posicionará la cinta en el quinto archivo. El fichero de salida se asignará archivo2.tap y en el caso de que existiera, se sobreescribirá.

El comando .vdisk

El comando vdisk nos permitirá montar un archivo .TRD como unidad de disco virtual para el emulador de TR-DOS.

La sintaxis es:
Código: Seleccionar todo
.vdisk unit <filename>
Unidad 0 = Drive A, Unidad 1 = Drive B, etc.


Si se especifica sólo la unidad, pero no el archivo, la unidad se desmontará.
Con el comando .dsprobe que veremos en el siguiente capítulo, podemos inspeccionar el contenido de vdisk.

Una vez montadas todas las unidades que queramos utilizar, podremos entrar en el emulador de TR-DOS escribiendo lo siguiente:

Código: Seleccionar todo

RANDOMIZE USR 15616



Tras lo que nos aparecerá esta pantalla:

Imagen


Desde aquí podremos utilizar el spectrum en modo TR-DOS.
No es el objeto de este tutorial explicar los comandos del TR-DOS, pero si queréis aprender a utilizarlo, podéis consultar este valioso documento del "Trastero del Spectrum".

Y hasta aquí llega esta entrega. En la siguiente entrega completaremos los "DOT" commands con algunos comandos bastante potentes pero menos utilizados que los vistos hasta ahora.

Hasta la próxima.
Los retrocacharros de Wilco
Djurkwhad: ¿Como te llamaba tu mamaita?
Roger: Un Error. Pero mis amigos me llaman Roger. Roger Wilco.
Avatar de Usuario
wilco2009
Veterano
Veterano
 
Mensajes: 585
Registrado: 07/01/2013 15:47

Volver a Tutoriales

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados