• Please review our updated Terms and Rules here

Can upper memory go bad?

pcm2a

Experienced Member
Joined
Jun 24, 2013
Messages
190
I just got this IBM 755c laptop configured to have 600k of free memory and then everything has gone into the toilet when I turned on the laptop this morning. For example running any DJGPP games (tried Doom, doom2, duke3d, descent) all give an error "DOS/16M error [2]: not a DOS/16M executable". Other non DJGPP games still work fine.

I stripped my config files down to a bare minimum:
Code:
config.sys:
DEVICE\C:\DOS\SETVER.EXE
DOS=HIGH,UMB
DEVICE=C:\WINDOWS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE RAM I=B000-B7FF I-E000-E5FF I=C800-CFFF
FILES=30
LASTDRIVE=Z
STACKS=9,256
DEVICEHIGH=C:\IBMVESA\VESA.EXE
DEVICEHIGH=C:\WINDOWS\IFSHLP.SYS

autoexec.bat:
C:\DOS\SMARTDRV.EXE /X
@ECHO OFF
PROMPT $p$g
PATH C:\WINDOWS;C:\DOS
SET TEMP=C:\DOS
Even with the stripped down config it says I have 0 available upper memory. Whatever is causing that is probably causing all these other problems.

In the bios was a test program that tests the system board, ram, display, hard drive, etc. It reported no errors.

I also tried both C:\DOS\EMM386.exe and C:\WINDOWS\EMM386.exe. Both load and appear to be working, meaning I can run it from the command prompt and it says it is active.

I tried memmaker and it says MemMaker cannot continue, No upper memory was created.

Update:
I noticed in MSD that anything I include, like I=B000-B7FF I=E000-E5FF, snows up as "RAM" instead of available, used UMB or free UMB.

So next what I did was startup with F5 to skip autoexec and config.sys. I ran MSD again and can see that B000-B7FF is available along with C000-DFFF, E000-EFFF is marked possibly available. Now I reboot and look again and those errors are marked as RAM, except for D000-DFFF which is correctly marked as Page.

Update 2:
I wanted to test if my hard drive or files have gone bad. I created a dos boot disk from another working dos 6.22 machine and I included himem.sys and emm386.exe. First I tried "emm386.exe ram" and in MSD B800-CFFF was marked as RAM. Next I added I=E000-E7FF X=C000-CFFF. After rebooting MSD shows C000-CFFF empty and E000-E7FF marked as RAM.

Why is emm386 incorrectly marking things as RAM instead of UMB?
 
Last edited:
Try moving dos=high,umb AFTER himem.sys and emm386 -- since you can't put dos into the HMA or create UMB's until AFTER those are loaded.

That's a wild guess though, might not be it. Worth a try.

Also your first device line is invalid - you've got a slash where there should be an equals -- it could be crashing out of your config.sys because of that.

I'd also suggest moving it down with the other devices so you can load it high too.

Code:
config.sys:
DEVICE=C:\WINDOWS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE AUTO RAM I=B000-B7FF
DOS=HIGH,UMB
FILES=40
BUFFERS=30
STACKS=9,256
LASTDRIVE=Z
DEVICEHIGH=C:\DOS\SETVER.EXE
DEVICEHIGH=C:\IBMVESA\VESA.EXE
DEVICEHIGH=C:\WINDOWS\IFSHLP.SYS

autoexec.bat:
@ECHO OFF
PROMPT $p$g
PATH C:\WINDOWS;C:\DOS
SET TEMP=C:\DOS
LH /S C:\DOS\SMARTDRV.EXE /X

Try that.
 
The typos are because I manually typed those in, there is no mistake in the actual file. When my system was working great (and in the file from 1993) the DOS=HIGH,UMB was above the HIMEM.SYS file and the setver was up there. The setver also would always load into high without issue. I guess it doesn't matter where in the file it is, however I did try moving it down but it did not resolve anything.

I got to thinking, in my optimum setup I had I=F000-F7FF in there. The F range is listed as ROM in msd. I read on several forums that on old thinkpads you can use that area anyways. What if that information is wrong, does the BIOS or some other critical thing live permanently there? If EMM386 wrote "stuff" into F000-FFFF would it ruin the bios or should that just be fixed on the next reboot?

I can still get into the BIOS and everything there seems fine. I would update the bios to the latest version, to see if that fixes anything, but you need a 100% charged battery where mine is at zero % and probably dead for the last 10 years. I tried a dozen work arounds that had didn't work for flashing the bios.
 
Sorry to hear about the battery thing.
Are you trying to update with a DOS BIOS utility?
try to run the utility with the questionmark switch " /? " to see if there are options.. i.e. some dell DOS BIOS update utils have a /forceit switch.
 
Yeah, in dos. When you search for older IBM and bios updates you find "everyone" stuck in that same boat. Some newer laptops have some workarounds and 3rd party utils that let you flash without a battery but none of them worked on the 755c. One person has a guide where he has opened the battery up, soldered in a bunch of wires and hooked them into the laptop. Don't think that's a route for me :)

I might try installing FreeDos to see if it can figure out how to use the UMB correctly and then throw thing thing in the trash.
 
That's one of the many workarounds that work on other Thinkpad models. I tried Flash2 and phlash16.exe, neither would work on this laptop. Flash2 in particular gave a message about not running on the hardware where phlash16's wouldn't load the bios file.

On another super interesting note, I created a freedos 1.0 boot disk which included the freedos version of both himem and emm386. When it boots my upper memory is recognized correctly and used correctly! Both the freedos mem command and dos' msd both show what you would want to see. My next step I think is to format the drive and install freedos to see what happens.
 
Back
Top