Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!maverick.ksu.ksu.edu!ux1.cso.uiuc.edu!aries!mcdonald From: mcdonald@aries.scs.uiuc.edu (Doug McDonald) Newsgroups: comp.windows.ms Subject: himem.sys woes - fix??? Message-ID: <1990Jul31.010650.2060@ux1.cso.uiuc.edu> Date: 31 Jul 90 01:06:50 GMT Sender: usenet@ux1.cso.uiuc.edu (News) Reply-To: mcdonald@aries.scs.uiuc.edu (Doug McDonald) Organization: School of Chemical Sciences, Univ. of Illinois at Urbana-Champaign Lines: 48 I have posted several articles flaming the Win 3.0 himem.sys program. It refuses to let me run my 32-bit 386 programs that use the Phar Lap extender. I have a kludge around the problem which I am going to be rash enough to post. Please folks: this is for running programs with said Phar Lap extender. (There are commercial programs that use it.) It has not been tested for anything else. Caveat emptor. I have tested it extensively for two days for my work, including writing a program that zeroed all the extended memory it could malloc up. Here is how it works (on you 386 or 486): You can't use the Smartdrive that comes with Win 3.0. I am using the last Win 386 one. You put it and himem.sys from Win 3.0 in your config.sys. And no other .sys files that use exTended memory. About exPanded memory drivers I have no idea at all. Then AFTER you run and exit Windows, you run the following program (compiled with Microsoft C 5.1): #include #include union REGS rg; main() { unsigned long i; unsigned long far * ptr; ptr = *(unsigned long far * far *)(0x54l); i = *ptr; if(i != 0x7588fc80l) exit(1); i = ptr[1]; if(i != 0xcfc03303) exit(1); *ptr &= 0xff00ffffl; } You only have to do this once. After using Windows again it is not necessary. This redirects the bios interrupt for extended memory to where it was before himem.sys so ungraciously stole it. IF himem.sys permanently uses memory at the top of your extended memory (below Smartdrive) and you use that again by this method, something awful, hopefully just a crash, will occur. Again, caveat emptor. Doug McDonald