USB-Anschlusses
Für einige der von JKCEMU emulierten Computer wurden Lösungen
zum Anschluss von USB-Geräten entwickelt.
Die meisten dieser Lösungen basieren auf einem Entwurf von
Mario Leubner, der ein Vinculum-VDIP-Modul mit VDAP-Firmware verwendet.
JKCEMU emuliert dieses VDIP-Modul mit dieser Firmware
sowie ein daran angeschlossenes USB-Massenspeichergerät.
Andere USB-Geräte werden nicht unterstützt.
Ein VDIP-Modul (es gibt VDIP1 mit einem und VDIP2 mit zwei
physischen USB-Anschlüssen) ist mit einem VNC1-Chip bestückt.
Neuere Module verwenden einen VNC2-Chip und heißen V2DIP.
Diese Module sind kompatibel zu VDIP1 und VDIP2.
Der emulierte USB-Massenspeicher wird auf ein beliebiges Verzeichnis
im Dateisystem des Emulatorrechners abgebildet.
Damit kann auch dann ein USB-Speicherstick emuliert werden,
wenn am Emulatorrechner gar kein physischer USB-Massenspeicher
angeschlossen ist.
An den im JKCEMU emulierten Computer stecken Sie gedanklich einen
USB-Speicherstick an, indem Sie im Fenster JKCEMU USB-Anschluss
ein Verzeichnis auswählen
oder per Drag&Drop dort eins hineinziehen.
Umgekehrt bedeutet das Entfernen des Verzeichnisses das Abziehen
des Speichersticks.
Das Fenster JKCEMU USB-Anschluss rufen Sie im Hauptfenster
mit dem Menüpunkt Extra → USB-Anschluss auf.
Im Fenster JKCEMU USB-Anschluss können Sie neben
dem Verzeichnis des emulierten USB-Speichersticks auch vier Optionen
angeben:
-
Lange Dateinamen auf 8.3-Format verkürzen
Diese Option dient der Unterstützung von Dateien,
deren Namen nicht dem 8.3-Format entsprechen.
Weitere Informationen dazu finden Sie im Abschnitt
Unterstützung langer Dateinamen.
-
Schreibschutz (Nur-Lese-Modus)
Ist diese Option eingeschaltet, werden sämtliche
Schreiboperationen unterbunden.
-
Dateinamen klein schreiben
Diese Option gilt ausschließlich für das Anlegen
neuer Dateien und Verzeichnisse.
Standardmäßig werden diese mit groß geschriebenen
Namen angelegt, da das die Vinculum-VDIP-Module auch so tun.
Mit der Option können Sie auf Kleinschreibung unschalten.
-
Immer aktueller Zeitstempel bei Schreibzugriffen
Ist diese Option ausgeschaltet, wird der Zeitstempel der letzten
Änderung entsprechend den Vinculum-VDIP-Modulen gesetzt:
Der Zeitstempel muss beim Öffnen einer Datei zum Schreiben
oder beim Anlegen eines Verzeichnisses von der Anwendungs- bzw.
Treibersoftware mitgeliefert werden oder, falls nicht,
dann wird der VDIP-Standard-Zeitstempel 20.12.2004 00:00:00 verwendet.
Wenn nun aber im emulierten System gar keine Systemuhr läuft
oder sie führt die falsche Zeit
(z.B. weil die Zeit per Hand gesetzt werden musste und
der Anwender keine Lust zur korrekten Eingabe hatte),
werden auch die Zeitstempel der letzten Änderung falsch gesetzt.
Genau für diesen Fall gibt es die Option.
Ist sie eingeschaltet, werden die von der Anwendungs- bzw.
Treibersoftware mitgelieferten Zeitstempel ignoriert und
der Zeitpunkt der letzten Änderung immer auf die aktuelle
Zeit (Systemzeit des Emulatorrechners) gesetzt.
Allerdings hat das auch den Nachteil, dass beim Kopieren einer Datei
durch die im Emulator laufenden Software die neue Datei
den aktuellen Zeitstempel erhält und nicht den der Quelldatei.
Die VDAP-Firmware auf den Vinculum-VDIP-Modulen unterstützt
keine langen Dateinamen, sondern nur welche im 8.3-Format.
Diese Einschränkung gilt somit auch in der Emulation.
Allerdings gibt es auf einem FAT-formatierten USB-Massenspeicher
(und nur diese werden von den originalen VDIP-Modulen unterstützt)
für jeden sogenannten "langen" Dateinamen,
der also nicht dem 8.3-Format entspricht,
auch einen kurzen Äquivalenznamen im 8.3-Format.
Über diese kurzen Namen sind alle Dateien auf dem Datenträger
für die VDAP-Firmware sichtbar.
MS Windows erzeugt beim Anlegen einer Datei,
deren Namen nicht dem 8.3-Format entspricht,
standardmäßig immer einen kurzen Äquivalenznamen,
egal ob auf Festplatte, Diskette oder USB-Speicher.
Für NTFS-formatierte Datenträger lässt sich
dieses Verhalten jedoch systemweit abschalten.
Aus diesem Grund, aber auch aufgrund der Tatsache,
dass andere Betriebssysteme so etwas nicht bieten und dass
in der Emulation unabhägig von Datei- und Betriebssystem
jedes beliebige Verzeichnis als emulierter Speicherstick verwendet
werden kann, sind Dateien mit langen Namen in der VDIP-Emulation
erst einmal nicht sichtbar.
Mit der Option
Lange Dateinamen auf 8.3-Format verkürzen
lassen sich auch Dateien mit langen Namen in der Emulation nutzen.
Auf MS Windows versucht JKCEMU, den kurzen Äquivalenznamen
zu lesen und bei einem VDIP-DIR anzuzeigen.
Existiert ein solcher kurzer Name,
sind mit diesem alle Dateioperationen möglich,
sowohl innerhalb als auch außerhalb der VDIP-Emulation.
Kann jedoch kein kurzer Äquivalenzname gelesen werden,
erzeugt JKCEMU beim ersten VDIP-DIR-Kommando in einem Verzeichnis
ggf. selbst eindeutige kurze Namen im 8.3-Format,
zeigt diese an und merkt sich diese auch.
Diese Dateinamen sind physisch nicht auf dem Datenträger vorhanden,
sondern nur virtuell innerhalb der VDIP-Emulation.
Die im Emulator laufende Software kann mit diesen kurzen Namen
arbeiten und JKCEMU stellt die Verbindung zur jeweils zugehörigen
Datei her.
Auf anderen Betriebsystemen, z.B. Linux oder macOS,
können keine kurzeren Äquivalenznamen gelesen werden.
Hier erzeugt JKCEMU immer selbst die kurzen 8.3-Namen,
sofern die Option eingeschaltet ist.
JKCEMU simuliert alle Kommandos der VDAP-Firmware Version 2.69.
Der Zugriff auf den emulierten USB-Massenspeicher ist aber nur
über die Disk-Kommandos möglich (Dateisystemebene).
Eine Kommunikation auf Sektorebene (z.B. mit Debug-Kommandos)
oder direkt auf USB-Protokollebene (Device-Kommandos oder Data Mode)
ist dagegen nicht möglich.
Schreibende Debug- und Device-Kommandos liefern entweder
einen Fehlercode oder haben keine Wirkung,
je nachdem ob das Kommando laut Beschreibung einen Fehler liefern kann.
Lesende Debug- und Device-Kommandos liefern je nach Kommando
entweder Dummy-Werte oder gar keine Daten,
evtl. auch in Verbindung mit einem Fehlercode.
Das DATAREQ-Signal zur Anforderung des Data-Modes
hat keine Wirkung.
Demzufolge wird auch das DATAACK-Signal
(Bestätigung Data-Mode) niemals aktiv.
Wenn Schreibzugriffe aufgrund eines gesetzten Schreibschutzes
unterbunden werden (z.B. weil man keine Schreibberechtigung auf das
Verzeichnis hat oder weil man das Verzeichnis im JKCEMU nur mit
Schreibschutz geöffnet hat),
erscheint die Fehlermeldung Read Only nur dann,
wenn sie für das gerade ausgeführte VDAP-Kommando
auch dokumentiert ist.
Ist das nicht der Fall, wird aus Kompatibilitätsgründen
Command Failed oder, falls auch dieser Fehlermeldung
für das gerade ausgeführte Kommando nicht dokumentiert ist,
Disk Full ausgegeben.
In diesen Fällen entspricht somit die angezeigte Fehlermeldungen
nicht ganz dem wirklichen Grund des missglückten Schreibzugriffs.