Página 1 de 1

Comandos de la unidad de cinta HiLow

Publicado: 15 May 2022, 00:36
por DJR
==================================================================
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.
==================================================================

==================================================================
Los menues del HiLow usan básicamente 6 teclas para manejarse con
ellos,

CURSORES para subir, bajar, izquierda y derecha
SYMBOL SHIFT para aceptar la acción
y SPACE para cancelar
==================================================================

==================================================================
El dispositivo de almacenamiento HiLow hacía sus acciones analizando
el primer carácter del nombre de archivo proporcionado en el comando
SAVE, de este modo no era necesario usar complicadas sintáxis del
tipo:

SAVE *"m";1;"fichero"

típicas de otros dispositivos como el microdrive.
==================================================================

Por ejemplo, para formatear un cassette tipeamos

SAVE " FORMAT " o SAVE "@"

en donde FORMAT no ES el la palabra formadas por las letras
"F.O.R.M.A.T." si no el TOKEN FORMAT (esto ocurre con otros comandos
en donde se tecla el TOKEN en vez de la palabra, pero tambien muchas
veces tienen un alias, por ejemplo FORMAT o @ en este caso para
formatear)

El "comando" FORMAT 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 cassette sin nombre:

SAVE " FORMAT "
SAVE "@"

ej cassette con nombre: (en este caso "juegos")

SAVE "@juegos"
SAVE " FORMAT juegos"

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

GUARDAR DATOS:

Se sobre entiende que lo que sigue al punto es el nombre de
archivo (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$

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

CATALOGO:

SAVE " CAT "
SAVE " "
SAVE "^"

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

El resto de los "comandos" luego del primer carácter pueden llevar
opcionalmente el nombre del archivo, si no se hace 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 y luego SPACE para confirmar (en algunos casos) y SYMBOL
SHIFT nuevamente para efectuar la accion, si se presiona SPACE
se cancela.

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

Borrado de archivos:

SAVE " ERASE "
SAVE "|"
SAVE " ERASE programa"
SAVE "|programa"

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

CARGAR PROGRAMA BASIC, BYTES, MATRICES, O SCREEN$

LOAD "." o LOAD "&"

ej:

LOAD "."

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

pero si queremos cargar un programa directamente sin pasar por el
menú de selección del HiLow, se puede hacer:

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)

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

VERIFICAR:

SAVE ":"
SAVE ":juego"

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

COPIAR ARCHIVOS ENTRE UN CASSETTE Y OTRO
(*** VER EN EL CODIGO FUENTE SOBRE LA COPIA DE SNAPSHOTS ***)

SAVE "="
SAVE "=programa"

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

RENOMBRAR

SAVE "[nuevo"

Este "comando" es diferente, HiLow nos permite seleccionar el
archivo 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.

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 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:

LOAD "*juego"

para cargarlo directamente

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

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í.

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

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 sintáxis es

SAVE " FORMAT ?"
o
SAVE "@?"