ROM-Dateisystem (RFS) — Benutzerhandbuch
RFS-Benutzerhandbuch
Das Rom Filing System (RFS) ist ein in Z80-Assembler geschriebenes Firmware-Paket, das einen Sharp MZ-80A (und kompatible Hardware) in einen modern wirkenden Retro-Computer verwandelt. Es ersetzt die originale Monitor- und User-ROM durch eine erweiterte Firmware, die ein SD-Karten-Dateisystem, CP/M 2.2-Boot, mehrere BASIC-Interpreter, einen integrierten Z80-Assembler und Disassembler sowie mehr als 30 neue Monitorbefehle hinzufuegt — waehrend die vertraute SA-1510
* Eingabeaufforderung und alle Originalbefehle erhalten bleiben.
Dieses Handbuch behandelt alles, was fuer die Installation und taegliche Nutzung von RFS benoetigt wird. Fuer Hardware-Architektur und Build-System-Details siehe den Technischen Leitfaden. Fuer Quellcode-Interna und Firmware-Entwicklung siehe das Entwicklerhandbuch.
Unterstuetzte Hardware
RFS unterstuetzt vier Hardware-Plattformen, die jeweils zur Kompilierzeit ausgewaehlt werden. Die resultierenden ROM-Images und der Funktionsumfang unterscheiden sich leicht zwischen den Zielen:
| Plattform | Beschreibung | Hauptmerkmale |
|---|---|---|
| RomDisk-Karte | Urspruengliches RFS-Ziel. Eine Platine, die in die MZ-80A-Erweiterung eingesetzt wird und die Monitor- und User-ROM-Sockel durch bis zu 4x512 KB Flash-RAM, 512 KB SRAM und einen SDXC-Kartenleser ersetzt. | Voller Funktionsumfang: SD-Karte, alle Monitorbefehle, CP/M, BASIC-Varianten, Bandoperationen |
| SFD-700 | Die SFD-700 mkII Floppy-Disk-Schnittstellenkarte. RFS belegt den Flash-ROM-Bereich der Karte. | Floppy-Boot, Floppy-Verzeichnis, ROM-basierte Programme, Z80-Assembler/Disassembler; keine SD-Karten-Befehle |
| picoZ80 | Die RP2350-basierte Z80-Ersatzplatine. RFS laeuft in deren emuliertem ROM-Bereich, unter der dem Host praesentierten Maschinen-Persona — MZ-80A oder, jetzt neu, der Sharp MZ-80K (der dieselben Sharp-Schnittstellenkarten wie der MZ-80A sowie seine native MZ-80FD/T3444M-Floppy verwenden kann). | Voller Funktionsumfang, entsprechend RomDisk; auf der MZ-80A/MZ-80K-Persona mit einer MZ80AFI-Karte kann CP/M originale MZ-80K-Disks als C:/D: lesen |
| tranZPUter FusionX | FPGA-basierte Z80-Erweiterungsplatine. RFS laeuft in deren Flash-ROM-Bereich. | Voller Funktionsumfang |
Befehle, die in der folgenden Monitorbefehlsreferenz mit (R) gekennzeichnet sind, sind nur im RomDisk-/picoZ80-Build vorhanden.
RFS beziehen
Vorgefertigte ROM-Images und SD-Karten-Images sind im Verzeichnis
Programmierung der Flash-ROMs
releases/ des Gitea-Repositories verfuegbar. Diese koennen direkt ohne Build-Werkzeuge programmiert werden. Wenn Sie aus dem Quellcode bauen moechten, ist der einfachste Weg das automatisierte Setup-Skript fuer Ihre Plattform: setup_RFS.sh (macOS / Linux / WSL), setup_RFS_windows_native.ps1 (Windows, nativ — kein WSL, empfohlen) oder setup_RFS_windows.ps1 (Windows ueber WSL2 / Ubuntu). Jedes ist eigenstaendig — kopieren Sie die eine Datei fuer Ihre Plattform und fuehren Sie sie aus; es installiert die benoetigten Werkzeuge, holt die Inhalte und kann den ersten Build fuer Sie ausfuehren, ohne dass tiefgehende Kenntnisse der Toolchain erforderlich sind. Den Schritt-fuer-Schritt-Ablauf (einschliesslich der Fragen, die jedes Skript stellt) finden Sie im Technischen Leitfaden — Build-System.
Fuer die RomDisk- und picoZ80-Builds werden folgende Dateien benoetigt:
MROM_ROMDISK_256.binoderMROM_PICOZ80_256.bin— Monitor-ROM-Image (in den Monitor-ROM-Flash-Chip programmieren).USER_ROM_256.bin,USER_ROM_II_256.bin,USER_ROM_III_256.bin— User-ROM-Images (in User-ROM-Flash-Chips 1–3 programmieren).SHARP_MZ80A_RFS_CPM_IMAGE_1.img— SD-Karten-Image (mitddauf eine Micro/Standard-SD-Karte schreiben).
SFD700_256.bin— Kombiniertes SFD-700-ROM-Image (in den SFD-700 mkII Flash-ROM programmieren).
ROM-Images werden mit einem TL866 II+ oder kompatiblen Programmer und dem
minipro-Werkzeug auf SST39SF040 (512 KB) Flash-Chips geschrieben:
# Monitor ROM (RomDisk-Build): 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.binBeschreiben der SD-Karte
Schreiben Sie das kombinierte SD-Karten-Image direkt mit
dd unter Linux auf die Karte. Keine Partitionierung erforderlich — das SDCFS-Image beginnt bei Sektor 0:
# Ersetzen Sie /dev/sdX durch Ihren SD-Karten-Geraeteknoten: dd if=roms/SHARP_MZ80A_RFS_CPM_IMAGE_1.img of=/dev/sdX bs=512 sync
Erster Start
Nach dem Einsetzen der programmierten ROM-Chips und (bei RomDisk) der SD-Karte schalten Sie den Sharp MZ-80A ein. Das vertraute SA-1510-Anmeldebanner erscheint. Wenn RFS das SD-Karten-Dateisystem erfolgreich initialisiert hat, wird das Banner um "
+ RFS" ergaenzt:
SHARP MZ-80A Monitor SA-1510 + RFS *
Das
* ist die Monitoreingabeaufforderung. Alle originalen SA-1510-Befehle sind unveraendert verfuegbar. Geben Sie H ein, um einen paginierten Hilfebildschirm mit allen RFS-Befehlen anzuzeigen. Druecken Sie Leertaste, um durch die Seiten zu blaettern.
Wenn der Text + RFS fehlt, wurde die SD-Karte nicht erkannt — pruefen Sie, ob die Karte korrekt eingelegt, formatiert und das SDCFS-Image bei Sektor 0 enthaelt.
Monitorbefehlsreferenz
Der vollstaendige RFS-Befehlssatz ist unten aufgefuehrt. Befehle tragen (R), wenn sie nur im RomDisk-/picoZ80-Build vorhanden sind. Alle anderen Befehle sind in jeder Build verfuegbar.
| Befehl | Parameter | Beschreibung |
|---|---|---|
| 0 .. 9 (R) | — | Das aktive RFS-SD-Kartenlaufwerk waehlen (0–9). Die gewaehlte Laufwerksnummer wird in der Eingabeaufforderung angezeigt. |
| 40 (R) | — | In den 40-Spalten-Anzeigemodus wechseln (erfordert Kuma 40/80-Upgrade oder Video Module). |
| 80 (R) | — | In den 80-Spalten-Anzeigemodus wechseln (erfordert Kuma 40/80-Upgrade oder Video Module). |
| ASM | <address> |
Interaktiver Z80-Assembler. Assembler-Mnemonics direkt ab der angegebenen Hex-Adresse in den Speicher eingeben. Leere Zeile mit Enter beendet den Assembler. |
| B | — | Tastatur-Signalton ein- oder ausschalten. |
| BASIC | — | Sharp BASIC SA-5510RFS auf dem aktiven SD-Laufwerk oder ROM suchen, laden und ausfuehren. |
| C | [<byte>] |
Speicher von 0x1200 bis zum RAM-Ende mit 0x00 oder dem angegebenen 8-Bit-Hex-Wert initialisieren. |
| CP | <src> <dst> <size> |
Einen Speicherblock kopieren. Alle Argumente sind 4-stellige Hex-Werte: Quelladresse, Zieladresse, Byteanzahl. |
| CPM | — | CP/M 2.2 auf dem aktiven SD-Laufwerk oder ROM suchen, laden und starten. |
| D | <addr> [<addr2>] |
Hex- und ASCII-Dump des Speichers von <addr> bis <addr2> (oder 20 Zeilen ohne Endadresse). Taste druecken fuer mehr, U fuer Seite zurueck, X zum Beenden. D ohne Adresse wiederholen, um ab der letzten Position fortzufahren. |
| DASM | <addr> [<addr2>] |
Z80-Maschinencode ab <addr> disassemblieren. |
| DUC (R) | [H\|T] <name> oder <file#> |
Inhalt einer SD-Karten-Datei ausgeben. Standard: Hex-Dump. DUCH: Hex mit MZF-Header-Info. DUCT: Textausgabe (nur druckbare ASCII-Zeichen). |
| EC (R) | <name> oder <file#> |
Eine Datei vom aktiven SD-Kartenlaufwerk nach Name oder Dateinummer loeschen. |
| F / FL | [<drive>] |
Vom angegebenen Floppy-Laufwerk booten. Falls weggelassen, wird zur Eingabe einer Laufwerksnummer aufgefordert. Liest den Bootsektor, laedt das Boot-Programm in den Speicher und fuehrt es aus. |
| FD | [<drive>] |
Verzeichnisliste einer Floppy-Disk anzeigen. Optionale Laufwerksnummer waehlt Laufwerk 1–4 (Standard: 1). Zeigt Dateiname, Ladeadresse, Ausfuehrungsadresse und Dateigroesse fuer jede Datei. |
| FC | <start> <end> <exec> |
Einen Speicherbereich in eine Floppy-Disk-Datei speichern. Sie werden nach Dateiname und Laufwerksnummer gefragt. |
| FD2T | <name> oder <file#> |
Eine Datei von Floppy-Disk auf Kassettenband (CMT) kopieren. |
| T2FD | — | Ein Programm vom Band (CMT) laden und auf Floppy-Disk speichern. |
| f | — | Den originalen Floppy-AFI-Bootcode bei 0xF000 ausfuehren. |
| H | — | Hilfebildschirm anzeigen (paginiert; Leertaste zum Weiter). |
| IC (R) | — | Paginierte Verzeichnisliste der Dateien auf dem aktiven SD-Kartenlaufwerk. Zeigt Dateinummer und Dateiname. |
| IN | <port>[,<port>...] |
Einen oder mehrere I/O-Ports lesen. Jeder Port ist eine 2- oder 4-stellige Hex-Adresse. Werte werden als 2-stellige Hex-Werte ausgegeben. Beispiel: IN00E8 liest Port 0x00E8; IN00,01,02 liest Ports 0x00, 0x01 und 0x02. |
| IR | — | Paginierte Verzeichnisliste der im Flash-ROM gespeicherten Programme. |
| J | <address> |
Zur angegebenen Hex-Adresse springen (ausfuehren). |
| L / LT | [<filename>] |
Eine Datei vom Band (CMT) laden und ausfuehren. |
| LTNX | [<filename>] |
Eine Datei vom Band (CMT) laden, ohne sie auszufuehren. |
| LR | <name> oder <file#> |
Ein Programm aus dem ROM nach Name oder Dateinummer laden und ausfuehren. |
| LRNX | <name> oder <file#> |
Ein Programm aus dem ROM nach Name oder Dateinummer laden, ohne es auszufuehren. |
| LC (R) | <name> oder <file#> |
Ein Programm vom aktiven SD-Kartenlaufwerk laden und ausfuehren. |
| LCNX (R) | <name> oder <file#> |
Ein Programm vom aktiven SD-Kartenlaufwerk laden, ohne es auszufuehren. |
| M | <address> |
Interaktiver Speichereditor. Zeigt den aktuellen Bytewert; neuen Hex-Wert eingeben und Enter druecken, oder nur Enter zum Ueberspringen. X zum Beenden. |
| OUT | <port>:<value>[,<port>:<value>...] |
Auf einen oder mehrere I/O-Ports schreiben. Jeder Port ist eine 2- oder 4-stellige Hex-Adresse, gefolgt von einem Doppelpunkt und einem 2-stelligen Hex-Wert. Beispiel: OUT00E8:FF schreibt 0xFF an Port 0x00E8; OUTD0:01,D1:80 schreibt 0x01 an Port 0xD0 und 0x80 an Port 0xD1. |
| P | — | Einen Druckertest ausfuehren. |
| R | — | DRAM-Speichertest ausfuehren. |
| S / ST | <start> <end> <exec> |
Einen Speicherbereich auf Band (CMT) speichern. Sie werden nach einem Dateinamen gefragt. Beispiel: S120020001203 speichert 0x1200–0x2000, Ausfuehrungsadresse 0x1203. |
| SC (R) | <start> <end> <exec> |
Einen Speicherbereich auf dem aktiven SD-Kartenlaufwerk speichern. Sie werden nach einem Dateinamen gefragt. |
| SD2T (R) | <name> oder <file#> |
Eine Datei vom aktiven SD-Kartenlaufwerk auf Band im CMT kopieren. |
| T | — | Den 8253-Timer-Chip testen. |
| T2SD (R) | — | Ein Programm vom Band (CMT) laden und auf das aktive SD-Kartenlaufwerk schreiben. |
| V | — | Eine Bandaufnahme mit den aktuellen Daten im Speicher vergleichen. |
| X (R) | — | Zur Hi-Load-ROM-Variante wechseln, sodass DRAM den Bereich 0x0000–0xCFFF umfasst. |
Verwendung der SD-Kartenlaufwerke
RFS bietet zehn logische Laufwerke (0–9), die sequenziell auf der SD-Karte gespeichert sind. Jedes Laufwerk fasst bis zu 256 Dateien von jeweils bis zu 64 KB. Das aktuell aktive Laufwerk wird in der Monitoreingabeaufforderung angezeigt — geben Sie eine einzelne Ziffer (0–9) ein, um das Laufwerk zu wechseln.
Verzeichnis anzeigen
Geben Sie IC ein, um die Dateien auf dem aktiven SD-Laufwerk aufzulisten. Jeder Eintrag zeigt eine zweistellige Hex-Dateinummer gefolgt vom Dateinamen. Im 80-Spalten-Modus werden vier Spalten gleichzeitig angezeigt.
* IC 00 INVADERS 01 DEFENDER 02 GALAXIANS 03 SPACE ATTACK 04 PACMAN 05 SNAKE ... Press SPACE to continue, X to exit
Geben Sie IR ein, um die im Flash-ROM gespeicherten Programme aufzulisten. Diese sind schreibgeschuetzt und unabhaengig davon verfuegbar, ob eine SD-Karte eingelegt ist.
Programme laden
Programme koennen nach Name oder Dateinummer geladen werden. Das Laden nach Nummer ist schneller, da kein String-Vergleich erforderlich ist:
* LC INVADERS ; INVADERS vom aktiven SD-Laufwerk laden und ausfuehren * LCNX INVADERS ; Laden ohne Ausfuehrung (nuetzlich zum Debuggen) * LC 04 ; Dateinummer 04 vom aktiven SD-Laufwerk laden * LR SA-5510RFS ; SA-5510RFS vom ROM-Laufwerk laden und ausfuehrenProgramme speichern
Verwenden Sie SC, um einen Speicherbereich auf dem aktiven SD-Kartenlaufwerk zu speichern. Die Syntax ist identisch mit dem Band-Befehl S — Startadresse, Endadresse und Ausfuehrungsadresse als 4-stellige Hex-Werte zusammengeschrieben, dann werden Sie nach einem Dateinamen gefragt:
* SC120020001200 FILE NAME? MYPROG SAVEDBand- und SD-Karten-Transfer
Dateien koennen in beiden Richtungen zwischen Band (CMT) und SD-Karte kopiert werden:
- T2SD — laedt die naechste Datei vom Band und speichert sie auf dem aktiven SD-Kartenlaufwerk. Sie werden aufgefordert, Play am Bandgeraet zu druecken, bevor der Ladevorgang beginnt.
- SD2T
<name>— laedt die benannte Datei vom aktiven SD-Kartenlaufwerk und schreibt sie auf Band, genau wie bei einer Band-zu-Band-Kopie. Druecken Sie Record am Bandgeraet, wenn Sie dazu aufgefordert werden.
BASIC verwenden
Sharp SA-5510RFS BASIC
Der originale Sharp SA-5510 BASIC-Interpreter wurde um RFS-faehige LOAD-, SAVE- und DIR-Befehle erweitert. Er ist auf dem ROM-Laufwerk als SA-5510RFS gespeichert. Starten Sie ihn mit:
* BASIC
Im BASIC sind folgende erweiterte Befehle verfuegbar:
| Befehl | Beispiel | Beschreibung |
|---|---|---|
| LOAD | LOAD "TEST" |
Programm TEST vom aktiven Laufwerk laden und ausfuehren. |
| LOAD | LOAD "3:TEST" |
TEST von RFS-Laufwerk 3 laden und Laufwerk 3 als aktiv setzen. |
| LOAD | LOAD "C:TEST" |
TEST von der internen Kassette (CMT) laden. |
| LOAD | LOAD |
Die naechste sequenzielle Datei vom aktiven Laufwerk laden. |
| SAVE | SAVE "TEST" |
Vorhandene Datei TEST auf dem aktiven Laufwerk ueberschreiben oder neu erstellen. |
| SAVE | SAVE "3:TEST" |
Auf RFS-Laufwerk 3 speichern und Laufwerk 3 als aktiv setzen. |
| SAVE | SAVE "C:TEST" |
Auf CMT mit dem Namen TEST speichern. |
| DIR | DIR |
SD-Kartenverzeichnis fuer das aktive Laufwerk auflisten. |
| DIR | DIR "3:" |
Laufwerk 3 auflisten und als aktiv setzen. |
Microsoft BASIC (basierend auf NASCOM BASIC v4.7b) ist in drei Varianten enthalten:
- MS-BASIC(MZ-80A) — Standard-MZ-80A-Hardware, nur Kassettenspeicher.
- MS-BASIC(RFS40) — RFS mit 40-Spalten-Anzeige; fuegt SD-Karten-Befehle CLOAD, CSAVE, DIR hinzu.
- MS-BASIC(RFS80) — RFS mit 80-Spalten-Anzeige; fuegt SD-Karten-Befehle CLOAD, CSAVE, DIR hinzu.
* LR MS-BASIC(RFS40)
Die RFS-Erweiterungen in MS-BASIC funktionieren aehnlich wie bei SA-5510RFS — das Laufwerks-Praefix waehlt eine RFS-Laufwerksnummer vor dem Dateinamen:
CLOAD "8:STARTREK" ; STARTREK von RFS-Laufwerk 8 laden CSAVE "8:MYPROG" ; Auf RFS-Laufwerk 8 speichern DIR "5:" ; Laufwerk 5 auflisten
Der ANSITERM-Befehl aktiviert oder deaktiviert den integrierten ANSI-Terminal-Prozessor (standardmaessig ein). Dieser ermoeglicht es BASIC-Programmen mit ANSI-Escape-Sequenzen fuer Cursorpositionierung und Farben, unveraendert zu laufen:
ANSITERM 0 ; ANSI-Verarbeitung deaktivieren ANSITERM 1 ; ANSI-Verarbeitung aktivieren (Standard)NASCOM-Kassettenprogramme konvertieren
NASCOM BASIC-Programme, die als Kassettenimage-Dateien (
.cas) verteilt werden, koennen mit dem mitgelieferten nasconv-Werkzeug fuer die Verwendung auf dem MZ-80A konvertiert werden. Es entfernt Band-Framing-Daten und bildet Token-Werte fuer die RFS MS-BASIC-Erweiterung neu ab:
nasconv --image startrek.cas --output startrek.bas \
--nasaddr 0x10fa --loadaddr 0x4341
BASIC MZ-5Z008 (Quick Disk)
Das originale Sharp MZ-5Z008 Quick Disk BASIC wurde erweitert, um RFS-SD-Kartenspeicher und Netzwerk-Dateizugriff neben den nativen Floppy-Disk-, Quick-Disk- und Kassettengeraeten zu unterstuetzen. Die RFS-Version startet mit dem Titel "
BASIC 5Z-008BRFS". Dieses BASIC laeuft auch auf dem MZ-1500 ueber die picoZ80 MZ-1500-Persona und bietet die gleiche Geraeteunterstuetzung einschliesslich NETx:-Netzwerkzugriff. Verwenden Sie ein Geraete-Praefix zur Auswahl des Zielspeichergeraets:
| Befehl | Beispiel | Beschreibung |
|---|---|---|
| LOAD | LOAD "RFS1:MYPROG" |
BASIC-Programm von RFS-SD-Kartenlaufwerk 1 laden (abgebildet auf SD-Laufwerk 4). RFS-Laufwerke 1–7 sind verfuegbar. |
| SAVE | SAVE "RFS1:MYPROG" |
Aktuelles Programm auf RFS-SD-Kartenlaufwerk 1 speichern. |
| DIR | DIR RFS1: |
Verzeichnis von RFS-SD-Kartenlaufwerk 1 anzeigen. |
| LOAD | LOAD "FD1:MYPROG" |
BASIC-Programm von Floppy-Disk-Laufwerk 1 laden. |
| SAVE | SAVE "FD1:MYPROG" |
Aktuelles Programm auf Floppy-Disk-Laufwerk 1 speichern. |
| DIR | DIR FD1: |
Floppy-Disk-Verzeichnis fuer Laufwerk 1 anzeigen. |
| LOAD | LOAD "QD:MYPROG" |
BASIC-Programm von Quick Disk laden. |
| SAVE | SAVE "QD:MYPROG" |
Aktuelles Programm auf Quick Disk speichern. |
| DIR | DIR QD: |
Quick Disk-Verzeichnis anzeigen. |
| LOAD | LOAD "NET1:MYPROG" |
BASIC-Programm vom Netzwerk-Dateiserver-Einheit 1 laden. Einheiten 1–7 verfuegbar. Erfordert Celestite-Platine und netfs.py auf PC. |
| SAVE | SAVE "NET1:MYPROG" |
Aktuelles Programm auf Netzwerk-Dateiserver-Einheit 1 speichern. |
| DIR | DIR NET1: |
Verzeichnis von Netzwerk-Dateiserver-Einheit 1 anzeigen. |
| LOAD | LOAD "CMT:MYPROG" |
BASIC-Programm von Kassettenband laden. |
| SAVE | SAVE "CMT:MYPROG" |
Aktuelles Programm auf Kassettenband speichern. |
Das originale Sharp MZ-2Z009E Floppy Disk BASIC wurde erweitert, um RFS-SD-Kartenspeicher neben den nativen Floppy-Disk- und Quick-Disk-Geraeten zu unterstuetzen. Die RFS-Version startet mit dem Titel "
BASIC 2Z-009ERFS". Verwenden Sie ein Geraete-Praefix zur Auswahl des Zielspeichergeraets:
| Befehl | Beispiel | Beschreibung |
|---|---|---|
| LOAD | LOAD "RFS1:MYPROG" |
BASIC-Programm von RFS-SD-Kartenlaufwerk 1 laden (abgebildet auf SD-Laufwerk 4). RFS-Laufwerke 1–7 sind verfuegbar. |
| SAVE | SAVE "RFS1:MYPROG" |
Aktuelles Programm auf RFS-SD-Kartenlaufwerk 1 speichern. |
| DIR | DIR RFS1: |
Verzeichnis von RFS-SD-Kartenlaufwerk 1 anzeigen. |
| LOAD | LOAD "FD1:MYPROG" |
BASIC-Programm von Floppy-Disk-Laufwerk 1 laden. |
| SAVE | SAVE "FD1:MYPROG" |
Aktuelles Programm auf Floppy-Disk-Laufwerk 1 speichern. |
| DIR | DIR FD1: |
Floppy-Disk-Verzeichnis fuer Laufwerk 1 anzeigen. |
| LOAD | LOAD "QD:MYPROG" |
BASIC-Programm von Quick Disk laden. |
| SAVE | SAVE "QD:MYPROG" |
Aktuelles Programm auf Quick Disk speichern. |
| DIR | DIR QD: |
Quick Disk-Verzeichnis anzeigen. |
CP/M 2.2 ausfuehren
CP/M 2.2 ist auf allen RFS-Plattformen verfuegbar. Von der Monitoreingabeaufforderung:
* CPM
RFS sucht CP/M auf dem aktiven SD-Kartenlaufwerk oder ROM, laedt es und uebergibt die Kontrolle an den CP/M CCP. Die Eingabeaufforderung wechselt zu
A>.
CP/M bietet 47 KB Programm-RAM. Das CBIOS befindet sich vollstaendig in der ROM und laesst alle 47 KB fuer Anwendungen frei. Bis zu sieben CP/M-Laufwerke (A:–G:) sind je nach Hardware verfuegbar:
| CP/M-Laufwerk | Inhalt |
|---|---|
| A: | SD-Karte — CP/M-Systemprogramme, Turbo Pascal, Hi-Soft C usw. |
| B: | SD-Karte — Pascal-Dienstprogramme und Pascal User Group Disks |
| C: | SD-Karte — PLI, PLM, WordStar |
| D:–G: | SD-Karte — Grant Searle CP/M-Sammlung (C0–F9) |
Originale MZ-80K CP/M-Disks lesen. Wenn der Host mit einer MZ80AFI-Floppy-Karte ausgestattet ist (auf einem echten MZ-80A oder auf dem picoZ80 mit der MZ-80A- oder MZ-80K-Persona), kann RFS CP/M jetzt originale, unkonvertierte MZ-80K CP/M-Disks direkt booten und lesen. Das Disk-Format wird anhand seiner 128-Byte-Sektorgroesse und der nicht invertierten Daten automatisch erkannt; solche Disks werden als die Floppy-CP/M-Laufwerke eingebunden, typischerweise C: und D:, sodass ihre Dateien an der CP/M-Eingabeaufforderung (
DIR C:, DIR D:) ohne vorherige Konvertierung aufgelistet und gelesen werden koennen. Welche Laufwerksbuchstaben genau zugewiesen werden, haengt davon ab, welche anderen Laufwerke (ROM, SD-Karte) vorhanden sind — siehe den Leitfaden CP/M fuer RFS.
Der integrierte ANSI-Terminal-Emulator bildet Standard-ANSI-Escape-Sequenzen auf den MZ-80A-Bildschirm ab, sodass die meisten CP/M-Anwendungen, die auf Bildschirmsteuerung angewiesen sind, ohne Aenderung korrekt funktionieren. Die Tastatur verfuegt ueber Auto-Repeat und korrekte Zuordnung aller MZ-80A-Tasten zu ASCII.
Um vom CP/M zum RFS-Monitor zurueckzukehren, verwenden Sie einen Warmstart (Ctrl+C vom CCP), der den CCP neu laedt. Ein vollstaendiger Ruecksprung zum SA-1510-Monitor erfordert einen Hardware-Reset.
Anzeigemodi
Wenn ein Kuma 40/80-Spalten-Upgrade oder das 40/80-Farb-Video-Module im MZ-80A installiert ist, kann RFS an der Monitoreingabeaufforderung zwischen 40- und 80-Spalten-Anzeigemodus wechseln:
* 40 ; In den 40-Spalten-Modus wechseln * 80 ; In den 80-Spalten-Modus wechseln
Im 80-Spalten-Modus zeigen die IC- und IR-Verzeichnisbefehle vier Spalten an, was das Auffinden von Programmen deutlich beschleunigt. Die MS-BASIC(RFS80)-Variante ist speziell fuer den 80-Spalten-Betrieb gebaut.
Ohne das 40/80-Upgrade startet und funktioniert die RFS-Firmware normal — diese Befehle sind einfach nicht verfuegbar.
SD-Karten-Organisation
Das vorgefertigte SD-Karten-Image organisiert Programme in zehn RFS-Laufwerke und sieben CP/M-Disk-Images:
| RFS-Laufwerk | Inhalt |
|---|---|
| 0 | Allgemeine und MZ-80A Maschinencode-Programme |
| 1 | MZ-80K Maschinencode-Programme |
| 2 | MZ-700 Maschinencode-Programme |
| 3 | MZ-800 / MZ-1500 Maschinencode-Programme |
| 4 | MZ-80B / MZ-2000 Maschinencode-Programme |
| 5 | BASIC-Programme, Typ 2 (MZ-80A) |
| 6 | BASIC-Programme, Typ 2 (MZ-80K) |
| 7 | BASIC-Programme, Typ 5 (MZ-700 / MZ-800) |
| 8 | Sonstige Programme |
| 9 | Sonstige Programme |
Fehlerbehebung
Monitor startet, aber "RFS" wird nicht im Banner angezeigt
- SD-Karte nicht eingelegt — pruefen Sie, ob die Karte im Leser auf der RomDisk-Platine sitzt.
- SD-Karte nicht korrekt formatiert — das SDCFS-Image muss bei Sektor 0 beginnen, ohne Partitionstabelle. Schreiben Sie es mit
ddwie oben beschrieben erneut. - Falsches ROM-Image — stellen Sie sicher, dass Sie die Monitor-ROM- und User-ROM-Chips mit den richtigen Images fuer Ihr Hardware-Ziel (RomDisk vs picoZ80) programmiert haben.
- SPI nicht verbunden — auf RomDisk v2+-Platinen stellen Sie sicher, dass
HW_SPI_ENA = 1inrfs_definitions.asmvor dem Build gesetzt ist. Auf v1-Platinen verwenden SiePP_SPI_ENA = 1.
Maschine stuerzt ab oder verhaelt sich unregelmaessig nach dem Laden eines Programms
- ROM-Image-Fehlanpassung — die Monitor-ROM und User-ROM muessen aus dem gleichen Quellbaum und fuer das gleiche Ziel gebaut sein. Das Mischen von Images aus verschiedenen Builds kann unvorhersehbare Bank-Switch-Adressen erzeugen.
- Programm ueberschreibt den RFS-Arbeitsbereich — Programme, die den gesamten Bereich 0x1200–0xCFFF nutzen, koennen die RFS-Bank-Switch-Stubs bei 0xE800 ueberschreiben. Programme, die fuer den Original-Monitor entworfen wurden, sollten generell nicht betroffen sein; selbstmodifizierende Programme oder solche, die zu beliebigen Adressen springen, koennten betroffen sein.
CP/M startet nicht oder zeigt Fehler
- SD-Karten-Image unvollstaendig — CP/M-Disk-Images beginnen an der 256-MB-Grenze auf der SD-Karte. Stellen Sie sicher, dass das vollstaendige
SHARP_MZ80A_RFS_CPM_IMAGE_1.imggeschrieben wurde — unvollstaendige Schreibvorgaenge lassen den CP/M-Disk-Bereich uninitialisiert. - Aktives Laufwerk hat keinen CP/M-Bootsektor — waehlen Sie Laufwerk 0, bevor Sie CPM eingeben, da das vorgefertigte Image den CP/M-Bootsektor auf Laufwerk 0 platziert.
- Floppy nicht angeschlossen — wenn Sie den SFD-700-Build verwenden und kein Floppy angeschlossen ist, werden Floppy-bezogene CBIOS-Operationen eine Zeitueberschreitung haben. Verwenden Sie stattdessen den SD-Karten-CPM-Boot.
Referenz-Links
| Ressource | Link |
|---|---|
| RFS-Projektseite | /de/sharpmz-upgrades-rfs/ |
| RFS Technischer Leitfaden | /de/sharpmz-upgrades-rfs-technicalguide/ |
| RFS Entwicklerhandbuch | /de/sharpmz-upgrades-rfs-developersguide/ |
| RFS Galerie | /de/sharpmz-upgrades-rfs-gallery/ |
| SFD-700 mkII (Floppy-Controller) | /sfd700/ |
| picoZ80 (RP2350 Z80-Ersatz) | /de/picoz80/ |
| GLASS Z80-Assembler | Enthalten in tools/glass.jar |
| NASCOM Basic Manual | Enthalten im Repository docs/-Verzeichnis |