Der ZX96 - Floppycontroller

Für den ZX81 wurde bereits 1986 vom Michael Knispel ein Floppycontroller entwickelt, der noch heute bis auf wenige Änderungen der Standard im ZX-Team ist. Aufgrund dieser Verbreitung wurde der FDC auch im ZX96 eingesetzt. Der FDC basiert auf dem SAB 1793-Controller und war anfangs für 40 Spuren entwickelt. Das DOS befindet sich in einem EPROM ab Adresse 8192 und ist nur 2kB groß. Der FDC belegt dennoch den gesamten Adreßraum von 8192 bis 16383. Der Rest ist hier belegt durch ein 2kB RAM sowie die Registeradressierung des SAB1793 und durch ein weiteres Registerlatch.

In dieser Ur-Version kann der FDC auf einer Diskette rund 80kB speichern (single density, 40 Tracks, einseitig). Das DOS hat nur fünf Funktionen, die aber völlig ausreichen. Jede Funktion hat eine eigene Aufrufadresse, dadurch beschränkt sich der Umfang der Eingaben auf eine minimale Eingabezeile. Das DOS wird mit RAND USR + Adresse gestartet.
Funktion Aufrufadresse
Formatieren 8192
Directory 8195
Save File 8198
Load File 8201
Erase File 8204

Das DOS kann nur BASIC-Programme laden und speichern. Dazu ist auch die maximale Programmlänge auf 16kB begrenzt, da größere Programme am ZX81 nicht üblich sind. Im Zusammenspiel mit MeFisDOS im ZX96 wurde der FDC jedoch um einige weitere Funktionen erweitert, die aber nur direkt von MeFisDOS aus nutzbar sind. So lassen sich auch HRG-Bilder, Textfiles und Forth-Screens auf Floppy speichern. Desweiteren unterstützt MeFisDOS auch die Nutzung der zweiten Diskettenseite, sodaß rund 320kB auf einer Diskette genutzt werden können. Da der SAB1793 keinen Ausgang zur Seitenauswahl hat, haben wir hierzu wieder die POKE-Karte herangezogen: ein POKE 8,2 aktiviert auch den FDC - setzt aber über ein Latch die zweite Laufwerksseite. Diese kann dann wie eine neue Diskette behandelt werden, es gibt absolut keine Verbindung zur ersten Seite. Das heißt, die Seiten der Diskette können sogar unabhängig voneinander formatiert werden!

Intern arbeitet das DOS mit einem völlig eigenen Filesystem, wobei die Files nicht an feste Sektoren gebunden sind. Dadurch wird jeder Sektor bis auf das letzte Byte genutzt. Im Prinzip wird beim Speichern generell an der Position des letzten Eintrags weitergeschrieben. Eine FAT oder ähnliches braucht das DOS daher nicht. Der Nachteil des Systems ist die Verkettung der Sektoren, sodaß beim Löschen eines Files alle weiter "hinten" befindlichen Files um die Größe der Lücke nach vorn geschoben werden müssen. Dieser Vorgang ist entsprechend zeitaufwendig, muß aber bisher aus Kompatibilitätsgründen beibehalten werden.

Inzwischen haben wir für den FDC auch einen geänderten Datenseparator fertig gestellt. Mit dieser Erweiterung ist der FDC nun auch in der Lage, das double-density Format zu lesen und zu schreiben. Damit können wir MSDOS-kompatible Disketten im üblichen 720kB-Format verarbeiten. Die Entwicklung der entsprechenden Lese- und Schreibroutinen, vor allem aber die Implementierung des FAT-Systems nimmt jedoch noch einige Zeit in Anspruch. Dieses neue DOS soll neben MSDOS ja auch noch diverse andere Filesystme beherrschen, um z.B. auch Spectrum-Disketten (wenigstens) lesen zu können.

Hier noch einige für den Nachbau wichtige Files:
EPROM-Binärfile 4 kB
Schaltplan 1.Teil 141 kB
Schaltplan 2.Teil 104 kB
Schaltplan 3.Teil 114 kB
Schaltplan 4.Teil 122 kB
Bauteileliste 1 kB

Das EPROM-File beinhaltet zwei Versionen des Floppy-DOS. In der unteren Hälfte befindet sich das originale DOS für 80-Spur-Laufwerke. In der oberen Hälfte befindet sich eine verbesserte Version, die Sicherheitsabfragen vorm Formatieren stellt sowie eine Editierbarkeit der Eingabezeile ermöglicht. Abweichend vom Schaltplan wird dazu ein 2732-EPROM eingesetzt und über einen Schalter am A11-Pin in zwei Blöcke geteilt. Das verbesserte DOS hat leider den Nachteil, das es aufgrund geänderter Routinen nicht mehr zu MeFisDOS kompatibel ist und daher nur eingeschränkt eingesetzt werden kann.


letztes Update: 07/01, Kai Fischer