OS/2 eZine

16 November 2000

This article was written by Jon Bijnens.


If you have a comment about the content of this article, please feel free to vent in the OS/2 eZine discussion forums.

Previous Article
Home
Next Article

ODIN
Windows/9x - NT applications on OS/2

Which OS/2 version ?

Warp 4.0 with at least FixPak 6. FixPak 14 is recommended.

Be careful with FixPaks : don't install a FixPak just because there is one available. FixPaks are meant mainly to correct a number of specific bugs and in some cases bring additional features to OS/2. If these bugs don't occur on your system, then try to stick to the following principle :

never fix a working operating system

Make sure you have activated the support for the Microsoft Joliet file system. The Joliet file system makes it possible to use files with long names (with a maximum length of 64 characters) on CD's. There is a norm for this : the so called ISO9660 norm with Rockridge extension. CD's written according to ISO9660 can be read on OS/2, UNIX, Windows and Mac, but as we all know the Microsoft motto is :

why a norm if you can do it otherwise?

If you have a CD with Windows software which hold files with a ~ in their name then the Joliet support is probably not active. IBM has added Joliet support starting from FixPak 4. You can activate this support by adding /w in the config.sys to the following line

IFS=C:\OS2\BOOT\CDFS.IFS /Q

De resulting line is then

IFS=C:\OS2\BOOT\CDFS.IFS /Q /W

Another way to get full Joliet support is to access your CDROM using the excellent CD-writer software of RSJ (http://www.rsj.de) with the following command

cdattach z: -d g:

where g: stands for the drive letter of your regular CD-ROM and z: for the new drive letter you want to use to access your CD-ROM to get Joliet support.

You can detach the CD-ROM to eject the CD by issuing the command

cdattach z: -no_flush

You can also try Scitech Display Doctor which is available in two versions :

  • the free IBM SciTech Drivers which can be downloaded from the website IBM Device Driver Package Online
  • the full package which has to be bought from SciTech for a very reasonable price. This package enables extensive hardware acceleration support and will allow the ODIN developers to implement DirectX support in future ODIN releases. The package gives excellent value for your money so please support this great effort from SciTech and buy it. SciTech can be found on the following URL
    http://www.scitechsoft.com

What do you need for ODIN ?

What you need is an Odin build.

There is almost daily a new build (it is really incredible with what dedication the members of the Odin team accomplish this in their own free time, don't forget this before sending an angry complaint).

You can download the daily builds by ftp :

ftp.os2.org in the directory /odin/daily

You can do this via Netscape by entering the following url

ftp://ftp.os2.org

There are three kinds of builds :

  1. the normal odin32bin-2000mmdd-release.zip
    Hereby is 2000 the year, mm the month and dd the day on which the build was released.
  2. the via warpin installable version odin32bin-2000mmdd-release.wpi
    This is actual the same version as the first one. The only difference is that this one can be installed by the warpin software available from Netlabs.
    Warpin is a special tool developed by the people of Netlabs that allows you to install and de-install programs in an easy way. You can consider it as an alternative for the Add/Remove programs option of Windows.
  3. The so-called debug build odin32bin-2000mmdd-debug.zip
    This is the Odin version you can use to activate the debug options to generate debug logs. These logs can be used by the developers to track down bugs in the Odin code. The fact that this is a debug version does not imply that large debug logs are written to your hard disk. In the early days this was indeed the case, but now the debug options are standard deactivated and must be activated explicitly by adding an environment variable.

    The normal release version is sufficient to run your Windows/9x program.

How to install ODIN ?

Installation is very straightforward. It is not necessary to make modifications to your config.sys.

For a further explanation of the installation we assume that you'll be using the normal release version of Odin.

Step 1 : Make the directory

Create in the root of your boot partition (this probably C:) a directory with the name ODIN32. If you want it you can also do this in another partition, but I don't recommend this. This is not because it will cause problems for ODIN, but because a lot of Windows programs assume that the system directories are situated on the C partition and therefore try to copy and configure all kinds of files to the C-partition.

Step 2 : Install the ODIN build

Method 1 : Installation by manually unzip

Unzip the debug version in the directory C:\ODIN32. This results in the following directory structure :

C:\ODIN32

  • system32
  • Glide
    • Voodoo1
    • Voodoo2
  • Voodoo1
    • CVS
  • Voodoo2
  • CVs

Method 2 : Using WarpIN

WarpIN has to be installed before you can use it to install software packages.

The WarpIN software can be found through

http://warpin.netlabs.org

To install it you have to the following :

  • create a directory for it e.g. c:\WarpIN
  • unzip the archive (e.g. warpin-0-9-4-2.zip) in this directory
  • execute warpin.exe

This registers WarpIN with os2.ini and creates a folder that contains the program objects.


You can now install ODIN by just double clicking on the WarpIN ODIN package. You can easily recognize it because by installing WarpIN it has now the WarpIN icon attached to it.


Proceed with the installation by clicking on the Next button.


Now select all the subpackages for installation by choosing the menu options
Selections - Full install (select all)


The WarpIN installation of ODIN will modify your config.sys by default. You must uncheck the option Update CONFIG.SYS to prevent this.


One of the advantages of using WarpIN is that you can easily de-install all software packages that were installed by it.
Just start WarpIN by double clicking the WarpIN object in the WarpIN folder, select the desired package you want to uninstall and press the right mouse button. A popup menu appears with the option De-install package


This easy de-installation is possible because WarpIN maintains its own database of installed packages. This database is stored within the WarpIN directory in the file DATBAS_C.INI. The fact that everything is stored within the WarpIN directory makes it possible to move this directory from within the WPS to another place without interfering with the way it works.

Please keep in mind that WarpIN is still in development (by some dedicated volunteers) and that it still may contain bugs. If you encounter any bugs you can report them through the egroup warpin-user at www.egroups.com

Extended installation to be done after applying Method 1 or Method 2

Now use the command odininst.exe that can be found in the system32 directory to create an additional directory structure for better Windows compatibility. Just execute the following commands :

cd c:
CD odin32\system32
odininst

This results in the following directory structure :

C:\ODIN32

  • Application Data
  • Cookies
  • Desktop
  • Favorites
  • Fonts
  • History
  • My Documents
  • NetHood
  • PrintHood
  • Recent
  • SendTo
  • ShellNew
  • Start Menu
    • Programs
    • Startup
    • System
    • system32
    • glide
      • Voodoo1
      • Voodoo2
    • Voodoo1
      • CVs
    • Voodoo2
    • CVs
  • Temporary Internet Files

Step 3 : make a command file odin.cmd

Now create a file odin.cmd which contains the following lines

@chcp 850
@set PATH=c:\odin32\system32;%path%
@set BEGINLIBPATH=c:\odin32\system32;c:\odin32\system;.;
@start /n pe %1 %2 %3

Standard behavior is that while executing a line the contents of the line will be printed to the screen. The @-sign prevents this from happening.

@chcp 850

The chcp command is used to specify the codepage. The codepage is responsible for the correct display of characters such as ë, ï, ... If your country is e.g. Belgium then you can probably find the following line in your config.sys

codepage=850,437

850 is one of the standard codepages for international characters while 437 stands for the codepage according to the American norm. In this case you can leave out the

@chcp 850

In normal circumstances codepage 850 is quite sufficient, but ... there is of course MicroSoft which honors the principle that if you can change a norm you have the holy duty to do so. Microsoft Windows uses in most cases codepage 1004. If you notice an incorrect character display while running Windows/9x programs (e.g. an ë is not displayed as an ë) then you must make a little modification in your config.sys by substituting the line

codepage=850,437

by

codepage=850,1004

Make this change also to the file odin.cmd by changing the line

@chcp 850

into

@chcp 1004

Remark : if you receive E-mail that has been send by a Windows minded colleague it can happen that in OS/2 special characters like ë, ï, ... are displayed incorrectly. This can be easily solved in most cases by making proper use of codepages. Make sure you have the following line in your config.sys

codepage=850,1004

If you use e.g. PMMail as E-mail client, create then a .cmd file e.g. startpmmail.cmd with the following contents

@chcp 1004

@pmmail.exe

@set PATH=c:\odin32\system32;%path%

With this line the environment variable PATH is adjusted for as long as the file odin.cmd is executed. This way we can temporarily change the value of PATH without having to do this in the config.sys.

@set BEGINLIBPATH=c:\odin32\system32;c:\odin32\system;.;

With this line the environment variable LIBPATH is adjusted. Normally LIBPATH contains a list of directories that contain DLL-files. LIBPATH is not a normal environment variable i.e. it can not be changed as can be done with normal variables. IBM has therefore in one of their fixpacks added two extra environment variables :

- BEGINLIBPATH : this allows the adding of DLL-directories to the beginning of the list specified in LIBPATH

- ENDLIBPATH : this allows the adding of DLL-directories to the end of the list specified in LIBPATH

@start /n PE %1 %2 %3

start /n allows you to start a program without starting first an extra OS/2 cmd.exe instance in the background.

PE is a program that adapts the Win32 executable and DLL's to OS/2.

%1 %2 %3 allows us to pass 3 arguments to the PE executable.

Step 4 : some precautions

In normal circumstances Odin can not damage your OS/2 system, but as we all know there is also something like unreliable Windows programs. Therefore following precautions.

  1. If you can, make a backup of your boot partition.
    As you probably know, most Windows programs install all kinds of DLLs in the Windows system directories even if you have specified a specific installation directory (it is just a matter of keeping things manageable J ). Using ODIN these DLLs are mostly placed within the system32 directory, BUT some Windows programs have an extremely unpleasant installation program that doesn't follow a normal installation procedure and dumps all kinds of DLLs in your OS/2 system directories. In most cases this is nothing to worry about. It only makes your OS/2 system a little bit messy.
  2. Make a copy of the file registry.dat that can be found in the root of the OS/2 boot partition.
    copy c:\registry.dat c:\registry.dat.org
    The file registry.dat is used for compatibility reasons as a substitute for the Windows registry by the so-called OPEN32 programs such as Lotus SmartSuite. Windows programs sometimes have the tendency to mess up the registry. If you use Lotus SmartSuite (by the way since the new update 1.5.1. available with excellent MS-Office filters for Word and Excel that are even better than those of StarOffice) then I urge you to make this copy of registry.dat so that you can still put back the original file in case of problems occurring after the unsuccessful installation of a Windows program.
  3. Make a copy of os2.ini and os2sys.ini.
    These are the basic ini files that are used by OS/2. There are several software packages available that allow you to make a copy of these files such as the well-known WPTOOLS of Henk Kelder or the UNITOOLS of HyperStar Software with UNIMAINT.

How to install a Windows/9x program ?

First some considerations.

You can only run 32-bit Windows programs with ODIN. Microsoft was however so friendly to use a partly 16-bit installation program for some of its 32-bits software packages. Therefore these programs can not be directly installed through ODIN. For most non-Microsoft programs this is luckily not the case. Should you encounter such an ill-designed installation procedure then there is a little bit more work to get things working.

Should you encounter such an ill-designed installation procedure then there is a little bit more work to get things working. There are two possible roads you can take : The first road you can take is trying to install the software by replacing the original SETUP.EXE and _ISDEL.EXE on the installation CD or floppy by its 32-bit counterparts that can be found in win32inst.zip. win32inst.zip can be downloaded from hobbes (http://hobbes.nmsu.edu). Copy the CD with the Windows software to a directory on your hard disc and replace SETUP.EXE and _ISDEL.EXE. Now write everything back to a CD-RW. The reason I do this is that in some cases the installation software makes links to the CDROM and I'm a little bit too lazy to correct these links within the configuration files. Of course if you want you can also try to install the software by starting SETUP.EXE in the directory on your hard disc. The second road is for the more technical persons among you :

  1. Boot a 'real' Windows/9x

  2. Now install the program and try to log all files that are installed (especially try to capture the files that are placed in the system directories. After installation copy the whole installation directory to a directory with the same name on your OS/2 system. If the partition name is different from the one on your Windows system (e.g. D: instead of E:) then you have to modify the ini-files of the software package if they exist (sometimes they can be found in the installation directory, sometimes they can be found in the Windows system directories). If there were files copied to the Windows system directories you have to copy them also to the corresponding directories of the ODIN directory tree. Now try to start the program in OS/2 e.g. rhino.exe with the command

    c:\odin32\odin.cmd rhino.exe

    In most cases you'll get error messages that give an indication of which DLLs are not available. Chances are that these are DLLs that were placed in the Windows system directories by the installation program. Search for these DLLs on your 'real' Windows system and copy them to c:\odin32\system32

  3. Now check in the 'real' Windows which changes were done to the registry (e.g. with regedit) and apply these also to the registry.dat of OS/2. You can use regrx.exe for this purpose that is automatically installed with Lotus SmartSuite for OS/2.

  4. There are friendly (L) (installation) programs that do a little peek first at an extremely high memory area. This can cause problems for an OS/2 version with a FixPak lower than FP14 installed. More information about FP14 and what you need to do to install it without problems can be found on the excellent WarpDoctor site of VOICE (www.warpdoctor.org).

    FP14 allows Windows programs to have more than 512 MB virtual memory in use and is needed for applications such as MS Office.

  5. Install from within a standard OS/2 command window and NOT from within an alternative shell such as e.g. 4OS2.

If the above considerations don't count for your Windows program you can just install it with

c:\odin32\odin install.exe or

c:\odin32\odin setup.exe or no matter what other executable you have to start for installation

 

Use ODIN programs the same way as Seamless Windows programs

If you have installed a Windows program through Odin and it is working you can very easily start this by using an icon.

Go to the folder Programs and create a new program object by dragging the 'new program'-template to the desired folder, e.g. ODIN Programs.

At path and filename you enter the following line

c:\odin32\odin.cmd

At parameters you enter the path and the name of the Windows executable e.g.

e:\win32\rhino3d\rhino3d.exe

At working directory you enter the installation directory of the Windows program e.g.

e:\win32\rhino3d

Now switch to the tab Icon and enter a name for the new created program object and assign an icon to it.
You now have an icon which you can use to start the Windows program through Odin just by double clicking it with the mouse.

Some examples of Windows programs that work through ODIN

The Van Dale dictionaries for Windows95 (very stable, rarely crashes)

  1. Basic RealPlayer-7 (quite stable, with video and sound)
  2. Ftool (small strength calculation program, some problems with updating the main window)
For the disbelieves : a screen capture

Van Dale dictionaries


Additional info

More information can be found on the following web sites :

- official ODIN web site : http://odin.netlabs.org

- non official ODIN web site : http://www.teamos2.org.pl/odin

- list of working applications : http://odin.netlabs.org/MiscApplications.phtml

and through the following mailinglists at www.egroups.com

- win32-os2

- win32os2-wai

More information about OS/2 updates in general can found on :

- WarpDoctor : http://www.warpdoctor.org

- IBM Fixpak Database : http://service5.boulder.ibm.com/pspfixpk.nsf/

- OS/2 TCP/IP Updates list : http://www.hethmon.com/tcpip.html

- Summary of LAN component versions and fix levels under OS/2 Warp :

http://eddie.cis.uoguelph.ca/~alex/os2/

- IBM OS/2 Warp Updates Summary :

http://www.warpupdates.de/english/warpupdates.html

If you want to help with development

You can checkout the sources via CVs 1.1.0 (CVs is an extension on top of RCS to allow multiple users to do version control).

The CVs 1.1.0 software can be downloaded from hobbes (http://hobbes.nmsu.edu).

To run CVs you need to have the EMX runtime installed. This can also be downloaded from hobbes.

Make sure to add the following lines in your config.sys

SET HOME=D:\Odin_Source

In this example D:\Odin_source is the directory into which the sources will be placed. You can substitute it with whatever directory you like but make sure that this is an existing directory.

If you use XFree86/2 this environment variable is normally already present in your config.sys.

SET CVSROOT=:pserver:guest@www.netlabs.org:d:/netlabs.src/odin32

Now execute the follow command to check out the sources

CVs -z3 co .

To update your tree regularly, go to the odin32 directory and execute

CVs -z3 update -dP

AND THEN

And now it is up to you. Give ODIN a try.

Hereby I wish to thank Achim Hasenmueller from Innotek for proofreading this document and supplying me with valuable extra information that I wasn't aware about.

John Bijnens

jbijnen@attglobal.net

Previous Article
Home
Next Article