2002-11-04Homepage
logo
Tutorials, reviews, and 2150+ external links!
TWEAK TUNEUP TIPS
Man wearing an electronic thinking-cap.

Homepage

Low Memory Max Maximum Memory Memory Managers
Boot Disk - Create Multitasking Footnotes
 

How much memory should I have when I boot directly into DOS? is a common topic of conversation.  On my machines I have had as much as 639k some claim as much as 704k of free memory in DOS using VIDRAM.COM to add the majority of video memory used by color monitors (thanks to Lance Lyon for this information).  VIDRAM.COM was included with Desqview by Quaterdeck who is no longer in business.  Use of VIDRAM.COM (thanks to Loren Feldwyke) would limit any programs executed to black and white (mono) displays.  I tend to think anything over 600k is good myself.  This will vary with the numbers of drivers and TSR's you load at boot up and with the amount and type of memory your DOS has access to for loading high.  Short answer - it depends.

Each new version of DOS has a larger COMMAND.COM file which loads into memory when you boot the machine.  This means DOS has had to either become more efficient at handling upper memory or you would lose free memory with each new version.  I don't recall the sizes of each version of DOS but v3.3 is 25,308 bytes and W98SE DOS is over 90k bytes in size.  Drivers such as HIMEM and EMM386 are larger and so on.

It is not necesssary to use the very newest versions of DOS but older versions such as v3.3 (the oldest version I would recommend using) cannot read partitions larger than 32 megabytes in size.  This doesn't seem like a problem until you want to put all of Windows v3.x on one partition and it begins to get crowded with addons.  Most seem to prefer the v6.22 MSDOS if they primarilly use DOS and Windows v3.x or WFWG on their machines.

The good news is the newer W98 v4.10.2222 DOS (referred to as MSDOS v7.x) will boot up on my 80386 with 639k of available DOS memory from a rescue disk made using the built in function of W98SE's newer HIMEM.SYS and EMM386.EXE.  No need to tweak it or edit anything, it just does.  The HIMEM and EMM386 from W98SE will work with MSDOS v6.22, I use them here with MSDOS v6.22 and they seem faster than the older versions.

The bad news is MSDOS v7.x won't boot on my 80286 even if I erase the config.sys and autoexec.bat files.  From discussing this with other DOS users it seems that this version of MSDOS will not boot on any machine earlier than the 80386.  I have been told that v7.x MSDOS wants to only work in protected mode and will no longer function if it cannot for any reason.  PTSDOS will not work on hardware prior to the 80286.

WARNING!: Configuration of upper memory managers can and usually will make your system unable to boot to DOS or any other OS that you have installed until they are setup properly.  Stressful, but it's the only way to find the proper configuration.  Keep a boot disk handy when attempting to configure or reconfigure any of the memory managers listed here or the ones not listed here.  Expect to do many resets and on/off's before you are finished.  Learned the hard way myself. If you're not sure what a boot disk is, click hereYour best protection are your backups.

If you're using MS-DOS 6.0 or higher and have a problem while your PC is booting, you can use two convenient features that let you debug CONFIG.SYS and AUTOEXEC.BAT.  When the system displays the 'Starting MSDOS' message, press the F8 key and DOS will prompt you before executing each line in CONFIG.SYS.  Then it will ask you whether you want to run AUTOEXEC.BAT.  This is especially useful if you need to skip a bad device driver or find out which driver is displaying an error message.  You can also press the F5 key if you want to completely skip the processing of CONFIG.SYS and AUTOEXEC.BAT.

Clean Boot - Doing a 'clean boot' may be necessary when attempting to locate a problem with the configuration.  This Microsoft Knowledgebase article describes how to perform a clean boot.

NOTE: ?more? are the links to more information and my opinion, for what it's worth, of the software's usefulness on legacy machines using 16 bit DOS. All of the programs listed here are the best in their genre but they have a few problem areas. Nothing is ever perfect or easy.

  • © Memory Managers - HIMEM and EMM386 are included with newer versions of MSDOS and PCDOS.  DrDOS has combined the two into one EMM386 driver as did QEMM386 some years ago.  Newer versions of these drivers are better at managing upper memory and will often work with earlier versions of DOS.  I use EMM386 and HIMEM from the W98SE DOS here with my v6.22 MSDOS and W31 setup.  QEMM386 was my preference years ago and I continue to believe that it is the better memory manager.  Time constraints have prevented me from reconfiguring this system to use QEMM but, hopefully, some day I will change back to QEMM here.

    • HIMEM.SYS - Extended memory is a requirement for executing any version of Windows and newer versions of DOS and clones require it to loadhigh into upper memory.  DrDOS has combined this into EMM386.  The HIMEM.SYS included with DR-DOS is for use with the 80286 and is not required for protected memory within 80386 or better DR-DOS configurations.  However, the MSDOS HIMEM.SYS can be used within such a DR-DOS config.sys to access up to 64mb of memory. ?more?
    • EMM386.EXE - Expanded memory for 80386 and newer machines the Microsoft version of this program is no match for QEMM386 when using MSDOS.  DOS graphics applications and games usually want expanded memory and this driver supplies that type of upper memory. ?more?
    • QEMMxxx.SYS - Will do both extended and expanded memory using just this one driver.  This tends to make optimization a bit more difficult but with the included utilities and MANIFEST to view memory it will work wonders once setup properly. ?more?
    • QRAM.SYS - For 80286 memory above 640k (questionable value in most cases).  Quaterdeck is no more and I can't find this utility anywhere on the Internet.  QEXT.SYS is available and will perform a similar function for the 80286's if they have at least a partial 'NEAT chipset'. ?more?
    • MEMMAKER.EXE - Attempts an automated rewrite of your config.sys and autoexec.bat files to best use upper memory for your hardware and software.  Free download from Microsoft as an update to W95 DOS.  There is also a MEMMAKER Q&A file free from Microsoft linked on the same DOS Ghost webpage.  These DOS update binaries execute with v6.22 MSDOS and might work with other versions of DOS.  It's free - try it out.

  • Free download (Quarterdeck)
    • QEXT.SYS - A version of himem.sys (good on 80286's) - Simtelnet description mentions DOS v5 but I've used this with DOS as old as v3.3 here.  If your 80286 has more than 640K you need this. ?more?

  • Shareware
    • DOSMAX © - Allows 'loadhigh' when using DOS versions prior to v6.22. Predates MSDOS improvements and quite popular with W31 users. ?more?
    • VMIX © - Adds multitasking to 80386 and DOS (complex setup but it does multitask). ?more?
    • VRAM.SYS © - Use video ram as a ramdrive. I don't recommend doing this but if you absolutely must have more memory this might help you out. ?more?
    • UMBPCI.SYS © - Limited to newer hardware but worth mentioning.


  • Multitasking for DOS - DRDOS (free download) and PTSDOS (Russian DOS clone) both multitask without additional third party software. Makes you think?
    • TAME - (105k archive) 80386 and up.  Improves the efficency of sharing of 'timer ticks' for multitasking OS.  I've used TAME since my DOS and Desqview days to improve the multitasking of both DOS Desqview multitasking and Windows v3.x - this is a must have utility!  I doubt I could've survived multitasking on legacy hardware without using TAME!
      btw : TAME now has a version for W9x/W2K etc.  I would recommend getting TAME if you use W31, WFWG, or the newer Windows OS.  You'll thank me for this one.
      TAME homepage.
    • Desqview - 80286 (if QEXT.SYS is used) and 80386 and newer.
    • DesqviewX - 80386 and up with 'X' GUI.  Some *nix compatibility when used as a terminal to a *nix machine.

  • Multitasking an XT (commercial)
    • DoubleDOS © - Used this on an 8086 and could do zmodem downloads with TELIX running as a background task! (very stable)

  • Task Switching
    • MC.COM - Stable and works on 8086's (abandonware?)
    • Software Carousel ©  - Quaterdeck is no longer in business but this is good software if you can find it.

UP arrow
Information accessed via links in the above text

HIMEM.SYS or QEXT.SYS Creates HMA also referred to as extended memory used primarilly by multitasking addons for DOS, taskswitchers, and programs that shell out to the command line from within a running program.  For the 80286's the Quaterdeck QEXT.SYS seems to work better here on my 1meg `286 than HIMEM.SYS did but QEXT does not provide all the services that HIMEM does meaning some programs will fail when using it. 
EMM386.EXE Creates expanded memory that DOS games, graphics editors, and many DOS utilities need to function properly.  Switch commands can be used to include or exclude areas of upper memory.  The most common switch command is NOEMS when used with W31.  Hardware will vary, there are no generic setups for this driver even though you will find websites that claim otherwise.  DrDOS combines both HIMEM and EMM386 into one program making configuration a bit different than with the MSDOS and PCDOS versions.  Extensive documentation of the switches used by Microsoft is here.

QEMMxxx.SYS Very complex setups for this one.  QEMM is both himem.sys and emm386.sys combined into one program and will create both extended and expanded memory.  Early versions were a bit touchy but newer versions seem quite stable here on my 80386.  The optomizer that is included is far from perfect, often locking up the machine while 'testing'.  Utilities to assist you in determining what adjustments need to be made are included.  The most discussed is probably MANIFEST the memory browser, there are others also.  Fortunately once you have the correct switches in place QEMM is very effective for managing upper memory.
QRAM.SYS Difficult setup but when purchased this comes with many of the same utilities that QEMMxxx has with it.  I owned this program long ago but returned it for Software Carousel (task switcher) but I don't remember why.  I think it was only at LIM v3.0 and that really only works for LOTUS using upper memory or as a disk cache.
DOSMAX Allows use of loadhigh when using versions of DOS prior to v6.22.  I first used DOSMAX with v3.3 MSDOS. Puts as much as possible in upper memory.  Worked very well on my machine.  Setup is not as difficult as QEMMxxx but it's not as versatile either. 

UP arrow

VMIX Allows DOS to multitask.  Difficult setup and I didn't like some of the requirements to use it but I don't remember what they were, sorry.  It will definitely multitask DOS, I've set it up twice in the past.
VRAM.SYS Easy to use once you've used the other upper memory managers and understand the terminology and the concept.  Not particularly useful for legacy machines with minimal video memory available as it won't load into upper memory if you don't have any which means it uses more than it gives back.  If you do have upper memory you probably don't need VRAM.  Mainly useful for a larger ramdisk on machines with less than 2 megabytes of memory.
BOOT DISK This is a diskette that contains the three key files needed for DOS to control your computer and give you access to your hard drive.  Two of the files are hidden and won't show up when you use the DIR command without switches.  Command.com is the only file you will see but there are actually three files.  The names of the two hidden files changed with different versions of DOS but that's not important right now.

If you put this diskette into drive A: before the machine is turned on when the computer is switched on it will first look at the A: drive for these hidden files (unless this has been altered in CMOS on newer machines) and will load DOS into memory from the A: drive diskette and allow you to access all of the files and drives connected to your computer.  For access to ZIP drives or a CD ROM drive you will need to add those drivers to the diskette config.sys and autoexec.bat files. Normally these programs are loaded from C: on your hard drive.  Some refer to a boot disk as a systems disk while Windows95 and newer users would recognize a boot disk as an ERD (emergency rescue disk) or EBD (emergency boot disk) which it certainly is if/when Windows goes haywire.

Backup Your Hard Drive !

CAUTION: Formatting a diskette will erase any files you have previously stored on the disk!  Use a new blank diskette or type DIR A: to be certain nothing is on the disk that you want to keep.  This disk must be made before you need it, not after.  Let me repeat that, make the bootdisk before you find that you need it!  Once your computer will not boot to the command line you have no way to create this diskette.

If you are using any version of DOS or one of it's clones you only need to put a blank diskette (or one with files you no longer need) into your floppy drive A: and type:

C:\> FORMAT A: /S

Take your time and don't type C: instead of A: or you will erase your hard drive.  Don't laugh, it happens.  Well, OK, go ahead and laugh if you must.
Press the ENTER key and wait until the process finishes.  The program format.com will then report the amount of space used for the three files and any bad sectors it has found.  If it does find any bad sectors this diskette is dying and should be thrown away.  Make another one.  After this, assuming there are no bad sectors, format.com will ask you for a label.  The label is just a word or phrase to help you find a particular disk.  This is optional.  I use the date so that I know if it has been years since formatting the disk or recently.  Formatting a disk is magnetizing very fine iron oxide particles and diskettes tend to lose this magnetism over time.  A new bootdisk should be made every year just to be certain it will boot when you need it to.

Now you can copy config.sys and autoexec.bat from your C: drive to this diskette in the A: drive along with any drivers for ZIP disk drives or drivers for CD drives and other programs that you feel might be handy while you test and configure your system.  Possibly a text editor like EDIT so that you can reset your C: drive configuration if it won't boot?

C:
C:\> CD \
C:\> COPY CONFIG.SYS A: /V
C:\> COPY AUTOEXEC.BAT A: /V
C:\> COPY \DOS\EDIT.EXE A: /V

You will need to edit config.sys and autoexec.bat to change them from using the C: drive for command.com etc. Generally just change the C:'s to A:'s and remove any directory names such as \DOS or \WINDOWS - you will be loading everything from A:\.  Then copy any drivers loaded in config.sys to the floppy and any utilities or other software that loads from autoexec.bat and you're finished.  This also gives you a copy of these two important files that you can copy back to the hard drive and edit the A: back to C: adding the appropriate directory names to locate the drivers and get your computer to boot from the hard drive again.

You now have a boot disk!  Put this disk into the A: drive and turn your computer off.  Count to 20 and turn it back on again.  If all is well the machine will boot and show you the command line of DOS.  If this does not happen determine what is missing and try again.  Do test this disk rather than just assume it will work when you need it.  W9x users also need to test for access to the CD drive when using their floppy rescue disk.  Your OS is on CDs.  Without a CD driver on your floppy rescue disk you will not have access to your CD drive.  This driver is often oadkcdrom.sys but it may be a manufacturer specific driver.  Look for this within your existing C:\config.sys now while your machine is functioning.

UP arrow

DRIVER Any program with the last three letters SYS is a driver but there are some that end in EXE.  The driver is the work horse program that translates between your OS and the machines hardware.  A go-between that makes hardware manufactured by many companies seem to be just one machine.
TSR Terminate and Stay Resident abbreviation.  These are similar to drivers but are mainly intended to customize the OS in ways that each user finds easier to use for their purposes.  TSR's typically load when autoexec.bat is excuted by DOS at boot up but they can also be loaded from the command line or another batch file.  Some TSR's will unload themselves from memory others will not.  There are utility applications that will remove the stubborn ones without rebooting the machine.  These are optional and when more memory is required they can be removed from autoexec.bat or just remarked out using either REM or just a colon (:) as the first character then put back in service by deleting the colon or REM at another time.  What TSR is loaded first, second, or third can make a difference.  Experimentation is the only solution in these cases.
Partitions Those drive letters C:, D:, E:, etc. are usually not really different hard drives.  They are fake hard drives that fool the OS into thinking each one is physically separate.  The first C: drive is usually the primary partition which means it's the one the computer looks at for it's operational system software when you turn on the machine.  The rest of the drive is set to be an extended partition and then that is divided into logical partitions with each having it's own drive letter.  This was necessary in part because early versions of DOS could not keep track of the files on a partition larger than 32 megabytes.  Some new machines use just the primary partition with all files on drive C:.  This is a mistake in the long run as finding files and organizing the files for backups can be very difficult and time consuming.  Better to have dividers which is what partitions seem to accomplish best.
Early versions of DOS from v3.3 downward could only 'see' 32 meg partitions.  Later versions of DOS up to v6.22 can see a little more than 2 gigabytes per partition and a total drive size of 8 gigabytes.  More than that will be inaccessible.  This same limitation applies to DR-DOS v7.03.  Newer versions of MSDOS 7.x and 8.x (WinME) can see even larger partitions and total drive sizes up to 32 gigabytes.
Loading High A term that describes putting software into memory above the 640k limit of DOS.  The 384k of memory above the first 640k locations is referred to as reserved memory that was set aside for special functions that were never fully realized.  Add the 640k to the 384k and you get 1024k which is the correct number for a 1 megabyte machine.  Any additional memory is upper memory.

The original PC's and XT's did not have this reserved memory and cannot load high since there is no high memory in the design.  It was intended to be realized in the 80286 but did not become fully functional until the 80386 was developed with it's protected upper memory access.

Drivers, buffers, and even parts of COMMAND.COM can be loaded into this space either by design or using helper utilities from third party applications such as QEMM, DOSMAX, and others.  This leaves as much of the original 640k\ for your DOS programs to use as possible.


UP arrow
Valid HTML 4.01!
© Charles Angelich 2001,2002