## 1.2 SO INSTALLIEREN SIE Z88 FÜR WINDOWS

Bemerkung: Natürlich könnten wir die Standard-Installationsroutinen oder fertige Installationsprogramme für Z88 nutzen, aber da keinerlei .DLLs irgendwo versteckt werden, .INI- Dateien umgebaut werden müssen, sparen wir uns das. Sie werden sehen, es geht ganz einfach:

Windows in fünf Schritten:

1. Schritt: Z88-Datenträger in ein neues Directory kopieren und entpacken:

Wir nehmen einmal an, daß Sie die Datei Z88RUNG.EXE von der Z88-CD oder aus dem Internet in ein neues Directory namens Z88RUN13 kopiert haben, das auf der Platte D: stehen möge. Haben Sie dagegen Z88 in C:\IRGENDWO kopiert, dann ersetzen Sie in der folgenden Beschreibung D:\Z88RUN13 durch C:\IRGENDWO. Starten Sie nun Z88RUNG.EXE, z.B. mit > Start > Ausführen oder vom "DOS-Prompt". Damit wird Z88 entpackt. Weiter passiert nichts! Es werden vor allen Dingen keinerlei Veränderungen in Windows vorgenommen. Die mitgelieferte Datei libguide40.dll wird für Z88PAR gebraucht.

Sodann könnten Sie Z88RUNG.EXE löschen, damit es nicht später versehentlich aufgerufen wird (und Ihnen damit ggf. eigene Eingabedateien überschreibt).

2. Schritt: Z88 startbar machen:

Bei Windows sind zwei unterschiedliche Methoden üblich:

1) Ordner auf Arbeitsoberfläche:

Definieren Sie Sie einen neuen Ordner auf der Arbeitsoberfläche: rechte Maustaste, Neu > Ordner. Namen vergeben, z.B. Z88. Nehmen Sie in den neuen Ordner mindestens Z88COM auf : Ordner öffnen, Datei > Neu > Verknüpfung. Eingeben D:\Z88RUN13\Z88COM.EXE, weiter > Z88COM .

Sie können zusätzlich dann mit dem gleichen Vorgehen (Datei > Neu > Verknüpfung) die einzelnen Z88-Module aufnehmen: Z88F, Z88I1, Z88I2, Z88D, Z88E, Z88X, Z88G, Z88H, Z88N, Z88V, Z88O. Müssen Sie aber nicht, wenn Sie die Module ausschließlich über den Z88-Kommandoprozessor Z88COM starten wollen.

2) Einbau in ”Start”:

Zeigen Sie auf den ”Start”-Button , rechte Maustaste, Öffnen anklicken. Ordner ”Programme” per Doppelklick öffnen. Datei > Neu > Verknüpfung, Befehlszeile eingeben: D:\Z88RUN13\Z88COM.EXE . Sie können hier aber auch einen ganzen Ordner hineinstellen.

3. Schritt: Z88 Ihren bevorzugten Editor nennen

Sie können alle Eingabedateien entweder mit einem CAD-Programm, das DXF-Dateien lesen und generieren kann in Zusammenarbeit mit dem CAD-Konverter Z88X, erzeugen oder aber, da es sich um ASCII-Dateien handelt, auch per Editor schreiben. Zum Betrachten der Z88-Ergebnisse ist ein Editor ebenfalls sehr nützlich, so daß Sie ihn definieren sollten:

Zum Beispiel ist der Editor aus „Start > Programme > Zubehör“ sehr geeignet. Mal angenommen, Sie wollen Editor einbauen, dann tragen Sie bei „Editorname“ z. B. Editor ein und bei „Editorname, ggf. mit Pfad“ tragen Sie notepad.exe ein. Weiteres Beispiel: Word für Windows. Hier müssen Sie, wie schon beim Browser, feststellen, wo Word für Windows liegt. Also Start > Suchen > Dateien/Ordner „winword.exe“. Mal angenommen, es würde bei C:\MSOffice\Winword liegen. Dann könnten Sie in Z88COM eintragen: Word4Windows und C:\MSOffice\Winword\winword.exe. Achten Sie bei der Verwendung von z. B. Winword darauf, daß Sie im reinen Textmodus arbeiten und speichern!

4. Schritt: einen Internet-Browser für die OnLine-Hilfe einbauen:

Sie sollten Z88 Ihren bevorzugten Internet-Browser bekannt machen. Das kann der Microsoft-Internet Explorer, Firefox oder dgl. sein. Die Hilfe-Dateien stehen auf Ihrer Festplatte, sodass Sie keine Verbindung zun Internet während einer Z88-Sitzung brauchen.

1) Der nächste Schritt ist wesentlich: Z88 muß den Browser starten können! Dazu müssen Sie ihn entweder in den PATH legen, oder den PATH in Z88COM eintragen oder den ganzen Browser ins Z88-Directory kopieren.

Stellen Sie zunächst fest, wo Ihr Internet-Browser liegt. Nutzen Sie Start > Suchen > Dateien/Ordner. Der Microsoft Internet-Explorer heißt iexplore.exe, der Firefox heißt firefox.exe. Notieren Sie den gefundenen Pfad.

1. Möglichkeit: Pfad bei XP in die PATH-Variable eintragen: Start > Systemsteuerung > System > Erweitert > Umgebungsvariable.

Die Umgebungsvariablen werden mit ; voneinander getrennt. Beispiel: Vorher sahen Ihre Umgebungsvariable(n) wie folgt aus:

H:\VisualStudio6\Tools\WinNT;C:\Hugo;

Und nun:

H:\VisualStudio6\Tools\WinNT;C:\Hugo;c:\Program Files\Internet Explorer;

Anschließend abmelden und neu anmelden.

2. Möglichkeit: Pfad direkt in Z88COM angeben; wenn Leerzeichen im Pfad vorkommen, dann setzen Sie den ganzen Pfad in doppelte Anführungszeichen, also so:

"C:\Programme\Mozilla Firefox\firefox.exe"

2) Nun ist noch zu berücksichtigen, daß derartige Internet-Browser direkt beim Starten Kontakt zum Internet herstellen wollen. Hier sollen sie aber sofort eine HTML-Datei laden. Dazu müssen je nach Browser unterschiedliche Datei-Prefixe eingestellt werden: Beim Microsoft Internet-Explorer und bei Firefox: file:Z88-Pfad.

So könnte dann eine beispielhafte Einstellung aussehen:

5. Schritt: Z88 starten:

Z88 ist startfertig! Sie könne sofort durch Aufruf des Z88-Commanders Z88COM starten, und Sie können sofort die OnLine-Hilfe nutzen. Arbeiten Sie am besten nun Beispiel 5.1 durch.

Hinweise zum Z88-Commander Z88COM:

Er startet alle Z88-Module, sofern Sie sie nicht explizit einzeln starten wollen (was jederzeit und ohne jede Einschränkung geht), erlaubt das unmittelbare Editieren der Ein- und Ausgabedateien und ruft die kontextsensitive OnLine-Hilfe auf. Und das geht so: Klicken Sie in einem beliebigen Pulldown-Menü den Punkt "Hilfe-Mode" an. Der Cursor wechselt in ein Fragezeichen. Wenn Sie nun auf einen Menüpunkt klicken, dann wird nicht der Befehl ausgeführt, sondern es erscheint die dazugehörige Hilfe. Der Hilfe-Mode bleibt solange aktiv, bis Sie erneut auf einen Menüpunkt "Hilfe-Mode" klicken.

Ihre Einstellungen zum Internet-Browser und Editor speichert Z88COM in einer Datei Z88COM.CFG. Sollte diese Datei einmal zerstört sein, so können Sie sie auch selbst mit einem Editor anlegen:

1. Zeile: Editorname

2. Zeile: Editoraufruf

3. Zeile: Browser- Prefix

4. Zeile: Browseraufruf

Beispiel:

Notepad

notepad

file:c:\z88run13\

"C:\Programme\Internet Explorer\iexplore.exe"

... und wie entfernen Sie Z88 ?

Einfach alle Dateien im Directory, in dem Z88 liegt, komplett löschen. Dann ggf. das Directory selbst löschen. Bei Windows sollten Sie noch die unter 1.2 erstellten Verknüpfungen löschen. Das ist alles!

Und wie compilieren Sie Z88 für Windows?

Das brauchen Sie nur, wenn Sie selbst Verbesserungen an Z88 vornehmen wollen. Es sollte ansich jeder für Windows geeignete C- oder C++ Compiler funktionieren. Ich habe den freien LCC und die Compiler von Microsoft (Visual Studio 2005 und 2008) und Intel ausprobiert. Da alle Windows-Compiler ein jeweils anderes Projekt- Management haben, können wir nicht so einfach von fertigen Makefiles wie bei UNIX ausgehen. Wie gehen Sie vor? Ich habe hier anhand des freien LCC beispielhaft eine Compiler- Sitzung für den Sparsematrix Solver Part 2 Z88I2 vorbereitet, aber Microsoft Visual C++ wird sinngemäß bedient:

1. Legen Sie ein neues Projekt an.

2. Achten Sie darauf, daß es eine reine Win32-Anwendung "ohne alles" ist, also weder ein application skeleton noch irgendeinen application wizard nutzen, noch eine "Hallo Welt" Anwendung erzeugen lassen.

3. Geben Sie die gewünschten Directories an und stellen Sie sicher, daß es eine Windows- und keine Console-Anwendung wird.

4. Fügen Sie Ihrem Projekt die nötigen Sourcen (vgl. Tabelle weiter unten) hinzu, also die C- Sourcen und die entsprechende Ressource- Datei *.rc (hier also Z88I2.RC).

5. Ein ganz wichtiger Schritt:

Stellen Sie den Compiler, den Linker und den Ressource-Compiler ein: Teilen Sie dem Compiler-System mit

- wo sich die Headerfiles Z88*.H (die sog. Includefiles) befinden

- welche Defines gesetzt werden müssen (hier FR_WIN95, FR_XDOUB) (vgl. Tabelle unten).

Die meisten Übersetzungsprobleme kommen aus dieser Ecke, wenn Sie nicht aufpassen!

Die Debug-Infos können Sie sich schenken und beim Optimieren sollten Sie eine milde bis mittlere Optimierungsstufe wählen.

Überhaupt sollten Sie im Zweifelsfall das Optimieren ganz ausschalten, wenn Sie nicht genau wissen, was welche Feinheiten bedeuten. Wenn Sie nicht wissen, was ein Framepointer ist, was inline functions, Parameterübergabe per Stack oder Parameterübergabe per Memory und Aliases sind, dann Finger weg!

6. Vergessen Sie nicht, die Bibliothek comctl32.lib (Common Controll Library) miteinzulinken! Sie ist Teil Ihres Compilers und damit auf Ihrem System vorhanden. Für Z88O linken Sie zusätzlich opengl32.lib dazu.

7. Lassen Sie das Projekt erstellen (make project oder rebuild all)

8. Stellen Sie sicher, daß in dem Verzeichnis, in dem Ihre gerade übersetzten Executable stehen, die Dateien Z88.DYN, Z88COM.CFG sowie Z88O.OGL stehen, sonst müssen Sie sich beim Starten nicht über dubiose Fehlermeldungen wundern. Und die jeweiligen Eingabe-Dateien müssen natürlich auch da sein.

9. Folgende Compiler-Defines stehen zur Verfügung, um die Anzahl Bytes für jedes Betriebssystem und jede beliebige Genauigkeit festzulegen:

| Zahlentyp | Win32 | Win64 | LINUX 32 | LINUX 64
Betriebssystem | ./. | FR_WIN95 FR_XWIN32 | FR_WIN95 FR_XWIN64 | FR_UNIX FR_LINUX | FR_UNIX FR_LINUX
| Pointer | 4 | 8 | 4 | 8
FR_XINT | Integer | 4 | 4 | 4 | 4
FR_XLONG | Integer | 4 | 4 | 4 | 8
FR_XLOLO | Integer | 4 | 8 | 8 | 8
FR_XDOUB | Float | 8 | 8 | 8 | 8
FR_XQUAD | Float | 8 | 8 / 161) | 12 / 161) | 1 2 / 161)

Durch bedingte Compilierung ist jede beliebige Genauigkeit wählbar. Beispiel: Sie wollen die Quellen für Vista 64 Bit übersetzen; die Integerzahlen sollen jeweils 8 Bytes Speicher und die Gleitkommazahlen sollen jeweils 8 Bytes Speicher belegen (vgl. Bild unter 5.):

FR_WIN95 FR_XWIN64 FR_XLOLO FR_XDOUB

Anmerkung 1) : muss je nach Compiler näher spezifiziert werden

Diese Quellen werden benötigt:

Name | Sources, unterschiedlich für Windows u. UNIX | gemeinsame Windows- und UNIX Sources | Libraries für Windows + UNIX
|  | Der Kernel. Zulässige Defines: FR_XINT, FR_XLONG, FR_XLOLO, FR_XDOUB, FR_XQUAD |
z88f | z88f.c ale88f.c wrim88f.c easyfont.c tob88f.c z88f.rc stop88f.c who88f.c clr88.c | apla88.c bapla88.c bcshe88.c bhexa88.c bhpla88.c blqua88.c bqshe88.c bspla88.c bspur88.c btetr88.c choy88.c cshe88.c dyn88f.c hexa88.c hpla88.c isod88.c lan88f.c lqua88.c m1.c m2.c prfl88.c qshe88.c ri188.c spla88.c spur88.c tetr88.c wlog88f.c wria88f.c z88a.c z88b.c z88cc.c z88f.h | comctl32.lib -lm -lc
z88i1 | z88i1.c ale88i.c wrim88i.c easyfont.c tob88i1.c z88i1.rc stop88i.c who88i1.c clr88.c | dyn88i1.c lan88i1.c ri188i.c w4y88i.c wlog88i1.c wria88i.c z88ai.c z88i.h | comctl32.lib -lm -lc
z88i2 | z88i2.c ale88i.c wrim88i.c easyfont.c tob88i2.c z88i2.rc stop88i.c who88i2.c clr88.c | apla88.c bapla88.c bcshe88.c bhexa88.c bhpla88.c blqua88.c bqshe88.c bspla88.c bspur88.c btetr88.c cshe88.c dyn88i2.c hexa88.c hpla88.c isod88.c jaco88.c lan88i2.c lqua88.c m1.c m2.c prfl88.c qshe88.c r1y88i.c r4y88i.c spla88.c spur88.c tetr88.c wlog88i2.c z88bi.c z88ci.c z88i.h | comctl32.lib -lm -lc
z88par | Kein OpenSource | Aus rechtlichen Gründen können keine Quellen mitgeliefert werden. | libguide40.dll (mitg.)
z88d | z88d.c ale88d.c wrim88d.c easyfont.c tob88d.c z88d.rc stop88e.c who88e.c clr88.c | dyn88d.c fuvs88.c lan88d.c m3.c m4.c riy88d.c sapl88.c scsh88.c shex88.c shpl88.c siso88.c slqu88.c span88.c sqsh88.c sspl88.c sspu88.c stet88.c wlog88d.c z88d.h | comctl32.lib -lm -lc
z88e | z88e.c ale88e.c wrim88e.c easyfont.c tob88e.c z88e.rc stop88e.c who88e.c clr88.c | apla88.c cshe88.c dyn88e.c forc88.c hexa88.c hpla88.c isod88.c lan88e.c lqua88.c m1.c m2.c qshe88.c riy88.c spla88.c spur88.c tetr88.c wlog88e.c z88e.h | comctl32.lib -lm -lc
|  | Die weiteren Programme. Zulässige Defines: FR_XINT, FR_XLONG, FR_XDOUB |
z88n | z88n.c ale88n.c wrim88n.c easyfont.c tob88n.c z88n.rc stop88n.c who88n.c clr88.c | dyn88n.c join88.c lan88n.c mc188n.c mc288n.c mc388n.c mc488n.c mc588n.c rni88.c subn88.c wlog88n.c z88n.h | comctl32.lib -lm -lc
z88v | z88v.c ale88v.c g1i188.c g1i388.c g1i488.c g2i188.c g3i188.c g4i188.c g5i188.c gxi288.c gxi588.c tob88v.c z88v.rc stop88v.c who88v.c clr88.c | dyn88v.c lan88v.c wlog88v.c z88v.h | comctl32.lib -lm -lc
z88x | z88x.c ale88x.c wrim88x.c easyfont.c tob88x.c z88x.rc stop88x.c who88x.c clr88.c | dyn88x.c koi88x.c lan88x.c rea88x.c sub88x.c wlog88x.c wria88x.c z88fx.c z88tx.c z88x.h | comctl32.lib -lm -lc
z88g | z88g.c ale88g.c wrim88g.c easyfont.c tob88g.c z88g.rc stop88g.c who88g.c clr88.c | cosm88.c dnas88.c nast88.c lan88g.c wlog88g.c z88g.h | comctl32.lib -lm -lc
z88h | z88h.c ale88h.c wrim88h.c easyfont.c tob88h.c z88h.rc stop88h.c who88h.c clr88.c | lan88h.c rdy88h.c wlog88h.c z88h.h | comctl32.lib -lm -lc
|  | Plotprogramm und Z88-Commander. Zulässige Defines: FR_XINT, FR_XLONG, FR_XDOUB |
z88o | z88o.c ale88o.c wlog88o.c m11.c m13.c oglfont.c rogl88.c tob88o.c z88o.rc cb88o.c m15.c rcoo88.c | dyn88o.c lan88o.c m9.c m10.c m12.c m16.c oc88.c z88o.h | comctl32.lib opengl32. lib `pkg-config - - cflags - -libs gtk+ gdkglext gdkglext-x11 gtkglext gtkglext-x11`
z88com | z88com.c ale88c.c cb88c.c rcol88.c easyfont.c tob88c.c z88com.rc | lan88c.c wlog88c.c z88com.h | comctl32.lib `pkg-config - - cflags - -libs gtk+ gdkglext gdkglext-x11 gtkglext gtkglext-x11`

Die Z88-Executables und ihre zugehörigen Sourcen, Defines und Libraries(diese Dateien existieren nur in Windows, diese Dateien existieren nur in UNIX)