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.


1. Allgemeines

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 ExtraUSB-Anschluss auf.

2. Optionen

Im Fenster JKCEMU USB-Anschluss können Sie neben dem Verzeichnis des emulierten USB-Speichersticks auch vier Optionen angeben:

3. Unterstützung langer Dateinamen

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.

4. Besonderheiten der USB-Emulation

4.1. Unterstützte Kommandos

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.

4.2. 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.