Sistema de archivos ROM (RFS) — Manual del usuario
Manual del usuario RFS
El Rom Filing System (RFS) es un paquete de firmware escrito en ensamblador Z80 que transforma un Sharp MZ-80A (y hardware compatible) en un ordenador retro con sensacion moderna. Reemplaza la ROM Monitor y la ROM de Usuario originales con un firmware ampliado que agrega un sistema de archivos en tarjeta SD, arranque de CP/M 2.2, multiples interpretes BASIC, un ensamblador y desensamblador Z80 integrados, y mas de 30 nuevos comandos del monitor — todo manteniendo el familiar prompt
* del SA-1510 y todos los comandos originales intactos.
Este manual cubre todo lo necesario para instalar y usar RFS en el dia a dia. Para detalles de la arquitectura de hardware y el sistema de compilacion, vease la Guia tecnica. Para los detalles internos del codigo fuente y el desarrollo de firmware, vease la Guia del desarrollador.
Hardware soportado
RFS soporta cuatro plataformas de hardware, cada una seleccionada en tiempo de compilacion. Las imagenes ROM y el conjunto de funcionalidades resultantes difieren ligeramente entre plataformas:
| Plataforma | Descripcion | Funcionalidades clave |
|---|---|---|
| Tarjeta RomDisk | Objetivo RFS original. Un PCB que se conecta a la expansion del MZ-80A y reemplaza los sockets de la ROM Monitor y de la ROM de Usuario con hasta 4x512 KB de Flash RAM, 512 KB de SRAM y un lector de tarjetas SDXC. | Conjunto completo de funcionalidades: tarjeta SD, todos los comandos del monitor, CP/M, variantes BASIC, operaciones de cinta |
| SFD-700 | La tarjeta de interfaz de disquete SFD-700 mkII. RFS ocupa el espacio de Flash ROM de la tarjeta. | Arranque de disquete, directorio de disquete, programas basados en ROM, ensamblador/desensamblador Z80; sin comandos de tarjeta SD |
| picoZ80 | La tarjeta de reemplazo Z80 basada en RP2350. RFS se ejecuta dentro de su espacio ROM emulado, bajo la persona de maquina presentada al anfitrion — MZ-80A o, ahora, el Sharp MZ-80K (que puede usar las mismas tarjetas de interfaz Sharp que el MZ-80A ademas de su disquete nativo MZ-80FD/T3444M). | Conjunto completo de funcionalidades equivalente a RomDisk; en la persona MZ-80A/MZ-80K con una tarjeta MZ80AFI, CP/M puede leer discos MZ-80K originales como C:/D: |
| tranZPUter FusionX | Tarjeta de mejora Z80 basada en FPGA. RFS se ejecuta dentro de su espacio de Flash ROM. | Conjunto completo de funcionalidades |
Los comandos marcados con (R) en la referencia de comandos del monitor a continuacion solo estan presentes en la compilacion RomDisk / picoZ80.
Obtener RFS
Las imagenes ROM e imagenes de tarjeta SD preconstruidas estan disponibles en el directorio
Programacion de las Flash ROMs
releases/ del repositorio Gitea. Estas pueden programarse directamente sin ninguna herramienta de compilacion. Si desea compilar desde el codigo fuente, la forma mas facil es el script de configuracion automatizada para su plataforma: setup_RFS.sh (macOS / Linux / WSL), setup_RFS_windows_native.ps1 (Windows, nativo — sin WSL, recomendado) o setup_RFS_windows.ps1 (Windows via WSL2 / Ubuntu). Cada uno es autonomo — copie el archivo unico para su plataforma y ejecutelo; instala las herramientas requeridas, descarga el contenido y puede ejecutar la primera compilacion por usted, sin requerir conocimientos profundos de la cadena de herramientas. Vease la Guia tecnica — Sistema de compilacion para el recorrido paso a paso (incluidas las preguntas que hace cada script).
Para las compilaciones RomDisk y picoZ80 se necesitan los siguientes archivos:
MROM_ROMDISK_256.binoMROM_PICOZ80_256.bin— Imagen de la ROM Monitor (programar en el chip Flash de la ROM Monitor).USER_ROM_256.bin,USER_ROM_II_256.bin,USER_ROM_III_256.bin— Imagenes de la ROM de Usuario (programar en los chips Flash de la ROM de Usuario 1–3).SHARP_MZ80A_RFS_CPM_IMAGE_1.img— Imagen de tarjeta SD (escribir en una tarjeta SD micro/estandar condd).
SFD700_256.bin— Imagen ROM SFD-700 combinada (programar en la Flash ROM del SFD-700 mkII).
Las imagenes ROM se escriben en chips Flash SST39SF040 (512 KB) usando un programador TL866 II+ o compatible con la utilidad
minipro:
# Monitor ROM (compilacion RomDisk): minipro --infoic /path/to/minipro/infoic.xml -p SST39SF040 -s -w roms/MROM_ROMDISK_256.bin # User ROM 1: minipro --infoic /path/to/minipro/infoic.xml -p SST39SF040 -s -w roms/USER_ROM_256.bin # SFD-700: minipro --infoic /path/to/minipro/infoic.xml -p SST39SF040 -s -w roms/SFD700_256.binEscritura de la tarjeta SD
Escriba la imagen combinada de tarjeta SD directamente en la tarjeta usando
dd en Linux. No se requiere particionamiento — la imagen SDCFS comienza en el sector 0:
# Reemplace /dev/sdX con el nodo de dispositivo de su tarjeta SD: dd if=roms/SHARP_MZ80A_RFS_CPM_IMAGE_1.img of=/dev/sdX bs=512 sync
Primer arranque
Despues de insertar los chips ROM programados y (para RomDisk) la tarjeta SD, encienda el Sharp MZ-80A. Aparecera el familiar banner de inicio del SA-1510. Cuando RFS ha inicializado correctamente el sistema de archivos de la tarjeta SD, el banner se complementa con "
+ RFS":
SHARP MZ-80A Monitor SA-1510 + RFS *
El
* es el indicador del monitor. Todos los comandos SA-1510 originales estan disponibles sin cambios. Escriba H para mostrar una pantalla de ayuda paginada con todos los comandos RFS. Presione Espacio para avanzar por las paginas.
Si falta el texto + RFS, la tarjeta SD no fue detectada — verifique que la tarjeta esta correctamente insertada, formateada y contiene la imagen SDCFS en el sector 0.
Referencia de comandos del monitor
El conjunto completo de comandos RFS se enumera a continuacion. Los comandos llevan (R) si solo estan presentes en la compilacion RomDisk / picoZ80. Todos los demas comandos estan disponibles en todas las compilaciones.
| Comando | Parametros | Descripcion |
|---|---|---|
| 0 .. 9 (R) | — | Seleccionar la unidad de tarjeta SD RFS activa (0–9). El numero de unidad seleccionado se muestra en el indicador. |
| 40 (R) | — | Cambiar al modo de visualizacion de 40 columnas (requiere la actualizacion Kuma 40/80 o el Video Module). |
| 80 (R) | — | Cambiar al modo de visualizacion de 80 columnas (requiere la actualizacion Kuma 40/80 o el Video Module). |
| ASM | <address> |
Ensamblador Z80 interactivo. Introduce mnemonicos de ensamblador directamente en memoria a partir de la direccion hexadecimal dada. Presione Enter en una linea vacia para salir. |
| B | — | Activar o desactivar el sonido del teclado. |
| BASIC | — | Localizar Sharp BASIC SA-5510RFS en la unidad SD activa o en ROM, cargarlo y ejecutarlo. |
| C | [<byte>] |
Borrar (inicializar) la memoria desde 0x1200 hasta el tope de la RAM con 0x00 o el valor hexadecimal de 8 bits proporcionado. |
| CP | <src> <dst> <size> |
Copiar un bloque de memoria. Todos los argumentos son hexadecimales de 4 digitos: direccion de origen, direccion de destino, numero de bytes. |
| CPM | — | Localizar CP/M 2.2 en la unidad SD activa o en ROM, cargarlo y arrancarlo. |
| D | <addr> [<addr2>] |
Volcado hexadecimal y ASCII de la memoria desde <addr> hasta <addr2> (o 20 lineas si no hay direccion final). Presione cualquier tecla para ver mas, U para subir una pagina, X para salir. Repita D sin direccion para continuar desde la ultima posicion. |
| DASM | <addr> [<addr2>] |
Desensamblar codigo maquina Z80 a partir de <addr>. |
| DUC (R) | [H\|T] <name> o <file#> |
Volcar el contenido de un archivo de tarjeta SD. Predeterminado: volcado hexadecimal. DUCH: hexadecimal con informacion de cabecera MZF. DUCT: volcado de texto (solo ASCII imprimible). |
| EC (R) | <name> o <file#> |
Borrar un archivo de la unidad de tarjeta SD activa por nombre o numero de archivo. |
| F / FL | [<drive>] |
Arrancar desde el numero de unidad de disquete especificado. Si se omite, se le solicita que introduzca un numero de unidad. Lee el sector de arranque, carga el programa de arranque en memoria y lo ejecuta. |
| FD | [<drive>] |
Mostrar el listado del directorio de un disquete. El numero de unidad opcional selecciona la unidad 1–4 (predeterminado: 1). Muestra el nombre de archivo, la direccion de carga, la direccion de ejecucion y el tamano de archivo para cada archivo del disco. |
| FC | <start> <end> <exec> |
Guardar un rango de memoria en un archivo de disquete. Se le solicita un nombre de archivo y un numero de unidad. |
| FD2T | <name> o <file#> |
Copiar un archivo del disquete a la cinta de casete (CMT). |
| T2FD | — | Cargar un programa desde cinta (CMT) y guardarlo en disquete. |
| f | — | Ejecutar el codigo de arranque AFI de disquete original en 0xF000. |
| H | — | Mostrar la pantalla de ayuda de comandos (paginada; presione Espacio para avanzar). |
| IC (R) | — | Listado paginado del directorio de archivos en la unidad de tarjeta SD activa. Muestra el numero de archivo y el nombre de archivo. |
| IN | <port>[,<port>...] |
Leer uno o mas puertos de E/S. Cada puerto es una direccion de 2 o 4 digitos hexadecimales. Los valores se imprimen como hexadecimal de 2 digitos. Ejemplo: IN00E8 lee el puerto 0x00E8; IN00,01,02 lee los puertos 0x00, 0x01 y 0x02. |
| IR | — | Listado paginado del directorio de programas almacenados en las unidades Flash ROM. |
| J | <address> |
Saltar a (ejecutar desde) la direccion hexadecimal dada. |
| L / LT | [<filename>] |
Cargar un archivo desde cinta (CMT) y ejecutarlo. |
| LTNX | [<filename>] |
Cargar un archivo desde cinta (CMT) sin ejecutarlo. |
| LR | <name> o <file#> |
Cargar un programa desde ROM por nombre o numero de archivo y ejecutarlo. |
| LRNX | <name> o <file#> |
Cargar un programa desde ROM por nombre o numero de archivo sin ejecutarlo. |
| LC (R) | <name> o <file#> |
Cargar un programa desde la unidad de tarjeta SD activa y ejecutarlo. |
| LCNX (R) | <name> o <file#> |
Cargar un programa desde la unidad de tarjeta SD activa sin ejecutarlo. |
| M | <address> |
Editor de memoria interactivo. Muestra el valor actual del byte; escriba un nuevo valor hexadecimal y presione Enter, o solo Enter para omitir. Presione X para salir. |
| OUT | <port>:<value>[,<port>:<value>...] |
Escribir en uno o mas puertos de E/S. Cada puerto es una direccion de 2 o 4 digitos hexadecimales, seguida de dos puntos y un valor hexadecimal de 2 digitos. Ejemplo: OUT00E8:FF escribe 0xFF en el puerto 0x00E8; OUTD0:01,D1:80 escribe 0x01 en el puerto 0xD0 y 0x80 en el puerto 0xD1. |
| P | — | Ejecutar una prueba en la impresora conectada. |
| R | — | Ejecutar una prueba de memoria DRAM. |
| S / ST | <start> <end> <exec> |
Guardar un rango de memoria en cinta (CMT). Se le solicita un nombre de archivo. Ejemplo: S120020001203 guarda 0x1200–0x2000, direccion de ejecucion 0x1203. |
| SC (R) | <start> <end> <exec> |
Guardar un rango de memoria en la unidad de tarjeta SD activa. Se le solicita un nombre de archivo. |
| SD2T (R) | <name> o <file#> |
Copiar un archivo de la unidad de tarjeta SD activa a la cinta (CMT). |
| T | — | Probar el chip temporizador 8253. |
| T2SD (R) | — | Cargar un programa desde cinta (CMT) y escribirlo en la unidad de tarjeta SD activa. |
| V | — | Verificar una grabacion en cinta comparandola con los datos actualmente en memoria. |
| X (R) | — | Cambiar a la variante ROM hi-load para que la DRAM cubra 0x0000–0xCFFF. |
Uso de las unidades de tarjeta SD
RFS proporciona diez unidades logicas (0–9) almacenadas secuencialmente en la tarjeta SD. Cada unidad contiene hasta 256 archivos de hasta 64 KB cada uno. La unidad activa actual se muestra en el indicador del monitor — escriba un solo digito (0–9) para cambiar de unidad.
Ver el directorio
Escriba IC para listar los archivos en la unidad SD activa. Cada entrada muestra un numero de archivo hexadecimal de dos digitos seguido del nombre de archivo. En el modo de 80 columnas se muestran cuatro columnas simultaneamente.
* IC 00 INVADERS 01 DEFENDER 02 GALAXIANS 03 SPACE ATTACK 04 PACMAN 05 SNAKE ... Press SPACE to continue, X to exit
Escriba IR para listar los programas almacenados en las unidades Flash ROM. Estos son de solo lectura y estan disponibles independientemente de si hay una tarjeta SD insertada.
Carga de programas
Los programas pueden cargarse por nombre o por numero de archivo. Cargar por numero es mas rapido ya que no se requiere comparacion de cadenas:
* LC INVADERS ; Cargar INVADERS desde la unidad SD activa y ejecutar * LCNX INVADERS ; Cargar sin ejecutar (util para depuracion) * LC 04 ; Cargar el archivo numero 04 desde la unidad SD activa * LR SA-5510RFS ; Cargar SA-5510RFS desde la unidad ROM y ejecutarGuardado de programas
Use SC para guardar un rango de memoria en la unidad de tarjeta SD activa. La sintaxis es identica a la del comando de cinta S — direccion de inicio, direccion final y direccion de ejecucion como valores hexadecimales de 4 digitos seguidos, y luego se le solicita un nombre de archivo:
* SC120020001200 FILE NAME? MYPROG SAVEDTransferencia cinta ↔ tarjeta SD
Los archivos pueden copiarse entre la cinta (CMT) y la tarjeta SD en cualquier direccion:
- T2SD — carga el siguiente archivo de la cinta y lo guarda en la unidad de tarjeta SD activa. Se le solicitara que presione Play en la pletina de cinta antes de que comience la carga.
- SD2T
<name>— carga el archivo nombrado desde la unidad de tarjeta SD activa y lo escribe en cinta exactamente como si fuera una copia de cinta a cinta. Presione Record en la pletina de cinta cuando se le solicite.
Uso de BASIC
Sharp SA-5510RFS BASIC
El interprete original Sharp SA-5510 BASIC ha sido extendido con comandos LOAD, SAVE y DIR compatibles con RFS. Esta almacenado en la unidad ROM como SA-5510RFS. Iniciarlo con:
* BASIC
Una vez en BASIC, los siguientes comandos extendidos estan disponibles:
| Comando | Ejemplo | Descripcion |
|---|---|---|
| LOAD | LOAD "TEST" |
Cargar el programa llamado TEST desde la unidad activa y ejecutarlo. |
| LOAD | LOAD "3:TEST" |
Cargar TEST desde la unidad RFS 3, haciendo activa la unidad 3. |
| LOAD | LOAD "C:TEST" |
Cargar TEST desde el casete interno (CMT). |
| LOAD | LOAD |
Cargar el siguiente archivo secuencial desde la unidad activa. |
| SAVE | SAVE "TEST" |
Sobrescribir un archivo existente llamado TEST en la unidad activa, o crearlo. |
| SAVE | SAVE "3:TEST" |
Guardar en la unidad RFS 3 y hacer activa la unidad 3. |
| SAVE | SAVE "C:TEST" |
Guardar en CMT con el nombre TEST. |
| DIR | DIR |
Listar el directorio de la tarjeta SD para la unidad activa. |
| DIR | DIR "3:" |
Listar la unidad 3 y hacerla activa. |
Microsoft BASIC (basado en NASCOM BASIC v4.7b) esta incluido en tres variantes:
- MS-BASIC(MZ-80A) — hardware estandar del MZ-80A, solo almacenamiento en casete.
- MS-BASIC(RFS40) — RFS con visualizacion de 40 columnas; agrega los comandos CLOAD, CSAVE y DIR de tarjeta SD.
- MS-BASIC(RFS80) — RFS con visualizacion de 80 columnas; agrega los comandos CLOAD, CSAVE y DIR de tarjeta SD.
* LR MS-BASIC(RFS40)
Las extensiones RFS en MS-BASIC funcionan de forma similar a SA-5510RFS — el prefijo calificador de unidad selecciona un numero de unidad RFS antes del nombre de archivo:
CLOAD "8:STARTREK" ; Cargar STARTREK desde la unidad RFS 8 CSAVE "8:MYPROG" ; Guardar en la unidad RFS 8 DIR "5:" ; Listar la unidad 5
El comando ANSITERM activa o desactiva el procesador de terminal ANSI integrado (activado por defecto). Esto permite que los programas BASIC que usan secuencias de escape ANSI para el posicionamiento del cursor y los colores se ejecuten sin cambios:
ANSITERM 0 ; Desactivar el procesamiento ANSI ANSITERM 1 ; Activar el procesamiento ANSI (predeterminado)Conversion de programas de casete NASCOM
Los programas NASCOM BASIC distribuidos como archivos de imagen de casete (
.cas) pueden convertirse para su uso en el MZ-80A con la herramienta nasconv incluida. Elimina los datos de encuadre de cinta y reasigna los valores de token para que coincidan con la extension RFS de MS-BASIC:
nasconv --image startrek.cas --output startrek.bas \
--nasaddr 0x10fa --loadaddr 0x4341
BASIC MZ-5Z008 (Quick Disk)
El BASIC original Sharp MZ-5Z008 Quick Disk ha sido mejorado para soportar el almacenamiento en tarjeta SD RFS y el acceso a archivos de red junto a sus dispositivos nativos de disquete (Floppy Disk), Quick Disk y cinta de casete (Cassette Tape). La version RFS arranca con el titulo "
BASIC 5Z-008BRFS". Este BASIC tambien se ejecuta en el MZ-1500 mediante la persona MZ-1500 del picoZ80, proporcionando el mismo soporte de dispositivos incluyendo el acceso a la red NETx:. Use un prefijo de dispositivo para seleccionar el almacenamiento de destino:
| Comando | Ejemplo | Descripcion |
|---|---|---|
| LOAD | LOAD "RFS1:MYPROG" |
Cargar un programa BASIC desde la unidad de tarjeta SD RFS 1 (mapeada a la unidad SD 4). Las unidades RFS 1–7 estan disponibles. |
| SAVE | SAVE "RFS1:MYPROG" |
Guardar el programa actual en la unidad de tarjeta SD RFS 1. |
| DIR | DIR RFS1: |
Listar el directorio de la unidad de tarjeta SD RFS 1. |
| LOAD | LOAD "FD1:MYPROG" |
Cargar un programa BASIC desde la unidad de disquete 1. |
| SAVE | SAVE "FD1:MYPROG" |
Guardar el programa actual en la unidad de disquete 1. |
| DIR | DIR FD1: |
Listar el directorio de disquete para la unidad 1. |
| LOAD | LOAD "QD:MYPROG" |
Cargar un programa BASIC desde Quick Disk. |
| SAVE | SAVE "QD:MYPROG" |
Guardar el programa actual en Quick Disk. |
| DIR | DIR QD: |
Listar el directorio de Quick Disk. |
| LOAD | LOAD "NET1:MYPROG" |
Cargar un programa BASIC desde la unidad 1 del servidor de archivos de red. Unidades 1–7 disponibles. Requiere la tarjeta Celestite y netfs.py en el PC. |
| SAVE | SAVE "NET1:MYPROG" |
Guardar el programa actual en la unidad 1 del servidor de archivos de red. |
| DIR | DIR NET1: |
Listar el directorio desde la unidad 1 del servidor de archivos de red. |
| LOAD | LOAD "CMT:MYPROG" |
Cargar un programa BASIC desde cinta de casete. |
| SAVE | SAVE "CMT:MYPROG" |
Guardar el programa actual en cinta de casete. |
El BASIC original Sharp MZ-2Z009E Floppy Disk ha sido mejorado para soportar el almacenamiento en tarjeta SD RFS junto a sus dispositivos nativos de disquete (Floppy Disk) y Quick Disk. La version RFS arranca con el titulo "
BASIC 2Z-009ERFS". Use un prefijo de dispositivo para seleccionar el almacenamiento de destino:
| Comando | Ejemplo | Descripcion |
|---|---|---|
| LOAD | LOAD "RFS1:MYPROG" |
Cargar un programa BASIC desde la unidad de tarjeta SD RFS 1 (mapeada a la unidad SD 4). Las unidades RFS 1–7 estan disponibles. |
| SAVE | SAVE "RFS1:MYPROG" |
Guardar el programa actual en la unidad de tarjeta SD RFS 1. |
| DIR | DIR RFS1: |
Listar el directorio de la unidad de tarjeta SD RFS 1. |
| LOAD | LOAD "FD1:MYPROG" |
Cargar un programa BASIC desde la unidad de disquete 1. |
| SAVE | SAVE "FD1:MYPROG" |
Guardar el programa actual en la unidad de disquete 1. |
| DIR | DIR FD1: |
Listar el directorio de disquete para la unidad 1. |
| LOAD | LOAD "QD:MYPROG" |
Cargar un programa BASIC desde Quick Disk. |
| SAVE | SAVE "QD:MYPROG" |
Guardar el programa actual en Quick Disk. |
| DIR | DIR QD: |
Listar el directorio de Quick Disk. |
Ejecucion de CP/M 2.2
CP/M 2.2 esta disponible en todas las plataformas RFS. Desde el indicador del monitor:
* CPM
RFS localizara CP/M en la unidad de tarjeta SD activa o en ROM, lo cargara y transferira el control al CCP de CP/M. El indicador cambia a
A>.
CP/M proporciona 47 KB de RAM de programa. El CBIOS reside completamente en ROM, dejando los 47 KB completos libres para aplicaciones. Hasta siete unidades de disco CP/M (A:–G:) estan disponibles segun el hardware:
| Unidad CP/M | Contenido |
|---|---|
| A: | Tarjeta SD — programas de sistema CP/M, Turbo Pascal, Hi-Soft C, etc. |
| B: | Tarjeta SD — utilidades Pascal y discos del Pascal User Group |
| C: | Tarjeta SD — PLI, PLM, WordStar |
| D:–G: | Tarjeta SD — coleccion CP/M de Grant Searle (C0–F9) |
Lectura de discos CP/M MZ-80K originales. Cuando el anfitrion lleva instalada una tarjeta de disquete MZ80AFI (en un MZ-80A real, o en el picoZ80 ejecutando la persona MZ-80A o MZ-80K), el CP/M de RFS puede ahora arrancar y leer discos CP/M MZ-80K originales y sin convertir directamente. El formato del disco se detecta automaticamente a partir de su tamano de sector de 128 bytes y sus datos no invertidos; tales discos se montan como las unidades CP/M de disquete, normalmente C: y D:, de modo que sus archivos pueden listarse y leerse desde el indicador de CP/M (
DIR C:, DIR D:) sin ninguna conversion previa. Las letras de unidad exactas dependen de que otras unidades (ROM, tarjeta SD) esten presentes — vease la guia CP/M para RFS.
El emulador de terminal ANSI integrado mapea las secuencias de escape ANSI estandar a la pantalla del MZ-80A, haciendo que la mayoria de las aplicaciones CP/M que dependen del control de pantalla funcionen correctamente sin modificacion. El teclado incluye auto-repeticion y un mapeo adecuado de todas las teclas del MZ-80A a ASCII.
Para volver al monitor RFS desde CP/M, use un arranque en caliente (Ctrl+C desde el CCP) que recarga el CCP. Una salida completa de vuelta al monitor SA-1510 requiere un reinicio por hardware.
Modos de visualizacion
Si una actualizacion Kuma 40/80 columnas o el Video Module de color 40/80 esta instalado en el MZ-80A, RFS puede cambiar entre los modos de visualizacion de 40 y 80 columnas en el indicador del monitor:
* 40 ; Cambiar a la visualizacion de 40 columnas * 80 ; Cambiar a la visualizacion de 80 columnas
En el modo de 80 columnas, los comandos de directorio IC e IR muestran cuatro columnas, lo que hace mucho mas rapido encontrar programas a simple vista. La variante MS-BASIC(RFS80) esta compilada especificamente para uso de 80 columnas, con toda la salida de pantalla asumiendo 80 columnas.
Sin la actualizacion 40/80, el firmware RFS sigue arrancando y funcionando con normalidad — estos comandos simplemente no estan disponibles.
Organizacion de la tarjeta SD
La imagen preconstruida de la tarjeta SD organiza los programas en diez unidades RFS y siete imagenes de disco CP/M:
| Unidad RFS | Contenido |
|---|---|
| 0 | Programas en codigo maquina comunes y del MZ-80A |
| 1 | Programas en codigo maquina del MZ-80K |
| 2 | Programas en codigo maquina del MZ-700 |
| 3 | Programas en codigo maquina del MZ-800 / MZ-1500 |
| 4 | Programas en codigo maquina del MZ-80B / MZ-2000 |
| 5 | Programas BASIC, tipo 2 (MZ-80A) |
| 6 | Programas BASIC, tipo 2 (MZ-80K) |
| 7 | Programas BASIC, tipo 5 (MZ-700 / MZ-800) |
| 8 | Programas varios |
| 9 | Programas varios |
Solucion de problemas
El monitor arranca pero "RFS" no se muestra en el banner
- Tarjeta SD no insertada — verifique que la tarjeta esta asentada en el lector de la tarjeta RomDisk.
- Tarjeta SD no formateada correctamente — la imagen SDCFS debe comenzar en el sector 0, sin tabla de particiones. Reescriba con
ddcomo se describio arriba. - Imagen ROM incorrecta — verifique que ha programado los chips de la ROM Monitor y la ROM de Usuario con las imagenes correctas para su plataforma de hardware (RomDisk frente a picoZ80).
- SPI no conectado — en tarjetas RomDisk v2+, asegurese de que
HW_SPI_ENA = 1enrfs_definitions.asmantes de compilar. En tarjetas v1 usePP_SPI_ENA = 1.
La maquina se cuelga o se comporta erraticamente despues de cargar un programa
- Incompatibilidad de imagenes ROM — la ROM Monitor y la ROM de Usuario deben estar compiladas desde el mismo arbol de codigo fuente y para el mismo objetivo. Mezclar imagenes de compilaciones diferentes puede producir direcciones de conmutacion de bancos impredecibles.
- El programa sobrescribe el espacio de trabajo RFS — los programas que usan todo el espacio 0x1200–0xCFFF pueden sobrescribir los stubs de conmutacion de bancos RFS en 0xE800. Los programas disenados para el monitor original generalmente no deberian verse afectados; los programas automodificables o los que saltan a direcciones arbitrarias podrian verse afectados.
CP/M no arranca o muestra errores
- Imagen de tarjeta SD incompleta — las imagenes de disco CP/M comienzan en el limite de 256 MB de la tarjeta SD. Asegurese de que la imagen completa
SHARP_MZ80A_RFS_CPM_IMAGE_1.imgfue escrita — las escrituras parciales dejaran sin inicializar el area de disco CP/M. - La unidad activa no tiene sector de arranque CP/M — seleccione la unidad 0 antes de escribir CPM, ya que la imagen preconstruida coloca el sector de arranque CP/M en la unidad 0.
- Disquete no conectado — si usa la compilacion SFD-700 sin ningun disquete conectado, las operaciones CBIOS relacionadas con el disquete expiraran por tiempo de espera. Use en su lugar el arranque de CP/M desde la tarjeta SD.
Enlaces de referencia
| Recurso | Enlace |
|---|---|
| Pagina del proyecto RFS | /es/sharpmz-upgrades-rfs/ |
| Guia tecnica RFS | /es/sharpmz-upgrades-rfs-technicalguide/ |
| Guia del desarrollador RFS | /es/sharpmz-upgrades-rfs-developersguide/ |
| Galeria RFS | /es/sharpmz-upgrades-rfs-gallery/ |
| SFD-700 mkII (controlador de disquete) | /sfd700/ |
| picoZ80 (reemplazo Z80 RP2350) | /es/picoz80/ |
| Ensamblador GLASS Z80 | Incluido en tools/glass.jar |
| Manual NASCOM Basic | Incluido en el directorio docs/ del repositorio |