Jump to content


 


Register a free account to unlock additional features at BleepingComputer.com
Welcome to BleepingComputer, a free community where people like yourself come together to discuss and learn how to use their computers. Using the site is easy and fun. As a guest, you can browse and view the various discussions in the forums, but can not create a new topic or reply to an existing one unless you are logged in. Other benefits of registering an account are subscribing to topics and forums, creating a blog, and having no ads shown anywhere on the site.


Click here to Register a free account now! or read our Welcome Guide to learn how to use this site.

Photo

Extended Memory Mystery


  • Please log in to reply
18 replies to this topic

#1 ray5450

ray5450

  • Members
  • 455 posts
  • OFFLINE
  •  
  • Gender:Male
  • Local time:09:33 PM

Posted 15 November 2014 - 10:31 PM

I have a flashdrive with DOS that I use a few utilities on once in a while.  Suddenly, I cannot do anything as it gives this error message:

 

DOS/32A fatal (4003):   not enough extended memory to load application..."

 

mem command says that there is almost 3gb of memory, but it is under the "used" column, and "free" says 0, but there are no applications loaded.

 

Is there a way to find out what is using this memory?   ...or why it is saying that?

 

Thanks.



BC AdBot (Login to Remove)

 


#2 technonymous

technonymous

  • Members
  • 2,474 posts
  • OFFLINE
  •  
  • Gender:Male
  • Local time:07:33 PM

Posted 16 November 2014 - 12:35 AM

Did you copy the boot files from an old dos disk or format it in windows and chose options to make it bootable? I read that you need to use Windows XP and above and make it bootable. It uses the newer boot files that don't have that issue. MSDOS.SYS, COMMAND.COM, ISO.SYS.



#3 ray5450

ray5450
  • Topic Starter

  • Members
  • 455 posts
  • OFFLINE
  •  
  • Gender:Male
  • Local time:09:33 PM

Posted 17 November 2014 - 01:53 AM

I used an HP Flashdrive utility to make it bootable.  It has always worked fine until now.  I tried overwriting with boot files from Dos 7.10 (2004) and it behaves the same.

 

As I understand it, Windows XP does not use MSDOS.SYS, COMMAND.COM, IO.SYS.  In fact, those files are empty on XP.



#4 Kirbyofdeath

Kirbyofdeath

  • Members
  • 459 posts
  • OFFLINE
  •  
  • Gender:Male
  • Location:Somewhere on Earth
  • Local time:09:33 PM

Posted 17 November 2014 - 11:37 AM

Windows XP does not start from MS-DOS, but it keeps a copy of the Windows ME Boot Floppy Files and uses them.

 

Try a different floppy or different program. Try testing the RAM memory. Check the High and Extended Memory settings.



#5 JohnC_21

JohnC_21

  • Members
  • 22,966 posts
  • OFFLINE
  •  
  • Gender:Male
  • Local time:10:33 PM

Posted 17 November 2014 - 12:32 PM

If you are booting to DOS, look at the root of the flash drive and make sure you have these files.

 

HIMEM.sys

 

EMM386.exe 

 

Config.sys     Open it in notepad and make sure it has these lines.

device=himem.sys
device=emm386.exe noems
dos=high,umb
devicehigh=ansi.sys  Only if you have ansi.sys on your flash drive
devicehigh=mouse.sys  Only if you have mouse.sys on your flash drive
files=40
buffers=20

Hopefully this will take care of the memory error. At a prompt you can type mem and get a output of memory usage.
 





#6 ray5450

ray5450
  • Topic Starter

  • Members
  • 455 posts
  • OFFLINE
  •  
  • Gender:Male
  • Local time:09:33 PM

Posted 20 November 2014 - 12:01 AM

Yes, that was actually going to be my next post.  That is basically what I have in config.sys.  Here are the mem results:

 

Modules using memory below 1Mb:

  Name           Total       =      Conventional       +   Upper Memory
  --------        ----------------   ----------------                ----------------
  SYSTEM      28,720 (28K)     27,776   (27K)        944    (1K)
  HIMEM         1,104    (1K)      1,104    (1K)           0    (0K)
  EMM386       9,840   (10K)     9,840   (10K)         0    (0K)
  SETVER       848    (1K)         848    (1K)             0    (0K)
  COMMAN     7,696    (8K)      7,696    (8K)           0    (0K)
  KILLER        400    (0K)          400    (0K)             0    (0K)
  DOSKEY      3,968    (4K)      3,968    (4K)           0    (0K)
  DOSLFN      11,808   (12K)     11,808   (12K)       0    (0K)
  CTMOUSE    3,328    (3K)      3,328    (3K)          0    (0K)
  VC                1,840    (2K)      1,840    (2K)          0    (0K)
  COMMAN     7,408    (7K)      7,408    (7K)          0    (0K)
  IFSHLP        2,848    (3K)          0    (0K)      2,848    (3K)
  FREE       579,616  (566K)    579,328  (566K)        288    (0K)

Memory summary:

  Type of Memory       Total    =     Used    +     Free
  ----------------            -----------   -----------   -----------
  Conventional          655,360        76,032          579,328
  Upper                     4,080            3,792            288
  Reserved                0                   0                   0
  Extended (XMS)    2,948,157,4   2,948,157,4   0
  ----------------  -----------   -----------   -----------
  Total memory      2,948,816,8   2,948,237,2       579,616

  Total under 1Mb       659,440        79,824       579,616

  Total Extended (XMS)                2,948,157,4 (2,879,060
  Free Extended (XMS)                           0       (0K)

  Largest executable program size         579,312     (566K)
  Largest free upper memory block             288       (0K)
  Available space in High Memory Area       5,344       (5K)
  MS-DOS is resident in the high memory area.
 


Edited by ray5450, 20 November 2014 - 12:13 AM.


#7 JohnC_21

JohnC_21

  • Members
  • 22,966 posts
  • OFFLINE
  •  
  • Gender:Male
  • Local time:10:33 PM

Posted 20 November 2014 - 08:38 AM

From that error I did a little searching and tracked the error down to Dos/32a advanced extender. According the the documentation that error

 

DOS/32A fatal (4003): not enough extended memory to load application exec "%s"

- There is not enough extended (High) memory to load your application. Rebuild your program so that it occupies less memory, free some of extended memory or reconfigure DOS/32 Advanced.

 

So it seems one of your programs or a combination is using all the available extended memory. I am not sure what though. Try removing the programs one by one on the flash drive. Maybe using the LoadHigh (LH) command in autoexec.bat will help.

 

Instead of MS-DOS, you might want to take a look at putting FreeDos on a USB key. You can use Rufus to to that.


Edited by JohnC_21, 20 November 2014 - 08:49 AM.


#8 ray5450

ray5450
  • Topic Starter

  • Members
  • 455 posts
  • OFFLINE
  •  
  • Gender:Male
  • Local time:09:33 PM

Posted 20 November 2014 - 10:17 PM

Before trying Dos 7.1, I used Windows 98 DOS (which I think is DOS 7), and it had the same result.  In config.sys was himem.sys and emm386.exe and nothing else.  Autoexec.bat was empty. I don't believe that any application is "using" the extended memory because there were none loaded/running.  It is not available for some other reason that I do not know.


Edited by ray5450, 20 November 2014 - 10:18 PM.


#9 JohnC_21

JohnC_21

  • Members
  • 22,966 posts
  • OFFLINE
  •  
  • Gender:Male
  • Local time:10:33 PM

Posted 21 November 2014 - 10:17 AM

I am not sure why the error is occuring. Is said here to use XP DOS but I never heard of that unless they are talking about formatting a floppy disk in XP. You can try the Windows ME bootdisk iso here and see if that works for you.


Edited by JohnC_21, 21 November 2014 - 10:17 AM.


#10 ray5450

ray5450
  • Topic Starter

  • Members
  • 455 posts
  • OFFLINE
  •  
  • Gender:Male
  • Local time:09:33 PM

Posted 26 November 2014 - 10:09 PM

I have found out the following:

 

When emm386.exe is loaded, about 2 or 3k out of 3gb of extended memory is used, as is shown in the resutls above, but the amount of free extended memory is 0.

When emm386.exe is not loaded, 3gb are shown as free, but there is no access to upper memory because emm386 is not loaded.

No applications can be using this almost 3gb of memory because if any were, when emm386.exe is not loaded, there would be a message saying that there is not enough memory to run xyz

 

The quesion is, how do I access more extended memory when emm386.exe is loaded?

 

Thanks.


Edited by ray5450, 26 November 2014 - 10:14 PM.


#11 technonymous

technonymous

  • Members
  • 2,474 posts
  • OFFLINE
  •  
  • Gender:Male
  • Local time:07:33 PM

Posted 27 November 2014 - 11:33 PM

If you want to use extended memory then you don't use the NOEMS after EMM386. You then tell it how much memory to use. As example 1024, but this number represents Kiliobytes. So 1024Kb will be 1 Mb. If you wanted to use 100Mb you then have to put another zero 102400. If you wanted 1Gb then you will need another zero 1024000 etc. Then you tell the driver which part of the memory it needs to go by placing the same number. In the example it tells to load MYDRIVER.SYS to somewhere in the higher memory of 1024 memory block. Hope that helps you out.

device=himem.sys
device=emm386.exe 1024
dos=high,umb
files=40
buffers=20
devicehigh=MYDRIVER.sys 1024



#12 ray5450

ray5450
  • Topic Starter

  • Members
  • 455 posts
  • OFFLINE
  •  
  • Gender:Male
  • Local time:09:33 PM

Posted 27 November 2014 - 11:53 PM

Thank-you, for your response.

 

ems is expanded memory.  xms is extended memory.  NOEMS means no simulated expanded memory.  As I understand it, expanded memory is only used by very old things.  My config.sys that I had in the first place with NOEMS has always worked, and all the extended memory was accessable/free.  I don't know what changed.

 

I can still try assigning the numbers like your example, and I suppose I can try if expanded memory will work, but I would think that applications use either expanded or extended memory and not both, and since I have never used expanded memory before, I would say that it probably won't.



#13 technonymous

technonymous

  • Members
  • 2,474 posts
  • OFFLINE
  •  
  • Gender:Male
  • Local time:07:33 PM

Posted 28 November 2014 - 12:30 AM

It should work give it something like 100Mb. If you got that much to spare. load everything into it.



#14 ray5450

ray5450
  • Topic Starter

  • Members
  • 455 posts
  • OFFLINE
  •  
  • Gender:Male
  • Local time:09:33 PM

Posted 29 November 2014 - 11:59 PM

The work I've done has produced the following 3 issues:

 

1. Memory

No, what you suggested did not work.  When memory is specified, it is recognized only as ems and not xms, and produces the message, "There is insufficient xms memory to load xyz..."  I have further discovered that both upper memory and extended memory cannot be made available at the same time, which is odd, since it always has before and my reference books say it should.  Still further, I have found that if I remove emm386 so it does not load at all, then even though there is no upper memory, somehow it automatically uses extended memory instead--I didn't notice that until I tried loading more devices.  I have never seen that behavior before and I have used DOS since before I had Windows 3.1.  This issue then, is essentially solved, but I'm not sure why.

 

2.  Purpose

My goal was to use the DOS 7.1 feature of long file names with NTFS4DOS.  However, I found that they do not play well together.  After starting NTFS4DOS, and then starting the interface for long file names (gvfm), the computer freezes.  If you or anyone else knows something about that, please, let me know.  Thanks.

 

3.  CD

GSCDROM.SYS will not recognize the CD drive and says, no devices found.  Is there anything I can do about that?  Thanks.


Edited by ray5450, 30 November 2014 - 12:01 AM.


#15 technonymous

technonymous

  • Members
  • 2,474 posts
  • OFFLINE
  •  
  • Gender:Male
  • Local time:07:33 PM

Posted 30 November 2014 - 04:38 AM

You're supposed to be able to use expanded and extended. That is why I ussgested trying that, so you can take extended memory and emulate it as expanded memory. That brings me back to my orignal post in thinking that your version is somehow botched up. I read people was getting into this sort of problems and suggested creating a floppy disk from Windows XP or higher OS to get those files. Maybe going to bootdisk.com and trying a universal bootdisk might remedy the problem. It definitely sounds like something is wrong. With newer technology and architecture of computers today you may never get these things to work right with new UEFI bios that emulates legacy BIOS to start with. I imagine that if you had a real old 386 box all of these issues would vanish. This is why people choose to use emulate dos entirely and use dosbox which runs anything really. I have loaded games and Widnows 95 in it and it works flawless. Or use some other virtual machine methods, such as booting from a virtual disk. I understand being nostalgic from time to time I do too, but why punish yourself with all this??

 

As far as your NTFS4DOS issue. Again, it may not be loading correctly due to newer machines and hardware. It's hard to say what is causing it. Maybe try http://www.majorgeeks.com/files/details/ntfs_reader_for_dos.html

 

Last Question: Again, same issue that driver maybe is not even coded to work that way and may be to huge to load anyways. The only thing I can think of, is using a smaller generic driver. Something like oakcdrom.sys was widely used back then.

 

Maybe you can try something like this instead. http://www.syslinux.org/wiki/index.php/MEMDISK


Edited by technonymous, 30 November 2014 - 05:48 AM.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users