vRetro-Trip: MS-DOS 6.22 und Windows 3.1 in 2015

Durch einen kürzlichen Kommentar in diesem Blog bin ich auf eine interessante Abandonware-Webseite aufmerksam geworden. Das war für mich der Anlass, mich mal wieder in die Welt vergangener Software zu begeben (Vielen Dank für den Tipp, Frank!). Beim Durchstöbern der Software-Archive habe ich mich direkt an meine ersten Gehversuche mit dem Computer erinnert. Damals - 1993/1994 - gab es in meinem Elternhaus den ersten PC mit folgenden Eckdaten:

ESCOM-Rechner

  • ESCOM Desktop-Gehäuse
  • AMD 486DX Prozessor mit 66 Mhz Taktfrequenz
  • 14" CRT-Bildschirm mit 800x600 Pixel (16-bit)
  • 16 MB EDO RAM
  • 500 MB IDE-Festplatte
  • installiertes MS-DOS 5.0 und Microsoft Windows 3.1

Abgerundet wurde dieses Setup mit einem Panasonic KX-P1131 Nadeldrucker. Ich erinnere mich noch genau daran, wie ich als kleiner Junge gespannt meinem Vater beim Arbeiten zuschaute, bevor ich das erste Mal selbst die Hände an die Tastatur legen durfte.

Später wurde der Computer mit einem Creative Sound Blaster 16, einem CD-ROM-Laufwerk und einer Windows 95-Installation aufgewertet.

Stand heute

Windows 3.1-Desktop

In 22 Jahren IT-Geschichte hat sich sehr viel getan - die Beschaffung unterstützter Hardware (386/486/586) gestaltet sich stetig komplizierter und kostenintensiver. Sammler, die gewillt sind, ihren Bestand zu mininieren kennen die Lage des Markts und verlangen deutlich höhere Preise als früher. Ein Retro-Feeling mit realistischer Hardware ist demnach zwangsläufig mit entsprechenden Kosten verbunden. Gut, dass es auch andere Alternativen gibt.

Also, was kann man heute noch mit dem altertümlichen System anfangen? Zeit, einen tieferen Blick auf die Umsetzung zu werfen!

Virtualisierung

Das Problem der Hardware-Beschaffung kann man geschickt durch den Einsatz von Virtualisierung erschlagen. Einige aktuelle Produkte, wie beispielsweise VMware Workstation, unterstützen derzeit noch altertümliche Architektiruren. Fraglich ist jedoch, wie lange das noch so bleibt. Mit BOCHS gibt es einen Emulator, der ebenfalls für dieses Szenario in Frage kommt. Beim Einsatz von VMware-Produkten empfehlen sich folgende Einstellungen:

VM-Einstellungen

  • Virtuelle Hardware Version: 7 (nicht 4 verwenden, da diese keine IDE-Festplatten unterstützt!)
  • Betriebssystemvorlage: Microsoft Windows 3.1 bzw. MS-DOS
  • CPU: 1 vCPU
  • Arbeitsspeicher: 16 MB
  • Festplatte: 2 GB (IDE)

Beim Einsatz von Virtualisierung ergeben sich jedoch auch einige Probleme, die es zu lösen gilt. Besonders auffällig ist, dass sowohl MS-DOS als auch Windows 3.1/3.11 im Betrieb eine hohe CPU-Auslastung des Hypervisors verursachen. Die Ursache hierfür ist, dass das Betriebssystem nicht in der Lage ist, den Prozessortakt zu regulieren. Abhilfe schafft das Installieren zweier Programme:

  • DOSidle 2.0 - DOS-Treiber zur Freigabe nicht benötigter CPU-Leistung (idle). Es gibt auch eine neuere Version 2.1, die jedoch Probleme in Kombination mit der Speicherverwaltung EMM386 verursachen kann.
  • WQGHLT - Windows-Pendant hierzu

Ich habe ein Diskettenabbild erstellt, welches einige für den virtualisierten Betrieb essentielle Tools und Treiber enthält:

  • Eben erwähnte Idle-Treiber
  • CD-ROM Treiber
  • Treiber für AMD PCNET-Netzwerkkarten (dazu später mehr)
  • Windows 3.1/3.11 Jahr 2000-Patches
  • SVGA-Treiber und VMware-Patch

Zur Installation von DOSidle genügt ein einen Aufruf der entsprechenden Datei in die Datei AUTOEXEC.BAT aufzunehmen:

1C:\>EDIT AUTOEXEC.BAT
2...
3REM --- Start DOSidle ---
4C:\TOOLS\DOS\IDLE.EXE

Beim nächsten Boot wird das Starten des Programms wie folgt quittiert:

1DOSidle installed successfully.

Zur Installation des Windows-Pendants muss der Treiber WQGHLT.386 in das Verzeichnis C:\WINDOWS\SYSTEM kopiert und Sektion "[386Enh]" der Datei C:\WINDOWS\SYSTEM.INI um eine Zeile erweitert werden:

1C:\TOOLS\>cd WQGHLT
2C:\TOOLS\WQGHLT>copy *.386 C:\WINDOWS\system
3C:\TOOLS\WQGHLT>cd
4C:>cd windows
5C:\WINDOWS>edit system.ini
6...
7[386Enh]
8...
9device=wqghlt.386

Beim nächsten Start von Windows wird der Treiber initialisiert und geladen.

Gepatchter SVGA-Treiber

Ebenso wichtig und auch nützlich ist eine großzügiere Bildschirmauflösung als 640x480, wie sie der standardmäßig verwendete VGA-Treiber von Windows 3.1/3.11 bietet. Andere mit der grafischen Oberfläche ausgelieferte Treiber funktionieren leider nicht, wenn ein VMware-Hypervisor zum Einsatz kommt. Im Internet existiert ein für VMware-Produkte angepasster Patch eines generischen SVGA-Treibers (bei VirtualBox ist es übrigens ähnlich). Mithilfe des gepatchten Treibers lassen sich Auflösungen bis zu 1024x768 Pixel anzeigen. Zur Installation müssen zuerst der SVGA-Treiber und der Patch auf das System übertragen werden. Anschließend wird der Patch angewandt:

1C:\svga\>svga.exe
2...
3C:\svga\>vgapatch.com p

Alternativ habe ich ein Diskettenabbild bereitgestellt, das den bereits gepatchten Treiber enthält. Die Dateien müssen einfach auf die Festplatte des Systems übertragen werden:

1C:\>mkdir C:\svga\
2C:\>xcopy a: C:\svga\ /s /e

Zur Installation muss das Installationsprogramm setup im Windows-Verzeichnis ausgeführt werden. Bei "Anzeige" muss "Andere" unter Angabe des Pfads C:\svga angegeben werden. In der Treiberübersicht ist anschließend der Eintrag "Super VGA 1024x768 256 Small" auszuwählen:

1C:>cd windows
2C:\WINDOWS\>setup

Während der Installation wird nach dem Speicherort der Datei VGA850.FON gefragt - diese befindet sich auf der 2.Diskette der Windows 3.1/3.11 Installationsmedien. Anschließend wird eine Anfrage für die Datei EGA40850.FON wiederholt - hier ist wieder der Ort des SVGA-Treibers auszuwählen.

Mit HS-CDROM gibt es ein komfortables Programm, welches die MSCDEX (Microsoft MS-DOS CD-ROM Extensions) installiert und die Dateien CONFIG.SYS und AUTOEXEC.BAT anpasst.

1A:>cd cdrom
2A:\cdrom>install

DOS-Shell mit CD-Symbol

Nach dem nächsten Boot steht das CD-ROM-Laufwerk zur Verfügung, was auch in dosshell mit einem dedizierten Icon (das ist mir damals im Alter von 7 Jahren gar nicht aufgefallen!) ersichtlich ist.

Abschließend sollte man die Mausgeschwindigkeit in Windows auf die kleinste Einstellung stellen - andernfalls ist die Maus nahezu unbedienbar, weil der Cursor viel zu empfindlich reagiert.

Für Microsoft Windows 3.1/3.11 existieren sogar Euro-Patches, die das System um die "neue" Währung erweitern und auch die Schriftarten aktualisieren:

1C:\TOOLS\>cd EURO_DEU
2C:\TOOLS\EURO_DEU\>W31_EURO.BAT C:\WINDOWS\
3C:\TOOLS\EURO_DEU\>cd ..
4C:\TOOLS\>copy *.fon C:\WINDOWS\system /y

Windows 3.1 - Ländereinstellungen

Anschließend steht die Währung inklusive Schriftarten zur Verfügung.

Soll das Retro-Erlebnis auch von Sound geprägt sein, muss ein Creative Sound Blaster 16 emuliert werden. Für diesen stehen DOS- und Windows-Treiber zur Verfügung. Beim Einsatz von VMware-Produkten muss die Konfigurationsdatei der VM die folgenden Zeilen enthalten:

1sound.present = "TRUE"
2sound.virtualDev = "sb16"
3sound.autodetect = "TRUE"

Der Treiber wird wie folgt über die DOS-Kommandozeile installiert:

1C:\TOOLS\>cd sb16
2C:\TOOLS\SB16>INSTALL.EXE

Das Programm passt automatisch die DOS-typischen Konfigurationsdateien an. Nach der Installation steht innerhalb Windows eine neue Programmgruppe zur Verfügung - hier findet sich der Creative Mixer, mit welchem die Ausgänge der virtuellen Soundkarte gesteuert werden können. Mit IIS WinPlay 3 steht ein MP3-Player zur Verfügung, mit welchem sogar 320 kbit/s Musikstücke abgespielt werden können - ein Traum für Retro-Liebhaber. 😄

Software-Auswahl

Um in den Genuss des vollständigen Retro-Flairs zu gelangen, darf damals zeitgemäße Software natürlich nicht fehlen:

  • Microsoft Office 4.2c
  • Visual Basic 3.0 Professional
  • Zusatz-Software der "Supplemental Disk" von MS-DOS 6.22
  • Und natürlich: DOS-Spiele! 🙂

An Office 4.x kann ich mich noch gut erinnern. Es bestand aus Word 6.0, Excel 5.0 und PowerPoint 4.0. Microsoft Access war damals noch nicht Bestandteil der Suite, es musste separat erworben werden. Dem Rechner meiner Eltern lag seinerzeit Access 2.0 bei.

Damals - 1998/99 -  haben wir Office 4.x in der Grundschule in einem Computerkurs verwendet, um erste Erfahrungen mit dem PC zu sammeln. Auch zuhause habe ich von meinem Vater einige Grundlagen in Word und Excel erlernt. Aus heutiger Sicht ist es beeindruckend, wie leistungsfähig die Software damals schon war. Ich habe mich mal durch die Menüs geklickt und die verschiedenen Funktionen ausprobiert. Gemessen an dem, was ich auf der Arbeit an Excel-Funktionalität benötige, waren damals schon alle wichtigen Funktionen gegeben. Sogar AutoFilter, Pivot-Tabellen und Diagramme (Microsoft Graph) waren bereits schon möglich. Vermutlich könnte meine gesamten Tabellenarbeiten auch genau so gut mit der alten Excel-Version erledigen. PowerPoint verfügte damals schon über die bekannten Cliparts, Vorlagen und Effekte. Auffällig sind lediglich die überaus knalligen Farben - aus heutiger Sicht designtechnisch eher suboptimal. 🙂

QBasic war meine erste Programmiersprache, bevor einige Jahre später Visual Basic 6.0 folgte. Es machte mir großen Spaß, grafische Anwendungen zu gestalten und durch Code zu Leben zu erwecken. Besonders interessant wurde die kostenlose Learning Edition, der Entwicklungsumgebung, die jedoch keine EXE-Dateien erstellen konnte - was mich aber keineswegs am Lernen hinderte. Damals entdeckte ich auch den KnowWare-Verlag für mich - dieser vertreibt Fachliteratur, die den Anspruch hat, besonders einsteigerfreundlich und verständlich zu sein. Für Visual Basic 6.0 gab es damals auch ein gutes Heft, welches mittlerweile kostenlos erhältlich ist - für mich war das der Einstieg in die Welt der Programmierung. Später halfen mir weitere Hefte dabei erste Erfahrungen mit Delphi, Java und C/C++ zu sammeln. Die Supplemental Disk von MS-DOS 6.22 enthielt unter anderem auch die Entwicklungsumgebung QBasic. Gegenüber dem kostenpflichtigen QuickBASIC konnte QBasic keine EXE-Dateien erstellen, Quellcode aber ausführen. Ich erinnere mich schmunzelnd an zahlreiche Stunden, die ich im integrierten Hilfebereich der Entwicklungsumgebung verbracht habe, um die Programmiersprache zu verstehen.

Neben QBasic enthielt die 4.Diskette von MS-DOS auch die optionale dosshell, welche aufgrund einiger technischer Defizite nach MS-DOS 5.0 nicht mehr vorinstalliert wurde. Speziell Multitasking- sowie Paging- und Swapping-Fähigkeiten fehlen der textorientierten Benutzeroberfläche. Neben der Shell waren für mich seinerseits auch die zwei QBasic-Spiele NIBBLES.BAS und GORILLA.BAS wichtig. Mit NIBBLES.BAS existierte ein Spiel, welches dem später sehr beliebten Handy-Spiel Snake stark ähnelte. Neben der Grafik ähnelte auch das Gameplay: der bzw. die Spieler mussten zwei Schlangen durch verschiedene Labyrinthe steuern und dabei Punkte einsammeln. Eingesammelte Punkte führen zur Verlängerung der Schlange, was das Spiel irgendwann schwieriger macht. GORILLAS hingegen ist ein Artillery-Spiel, bei dem sich zwei auf Hochhäusern stehende Affen mit explodierenden Bananen bewerfen. Ziel ist es, den anderen Spieler mit einer solchen auszuschalten. Zur Steuerung des biologischen Projektils dienen im Wesentlichen die Parameter Winkel (Angle), Geschwindigkeit (Velocity) und Schwerkraft (Gravity).

Vinyl Goddess from Mars (1995)

Das Spielen von MS-DOS Spielen in virtualisierten Umgebungen ist prinzipiell keine gute Idee, da in der Regel keine altertümlichen Prozessoren emuliert werden. Die Berechnungen vieler damaliger Spiele waren an damalige Prozessorlimitierungen gebunden - deutlich schnellere Prozessoren bedeuten oftmals nicht mehr steuerbare oder abstürzende Spiele. Hier ist es ratsamer auf einen Emulator, wie beispielsweise die kostenlose DOSBox, zurückzugreifen. Damit lassen sich sämtliche Klassiker auch auf modernen Rechnern spielen - meine langjährigen Favoriten:

Mein absolutes Lieblingsspiel war Vinyl Goddess from Mars -  meiner Meinung nach eine Art "Vorgänger" von Lara Croft. Das Plattform-/Side-Scrolling-Spiel ist an das ältere Jill of the Jungle angelehnt. In mehreren Episoden muss sich die Protagonistin Vinyl, die aufgrund eines Defekts ihres Raumschiffs auf einem nicht näher beschriebenen Planeten gestrandet ist, zahlreichen Gegnern beweisen, um ihr Raumschiff zu reparieren. Für damalige Verhältnisse wies das Spiele eine ansprechende Grafik auf und auch das Jump&Run-Gameplay wusste zu überzeugen. Ein typischer 8-bit Soundtrack rundete das Spiel ab - ich weiß nicht, wie oft ich es durchgespielt habe. 🙂

Heartlight (1993)

Nie komplett durchgespielt habe ich hingegen Heartlight - ein moderneres Remake von Boulder Dash. Neben Atari- und Amiga-Varianten erschienen 1994 zwei MS-DOS Versionen mit 20 (Shareware) bzw. 70 Leveln (Heartlight Deluxe). Das Spielprinzip ist recht simpel: es mussten Punkte eingesammelt werden, um den Ausgang eines Levels zu öffnen. Um alle Punkte einzusammeln, mussten einzelne Elemente (Brücken, Steine, Stahl, Gras, Tunnel, Mauern) benutzt, freigelegt oder gesprengt werden. Die Puzzles wurden durch herunterfallende Steine erschwert.

In Search of Dr. Riptide (1994)

Ein weiteres häufig gewähltes Mittel zum Zeitvertreib war auch In Search of Dr. Riptide. Hier nimmt der Spieler die Rolle eines Marinekriegers ein, dessen Aufgabe es ist, das geheime Unterwasserlabor des Dr. Riptide aufzuspüren und diesen an einem bösartigen Plan zu hindern. In einem U-Boot mussten verschiedene Levels gemeistert werden, in welchen zahlreiche Gegner (Piranhas, Haifische und andere Fischarten) zu besiegen sind. Einzelne Puzzles können nur durch Einsatz eines kleinen ferngesteuerten U-Boots (Jason) gelöst werden. Ein weiterer Faktor, der das Spiel erschwerte, waren Lufttanks, die sich stetig leerten - diese konnten nur durch Auftauchen oder Power-Ups gefüllt werden. Andere zu sammelnde Gegenstände waren Diamanten und Schlüssel, die notwendig waren, um Türen zu öffnen.

Sam & Max - Hit the Road (1993)

Last but not least erinnere ich mich noch an Sam & Max - Hit The Road, ein äußerst unterhaltsames Click & Point-Adventure von LucasArts. In diesem Spiel steuerte der Spieler die Freelance Police, bestehend aus dem Hund Sam und Max - einem gewitzten Duo mit überaus schwarzem Humor. Das Ziel bestand darin die Ursache einer mysteriösen Entführung eines Yeti namens Bruno (Hauptattraktion eines Kuriositäten-Kirmes) zu ermitteln. Hierbei mussten Personen verhört und zahlreiche Puzzles gelöst werden. Die kniffligen Aufgaben sind mit überaus lustigen, für LucasArts typischen, Dialogen gespickt. Der volle Spielspaß entsteht jedoch erst mit der später erschienen Version mit musikalischer Untermalung und synchronisierten Dialogen - es gab sogar eine Version mit deutschen Synchronsprechern. Besonders charmant ist die Synchronstimme von Max, die von Sandra Schwittau gesprochen wird. Fans der Simpsons erkennen sofort, dass es die gleiche Synchronstimme ist, die auch Bart seit jeher vertont. Dieses Spiel habe ich ebenfalls unzählige Male durchgespielt, auch nach dem DOS-Zeitalter. Mit ScummVM gibt es einen erstklassigen Emulator für LucasArts-Spiele, der für zahlreiche Plattformen erhältlich ist. Vor einigen Jahren habe ich das Spiel auch auf einem Palm Tungsten-PDA gespielt - mittlerweile gibt es sogar Fassungen für Android- und iOS-Geräte.

Netzwerk

PING unter MS-DOS 6.22

Wie ich festgestellt habe, gibt es später auch einen vollwertigen TCP/IP-Netzwerkstack für MS-DOS und Microsoft Windows 3.1/3.11. Aufgrund mangelnder Hardware und Kenntnisse hat sich damals meiner Aufmerksamkeit entzogen. Mit damals aktuellen Protokollen, wie IPX und NetBEUI, lässt sich heute wenig bis gar nichts mehr anfangen - mit TCP/IP sieht das anders aus.

Bei dem Einsatz von gängigen Hypervisoren ist es möglich eine AMD PCNET-Netzwerkkarte zu emulieren. Für MS-DOS und Windows 3.1/3.11 gibt es hierfür entsprechende Treiber, die den Einsatz der Netzwerkkarte ermöglichen. In Kombination mit Microsofts LAN-Manager kann man so eine altertümliche Windows-Installation in IPv4-Netzwerken betreiben - sogar DHCP und DNS werden unterstützt. 🙂

Dennoch muss ich anmerken, dass ein stabiler Einsatz nicht möglich ist. In Kombination mit den bereits erwähnten Treibern und Tweaks hatte ich häufig Stabilitätsprobleme. Oftmals ist das System einfach während der Verwendung netzwerkfähiger Anwendungen eingefroren oder wollte erst gar nicht sauber booten. Bestandteil der Windows-Software ist auch ein FTP-Client, mit welchem sich auch wirklich Verbindungen zu aktuellen Servern herstellen lassen. Mit den noch für Windows 3.1/3.11 erhältlichen Web-Browsern Internet Explorer 5.01 und Opera 3.62 ist heute aufgrund fehlender UTF8- und HTML4+-Unterstützung jedoch nichts sinnvolles mehr anzufangen.

FTP-Sitzung unter Windows 3.11

Prinzipiell ist es also möglich, alte DOS- und Windows-Installation den Zugang zum Netzwerk zu ermöglichen. Einen wirklichen Mehrwert hat das aber nicht - es ist eine sinnlose Spielerei. 😄

Ich will daher an dieser Stelle auch gar nicht näher auf die Installation eingehen, da das Ganze keinen signifikanten Mehrwert bietet. Wer das Experiment dennoch wagen möchte, findet hier eine gute Anleitung für Windows 3.11 - das Ganze lässt sich auch mit VMware-Produkten virtualisierte Umgebungen umsetzen.

Downloads und Links

Zusammenfassend noch eine Sammlung nützlicher Downloads und Links:

  • Webseite mit Treibern und Anleitungen: Klick mich!
  • Diskettenabbild mit grundlegenen Tools und Treibern für virtualisierte DOS-/Windows-Gäste: Klick mich!
  • Diskettenabbild mit gepatchtem VMware SVGA-Treiber: Klick mich!
  • Anleitung zur Netzwerkinstallation unter Windows 3.11: Klick mich!

Übersetzungen: