[comp.unix.sysv386] windowsw 3.0 patch

ccastdd@prism.gatech.EDU (David Preston Dykes) (06/28/91)

Greetings!
	Earlier I posted a question about getting ms windows 3.0 to work under
vp/ix.  Well I was sent a very elegant patch that works like a charm under
att sysvr4, and thought some of ya'll might want to see it.
	What follows is the mail I recieved from a very helpful Jean-Jacques 
Drolet.

From: drolet@drolet.cam.org (Jean-Jacques P. Drolet)
To: ccastdd@prism.gatech.edu
Subject: Re: windows 3.0 under vp/ix with at&t unix
Newsgroups: comp.unix.sysv386
References: <31544@hydra.gatech.EDU>

In comp.unix.sysv386 you write:

>Greetings-
>	I have read conflicting reports on this so if one of ya'll could
>straighten me out on this once and for all I'd really appreciate it.
>	At work we are running vp/ix 3.0 under at&t sysv 3.2.  Under this
>new version of vp/ix, ms windows barfs with the same error message that it did
>under our older version of 2.1.  It dies with a "cannot emmulate instruction"
>message as its last breath.  Any fixes?  I know that most vendors have patched
>vp/ix to work with windows has at&t not yet done this or do I just not have
>the latest version of vp/ix?
>			-Thanks in Advance
>			-Dave

The following patch, sent by Tim Tyhurst, should work.

--------- Cut here -------------
Subject: win3.0 patch for ODT (probably others)
From: Ken J. Priddy <wwc1!pridke@hpspkla.spk.hp.com>
Date: Wed, 21 Nov 90 17:00:57 PST
To: sco-list@uunet.uu.net


I have gotten windows 3.0 installed on Open Desktop and it should work
the on VP/IX also.  Windows uses a combination of stack and flag manipulations
to determine the CPU type.  The invalid instruction is an operand size prefix.
What this patch does is forces the checking routine to think it's running
on an 8086 before it tries to do the operand size prefixes.

The following instructions are how I got windows 3.0 to work for me.

Copy disk 1 so that you can make changes.
rename kernel.exe to kernel.dat on the copy.
using debug or some such debuger change es:8b5a from 0B to 31 as follows
    debug kernel.dat
    d es:8b58 l8  /* should display 8B C4 0B C0 FF B1 20 D3 */
    e es:8b5a 31
    w
    q

now rename kernel.dat to kernel.exe
run setup from this copy it should work.  It does on mine.
-------------

-- 
Tim Tyhurst				tim@apteryx.looking.on.ca

Good luck!
-- 
Jean-Jacques P. Drolet         |    Snail: 2631 boul. Liegeois, Sainte-Foy
National Optics Institute      |           Quebec, Canada, G1W 1Z5
Phone:         +1 418 657 7006 | Internet: drolet@drolet.CAM.ORG
Home phone:    +1 418 651 3796 |     UUCP: uunet!drolet!drolet