MFM-Disk Emulator/Reader/Cloner

JULI 2019

Das Projekt startete Ende 2012, parallel zum RL01/Rl02 Disk Emulator. Es gab Verzögerungen weil das zuletzt benutzte Be-Micro-CV Board nicht mehr verfügbar war ( siehe Entwicklungs Geschichte ).
2019 war Neustart des Projekts. Wie beim RL01/RL02 Disk Emulator wurde nun auch das DE10-Nano board benützt. Auch hier wurde ein PCB Board entwickelt und die bestehende auf Software auf die SoC/HPS Umgebung portiert. Die Software ist nun mit der Version V1.0 verfügbar. Wie im Kapitel 1.0 dargestellt wird überlegt, beide Emulator boards auf einen Board zu integrieren mit Zusatzfunktionen, wie z.B. Floppy Emulator, mehrere serial interfaces mit TU58 emulator. Allerdings kommt nun ein sehr wichtiger Punkt: However, now comes a very important point: Ich bin nun Rentner. Meine Leistungsfähigkeit läßt nach ( speziell beim Löten). Mir fehlen auch die Örtlichkeiten und die alte Hardware zum Testen und verfizieren des MFM-Disk Emulator Projekts. Bei diesem Projekt sind noch einige Punkte offen, siehe Kapitel 1.2A. Alles alleine zu realisieren geht nicht mehr, also bin ich auf Zusammenarbeit angewiesen. Bisher habe ich leider schlechte, bzw. gar keine Erfahrung gemacht, aber vielleicht klappt es nun doch mal mit einer Zusammenarbeit. Die gesamte Firmware und Software , basierend auf einer Quartus V16.1 Umgebung ist Open Source und steht auch bei GitHub zur Verfügung.
User Manual

MFM disk emulator startup
Get started Manual


Ein fertig konfiguriertes
SD-Card-Image für das DE10-Nano Board ist auch verfügbar. Das Image runterladen und zum Beispiel mit Win32DiskImager auf SD-Card kopieren. Login: root, PW: pdp11


DE10-Nano mit aufgesteckten MFM Emulator Interface @GPIO-0



Interface Board


Schaltplan und Layout information: MFM-Emulator-Interface_v2
Für einen eventuellen Nachbau sind die LOM daten verfügbar.


Projekt Informationen

Allgemein
Die ST506-Schnittstelle wurde 1982 von der Firma Seagate für ihre 5¼-Zoll-Festplatten
ST506 (5.4 MB) , ST412 (10.1 MB) und ST225(20.4 MB) entworfen und jeder namhafte Computer Hersteller setzte diese Technologie ein.

Die ST506-Schnittstelle arbeitet mit dem MFM( Modified Frequency Modulation ) Aufzeichnungsverfahren, ähnlich wie die DEC RL-Schnittstelle( Kapitel 1.1C ).

Implementierung, 2019
Mein Design basiert auf einer SoC/HPS Umgebung wie bei dem DE10-Nano board. Zur Zeit werden
die ST506, ST412 und ST225 Disks unterstützt. Zum Einsatz kam das DE10-Nano Development Board, bestückt mit einem Altera Cyclone® V SoC FPGA , Typ: 5CSEBA2317 und mit integrieter ARM Cortex-A9 CPU . Bei meinem Design werden die MFM-Daten komplett decodiert in Realtime, quasi “on the fly“ und auf der Micro-SD Card gespeichert und sind somit jederzeit, z.B. mit einem HEX Editor einsehbar.

DE10-Nano Board mit aufgesteckten MFM Emulator Interface


Der MFM Disk Emulator hat 2 verschiedene Betriebs-Zustände:

Emulator Mode ( Slave )
Emulator emuliert eine MFM-Disk



Clone Mode ( Master )
Emulator cloned/kopiert eine MFM-Disk auf die micro-SD card

Hinweise, Informationen, Probleme und Lösungen
Die Schnittstelle und deren Signale wurden von der Firma Seagate genau beschrieben und weitgehend eingehalten. Ganz anders sieht es bei den Daten und Timing Format aus. Hier ist alles inkompatibel. Jeder Hersteller hatte garantiert sein eigenes Track und Datenformat, welches damals mit einem Low-Level Format Programm generiert wurde. Folgende Unterschiede existieren:
> > CRC Algorithmus unterschiedlich, wie zum Beispiel unterschiedlicher Preset-Wert.
>> Track Format: ID AM unterschiedlich.
>> Track Format: DATA AM unterschiedlich.
>> SYNC Character untersiedlich.
Sogar beim gleichen Hersteller gab es unterschiedliche Formate. Bei DEC konnte eine mit RQDX-1 formatierte Disk nicht mit einen RQDX-3 benützt werden.
Um die Daten von einer noch lauffähigen Disk zu sicheren wurde zusätzlich der Clone Mode implementiert. Hier werden die Daten 1:1 von der Disk übertragen und auf die SD-Card gesichert. Im Emulator-Mode werden dann diese Daten von der SD-Card gelesen und die Disk emuliert.

Weitere, sehr ausführliche Informationen finden sie hier
und im usermanual