Sistema de archivos tranZPUter (TZFS)

Descripcion general

El TranZputer Filing System es un port del Rom Filing System utilizado en la placa de actualizacion hardware Rom Disk. Reutiliza gran parte de la misma funcionalidad de software y proporciona consecuentemente los mismos servicios -- las diferencias residen en el uso de un modelo de memoria diferente. Su proposito es proporcionar metodos para manipular archivos almacenados en la tarjeta SD y ofrecer una interfaz de linea de comandos extendida, el monitor TZFS.
La llegada del tranZPUter FusionX con su procesador de E/S virtual motivo la separacion de este software del repositorio tranZPUter en un modulo independiente. TZFS funciona en toda la gama tranZPUter, incluyendo los dispositivos tranZPUterFusionX y tranZPUterFusion mas recientes.
La tarjeta SD y las ROMs son gestionadas por el procesador de E/S K64F. Se ha escrito una API de solicitud de servicio que utiliza un bloque de memoria compartida comun (640 bytes) en conjunto con una solicitud de E/S fisica para pasar comandos y datos entre el Z80 y el K64F.

Monitor TZFS

Al encender el Sharp MZ-700, el monitor presenta una interfaz de linea de comandos. El monitor TZFS es una extension del monitor basico. Despues de insertar la tarjeta tranZPUter SW, el siguiente comando inicia TZFS:

JE800<cr>

Es posible automatizar el inicio directamente en TZFS creando un archivo vacio TZFSBOOT.FLG en la raiz de la tarjeta SD. Un archivo AUTOEXEC.BAT puede crearse para ejecutar comandos automaticamente al arrancar.
Comando Parametros Descripcion
4 / 8 n/a Cambiar a modo de 40 u 80 columnas.
ASM <addr> Ensamblar mnemonicos Z80.
BASIC n/a Cargar y ejecutar el interprete BASIC desde la tarjeta SD.
CD [<directory>] Cambiar de directorio en la tarjeta SD.
CPM n/a Cargar y arrancar CP/M 2.23 desde la tarjeta SD.
D <address> Volcado hexadecimal y ASCII de la memoria.
DASM <start>,<end> Desensamblar codigo maquina Z80.
DIR <wildcard> Listar el directorio de la tarjeta SD.
LC <name> o <file number> Cargar y ejecutar desde la tarjeta SD.
MZ [<machine>] Iniciar el emulador hardware Sharp MZ.
MZ80K … MZ2500 n/a Activar la emulacion hardware correspondiente. (solo tranZPUter SW)
T80 n/a Cambiar al CPU T80 software.
VGA <vga mode> Seleccionar el modo de salida VGA.
Z80 n/a Volver al procesador Z80 hardware.
ZPU n/a Cambiar al procesador ZPU Evolution y arrancar zOS.

Comandos de cinta

Todos los formatos de cinta de la serie Sharp MZ pueden leerse y escribirse a traves de los comandos TZFS. El parametro ,M especifica el modelo de maquina para el temporizado: K=MZ-80K, C=MZ-80C, 1=MZ-1200, A=MZ-80A, 7=MZ-700, 8=MZ-800, B=MZ-80B, 2=MZ-2000.

Aplicaciones actualizadas

Sharp BASIC SA-5510

El interprete SA-5510 BASIC fue desensamblado y hecho compatible con el uso de tarjeta SD bajo TZFS. La nueva version se llama "BASIC SA-5510-TZ".
Comando Parametros Descripcion
LOAD ”[<filename>]” Cargar un programa desde la tarjeta SD o CMT.
SAVE ”[<filename>]” Guardar un programa en la tarjeta SD o CMT.
DIR ”[<wildcard>]” Listar el directorio actual de la tarjeta SD.
CD [<path>] Cambiar el directorio SD activo.
FREQ [<freq>] Modificar la frecuencia del CPU (en KHz).

Microsoft BASIC

Una version de Microsoft NASCOM 4.7b BASIC fue portada a la plataforma tranZPUter con comandos TZFS extendidos.

Compilacion de TZFS

La forma recomendada de compilar TZFS es el script de instalacion automatizada para su plataforma (vea Instalacion y compilacion automatizadas mas abajo) -- instala las herramientas, descarga el contenido y puede ejecutar la compilacion por usted. Las rutas, herramientas y pasos de compilacion manuales que siguen son para usuarios avanzados y recompilaciones parciales.

Instalacion y compilacion automatizadas (recomendado)

La forma recomendada de compilar TZFS es el script de instalacion autocontenido para su plataforma. Instala los requisitos previos (un JRE de Java para el ensamblador GLASS Z80, una cadena de herramientas C + make para compilar el submodulo cpmtools incluido, ademas de perl/git/coreutils; en Windows, Git Bash + Java), clona el repositorio, descarga el paquete de contenido de ~110 MB (TZFS_Files.zip) y puede compilar las imagenes ROM -- todo de forma interactiva, con valores predeterminados razonables que puede aceptar pulsando Enter. Copie unicamente el archivo correspondiente a su plataforma y ejecutelo.
Script Plataforma Notas
setup_TZFS.sh macOS / Linux / WSL Instala Java, una cadena de herramientas C + make, perl, git; en macOS tambien GNU coreutils y bash 4 mediante un tzfs_env.sh generado.
setup_TZFS_windows.ps1 Windows 10 / 11 – Git Bash nativo, sin WSL Usa winget para instalar Git for Windows (bash, coreutils, perl, curl) y un JRE Temurin 17. Se incluye un tools\cpmcp.exe precompilado, por lo que no se requiere compilador de C.

macOS / Linux / WSL – setup_TZFS.sh

chmod +x setup_TZFS.sh
./setup_TZFS.sh

Windows 10 / 11 (Git Bash nativo) – setup_TZFS_windows.ps1, desde un prompt de PowerShell:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\setup_TZFS_windows.ps1
Establezca la variable de entorno TZFS_REPO_URL para anular la URL de repositorio predeterminada (https://git.eaw.app/eaw/TZFS.git) sin editar el script, y TZFS_FILES_URL para apuntar a un paquete de contenido alternativo.
Salida y recompilacion. Las imagenes ROM y las imagenes de disco CP/M se escriben en roms/. Para recompilar mas tarde, entre en el directorio del checkout; en macOS ejecute primero source ./tzfs_env.sh; luego ejecute ./build.sh (o ./build.sh -m para reprocesar tambien las fuentes MZF). Una vez compilado, copie la salida a una tarjeta SD formateada en FAT32 con tools/copytosd.sh (vea Una compilacion tipica mas abajo para el recorrido completo).

cd <software>
./build.sh
tools/copytosd.sh -D$(pwd) -M/media/user/K64F -tMZ-700

Detalle de diseno

API K64F Z80 Host

La API se basa en un bloque comun de RAM en el espacio de memoria de 64K del Z80. El Z80 escribe un comando y activa una interrupcion al K64F a traves del puerto 0x68. El K64F procesa el comando y devuelve el resultado.
Comando Cmd# Descripcion
TZSVC_CMD_READDIR 0x01 Abrir un directorio.
TZSVC_CMD_LOADFILE 0x08 Cargar un archivo en la memoria tranZPUter.
TZSVC_CMD_SAVEFILE 0x09 Guardar un archivo.
TZSVC_CMD_LOAD40ABIOS 0x20 Cargar el BIOS SA1510 40 columnas.
TZSVC_CMD_LOADBDOS 0x30 Recargar CPM BDOS+CCP.
TZSVC_CMD_CPU_SETZ80 0x50 Cambiar al CPU Z80 hardware.
TZSVC_CMD_CPU_SETT80 0x51 Cambiar al CPU T80 software.
TZSVC_CMD_EMU_SETMZ80K … 0x53-0x5A Activar la emulacion del modelo Sharp MZ correspondiente.
TZSVC_CMD_EXIT 0x7F Terminar TZFS.

Modos de memoria Z80

Los modos de memoria definidos incluyen el modo Original (0), modos TZFS (2-5), modos CP/M (6-7), modos de compatibilidad MZ-700 (10-14), modos MZ-800/MZ-2000 (15-16) y modos de acceso K64F (21-31). Consulte la tabla completa de modos en la version en ingles.

Licencias

Este diseno esta licenciado bajo la GNU Public Licence v3.