Dateiformate für Diskettenabbilddateien

Eine Form der Emulation von Disketten ist die Verwendung von Abbilddateien (Disk Image Files). JKCEMU unterstützt: Diese Dateien können dabei auch GZIP-komprimiert sein.

Alle diese Formate werden von JKCEMU lesend und schreibend unterstützt. Bei der Schreibunterstützung gibt es allerdings eine Einschränkung: Die Emulation einer Diskette mit Hilfe einer Abbilddatei ist nur mit den Dateiformaten schreibend möglich, die ohne jegliche Kompression auskommen und einen wahlfreien Zugriff auf die Daten eines jeden einzelnen Sektors ermöglichen. Das ist nur bei einfachen Abbilddateien, AnaDisk- und CPC-Disk-Dateien gegeben. Volle Schreibunterstützung, also das Erzeugen einer solchen Datei, wird dagegen bei der manuallen Erstellung einer Diskettenabbildatei sowie im Dateikonverter geboten (siehe auch Zusammenfassung).

1. Einfache Abbilddateien

Eine einfache Abbilddatei ist eine Aneinanderkettung aller Sektoren einer Diskette, jedoch ohne Verwaltungs- und Geometriedaten, d.h., eine einfache Abbilddatei enthält nur Nutzdaten. Die Abbilddatei einer 720K-Diskette ist somit exakt 720 KByte groß. Eine freie Sektoranordnung, Interleave oder Lücken in der Sektornummerierung sind bei dem Dateiformat nicht möglich.

Einfache Abbilddateien sind zwar weit verbreitet, jedoch hat das Format keinen einheitlichen Namen. Häufig wird es einfach nur RAW-Format genannt. Auch ist die Dateiendung nicht festgelegt. Meistens wird *.img verwendet, gelegentlich auch *.image und *.raw.

Erzeugen kann man einfache Abbilddateien unter Linux/Unix mit dem Befehl dd, z.B.:

 dd if=/dev/fd0 of=<dateiname>

Unter DOS sind die Programme rawread.exe und zum Zurückschreiben rawwrite.exe bekannt.

JKCEMU kann ebenfalls einfache Abbilddateien von Disketten und anderen Laufwerken erstellen. Die entsprechende Funktion finden Sie im Hauptfenster im Menü Extra.

Da einfache Abbilddatei keine Verwaltungs- bzw. Geometriedaten enthalten, muss man bei deren Verwendung das Diskettenformat in einem speziellen Dialog auswählen. JKCEMU unterstützt Sie bei der Auswahl, indem anhand der Dateigröße das wahrscheinlich richtige Format bereits vorausgewählt ist.

2. AnaDisk-Dateien

AnaDisk ist ein Programm zum Erzeugen von speziellen Diskettenabbilddateien (AnaDisk-Dateien). In einer AnaDisk-Datei sind die Sektoren unkomprimiert aneinandergereiht, wobei vor jedem Sektor ein acht Byte großer Kopf steht. Dieser Kopf hat folgenden Aufbau:
Anzahl BytesBedeutung
1 Byte Physische Zylindernummer (beginnt mit 0)
1 Byte Physische Kopfnummer (beginnt mit 0)
1 Byte Zylindernummer in der Sektor-ID (beginnt mit 0)
1 Byte Kopfnummer in der Sektor-ID (beginnt mit 0)
1 Byte Sektornummer (beginnt mit 1)
1 Byte Sektorgröße:
  0: 128 Bytes
  1: 256 Bytes
  2: 512 Bytes
  3: 1024 Bytes
2 Bytes Anzahl der nachfolgenden Bytes (tatsächliche Sektorgröße in der Datei, Little-Endian-kodiert))


Aus den Kopfdaten vor jedem Sektor lassen sich die Geometriedaten und damit das Diskettenformat ermitteln. Da jeder Sektor seine eigenen Kopfdaten hat, ist nicht nur eine freie Sektoranordnung abbildbar, sondern auch unterschiedliche Sektorlängen innerhalb einer Spur. Gelöschte Sektoren sind in einer AnaDisk-Datei allerdings nicht möglich bzw. nicht als solche markierbar.

3. CopyQM-Dateien

JKCEMU unterstützt das Dateiformat des Diskettenkopierprogramms CopyQM lesend und schreibend. Die Schreibunterstützung beschränkt sich aber auf das manuelle Erstellen einer Abbilddatei sowie auf den Dateikonverter. Im Fenster JKCEMU Diskettenstation kann eine CopyQM-Datei nur lesend geöffnet werden, da der Datenbereich in der Datei als ganzes komprimiert und somit das einzelne Schreiben eines Sektors nicht möglich ist.

Das CopyQM-Format ist proprietär und nicht offen gelegt. Die im JKCEMU enthaltene CopyQM-Unterstützung basiert auf den wenigen im Internet frei verfügbaren Informationen und könnte deshalb auch unvollständig sein. Aus diesem Grund kann nicht garantiert werden, dass jede CopyQM-Datei im JKCEMU funktionieren bzw. jede mit JKCEMU erzeugte Datei von CopyQM aktzeptiert wird.

4. CPC-Disk-Dateien

Das bei CPC-Emulatoren gebräuchliche Format wird von JKCEMU lesend und schreibend unterstützt. Es gibt zwei Unterformate (Standard- und erweitertes Format), die auch beide voll unterstützt werden. Beim Erzeugen einer CPC-Disk-Datei wählt JKCEMU selbstständig das für den konkreten Fall passende Unterformat aus.

5. ImageDisk-Dateien

Das Dateiformat des von Dave Dunfield entwickelten Diskettenarchivierungswerkzeugs ImageDisk wird von JKCEMU unterstützt. Bei der manuellen Erstellung einer Diskettenabbilddatei und im Dateikonverter kann dieses Dateiformat auch erzeugt werden. Im Fenster JKCEMU Diskettenstation wird dagegen nur eine lesende Unterstützung geboten, da die Sektordaten komprimiert sein können und somit ein nahtloses Schreiben eines einzelnen Sektors mitten in der Abbilddatei nicht problemlos möglich ist.

Das ImageDisk-Dateiformat ist sehr flexibel und kann gelöschte Sektoren enthalten sowie die Information speichern, ob ein Sektor mit CRC-Fehler gelesen wurde.

6. TeleDisk-Dateien

JKCEMU unterstützt TeleDisk-Dateien schreibend und lesend, allerdings ohne Advanced Compression. Die Schreibunterstützung beschränkt sich auf das manuelle Erstellen einer Abbilddatei sowie auf den Dateikonverter. Im Fenster JKCEMU Diskettenstation kann eine TeleDisk-Datei nur lesend geöffnet werden, da wie beim ImageDisk-Format die Sektoren in der Datei komprimiert gespeichert sein können und somit ein nahtloses Schreiben eines einzelnen Sektors mitten in der Abbilddatei nicht problemlos möglich ist.

TeleDisk ist ein Programm zum Erzeugen und Zurückschreiben von speziellen Diskettenabbilddateien (TeleDisk-Dateien) und war um 1990 sehr populär. Eine TeleDisk-Datei enthält neben den Nutzdaten sehr detailierte Verwaltungs- und Geometriedaten. Dadurch kann TeleDisk eine nahezu identische Kopie einer Diskette anfertigen, auch wenn das Diskettenformat vom Standard abweicht.

Das TeleDisk-Dateiformat ist sehr flexibel und kann neben gelöschten Sektoren auch die Informationen über mit CRC-Fehler gelesene Sektoren enthalten. Des Weiteren kann TeleDisk auch Sektoren speichern, bei denen nur der Datenbereich, nicht aber der Kopfbereich lesbar war. In dem Fall generiert es eine Sektor-ID (d.h., es erfindet eine), und markiert den Sektor entsprechend.

Eine weitere Besonderheit ist, dass TeleDisk Sektoren manchmal mehrfach liest und speichert, d.h., der gleiche Sektor kann mehrfach in der Datei vorhanden sein. Da dies sowie Sektoren mit generierter Sektor-ID im Emulator Probleme bereiten, versucht JKCEMU die von einer TeleDisk-Datei eingelesenen Daten bei Bedarf zu reparieren, d.h. eine generierte Sektor-ID mit der wahrscheinlich richtigen zu ersetzen und mehrfach vorhandene Sektoren zu eliminieren. Findet eine solche Reparatur statt, wird der Anwender darüber informiert. Die Reparatur bezieht sich nur auf die eingelesenen Daten, nicht auf die Datei selbst, d.h. diese wird nicht verändert.

Achtung! Wenn Sie eine TeleDisk-Datei im Diskettenabbilddatei-Inspektor öffnen, wird diese nicht automatisch repariert, da man ja in dem Fall den Originalzustand sehen möchte.

7. Komprimierte Abbilddateien

Abbilddateien können mit GZIP komprimiert werden, um Speicherplatz zu sparen. Damit JKCEMU solche Dateien auch richtig erkennt, muss am Dateinamen ein .gz angehängt werden (siehe Tabelle). Komprimieren und wieder Entpacken können Sie mit Hilfe des Datei-Browsers.

Dateityp Dateiendung unkomprimiert Dateiendung komprimiert
Einfache Abbilddatei .img
.image
.raw
.img.gz
.image.gz
.raw.gz
AnaDisk-Datei .dump .dump.gz
CPC-Disk-Datei .dsk .dsk.gz
CopyQM-Datei .cqm
.qm
.cqm.gz
.qm.gz
ImageDisk-Datei .imd .imd.gz
TeleDisk-Datei .td0 .td0.gz

Achtung! Mit GZIP komprimierte Diskettenabbilddateien werden bei der Emulation einer Diskette nur lesend unterstützt.

8. Zusammenfassung

Die Tabelle zeigt zusammenfassend die Unterstützung der einzelnen Formate für Diskettenabbilddateien im JKCEMU:
Dateiformat Emulation einer Diskette Manuelle Erstellung einer Abbilddatei Dateikonverter
Einfache Abbilddatei (*.img; *.image; *.raw) RW W RW
AnaDisk-Datei (*.dump) RW W RW
CPC-Disk-Datei (*.dsk) RW W RW
CopyQM-Datei (*.cqm; *.qm) R W RW
ImageDisk-Datei (*.imd) R W RW
TeleDisk-Datei (*.td0) R W RW
R: nur lesend, RW: lesend und schreibend, W: nur schreibend