MZ-80A RomDisk — Benutzerhandbuch

RomDisk Benutzerhandbuch

Das Sharp MZ-80A RomDisk ist eine PCB-Tochterkarte, die direkt in die Monitor-ROM- und User-ROM-Sockel des Sharp MZ-80A gesteckt wird, oder in den Sharp MZ-1200, sofern dieser mit einem User-ROM-Sockel ausgestattet ist. Es ersetzt diese beiden Nur-Lese-Chips durch bis zu vier 512KB SST39SF040 Flash-RAM-Bausteine und einen optionalen 512KB AS6C4008 Static RAM, wodurch der Rechner ein gebanktes ROM-Laufwerk von bis zu 2MB, eine Hardware-SPI-Schnittstelle und einen Micro-SD-Kartenslot fuer Massenspeicher erhaelt. Die darauf laufende Firmware -- das Rom Filing System (RFS) -- bietet einen erweiterten Monitor, ein SD-Karten-Dateisystem mit zehn Laufwerken zu je 16MB, CP/M 2.2 Boot und ueber dreissig neue Monitor-Befehle, waehrend der vertraute SA-1510 * Prompt und alle Originalbefehle erhalten bleiben.
Dieses Handbuch behandelt die physische Hardware: was die RomDisk-Platine ist, wie man sie installiert, wie man die Flash-Chips programmiert, wie man eine SD-Karte vorbereitet und wie man die RFS-Firmware im taeglichen Betrieb verwendet. Fuer Details zur Firmware-Architektur und zum Build-System siehe den RFS Technischen Leitfaden. Fuer Quellcode-Interna siehe das RFS Entwicklerhandbuch.

Was Sie benoetigen

Bevor Sie beginnen, stellen Sie folgende Materialien zusammen:
Gegenstand Hinweise
RomDisk PCB v2.1 empfohlen (fertig montiert oder als Bausatz). v1.1 und v2.0 werden ebenfalls mit dem entsprechenden Firmware-Build unterstuetzt.
Sharp MZ-80A oder MZ-1200 Das RomDisk passt physisch nur in den MZ-80A oder den MZ-1200 (der MZ-1200 benoetigt einen nachgeruesteten User-ROM-Sockel). Der MZ-700 hat eine aehnliche Softwarearchitektur, verfuegt aber nicht ueber die physischen ROM-Sockel und den internen Platz fuer die Platine.
TL866 II+ oder kompatibler EPROM-Programmierer Erforderlich zum Beschreiben der Flash-ROM-Chips ausserhalb der Platine. Das Open-Source-Werkzeug minipro wird in den folgenden Beispielen verwendet.
Micro-SD-Karte (mindestens 1 GB, FAT-formatiert) Das vorgefertigte SD-Karten-Image ist ca. 512MB gross. Jede Standard-Micro-SD-Karte ab 1GB funktioniert.
Vorgefertigte ROM- und SD-Karten-Images Verfuegbar im releases/-Verzeichnis des Gitea-Repositorys.
Antistatische Vorkehrungen Antistatik-Armband oder -Matte. Fassen Sie Flash-Chips und die Platine nur nach dem Erden an.
Chipzieher oder kleiner Schlitzschraubendreher Zum Entfernen der vorhandenen ROM-Chips aus den Motherboard-Sockeln.

Physische Installation

Die RomDisk-Platine wird im Sharp MZ-80A anstelle der beiden Werks-ROM-Chips installiert. Die folgende Anleitung gilt fuer das Standard-MZ-80A-Tischmodell. Nehmen Sie sich Zeit -- der Vorgang ist unkompliziert, erfordert aber Sorgfalt im Umgang mit den Chip-Sockeln.

Oeffnen des Geraets
  1. Schalten Sie den MZ-80A aus und ziehen Sie das Netzkabel ab.
  2. Drehen Sie das Geraet um. Entfernen Sie die zwei Schrauben auf der Unterseite des Gehaeuses.
  3. Heben Sie vorsichtig die obere Abdeckung ab und legen Sie sie beiseite. Die Hauptplatine ist nun freigelegt.
  4. Lokalisieren Sie IC2 (das Monitor-ROM, ein 24-Pin-DIP nahe der Mitte links auf der Platine, auf 0x0000-0x0FFF abgebildet) und IC3 (das User-ROM, ein 24-Pin-DIP auf 0xE800-0xEFFF abgebildet).

Entfernen der vorhandenen ROMs
Hebeln Sie mit einem Chipzieher oder einem Schlitzschraubendreher vorsichtig IC2 und IC3 aus ihren Sockeln. Arbeiten Sie von beiden Enden in kleinen Schritten -- heben Sie ein Ende ein wenig an, dann das andere, abwechselnd, bis der Chip herausgleitet. Einseitiges Forcieren verbiegt die Pins. Bewahren Sie beide Chips an einem sicheren, antistatischen Ort auf; sie werden nach der RomDisk-Installation nicht mehr benoetigt, sind aber als Rueckfalloption wertvoll.

Einsetzen der RomDisk-Platine
  1. Die RomDisk-Platine traegt auf ihrer Unterseite zwei Saetze von DIP-Lifter-Pin-Arrays -- ein 24-Pin-Array fuer den Monitor-ROM-Sockel (IC2) und ein 24-Pin-Array fuer den User-ROM-Sockel (IC3). Diese werden direkt in die leeren Sockel gesteckt, die durch die entfernten ROMs frei geworden sind.
  2. Ueberpruefen Sie die Pin-1-Ausrichtung vor dem Einsetzen. Pin 1 an jedem Lifter-Array muss mit der Pin-1-Markierung (Kerbe oder Punkt) am entsprechenden Motherboard-Sockel uebereinstimmen. Ein verkehrt herum eingesetztes PCB verhindert den Systemstart und kann Komponenten beschaedigen.
  3. Druecken Sie die Platine fest und gleichmaessig in beide Sockel gleichzeitig, bis die Pin-Arrays vollstaendig eingesetzt sind. Die Platine wird erhoeht ueber der Motherboard-Oberflaeche sitzen -- das ist normal.
  4. Inspizieren Sie beide Steckverbinder von der Seite, um zu bestaetigen, dass alle Pins eingerastet sind und keine verbogen sind oder benachbarte Pins ueberbruecken.
  5. Die RomDisk-Platine wird ueber das Motherboard hinausragen. Pruefen Sie, dass keine Kabel, Steckverbinder oder Bauteile auf der Unterseite der oberen Abdeckung gegen die Platine druecken, wenn das Gehaeuse wieder zusammengebaut wird.

Verlegung des SD-Kartenslots
Die RomDisk v2.0 und v2.1 Platinen enthalten einen Micro-SD-Kartenslot. Da das MZ-80A-Gehaeuse fast vollstaendig geschlossen ist, muss der Slot von aussen oder durch eine Oeffnung im Gehaeuse zugaenglich sein. Gaengige Ansaetze sind:
  • Verlegung des Socket-Kabels zur vorhandenen Kassettenlaufwerk-Oeffnung auf der rechten Seite des Geraets, wo bereits eine ausreichend grosse Luecke fuer den Zugang vorhanden ist.
  • Einschneiden eines kleinen Schlitzes in der linken oder hinteren Gehaeuseseite (typischerweise 15 x 2 mm) und Einkleben des Sockets buendig mit der Aussenseite.
Beide Ansaetze funktionieren gut. Stellen Sie bei der gewaehlten Methode sicher, dass das SD-Karten-Socket-Kabel beim Schliessen des Gehaeuses nicht geknickt oder eingeklemmt wird.

Schliessen des Geraets
Fuehren Sie vor dem Schliessen eine letzte Sichtkontrolle durch: Die RomDisk-Platine sitzt vollstaendig in beiden Sockeln, Pin 1 ist an beiden Steckverbindern ausgerichtet, und nichts wird die Unterseite der oberen Abdeckung beruehren. Setzen Sie die obere Abdeckung wieder auf und befestigen Sie die beiden Bodenschrauben. Nicht zu fest anziehen -- die Kunststoffabstandshalter sind bei aelteren Geraeten empfindlich.

Programmieren der Flash-ROMs

Die Flash-ROM-Chips auf der RomDisk-Platine muessen vor der Installation der Platine programmiert werden. Das Monitor-ROM-Flash (U1/SST39SF040 im Monitor-Sockel) kann nicht im eingebauten Zustand beschrieben werden, da die Sharp MZ-80A Hardware Schreibzyklen zum Monitor-ROM-Adressbereich blockiert. Alle Chips muessen in einem externen EPROM-Programmierer programmiert werden.
Die vorgefertigten ROM-Images sind im releases/-Verzeichnis des RFS Gitea-Repositorys verfuegbar. Laden Sie die folgenden Dateien herunter:
Datei Chip Sockel
MROM_ROMDISK_256.bin SST39SF040 U1 — Monitor ROM Flash (obligatorisch)
USER_ROM_256.bin SST39SF040 U4 — User ROM Flash 1 (obligatorisch)
USER_ROM_II_256.bin SST39SF040 U5 — User ROM Flash 2 (optional, v2.0+)
USER_ROM_III_256.bin SST39SF040 U6 — User ROM Flash 3 (optional, v2.0+)
Verwenden Sie einen TL866 II+ oder kompatiblen Programmierer mit dem minipro Kommandozeilen-Werkzeug. Entfernen Sie jeden Flash-Chip von der RomDisk-Platine, setzen Sie ihn in den ZIF-Sockel des Programmierers ein und fuehren Sie den entsprechenden Befehl aus:
# Monitor ROM Flash (U1) programmieren:
minipro -p SST39SF040 -w MROM_ROMDISK_256.bin

# User ROM Flash 1 (U4) programmieren:
minipro -p SST39SF040 -w USER_ROM_256.bin

# User ROM Flash 2 (U5) programmieren — optional:
minipro -p SST39SF040 -w USER_ROM_II_256.bin

# User ROM Flash 3 (U6) programmieren — optional:
minipro -p SST39SF040 -w USER_ROM_III_256.bin
Nach dem Programmieren jedes Chips verifiziert minipro automatisch die geschriebenen Daten gegen die Quelldatei. Eine Verification OK-Meldung bestaetigt, dass der Chip korrekt beschrieben wurde. Setzen Sie jeden programmierten Chip wieder in seinen Sockel auf der RomDisk-Platine ein.
Das Monitor-Flash enthaelt acht 4KB-Baenke. Die User-ROM-Flash-Chips enthalten jeweils zwoelf 2KB-Baenke. Zusammen liefern sie die vollstaendige RFS-Firmware, die ROM-Laufwerksprogramme (BASIC, CP/M-Loader, Assembler usw.) und den gebankten Arbeitsbereich fuer SD-Karten- und CP/M-Operationen.

Hinweise zu Hardware-Versionen
Es existieren drei Versionen der RomDisk-Platine. Die ROM-Images sind ueber alle Versionen hinweg kompatibel, aber die Hardware-Funktionen unterscheiden sich:
Version Wesentliche Merkmale
v1.1 Ein 512KB Flash im Monitor-Sockel, eines im User-Sockel. Ein einfacher Latch uebernimmt die Bankauswahl. Keine SD-Karte. Nur fuer ROM-Laufwerk-Nutzung geeignet.
v2.0 Fuegt einen Coded Latch hinzu (74HCT191-Zaehler, der 16 aufeinanderfolgende Lesezugriffe auf die Adressen 0xEFF8-0xEFFF erfordert, um die Steuerregister freizuschalten), zweiten und dritten User-ROM-Flash-Slot (U5, U6), optionalen 512KB SRAM (AS6C4008) und einen SD-Karten-Slot mit sowohl Software-Bitbang-SPI als auch einer dedizierten Hardware-SPI-Schaltung bei 8MHz.
v2.1 Bugfix-Release. Behebt eine Interferenz zwischen der DRAM-Refresh-Adressdekodierung und dem Coded-Latch-Reset-Signal durch Hinzufuegen eines UND-Gatters (aus Dioden aufgebaut) und Neuverdrahtung von 0xEFF9 als Latch-Loeschleitung. Alle v2.0-Funktionen bleiben erhalten. Dies ist die empfohlene Version fuer neue Aufbauten.

Beschreiben des SD-Karten-Images

Das vorgefertigte SD-Karten-Image buendelt zehn RFS-Laufwerke (je 16MB, nummeriert 0-9) und sieben CP/M 2.2 Disk-Images in einer einzigen Roh-Binaerdatei. Es wird direkt auf die SD-Karte ab Sektor 0 geschrieben -- es wird keine Partitionstabelle erstellt und kein Formatierungsschritt ist vor dem Schreiben erforderlich.
Laden Sie SHARP_MZ80A_RFS_CPM_IMAGE_1.img aus dem releases/-Verzeichnis des Gitea-Repositorys herunter. Stecken Sie die Micro-SD-Karte in Ihren Host-Computer und identifizieren Sie den Geraeteknoten (z.B. /dev/sdb unter Linux). Ueberpruefen Sie den Geraeteknoten sorgfaeltig -- das Schreiben auf das falsche Geraet ueberschreibt Daten unwiderruflich.
# Linux / macOS — /dev/sdX durch Ihren SD-Karten-Geraeteknoten ersetzen:
dd if=SHARP_MZ80A_RFS_CPM_IMAGE_1.img of=/dev/sdX bs=4M status=progress
sync
Das status=progress-Flag gibt einen laufenden Byte-Zaehler aus, damit Sie bestaetigen koennen, dass der Schreibvorgang fortschreitet. Der sync-Befehl schreibt alle ausstehenden Daten, bevor die Karte entfernt wird. Unter macOS verwenden Sie bs=4m (Kleinbuchstaben) und lassen status=progress weg, falls Ihre Version von dd dies nicht unterstuetzt.
Sobald der Schreibvorgang abgeschlossen ist, werfen Sie die Karte sicher von Ihrem Host-Computer aus und stecken Sie sie in den RomDisk SD-Kartenslot.

SD-Karten-Layout
Das Image organisiert den Speicher wie folgt:
Bereich Offset Inhalt
RFS Drive 0 0 MB Allgemeine und MZ-80A Maschinencode-Programme
RFS Drive 1 16 MB MZ-80K Maschinencode-Programme
RFS Drive 2 32 MB MZ-700 Maschinencode-Programme
RFS Drive 3 48 MB MZ-800 / MZ-1500 Maschinencode-Programme
RFS Drive 4 64 MB MZ-80B / MZ-2000 Maschinencode-Programme
RFS Drive 5 80 MB BASIC-Programme, Typ 2 (MZ-80A)
RFS Drive 6 96 MB BASIC-Programme, Typ 2 (MZ-80K)
RFS Drive 7 112 MB BASIC-Programme, Typ 5 (MZ-700 / MZ-800)
RFS Drive 8 128 MB Verschiedene Programme
RFS Drive 9 144 MB Verschiedene Programme
CP/M Disk-Images 256 MB Laufwerke A:-G: (Turbo Pascal, Hi-Soft C, WordStar, Grant Searle Sammlung usw.)

Erster Start

Mit den programmierten Flash-Chips und der in beiden ROM-Sockeln sitzenden RomDisk-Platine schalten Sie den MZ-80A ein. Das Monitor-ROM erkennt die RFS-Firmware an der Adresse 0xE800 und fuehrt sie aus. RFS initialisiert sich und haengt "+ RFS vx.xx" an das SA-1510 Startbanner an:
SHARP MZ-80A
Monitor SA-1510  + RFS

* 
Das * ist der Monitor-Prompt. Jeder originale SA-1510-Befehl ist unveraendert verfuegbar. Geben Sie H ein und druecken Sie Enter, um den paginierten RFS-Befehlshilfebildschirm anzuzeigen. Druecken Sie Leertaste, um durch die Seiten zu blaettern.
Die + RFS-Zeile erscheint bei jeder RFS-Initialisierung -- sie ist nicht von der SD-Karte abhaengig. Nach der Anzeige des Banners versucht RFS, die SD-Karte zu initialisieren. Falls die Karte fehlt oder die Initialisierung fehlschlaegt, wird ein Fehlercode unter dem Banner ausgegeben. Der * Prompt erscheint weiterhin und alle ROM-basierten Befehle (IR, LR usw.) bleiben auch ohne funktionierende SD-Karte verfuegbar.

RFS Monitor-Befehle

Die vollstaendige Liste der RFS-Monitor-Befehle ist unten aufgefuehrt. Alle originalen SA-1510-Befehle bleiben verfuegbar und sind hier nicht aufgefuehrt. Adressen und Zaehler werden immer als 4-stellige Hexadezimalwerte eingegeben, sofern nicht anders angegeben.
Befehl Parameter Beschreibung
0 .. 9 Wechselt das aktive RFS SD-Kartenlaufwerk zur angegebenen Nummer (0-9). Geben Sie die Ziffer ein und druecken Sie Enter.
40 Wechselt in den 40-Spalten-Anzeigemodus. Erfordert eine Kuma 40/80-Spalten-Erweiterung oder ein Videomodul.
80 Wechselt in den 80-Spalten-Anzeigemodus. Erfordert eine Kuma 40/80-Spalten-Erweiterung oder ein Videomodul.
B Aktiviert oder deaktiviert den Tastatureingabe-Piepton (wechselt bei jeder Befehlseingabe).
BASIC Sucht den BASIC SA-5510 Interpreter auf dem aktiven SD-Kartenlaufwerk oder im ROM, laedt und fuehrt ihn aus.
C [Wert] Loescht (initialisiert) den Speicher von 0x1200 bis 0xD000 mit 0x00 oder mit dem angegebenen 8-Bit-Hex-Wert.
CP Quelle Ziel Groesse Kopiert einen Speicherblock. Alle drei Argumente sind 4-stellige Hex-Werte: Quelladresse, Zieladresse, Bytezaehler.
CPM Sucht CP/M 2.2 auf dem aktiven SD-Kartenlaufwerk oder im ROM, laedt und startet es.
D Adr [Adr2] Hex- und ASCII-Dump des Speichers von Adr bis Adr2 (oder 20 Zeilen ohne Endadresse). Beliebige Taste zum Fortfahren, D zum Blaettern, U zum Zurueckblaettern, X zum Beenden. D ohne Adresse wiederholen, um ab der letzten Position fortzufahren.
EC Name oder Nr. Loescht eine Datei vom aktiven SD-Kartenlaufwerk, identifiziert durch Name oder zweistellige Hex-Dateinummer wie im IC-Verzeichnis angezeigt.
F [Laufwerk] Startet von Diskette. Ohne Laufwerksnummer werden Sie zur Eingabe aufgefordert.
f Fuehrt den originalen Disketten-AFI-Boot-ROM-Code an Adresse 0xF000 direkt aus.
H Zeigt den paginierten Befehlshilfebildschirm an. Leertaste zum Weiter, X zum Beenden.
IC Paginierte Verzeichnisauflistung der Dateien auf dem aktiven SD-Kartenlaufwerk. Zeigt Dateinummer und Dateiname. Leertaste zum Blaettern, X zum Beenden.
IR Paginierte Verzeichnisauflistung der im Flash-ROM gespeicherten Programme. Diese sind schreibgeschuetzt und immer verfuegbar.
J Adresse Springt zu (fuehrt aus ab) der angegebenen Hex-Adresse.
L / LT [Dateiname] Laedt eine Datei vom Band (CMT) und fuehrt sie aus. Mit Dateiname wird das Band nach diesem Programm durchsucht; ansonsten wird die naechste Datei geladen.
LTNX [Dateiname] Laedt eine Datei vom Band (CMT) ohne Ausfuehrung.
LR Name oder Nr. Laedt ein Programm vom Flash-ROM-Laufwerk nach Name oder Dateinummer und fuehrt es aus.
LRNX Name oder Nr. Laedt ein Programm vom Flash-ROM-Laufwerk nach Name oder Dateinummer ohne Ausfuehrung.
LC Name oder Nr. Laedt ein Programm vom aktiven SD-Kartenlaufwerk nach Name oder Dateinummer und fuehrt es aus.
LCNX Name oder Nr. Laedt ein Programm vom aktiven SD-Kartenlaufwerk nach Name oder Dateinummer ohne Ausfuehrung.
M Adresse Interaktiver Speichereditor. Zeigt den aktuellen Bytewert an der angegebenen Adresse an; geben Sie einen neuen Hex-Wert ein und druecken Sie Enter zum Aendern, oder druecken Sie nur Enter um den Wert beizubehalten und zur naechsten Adresse weiterzugehen. X zum Beenden.
P Fuehrt einen Test am angeschlossenen Drucker aus.
R Fuehrt einen umfassenden DRAM-Speichertest ueber den Bereich 0x1200-0xCFFF aus.
S / ST Start Ende Exec Speichert einen Speicherbereich auf Band (CMT). Alle drei Argumente sind 4-stellige Hex-Werte ohne Leerzeichen (z.B. S120020001200). Anschliessend wird nach einem Dateinamen gefragt.
SC Start Ende Exec Speichert einen Speicherbereich auf das aktive SD-Kartenlaufwerk. Argumente wie bei S. Es wird nach einem Dateinamen gefragt.
SD2T Name oder Nr. Kopiert eine Datei vom aktiven SD-Kartenlaufwerk auf Band (CMT). Druecken Sie Aufnahme am Kassettenlaufwerk, wenn Sie dazu aufgefordert werden.
T Testet den 8253-Timer-Chip.
T2SD Laedt ein Programm vom Band (CMT) und schreibt es auf das aktive SD-Kartenlaufwerk. Druecken Sie Play am Kassettenlaufwerk, wenn Sie dazu aufgefordert werden.
V Verifiziert eine gerade auf Band gespeicherte Datei gegen die aktuell im Speicher befindlichen Daten.
X Wechselt zur Hi-Load-ROM-Variante und aendert das DRAM-Mapping so, dass es 0x0000-0xCFFF umfasst.

Verwendung der SD-Kartenlaufwerke

RFS bietet zehn logische SD-Kartenlaufwerke mit den Nummern 0 bis 9. Jedes Laufwerk belegt einen 16MB-Bereich auf der SD-Karte und enthaelt ein flaches Verzeichnis mit bis zu 256 Dateien, die jeweils im Sharp MZF-Format gespeichert sind. Dateien koennen bis zu 64KB gross sein.
Geben Sie die Laufwerksnummer (0-9) am Monitor-Prompt ein und druecken Sie Enter, um dieses Laufwerk zu aktivieren. Die Befehle IC und IR arbeiten immer auf dem aktuell aktiven Laufwerk.
Dateien auflisten
Geben Sie IC ein, um das Verzeichnis des aktiven SD-Kartenlaufwerks anzuzeigen. 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        06 FROGGER      07 BREAKOUT
...
Leertaste zum Fortfahren, X zum Beenden
Geben Sie IR ein, um die im Flash-ROM gespeicherten Programme aufzulisten. Diese sind schreibgeschuetzt und verfuegbar, unabhaengig davon, ob eine SD-Karte eingesetzt ist.
Programme laden
Programme koennen nach Name oder nach der zweistelligen Hex-Dateinummer aus dem IC-Verzeichnis geladen werden. Das Laden nach Nummer ist etwas schneller, da keine Namenssuche erforderlich ist:
* LC INVADERS       ; Laden und Ausfuehren von INVADERS vom aktiven SD-Laufwerk
* LCNX INVADERS     ; Laden ohne Ausfuehrung
* LC 04             ; Laden und Ausfuehren der Dateinummer 04
* LR SA-5510RFS     ; Laden und Ausfuehren von SA-5510RFS vom ROM-Laufwerk
Programme speichern
Verwenden Sie SC, um einen Speicherbereich auf das aktive SD-Kartenlaufwerk zu speichern. Die Syntax entspricht dem Band-Befehl S -- Startadresse, Endadresse und Ausfuehrungsadresse als 4-stellige Hex-Werte ohne Leerzeichen, gefolgt von einer Dateinamen-Abfrage:
* SC120020001200
FILE NAME? MYPROG
SAVED
Dateien loeschen
Verwenden Sie EC gefolgt von einem Dateinamen oder einer Dateinummer, um eine Datei vom aktiven SD-Kartenlaufwerk zu loeschen. Der Vorgang kann nicht rueckgaengig gemacht werden; bestaetigen Sie daher die Dateinummer mit IC vor dem Loeschen.
* EC MYPROG     ; Loeschen nach Name
* EC 04         ; Loeschen nach Dateinummer

Anzeigemodi

Wenn eine Kuma 40/80-Spalten-Erweiterung oder das 40/80 Farb-Videomodul im MZ-80A eingebaut ist, kann RFS am Monitor-Prompt zwischen 40-Spalten- und 80-Spalten-Anzeigemodus wechseln:
* 40    ; Wechsel in den 40-Spalten-Modus
* 80    ; Wechsel in den 80-Spalten-Modus
Im 80-Spalten-Modus zeigen die Verzeichnisbefehle IC und IR vier Spalten von Dateinamen gleichzeitig an, was das Durchsuchen eines vollstaendigen Laufwerksverzeichnisses deutlich beschleunigt. Die Varianten BASIC SA-5510RFS und Microsoft BASIC haben jeweils separate ROM-Builds fuer 40-Spalten- und 80-Spalten-Betrieb -- laden Sie die entsprechende Variante fuer Ihre Anzeigekonfiguration.
Ohne eingebaute 40/80-Erweiterung werden die Befehle 40 und 80 weiterhin akzeptiert, haben aber keine sichtbare Wirkung. Alle anderen RFS-Befehle arbeiten normal im Standard-40-Spalten-Modus.

Bandoperationen

RFS behaelt alle originalen SA-1510 Band-(CMT-)Befehle bei und fuegt zwei neue Befehle fuer die Dateiuebertragung zwischen Band und SD-Karte hinzu.
Laden und Speichern auf Band
Die Standard-Bandbefehle funktionieren genau wie im originalen SA-1510-Monitor:
  • L oder LT -- Laedt die naechste Datei vom Band und fuehrt sie aus. Optional kann ein Dateiname angegeben werden, um nach einem bestimmten Programm zu suchen.
  • LTNX -- Wie oben, aber Laden ohne Ausfuehrung.
  • S oder ST -- Speichert einen Speicherbereich auf Band. Start-, End- und Ausfuehrungsadresse als 4-stellige Hex-Werte zusammenhaengend angeben (z.B. S120020001200), dann Dateiname eingeben.
  • V -- Verifiziert die letzte Bandspeicherung gegen den Speicher.
Band-zu-SD-Karten-Uebertragung
T2SD liest das naechste Programm vom Band und schreibt es direkt auf das aktive SD-Kartenlaufwerk. Dies ist der bequemste Weg, eine vorhandene Bandbibliothek auf die SD-Karte zu archivieren:
* T2SD
PRESS PLAY
...
Druecken Sie Play am Kassettenlaufwerk, wenn Sie dazu aufgefordert werden. RFS laedt das Programm in den Speicher und schreibt es dann unter seinem urspruenglichen Banddateinamen auf die SD-Karte. Das Programm wird nicht ausgefuehrt.
SD-Karten-zu-Band-Uebertragung
SD2T liest eine Datei vom aktiven SD-Kartenlaufwerk und schreibt sie auf Band, wobei das originale Bandformat exakt reproduziert wird. Dies ist nuetzlich fuer die Softwareverteilung oder die Erstellung von Sicherungskopien auf Band aus der SD-Karten-Sammlung:
* SD2T INVADERS
PRESS REC
...
Druecken Sie Aufnahme am Kassettenlaufwerk, wenn Sie dazu aufgefordert werden. Die Datei wird mit der Standard-SA-1510-Baudrate auf Band geschrieben.

Verwendung von BASIC SA-5510

Geben Sie BASIC am Monitor-Prompt ein, um den Sharp SA-5510 BASIC-Interpreter zu laden und zu starten. RFS durchsucht zuerst das aktive SD-Kartenlaufwerk, dann das ROM-Laufwerk nach dem SA-5510RFS-Build. Diese erweiterte Version des originalen SA-5510-Interpreters fuegt LOAD-, SAVE- und DIR-Befehle hinzu, die mit dem RFS SD-Karten-Dateisystem arbeiten, waehrend die volle Kompatibilitaet mit allen originalen SA-5510 BASIC-Programmen und Kassettenbefehlen erhalten bleibt.
* BASIC

SHARP MZ-80A BASIC SA-5510RFS

READY
Die RFS-erweiterten BASIC-Befehle sind:
Befehl Beispiel Beschreibung
LOAD LOAD "TEST" Laedt und fuehrt das BASIC-Programm TEST vom aktiven SD-Laufwerk aus.
LOAD LOAD "3:TEST" Laedt TEST von SD-Laufwerk 3 (Laufwerk 3 wird aktiv).
LOAD LOAD "C:TEST" Laedt TEST vom Band (CMT).
LOAD LOAD Laedt die naechste sequentielle Datei vom aktiven Laufwerk.
SAVE SAVE "TEST" Speichert das aktuelle BASIC-Programm auf das aktive SD-Laufwerk. Ueberschreibt eine vorhandene Datei gleichen Namens.
SAVE SAVE "3:TEST" Speichert auf SD-Laufwerk 3 (Laufwerk 3 wird aktiv).
SAVE SAVE "C:TEST" Speichert auf Band (CMT).
DIR DIR Listet das SD-Kartenverzeichnis des aktiven Laufwerks auf.
DIR DIR "3:" Listet SD-Laufwerk 3 auf und macht es aktiv.
Alle originalen SA-5510 Kassetten-BASIC-Befehle (CLOAD, CSAVE usw.) funktionieren unveraendert weiter, wenn kein Laufwerkskenner angegeben wird.

CP/M 2.2 ausfuehren

Geben Sie CPM am Monitor-Prompt ein, um CP/M 2.2 zu starten. RFS findet den CP/M-Bootsektor auf dem aktiven SD-Kartenlaufwerk, laedt CCP und CBIOS und uebergibt die Kontrolle. Der Prompt aendert sich zu A>.
* CPM

CP/M 2.2 - SHARP MZ-80A

A>
Die CBIOS-Implementierung befindet sich vollstaendig im Flash-ROM, wodurch die vollen 47KB TPA fuer Anwendungsprogramme frei bleiben. Bis zu sieben CP/M-Laufwerke stehen zur Verfuegung:
CP/M-Laufwerk Inhalt
A: SD-Karte — CP/M-Systemprogramme, Turbo Pascal, Hi-Soft C usw.
B: SD-Karte — Pascal-Utilities und Pascal User Group Disketten
C: SD-Karte — PLI, PLM, WordStar
D:-G: SD-Karte — Grant Searle CP/M-Sammlung
Der integrierte ANSI-Terminal-Emulator bildet Standard-ANSI-Escape-Sequenzen auf den MZ-80A-Bildschirm ab, sodass die meisten CP/M-Anwendungen mit Bildschirmsteuerung ohne Aenderung korrekt funktionieren. Die MZ-80A-Tastatur ist vollstaendig zugeordnet, einschliesslich Tastenwiederholung.
Um vom CP/M zum RFS-Monitor zurueckzukehren, fuehren Sie einen Warmstart mit Ctrl+C vom CCP-Prompt aus, der den CCP neu laedt. Eine vollstaendige Rueckkehr zum SA-1510-Monitor erfordert einen Hardware-Reset (die Reset-Taste oder Aus- und Einschalten).

Fehlerbehebung

Kein "+ RFS"-Text nach dem Startbanner

Die + RFS-Zeile wird von der RFS-Firmware selbst unmittelbar bei der Initialisierung ausgegeben -- sie erscheint unabhaengig davon, ob eine SD-Karte vorhanden ist. Wenn sie gaenzlich fehlt, wird das RFS-ROM nicht ausgefuehrt:
  • Flash-ROMs nicht programmiert oder falsch programmiert -- das Geraet laeuft moeglicherweise mit dem originalen Monitor-ROM oder einem uninitialisierten Chip. Bestaetigen Sie, dass MROM_ROMDISK_256.bin auf den Monitor-Flash-Chip (U1) und USER_ROM_256.bin auf U4 geschrieben wurde. Verwenden Sie den Verify-Schritt von minipro zur Bestaetigung jedes Chips.
  • PCB nicht vollstaendig eingesetzt -- entfernen Sie die obere Abdeckung und druecken Sie beide DIP-Lifter-Arrays fest in ihre Sockel. Inspizieren Sie von der Seite, ob alle Pins eingerastet sind und keine verbogen sind oder benachbarte Pins ueberbruecken.
  • Coded Latch durch Refresh-Zyklen ausgeloest (nur v2.0) -- bei v2.0-Platinen kann die DRAM-Refresh-Logik versehentlich den 74HCT191-Zaehler inkrementieren, bevor RFS laeuft, wodurch die Bankauswahl-Register vorzeitig aktiviert werden. Die v2.1-Platine fuegt ein UND-Gatter (D1/D2) hinzu, um dies zu verhindern. Bei Verwendung einer v2.0-Platine sollten Sie ein Upgrade auf v2.1 in Betracht ziehen.

SD-Karten-Fehlercode nach der "+ RFS"-Zeile

Wenn + RFS erscheint, aber von einem Fehlercode gefolgt wird, hat sich RFS erfolgreich initialisiert, aber die SD-Karte konnte nicht erkannt oder initialisiert werden. Die Fehlernummer zeigt den Fehlerpunkt in der SD-Karten-Initialisierungssequenz an. Ueberpruefen Sie Folgendes:
  • SD-Karte nicht eingesetzt -- pruefen Sie, ob die Karte vollstaendig im Slot sitzt.
  • SD-Karten-Socket-Kabel -- wenn das Kabel durch einen Schlitz im Gehaeuse gefuehrt wurde, pruefen Sie, ob es nicht geknickt oder teilweise getrennt ist.
  • SD-Karten-Image nicht geschrieben -- eine unformatierte oder leere Karte wird bei der Initialisierung fehlschlagen. Schreiben Sie erneut mit dem oben beschriebenen dd-Befehl. Stellen Sie sicher, dass das vollstaendige Image uebertragen wurde (sync nach dem Schreiben).
  • Inkompatible SD-Karte -- aeltere oder sehr hochkapazitaere (32GB und groesser, SDXC-Klasse) Karten initialisieren moeglicherweise nicht korrekt. Eine Standard-SD- oder SDHC-Karte mit 2GB-8GB ist am zuverlaessigsten.

Geraet startet ueberhaupt nicht -- schwarzer Bildschirm oder Zeichensalat

  • PCB falsch herum eingesetzt -- pruefen Sie die Pin-1-Ausrichtung an beiden DIP-Lifter-Arrays. Ein umgekehrter Steckverbinder verhindert den Systemstart. Schalten Sie sofort aus, wenn dies vermutet wird, und setzen Sie die Platine mit korrekter Orientierung erneut ein.
  • Verbogene oder verpasste Pins -- entfernen Sie die Platine und inspizieren Sie alle Pins beider Lifter-Arrays bei guter Beleuchtung. Richten Sie verbogene Pins gerade, bevor Sie erneut einsetzen.
  • Falsches ROM-Image fuer die Hardware -- stellen Sie sicher, dass das Monitor-Flash mit MROM_ROMDISK_256.bin programmiert wurde (nicht ein picoZ80- oder SFD-700-Image).

IC zeigt ein leeres Verzeichnis oder "SD ERROR"

  • SD-Karte falsch beschrieben -- das Image muss als Roh-Binaerdatei ab Sektor 0 ohne Partitionstabelle geschrieben werden. Die SD-Karte zuerst als FAT zu formatieren und dann die Image-Datei darauf zu kopieren, funktioniert nicht. Schreiben Sie erneut mit dd wie im Abschnitt Beschreiben des SD-Karten-Images beschrieben.
  • SD-Karte nicht eingesetzt -- der Micro-SD-Kartenslot auf v2.x-Platinen verwendet einen Push-Push-Mechanismus. Druecken Sie die Karte fest ein, bis sie einrastet. Zum Auswerfen erneut druecken, bis sie einrastet, und loslassen.
  • Inkompatible SD-Karte -- aeltere oder sehr hochkapazitaere (32GB und groesser, SDXC-Klasse) Karten initialisieren moeglicherweise nicht korrekt. Eine Standard-SD- oder SDHC-Karte mit 2GB-8GB ist am zuverlaessigsten.

CP/M startet nicht oder zeigt Diskettenfehler

  • Falsches aktives Laufwerk -- waehlen Sie Laufwerk 0 bevor Sie CPM eingeben. Das vorgefertigte Image platziert den CP/M-Bootsektor auf Laufwerk 0. Geben Sie 0 ein und druecken Sie Enter am Monitor-Prompt, dann geben Sie CPM ein.
  • SD-Karten-Image unvollstaendig -- die CP/M-Disk-Images beginnen an der 256MB-Grenze. Ein unvollstaendiger dd-Schreibvorgang (unterbrochen oder mit einer zu kleinen SD-Karte) laesst den CP/M-Bereich uninitialisiert. Schreiben Sie erneut mit einer Karte von mindestens 512MB.

Laden oder Speichern auf Band schlaegt fehl oder erzeugt Fehler

  • Das Band-Timing am MZ-80A ist empfindlich gegenueber CMT-Kopfausrichtung und Bandqualitaet. Wenn Ladevorgaenge konstant fehlschlagen, verwenden Sie den TC-Befehl zur Anpassung der Bandleseverzoegerungskompensation: TC01 erhoeht die Verzoegerung um eine Stufe, TC-01 verringert sie. Beginnen Sie mit einer einzelnen Stufe in jede Richtung und testen Sie nach jeder Anpassung.
  • Stellen Sie sicher, dass die Bandlautstaerke am CMT-Laufwerk angemessen eingestellt ist -- zu hoch verursacht Clipping, zu niedrig verursacht verpasste Impulse.

Referenzseiten

Ressource Link
RomDisk-Projektseite /sharpmz-upgrades-romdisk/
RFS Benutzerhandbuch /sharpmz-upgrades-rfs-usermanual/
RFS Technischer Leitfaden /sharpmz-upgrades-rfs-technicalguide/
RFS Entwicklerhandbuch /sharpmz-upgrades-rfs-developersguide/
RFS Galerie /sharpmz-upgrades-rfs-gallery/
picoZ80 (RP2350 Z80-Ersatz) /picoz80/
tranZPUter FusionX /transzputer-fusionx/
minipro (Open-Source TL866-Werkzeug) https://gitlab.com/DavidGriffith/minipro