Sistema di archiviazione ROM (RFS) — Manuale utente

Manuale utente RFS

Il Rom Filing System (RFS) e un pacchetto firmware scritto in assemblatore Z80 che trasforma uno Sharp MZ-80A (e hardware compatibile) in un computer retro dall'aspetto moderno. Sostituisce la ROM Monitor e la ROM Utente originali con un firmware esteso che aggiunge un file system su scheda SD, avvio CP/M 2.2, molteplici interpreti BASIC, un assemblatore e disassemblatore Z80 integrati e oltre 30 nuovi comandi del monitor — il tutto mantenendo il familiare prompt * del SA-1510 e tutti i comandi originali intatti.
Questo manuale copre tutto il necessario per installare e utilizzare RFS quotidianamente. Per i dettagli dell'architettura hardware e del sistema di build, vedere la Guida tecnica. Per i dettagli interni del codice sorgente e lo sviluppo firmware, vedere la Guida per sviluppatori.

Hardware supportato

RFS supporta quattro piattaforme hardware, ciascuna selezionata al momento della compilazione. Le immagini ROM e il set di funzionalita risultanti differiscono leggermente tra le piattaforme:
Piattaforma Descrizione Funzionalita principali
Scheda RomDisk Target RFS originale. Un PCB che si inserisce nell’espansione MZ-80A e sostituisce i socket ROM Monitor e Utente con fino a 4x512 KB Flash RAM, 512 KB SRAM e un lettore di schede SDXC. Set completo di funzionalita: scheda SD, tutti i comandi del monitor, CP/M, varianti BASIC, operazioni su nastro
SFD-700 La scheda di interfaccia floppy disk SFD-700 mkII. RFS occupa lo spazio Flash ROM della scheda. Avvio floppy, directory floppy, programmi basati su ROM, assemblatore/disassemblatore Z80; nessun comando scheda SD
picoZ80 La scheda di sostituzione Z80 basata su RP2350. RFS viene eseguito nel suo spazio ROM emulato, sotto la persona macchina presentata all’host — MZ-80A oppure, ora, lo Sharp MZ-80K (che puo usare le stesse schede di interfaccia Sharp dell’MZ-80A oltre al suo floppy nativo MZ-80FD/T3444M). Set completo di funzionalita equivalente a RomDisk; sulla persona MZ-80A/MZ-80K con una scheda MZ80AFI, CP/M puo leggere dischi MZ-80K originali come C:/D:
tranZPUter FusionX Scheda di potenziamento Z80 basata su FPGA. RFS viene eseguito nel suo spazio Flash ROM. Set completo di funzionalita
I comandi contrassegnati con (R) nella referenza comandi del monitor sottostante sono presenti solo nella build RomDisk / picoZ80.

Ottenere RFS

Immagini ROM e immagini di scheda SD precostruite sono disponibili nella directory releases/ del repository Gitea. Possono essere programmate direttamente senza strumenti di build. Se si desidera compilare dai sorgenti, il modo piu semplice e lo script di setup automatizzato per la propria piattaforma: setup_RFS.sh (macOS / Linux / WSL), setup_RFS_windows_native.ps1 (Windows, nativo — senza WSL, consigliato) oppure setup_RFS_windows.ps1 (Windows tramite WSL2 / Ubuntu). Ciascuno e autonomo — copiare l'unico file per la propria piattaforma ed eseguirlo; installa gli strumenti richiesti, scarica i contenuti e puo eseguire la prima build per voi, senza richiedere una conoscenza approfondita della toolchain. Vedere la Guida tecnica — Sistema di build per la procedura passo passo (incluse le domande poste da ciascuno script).
Per le build RomDisk e picoZ80 sono necessari i seguenti file:
  • MROM_ROMDISK_256.bin o MROM_PICOZ80_256.bin — Immagine Monitor ROM (programmare nel chip Flash Monitor ROM).
  • USER_ROM_256.bin, USER_ROM_II_256.bin, USER_ROM_III_256.bin — Immagini User ROM (programmare nei chip Flash User ROM 1–3).
  • SHARP_MZ80A_RFS_CPM_IMAGE_1.img — Immagine scheda SD (scrivere su una scheda micro/standard SD con dd).
Per la build SFD-700:
  • SFD700_256.bin — Immagine ROM SFD-700 combinata (programmare nella Flash ROM del SFD-700 mkII).

Programmazione delle Flash ROM
Le immagini ROM vengono scritte su chip Flash SST39SF040 (512 KB) usando un programmatore TL866 II+ o compatibile con l'utility minipro:
# Monitor ROM (build 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.bin

Scrittura della scheda SD
Scrivere l'immagine combinata della scheda SD direttamente sulla scheda usando dd su Linux. Non e necessario alcun partizionamento — l'immagine SDCFS inizia al settore 0:
# Sostituire /dev/sdX con il nodo dispositivo della scheda SD:
dd if=roms/SHARP_MZ80A_RFS_CPM_IMAGE_1.img of=/dev/sdX bs=512
sync

Primo avvio

Dopo aver inserito i chip ROM programmati e (per RomDisk) la scheda SD, accendere lo Sharp MZ-80A. Apparira il familiare banner di accesso SA-1510. Quando RFS ha inizializzato con successo il file system della scheda SD, il banner viene integrato con "+ RFS":
SHARP MZ-80A
Monitor SA-1510  + RFS

*
Il * e il prompt del monitor. Tutti i comandi SA-1510 originali sono disponibili invariati. Digitare H per visualizzare una schermata di aiuto paginata con tutti i comandi RFS. Premere Spazio per avanzare nelle pagine.
Se il testo + RFS e assente, la scheda SD non e stata rilevata — controllare che la scheda sia correttamente inserita, formattata e contenga l'immagine SDCFS al settore 0.

Riferimento comandi del monitor

Il set completo dei comandi RFS e elencato di seguito. I comandi portano (R) se sono presenti solo nella build RomDisk / picoZ80. Tutti gli altri comandi sono disponibili in ogni build.
Comando Parametri Descrizione
0 .. 9 (R) Selezionare l’unita scheda SD RFS attiva (0–9). Il numero di unita selezionato e mostrato nel prompt.
40 (R) Passare alla modalita di visualizzazione a 40 colonne (richiede l’upgrade Kuma 40/80 o il Video Module).
80 (R) Passare alla modalita di visualizzazione a 80 colonne (richiede l’upgrade Kuma 40/80 o il Video Module).
ASM <address> Assemblatore Z80 interattivo. Inserire mnemonici assembly direttamente in memoria a partire dall’indirizzo esadecimale indicato. Premere Invio su una riga vuota per uscire.
B Attivare/disattivare il segnale acustico della tastiera.
BASIC Cercare Sharp BASIC SA-5510RFS sull’unita SD attiva o ROM, caricarlo ed eseguirlo.
C [<byte>] Cancellare (inizializzare) la memoria da 0x1200 alla cima della RAM con 0x00 o il valore esadecimale a 8 bit fornito.
CP <src> <dst> <size> Copiare un blocco di memoria. Tutti gli argomenti sono valori esadecimali a 4 cifre: indirizzo sorgente, indirizzo destinazione, conteggio byte.
CPM Cercare CP/M 2.2 sull’unita SD attiva o ROM, caricarlo e avviarlo.
D <addr> [<addr2>] Dump esadecimale e ASCII della memoria da <addr> a <addr2> (o 20 righe senza indirizzo di fine). Premere un tasto per continuare, U per pagina precedente, X per uscire. Ripetere D senza indirizzo per continuare dall’ultima posizione.
DASM <addr> [<addr2>] Disassemblare il codice macchina Z80 a partire da <addr>.
DUC (R) [H\|T] <name> o <file#> Visualizzare il contenuto di un file della scheda SD. Predefinito: dump esadecimale. DUCH: esadecimale con info header MZF. DUCT: dump testo (solo ASCII stampabile).
EC (R) <name> o <file#> Cancellare un file dall’unita scheda SD attiva per nome o numero di file.
F / FL [<drive>] Avviare dall’unita floppy specificata. Se omesso, viene richiesto di inserire un numero di unita. Legge il settore di avvio, carica il programma di avvio in memoria e lo esegue.
FD [<drive>] Visualizzare l’elenco della directory di un floppy disk. Il numero di unita opzionale seleziona l’unita 1–4 (predefinito: 1). Mostra nome file, indirizzo di caricamento, indirizzo di esecuzione e dimensione file per ogni file sul disco.
FC <start> <end> <exec> Salvare un’area di memoria in un file su floppy disk. Viene richiesto un nome file e numero di unita.
FD2T <name> o <file#> Copiare un file dal floppy disk al nastro cassetta (CMT).
T2FD Caricare un programma dal nastro (CMT) e salvarlo su floppy disk.
f Eseguire il codice di avvio floppy AFI originale a 0xF000.
H Visualizzare la schermata di aiuto dei comandi (paginata; premere Spazio per avanzare).
IC (R) Elenco paginato dei file sull’unita scheda SD attiva. Mostra numero file e nome.
IN <port>[,<port>...] Leggere una o piu porte I/O. Ogni porta e un indirizzo esadecimale a 2 o 4 cifre. I valori sono stampati come esadecimale a 2 cifre. Esempio: IN00E8 legge la porta 0x00E8; IN00,01,02 legge le porte 0x00, 0x01 e 0x02.
IR Elenco paginato dei programmi memorizzati nelle unita Flash ROM.
J <address> Saltare a (eseguire da) l’indirizzo esadecimale indicato.
L / LT [<filename>] Caricare un file dal nastro (CMT) ed eseguirlo.
LTNX [<filename>] Caricare un file dal nastro (CMT) senza eseguirlo.
LR <name> o <file#> Caricare un programma dalla ROM per nome o numero di file ed eseguirlo.
LRNX <name> o <file#> Caricare un programma dalla ROM per nome o numero di file senza eseguirlo.
LC (R) <name> o <file#> Caricare un programma dall’unita SD attiva ed eseguirlo.
LCNX (R) <name> o <file#> Caricare un programma dall’unita SD attiva senza eseguirlo.
M <address> Editor di memoria interattivo. Mostra il valore byte corrente; digitare un nuovo valore esadecimale e Invio, o solo Invio per saltare. Premere X per uscire.
OUT <port>:<value>[,<port>:<value>...] Scrivere su una o piu porte I/O. Ogni porta e un indirizzo esadecimale a 2 o 4 cifre, seguito da due punti e un valore esadecimale a 2 cifre. Esempio: OUT00E8:FF scrive 0xFF sulla porta 0x00E8; OUTD0:01,D1:80 scrive 0x01 sulla porta 0xD0 e 0x80 sulla porta 0xD1.
P Eseguire un test sulla stampante collegata.
R Eseguire un test della memoria DRAM.
S / ST <start> <end> <exec> Salvare un’area di memoria su nastro (CMT). Viene richiesto un nome file. Esempio: S120020001203 salva 0x1200–0x2000, indirizzo di esecuzione 0x1203.
SC (R) <start> <end> <exec> Salvare un’area di memoria sull’unita scheda SD attiva. Viene richiesto un nome file.
SD2T (R) <name> o <file#> Copiare un file dall’unita SD attiva al nastro (CMT).
T Testare il chip timer 8253.
T2SD (R) Caricare un programma dal nastro (CMT) e scriverlo sull’unita scheda SD attiva.
V Verificare un salvataggio su nastro confrontandolo con i dati attualmente in memoria.
X (R) Passare alla variante ROM hi-load affinche la DRAM copra 0x0000–0xCFFF.

Utilizzo delle unita scheda SD

RFS fornisce dieci unita logiche (0–9) memorizzate sequenzialmente sulla scheda SD. Ogni unita contiene fino a 256 file di massimo 64 KB ciascuno. L'unita attualmente attiva e mostrata nel prompt del monitor — digitare una singola cifra (0–9) per cambiare unita.

Visualizzazione della directory
Digitare IC per elencare i file sull'unita SD attiva. Ogni voce mostra un numero di file esadecimale a due cifre seguito dal nome file. In modalita a 80 colonne, vengono mostrate quattro colonne contemporaneamente.
* IC

00 INVADERS     01 DEFENDER     02 GALAXIANS    03 SPACE ATTACK
04 PACMAN       05 SNAKE        ...
Press SPACE to continue, X to exit
Digitare IR per elencare i programmi memorizzati nelle unita Flash ROM. Questi sono di sola lettura e disponibili indipendentemente dalla presenza di una scheda SD.

Caricamento programmi
I programmi possono essere caricati per nome o per numero di file. Il caricamento per numero e piu veloce poiche non e richiesta alcuna corrispondenza di stringhe:
* LC INVADERS       ; Caricare INVADERS dall'unita SD attiva ed eseguire
* LCNX INVADERS     ; Caricare senza eseguire (utile per il debug)
* LC 04             ; Caricare il file numero 04 dall'unita SD attiva
* LR SA-5510RFS     ; Caricare SA-5510RFS dall'unita ROM ed eseguire

Salvataggio programmi
Usare SC per salvare un'area di memoria sull'unita scheda SD attiva. La sintassi e identica al comando nastro S — indirizzo di inizio, indirizzo di fine e indirizzo di esecuzione come valori esadecimali a 4 cifre uniti, poi viene richiesto un nome file:
* SC120020001200
FILE NAME? MYPROG
SAVED

Trasferimento nastro ↔ scheda SD
I file possono essere copiati tra nastro (CMT) e scheda SD in entrambe le direzioni:
  • T2SD — carica il prossimo file dal nastro e lo salva sull'unita scheda SD attiva. Verra richiesto di premere Play sul lettore di nastro prima dell'inizio del caricamento.
  • SD2T <name> — carica il file specificato dall'unita scheda SD attiva e lo scrive su nastro esattamente come se fosse una copia da nastro a nastro. Premere Record sul lettore di nastro quando richiesto.
Questo rende semplice archiviare il software su nastro esistente su scheda SD o distribuire software su nastro dalla collezione su scheda SD.

Utilizzo di BASIC

Sharp SA-5510RFS BASIC
L'interprete Sharp SA-5510 BASIC originale e stato esteso con comandi LOAD, SAVE e DIR compatibili con RFS. E memorizzato nell'unita ROM come SA-5510RFS. Avviarlo con:
* BASIC
Una volta in BASIC, sono disponibili i seguenti comandi estesi:
Comando Esempio Descrizione
LOAD LOAD "TEST" Caricare il programma TEST dall’unita attiva ed eseguirlo.
LOAD LOAD "3:TEST" Caricare TEST dall’unita RFS 3, rendendo l’unita 3 attiva.
LOAD LOAD "C:TEST" Caricare TEST dalla cassetta interna (CMT).
LOAD LOAD Caricare il prossimo file sequenziale dall’unita attiva.
SAVE SAVE "TEST" Sovrascrivere un file esistente TEST sull’unita attiva o crearlo.
SAVE SAVE "3:TEST" Salvare sull’unita RFS 3 e renderla attiva.
SAVE SAVE "C:TEST" Salvare su CMT con il nome TEST.
DIR DIR Elencare la directory della scheda SD per l’unita attiva.
DIR DIR "3:" Elencare l’unita 3 e renderla attiva.

Microsoft BASIC
Microsoft BASIC (basato su NASCOM BASIC v4.7b) e incluso in tre varianti:
  • MS-BASIC(MZ-80A) — hardware MZ-80A standard, solo archiviazione su cassetta.
  • MS-BASIC(RFS40) — RFS con display a 40 colonne; aggiunge comandi CLOAD, CSAVE, DIR su scheda SD.
  • MS-BASIC(RFS80) — RFS con display a 80 colonne; aggiunge comandi CLOAD, CSAVE, DIR su scheda SD.
Caricare la variante appropriata dall'unita ROM:
* LR MS-BASIC(RFS40)
Le estensioni RFS in MS-BASIC funzionano in modo simile a SA-5510RFS — il prefisso qualificatore di unita seleziona un numero di unita RFS prima del nome file:
CLOAD "8:STARTREK"    ; Caricare STARTREK dall'unita RFS 8
CSAVE "8:MYPROG"      ; Salvare sull'unita RFS 8
DIR "5:"              ; Elencare l'unita 5
Il comando ANSITERM abilita o disabilita il processore terminale ANSI integrato (attivo per impostazione predefinita). Questo permette ai programmi BASIC che usano sequenze di escape ANSI per il posizionamento del cursore e i colori di funzionare senza modifiche:
ANSITERM 0    ; Disabilitare l'elaborazione ANSI
ANSITERM 1    ; Abilitare l'elaborazione ANSI (predefinito)

Conversione di programmi cassetta NASCOM
I programmi NASCOM BASIC distribuiti come file immagine cassetta (.cas) possono essere convertiti per l'uso sull'MZ-80A con lo strumento nasconv fornito. Rimuove i dati di framing del nastro e rimappa i valori dei token per corrispondere all'estensione RFS MS-BASIC:
nasconv --image startrek.cas --output startrek.bas \
        --nasaddr 0x10fa --loadaddr 0x4341

BASIC MZ-5Z008 (Quick Disk)
Il BASIC Sharp MZ-5Z008 Quick Disk originale e stato aggiornato per supportare lo storage su scheda SD RFS e l'accesso ai file di rete accanto ai suoi dispositivi nativi Floppy Disk, Quick Disk e Cassette Tape. La versione RFS si avvia con il titolo "BASIC 5Z-008BRFS". Questo BASIC funziona anche sull'MZ-1500 tramite la persona MZ-1500 del picoZ80, fornendo lo stesso supporto dispositivi incluso l'accesso di rete NETx:. Usare un prefisso di dispositivo per selezionare il dispositivo di archiviazione di destinazione:
Comando Esempio Descrizione
LOAD LOAD "RFS1:MYPROG" Caricare un programma BASIC dall’unita scheda SD RFS 1 (mappata sull’unita SD 4). Le unita RFS 1–7 sono disponibili.
SAVE SAVE "RFS1:MYPROG" Salvare il programma corrente sull’unita scheda SD RFS 1.
DIR DIR RFS1: Elencare la directory dell’unita scheda SD RFS 1.
LOAD LOAD "FD1:MYPROG" Caricare un programma BASIC dall’unita floppy disk 1.
SAVE SAVE "FD1:MYPROG" Salvare il programma corrente sull’unita floppy disk 1.
DIR DIR FD1: Elencare la directory del floppy disk per l’unita 1.
LOAD LOAD "QD:MYPROG" Caricare un programma BASIC dal Quick Disk.
SAVE SAVE "QD:MYPROG" Salvare il programma corrente sul Quick Disk.
DIR DIR QD: Elencare la directory del Quick Disk.
LOAD LOAD "NET1:MYPROG" Caricare un programma BASIC dall’unita 1 del file server di rete. Unita 1–7 disponibili. Richiede la scheda Celestite e netfs.py sul PC.
SAVE SAVE "NET1:MYPROG" Salvare il programma corrente sull’unita 1 del file server di rete.
DIR DIR NET1: Elencare la directory dall’unita 1 del file server di rete.
LOAD LOAD "CMT:MYPROG" Caricare un programma BASIC dal nastro cassetta.
SAVE SAVE "CMT:MYPROG" Salvare il programma corrente sul nastro cassetta.

BASIC MZ-2Z009E (Floppy Disk)
Il BASIC Sharp MZ-2Z009E Floppy Disk originale e stato aggiornato per supportare lo storage su scheda SD RFS accanto ai suoi dispositivi nativi Floppy Disk e Quick Disk. La versione RFS si avvia con il titolo "BASIC 2Z-009ERFS". Usare un prefisso di dispositivo per selezionare il dispositivo di archiviazione di destinazione:
Comando Esempio Descrizione
LOAD LOAD "RFS1:MYPROG" Caricare un programma BASIC dall’unita scheda SD RFS 1 (mappata sull’unita SD 4). Le unita RFS 1–7 sono disponibili.
SAVE SAVE "RFS1:MYPROG" Salvare il programma corrente sull’unita scheda SD RFS 1.
DIR DIR RFS1: Elencare la directory dell’unita scheda SD RFS 1.
LOAD LOAD "FD1:MYPROG" Caricare un programma BASIC dall’unita floppy disk 1.
SAVE SAVE "FD1:MYPROG" Salvare il programma corrente sull’unita floppy disk 1.
DIR DIR FD1: Elencare la directory del floppy disk per l’unita 1.
LOAD LOAD "QD:MYPROG" Caricare un programma BASIC dal Quick Disk.
SAVE SAVE "QD:MYPROG" Salvare il programma corrente sul Quick Disk.
DIR DIR QD: Elencare la directory del Quick Disk.

Esecuzione di CP/M 2.2

CP/M 2.2 e disponibile su tutte le piattaforme RFS. Dal prompt del monitor:
* CPM
RFS cerchera CP/M sull'unita scheda SD attiva o ROM, lo carichera e trasferira il controllo al CCP CP/M. Il prompt cambia in A>.
CP/M fornisce 47 KB di RAM programma. Il CBIOS risiede interamente in ROM, lasciando tutti i 47 KB liberi per le applicazioni. Fino a sette unita disco CP/M (A:–G:) sono disponibili a seconda dell'hardware:
Unita CP/M Contenuto
A: Scheda SD — programmi di sistema CP/M, Turbo Pascal, Hi-Soft C, ecc.
B: Scheda SD — utilita Pascal e dischi Pascal User Group
C: Scheda SD — PLI, PLM, WordStar
D:–G: Scheda SD — collezione Grant Searle CP/M (C0–F9)
Lettura di dischi CP/M MZ-80K originali. Quando l'host e dotato di una scheda floppy MZ80AFI (su un vero MZ-80A, oppure sul picoZ80 in esecuzione con la persona MZ-80A o MZ-80K), il CP/M RFS puo ora avviare e leggere direttamente dischi CP/M MZ-80K originali, non convertiti. Il formato del disco viene rilevato automaticamente dalla sua dimensione di settore a 128 byte e dai dati non invertiti; tali dischi vengono montati come le unita CP/M floppy, tipicamente C: e D:, cosi che i loro file possano essere elencati e letti dal prompt CP/M (DIR C:, DIR D:) senza alcuna conversione preliminare. Le lettere di unita esatte dipendono da quali altre unita (ROM, scheda SD) sono presenti — vedere la guida CP/M per RFS.
L'emulatore terminale ANSI integrato mappa le sequenze di escape ANSI standard sullo schermo MZ-80A, facendo funzionare correttamente senza modifiche la maggior parte delle applicazioni CP/M che si basano sul controllo dello schermo. La tastiera include l'auto-ripetizione e una corretta mappatura di tutti i tasti MZ-80A in ASCII.
Per tornare al monitor RFS da CP/M, usare un warm boot (Ctrl+C dal CCP) che ricarica il CCP. Un'uscita completa al monitor SA-1510 richiede un reset hardware.

Modalita di visualizzazione

Se un upgrade Kuma 40/80 colonne o il Video Module colore 40/80 e installato sull'MZ-80A, RFS puo passare tra le modalita di visualizzazione a 40 e 80 colonne dal prompt del monitor:
* 40       ; Passare al display a 40 colonne
* 80       ; Passare al display a 80 colonne
In modalita a 80 colonne i comandi directory IC e IR visualizzano quattro colonne, rendendo molto piu rapido trovare i programmi a occhio. La variante MS-BASIC(RFS80) e costruita specificamente per l'uso a 80 colonne, con tutto l'output a schermo che assume 80 colonne.
Senza l'upgrade 40/80, il firmware RFS si avvia e funziona comunque normalmente — questi comandi sono semplicemente non disponibili.

Organizzazione della scheda SD

L'immagine precostruita della scheda SD organizza i programmi in dieci unita RFS e sette immagini disco CP/M:
Unita RFS Contenuto
0 Programmi in codice macchina comuni e MZ-80A
1 Programmi in codice macchina MZ-80K
2 Programmi in codice macchina MZ-700
3 Programmi in codice macchina MZ-800 / MZ-1500
4 Programmi in codice macchina MZ-80B / MZ-2000
5 Programmi BASIC, tipo 2 (MZ-80A)
6 Programmi BASIC, tipo 2 (MZ-80K)
7 Programmi BASIC, tipo 5 (MZ-700 / MZ-800)
8 Programmi vari
9 Programmi vari

Risoluzione dei problemi

Il monitor si avvia ma "RFS" non e mostrato nel banner

  • Scheda SD non inserita — controllare che la scheda sia inserita nel lettore sulla scheda RomDisk.
  • Scheda SD non formattata correttamente — l'immagine SDCFS deve iniziare al settore 0, senza tabella partizioni. Riscrivere con dd come descritto sopra.
  • Immagine ROM errata — verificare di aver programmato i chip Monitor ROM e User ROM con le immagini corrette per la piattaforma hardware di destinazione (RomDisk vs picoZ80).
  • SPI non collegato — sulle schede RomDisk v2+, assicurarsi che HW_SPI_ENA = 1 in rfs_definitions.asm prima della compilazione. Sulle schede v1 usare PP_SPI_ENA = 1.

La macchina si blocca o si comporta in modo erratico dopo il caricamento di un programma

  • Incompatibilita delle immagini ROM — la Monitor ROM e la User ROM devono essere compilate dallo stesso albero sorgente e per lo stesso target. Mescolare immagini di build diverse puo produrre indirizzi di commutazione banchi imprevedibili.
  • Il programma sovrascrive lo spazio di lavoro RFS — i programmi che usano tutto lo spazio 0x1200–0xCFFF possono sovrascrivere gli stub di commutazione banchi RFS a 0xE800. I programmi progettati per il monitor originale generalmente non dovrebbero essere influenzati; i programmi automodificanti o quelli che saltano a indirizzi arbitrari potrebbero esserlo.

CP/M non si avvia o mostra errori

  • Immagine scheda SD incompleta — le immagini disco CP/M iniziano al limite di 256 MB sulla scheda SD. Assicurarsi che l'immagine completa SHARP_MZ80A_RFS_CPM_IMAGE_1.img sia stata scritta — scritture parziali lasceranno l'area disco CP/M non inizializzata.
  • L'unita attiva non ha un settore di avvio CP/M — selezionare l'unita 0 prima di digitare CPM, poiche l'immagine precostruita colloca il settore di avvio CP/M sull'unita 0.
  • Floppy non collegato — se si usa la build SFD-700 senza floppy collegato, le operazioni CBIOS relative al floppy andranno in timeout. Usare invece l'avvio CPM dalla scheda SD.

Risorsa Link
Pagina del progetto RFS /it/sharpmz-upgrades-rfs/
Guida tecnica RFS /it/sharpmz-upgrades-rfs-technicalguide/
Guida per sviluppatori RFS /it/sharpmz-upgrades-rfs-developersguide/
Galleria RFS /it/sharpmz-upgrades-rfs-gallery/
SFD-700 mkII (controller floppy) /it/sfd700/
picoZ80 (sostituzione Z80 RP2350) /it/picoz80/
Assemblatore GLASS Z80 Incluso in tools/glass.jar
Manuale NASCOM Basic Incluso nella directory docs/ del repository