The procedure involves modifying CONFIG.SYS and AUTOEXEC.BAT. I take no responsibility for this! At least before you attempt this, please make sure that you have the necessary parachute, e.g a Win95 emergency startup diskette. If you didn't make one before, then make one now, using the appropriate subpage of the ControlPanel item "Add-Remove Programs". It would be useful to copy your original W95 hard-disk autoexec.bat/config.sys files to a private subdirectory of the diskette as backup copies (don't confuse them with any "live" config.sys/autoexec.bat files that are on the diskette!). If all else fails, then boot up the PC from the diskette and copy the original versions back to the hard disk, and then you should be OK for a fresh assault on the problem. So far (fingers crossed) all has gone fine for me, but that's not to say that things won't go sad in the end.
Now edit the hard-disk CONFIG.SYS to add the devices HIMEM.SYS and EMM386.EXE, in that order, with appropriate options, and the DOS=HIGH,UMB command. Ensure that any devices here are loaded with DEVICEHIGH (not DEVICE) commands.
EMM386.EXE should be loaded at least with the RAM option. It had been my experience with Win3.1 that the address range b000-b7ff was unused, and that it could be explicitly included in the area made available to EMM386 by means of the option /i=b000-b7ff: as far as I can see, this is also true of Win95, and I have added the option here too. Naturally, you mustn't do that if you have some memory-mapping I/O device that has been assigned to that memory range already!!!
The resulting CONFIG.SYS (including the device driver for my CD ROM) now looks like this:
device=c:\windows\himem.sys device=c:\windows\emm386.exe ram /i=b000-b7ff dos=high,umb devicehigh=C:\imes_cd.SYS /D:OEMCD001 devicehigh=C:\WINDOWS\COMMAND\display.sys con=(ega,,1) Country=044,850,C:\WINDOWS\COMMAND\country.sysFurther, in AUTOEXEC.BAT it should be ensured that any commands should use LH (loadhigh). My own AUTOEXEC.BAT now looks like this (omitting the commented-out stuff created "by Windows Setup", and a few environment-setting commands that have nothing to do with the present issue):
mode con codepage prepare=((850) C:\WINDOWS\COMMAND\ega.cpi) mode con codepage select=850 lh keyb uk,,C:\WINDOWS\COMMAND\keyboard.sysAfter this effort I am rewarded with the free area in conventional memory being 624,272, which is a considerable improvement on the 557,552 that I had before.
I suppose it would be asking too much to want MS to set up this arcane stuff sensibly without being asked, as part of the installation procedure?
Original materials © Copyright 1994 - 2006 A.J.Flavell