[tweak] Increase / free up conventional memory for Windows 98

Discussion in 'Software' started by James, Jul 13, 2003.

  1. James

    James Photojournalist VIP Member

    Joined:
    Dec 24, 2002
    Messages:
    6,662
    Location:
    Maine, USA
    Free up Conventional Memory Windows 9X

    What is conventional memory?
    The first 640 KB of system memory is called conventional memory. The name refers to the fact that this is where DOS, and DOS programs, conventionally run. Originally, this was the only place that programs could run; today, despite much more memory being added to the PC, this 640 KB area remains the most important in many cases. The reason is that without special software support, DOS cannot run programs that are not in this special area. Conventional memory occupies addresses 00000h to 9FFFFh.

    MS-DOS-based programs require a certain amount of Conventional Memory to run,
    even when you run them in Windows.
    If you attempt to run an MS-DOS-based program that requires more Conventional Memory than is currently
    available on your computer, the program may not run correctly or at all,
    and an error message indicating that there is insufficient memory to run the program may be displayed.
    When this occurs, you must reconfigure your computer so that more Conventional Memory is available.

    To will free up a huge chunk of Conventional memory if your Hard Drive is not compressed .
    Edit your Msdos.sys so it doesn't load the compression drivers
    Note: This works only on Uncompressed Drives as most drives aren't compressed these days
    Always have a back up MSDOS.SYS before editing it, such as on a Boot Disk.
    This will make Msdos.sys stop loading your drivespace & doublespace compression drivers
    Make these changes in your Msdos.sys under options.
    Code:
    [options]
     drvspace=0
     dblspace=0
    This is how a basic MSDOS.SYS looks
    Note in this example the XXXXXXes are in the middle of the Options Section which is fine but can be moved below.
    It might be easier to deal with if the Options Section is all in one place but just don't remove the XXXXXXX filler.
    This is just an example for gaining conventional memory I'd have more suggestions on the Msdos.sys page.
    Code:
    [Paths]
     WinDir=C:\WINDOWS
     WinBootDir=C:\WINDOWS
     HostWinBootDrv=C
     
     [Options]
     BootMulti=0
     BootGUI=1
     ;
     ;The following lines are required for compatibility with other programs.
     ;Do not remove them (MSDOS.SYS needs to be >1024 bytes).
     ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxa
     ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxb
     ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc
     ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxd
     ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxe
     ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf
     ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxg
     ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxh
     ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxi
     ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxj
     ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxk
     ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxl
     ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxm
     ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxn
     ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxo
     ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxp
     ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxq
     ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxr
     ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxs
     BootDelay=2
     Logo=0
     Network=0
     BootWarn=0
     DblSpace=0
     DrvSpace=0
     DoubleBuffer=0
     BootKeys=1
    Next you can modify your Config.sys and Autoexec.bat files for Running Windows or DOS

    Many people choose not to use the Config.sys and Autoexec.bat
    You can just Rename or Empty your Config.sys and Autoexec.bat and Windows will run Default values

    Or you can use some of these tips.

    To edit these files it's easiest to use the System Editor - SYSEDIT.EXE
    You can use RUN on the Start Button Menu and type SYSEDIT.EXE

    Or you can Right Click on any blank space on the Desktop or a Folder and Select
    New | Shortcut | Command Line | SYSEDIT.EXE and name it | System Editor

    Then just select the Window of the file you wish to edit.

    Loading High in these files for a Windows bootup is not really a good idea

    If you're not loading Compression Drivers from the Msdos.sys you shouldn't have to worry about Coventional Memory

    Then the idea would be freeing up Upper Memory

    First you'll need to load the Himem.sys because it needs to load before the Emm386.exe
    Then DOS=HIGH,UMB is used specify the memory location for DOS
    And by using the
    DEVICE=C:\WINDOWS\EMM386.EXE noems frame=none
    To disabled use of a 64K page frame in upper memory for expanded memory use frame=none
    DEVICE=C:\WINDOWS\EMM386.EXE noems frame=none I=B000-B7FF
    This disables the monochrome area that is used by old DOS programs that used monochrome.

    Also you can add these lines to System.ini for Windows
    Code:
    [386Enh]
     NoEMMDriver=True
     EMMInclude=B000-B7FF
    Then you can free up some more Upper Memory by using these lines

    The first line is not need but it makes the IFSHLP.SYS load in Conventional Memory freeing up some Upper Memory
    Code:
    DEVICE=C:\WINDOWS\IFSHLP.SYS
     BUFFERS=13
     FILES=40
    Here is an example of how a plain Config.sys looks using these tips
    Code:
    DEVICE=C:\WINDOWS\HIMEM.SYS /testmem:off
     DOS=HIGH,UMB
     DEVICE=C:\WINDOWS\EMM386.EXE noems frame=none I=B000-B7FF
     DEVICE=C:\WINDOWS\IFSHLP.SYS
     BUFFERS=13
     FILES=40
    Nothing is needed in the Autoexec.bat for a plain Windows Boot

    The echo off is used so if you add command to the Autoexec.bat the Command isn't displayed just the results of that Command
    You might want to create a MEM.TXT "explained below"
    Or have your Anti-virus scan you Boot files

    A example of a plain Autoexec.bat would be
    Code:
    ECHO OFF
     MEM /C > MEM.TXT
    Now if you need to free up more Conventional Memory for running in DOS you can Load High

    But this will take away Upper Memory from Windows so it's best to use these lines for just Dos
    Loading High in the Autoexec.bat
    LH C:\MOUSE.EXE
    instead the of the current mouse.exe line.
    Use the current path if mouse.exe is not in the Root Directory C:\
    LH stands for Load High.
    Loading the Mouse or any other Hardware Driver for Normal Windows use is not needed -"just an example"

    Loading Devices High in the Config.sys
    Replace "Device" on the *****_ CD line with DEVICEHIGH, for example:
    Code:
    DEVICEHIGH=C:\*****_CD.SYS /D:MSCD000 /I:O
     Loading Hardware Drivers for Normal Windows use is not needed -"this just an example"
    Note: Himem or EMM386 cannot load High because these are the memory managers.

    If you're setting up for System to Boot in DOS I suggest you edit the Config.sys to create another Boot Menu
    That way you can have things set for both a Windows Boot and a DOS Boot.

    If you put this line in your Autoexec.bat
    Code:
    MEM /C > MEM.TXT
    It will create a text file called MEM in your C:\ drive everytime your computer boots up.
    This is created before Windows loads from your Autoexec.bat
    You can compare it with MEM from a Windows command prompt after Windows loads.
    This Text file will be copied over every boot up when Autoexec.bat runs.
    Copy this Text file if you want to keep a record to compare.

    Quick tips:
    Use this DOS command to check memory usage and the amount free: "MEM /C /P".

    The one really tricky thing is Windows 95's compression driver and how to manage it. (Well, the best way is not to use compression at all if this is possible...) The DRVSPACE compression driver is large--110 KB in size--so it's difficult to handle. You have a couple of choices of how to configure loading the driver, as there is a tradeoff here:

    • Maximize DOS Conventional Memory In DOS Mode: If you tell the system to load the compression driver into upper memory (by using DEVICEHIGH on the command in CONFIG.SYS that loads DRVSPACE.SYS), this will save 110 KB of conventional memory when you are running in MS-DOS mode. However, the 110 KB of upper memory will force other drivers into conventional memory, causing the free conventional memory to decrease. This is still better than leaving the 110 KB also in conventional memory. When you run "true" Windows 95, with the graphical interface, Windows will leave the compression driver in the upper memory area instead of loading an extended-memory version, so your DOS sessions in Windows 95 will have less conventional memory.
    • Maximize DOS Conventional Memory In DOS Sessions: If free conventional memory is more important to you in DOS sessions under Windows 95 proper, do not load DriveSpace using DEVICEHIGH, but rather leave it in conventional memory. If you do this, and add the "/MOVE" parameter to the DRVSPACE line, then Windows 95 will automatically move the driver to extended memory when the graphical interface starts, thus saving the entire 110 KB from both conventional and upper memory. This is the best solution when running inside the graphical interface, since the driver is completely out of the way. The drawback is that if you shut down to "MS-DOS mode", Windows will move the driver back into conventional memory, and you will take a 110 KB hit leaving many DOS programs unable to load. The line in CONFIG.SYS if you select this option should look like: "DEVICE=C:\WINDOWS\COMMAND\DRVSPACE.SYS /MOVE". Note that if you use DEVICEHIGH, Windows will not relocate the driver to extended memory, as mentioned above.
     
    James, Jul 13, 2003
    #1
    1. Advertisements

  2. James

    Nickweb Resident Filmaker Moderator

    Joined:
    Nov 7, 2003
    Messages:
    2,532
    Location:
    North Wales, Britain
    whoa
     
    Nickweb, Nov 28, 2003
    #2
    1. Advertisements

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. James
    Replies:
    0
    Views:
    1,128
    James
    May 9, 2003
  2. James

    [tweak] Broadband tweak

    James, May 11, 2003, in forum: Software
    Replies:
    41
    Views:
    5,722
    James
    Mar 12, 2006
  3. James
    Replies:
    5
    Views:
    1,532
  4. Nick Le Lievre

    Selling my conventional laptop to buy EEE PC

    Nick Le Lievre, Sep 6, 2008, in forum: DIY Computers
    Replies:
    3
    Views:
    213
    Nick Le Lievre
    Sep 9, 2008
  5. cisz

    conventional memory replacement

    cisz, Feb 8, 2010, in forum: PC Hardware
    Replies:
    10
    Views:
    471
Loading...

Share This Page