(Draft II)



Win32k v0.0.2Alpha

--------------------



This readme will give you all the information you need to use the "native"

PE-loader for os/2 (we hope).





Contents

---------

    1.0 Warning/Disclaimer



    2.0 Requirements



    3.0 Installation

    3.1 MWDD32.SYS

    3.2 win32k.sys

    3.3 Options for win32k.sys

    3.4 Finished



    4.0 About Win32k

    4.1 Os2krnl.sym  /  OS/2 Warp 3

    4.2 Supported kernels by "-B"



    5.0 Bugreports

    5.1 Know bugs













1.0  Warning/Disclaimer



We assume you have seen this before, but we have to make sure you are aware

that this piece of software is in an Alpha state. It may have serious bugs.

Since this runs at "ring-0" (kernel-mode or whatever you prefer) a bug

CAN CAUSE A SYSTEM HANG OR A SYSTEM HALT, and thus can cause loss of data. A

backup is hereby recommened.



WE ARE NOT REPONSIBLE FOR ANYTHING.



USE IT AT YOUR OWN RISKS!







2.0 Requirements



You will need another device driver, mwdd32.sys - v1.70. This may be found as

32drv170.zip or in ext2_240.zip. This driver was made by Matthieu WILLM and

provides us with 32-bit driver support. (OS/2 drivers are mostly 16-bit.)

A lot of thanks goes to him!

  ftp://hobbes.nmsu.edu/pub/os2/system/drivers/filesys/ext2_240.zip

  ftp://hobbes.nmsu.edu/pub/os2/dev/drivers/32drv170.zip (?)



OS/2 Warp v4 (merlin)

or

OS/2 Warp v3 with os2krnl(r).sym see section 4.1

32 MB of RAM.









3.0 Installation



A piece of advice:

Before you continue, it'd be wise to make sure you can boot to the command-

line; try Alt-F1 during boot, then either F2 or C (depending on the version).

If you need to fix any errors or if it doesn't boot, you'll need to edit the

file X:\os2\boot\config.x. You need a backdoor into your system!





3.1 MWDD32.SYS



If you are running the ext2-os2 driver by Matthieu WILLM you may skip this

section.



 1) copy mwdd32.sys to x:\os2\boot (where x is your boot drive).

 2) add this line into your config.sys file:

       basedev=mwdd32.sys





3.2 win32k.sys



 1) create a win32os2 directory in your x:\os2 directory.

 2) copy win32k.sys to it

 3) add this line to the end of the config.sys file:

       device=x:\os2\win32os2\win32k.sys



(It is a good idea to unzip the entire win32os2 zip-file into the

x:\os2\win32os2 directory and add it to the LIBPATH and SET PATH statements in

the config.sys file.)





3.3 Options for win32k.sys



There are two groups of options for Win32k, one to spcify verbose/quiet,

logging,... and one to give system specifications. Near all of you could

easily ignore the last group (kernel options). (If you prefer the slash to

mark parameters, Win32k accepts both '/' and '-'.)



Win32k Accepts the following options:

    -Q[uiet]    no logo (bug? may not work)

    -L[ogging]  logging to com port

    -V[erbose]  logo during boot

    -C[1|2]     which com port you want to logg to. default: com2





 Kernel Options:

  (These are about to become obsolete. See section 4.1 and 4.2)

    -B[uild]:xxxx

           - where xxxx is the build/revision number.

                     (try "ver /R" on the os/2 command-line)



    -K[erneltype]:A[strict]|H[strict]|R[etail]

           - select between the different debug and retail kernels.



    -S[MP] - toggels smp kernel.

    -U[NI] - toggels uni kernel.





3.4 Finished



When 3.0-2.3 is read and done. You may reboot your machine, and hopfully it

boots fine. If it does, you will see a something like:



Win32k - Win32-OS/2 driver copyright (c) 1998 knut st. osmundsen

  Copyright 1998 Sander van Leeuwen (PE2LX code)

  Copyright 1997 Matthieu Willm (MWDD32)

        Found kernel: c:\os2krnl

        Build: 9030 - v20.40



        Found symbolfile: c:\os2\pdpsi\pmdf\warp4\os2krnlr.sym

        _ldrOpen          at 0xfff7827c

        _ldrRead          at 0xfff392e0

        _ldrClose         at 0xfff78c14

        _LDRQAppType      at 0xfff78c64







PE-executable will now run just like other OS/2 programs.









4.0 About Win32k



Win32k is a device driver which implements a kind of loader for PE-files.

(PE-file == winNT/95 32-bit EXEs and DLLs). A loader is a operating system

part which reads a program (executable) and prepares it to be executed.





4.1 Os2krnl.sym  /  OS/2 Warp 3



Win32k uses the .sym-file for the OS/2 kernel to get entrypoints and build

number of the running kernel.

They are searched for in the given order:

   <bootdrive>:\os2krnl.sym

   <bootdrive>:\os2\pdpsi\pmdf\warp4\os2krnlr.sym

   <bootdrive>:\os2\system\trace\os2krnl.sym

   <bootdrive>:\os2krnlr.sym

   <bootdrive>:\os2krnlh.sym

   <bootdrive>:\os2krnld.sym



Warp v4 has always distributed .sym files for retail, half-strict and all-strict

kernels with fixpacks. They are placed in <bootdrive>:\os2\pdpsi\pmdf\warp4\.



Warp 3 does not have a os2krnlr.sym file with its fixpack. It may be found on

the debugkernel disks. The Warp 3 SMP does have it included in the fixpack (in

the fix\os2.5 directory if is not copied).



Note! If you switch kernels, make sure that you don't mix-up .sym files! Don't

leave a build 9029 os2krnl.sym file when running a build 9030 kernel. It may

cause to hang or crash the system.





4.2 Supported kernels by "-B"



First, don't use the -B option if you don't have to. That is, if you run OS/2

Warp v3 SMP and can't find the os2krnlr.sym file anywhere and you have tried

realy hard. Currently only build 8259 (fixpack 35?) is supported in SMP

edition.



Ŀ

 Build    Type     Processors  Note                                      

Ĵ

 9029    astrict      UNI      None                                      

 9029    retail       UNI      Only US edition is tested.                

 9030    astrict      UNI      None                                      

 9030    retail       UNI      Only US edition is tested.                

 8259    astrict      SMP      None                                      

 8259    retail       SMP      Only US edition is tested.                

                                                                         

 all     all          both     all that provides a os2krnl.sym file      

                                                                         



Note: The -B option is obsolete. It may be removed by next relase. It is too

      much work to keep it all up-to-date.



Important! .sym-files currently overrides the -B option.







5.0 Bugreports



All bugs should be reported as described on the Win32-OS/2 home page.





5.1 Know bugs



 The -q option may not work.

 Win32k is broke on Warp SMP.

 Terrible english. Sorry.









Norway, the 14th September 1998.

knut st. osmundsen

 bird@solo.hib.no



