[ Zu JKCEMU ]
Emulation eines 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 sowie ein
daran angeschlossenes USB-Massenspeichergerät.
Andere USB-Geräte werden nicht unterstützt.
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.
Bild: Festlegen des USB-Verzeichnisses
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.
Achtung! 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 trotzdem einen Unterschied:
Im Original werden nur FAT-formatierte USB-Massenspeicher
unterstützt.
Bei FAT gibt es für jeden langen Dateinamen 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.
In der Emulation aber kann jedes beliebige Verzeichnis als
emulierter Speicherstick verwendet werden, unabhägig
vom Dateisystem.
Aus diesem Grund gibt es dort auch keine kurzen Äquivalenznamen,
was zur Folge hat, dass das emulierte VDIP-Modul nur die Dateien
und Verzeichnisse sieht, die dem 8:3-Schema entsprechen.
Dateien und Verzeichnisse mit langen Namen werden ausgeblendet.
Optionen
Im Fenster JKCEMU USB-Anschluss können Sie neben
dem Verzeichnis des emulierten USB-Speichersticks auch drei Optionen
angeben:
-
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 das auf Kleinschreibung ändern.
-
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 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, weil sie z.B. per Hand
gesetzt werden muss und der Anwender keine Lust zur korrekten
Eingabe hatte, werden auch die Zeitstempel der letzten Änderung
falsch gesetzt werden.
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
auf dem USB-Speicher die neue Datei auch den aktuellen
Zeitstempel erhält und nicht den der Quelldatei.
Besonderheiten/Einschränkungen der USB-Emulation
Unterstützte Kommandos
JKCEMU simuliert alle Kommandos der VDAP-Firmware.
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 direkte 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 ebenfalls keine Wirkung.
Demzufolge wird auch das DATAACK#-Signal
(Bestätigung Data-Mode) niemals aktiv.
Fehlermeldungen bei unterbundenen Schreibzugriffen
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.
Zeitstempel
Als Zeitstempel wird nur der letzte Änderungszeitpunkt
unterstützt.
Beim VDAP-Kommando DIRT haben deshalb alle drei
Zeitstempel (Dateierzeugung, letzter Zugriff und letzte Änderung)
immer den gleichen Wert, nämlich den der letzten Änderung.
© 2012 Jens Müller