Betrieb von 16-Bit-pbm-Software unter 64-Bit-Windows (Vista 64, Windows 7, Windows 8, Windows 10)

Problembeschreibung

Die von mir verwendeten und empfohlenen Programme zur Unterstützung von Teilnehmern bzw. Spielleitern von pbm-Partien sind alle schon sehr alt. Entstanden sind sie um das Jahr 1990 herum, teilweise sogar noch auf ATARI-ST-Rechnern und wurden erst später auf IBM-kompatible PCs portiert. Deshalb verwenden alle diese Programme eine DOS-Oberfläche und sind 16-Bit-Programme.

Letzteres ist aber auf Rechnern mit dem Betriebssystem Windows Vista 64 ein Problem - denn dieses Betriebssystem unterstützt keine 16-Bit-Programme mehr. Gleichzeitig sind die Programme aber so alt, so umfangreich und so dialoglastig, dass sie bei einer Umstellung auf eine Windows-Oberfläche im Wesentlichen neu geschrieben werden müssten.

Eine Umgehung dieses Problems bietet die Verwendung eines DOS-Emulators, der innerhalb eines modernen Betriebssystems die Umgebung des alten DOS nachbildet und diesen Programmen damit die gewohnte Laufzeitumgebung bereitstellt. Ich verwende zu diesem Zweck den kostenlosen Open-Source-Emulator DOSbox in der Version 0.73, die ausdrücklich unter Windows Vista 64 lauffähig ist.

(UPDATE: Und auch unter Windows 7 sowie Windows 8, wie meine AUFSTIEG-Manager inzwischen festgestellt haben; ich selbst verwende ihn seit 2017 unter Windows 10.)

DOSbox-Installation

Die DOSbox wird ausgeliefert in Form eines Installationsprogramms DOSBox0.73-win32-installer.exe. Dieses wird auf dem Ziel-Rechner ausgeführt und installiert das Programm in ein frei wählbares Verzeichnis, welches dann das Programm dosbox.exe, einige DLLs (nachladbare Programmbibliotheken) und einige Textdateien enthält.

DOSbox-Konfiguration

Außerdem wird eine Konfigurationsdatei installiert - diese allerdings nicht ins Programmverzeichnis (das theoretisch schreibgeschützt sein darf), sondern irgendwo anders hin. In meinem Fall heißt die Konfigurationsdatei dosbox-0.73.conf und wurde ins Verzeichnis c:\users\Michael Schröpl\appdata\DOSbox\ installiert, also in ein Datenverzeichnis dieser Anwendung innerhalb meiner Windows-Benutzerkennung (damit das Programm von verschiedenen Benutzern auf demselben Rechner gemeinsam mit separaten Konfigurations-Verzeichnissen benutzt werden könnte, ohne dafür mehrfach installiert werden zu müssen - für private PCs wird das allerdings wenig nützen). Wenn man das Programm DOSbox über die Kommandozeile startet, dann kann man den Pfadnamen dieser Datei sogar als Parameter übergeben; mir selbst reicht der Default-Pfadname aus, solange ich weiß, wo die Datei steht.

Diese Konfigurationsdatei enthält eine Vielzahl an Parametern, mit denen man Details der DOS-Welt fein-tunen kann und die hauptsächlich für den Betrieb von alten Computerspielen relevant sein dürften. Am Ende der Konfigurationsdatei kann man eine Folge von Anweisungen, die bei jedem Start der DOSbox durchlaufen werden soll, festlegen - hiervon habe ich Gebrauch gemacht.

Um die einzelnen Programme in diese virtuelle DOS-Welt einzubinden, muss man innerhalb der Konfiguration reale Verzeichnispfade auf dem eigenen Rechner abbilden auf virtuelle Laufwerksbuchstaben innerhalb des Emulators. In meinem Fall sieht das folgendermaßen aus

[autoexec]
# Lines in this section will be run at startup.
MOUNT E P:\GMING\AB\EVO\
MOUNT G P:\GMING\AB\GOLF\BALLESTE\
MOUNT U P:\GMING\AB\UNITED\
MOUNT R P:\ETC\FORSCHUNG\RANGLIST\AB\
MOUNT T P:\ZUEGE\TEAMCHEF\
MOUNT P P:\

Damit stehen mir innerhalb des Emulators (der ansonsten bedient wird wie ein normales DOS-Fenster) die Laufwerke

zur Verfügung.

Ansonsten habe ich in der Konfigurationsdatei noch die Geschwindigkeit der DOS-Simulation von

cycles=auto

nach

cycles=max

geändert, um die volle Rechnergeschwindigkeit in meinen DOS-Programmen (vor allem EVO!) nutzen zu können.

USW und das DOS Protected Mode Interface

In diesem DOS-Emulator laufen fast alle meine pbm-Programme problemlos - mit einer Ausnahme: Das Programm USW von Robert Gunst. Dieses Programm wurde ursprünglich unter LINUX in GNU C/C++ entwickelt und später auf DOS-PCs portiert - und es meldet, dass ihm seine DJGPP-Umgebung fehlt.

Dazu habe ich von der Site http://www.delorie.com/pub/djgpp/current/v2misc/ die "binary distribution" in Form einer Datei csdpmi7b.zip heruntergeladen, aus dieser die Datei CWSDPMI.EXE extrahiert und sie in dasselbe Verzeichnis wie das Programm USW kopiert. Danach war die DOSbox in der Lage, USW zu starten; es erfolgt bei mir zwar immer noch eine Meldung "Warning: cannot open swap file c:\cwsdmpi.swp" (vermutlich, weil das Wurzelverzeichnis c:\ auf meinem Rechner schreibgeschützt ist), aber das scheint die Funktionsfähigkeit von USW nicht zu beeinträchtigen.

Der Autor hat 2011 für sein Programm auch eine unter Windows lauffähige Version erstellt, die sich ohne DOS-Emulator ausführen lässt.