Comandos del +3e

Es posible acceder a todas las características que ofrece el +3e usando los nuevos comandos añadidos al +3 BASIC. Los comandos actuales se muestran a continuación:

Comandos de bajo nivel
Gestión de particiones
Mapeado de unidades
Flujos y canales
Comandos varios

Ten en cuenta que la configuración "permanente" almacenada en tu disco duro puede ser obviada pulsando la tecla MAYÚSCULAS cuando se enciende el +3e.

__________________________________________________________________

FORMAT TO unidad,#maxpart[,cils]

Emplea este comando para formatear tu disco duro de forma que pueda ser utilizado por el +3e. Una vez hayas hecho esto puedes usar el comando NEW para crear particiones. El comando necesita los siguientes parámetros:

unidad
La unidad de disco duro a formatear; esto es, 0 para la unidad maestra, y 1 para la unidad esclava.
#maxpart
El numero máximo de particiones (0-65535). Esto limita el número de particiones que se podrán crear. Elige con cuidado, ya que muy pocas particiones harán que no puedas administrar fácilmente tu disco duro; y demasiadas ralentizarán ciertos comandos. Probablemente lo más sensato sea averiguar cuántas particiones caben en tu disco duro (16Mb es el tamaño máximo de cada partición) y duplicar este número.
cils
Parámetro adicional que limita el número de cilindros a utilizar.Si esta opción se especifica, entonces el primer sector no se sobreescribe, permitiendo que el disco sea dividido entre una partición IDEDOS y una partición de PC (o con FATware si utilizas un interface divIDE ). Ver la sección discos compartidos para más detalles.

Ejemplo

FORMAT TO 0,15

Formatea el disco maestro para un número máximo de 15 particiones, para su uso exclusivo en un +3e.

FORMAT TO 1,31,300

Formatea el disco esclavo para un número máximo de 31 particiones, usando solo los cilindros 0-299. Este disco puede ser compartido con una máquina PC/Mac/Linux, o con un interface divIDE y sistema FATware.

__________________________________________________________________

CAT [#flujo] TAB [EXP]

Este comando muestra una lista de discos conectados al +3e ( Junto con el número de cilindros,cabezas y sectores ). Si el disco(s) duro(s) han sido formateado(s) por el +3e, también se mostrarán todas las particiones del disco. Como ocurre con el comando CAT estándar del +3 puedes enviar el catálogo a cualquier flujo (p.e. #3 para la impresora). Si se muestra una letra de unidad junto a una partición, esto indica que hay una asignación permanente y se asignará esta letra a la partición automáticamente al arrancar.

Opcionalmente, especificando la palabra reservada EXP se puede obtener un catálogo expandido, el cual muestra las posiciones de comienzo y final de cada partición (aunque esto no es realmente útil en la mayoría de los casos).

Ejemplos

CAT TAB

Muestra un listado de las particiones en tus discos duros.

CAT #3 TAB EXP

Envía un catálogo expandido de las particiones en tus discos duros al flujo 3.

__________________________________________________________________

NEW DATA part$,tamaño

Crea una nueva partición lista para ser usada por el +3DOS. Requiere los parámetros siguientes:

part$
El nombre de la partición que quieres crear. Los nombres no distinguen entre mayúsculas y minúsculas, y pueden tener hasta 16 caracteres de longitud. Puedes incluir "0>" o "1>" inmediatamente antes del nombre para especificar si la partición debe ser creada en la unidad maestra (0) o esclava (1); si esto es omitido, se asume la unidad maestra.
tamaño
El tamaño de la partición en megaoctetos, ó Mo (1-16).

Ejemplos

NEW DATA "0>Juegos",16

NEW DATA "Mis documentos",16

Crea dos particiones de 16Mo en la unidad maestra, llamadas Juegos y Mis documentos.

__________________________________________________________________

NEW EXP part$,tamaño

Crea una nueva partición de intercambio. Las particiones de intercambio están disponibles para que el +3e y las aplicaciones las usen como una extensión a la memoria normal; éstas no pueden utilizarse para almacenar ficheros o datos. Es recomendable que hagas dos particiones de intercambio en tu disco duro maestro, ambas de unos 1-4Mo de tamaño.

Los parámetros son idénticos a aquellos empleados en el comando NEW DATA.

Ejemplo

NEW EXP "swap1",4

Crea una partición de intercambio de 4Mo en el disco maestro.

__________________________________________________________________

MOVE part$ BIN

Elimina la partición especificada en part$. ¡Al hacer esto se destruirán todos los ficheros que estén almacenados en la partición!

Ejemplo

MOVE "Utilidades" BIN

Borra la partición llamada "Utilidades" de la unidad maestra.

__________________________________________________________________

MOVE part$ FOR nombre$

Renombra la partición especificada en part$ como nombre$. Ten en cuenta que el nuevo nombre no debe incluir un número de unidad, de otro modo éste será incluido como parte del nombre.

Ejemplo

MOVE "1>Utilidades" FOR "Utils"

Renombra la partición llamada "Utilidades" en la unidad esclava a "Utils".

__________________________________________________________________

CAT [#flujo] ASN

Este comando muestra un listado del mapeado de unidades actual. Se muestra la letra de unidad seguida de la partición mapeada actualmente (usando 0> para designar el disco maestro, y 1> para designar el disco esclavo). Las unidades de disquete y el disco RAM también son mostradas; estos dispositivos están numerados como 2> (disquetera interna), 3> (disquetera externa) y 4> (disco RAM).

Como con el comando CAT estándar del +3, puedes enviar el catálogo a cualquier flujo (p.e. #3 para la impresora).

Ejemplos

CAT ASN

Muesta un listado del mapeado de unidades actual.

CAT #3 ASN

Envía un listado del mapeado de unidades actual al flujo 3.

__________________________________________________________________

MOVE unidad$ IN part$ [ASN]

Con este comando, mapeas una letra de unidad a cualquier partición (de datos) en tu disco duro. Entonces puedes acceder a la nueva "unidad" de la misma forma que lo harías con cualquier otra unidad.

Puedes usar cualquier letra de unidad, A-P, siempre que no se esté usando actualmente, y cada partición sólo puede ser mapeada a una letra de unidad a la vez. Una de las limitaciones de la actual versión de las ROM es que sólo dos particiones pueden ser mapeadas al mismo tiempo.

También es posible mapear la unidad de disquete interna y la externa, y el disco RAM a cualquier letra de unidad (siempre que las hayas "desmapeado" primero de A:/B:/M: con el comando MOVE...OUT). Para hacer esto, tan sólo utiliza el código de dispositivo físico en vez de un nombre de partición. Estos códigos son como sigue:

2>
Unidad de disquete interna
3>
Unidad de disquete externa (si sólo tienes una unidad interna aún puedes usar este número de dispositivo; se te solicitará el intercambio de disquetes cuando sea necesario)
4>
Disco RAM (ten en cuenta que algunas aplicaciones esperan encontrar una unidad M:, así que si mueves el disco RAM a una unidad diferente deberías mapear una partición de disco duro a la unidad M:)

Por último, al usar la opción ASN puedes hacer esta asignación permanente (p.e., será automáticamente configurada cada vez que enciendas el +3). Esto sólo es efectivo si tienes un disco duro.

Ejemplos

MOVE "C:" IN "Juegos"

Mapea la unidad C: a la partición llamada "Juegos" en el disco duro maestro. Ahora es posible usar la unidad C: en los comandos del +3 BASIC, tales como COPY "A:*.*" TO "C:" y CAT "C:"

MOVE "D:" IN "4>" ASN

Mapea la unidad D: al disco RAM, y hace esta asignación permanente.

__________________________________________________________________

MOVE unidad$ OUT [ASN]

Elimina el mapeo actual de la unidad especificada, dejando la letra de unidad disponible para ser asignada a otra partición. También es posible "desmapear" las unidades A:, B: y M: de esta manera, de forma que puedes luego mapearlas a una partición con el comando MOVE...IN. Las unidades físicas de disquete y el disco RAM pueden reasignarse a otras letras de unidad si lo deseas.

Al especificar la opción ASN puedes eliminar cualquier asignación permanente para esta letra de unidad, de forma que ya no se establece automáticamente al encender el +3e.

Ejemplos

MOVE "C:" OUT

Elimina el mapeado previo de la unidad C:, de forma que ahora puede ser mapeada a una partición diferente si se necesita.

MOVE "B:" OUT ASN

"Desmapea" la unidad B:, y asegura que nada sea mapeado a esta unidad la próxima vez que enciendas el +3e.

__________________________________________________________________

LOAD unidad$ [ASN]

SAVE unidad$ [ASN]

VERIFY unidad$ [ASN]

MERGE unidad$ [ASN]

Estos comandos ahora pueden utilizarse con la opción ASN, la cual especifica que la nueva asignación de unidad debe ser permanente (será configurada cada vez que el +3e sea encendido). Esto sólo es efectivo si tienes un disco duro.

Además, VERIFY y MERGE ahora funcionan del mismo modo que el comando LOAD unidad$, de forma que establecen la unidad por defecto (load) para el +3 BASIC.

Ejemplos

VERIFY "C:"

Configura la unidad por defecto a C.

LOAD "E:" ASN

Configura la unidad por defecto a E, y hace esta asignación permanente.

__________________________________________________________________

OPEN #n, f$

El sistema de flujos y canales del +3e ha sido extendido y ahora es posible abrir flujos a canales distintos de los tres canales estándar. El número de flujo n debe estar entre 0 y 15; alterar los flujos 0-3 modificará el comportamiento del sistema y debe ser utilizado con cuidado. Para más detalles, mira la documentación sobre canales extendidos, que además incluye una demostración de los canales de ventana.

El nombre del canal f$ puede ser cualquiera de los siguientes (pueden usarse tanto mayúsculas como minúsculas):

"K"
El canal de entrada estándar (teclado y parte baja de la pantalla). Los flujos 0 y 1 normalmente están asociados a este canal.
"S"
El canal de salida estándar (pantalla principal). El flujo 2 está asociado normalmente a este canal.
"P"
El canal de impresora estándar (sere o paralelo). El flujo 3 está asociado normalmente a este canal.
"I>fichero"
Abre un flujo de sólo lectura desde un fichero +3e existente. Si el nombre del fichero tiene al menos dos caracteres de longitud, puedes omitir la "I>" ya que esto será asumido (los nombres de un solo carácter requieren la "I>" porque de otro modo se asumirá que es un nombre de canal estándar).
"O>fichero"
Crea un fichero +3e nuevo y abre un flujo de sólo escritura hacia él.
"U>fichero"
Abre un fichero +3e existente y crea un flujo de entrada/salida.
"M>dirección, long"
Abre un canal de entrada/salida a una zona de memoria en la dirección, de longitud long.
"V>x$"
Abre un canal de entrada/salida a la variable x$ que debe ser un array de caracteres de dimensión única, suficientemente largo para albergar todo lo que le será enviado o leído.
"W>línea, col, alt, anch [, tamc [, jcar] ]"
Abre un canal de salida hacia una ventana de texto en la pantalla, empezando en la posición de carácter (línea,col), con una altura de alt líneas de caracteres y una anchura de anch caracteres. Opcionalmente, se puede especificar una anchura de caracteres (tamc) (3-8); esto no afecta los detalles de definición de la ventana, que siempre están especificados en caracteres de 8 bit. También se puede especificar un juego de caracteres de usuario, cargado en la dirección jcar.

Una vez que se abre un flujo puede ser utilizado con los comandos estándar INPUT # y PRINT #, así como con los comandos de flujo adicionales mostrados más adelante.

NB: Actualmente el comando INPUT # no funciona correctamente con los canales de fichero. Sin embargo, puedes simularlo utilizando el nuevo comando NEXT # mostrado abajo.

Ejemplos

OPEN #4,"o>a:prueba.txt"

Crea un fichero llamado prueba.txt en la unidad A: y abre un canal de sólo salida conectado al flujo 4.

OPEN #5,"cosas"

Abre un fichero existente llamado cosas en la unidad por defecto y abre un canal de sólo entrada conectado al flujo 5.

__________________________________________________________________

CLOSE #n

Cierra el canal asociado al flujo n. Si n está entre 0-3, se reasocia de nuevo el canal por defecto para ese flujo. Destacar que el fallo en el Spectrum original ha sido corregido y ahora es seguro cerrar flujos que ya están cerrados.

Ejemplos

CLOSE #4

Cierra el canal asociado al flujo 4.

__________________________________________________________________

RETURN #n, var

Este comando devuelve la posición actual del flujo n y lo almacena en la variable var. No se puede utilizar en los canales estándar, los cuales provocarán un error "Dispositivo de E/S no válido".

Ejemplos

RETURN #4,posf

Almacena la posición actual en el fichero asociado al flujo 4 en la variable posf.

__________________________________________________________________

DIM #n, var

Este comando devuelve la extensión (o tamaño) del flujo n y lo almacena en la variable var. No se puede utilizar en los canales estándar, los cuales provocarán un error "Dispositivo de E/S incorrecto".

Ten en cuenta que en el +3e los tamaños siempre son múltiplo de 128 octetos.

Ejemplos

DIM #4,tamf

Almacena el tamaño del fichero asociado al flujo 4 en la variable tamf.

__________________________________________________________________

GOTO #n, m

Este comando establece la posición del flujo n en m. No se puede utilizar en los canales estándar, los cuales provocarán un error "Dispositivo de E/S incorrecto".

Ejemplos

GOTO #4,posf

Establece la posición actual del fichero asociado al flujo 4 en posf.

__________________________________________________________________

NEXT #n, var

Este comando obtiene el siguiente carácter del flujo n y lo almacena en la variable var. Si se usa con el canal estándar "K" es similar a la función INKEY$, excepto que siempre espera a que esté disponible el siguiente carácter (p.e. con el canal "K" espera a la pulsación de una tecla).

Se puede usar este comando para simular el comando INPUT # con canales de fichero.

Ejemplos

NEXT #0, x

Espera al siguiente carácter de entrada del flujo 0 y lo almacena en la variable x.


  9000 LET a$=""
  9010 NEXT #5,c
  9020 IF c=13 THEN RETURN
  9030 LET a$=a$+CHR$ c
  9040 GO TO 9010

La subrutina de arriba lee una cadena del flujo 5 y la devuelve en a$ .

__________________________________________________________________

SPECTRUM f$

Este comando carga y ejecuta un fichero en los populares formatos .Z80 or .SNA . Están soportados tanto los snapshots de 48K como los de 128K. Una pequeña parte de la pantalla se corromperá debido al proceso de carga del snapshot- Lo cual es normal, y no debería causar ningún problema a menos que el snapshot tenga código en el área de pantalla.

Apuntar que la carga de snapshot sólo está soportada desde disco duro / compact flash y no desde disquetera. Si estás utilizando las ROMs del +3e con la disquetera, deberá utilizar el programa de carga de snapshot que se encuentra en la página Descargar programas para el +3 y +3e .

Ejemplos

SPECTRUM "trapdoor.z80"

Carga el snapshot "trapdoor.z80" desde la unidad por defecto.

SPECTRUM "c:bounder.z80"

Carga el snapshot "bounder.z80" desde la unidad C:,

__________________________________________________________________

SPECTRUM INK i [ASN]

SPECTRUM PAPER p [ASN]

SPECTRUM BRIGHT b [ASN]

SPECTRUM FLASH f [ASN]

Estos cuatro comandos establecen los colores del editor del +3, permitiendo escribir programas en el juego de colores de tu elección.

Usando la opción ASN se hará permanente el nuevo juego de colores del editor y el +3 BASIC, de forma que estos colores serán utilizados cuando enciendas el +3e (esto sólo es efectivo si tienes un disco duro).

Ejemplos

SPECTRUM INK 4:SPECTRUM PAPER 0

Establece los colores del editor del +3 a tinta verde sobre papel negro.

SPECTRUM PAPER 1:SPECTRUM INK 6 ASN

Establece los colores del editor del +3 a tinta amarilla sobre papel azul, y hace estos colores los predeterminados cuando arrancas el +3e, junto con los colores que estén actualmente en el +3 BASIC.

__________________________________________________________________

SPECTRUM ATTR n [ASN]

De forma similar a los comandos de colores previos, esto determina el juego de colores para la pantalla del editor del +3, pero te permite especificar todos los atributos de una sola vez. Para la tinta t, papel p, brillo b y parpadeo f, el valor se calcula como: n=(128*f)+(64*b)+(8*p)+t

De nuevo, la opción ASN establece tanto los colores del editor como los del +3 BASIC cada vez que el +3e es encendido.

Ejemplos

SPECTRUM ATTR 4

Establece los colores del editor del +3 a tinta verde sobre papel negro.

SPECTRUM ATTR 14 ASN

Establece los colores del editor del +3 a tinta amarilla sobre papel azul, y hace estos colores (y los colores actuales del +3 BASIC) permanentes en el arranque.

__________________________________________________________________

Volver a la página principal del ZX Spectrum +3e