Windows 2 Programmierung mit Microsoft C und passendem SDK
Warum Programmierung auf einem so altem System ? Zum einen der besondere Reiz es auszuprobieren: Bekommt man heute noch die Umgebung Zustande mit
der sich einst die Programmierer aller Welt aufgemacht haben um den PC das "DOS" auszutreiben ? Zum anderen um ein Gefühl zu bekommen, mit welchen
Hürden diese Leute "gekämpft" haben. Viele Dinge die uns heute vertraut sind wie graphische Entwicklungsumgebungen, integrierte Debugger, Codesensitive
Editoren und praktisch unbegrenzte Ressourcen wie Speicherplatz, CPU Performance und bereits vorhandene Bibliotheken, waren im Bereich der PC / XT
Ära nicht gegeben. Ich wollte wissen, wann sind Grenzen erreicht und zum anderen meine 30 Jahre ungenutzten Programmierkenntnisse aus dem Studium
mal wieder auf die Probe stellen. Schon zu Beginn begannen die Probleme. Doch dazu mehr in den Kapiteln zu den Übungen.
Als erstes muß man sich die Software besorgen. Das ist gar nicht so schwierig wie gedacht. Mittlerweile sind viele WEB Archive Lieferanten alter
Original Software. Aber auhc hier gilt nach wie vor das Copyright der Hersteller. Ich werde hier also nur die verwendete Software erwähnen und keinerlei
Links zu den Softwarepaketen geben. Um gültige Lizenzen sollte sich jeder selber kümmern. Insbesondere ist das geistige Eigentum, das mit viel Aufwand
und Kosten in die Software geflossen ist, durchaus ein Entgelt wert.
Hier also die Liste der benötigten Software
- Ein komplett eingerichtetes / installiertes Windows 2 System
- Den Microsoft C Compiler in der Version 4.0
- Den Microsoft Macro Assembler in der Version 1.0
- Das Microsoft Windows SDK für Windows 2
- Zur besseren Codeeingabe - Ein bildschirmorientierter Editor
Es ist natürlich reine Geschmackssache wie die Windows Umgebung entsteht. Ich habe mir beide Versionen eingerichtet. Zum einen die "reale" Umgebung
auf einem Atari PC3 und zum anderen die virtuelle Umgebung auf einem Emulator am modernen PC (Per "PCem Version 16"). Die virtuelle Umgebung hat den
Reiz, dass ich die Software relativ problemlos auf den Rechner bekomme und zudem auch noch genau den Atari PC3 emulieren kann (inkl. ROM Image). Die
reale Umgebung dient dann zum echten ausprobieren und um vergleichen zu können, ob die Emulation ordentlich funktioniert.
Der zusätzliche Editor empfiehlt sich für alle, die ein MS-DOS System verwenden (typischerweise aus der Zeit Version 3.x) das mit "EDLIN" befrachtet
ist. Es hat natürlcih seinen Reiz auch diese "Leiden" kennen zu lernen. Für meinen Geschmack wollte ich es aber hier nicht übertreiben :-)
Editoren gibt es manigfaltig. Da kann sich jeder etwas suchen im Freeware Bereich. Ich nutze gerne den "terse" Editor : Effizient, kompakt und die Befehle
zur Steuerung an Textprozessoren angelehnt (Wordstar und ähnliche). Hier ein paar Eindrücke von der Umgebung
(Für eine vergrößterte Darstellung die Bilder anklicken)
Natürlich empfiehlt sich auch die richtige Lektüre, inbesondere dann, wenn die praktische Übung sehr lang her ist (wie in meinem Fall). Dazu bietet
sich das Buch von Charles Petzold an. Bekannt als Windows Pabst handelt es sich um das erste Werk seiner Reihe der "Windows Programmierung" erschienen
im Microsoft Press Verlag. Das Buch bietet viel Hintergrundwissen und praktische Übungen die hier als Vorlage dienen.
(Für eine vergrößterte Darstellung die Bilder anklicken)
Einrichtung des C-Compilers
Hier nun die Installation der Komponenten auf dem Rechner für die Entwicklungsumgebung. Zuerst geht es an das Einrichten des C-Compilers. Dafür wird
die Verzeichnisstruktur angelegt. Ich nutze als Basisverzeichnis C:\MSC40. In diesem Verzeichnis werden drei weitere Unterzeichnisse erzeugt:
Diese Verzeichnisse enthalten später die Dateien die der Compiler benötigt. Dazu muss man noch die Umgebungsvariablen sowie den Pfad setzen,
damit der Compiler die Dateien später auch findet.
- PATH C:\MSC40\BIN
- SET INCLUDE=C:\MSC40\INCLUDE
- SET LIB=C:\MSC40\LIB
- SET TMP=C:\
Beispielhaft sieht das dann wie folgt aus:
Auf die Vorbereitung folgt das Kopieren der notwendigen Dateien. Dazu die Diskette "Compiler" (das ist bei mir die erste Diskette, alle im 360KB
Format) einlegen und sich einmal den Inhalt anzeigen lassen (um sicher zu gehen das es die Richtige ist).
Die Dateien der Diskette 1 werden komplett in das Verzeichnix C:\MSC40\BIN kopiert.
Auf der Diskette 2 sind folgende Dateien:
Alle ausführbaren Dateien kommen auch in das Verzeichnis C:\MSC40\BIN.
Diskette 3 einlegen („C INC LIB S“). Diese enthält die Include und Library Dateien (Modell „SMALL“)
Von dieser wird die Datei „link.exe“ auch noch in das Verzeichnis „C:\MSC40\BIN kopiert.
Das Verzeichnis C:\MSC40\BIN sollte jetzt wie folgt aussehen:
Von der im Laufwerk befindlichen Diskette werden nun die Header (*.h) Dateien in die entsprechenden Verzeichnisse auf der Festplatte
kopiert. Dazu benötigen wir noch ein Unterverzeichnis „SYS“ im „INCLUDE“ Verzeichnis und kopieren dann die Dateien.
Danach werden noch die *.h Dateien aus dem Hauptverzeichnis der Diskette A: kopiert. Ziel ist das Verzeichnis C:\MSC40\INCLUDE. Die folgende
Grafik zeigt den Start des Kopiervorgangs. Es sind insgesamt 26 Dateien.
Das Verzeichnis "c:\msc40\include\" enthält nach dem Kopiervorgang 29 Dateien (26 kopierte und das Verzeichnis "SYS")
Und im Verzeichnis C:\MSC40\INCLUDE\SYS sind nun folgende Dateien:
Von Diskette 3 werden jetzt die LIB Dateien kopiert: SLIBC.LIB, SLIBFP.LIB, EM.LIB und LIBH.LIB
Dies ist das Minimal Setup für das Memory Modell „SMALL“ was als erstes für die Programmierung von Windows 2.03 Programmen genügen wird.
Zum C-Compiler benötigen wir noch den Microsoft Macro Assembler : Ich nutze die Version 4.0 die auf einer 360KB Diskette enthalten ist
und kopiere die Dateien in ein Unterverzeichnis C:\MASM.
Installation des Windows Software Development Kits für Windows 2
Das Kit besteht aus 5 Disketten. Das SDK wird über eine Installationsdatei die sich auf der Diskette „UTILITY“ befindet installiert. Die
Installation funktioniert (komischerweise) nur über das Laufwerk „A:“. In meinem System ist das 720KB Diskettenlaufwerk „B:“. Somit muss
das Laufwerk A: auf Laufwerk B: zeigen. Das erreicht man mit dem DOS Befehl „assign a=b“. Mit der Diskette „UTILITY“ in Laufwerk „B:“
ergibt sich folgende Ausgabe des „DIR“ Befehls nach dem assign Kommando:
Die zweite Diskette ("SOFTDEV1") enthält
und die dritte Diskette („SOFTDEV“) beinhaltet
Auf der „UTILITY“ Diskette ist auch eine README.WRI enthalten die noch einige Hinweise für Profis enthält, was während der Installation geschieht.
Von der Diskette „UTILITY“ die „INSTALL.EXE“ aufrufen und es erscheint folgender Dialog
Nach Betätigen der ENTER Taste erscheint der Hinweis, welche Daten man bereithalten muss um die Installation erfolgreich abschließen zu können:
Mit ENTER startet die Installation. Das Setup Programm fragt als erstes nach dem BIN Verzeichnis. Bei mir im Beispiel ist es C:\MSC40\BIN
Nach erneuter Betätigung der ENTER Taste fragt das Programm nach dem Pfad wo derzeit Windows Version 2 installiert ist auf der Festplatte
Erfreulicherweise übernimmt das SETUP die im ersten Dialog gewählten Basispfad (C:\MSC40) um das INCLUDE Verzeichnis zu wählen
Nach Bestätigen mit der ENTER Taste erfolgt die Abfrage ob ein Microsoft C Compiler genutzt wird. Diese Anfrage mit „Y“ und ENTER beantworten
und die entsprechende Version (hier die Version 4.0) wählen durch Drücken der entsprechenden Zahl
Nach der Auswahl „1“ erfolgt nun noch die Pfadangabe für die Library Dateien. Der Basispfad aus dem ersten Dialog ist bereits voreingestellt
Durch Drücken der ENTER Taste erfolgt die Aufstellung der gewählten Optionen
Mit ENTER erscheint der Dialog mit dem Hinweis die zu prüfen, ob die richtige Diskette UTILITIES eingelegt ist
Nach drücken der ENTER Taste startet der Kopiervorgang
Durch drücken der ETNER Taste wird die Übersicht des Kopiervorgangs beendet und die Aufforderung zum Diskettenwechsel erscheint.
Diskette „SOFTDEV1“ einlegen und ENTER drücken. Nicht wundern : Es wird nur 1 Datei kopiert. Das geht so schnell das sofort die Aufforderung
zum erneuten Wechseln der Diskette erscheint. Diskette „SOFTDEV2“ einlegen und ENTER drücken
Der Dialog wird mit ENTER beendet und es folgt der Dialog mit der Übersicht über die getätigte Installation
Den Rechner neu starten und noch einmal überprüfen ob die Pfadangaben sowie die Umgebungsvariablen korrekt gesetzt sind in der AUTOEXEC.BAT
Jetzt kann es losgehen. Viel Spaß !
Zurück zur Homepage
Weiter mit -> Windows 2 Programmierung by Charles Petzold
Nach oben