Sistema de archivos tranZPUter (TZFS) -- Manual del usuario

Manual del usuario TZFS

El tranZPUter Filing System (TZFS) es un paquete de firmware en lenguaje ensamblador Z80 para la familia de placas de expansion Z80 tranZPUter. Es un port del Rom Filing System (RFS) adaptado a la arquitectura del tranZPUter: en lugar de programar una tarjeta Flash ROM fisica, TZFS se carga automaticamente por el procesador de E/S integrado (K64F o ZPU) desde la tarjeta SD en los 512 KB de RAM de la placa en cada arranque. El resultado es un monitor ampliado que agrega gestion de archivos en tarjeta SD, arranque de CP/M 2.2, un ensamblador y desensamblador Z80 integrado, emulacion hardware de maquinas, conmutacion de CPU software, control de salida VGA y mas de 40 nuevos comandos -- manteniendo el familiar prompt SA-1510 * y todos los comandos originales intactos.
Este manual cubre todo lo necesario para empezar y usar TZFS a diario. Para detalles de arquitectura hardware y sistema de compilacion, consulte la Guia tecnica. Para detalles internos del codigo fuente y desarrollo de firmware, consulte la Guia del desarrollador.

Hardware soportado

TZFS soporta cinco plataformas hardware, cada una seleccionada en tiempo de compilacion mediante flags de compilacion. La imagen de firmware resultante y el conjunto de funcionalidades disponibles difieren entre plataformas. Los comandos marcados con (T) en la referencia de comandos del monitor solo estan disponibles en las plataformas tranZPUter SW, SW-700 y Fusion. Estos comandos estan ausentes en FusionX y picoZ80, donde la funcionalidad equivalente es manejada nativamente por el FPGA o RP2350.
Plataforma Flag de compilacion Descripcion Limitaciones
tranZPUter SW BUILD_MZ700 (predeterminado) Diseno original del tranZPUter. El FPGA implementa emulacion hardware de todos los modelos Sharp MZ, el CPU soft-core T80 Z80, el CPU software ZPU Evolution y salida VGA. El procesador de E/S K64F gestiona el acceso a la tarjeta SD y otros servicios software. Ninguna – conjunto completo de funcionalidades.
tranZPUter SW-700 v1.3 BUILD_MZ700 Modelo de produccion actual. Disposicion PCB mejorada del SW. Ninguna – conjunto completo de funcionalidades.
tranZPUter Fusion BUILD_MZ700 Combina la placa tranZPUter con un modulo de video FPGA. Ninguna – conjunto completo de funcionalidades.
tranZPUter FusionX BUILD_FUSIONX Implementacion virtual del tranZPUter basada en FPGA. Emulacion hardware, conmutacion de CPU y comandos VGA (T) no disponibles via TZFS. Todos los comandos de archivo, cinta y memoria estan disponibles.
picoZ80 BUILD_PICOZ80 Placa de reemplazo Z80 basada en RP2350. Mismas limitaciones que FusionX.

Obtener TZFS

Imagenes de firmware pre-compiladas estan disponibles en el directorio releases/ del repositorio Gitea y pueden usarse directamente sin herramientas de compilacion. A diferencia de RFS, TZFS no requiere programar chips ROM fisicos -- el procesador de E/S K64F o ZPU carga el firmware TZFS desde la tarjeta SD en los 512 KB de RAM del tranZPUter automaticamente en cada arranque.
Si desea compilar desde el codigo fuente, la forma mas facil es el script de instalacion automatizada para su plataforma -- setup_TZFS.sh (macOS / Linux / WSL) o setup_TZFS_windows.ps1 (Windows, Git Bash nativo, sin WSL). Cada uno es autocontenido: copie el unico archivo para su plataforma y ejecutelo, e instalara las herramientas necesarias, descargara el paquete de contenido y puede ejecutar la compilacion por usted, sin necesidad de un conocimiento profundo de la cadena de herramientas. Consulte la Guia tecnica -- Sistema de compilacion para el recorrido paso a paso.
Para compilar desde el codigo fuente, clone el repositorio y ejecute:
./build.sh
./build.sh BUILD_FUSIONX=1      # Compilacion FusionX
./build.sh BUILD_PICOZ80=1      # Compilacion picoZ80
./build.sh BUILD_MZ80A=1        # Objetivo MZ-80A (SW/SW-700/Fusion)

Primer arranque

Inserte la tarjeta SD, conecte la placa tranZPUter a una maquina Sharp MZ compatible y encienda. El procesador de E/S K64F o ZPU carga el firmware TZFS en los 512 KB de RAM del tranZPUter. El Z80 se libera del reset y ejecuta TZFS directamente. El familiar banner de inicio SA-1510 aparece, complementado con "+ TZFS" para confirmar la inicializacion exitosa:
SHARP MZ-80A
Monitor SA-1510  + TZFS

*
El * es el prompt estandar del monitor SA-1510. Todos los comandos originales SA-1510 funcionan exactamente como en la maquina no modificada. Escriba H para mostrar una pantalla de ayuda paginada. Presione Espacio para avanzar.

Comandos del monitor TZFS

El conjunto completo de comandos TZFS se enumera a continuacion. Los comandos marcados con (T) solo estan disponibles en las plataformas tranZPUter SW, SW-700 y Fusion.
Comando Parametros Descripcion
4 Cambiar a modo de visualizacion de 40 columnas.
8 Cambiar a modo de visualizacion de 80 columnas.
ASM <address> Iniciar el ensamblador Z80 integrado desde <address>.
B Activar o desactivar el pitido de pulsacion de tecla.
BASIC Localizar SA-5510 BASIC en la tarjeta SD, cargarlo y ejecutarlo.
CD [<directory>] Cambiar el directorio activo de la tarjeta SD.
CP <src> <dst> <size> Copiar un bloque de memoria.
CPM Cargar CP/M 2.2 desde la tarjeta SD y arrancar.
D <addr> [<addr2>] Volcado hexadecimal y ASCII de la memoria.
DASM <addr> [<addr2>] Desensamblar codigo maquina Z80.
DIR [<wildcard>] Listado paginado del directorio activo de la tarjeta SD.
EC <name or file no.> Borrar un archivo de la tarjeta SD.
EX Salir de TZFS y reiniciar la maquina en modo original.
F [<drive>] Arrancar desde disquete.
FILL <start> <end> [,<value>] Rellenar memoria con el valor dado (predeterminado 0x00).
FREQ <kHz> Establecer la frecuencia del CPU en kHz. 0 restaura el valor predeterminado.
H Mostrar la pantalla de ayuda paginada.
J <address> Saltar a (ejecutar desde) la direccion hexadecimal dada.
L / LT [<filename>] [,<M>] Cargar desde cinta (CMT) y ejecutar.
LTNX [<filename>] [,<M>] Cargar desde cinta sin ejecutar.
LC <name or no.> [,<M>] Cargar un programa desde la tarjeta SD y ejecutarlo.
LCNX <name or no.> [,<M>] Cargar desde la tarjeta SD sin ejecutar.
M <address> Editor de memoria interactivo.
MZ (T) [<mc>] Activar la emulacion hardware para el codigo de maquina mc.
MZ80KMZ2500 (T) Activar la emulacion hardware del modelo Sharp MZ correspondiente.
P Ejecutar una prueba en la impresora conectada.
R Ejecutar una prueba completa de memoria DRAM (0x1200-0xCFFF).
RIO <port> Leer un puerto de E/S y mostrar el valor.
S / ST <start> <end> <exec> [,<M>] Guardar un area de memoria en cinta (CMT).
SC <start> <end> <exec> Guardar un area de memoria en la tarjeta SD.
SD2T <name or no.> [,<M>] Copiar un archivo de la tarjeta SD a cinta (CMT).
T Probar el chip temporizador 8253.
T2SD [B] [,<M>] Copiar cinta a tarjeta SD. El flag B activa el modo por lotes.
T80 (T) Cambiar al nucleo CPU software T80 interno.
TC [-]<value> Establecer la compensacion del retardo de cinta.
V Verificar un archivo escrito en cinta contra los datos en memoria.
VBORDER (T) <colour> Establecer el color del borde VGA (0-15).
VGA (T) <mode> Establecer el modo de salida VGA (0=apagado, 1=640x480, 2=800x600).
VMODE (T) <mode> Establecer el modo de video activo para la maquina emulada.
WIO <port> <value> Escribir un valor en un puerto de E/S.
Z80 (T) Volver al CPU Z80 hardware (externo).
ZPU (T) Cambiar al nucleo CPU software ZPU Evolution y arrancar zOS.

Operaciones de cinta

TZFS mantiene soporte completo de CMT (casete) junto al sistema de archivos en tarjeta SD. Todos los comandos de cinta originales funcionan como en el monitor SA-1510 no modificado. TZFS los extiende con seleccion de temporizado por modelo de maquina y agrega comandos para transferencia de archivos entre cinta y tarjeta SD.
Carga desde cinta
Codigo Modelo de maquina
K Sharp MZ-80K
C Sharp MZ-80C
1 Sharp MZ-1200
A Sharp MZ-80A
7 Sharp MZ-700
8 Sharp MZ-800
B Sharp MZ-80B
2 Sharp MZ-2000
* L              ; Cargar el siguiente archivo de cinta y ejecutar (temporizado predeterminado)
* LT INVADERS    ; Buscar INVADERS en la cinta y ejecutar
* LTNX ,7        ; Cargar con temporizado MZ-700, sin ejecutar
Guardar en cinta
* S120020001200
FILE NAME? MYPROG
SAVING...
Copiar cinta a tarjeta SD
* T2SD          ; Copiar el siguiente archivo de cinta a la tarjeta SD
* T2SD B        ; Copia por lotes -- leer todos los archivos de la cinta
* T2SD B,7      ; Copia por lotes con temporizado MZ-700
Copiar tarjeta SD a cinta
* SD2T INVADERS      ; Escribir INVADERS de la tarjeta SD a cinta
* SD2T 04,7          ; Escribir archivo 04 con temporizado MZ-700
Compensacion del retardo de cinta
* TC            ; Mostrar el valor de compensacion actual
* TC 2          ; Aumentar la compensacion en 2 pasos
* TC -1         ; Disminuir la compensacion en 1 paso

Operaciones de tarjeta SD

TZFS utiliza el procesador de E/S K64F o ZPU del tranZPUter para acceder a una tarjeta SD formateada en FAT a traves de una API de solicitud de servicio. Los archivos se almacenan en formato MZF estandar en una estructura de directorios convencional. Todos los comandos de tarjeta SD operan en el directorio actualmente activo, modificable con CD.
* DIR               ; Listar todos los archivos del directorio activo
* CD MZ700          ; Entrar en el subdirectorio MZ700
* LC INVADERS        ; Cargar INVADERS y ejecutar
* SC120020001200     ; Guardar un area de memoria en la tarjeta SD
* EC OLDPROG         ; Borrar el archivo OLDPROG

Emulacion hardware

Esta funcionalidad solo esta disponible en las plataformas tranZPUter SW, SW-700 y Fusion (T).
El FPGA del tranZPUter implementa emulacion a nivel hardware de toda la familia Sharp MZ. Cuando se emite un comando de emulacion, el firmware TZFS solicita al K64F cargar la ROM del monitor correcta para la maquina destino. El FPGA reconfigura su logica de video y mapeo de memoria y la maquina se reinicia en modo de compatibilidad completa.
* MZ 700         ; Activar emulacion hardware MZ-700
* MZ             ; Activar emulacion MZ-80A (predeterminada)
* MZ 2000        ; Activar emulacion hardware MZ-2000

Conmutacion de CPU

Esta funcionalidad solo esta disponible en las plataformas tranZPUter SW, SW-700 y Fusion (T).
Comando Descripcion
Z80 Volver al Z80 hardware (externo). Estado predeterminado despues del arranque.
T80 Cambiar al T80 soft-core Z80 implementado en el FPGA.
ZPU Cambiar al CPU software ZPU Evolution y arrancar zOS.

Control de video

Esta funcionalidad solo esta disponible en las plataformas tranZPUter SW, SW-700 y Fusion (T).
Comando Parametros Descripcion
VGA <mode> Establecer el modo de salida VGA. 0 = apagado, 1 = 640x480, 2 = 800x600.
VBORDER <colour> Establecer el color del borde VGA (0-15).
VMODE <mode> Establecer el modo de video activo para la maquina emulada.

Usar BASIC

* BASIC
TZFS busca la imagen SA-5510 BASIC en el directorio activo de la tarjeta SD, la carga en RAM y la ejecuta. Como TZFS carga BASIC desde la tarjeta SD en lugar de la ROM, es sencillo mantener multiples versiones de BASIC en la tarjeta SD.

Ejecutar CP/M 2.2

* CPM
TZFS localiza la imagen CP/M en la tarjeta SD, la carga y transfiere el control al CCP de CP/M. El prompt cambia a A>.

Resolucion de problemas

El monitor arranca pero "TZFS" no aparece en el banner

  • Tarjeta SD no insertada o no detectada -- verifique que la tarjeta esta correctamente insertada en la ranura.
  • Binario de firmware incorrecto en la tarjeta SD -- asegurese de que el binario TZFS corresponda a su variante de placa.
  • Tarjeta SD no formateada en FAT -- el procesador de E/S requiere una tarjeta formateada en FAT estandar.

Los comandos de emulacion, conmutacion de CPU o VGA no se reconocen

  • Ejecucion en FusionX o picoZ80 -- los comandos marcados (T) no estan disponibles en estas plataformas. Este es el comportamiento esperado.

Las cargas de cinta fallan

  • Incompatibilidad de temporizado de cinta -- use el parametro ,M para seleccionar el temporizado del modelo de maquina apropiado.
  • Variacion de velocidad del cabezal -- use el comando TC para ajustar la compensacion.

CP/M no arranca o muestra errores de BIOS

  • Imagen CP/M ausente de la tarjeta SD -- asegurese de que la tarjeta SD contenga la imagen de arranque CP/M en el directorio activo.

La maquina se cuelga despues de cargar un programa

  • Programa para modelo de maquina incorrecto -- active la emulacion hardware apropiada antes de la carga.
  • El programa sobreescribe el area de trabajo de TZFS -- use LCNX para cargar sin ejecutar.

Sitios de referencia

Recurso Enlace
Pagina del proyecto TZFS /sharpmz-upgrades-tzfs/
Guia tecnica TZFS /sharpmz-upgrades-tzfs-technicalguide/
Guia del desarrollador TZFS /sharpmz-upgrades-tzfs-developersguide/
Pagina del proyecto tranZPUter SW /tranzputer/
picoZ80 (reemplazo Z80 RP2350) /picoz80/
Manual del usuario RFS (firmware complementario) /sharpmz-upgrades-rfs-usermanual/