
==================================================================
Minimanual del dispositivo HiLow para ZX-Spectrum y TK90X, hasta
donde yo se, ning˙n manual a sobrevivido, lo que sigue a 
continuaciÛn es un resumen de sus "comandos" a partir del estudio
de su ROM y su cÛdigo fuente.
==================================================================


Uso de comandos

Cuando se presenta un cuadro de dialogo, las siguientes teclas son validas:

- symbol shift: aceptar
- espacio: cancelar
En algunas acciones, el enter también acepta

Si en los comandos no se indica nombre (por ejemplo LOAD ".") entonces HiLow mostrará un listado de los archivos que concuerden con el tipo de
operación, para que podamos elegir sobre el cual hay que operar.

Para ello se usan las teclas de subir y bajar, se presiona SYMBOL SHIFT para efectuar la accion, si se presiona SPACE se cancela.



Listado de comandos:



FORMATEAR UN CASSETTE:

SAVE " FORMAT " o SAVE "@" ---> (FORMAT es el TOKEN no la palabra)

opcionalmente puede llevar un nombre para nombrar el cassette siempre con la misma restricción del 
largo de cinta de 10 caracteres incluyendo el primer carácter (lo que resulta 9 caracteres en la práctica)

ej formateo cassette sin nombre:

SAVE " FORMAT "
SAVE "@"

ej formateo cassette con nombre (en este caso "juegos1"):

SAVE "@juegos1"
SAVE " FORMAT juegos1"

==================================================================

RECUPERAR UN CASSETTE:


Este comando parece ser una variante del formateo que crea la tabla de directorio en base a los datos que encuentra a los sectores.
No se ha podido testear su funcionamiento en emulador


UN detalle final sobre el FORMATEO, a veces podía ocurrir que el
directorio se corrompiera, no era muy común pero podía ocurrir, por
quitar el cassette antes de grabarlo etc., si uno no era cuidadoso.

Hay una forma especial de FORMATEO que lo que hace en realidad es
tratar de RECUPERAR el cassette examinando todos los sectores y
recrear el directorio, este proceso toma casi tanto tiempo como
un formateo sin borrado.

La sintaxis es

SAVE " FORMAT ?"
o
SAVE "@?"



==================================================================

GUARDAR DATOS:

Se sobre entiende que lo que sigue al punto es el nombre de 
fichero (hasta 9 caracteres máximo)

para guardar un programa BASIC
SAVE ".programa" [LINE xxxx]

para guardar un bloque binario
SAVE ".nombre" CODE xxxx,xxxx

para guardar una matriz numérica
SAVE ".data" DATA a()

para guardar una matriz alfanumérica
SAVE ".data$" DATA a$()

para guardar una pantalla
SAVE ".pantalla" SCREEN$

==================================================================

CARGAR PROGRAMA BASIC, BYTES, MATRICES, O SCREEN$

Ejemplo:
Cargar un juego:

LOAD ".juego"

tambien se puede cargar "codes" o "matrices" con:

LOAD ".binario" CODE [xxxx,xxxx]
LOAD ".matriz" DATA a()
LOAD ".matriz" DATA$ a$()
LOAD ".pantalla" SCREEN$

(en el caso de CODE y SCREEN$ el nombre es opcional, si no lo ponemos el HiLow nos permite elegir cual de ellos cargar)

- Cargar con selector de archivos

LOAD "."            ->  para programas
LOAD "." CODE       ->  para bloques de bytes
LOAD "." SCREEN$    ->  para bloques de bytes
LOAD "." DATA a()   -> para matrices numericas
LOAD "." DATA$ a$() -> para matrices alfanumericas
LOAD "*"            -> para snapshots nmi

Luego con las teclas de subir y bajar se selecciona el archivo y se confirma la carga con SYMBOL SHIFT o bien se presiona SPACE para cancelar

Nota: Supuestamente tambien LOAD "&" invocaria el menú pero no es así, utilizaria la rutina normal de carga de cinta

==================================================================


CATALOGO:

SAVE " CAT " ---> (CAT es el TOKEN no la palabra)
SAVE " "     ---> (espacio en blanco)
SAVE "^"

==================================================================



Borrado de ficheros:

Desde menu
SAVE " ERASE "            ---> (ERASE es el TOKEN no la palabra)
o
SAVE "|"

symbol para borrar cada archivo. luego espacio finalizar. symbol de nuevo para confirmar / espacio cancela


Indicando el nombre
SAVE " ERASE programa"
o
SAVE "|programa"

==================================================================


GRABAR y VERIFICAR:

SAVE ":juego"

==================================================================

COPIAR FICHEROS ENTRE UN CASSETTE Y OTRO

SAVE "="
SAVE "=programa"

Si se intenta copiar un snapshot de nmi, avisa con error "NMI no se copia". PERO se puede copiar dicho snapshot, cuando sale ese error, pulsar secuencia de teclas:

1) soltamos cualquier tecla que estuviera pulsada
2) pulsamos la [H]
3) sin soltar la [H] se pulsa la [I]
4) soltamos la [H]
5) sin soltar la [I] se pulsa la [W]
6) soltamos la [I]



==================================================================

RENOMBRAR

SAVE "[nuevo"

Este "comando" nos permite seleccionar el fichero a renombrar y le da el nuevo nombre que pusimos en el argumento, en este caso "nuevo"


==================================================================
*************************** BOTON NMI ****************************
==================================================================

Si queremos guardar un snapshot de un juego o lo que sea, PRIMERO ANTES DE CARGARLO DESDE CINTA NORMAL debemos hacer:

SAVE "*juego"

Eso hace que se grabe una entrada en el directorio y se compruebe que hay espacio suficiente.

Desde este momento no se debe ejecutar ningún comando de HiLow (ni SAVE "CAT"), o no funcionará al disparar la NMI.

Posteriormente se carga desde cinta el juego en forma normal, y cuando termine de cargar se presiona el botón NMI, con lo que suena una sirena en el parlante del Spectrum o el TV si fuera una TK90/TK95.

Confirmamos con SYMBOL SHIFT y el juego se guarda en el datadrive.

Posteriormente para cargar el snapshot se puede hacer:

LOAD "*" 

y se selecciona el juego y se confirma la carga con SYMBOL SHIFT, o bien para cargarlo directamente:

LOAD "*juego"

==================================================================

OTROS DETALLES SOBRE EL BOTON NMI:

El TK90X o el Spectrum "gomas" no tenÌan botÛn de RESET pero si se
presiona el botÛn NMI y la tecla "1" se hace un RESET.

TambiÈn hay un detalle curioso, si se presiona el botÛn NMI y la 
tecla SPACE, fuerza un "D BREAK - CONT repeats, xx:xx" siempre que
sea posible.

En assembler serÌa:
RST #08
DB  $0C

Y una curiosidad final si hacemos:

SAVE "*pantalla" SCREEN$

y despuÈs de cargar el juego desde cinta pulsamos el boton NMI se
guarda la pantalla que estuviera en ese momento, en vez del programa
en sÌ.

