## 1.2 HOW TO INSTALL Z88 FOR WINDOWS

Remark: We could of course use the standard installation routines or ready-to-run installation tools for Z88, but as there are no hidden .DLL files, no .INI files are to be modified and no subdirectories are created, we leave it alone. You will see, Z88 installs quite simply:

Windows in five steps:

1st step: Copy the Z88 files into a new or existing directory:

We assume that you have copied the file Z88RUNE.EXE from the Z88 CD or Internet into a new directory named Z88 on hard disk D: . If you have copied Z88 to C:\SOMEWHERE then replace D:\Z88 in the following description against C:\SOMEWHERE. Now launch Z88RUNE.EXE, e.g. by Start > Run oder from the "DOS prompt". This uncompresses Z88. No other modifications are made and the Windows system files are not modified. The included file libguide40.dll is used by Z88PAR. Now you may delete Z88RUNE.EXE to prohibit another start resulting in overwriting your own input files.

2nd step: Make Z88 ready to run:

Two different methods are usual under Windows:

(1) Folder on the desktop:

Define a new folder on the desktop: Point to a free area on the desktop, press right mouse key, New > Folder. Name the new folder e.g. Z88. Include at least Z88COM into the new folder: Open folder by double click, File > New > Shortcut. Enter: D:\Z88\Z88COM.EXE, Next > Z88COM and Finish

With the same procedure you can add the other Z88 modules (File > New > Shortcut): Z88F, Z88I1, Z88I2, Z88D, Z88E, Z88G, Z88H, Z88X, Z88N, Z88V, Z88O. However, skip it, if you want to launch the modules exclusively by the Z88 Commander Z88COM.

(2) Installation in "Start":

Point at the Start button, press right mouse button, select Open. Open folder programs by double click. File > New > Shortcut, enter for command line: D:\Z88\Z88COM.EXE, Next > , name the icon e.g. Z88, Finish. You can also place a whole folder here.

3rd step: Enter your favourite editor in Z88

You may produce all input files either by a CAD program which can read and generate DXF files in cooperation with the CAD converter Z88X or also write by editor since Z88 operates with ASCII files, however. An editor for looking at the Z88 results is also very useful. So you should define it:

Suitable editors are under Windows editor from Start > Programs > Accessories.

Assume you want to work with Notepad: enter in textfield Editor Name any text, e.g. MY-NOTEPAD, enter in textfield Editor Call, if nes. Path. the program name notepad. Further example: Word for Windows. You must find out where Word for Windows is located. Go ahead: Start > Find > Files or Folders : winword.exe. Let's assume WinWord is located in C:\MSOffice\Winword. Thus you could enter in Z88COM: Word4Windows and C:\MSOffice\Winword\winword . Make sure when using Winword that you work and save in plain text mode!

4th step: Add an Internet Browser for Z88's OnLine help:

Integrate your favourite Internet Browser into Z88. This may be Firefox or MS Internet Explorer. Note: The help files are stored on your hard disk. Thus, you don't need any internet connection when running Z88.

(1) the next step is very important: Z88 must be able to start the Browser! Either you must put it into the PATH or enter the PATH in Z88COM or copy the whole Browser into the Z88 directory. State at first where your Internet browser is located. Use Start > Find > Files or Folders. The Microsoft Internet Explorer is called iexplore.exe, Firefox is called firefox.exe. Note down the found path.

1st possibility: Type in path into the PATH variable: Start > Settings > Control Panel > System > Advanced > Environment. You should always do this if the path also includes blanks. Example: The Internet Explorer is located in Windows: c:\Program Files\Internet Explorer. Let us assume your previous PATH variable looks as follows:

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

Separate the items by semicolons. And now:

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

Logoff and login again.

2nd possibility: Enter path in Z88COM directly. If the path contains blanks then put the path into double quotes.

(2) Take into account that most Internet-Browsers immediatelly try to contact the Internet. Now they are to load a local HTML file. Thus, various file prefixes depending on the used Browser must be fixed. For Microsoft Internet Explorer and Firefox the prefix is file:Z88 path. Thus, for example:

5th step: Launch Z88:

Z88 is ready to run. You may fire away immediatelly by launching the Z88 commander Z88COM and using the OnLine help system. Proceed with example 5.1.

Notes for the Z88-Commander Z88COM

It starts all Z88 modules, provided that you don't want to start them stand-alone (which is possible any time and without any restrictions), permits the immediate editing of all input and output files and calls the context sensitive online-help. So you launch the online- help: Select in an arbitrary pulldown menu the point Help Mode. The cursor changes to a question mark. If you click now on a menu item the menu point is not executed but the associated help appears. The help mode keeps active until you click on a menu item Help Mode again.

Z88COM files your entries for the Internet-Browser and editor in a file Z88COM.CFG. If this file should be destroyed accidentally, you can edit Z88COM.CFG by hand:

1st line: Editor name

2nd line: Editor call

3rd line: Browser prefix

4th line: Browser call

Example:

Word4Windows

C:\MSOffice\Winword\Winword

File:c:\z88run13\

C:\Program Files\Internet Explorer\iexplore.exe

... And how do you remove Z88 ?

Simply delete all files in the directory containing Z88. Then delete the directory if necessary. You should delete the links we made for Windows in chapter 1.2. That's all !

And how to compile Z88 for Windows?

Only if you want to add improvements to Z88 you will need to compile the package. Every Windows C or C++ compiler should work properly. I tried the free LCC and the compilers from Microsoft (Visual Studio 2005 and 2008) and Intel. Because every brand uses its own project management we can't use ready-to-go makefiles. How do we proceed? I prepared for you a compiler session for the sparse matrix solver part 2 Z88I2 featuring the free LCC, but Microsoft Visual C++ compiler sessions are very similar :

1. Launch a new project.

2. Be sure to choose a pure Win32 application "without anything" . Don't use any application skeleton neither any application wizzard nor generate a "Hallo World" application.

3. Enter your favorite directories and make sure to generate a Windows application not a Console application.

4. Add the matching sources to your project (ref. table below), i.e. the C- sources and the appropriate Ressource file *.rc (in this case Z88I2.RC).

5. a most important step:

Adjust the compiler, the linker and the ressource compiler: Tell your compiler system

- where the Header files Z88*.H (the so-called include files) are located

- which Defines are necessary (here FR_WIN95, FR_XDOUB) (ref. Table below).

Most of the compiler malfunctions will result from wrong paths and missing defines!

You may leave the Debug infomations off. Choose a soft to medium optimization level.

If in doubt skip optimization if you don't know the details. If you have never heard about a Framepointer or inline functions, Parameter passing by Stack or Parameter passing by Memory and Aliases, then keep your hands off!

6. Don't forget to link against the library comctl32.lib (Common Controll Library) ! It is part of your compiler system and exists on your machine. For Z88O, add opengl32.lib.

7. make project or rebuild all:

8. Make sure to have the files Z88.DYN, Z88COM.CFG and Z88O.OGL in the same directory were you did the compilation i.e. where your executables are located. Otherwise, you don't need to wonder about fancy error massages. And the proper input files should exist here, too.

9. Use the following compiler defines to define the number of bytes for every operating system and any precision:

| Number type | Win32 | Win64 | LINUX 32 | LINUX 64
Operating system | ./. | 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) | 12 / 161)

You may choose any precision by using the FR_ compiler defines. For example: You want to compile the sources for Vista 64 Bit. The integers should hold 8 Bytes memory each and the floats should hold 8 Bytes memory each, too:

FR_WIN95 FR_XWIN64 FR_XLOLO FR_XDOUB

Hint 1) : depending on your compiler you may give further compiler flags

These sources are needed:

Name | Sources, different for Windows and UNIX | common Windows and UNIX Sources | Libraries for Windows + UNIX
|  | The Kernel. Proper 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 | no OpenSource | Because of copyright reasons no sources are included | libguide40.dll (included)
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
|  | The other Programs. Proper 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
|  | Plot program and Z88 Commander. Proper 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`

The Z88 executables and the corresponding sources, Defines and Libraries(these files do exist in Windows only, these files do exist in UNIX only)