Open Watcom unter Windows 3.1 benutzen

Das Betriebssystem installieren

Wer möchte kann Windows 3.1 direkt auf einem geeigneten PC installieren, aber heutzutage einfacher ist die Installation in einer DOSBox. Das funktioniert besser als in einer "normalen" Virtual Machine. Eine sehr ausführliche Anleitung gibt es hier, die Kurzfassung lautet:

Danach sollte es möglich sein, Windows 3.1 in hohen Auflösungen wie etwa 1024x768 sowie mit hoher Farbtiefe (64k bzw. TrueColor) laufen zu lassen. Wer das noch nie gesehen hat, sondern mit 16-Bit-Windows immer nur 640x480 Pixel in 16 Farben assoziiert hat, der wird Bauklötze staunen...

Windows 3.1 mit 64k Farbtiefe
Windows 3.1 mit 64k Farbtiefe

Die Entwicklungsumgebung installieren

Auf openwatcom.org findet man unter dem Punkt "Download" den "Installer for C/C++" in verschiedenen Versionen. Für unsere Zwecke benötigen wir die Version für DOS, denn die Version für Windows bezieht sich auf Win32. Derzeit aktuell ist open-watcom-c-dos-1.9.exe. Die Installationsdatei muss in die DOSBox befördert und dort ausgeführt werden, die Installation selbst läuft im DOS-Modus ab (unabhängig davon, ob sie vor dem Start von Windows oder von Windows aus gestartet wird). Durch die Dialoge navigiert man mit TAB und Leerzeichen.

Installation von Open Watcom
Installation von Open Watcom

Es lohnt sich den Installationsumfang zu reduzieren, eine vollständige Installation benötigt rund 315 MB. Wer dennoch eine vollständige Installation durchführen möchte, der muss höchstwahrscheinlich das Ziellaufwerk mit der Option -size bzw. -freesize mounten, damit genügend Platz verfügbar ist. Derzeit werden Laufwerke von DOSBox so gemountet, dass immer 250 MB frei sind (also dynamisch mitwachsend).

Benötigt werden mindestens folgende Komponenten:

Damit kommt man auf deutlich unter 50 MB. Die Hilfe-Dateien lassen sich auch von der Webseite als PDF runterladen und sind wirklich lesenswert.

Um die grafische Entwicklungsumgebung (C:\WATCOM\BINW\IDE.EXE) nutzen zu können ist noch eine manuelle Änderung der Datei C:\WINDOWS\SYSTEM.INI im Windows-Verzeichnis notwendig: hier muss im Abschnitt [386Enh] eine Device-Zeile mit dem Wert wdebug.386 hinzugefügt werden. Andernfalls erhält man im späteren Verlauf die Meldung "VxD: WDEBUG.386 not present". Warum man das aus dem Manual bzw. der FAQ herauslesen muss, anstatt dass es das Installationsprogramm für einen erledigt, erschließt sich mir nicht so ganz.

HELLOWIN.C übersetzen

Mit der Kommandozeile

Auf der Kommandozeile geschieht das Übersetzen mit dem Programm C:\WATCOM\BINW\WCL.EXE ("Open Watcom C/C++16 Compile and Link Utility"), das sich bei ordentlicher Installation bereits im Suchpfad befindet. Mit der Option -bcl=windows teilt man mit, dass ein Windows-Programm erzeugt werden soll. Das allein reicht aber noch nicht, man erhält noch Compiler-Fehler auf Grund fehlender Include-Dateien. Hier gibt es zwei Möglichkeiten:

Beim zweiten Weg sähe die Befehlszeile z.B. wie folgt aus:

C:\PROJ\HELLO>wcl -bcl=windows -i=c:\watcom\h\win hellowin.c

Heraus fällt eine ca. 2 KB große HELLOWIN.EXE, die unter Windows ausgeführt werden kann.

HELLOWIN.EXE unter Windows 3.1
HELLOWIN.EXE unter Windows 3.1

Mit der grafischen Entwicklungsumgebung

Die Open-Watcom-Suite bringt eine Vielzahl an Einzelprogrammen mit. Für die "normale" Entwicklung wird die Open Watcom IDE verwendet. Dahinter steht C:\WATCOM\BINW\IDE.EXE, die auch manuell gestartet werden kann.

Programm-Manager-Gruppe für Open Watcom Open Watcom - IDE

Neues Projekt anlegen

Als erstes wird ein neues Projekt angelegt. Dabei wird der Name und das Arbeitsverzeichnis festgelegt (in-source-build). Es werden anders als z.B. bei Visual C++ keine weiteren Unterverzeichnisse angelegt. Die Default-Einstellungen "Win16" und "Executable" passen.

Open Watcom - File-Menü Open Watcom - Auswahl des Projektnamens Open Watcom - Target-Dialog

Neue Quellcode-Datei hinzufügen

Als nächstes müssen dem Projekt noch Quellcode-Dateien hinzugefügt werden. Dies geschieht über den "Add File(s)"-Dialog, der etwas unintuitiv ist: zunächst fügt man die Dateien in eine Liste von Dateien hinzu, die dann mittels Klick auf "Close" hinzugefügt werden. Dabei können die Dateien entweder per Klick auf "Add" zu der Liste hinzugefügt werden, oder durch Doppelklick auf den Dateinamen im oberen Bereich.

Open Watcom - Source-Menü Open Watcom - Hinzufügen von Dateien Open Watcom - Bestätigung des Dialogs

Projekt übersetzen und ausführen

Durch Klick auf den "Make"-Button wird das aktuelle Target erstellt. Alternativ kann man auch aus dem Menü "Targets" den Eintrag "Make" wählen (oder F4 drücken). Bei nur einem Projekt hat dies den gleichen Effekt wie "Make All" (F5).

Durch Klick auf den "Run"-Button bzw. "Targets"/"Run" (Strg+R) wird das Programm gestartet.

Open Watcom - Build-Button Open Watcom - Run-Button Open Watcom - das laufende Programm

Weitere Funktionen der Entwicklungsumgebung

Die grafische Entwicklungsumgebung kann noch viel mehr. Im Folgenden möchte ich ein paar nützliche Funktionen zeigen, auf die ich bereits gestoßen bin. Wer ernsthaft mit der Open Watcom IDE arbeiten möchte, der sollte unbedingt das Handbuch GUITOOL.PDF lesen (entweder die PDF-Handbücher mit installieren, oder online auf der Webseite).

Es lohnt sich übrigens in den Kontextmenüs (Rechtsklick) zu stöbern. Da kommt man nicht unbedingt drauf, weil das für Anwendungen unter Windows 3.x unüblich ist...

Quellcode editieren

Über einen Doppelklick auf eine Datei in der Projektansicht (oder über die verschiedenen Menüs) öffnet sich der Quellcode-Editor. Dieser besitzt die üblichen Features inkl. Syntax-Highlighting und Textsuche mit regulären Ausdrücken.

Open Watcom - Edit-Button Open Watcom - Text Editor

Debuggen

Nach dem Klick auf den "Local Debug"-Button (bzw. "Targets"/"Local Debug" oder Strg+D) wird das Programm ausgeführt und sofort in der ersten Zeile von WinMain angehalten. Ich habe noch nicht viel mit dem Debugger gearbeitet, aber auf den ersten Blick sieht er recht ordentlich aus. Im Screenshot wurde das Programm beim Verarbeiten von WM_PAINT angehalten um zu demonstrieren, wie eine Struktur dargestellt wird.

Sehr hübsch ist auch der Splash-Screen, der bei heutigen Ladezeiten viel zu kurz zu sehen ist.

Open Watcom - Debug-Button Open Watcom - Debugger Open Watcom - Debugger-Splash-Screen

Window Messages beobachten

Der "Spy" ist ein sehr nützliches Hilfsmittel zur Fehlersuche, mit dem die Window Messages, die an ein bestimmtes Fenster gesendet werden, sichtbar gemacht werden können. Um die Ausgabe übersichtlicher zu gestalten können Filter definiert werden, die nur bestimmte Nachrichten oder Gruppen von Nachrichten (z.B. alle Maus- oder Clipboard-Nachrichten) passieren lassen. Außerdem können die Nachrichtenprotokolle gespeichert und somit bequem gegeneinander verglichen werden.

Der Spy kann über "Actions"/"Spy" gestartet werden, oder manuell über WSPY.EXE.

Open Watcom - Spy

Profiling

Open Watcom bietet auch Unterstützung für Sampling und Profiling. Beim Sampling wird das untersuchte Programm in (halbwegs) regelmäßigen Intervallen unterbrochen und die jeweils aktuelle Position im Programmcode aufgezeichnet. Die so entstehenden Sample-Dateien können später mit dem Profiler grafisch dargestellt werden um herauszufinden, wie oft das Programm an welcher Stelle "erwischt" wurde. Mit dieser Information kann darauf geschlossen werden, in welchen Programmteilen die meiste Laufzeit verbracht wird, wo sich also eine Optimierung am ehesten lohnt.


Zurück zur Hauptseite