Floppy-Disk-Emulation im JKCEMU

JKCEMU emuliert den Floppy Disk Controller U8272, der kompatibel zum Intel 8272A und zum NEC 765A ist. Dieser kann bis zu vier Diskettenlaufwerke bedienen.

Die emulierten Laufwerke sind für den Anwender im Fenster JKCEMU Diskettenstation sichtbar, dass Sie über das Haupfenster, Menü DateiDiskettenstation aufrufen können. Dieses Fenster steht nur zur Verfügung, wenn das emulierte System im Original auch Diskettenlaufwerke bietet bzw. unterstützt. Des Weiteren werden auch nur so viele Laufwerke emuliert, wie auch im Original möglich sind.

Für jedes Laufwerk gibt es einen eigenen Reiter (Tab). Weiterhin finden Sie unten rechts im Fenster einen Knopf zum Öffnen/Laden, womit Sie gedanklich eine Diskette einlegen und wieder entnehmen können. Da der Emulatorrechner möglicherweise über gar kein physisches Diskettenlaufwerk verfügt, bietet JKCEMU mehrere Möglichkeiten zur Emulation einer Diskette an. Eine emulierte Diskette kann abgebildet werden durch:
  1. eine reale Diskette, die in einem physischen Diskettenlaufwerk steckt, welches am Emulatorrechner angeschlossen ist
  2. eine Diskettenabbilddatei
  3. ein Verzeichnis im Dateisystem des Emulatorrechner

Durch Drücken auf den Öffnen/Laden-Knopf öffnet sich ein Menü, in dem Sie die verschiedenen Möglichkeiten auswählen können.

1. Emulation mit einer realen Diskette

Möchten Sie vom emulierten System aus auf eine Diskette zugreifen, die in einem am Emulatorrechner angeschlossenen Diskettenlaufwerk steckt, dann wählen Sie im Öffnen/Laden-Menü den Punkt Diskette öffnen.... Sie werden nun nach dem Laufwerk gefragt. Auf einem Windows-System wählen Sie den Laufwerksbuchstaben aus, mit dem das Diskettenlaufwerk im Windows sichtbar ist. Auf einem Linux/Unix-System geben Sie die entsprechende Gerätedatei an.

Achtung! Auf einem Linux/Unix-System muss JKCEMU möglicherweise mit Adimistratorberechtigungen (Benutzername root) laufen, um auf das Diskettenlaufwerk zugreifen zu können.

Bei der Emulation eines Diskettenlaufwerkes mit einer realen Diskette gelten folgende Einschränkungen:
Achtung! Ist auf der Diskette ein CP/M-Dateisystem oder ein anderes "altes" Dateisystem enthalten, kann das Betriebssystem des Emulatorrechners damit wahrscheinlich nichts anfangen. Windows bietet in dem Fall das Formatieren des Datenträgers an. Das dürfen Sie auf keinen Fall tun, sonst sind alle Daten weg! Des Weiteren kann es vorkommen, dass bei Anschluss eines USB-Diskettenlaufwerks mit eingelegter Diskette, die ein "altes" Dateisystem hat, das Diskettenlaufwerk nicht richtig erkannt wird. Schlielßen Sie deshalb ein USB-Diskettenlaufwerk immer ohne eingelegter Diskette an und legen die Diskette erst dann ein, wenn das Betriebssystem das Laufwerk erkannt hat und die Zugriffsanzeige des Laufwerks erloschen ist.

2. Emulation mit einer Diskettenabbilddatei

Eine Diskettenabbilddatei (Disk Image File) ist ein 1:1-Abbild einer Diskette und enthält somit auch die Spuren und Sektoren, wie sie auf einer realen Diskette zu finden sind. Es gibt verschiedene Dateiformate für Abbilddateien, die sich inhaltlich vorallem im Umfang der gespeicherten Geometrie- und Verwaltungsdaten unterscheiden.

3. Abbildung einer emulierten Diskette auf ein Verzeichnis

Bei dieser Form wählen Sie ein Verzeichnis im Dateisystem des Emulatorrechners aus. Die Dateien, die sich in dem Verzeichnis befinden und die der Dateinamenskonvention von CP/M entsprechen, werden in eine virtuelle Diskette gepackt und sind somit vom emulierten System aus sichtbar. Damit ist ein sehr einfacher Weg zum Austausch von Dateien zwischen dem Emulatorrechner und dem im Emulator laufenden System gegeben.

Wenn die virtuelle Diskette voll ist, werden die restlichen Dateien in dem Verzeichnis ignoriert. Das gleiche gilt für Dateien, die zu groß sind.

Die User-Bereiche 1 bis 15 werden durch Unterverzeichnisse mit den Namen 1 bis 15 repräsentiert, d.h., Dateien in diesen Unterverzeichnissen sehen Sie dann in dem entsprechenden User-Bereich.

Nach der Auswahl des Verzeichnisses werden Sie nach dem Diskettenformat gefragt. Bei einem Format mit Systemspuren wird der Inhalt der Datei @boot.sys in diese Systemspuren kopiert. Damit ist es möglich, auch von einem Verzeichnis zu booten. Ist die Datei @boot.sys in dem Verzeichnis nicht zu finden, enthalten die Systemspuren Nullbytes.

Achtung! JKCEMU bietet bei einer Diskette, die auf Basis eines Verzeichnis emuliert wird, auch eine Schreibunterstützung. Öffnen Sie dazu das Verzeichnis ohne Schreibschutz. In dem Fall wirken sich Schreibzugriffe auf die virtuelle Diskette direkt auf die darunter liegenden Dateien aus, d.h. auf die Dateien, die in dem Verzeichnis liegen. Wenn die eingestellte Directory-Größe nicht mit der übereinstimmt, die das im Emulator laufende Programm bzw. Betriebssystem verwendet oder wenn Sie die emulierte Diskette zu einem ungünstigen Zeitpunkt aktualisieren (siehe weiter unten), kann das zum Löschen oder ungewollten Überschreiben der darunter liegenden Dateien und damit zum Datenverlust führen! Noch schlimmer ist, wenn das im Emulator laufende Programm fehlerhaft die Directory-Sektoren der virtuellen Diskette beschreiben sollte. Aus diesen Gründen wird dringend empfohlen, ein Verzeichnis zur Emulation einer Diskette nur dann ohne Schreibschutz zu öffnen, wenn die darin liegenden Dateien an einer anderen Stelle nochmals gesichert sind!

3.1. Aktualisierung der emulierten Diskette

Wenn eine Diskette auf Basis eines Verzeichnisses emuliert wird, ist es möglich, dass die im Verzeichnis liegenden Dateien neben dem Emulator auch von anderen Programmen benutzt und geändert werden. Sollen sich die Änderungen in dem Verzeichnis auch in der emulierten Diskette widerspiegeln, muss diese aktualisiert werden. Wählen Sie dazu in dem Menü am Öffnen/Laden-Knopf den Punkt Emulierte Diskette aktualisieren an. Sobald von der emulierten Diskette das nächste mal das Directory gelesen wird, erzeugt JKCEMU einen neuen Inhalt für die Diskette. Bei einem CP/M-kompatiblen Betriebssystem im Emulator sollten Sie Control-C bzw. Strg-C drücken, um das Lesen des Directorys zu veranlassen.

JKCEMU bietet auch eine automatische Aktualisierung. Dazu müssen Sie in dem Dialog zur Auswahl des Diskettenformats die Option Automatisch aktualisieren einschalten.

Achtung! Manche Programme oder Betriebssysteme kommen möglicherweise mit der automatischen Aktualisierung des Disketteninhalts nicht klar und lesen dadurch falsche Daten ein. In dem Fall müssen Sie die Option ausschalten.

Achtung! Wenn Sie das Verzeichnis ohne Schreibschutz geöffnet haben, sollten Sie unbedingt darauf achten, dass Sie die emulierte Diskette nur zu solchen Zeitpunkten aktualisieren, wenn sich das im Emulator laufende Programm oder Betriebssystem in der Eingabeschleife befindet und gerade nicht auf die Diskette zugreift! Außerdem sollten Sie unbedingt auch das erneute Einlesen des Directorys erzwingen (Control-C bzw. Strg-C).

Achtung! Wenn Sie das Verzeichnis ohne Schreibschutz und automatischer Aktualisierung öffnen möchten, sollten Sie unbedingt die Dateien in dem Verzeichnis vorher an anderer Stelle sichern, da das eine potenziell besonders kritische Konstellation ist. Testen Sie bitte das im Emulator laufende Betriebssystem und die Anwendungsprogramme ausgiebig, ob diese mit der automatischen Aktualisierung klarkommen und es nicht zu Datenverlust oder anderweitig zerstörten Dateien kommt. Jedesmal, wenn die Dateien in dem Verzeichnis durch Programme außerhalb der Emulation geändert werden, sollten Sie im Emulator mit Control-C bzw. Strg-C das erneute Einlesen des Directorys erzwingen.

3.2. DateStamper

Wenn Sie ein Diskettenformat mit DateStamper-Unterstützung ausgewählt haben, enthält die emulierte Diskette automatisch die Datei !!!TIME&.DAT, in der die Zeitstempel der einzelnen Dateien abgelegt sind. Eine eventuell bereits in dem Verzeichnis vorhandene Zeitstempeldatei wird dabei ignoriert.

Schreibzugriffe auf die Datei !!!TIME&.DAT führen zum Setzen der Zeitstempel der Dateien in dem Verzeichnis, vorausgesetzt, die verwendete Java-Laufzeitumgebung und das Dateisystem ermöglichen das Setzen der Zeitstempel.