Tom's Guide | Tom's Hardware | Tom's Games
![]() |
![]() |
![]() |
Alright. I'm trying to run a few DOS applications that won't run in Windows XP. I know that XP's DOS is just emulated, so I setup some boot disks, put NTFSDOS on them, booted to DOS, and tried running them.
My problem is that pretty much any DOS program complains that I don't have enough memory to run it. I've tried to use EMM386 and Himem.sys, but to no avail. I've used the Winodws 98 OEM boot disk, an ME boot disk, and a few others. Each says that it supports extended memory, but it doesn't seem to be working.
I guess my questions are, how do you use himem.sys and EMM386 to get extended memory? How can you tell how much memory is available to DOS? What bootdisk do you think is the best bet for a good DOS environment?
Any suggestions/solutions are greatly appreciated!
Thanks.

Are you sure your DOS programs are in short of memory or they call for extended memory?
First of all Emm386.exe is an Expanded (not extended!) memory emulator and its main use is to get control of the Upper Memory Blocks (the area located between 640kb and 1Mb) so freeing more conventional memory (the memory under the 640kb barrier) for applications.
Very fiew and legacy programs require the extend memory emulation.If otherwise your programs run in DOS Protected Mode (DPMI), you need a DOS extender that works using HiMem.sys (that is an Extended memory enabler).
In Win Xp it is DOSX, but you can find many on the freeware sites.Be more accurate in describing the error messages reported by your programs and post your config.sys and autoexec.bat

Reading again your post, I noticed you say to put NTFSDOS TSR program in all your booting diskettes. I presume to get access of the C: hard drive holding NTFS Windows XP mainstream file system.
Well, I suppose that is the problem, NTFSDOS stealing conventional memory and reducing the available addressing space to applications. Type MEM at DOS prompt to get the amount of your conventional memory.
If it's so, a way to work around is to load NTFSDOS in Upper Memory via EMM386 (LoadHigh).
I do not know the practical characteristic of NTFSDOS, so what I said is only hipotetyc,but that may be the right way.Again post your Autoexec.bat and Config.sys.

Keep in mind that dos will only work with a FAT partiton.A typical config.sys that will give you Extended or Expanded memory depending on the program needs and without you having to do anything about it is (in this example the files are on the boot disk - check the path to your files):
device=himem.sys
device=emm386.exe 4096 ram
dos=high,umbThe 4096 figure here is a good example. You can go much higher but DOS does not usually need much more.
Other config.sys that sometimes are required are:
device=himem.sys
dos=highor
device=himem.sys
device=emm386.exe noems
dos=high,umbSome people advocate the use of the AUTO switch with emm386.exe.I don't use it. The following boot disk is a Windows 98 boot disk that can be used for experimenting with the above config.sys.Edit the config.sys and auitoexec.bat present on the boot disk to suit your needs.This boot disk uses the traditional approach normally seen on a boot disk:basic system files with drivers plus config.sys and autoexec.bat.The usual boot disks for Win 98 and ME are not suitable for you because they use a RAM disk that is not needed to make a dos program run.
http://www.csupomona.edu/~djlee1/winworld/files/boot/Win98DOSBT.rar
Good luck.

Thanks for the replies!
Yes, I do use NTFSDOS so that I can access my hard drives, and it works very well. I do think you are right about it using memory, but am not sure if that's the only problem.
The only error message I get is "Not enough memory". It's always the exact same, so I figured it was DOS giving me the message, not the individual program. Most of what I'm trying to run are old DOS games.
I guess I need a better idea of how to use EMM386. What switches and options would you suggest?

As in the above replies, DOS games are looking for available memory below 640k. For example Blake Stone wants 610k available whereas Tetris is only looking for about 255k. Anything you can load in upper memory (640 - 1024k) will free up the memory you need. Memmaker did this in DOS 6.x but you'll likely have to do it manually. Your autoexec.bat and config.sys files will tell us what we need to know.

I would post the autoexec and config files, but I've used a number of different ones, from different places. I really just want to start over from scratch and make a new boot disk to support more memory.
What do you suggest putting in the config and autoexec files? What version of DOS should I use?
Thanks again.

I have a boot disk for an old dos football game I have. I have 6 files on it. 1. io.sys 2. msdos.sys 3. command.com 4. config.sys 5. autoexec.bat 6. mouse.com
The autoexec.bat file reads:
echo off
path c:\windows;c:\windows\command;c:\dos
prompt $p$g
set comspec=c:\windows\command.com
loadhigh c:\mouse.com
c:\windows\smartdrv.exe /x /vThe config.sys file reads:
device=c:\windows\himem.sys
device=c:\windows\emm386.exe ram
dos=high,umb
files=30
buffers=20This boot disk works well for me, it gives a lot of available conventional memory and expanded memory. You need to use the attrib command to transfer the .sys files. If you need cd you will have to add that in.

Running old DOS based games that require EMS memory through a UMB page frame on machines designed for XP/NT can be a bit of a problem. Some of the video cards often take the whole C000h segment as the video BIOS, and the E000h and F000h segments are taken by the system BIOS. Throw in a network card, with it taking part of the D000h segment, and there is no room for a 65k UMB page frame to supply EMS memory. AUTO will not work.
In this case, you have to "force" EMM386 to assign a page frame in the D000h segment and overlay any network card there. Assumes you are not using the network to play the game. Normally, under DOS you need access to the Video BIOS and to the System BIOS. Use the MEM /d command under DOS to see how your memory is allocated. Your game may need a 65k page frame for "Upper" memory.
You may need to find some documentation on the games and find out how much of what kind of memory they require. (Conventional (lower) memory, Upper memory and/or a UMB page frame, Extended (XMS) memory, or Expanded (EMS) memory through a UMB page frame. Then compare that with what MEM /d shows for your current configuration and adjust EMM386 settings in the CONFIG.SYS as required.

![]() |
loading an operating syst...
|
date Value in a variable ...
|

This post is quite old and has been locked from receiving new replies. Please create a new posting instead.
| Ads by Google |