【求助】壓榨更多ms-dos的傳統記憶體



贊助商連結


頁 : 1 [2]

ICLA
2004-03-31, 12:33 AM
high 和 umb 之間要加逗點喔

贊助商連結


linux_xp
2004-03-31, 01:20 AM
最初的dos,可能是3.X版以前吧,只能使用640kB

其中還有 UMA 和 UMB 區段的保留記憶体,給常駐程式和硬體快取使用
所以無法用到640KB整

後來3.3版以後,應用軟體可以把程式碼載入640KB以後的區域
但是主程式碼還是必須放在640KB裡面
這稱做DOS的包袱,為了相容性只好一錯再錯

DOS記憶體模式,還有分EMS模式,和XMS模式
XMS模式,是較先進的模式
能將驅動程式上載到高層記憶體,空出更多的640KB傳統記憶體
但一些較舊的軟體或遊戲,只能在EMS模式下面跑
若啟動成XMS記憶體管理模式,執行這些舊版軟體,就會出現錯誤訊息

DOS主要的設定檔,都在CONFIG.SYS和AUTOEXE.BAT裡面

CONFIG.SYS
-----------------------------------------
REM 選單型的CONFIG.SYS

[MENU]

MENUITEM =1,XXXXX
MENUITEM =2,XXXXXX

MENUCOLOR = 15,1

REM 選單顏色代碼,前景(1-15),背景(1-7)

[COMMAND]

DRVICE=C:\WINDWOS\COMMAND\HIMEM.SYS
DRVICEHIGH=C:\WINDWOS\COMMAND\EMM386.EXE

DOS=HIGH,UMB

[1]

INSTALLHIGH=C:\.....(載入驅動程式,後面加HIGH,代表載入高層記憶體)

[2]

------------------------------------------



AUTOEXEC.BAT
-------------------------------------------
@ECHO OFF

GOTO %CONFIG%

:1
LOADHIGH = C:\.....

REM 載入驅動程式,載入高層記憶體,其實和 INSTALLHIGH 功能一樣

GOTO EXIT

:2

:EXIT
ECHO WELCOME
CLS

--------------------------------------------

大概是這樣子吧......很久以前的東西了,忘光光了 :eye:

.BAT不只有GOTO
其實還可以做簡單的IF判斷式

purk
2004-03-31, 07:51 AM
把msdos縮小到11k了 是把stacks關掉達到的

還是不能拿到640完整的

傳統已經可以單獨靠emm386 拿到620k了,沒辦法跟qemm386一樣拿到627
太可惜了

http://home.pchome.com.tw/mysite/purk/dos620.JPG

purk
2004-03-31, 11:10 AM
最初由 ellery 發表

Quarkdeck 那家公司後來是被誰購併了嗎?沒記錯的話好像是 也被 賽們鐵克併購了, 推出memma97 跟2000後就沒了,我記得當初我好像有 qemm8.0還是9.0的 但是我忘了如何拿到的 好像是從mammage面拿到的 我也不是很清楚了

我今天找了一下 有個網頁有評比

裡面大概看了一下http://www.kisser.net.au/tontodan/Dos95mem.html#top
http://www.kisser.net.au/tontodan/Dos95mem.html#top

另外我找到了一之程式hiram 取道emm396用的,他的好處是可以把himem跟部分的dos載入到umb去,可是他並不能夠跟emm386一樣,取得全部的umb,他拿到的全部umb反而下降

thx

關於設定有一篇不錯的教學
http://www.kisser.net.au/tontodan/Memory.html


AXCEL216's MAX Speeed
MS-DOS 7.xx + Windows 95/98 Memory Management Guidelines
Take control of your Windows 9x machine at DOS level! ... And Boost Your DOS Memory to the MAX!


--------------------------------------------------------------------------------

WARNING: FIRST BACKUP ALL YOUR HARD DRIVES TO A SAFE LOCATION BEFORE ATTEMPTING TO MAKE ANY SYSTEM CHANGES! Take EXTREME CAUTION when modifying your System settings! Faulty changes may result in computer crashes/lockups/permanent data loss, or might lead to having you REINSTALL the ENTIRE Operating System!
YOU are the ONLY one responsible for ANY changes YOU make! ALWAYS HAVE YOUR MOST RECENT SYSTEM BACKUP READY!

--------------------------------------------------------------------------------
Please send me your comments, corrections, tips at: [email protected]

MUST HAVE [99.99% FREE(ware)] from SOFTWARE.TXT (included in "W95-11D.ZIP") :
- MS-DOS 5.00 - 7.xx ESSENTIALS: http://members.aol.com/axcel216/dos.htm
- Speeed-Up + BenchMark Tools: http://members.aol.com/axcel216/speed.htm
MEMORY.HTML Contents:

--------------------------------------------------------------------------------
INTRODUCTION BASIC *ESSENTIAL* MEM.TIPS MY CONFIG + AUTOEXEC step by step

I.. My CONFIG.SYS explained II.. My AUTOEXEC.BAT explained Wrap-Up + Notes

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
*1* INTRODUCTION
These are my own memory management + optimization guidelines + tweaks on how to "squeeze" a few more KB (KiloBytes) of free conventional (low) memory (RAM) for all your DOS programs/games, make more upper memory available to your Windows GUI, and how to modify your CONFIG.SYS, AUTOEXEC.BAT, MSDOS.SYS and SYSTEM.INI files to make all this happen.
I posted these tips hoping you will find useful to have plenty of free conventional memory to run ANY "memory hungry" DOS program/game on the planet, in the same setup in which you also start Windows 9x, WITHOUT the need for separate startup configurations that require rebooting your machine. Enjoy. Because...
* LOL: The Shadow knows... :-) "640K ought to be enough for anybody." - Bill Gates, 1981.
* FYI: Now seriously, did YOU know?!

After all Windows 95/98/ME is a MIXED (read "partially enabled") 32-bit AND 16-bit [for backward compatibility with MS-DOS (DOS16 and DOS32) and older 16-bit Windows/WfWG 3.xx (Win16) programs] Graphical User Interface (GUI) protected mode virtual environment [... sorry, Operating System :)], which still depends on the good ol' MS-DOS 7.xx: http://support.microsoft.com/ support/ms-dos/ serviceware/ dos7/ dos70.asp modules (IO.SYS + COMMAND.COM), MS-DOS mode memory manager (HIMEM.SYS) and compatibility (legacy) drivers (IFSHLP.SYS) to load on top of the plain DOS command line based layer!

The good news is Microsoft released Windows 2000 (formerly known as NT 5.0), a true 32-bit multitasking, multithreading and Symmetrical MultiProcessing (SMP) graphical OS, which does away once for all with the "ancient" 16-bit MS-DOS command line OS.
BUT Win2K, besides being too expensive, is targeted to business networks/enterprises, NOT to end users, and does NOT support real DOS mode, necessary for our old full screen MS-DOS based programs/games, which are still memory "hungry", including the ones that canNOT run from a DOS session/box/window inside Windows.
Therefore master your CONFIG.SYS + AUTOEXEC.BAT command lines and your MSDOS.SYS + SYSTEM.INI parameters to BOOT into your system the way YOU want!
I included here my Windows 98/95 versions of AUTOEXEC.BAT + CONFIG.SYS and my MS-DOS 6.22 startup files: AUTOEXEC.DOS + CONFIG.DOS (dual-boot users who kept the ol' MS Windows/WfWG 3.1x + MS-DOS 6.xx may be interested in viewing them).
You can view/print them with EDIT.COM (recommended!) in DOS or Notepad in Windows. The *.DOS files are the names given to MS-DOS 6.00 - 6.22 startup files by Win98/95 OS, when using the dual-boot feature, after you installed Win98/95 on your system, and it detected the presence of MS-DOS 6.xx.
TIP: A good thing is that you can successfully use Win95/98's MS-DOS mode memory managers versions (HIMEM.SYS + EMM386.EXE) in your MS-DOS 6.xx CONFIG.SYS, ONLY IF you are using the dual-boot feature in Win9x AND have kept the old MS-DOS 6.xx + MS Windows/WfWG 3.1x.


I suggest loading Win95/98's MS-DOS mode MSCDEX.EXE (version 2.25) in your AUTOEXEC.BAT, to give your CD-ROM/DVD drive full potential and compatibility with DOS based CD-ROM software (i.e. installing Win9x from the Setup CD from native DOS, or playing native DOS games). CD-ROM/DVD drives canNOT be accessed in native MS-DOS mode without MSCDEX support!
See "CD-ROM DRIVERS 4 DOS" in MYTIPS95.TXT (included in "W95-11D.ZIP") for more details.

IMPORTANT: To learn how to use the Windows 9x real/true/native MS-DOS mode, read these topics from MYTIPS95.TXT (included in "W95-11D.ZIP"): also
- "2 DO OR NOT 2 DOS"
- "MS-DOS PROMPT"
- "DOS NOW!"
- "RETURN TO DOS".
I included here my system MEMory configurations using 5 different MS-DOS mode memory managers in CONFIG.SYS (current releases):
&- MicroSoft Windows 98 SE [a.k.a. MS-DOS 7.10] EMM386.EXE v4.95 + HIMEM.SYS v3.95 "combo",
&- Uwe Sieber UMBPCI.SYS v3.21 in combination with Microsoft HIMEM.SYS v3.95 + HIRAM.EXE v1.9 (loads HIMEM.SYS in upper memory),
&- Network Associates (Helix) NetRoom RM386.EXE v3.04,
&- Symantec (QuarterDeck) QEMM386.SYS v9.00 and
&- Lineo (Caldera) DR-DOS 7.03 EMM386.EXE v3.27. For my DOS MEMory stats using these 5 memory managers, take a look at:
&- DOS95MEM.TXT = in native MS-DOS mode (outside Windows), and
&- WIN95MEM.TXT = in a DOS session with Windows 9x GUI started.

MSD95.TXT (included in "W95-11D.ZIP") shows a brief list of my Windows 98 SE [a.k.a MS-DOS 7.10] system hardware specs, running MicroSoft Diagnostics tool (MSD.EXE) v2.14, OUTSIDE Windows, in native MS-DOS.

NOTE: All CONFIG.SYS + AUTOEXEC.BAT command lines in these examples are customized to my system, and you NEED to follow the guidelines in this text file, and then edit your OWN startup files (ONLY after making BACKUP copies) to adapt them to YOUR SYSTEM SPECS! To the Top


--------------------------------------------------------------------------------
*2* BASIC *ESSENTIAL* MEMORY TIPS

100
200
300
400
500
600


100. Add/modify the EMM386.EXE (or your 3rd party expanded memory manager) line in your CONFIG.SYS to provide UMBs (Upper Memory Blocks), access to UMA (Upper Memory Area) and expanded memory (EMS) provided by the EMM386.EXE "RAM" and "HIGHSCAN" parameters.
Contrary to what you may have read/heard, expanded memory is STILL needed by certain (older) DOS applications and games that canNOT be executed from a DOS box/session/window INSIDE the Windows GUI, and DOES NOT slow down your computer's performance. What DOES slow down is the mere presence in memory of ANY upper/extended/expanded memory manager loaded from CONFIG.SYS, EVEN IF expanded memory is NOT enabled.
See these MSKB articles for more info:
- "Overview of Memory-Management Functionality in MS-DOS": http://support.microsoft.com/support/kb/articles/q95/5/55.asp
*&*"EMM386.EXE Slows Down System Performance": http://support.microsoft.com/support/kb/articles/q74/1/52.asp
There are two exceptions though (see further below for details):
*&*Microsoft's HIMEM.SYS = provides ONLY extended RAM, NOT upper or expanded, and does NOT slow down your CPU;
*&*Uwe Sieber's UMBPCI.SYS (extends HIMEM.SYS) = provides only upper RAM, NOT expanded, but leaves your CPU in real mode, which is MUCH faster. Such programs NEED to run from the true/native/real MS-DOS mode, OUTSIDE Windows. Here is a short list of DOS programs that use Expanded Memory Specifications (EMS):
* Applications:
*-Autodesk CAD
*-Borland dBASE
*-Borland Paradox
*-Borland Quattro Pro
*-Borland Turbo C
*-Lotus 1-2-3 2.x/3.0
*-Microsoft FoxPro
*-Novell Word Perfect
*-SPC Harvard Graphics

* Utilites:
*-Microsoft MSCDEX.EXE CD-ROM Extensions TSR
*-Lineo (Caldera) DR-DOS NWCDEX.EXE CD-ROM Extensions TSR
*-Creative Labs Sound Blaster AWE32/AWE64/Live! Audio Tools/TSRs
*-Hyperware Hyperdisk
*-PC-Kwik
*-Stac Electronics Stacker
*-Symantec PC Tools
*-Symantec Fastback
*-Symantec NDOS
*-Symantec Norton Cache

* Games:
*-id Wolfenstein
*-Lucas Arts X-Wing
*-Origin Strike Commander
*-Origin Ultima Underworld
*-Origin Wing Commander
*-Spectrum HoloByte Falcon

Therefore if you are still running ANY DOS programs/games that use expanded memory, I suggest you enable it in your CONFIG.SYS.
See REGIONS.TXT and EMM386.TXT (both included in "W95-11D.ZIP") for DETAILED MS-DOS Upper Memory Management, Upper Memory Regions Mapping + Expanded Memory Management and Troubleshooting, IF YOU WANT TO MASTER THE WAY DEVICES, DRIVERS + TSRs LOAD FROM YOUR CONFIG.SYS + AUTOEXEC.BAT.

I have tested and benchmarked extensively all possible memory configurations on 8 different Intel based PC clones, covering almost all popular "generations" of CPUs:
- 386/SX 16 MHz ISA with 4 MB RAM [running MS-DOS 5.0 + MS Windows 3.0]
- 486/SX 25 MHz ISA with 8 MB RAM [running MS-DOS 5.0 + MS Windows 3.1]
- 486/DX2 66 MHz ISA with 16 MB RAM [running MS-DOS 6.00 + MS Windows 3.11]
- Pentium 90 MHz PCI with 32 MB RAM [running MS-DOS 6.22 + MS WfWG 3.11]
- Pentium 200 MHz PCI with 48 MB RAM [running MS Windows 95a OSR1 a.k.a. MS-DOS 7.00 in dual-boot setup with MS-DOS 6.22 + WfWG 3.11]
- Pentium 233 MHz MMX PCI with 64 MB EDO DRAM [running MS Windows 95B OSR 2.1 a.k.a. MS-DOS 7.10 in dual-boot setup with MS-DOS 6.22 + WfWG 3.11]
- Pentium II 450 MHz MMX [overclocked @ 504 MHz] AGP with 128 MB PC100 SDRAM [running MS Windows 98 a.k.a. MS-DOS 7.10 in dual-boot setup with MS-DOS 6.22 + WfWG 3.11]
- Pentium III 700E MHz SSE [overclocked @ 805 MHz] AGP with 256 MB PC133 SDRAM [running MS Windows 2000 in triple-boot setup with Windows 98 SE a.k.a. MS-DOS 7.10 and MS-DOS 6.22 + WfWG 3.11].
Tested memory settings:
- NO upper, NO expanded, extended ONLY: NO CONFIG.SYS or AUTOEXEC.BAT files, HIMEM.SYS loads from IO.SYS;
- NO upper, NO expanded, extended ONLY: only HIMEM.SYS in a stripped down CONFIG.SYS + NO AUTOEXEC.BAT;
- upper, extended, NO expanded: HIMEM.SYS + EMM386.EXE with the "NOEMS" switch in CONFIG.SYS + stripped down AUTOEXEC.BAT;
- upper, extended AND expanded: HIMEM.SYS + EMM386.EXE with the "RAM" switch in CONFIG.SYS + full featured AUTOEXEC.BAT.
I have found the best (and most compatible!) overall memory configuration, and in most cases the fastest (except UMBPCI.SYS shown below) to be: Microsoft HIMEM.SYS + EMM386.EXE "combo" in CONFIG.SYS, with upper (UMB), extended (XMS) AND expanded memory (EMS) enabled, and with ALL necessary real-mode 16-bit MS-DOS drivers/devices/TSRs (IFSHLP.SYS, ANSI.SYS, CD-ROM driver, MSCDEX.EXE, SMARTDRV.EXE, MOUSE.COM, DOSKEY.COM, VESA VBE 2.0/3.0 TSR etc) loaded in upper memory (UMA), using "DEVICEHIGH" in CONFIG.SYS and respectively "LOADHIGH" ("LH" for short) in AUTOEXEC.BAT.
For detailed MEMory specs see DOS95MEM.TXT + WIN95MEM.TXT (both included in "W95-11D.ZIP").
NOTE: On some systems you may need to leave a minimum of 16 KB upper DOS memory FREE for Windows proper operation!

This way I reached 625 KB of free conventional memory (which to my knowledge is maximum allowed on a PC/AT equiped with a color VGA video card and using the default memory managers provided by Microsoft: HIMEM.SYS + EMM386.EXE) and 10-40 KB of free upper memory (UMA) in native/real MS-DOS mode, enough to run ANY memory hungry DOS program/game.
ALL examples here have been tested and used successfully ONLY with my systems CUSTOM configurations: directory NAMES, CPU (see list above), ROM BIOS setup, Video BIOS, chipset, motherboard etc:
* Tyan S1450 mobo, Intel TX Triton II chipset + AMI BIOS
* Megatrends HX83 mobo, Intel HX Triton II chipset + AMI BIOS
* Abit BH6 mobo, Intel 440BX chipset + AWARD BIOS
* Abit BE6-II mobo, Intel 440BX chipset + AWARD BIOS
* ATI Mach64 Graphics Turbo PCI 2D video
* 3Dfx Voodoo Banshee PCI 2D+3D video
* NVidia GeForce 256 DDR AGP 2D+3D video
* High Point UDMA66 EIDE drive controller on Abit BE6-II mobo, running these Microsoft Operating Systems + Environments:
* MS-DOS 6.00
* MS-DOS 6.22
* Windows 3.10
* Windows 3.11
* Windows for WorkGroups 3.11
* Windows 95
* Windows 95a OSR1
* Windows 95B OSR 2.1
* Windows 98
* Windows 98 SE.

[My current PC complete hardware specs are detailed in MYPC.TXT (included in "W95-11D.ZIP")].
Here we go:

--------------------------------------------------------------------------------
- Microsoft HIMEM.SYS v3.95 + EMM386.EXE v4.95 extended/expanded memory managers "combo" (included with MS Windows 98/95, a.k.a. MS-DOS 7.xx) CONFIG.SYS lines:
DEVICE=C:\W95\HIMEM.SYS /NUMHANDLES=128 /TESTMEM:OFF /Q
DEVICE=C:\W95\EMM386.EXE I=C800-EFFF I=B000-B7FF M3 A=64 H=128 D=256 RAM AUTO NOTR
WARNING:
The OLDER Microsoft HIMEM.SYS v3.10 + EMM386.EXE v4.45/v4.49 memory managers included with MS-DOS 6.00 - 6.22 do NOT PROPERLY detect/enable the memory above 64 MB on computers with MORE than 64 MB RAM installed, and may generate error messages with certain programs!
Therefore it is STRONGLY RECOMMENDED! if you also own MS-DOS 6.xx (and eventually dual-boot between DOS6 and Win9x) to use the NEWER Windows 9x [a.k.a. MS-DOS 7.xx] releases of HIMEM.SYS + EMM386.EXE with MS-DOS 6.xx OS!


--------------------------------------------------------------------------------
- Uwe Sieber's UMBPCI.SYS v3.21 upper memory extender (freeware), using Microsoft HIMEM.SYS v3.95 high/extended memory manager + HIRAM.EXE v1.9 (loads HIMEM.SYS in upper memory) CONFIG.SYS lines (in this EXACT order):
DOS=HIGH,UMB
DEVICE=C:\MAX\UMBPCI.SYS
DEVICE=C:\MAX\HIRAM.EXE
DEVICEHIGH=C:\W95\HIMEM.SYS /NUMHANDLES=128 /TESTMEM:OFF /Q
UMBPCI.SYS provides a maximum of 629 KB of free low RAM, with everything loaded "high", and proved to be the FASTEST memory manager of this bunch: http://members.aol.com/axcel216/umb.htm
The only disadvantage is that UMBPCI.SYS does NOT! provide expanded memory (EMS). But according to Uwe Sieber's guidelines, you can enable EMS in a DOS session/box under the Windows GUI (if ANY of your DOS apps/games need EMS), by adding/changing this SYSTEM.INI (found in your Windows folder) line under the [386enh] section (edit SYSTEM.INI with Notepad or Sysedit):
[386enh]
EMMPageFrame=C800 provided the C800-D7FF upper memory area is CONTIGUOUS and FREE when Windows loads. Also make sure NO OTHER expanded/extended manager is loaded, EXCEPT HIMEM.SYS, because UMBPCI.SYS is an extension to HIMEM.SYS.

--------------------------------------------------------------------------------
- Network Associates (Helix) NetRoom RM386.EXE v3.04 (retail) enhanced memory manager CONFIG.SYS line (applies to ALL RM386 releases starting with 3.00):
DEVICE=C:\HELIX\RM386.EXE X=F000-FFFF I=B000-B7FF F=C800 AUTO H=128 NMION NOT NOTR Q

--------------------------------------------------------------------------------
- Symantec (Quarterdeck) QEMM386.SYS v9.00 (retail) enhanced memory manager CONFIG.SYS line (applies to ALL QEMM releases begining with 7.00):
DEVICE=C:\QEMM\QEMM386.SYS X=F000-FFFF I=B000-B7FF FR=C800 RAM AU BE:N BIX:Y DM=128 HA=240 MA=128 R:1 TA=32

--------------------------------------------------------------------------------
- Lineo (Caldera) DR-DOS 7.03 EMM386.EXE v3.27 (free trial) enhanced memory manager CONFIG.SYS line (applies to ALL EMM386 releases starting with 3.00):
DEVICE=C:\DRDOS\EMM386.EXE USE=C800-EFFF USE=B000-B7FF FRAME=C800 AUTO DMA=256 HANDLES=128 QUIET
Download DR-DOS 7.03 Operating System [6 MB, free trial]: ftp://ftp.lineo.com/pub/drdos/DR-DOS.703/dr703.exe
Lineo DR-DOS home page: http://www.lineo.com/products/drdos.html

--------------------------------------------------------------------------------
TIP: For more info on HIMEM.SYS + EMM386.EXE parameters read the HIMEM.SYS and EMM386.EXE topics in MSDOSDRV.TXT (using Notepad), found in your Windows 9x folder.

To the Top
--------------------------------------------------------------------------------
200. Change ALL device/driver/TSR DEVICE lines to DEVICEHIGH and ALL INSTALL lines to INSTALLHIGH in your CONFIG.SYS, to load them ALL in upper memory: IFSHLP.SYS, ANSI.SYS (or similar 3rd party like NANSI.SYS, ANSI.COM etc), CD-ROM driver (like VIDE-CDD.SYS) etc, EXCEPT for your memory manager lines:
HIMEM.SYS, EMM386.EXE, RM386.EXE, QEMM386.SYS, UMBPCI.SYS, 386MAX.SYS etc, which need the DEVICE command to load properly (except if using HIRAM.EXE + UMBPCI.SYS, detailed above).

--------------------------------------------------------------------------------
300. Add LH (LOADHIGH abbreviated) in front of ALL driver/TSR lines in your AUTOEXEC.BAT, to load them ALL in upper memory: MSCDEX.EXE (or similar 3rd party like NWCDEX.EXE, SHSUCDX.EXE, MCDX.EXE etc), SMARTDRV.EXE (or similar 3rd party like CACHECLK.EXE, HYPERDKX.EXE etc), MOUSE.COM/(MS)MOUSE.EXE (or similar 3rd party like CTMOUSE(P).COM, MOUSE.EXE, AMOUSE.EXE etc), DOSKEY.COM (or similar 3rd party like RECALL.COM, TODDY.COM etc), VESA VBE 2.0/3.0 driver (like UNIVBE.EXE, M64VBE.COM, VESAFIX.EXE etc), sound card TSRs/tools (like AWEUTIL.COM, CSP.SYS, CTMMSYS.SYS, CTSB16.SYS etc).

--------------------------------------------------------------------------------
400. Load the LARGER devices/drivers/TSRs FIRST, and the SMALLER LAST in your AUTOEXEC.BAT + CONFIG.SYS. Some trial-and-error is necessary to establish your optimal configuration, depending on your own custom "combo".

--------------------------------------------------------------------------------
500. For FASTEST performance loading Windows or ANY DOS program in native MS-DOS, use SMARTDRV in your AUTOEXEC.BAT. Read further below, and see "OUTSMART SMARTDRIVE" in MYTIPS95.TXT (included in "W95-11D.ZIP") for details. To the Top

--------------------------------------------------------------------------------
600. ONLY IF you do NOT use ANY DOS programs/games:
A. You can safely delete your AUTOEXEC.BAT + CONFIG.SYS files, but BACK THEM UP FIRST!
IMPORTANT:
It is recommended to keep a stripped down AUTOEXEC.BAT (or CONFIG.SYS) though, to include your custom PATH line, because Windows 95/98 canNOT "see" the location of some of your installed programs/drivers, or canNOT function properly otherwise. :( Furthermore, there is a wide variety of hardware and software that during installation add the lines below to your existing AUTOEXEC.BAT, or create a new one if not present, and this applies to ALL Windows 95/98 systems (default setup folders used in these examples):


--------------------------------------------------------------------------------
- Creative Labs Sound Blaster Live! PCI (ALL "flavors") installs legacy support (SB16 FM emulation) for real mode DOS games/apps:
SET MIDI=SYNTH:1 MAP:E MODE:0
SET BLASTER=A220 I5 D1 H5 P330 T6
SET CTSYN=C:\WINDOWS
C:\PROGRA~1\CREATIVE\SBLIVE\DOSDRV\SBEINIT.COM
NOTE: SBEINIT.COM requires Microsoft EMM386.EXE with expanded memory (EMS) enabled (the "RAM" switch) in Config.sys!


--------------------------------------------------------------------------------
- Creative Labs Sound Blaster AWE64/AWE64 Gold ISA PnP install legacy support (SB AWE64 Audio + MIDI synthesis) for real mode DOS games/apps:
SET CTCM=C:\WINDOWS
C:\WINDOWS\CTCM.EXE
SET SOUND=C:\SB16
SET BLASTER=A220 I5 D1 H5 P330 E620 T6
SET MIDI=SYNTH:1 MAP:E MODE:0
C:\SB16\DIAGNOSE.EXE /S /W=C:\WINDOWS

--------------------------------------------------------------------------------
- Creative Labs Sound Blaster AWE32/Vibra 16 ISA PnP install legacy support (SB AWE32 Audio + MIDI synthesis) for real mode DOS games/apps:
SET MIDI=SYNTH:1 MAP:E MODE:0
SET SOUND=C:\PROGRA~1\CREATIVE\CTSND
SET BLASTER=A220 I5 D1 H5 P330 E620 T6

--------------------------------------------------------------------------------
- Diamond Audio 3D Monster M100/M200/M300 Aureal3D PCI install legacy support (SB compatible Aureal FM emulation) for real mode DOS games/apps:
C:\PROGRA~1\MONSTE~1\F3INIT.EXE C:\PROGRA~1\MONSTE~1\F3DOS.BDI

--------------------------------------------------------------------------------
- Apple QuickTime Movie Player 4.xx 32-bit for Windows 9x:
SET QTJava=C:\WINDOWS\SYSTEM\QTJava.zip
SET CLASSPATH=%QTJava%;

--------------------------------------------------------------------------------
- Adobe Photo Deluxe 1.1 32-bit for Windows 9x:
SET CLASSPATH=C:\PROGRA~1\PHOTOD~1.1\ADOBEC~1

--------------------------------------------------------------------------------
If you DO use a custom PATH line in AUTOEXEC.BAT or CONFIG.SYS, make sure to keep folder (directory) names short, under 8 characters [avoid using Long File Names (LFNs)] if possible, to "shrink" the PATH length for faster search, and avoid "confusion" if running ANY real mode (LFNs unaware) DOS programs.
This is my CONFIG.SYS "SET PATH=" line (example):
SET PATH=C:\;C:\W95;C:\W95\COMMAND;C:\3D;C:\MAX;C:\ZIP;C:\BAT;
Also make sure to add a semicolon (;) at the end of EACH directory, and AFTER the LAST PATH entry (see example above), so the OS can "read" the entire path properly. :)

--------------------------------------------------------------------------------
B. Use a well tuned MSDOS.SYS file to decrease Win95/98 boot loading time as much as possible: SCANDISK.EXE will not check your drives/partitions for errors in case OSR2/Win98 shut down improperly (AutoScan=0), the Startup Menu will not be displayed (BootMenu=0), the bootup Logo will not show (Logo=0), the Win9x GUI will load automatically (BootGUI=1) with no pause (BootDelay=0), Win95/OSR2 is automatically selected as current OS (BootWin=1), Normal boot option is selected as default (BootMenuDefault=1) without any delay (BootMenuDelay=0), and you are not using an older MS-DOS version (BootMulti=0). Example:
[Options]
Autoscan=0
BootDelay=0
BootGUI=1
BootMenu=0
BootMenuDefault=1
BootMenuDelay=0
BootMulti=0
BootWin=1
Logo=0

Use SYS95.BAT (included in "W95-11D.ZIP") to edit your MSDOS.SYS with minimum effort!
To learn how to tweak ALL MSDOS.SYS parameters, including the UNDOCUMENTED ones, see "COMPLETE MSDOS.SYS REFERENCE" in MYTIPS95.TXT (included in "W95-11D.ZIP").
This is Microsoft's official list of DOS games that require native/real/true MS-DOS mode to play properly under Windows 95/98 OS:
--- "Games (A-H) Requiring or Performing Better in MS-DOS Mode": http://support.microsoft.com/support/kb/articles/q132/9/94.asp
--- "Games (I-Q) Requiring or Performing Better in MS-DOS Mode": http://support.microsoft.com/support/kb/articles/q132/9/95.asp
--- "Games (R-Z) Requiring or Performing Better in MS-DOS Mode": http://support.microsoft.com/support/kb/articles/q132/9/96.asp To the Top


--------------------------------------------------------------------------------
*3* My CONFIG.SYS + AUTOEXEC.BAT Step by Step

Below are my MS Windows 98/95 [a.k.a. MS-DOS 7.xx] CONFIG.SYS + AUTOEXEC.BAT command lines explained. Most of these tips are ALSO VALID for my DOS6/Win31 startup files, also included here: AUTOEXEC.DOS + CONFIG.DOS (renamed by the Win9x OS in a dual-boot environment, when booting to DOS6), if not specified otherwise.
Notice also the multiple option menus used in my startup files, to be able to boot with different configurations (using 5 memory managers in CONFIG.SYS and CONFIG.DOS).
Open them with EDIT.COM, the MS-DOS default ASCII/text editor/viewer (located in C:\Windows\Command), because Notepad (Windows default ASCII/text editor/viewer) canNOT handle certain extended ASCII characters, like the ones I used on the "SET PROMPT" and "SET WINPMT" lines in my CONFIG.SYS and CONFIG.DOS.
See also this guide for multiple CONFIG.SYS + AUTOEXEC.BAT setups: @ http://www.knowplace.org/multi.html

--------------------------------------------------------------------------------
I. My CONFIG.SYS Lines Explained
Note that my Windows 98 SE folder is called W95 [reminiscent from my first Win95 installation :)], NOT WINDOWS (default Win9x setup folder), located on the boot drive (C). My HIMEM.SYS command line in CONFIG.SYS:
DEVICE=C:\W95\HIMEM.SYS /NUMHANDLES=128 /TESTMEM:OFF /Q

--------------------------------------------------------------------------------
/NUMHANDLES=128 represents the maximum number of Extended Memory Block (EMB) handles that can be used simultaneously (has no influence in Windows). Allowed values: 1 - 128. Default is 32. Each handle takes 6 Bytes of extended memory.

--------------------------------------------------------------------------------
/TESTMEM:OFF loads HIMEM.SYS without taking a few extra seconds to test all your system's extended memory [more RAM you have, longer the delay :)]. Most modern Pentium class (and newer) computer BIOSes test the entire installed memory at bootup anyway, making this HIMEM.SYS function obsolete.

--------------------------------------------------------------------------------
/Q (QUIET) does NOT allow the display of HIMEM.SYS loading status during bootup. UNDOCUMENTED: See "HIMEM.SYS HIDDEN PARAMETERS" in SECRETS.TXT (included in "W95-11D.ZIP") for details.

--------------------------------------------------------------------------------
NOTE: HIMEM.SYS and EMM386.EXE (or similar 3rd party) memory managers MUST be loaded in CONFIG.SYS with the DEVICE command, before ANY OTHER DEVICE, DEVICEHIGH, INSTALL, INSTALLHIGH, SHELL or SET lines!
The CONFIG.SYS: DEVICE, DEVICEHIGH, INSTALL, INSTALLHIGH, and the AUTOEXEC.BAT LOADHIGH (LH for short) commands are internal MS-DOS commands built into the OS (IO.SYS and COMMAND.COM).

To the Top
--------------------------------------------------------------------------------
My EMM386.EXE line in CONFIG.SYS:
DEVICE=C:\W95\EMM386.EXE I=C800-EFFF I=B000-B7FF M3 A=64 H=128 D=256 RAM AUTO NOTR
Microsoft's EMM386.EXE can address a maximum of 32 MB of expanded RAM in native MS-DOS mode. But there are 3rd party memory managers (like QEMM386 from Quarterdeck) which can provide up to 64 MB of expanded memory for DOS based apps/games. All these "enhanced" memory managers use the computer's extended memory to "simulate" expanded RAM (EMS).
See "Expanded Memory" in REGIONS.TXT (included in "W95-11D.ZIP") for more details.

These are my "generic" EMM386 lines (examples) which provide expanded memory, and accommodate almost ANY system with a standard:
== MS Windows 95/98:
DEVICE=C:\WINDOWS\EMM386.EXE I=B000-B7FF D=256 RAM AUTO
== MS-DOS 6.xx setup:
DEVICE=C:\DOS\EMM386.EXE I=B000-B7FF D=256 RAM AUTO (Change the path to EMM386.EXE if different on your PC.)

Including and excluding addresses in upper memory (the "I=xxxx-yyyy" and "X=xxxx-yyyy" switches) depends on your system CMOS, ROM, Option ROM, and Video BIOS configuration and video card upper ROM memory addresses and can be kinda tricky. Use them with EXTREME CAUTION! If not properly set, your machine may lockup, or worse, experience data loss! You can see how these regions of upper memory are set on your system, by running MSD from the native/true MS-DOS prompt, and then pressing M (Memory stats screen).
To visualize the upper ROM (Read Only Memory) regions (color coded in gray on the MSD screen) occupied by the ROM/VGA/Video, CMOS + Extended BIOS memory hardware configuration, click on "Utilities" from MSD's menu bar and then click "Memory Browser".
Then write down the hex addresses occupied by your upper ROM memory, and exclude them, using as many as necessary X=xxxx-yyyy switches on the EMM386.EXE line in your CONFIG.SYS.
Example: Let's say that your "Option ROM" (one of the grayed areas in upper memory on your MSD memory screen) exists at EC00-ED00. You will need to add the X=EC00-ED00 parameter to your EMM386.EXE line to exclude those addresses from EMM386.EXE's upper memory mapping, as follows:
DEVICE=C:\WINDOWS\EMM386.EXE X=EC00-ED00

The other method (which may work better on some systems) is to include the regions above and below the grayed ROM area (using same example above):
DEVICE=C:\WINDOWS\EMM386.EXE I=EE00-EFFF I=E000-ECFF
A classical method to make more upper memory available to drivers/devices is to add these switches:
X=C000-C7FF I=B000-B7FF to the EMM386.EXE line. C000-C7FF is usually reserved for the Video ROM BIOS.
NEVER add these addresses to your EMM386 line with an I=xxxx-yyyy switch! The B000-B7FF area is used for text memory ONLY on black & white (monochrome) monitors (CRTs), so it's SAFE to add it to your EMM386 line, unless you're still using such an old monitor. :)
See this MSKB article for more info: http://support.microsoft.com/support/kb/articles/q112/8/16.asp
The "M3" switch loads EMM386's page frame at the C800 upper memory address (hex). On my system this leaves maximum contiguous Upper Memory Blocks (UMBs) available for loading devices/drivers/TSRs "high". You can also "tell" EMM386 to load its page frame at a particular upper memory address by using the FRAME= switch (example):
DEVICE=C:\WINDOWS\EMM386.EXE FRAME=C800
Better, by forcing EMM386 to provide expanded memory without a page frame, you can free a little extra low/upper RAM, but ONLY IF your DOS apps/games run properly this way (example):
DEVICE=C:\WINDOWS\EMM386.EXE FRAME=NONE
I tested this with Microprose's Civilization and Lucas Arts' X-Wing, but other (older) DOS programs might refuse to start without a page frame, in which case you need to enable it.

The "NOTR" switch is UNDOCUMENTED. Prevents EMM386 from detecting a Token Ring Network Adapter, which detection may hang some machines. "NOTR" is NOT enabled by default. You need to add it to EMM386.EXE's line yourself, if you don't use a DOS based Network card, and suspect having problems loading EMM386.EXE from CONFIG.SYS.
See also "EMM386.EXE HIDDEN PARAMETERS" in SECRETS.TXT (included in "W95-11D.ZIP").

TIP: Try to avoid the aggressive "HIGHSCAN" switch on your EMM386.EXE line! It can be dangerous to your "health". It may hang your machine at bootup! Use instead the "RAM" switch, which does the same job searching the Upper Memory Area (UMA) for unused UMBs (Upper Memory Blocks).


The "D=256" switch allows for buffered I/O Direct Memory Access (DMA), in KiloBytes (allowed: 16 - 256). Default is 32 (not enough in most cases, i.e. if you're using a sound card for DOS based programs). Buffered DMA is required for ALL floppy/disk/IDE and ISA/PCI I/O operations.
The "A=64" switch specifies how many fast alternate register sets (for multitasking) are allocated to EMM386 (allowed: 0 - 254). Default is 7. Every alternate register set adds about 200 Bytes to EMM386's memory size.

The "H=128" switch specifies how many handles EMM386 can use (allowed: 2 - 255). Default is 64.
CAUTION: Avoid using the EMM386.EXE "ALTBOOT" switch IF using a SCSI/(U)DMA/ATAPI/(E)IDE add-in controller! The ROM addresses used by these adapters may CONFLICT with the memory address used by the "ALTernative BOOT" routine, causing LOCKUPS!


It is useful to load drivers/devices/TSRs with the "DEVICEHIGH" command, to gain more low (conventional) memory (RAM). A well known (but NOT efficient, and buggy in most cases) method is to use MEMMAKER, provided with MS-DOS 6.xx and Win95/MS-DOS 7.00 (but NOT with MS-DOS 7.10/Win95B OSR2 and newer) to gain more memory.
Using MEMMAKER can be tricky, and usually does NOT yield expected results, by NOT recognizing certain DOS drivers/devices/TSRs loaded in customized CONFIG.SYS/AUTOEXEC.BAT files (never did the job for me).
Therefore I STRONGLY recommend the good ol' manual tweaking, changing the order of loading the drivers/TSRs in your CONFIG.SYS + AUTOEXEC.BAT files yourself (using the "DEVICEHIGH" and respectively "LOADHIGH", "LH" for short commands) until you're satisfied with the amount of conventional memory reported by the "MEM /C /P" command.

You can fiddle with the "/L:1", "/L:2", "/L:3" etc... switches to determine your own best upper memory loading configuration. This example:
DEVICEHIGH /L:1=C:\WINDOWS\COMMAND\ANSI.SYS loads the ANSI.SYS DOS CONsole driver in Upper Memory Area (UMA) region 1 (located on my system between B000 and B7FF hex addresses). You can use any ANSI driver that supports extended keys (F1-F12) remapping.
I recommend Daniel Kegel's NANSI.SYS v3.4 MS-DOS ANSI CONsole driver accelerator: fastest and most versatile replacement for Microsoft ANSI.SYS, with built-in support for key reassignment [51 KB, free GNU]: http://www.kegel.com/nansi34.zip
NANSI.SYS (faster) takes only 3.2 KB of upper DOS memory IF loaded with "DEVICEHIGH" in CONFIG.SYS, compared with Microsoft ANSI.SYS (slower) which occupies 4.2 KB of RAM.
To find out what you can do with an ANSI driver loaded, see "F1-F12 Remapping" in DOSTIPS.TXT (included in "W95-11D.ZIP").

The order of loading the devices/drivers/TSRs in Upper Memory is of UTMOST importance: larger FIRST, smaller LAST, in your:
&- CONFIG.SYS, using the "DEVICEHIGH" command and
&- AUTOEXEC.BAT, using the "LOADHIGH" command (abbreviated as "LH").
Example of such AUTOEXEC.BAT command line:
LOADHIGH /L:2=C:\MOUSE\MOUSE <YOUR_MOUSE_DRIVER_PARAMETERS>
This means that my MS-DOS mode MOUSE.COM driver loads in the 2nd upper memory region, located between C800 and EFFF (hex addresses) on my system (the upper memory regions are delimited by the extended/expanded memory managers (EMM386.EXE), respectively the I=xxxx-yyyy and E=xxxx-yyyy switches, when using the Microsoft HIMEM.SYS and EMM386.EXE "combo").
Example of EMM386.EXE line, to enable two upper memory regions in the Upper Memory Area (UMA):
DEVICE=C:\WINDOWS\EMM386.EXE I=C800-EFFF I=B000-B7FF RAM M3 D=256 AUTO NOTR
In this case:
- the first upper memory area is called region 1, located at the B000-B7FF hex addresses, enabled by the "I=B000-B7FF" EMM386.EXE switch above, and
- the second upper memory area is called region 2, located at the C800-EFFF hex addresses, enabled by the "I=C800-EFFF" EMM386.EXE switch above.
These 2 upper memory regions are available for loading devices/drivers/TSRs "high", using the CONFIG.SYS "DEVICEHIGH" and the AUTOEXEC.BAT "LOADHIGH" (abbreviated to "LH") commands. To display the upper memory regions chart on your system, run: --> MSD at the native/true MS-DOS prompt, and press M. Then READ MSD95.TXT (included in "W95-11D.ZIP") for detailed MSD.EXE (MicroSoft Diagnostics utility) usage guidelines.
A MUST: THE EMM386.EXE LINE MUST FOLLOW THE HIMEM.SYS LINE IN CONFIG.SYS! ALL other "DEVICE", "DEVICEHIGH", "INSTALL" and "INSTALLHIGH" lines MUST follow the HIMEM.SYS and EMM386.EXE commands in CONFIG.SYS!

To the Top
I gave up on using the limited MS-DOS MemMaker utility (QEMM's Optimize, or NetRoom's Customiz tools for that matter), to gain more conventional memory, in favor of manually tweaking the startup files.
I modified the memory manager lines/parameters in CONFIG.SYS (and changed the order of loadind devices/drivers in CONFIG.SYS + AUTOEXEC.BAT), BUT ONLY AFTER reading ALL related documentation for each of the 5 memory managers I have used: MicroSoft's HIMEM.SYS + EMM386.EXE, QuarterDeck's QEMM386.SYS, Helix's NetRoom RM386.EXE, Lineo DR-DOS' EMM386.EXE, and Uwe Sieber's UMBPCI.SYS, and then experimenting with all possible configurations (more devices you load, more combinations you have to try).
This is a time consuming job, but rewarding, because I managed to make ALL my DOS and Windows programs work with these final configurations found in my startup files: CONFIG.SYS + AUTOEXEC.BAT (included in "W95-11D.ZIP").
Rewarding, because I have now 625 KB of free conventional memory, and enough upper memory for Windows, with expanded memory enabled, in MS-DOS mode (outside Windows), to run ANY DOS hungry program/game without EVER running out of low DOS memory [that was an old obsession for any DOS user :)], or EVER needing to reboot again, or using "custom setups" for different program requirements.

--------------------------------------------------------------------------------
SWITCHES=/F skips the 2 second delay before processing the startup files (CONFIG.SYS + AUTOEXEC.BAT) after bootup, valid for MS-DOS 6.xx and Windows 9x (a.k.a. MS-DOS 7.xx). This command MUST be loaded from your CONFIG.SYS as the FIRST line.

SWITCHES=/E:288 use this switch ONLY in Win98/95's CONFIG.SYS. Moves ONLY 288 Bytes of extended BIOS (EBIOS) to the conventional memory area. Valid values for "/E:" = 48 - 1024.
You may gain up to 1 KB of conventional RAM by using this switch. In order to adapt the /E: switch to your system, a little try-and-error is necessary. Increase the /E: value starting with 64, in 16 Bytes increments at a time, and reboot each time, until you get your best free low RAM result, displayed by running "MEM /C /P" from the native DOS prompt, outside Win98/95 GUI.
You can also use the plain /E parameter without any numbers for better compatibility:

SWITCHES=/E /F
Use them both on the SAME line (you can have ONLY one SWITCHES line in your CONFIG.SYS). Their order doesn't matter. Example:
SWITCHES=/E:288 /F
See "SWITCHES" in MYTIPS95.TXT (included in "W95-11D.ZIP") for more details.


DOS=HIGH,UMB loads the DOS kernel high and provides UMBs (Upper Memory Blocks) for loading devices/drivers/TSRs in UMA (Upper Memory Area).
Windows 9x has added another useful switch: AUTO (or NOAUTO) to the "DOS=" line in CONFIG.SYS:
DOS=HIGH,UMB,NOAUTO
or:
DOS=HIGH,UMB,AUTO

Win95/98 OS can move the FILES, STACKS, LASTDRIVE + FCBS to the upper memory area (UMA), the 384 KB RAM region above the 640K low memory barrier.
The BUFFERS are moved to the High Memory Area (HMA), the first 64 KB of RAM above the 1st MegaByte. These features are implemented in the Win9x OS and can be achieved by adding these lines to the beginning of CONFIG.SYS.
The values below are ONLY my own examples, and you should change them to suit your OWN needs:
DOS=HIGH,UMB,NOAUTO
BUFFERSHIGH=10,0
FILESHIGH=60
LASTDRIVEHIGH=H
FCBSHIGH=1,0
STACKSHIGH=0,0

Or go with the "conservative" version: [let the OS do the work for you :)]

DOS=HIGH,UMB,[AUTO]
BUFFERS=10,0
FILES=60
LASTDRIVE=H
FCBS=1,0
STACKS=0,0

The AUTO switch is not necessary (it's the default). By using AUTO you may free 256 - 512 Bytes of low memory opposite to using "DOS=NOAUTO" and the "HIGH" switch added to each of the lines above: BUFFERS, STACKS, FILES, FCBS + LASTDRIVE.
FCBS=1,0 to preserve memory. Higher values are needed only by older DOS programs. It is very probable that you'll never need more than that. If you don't specify a value for FCBS, MS-DOS loads the default value of 4,0. Newer programs use the "FILES" setting instead (see below). Valid values for n = 1 - 255.

FILES=n
where "n" MUST be at least 40 to have your Windows and CPU intensive DOS apps/games "behave" properly. If this line is not specified, the default "FILES" are set to 30 at bootup.
Set "FILES" to at least 60 or 80 in your CONFIG.SYS to play safe! Valid values for n = 8 - 255.


BUFFERS=10,0 if you use ANY hard disk cache utility (SMARTDRV.EXE is STRONGLY RECOMMENDED if you run ANY MS-DOS programs/games that access your hard disk frequently: use Smartdrv.exe 5.0x to cache ALL disk writes/reads in DOS mode). Avoid 3rd party disk caches that may crash your hard disk, especially if you run Windows 9x/3.1x, because of incompatibilities with 32-bit Fast Disk access used by Windows!
See "MS-DOS BUFFERS" in EMM386.TXT (included in "W95-11D.ZIP") for details.
The first number here (10) is the number of disk buffers. Its value must be between 1 and 99. Default is 30 (if the BUFFERS line is not present) and occupies too much memory. 30 buffers are NOT needed, and canNOT fit entirely into the HMA (High Memory Area) anyway.
The second number here (0) is the number of buffers in the secondary buffer cache. Its value must be between 0 and 8.
Default is 0 (no secondary cache buffers). Secondary cache buffers are needed ONLY if your hard disk (i.e. a SCSI disk) is not recognized or cached by SMARTDRV. SCSI, older ESDI and/or large (E)IDE drive users (over 8 GB) might want to add a secondary buffer number to the BUFFERS= line, and also use the DOUBLE BUFFER Smartdrv feature. Example:
BUFFERS=10,6 See "DOUBLE BUFFER" in MYTIPS95.TXT (included in "W95-11D.ZIP") for details.
Add a SMARTDRV line in your Win9x [MS-DOS 7.xx] AUTOEXEC.BAT, ONLY IF using any real DOS mode programs/games that require frequent file access, or/and working with large files/directories in native DOS.
Doing so, it won't interfere with Windows disk operations! If you use ANY DOS disk cache, the best bet for the BUFFERS setting is between 8 and 13 (the first BUFFERS number above). Each buffer takes 528 Bytes of memory.


STACKS=n,m where n = 8 - 64 (number of stacks), and m = 32 - 512 (stack size in Bytes). If you are running older programs that rely on DOS stacks, set STACKS to at least 12,128 or 12,256.
Default is STACKS=9,256, set by the OS if you do NOT mention a STACKS= line in your CONFIG.SYS. DOS uses a maximum of 16 STACKS (and any number greater than 16 is a waste of memory anyway). Each stack can have a maximum value of 512 Bytes, in 128 Bytes increments: STACKS=16,512.
Newer DOS and Windows 3.1x/9x programs do NOT use DOS stacks! Set STACKS=0,0 in your CONFIG.SYS to save conventional/upper RAM, ONLY IF you are sure NONE of your programs use STACKS. Your software documentation should tell you if you need to use or increase the STACKS numbers.

NOTE: After Dark 3.0, the popular screen saver for Windows 9x/3.1x, needs a STACKS line in CONFIG.SYS. You may get GPF (General Protection Fault) error messages if running After Dark 3.0 with a STACKS=0,0 line in CONFIG.SYS. The newer After Dark v4.0 32-bit (retail) for Win9x corrects this issue.


LASTDRIVE=n
where "n" is the letter following your last logical drive in your computer (counting ALL your floppy, hard, CD-ROM/DVD, removable, Dblspace, Drvspace, Stacker, or other compressed drives, Network drives, and RAM virtual drives, if you have any). You can specify any letter from A to Z.

Default is Z, which represents the maximum number of logical drives on any IBM compatible PC.
If you are not connected to a Network, set LASTDRIVE to show the letter AFTER your LAST installed drive in your system, to preserve memory. Example:
LASTDRIVE=E
if you have 4 drives installed (A, B, C and D): 3.5" floppy A, 5.25" floppy B, hard disk C and cd-rom D. See "LASTDRIVE" in MYTIPS95.TXT (included in "W95-11D.ZIP") for details.

NOTES:
- See this MSKB article for all Windows 9x [a.k.a. MS-DOS 7.xx] documented CONFIG.SYS commands and their available parameters: http://support.microsoft.com/support/kb/articles/q135/4/81.asp or use Notepad to read the CONFIG.TXT file in your Win9x folder.
- See also this MS-Dos7 Commands page: http://www3.sympatico.ca/rhwatson/dos7/


Generic CONFIG.SYS line for your CD-ROM/DVD MS-DOS mode device driver:
DEVICEHIGH=C:\path\YOUR_CDROM_DRIVER.SYS /D:YOUR_CDROM_NAME
The most compatible (I like to call it "universal") CD-ROM/DVD DOS mode driver is VIDE-CDD.SYS v2.14, provided free by Acer Peripherals [140 KB]: http://www.acerperipherals.com/ss_download/apicd214.exe
VIDE-CDD.SYS takes only 5 KB of upper DOS memory when loaded with DEVICEHIGH in CONFIG.SYS. You need an upper memory manager in your CONFIG.SYS to provide access to the UMA.
My VIDE-CDD.SYS line in CONFIG.SYS (example):
DEVICEHIGH /L:1=C:\CDROM\VIDE-CDD.SYS /D:IDECDROM
See "CD-ROM DRIVERS 4 DOS" in MYTIPS95.TXT (included in "W95-11D.ZIP") for more details on CD-ROM/DVD DOS mode drivers and (in)compatibilities.
You also NEED to load MSCDEX.EXE in your AUTOEXEC.BAT, for your CD-ROM/DVD drive to be recognized by the system in true/native DOS mode! Typical MSCDEX line:
LOADHIGH=C:\WINDOWS\COMMAND\MSCDEX /D:YOUR_CDROM_NAME /M:xx /E
with EMM386 configured (in CONFIG.SYS) to provide expanded memory (EMM386's "RAM" switch) to load the MSCDEX buffers in expanded memory ("/M:xx" switch), using the MSCDEX "/E" parameter.
"/D:YOUR_CDROM_NAME" is the CD-ROM/CD-R/CD-RW/DVD drive name and MUST be IDENTICAL with the ONE on your CD-ROM/CD-R/CD-RW/DVD device driver line in your CONFIG.SYS! Example (using same name on the VIDE-CDD.SYS line above):
LOADHIGH=C:\WINDOWS\COMMAND\MSCDEX /D:IDECDROM /M:xx /E
NOTE:
The CD-ROM drive name specified with the /D:xxxxxxxx switch on your MSCDEX line may NOT exceed 8 characters (case insensitive), and you canNOT use spaces or punctuation symbols!


The command line below loads MS Windows 9x/3.1x 32-bit (Fast) Disk access legacy support device driver (IFSHLP.SYS = Installable File System Helper), MANDATORY for ALL MS Windows releases begining with 3.10 (except WinNT and Win2000), to enable compatibility with the underlying MS-DOS:
DEVICEHIGH /L:1=C:\WINDOWS\IFSHLP.SYS
You can use any other 3rd party memory manager on the market: Quarterdeck QEMM 9.00, Helix NetRoom 3.0x, Qualitas 386MAX 8.0x with similar (or BETTER) results, but you are going to provide LESS compatibility for your DOS/Windows programs, than by using Microsoft's own HIMEM + EMM386 "combo", especially if using some of the advanced memory management routines provided by these utilities. Try NOT to use ANY special 3rd party memory management features (i.e. QEMM's "Stealth", or NetRoom's "VidCloak"/"SysCloak") that move the Video ROM and/or the Extended ROM BIOS to upper/extended memory or above the 1st Meg! Windows is not very "happy" about these "moves"! Certain
DOS programs are also "allergic" to these advanced "features" and your machine may lockup unexpectedly!
Also try to use MS-DOS's internal "DEVICEHIGH" (in your Config.sys) and "LOADHIGH" ("LH" for short in your Autoexec.bat) commands to load devices, drivers and TSRs high, instead of the 3rd party memory managers' external upper memory "loaders" (like QEMM's "LOADHI" or NetRoom's "XLOAD"), to provide BETTER compatibility. Some of these "loaders" may interfere with certain DOS programs proper operation, thus leading to system crashes!

Example of Windows 9x version of SHELL command line in CONFIG.SYS:
SHELL=C:\COMMAND.COM C:\ /E:512 /L:128 /U:128 /P
provided you have a copy of COMMAND.COM in your boot drive's root folder (C:\ is default). See "2 DOS OR NOT 2 DOS" in MYTIPS95.TXT (included in "W95-11D.ZIP") for more details.
You can have the COMMAND.COM file anywhere on your boot drive, just mention its path on the SHELL= line in your CONFIG.SYS. Example:
SHELL=C:\WINDOWS\COMMAND.COM C:\WINDOWS /E:512 /P
But BEWARE that certain (older) DOS programs expect to find the command interpreter (COMMAND.COM) in C:\ root, and may FAIL to work properly if they don't.

If you don't specify the /E: switch of 1024 or smaller (you won't need an environment size larger than 1024 anyway), then Win98/95 will set it to 2048 by default, which is much bigger than needed, and it will take a LOT of your valuable upper (and in some cases conventional) memory space.
If the SHELL line is NOT present in your CONFIG.SYS, Windows 95/98 loads its GUI (Graphical User Interface) automatically after processing the CONFIG.SYS + AUTOEXEC.BAT files at bootup, and sets a default evironment size of 2048, even if the line "BootGUI=0" is present in your MSDOS.SYS file under the [Options] section.
The purpose of starting Win95/98 on demand (and NOT automatically right after processing the startup files) is if you'd like to have a custom Win9x startup, by starting Windows let's say from a DOS batch file, or from AUTOEXEC.BAT (by adding WIN as the last line), after you eventually "play" in native MS-DOS [SVGA DOS games anyone? :)], or/and if you use the dual-boot feature implemented into the Win95/98 OS to boot into MS-DOS 6.xx.
** To load devices/drivers high, you can also use the INSTALLHIGH command (ONLY in CONFIG.SYS), available ONLY in MS-DOS 6.xx and MS Windows 9x. INSTALLHIGH is needed ONLY if you have a driver/TSR that:
- has problems loading from AUTOEXEC.BAT (using the LOADHIGH command), or
- needs to load earlier in the boot sequence. Example of such CONFIG.SYS line:
INSTALLHIGH=C:\MOUSE\MOUSE.COM <YOUR_MOUSE_DRIVER_PARAMETERS>
A disadvantage to using INSTALLHIGH is that you canNOT specify an upper memory region (by using the /L:x switches, as you can with DEVICEHIGH and LOADHIGH).
Therefore, a driver using INSTALLHIGH will load into the largest contiguous Upper Memory Block (UMB) available. The INSTALLHIGH command is processed only AFTER all DEVICEHIGH and DEVICE lines in CONFIG.SYS are executed. When loading a driver/TSR with INSTALLHIGH in CONFIG.SYS, you need to specify the COMPLETE path, file name AND file extension on the command line.

See also these guides:
--------------------------------------------------------------------------------
- CONFIG.SYS: http://www.pcforrest.freeserve.co.uk/config_sys.htm
- Memory: http://www.knowplace.org/memory.html To the Top

--------------------------------------------------------------------------------
II. My AUTOEXEC.BAT Lines Explained
* Lines you might need in your AUTOEXEC.BAT, valid for both MS Windows 9x [a.k.a. MS-DOS 7.xx] and MS-DOS 6.xx + MS Windows/WfWG 3.1x:
LH=C:\WINDOWS\COMMAND\MSCDEX /D:MYCDROM /M:20 /E

/D:MYCDROM - is the CD-ROM/DVD drive's name (up to 8 characters allowed, case insensitive), and HAS TO BE EXACTLY THE SAME as the one specified on your CONFIG.SYS CD-ROM/DVD driver line (see the CONFIG.SYS CD-ROM driver topic above).
/M:20 - gives MSCDEX 20 buffers to handle the CD-ROM cache (recommended: 16-24). If you don't specify this switch, the default is 8, which could be too small for some DOS programs to read huge files from the CD, especially on a slower CD-ROM drive, 4x speed and below.
/E - loads MSCDEX's buffers into expanded memory, provided you have a line for "EMM386.EXE RAM" or similar 3rd party manager with EMS enabled in your CONFIG.SYS. Example below shows an EMM386 CONFIG.SYS line with expanded memory enabled for loading the MSCDEX buffers above the 1st MegaByte:
DEVICE=C:\WINDOWS\EMM386.EXE X=C000-C7FF I=B000-B7FF D=256 RAM AUTO
NOTE:
Always use the CURRENT MSCDEX.EXE release: the newest is 2.25, included with MS-DOS 7.xx (a.k.a. Windows 9x), very similar with the not so old version 2.23, bundled with MS-DOS 6.xx.


MSCDEX.EXE takes 23 KB of conventional RAM if loaded without the LH command and 2 KB per buffer unit above 4 (if loaded in upper memory). Use the /E parameter with MSCDEX to load its buffers in expanded memory (enabled by EMM386.EXE's "RAM" parameter in CONFIG.SYS), thus saving precious upper memory.

--------------------------------------------------------------------------------
Example of Smartdrv command line in AUTOEXEC.BAT:
C:\WINDOWS\SMARTDRV 2048 16 A+ C+ D /N

I presumed that A is your 3.5 inch floppy drive, C is your hard drive, and D your CD-ROM/DVD drive. Change/add drive letters if different on your system. Load Smartdrv ONLY AFTER the MSCDEX line, if you want your CD-ROM/DVD drive to be cached in true MS-DOS mode!
Run: SMARTDRV /? from any DOS prompt to see all available Smartdrv parameters, and to learn how to adapt it to your system.

A MUST:
For more details on how to tailor the SMARTDRV line to your needs and to master its little known parameters (/B:xxxxx and /E:xxxxx), see "OUTSMART SMARTDRIVE" in MYTIPS95.TXT (included in "W95-11D.ZIP").

NOTE:
If you run ANY DOS programs/games OUTSIDE Win98/95 (i.e. in "Command prompt mode"), Smartdrv IS A MUST, customized to cache ALL read and write disk operations on ALL your drives!


You can decrease Smartdrv's Windows size to a minimum of 16 KB (Microsoft claims 128 KB is minimum, but 16 KB works great and saves a little more upper memory), if you want Smartdrv to cache your drives in DOS mode, but NOT to perform caching in Windows, and thus saving more memory for Windows operation. Example:
SMARTDRV 2048 16 A+ C+ D /N
The first number represents Smartdrv's size in DOS mode, and the second number represents Smartdrv's size in Windows. In this example Smartdrv is set to cache ALL drives reads and writes, including the floppy (drive A) and the cd-rom (drive D).
WARNING: Use the "N" switch with caution: it allows the return to the command prompt BEFORE finishing all disk writes (the cache is NOT flushed)!

NOTE:
If you don't use ANY DOS mode programs/games, DO NOT load Smartdrv, because if properly configured Win9x loads its own 32-bit disk cache!
Smartdrv only takes extra memory. But if you find that besides having enough room in memory (preferably in upper) to spare, Windows 98/95 loads faster (as it does on my PC, since I'm loading Windows from a huge DOS batch file) with Smartdrv loaded, then ENABLE it in your AUTOEXEC.BAT.

W95.BAT, my Win9x startup batch file is (included in "W95-11D.ZIP"). Open it with Notepad for viewing.
SET MOUSE=C:\MOUSE is required to read the MOUSE.INI parameters upon loading, by the majority of DOS mouse drivers out there, by most DOS programs, and by most Windows 9x/3.xx virtual mouse drivers, too. Use:
LOADHIGH=C:\MOUSE\MOUSE <YOUR_MOUSE_DRIVER_PARAMETERS>
to load your DOS mode mouse driver from AUTOEXEC.BAT. You need it with Win9x ONLY IF you run ANY DOS programs/games that use a mouse OUTSIDE the Windows GUI, in native MS-DOS (using the "Command prompt mode only" option from the Startup Menu). This allows your DOS mouse driver to load the custom settings from the MOUSE.INI initialization file located in the directory specified by the "SET MOUSE=" line (C:\MOUSE in this case).
Change the DOS mouse driver's directory if different and adapt its parameters to your own mouse driver/hardware specifications.
If you never use DOS programs outside Windows in real MS-DOS mode, remove these lines pointing to your DOS mouse driver from your AUTOEXEC.BAT (or CONFIG.SYS in some cases, if you use any MOUSE.SYS devices instead). Example of .SYS mouse driver loaded from CONFIG.SYS:
DEVICEHIGH=C:\MOUSE\MOUSE.SYS <YOUR_MOUSE_DRIVER_PARAMETERS>
LogiTech Mouse drivers require this SET line (example) to point to the location of MOUSEDRV.INI (LogiTech mouse initialization file):
SET LMOUSE=C:\MOUSE
instead of the default "SET MOUSE=" line. Add it to your AUTOEXEC.BAT if you use LogiTech mouse drivers.
The Microsoft DOS Mouse Drivers (MSMOUSE.EXE or MOUSE.EXE) included with MS IntelliPoint software use MSMOUSE.INI, MOUSE.INI or MSINPUT.INI (depending on the mouse driver version), located by default in the MS Mouse directory, and don't usually need a "SET MOUSE=" line. If you'd like to have MSINPUT.INI reside in a different directory, add this line to your AUTOEXEC.BAT (example):
SET MSINPUT=C:\MOUSE To the Top

--------------------------------------------------------------------------------
Wrap-Up + Notes

--------------------------------------------------------------------------------
* My Windows 98 [a.k.a. MS-DOS 7.10] CONFIG.SYS + AUTOEXEC.BAT files, with EVERYTHING loaded high, give me 625 KB of FREE low (conventional) memory (RAM) and at least 23 KB of FREE upper memory (UMA), using Microsoft's HIMEM.SYS + EMM386.EXE memory managers.
This is ENOUGH to run ANY "memory hungry" DOS program/game in true/native/real MS-DOS mode, OUTSIDE Windows 95/98 GUI!

--------------------------------------------------------------------------------
* ALWAYS make sure to allocate ALL your computer's memory (RAM) as expanded or extended, using EMM386.EXE:
- the "RAM" switch to provide expanded memory (EMS) combined with "AUTO" to provide also extended memory upon demand or:
- the "NOEMS" switch to provide ONLY extended memory (XMS).
Do NOT use the "NOEMS" parameter on your EMM386.EXE line in CONFIG.SYS IF your DOS based programs/games need EXPANDED MEMORY!

--------------------------------------------------------------------------------
* If your DOS TSRs/drivers/devices are loaded "high" in your CONFIG.SYS (with DEVICEHIGH) and AUTOEXEC.BAT (with LH), and have in native MS-DOS before launching Windows, less than 16 KB of free upper RAM (the first 384 KB of memory above the 640 KB boundary), make sure to remove the following line, remark it with a semicolon (;), or change its numeric value to 0, under the [386enh] section of your SYSTEM.INI file, located in your Windows directory:
LocalLoadHigh=0
If this line has a value of 1, you won't be able to start Windows with less than 16 KB of free upper memory on some systems, depending on your Video card and/or BIOS ROM upper memory address location!
This applies to Windows/WfWG 3.1x (386 enhanced mode ONLY) AND Windows 9x. See "LOCALLOADHIGH" in MYTIPS95.TXT (included in "W95-11D.ZIP") for more details.

--------------------------------------------------------------------------------
* There is a good probability that if you own a relatively new computer (486DX or better), you won't need SETVER.EXE loaded in your CONFIG.SYS.
ONLY IF you determined you do NOT need SETVER.EXE: you're NOT using ANY older IBM or ANY other 3rd party ESDI/IDE/ATA hard disk drivers, older 3rd party disk compression tools (other than Microsoft's DblSpace/DrvSpace), or ANY older DOS Network drivers, delete (BUT BACKUP FIRST!) the SETVER.EXE file from your Windows folder (default location), and REMark with a semicolon (;) this CONFIG.SYS line (example):
; DEVICE=C:\WINDOWS\SETVER.EXE
If you'll need it later on, you can always extract the file SETVER.EXE from your Windows 9x Setup cd-rom (drive D used below) or floppies (usually drive A) to your Windows folder, by running:
- Win95/OSR2 cd-rom users: EXTRACT D:\WIN95\WIN95_09.CAB C:\WINDOWS\SETVER.EXE
- Win98/98 SE cd-rom users: EXTRACT D:\WIN98\WIN98_42.CAB C:\WINDOWS\SETVER.EXE
and then reenable its CONFIG.SYS line, by removing the preceding semicolon: DEVICE=C:\WINDOWS\SETVER.EXE

--------------------------------------------------------------------------------
* NetRoom (Helix) or QEMM (Quarterdeck) users NEED to add/modify the following lines into your SYSTEM.INI file (found in your Windows folder), under the [386enh] section, to enable Windows to load properly with NetRoom or QEMM memory managers' special features enabled in your CONFIG.SYS: SystemROMBreakPoint=false ONLY IF Stealth (QEMM) or VidCloak/SysCloak (NetRoom) are enabled!
EMMExclude=A000-FFFF---> With ANY QEMM/NetRoom configuration!
DualDisplay=true---> With ANY QEMM/NetRoom configuration!

The line "SystemROMBreakPoint=false" above is needed ONLY IF you use QEMM's Stealth or NetRoom's VidCloak/SysCloak relocation features of moving the Extended BIOS and/or Video BIOS areas to the upper/extended memory, and ONLY IF using QEMM 8.00 or older (QEMM386.SYS) or NetRoom 3.0x (RM386.EXE).
A MUST: Owners of QEMM v7.5 (or older) who use Win95/98 MUST disable QEMM's DOS-UP feature to properly boot into Windows!
Open SYSTEM.INI with Notepad or Sysedit, and make your changes ONLY AFTER BACKING IT UP! Restart Windows so your changes can take effect. For more helpful SYSTEM.INI settings see "SYSTEM.INI TWEAKS" in MYTIPS95.TXT (included in "W95-11D.ZIP"). To the Top

--------------------------------------------------------------------------------
* A MUST! = FREE for OWNERS of:
- QuarterDeck QEMM memory manager v8.0x (QEMM386.SYS) => upgrade to QEMM v8.03: http://www.symantec.com/techsupp/files/qemm/qemm8.html
- Helix NetRoom memory manager v3.0x (RM386.EXE) => upgrade to NetRoom v3.04 (5-24-95 release): ftp://ftp.helixsoftware.com/ pub/ techsupp/ netroom/ updates/

--------------------------------------------------------------------------------
* Helix Cloaking Multimedia Package users: DO NOT USE CACHECLK.EXE disk cache with Windows 9x OS:
1. It won't load and will prompt you to remove the Cacheclk line from your AUTOEXEC.BAT, or:
2. It will start, but in MS-DOS 16-bit compatibility mode, canNOT load its own 32-bit protected mode disk drivers (VXDs), and you will experience decreased performance!
CAUTION: You may be able to use CACHECLK safely with Win9x, but ONLY IF you add its name under IOS.INI's [SafeList] section:
[SafeList]
cacheclk.exe
IOS.INI is a text file located in your Win9x folder, you can edit with Notepad in Windows or EDIT.COM in DOS. See "IOS.INI TWEAKS" in MYTIPS95.TXT (included in "W95-11D.ZIP") for details!

--------------------------------------------------------------------------------
* NetRoom manager uses a proprietary technology called Cloaking, to let other Helix Software drivers (MSCDEX.EXE, MOUSE.EXE, CACHECLK.EXE included with Multimedia Cloaking Package) load in 32-bit protected mode in extended memory.
Some Helix Cloaked devices (like Cacheclk) are not compatible with Windows or with some of the DOS games that use the DOS Extender technology (DOS4GW) to load and use the extended memory on your system at full extent (another 32-bit protected mode approach). A DOS game that is not compatible with ANY of the Helix memory management tools is Dragon Lore CD-ROM. It works ONLY with Microsoft's EMM386.EXE memory manager, according to their tech support!
Helix Multimedia Cloaking Package also includes an update for MSCDEX 2.23, which loads also in extended memory, using only 1 KB of upper RAM.
Owners of Multimedia Cloaking: download the cloaked MSCDEX v2.23 update: ftp://ftp.helixsoftware.com/ pub/ techsupp/ mmclk/ updates/ To the Top

--------------------------------------------------------------------------------
* I primarily use Nagy Daniel's Cute Mouse DOS Driver v1.73 [47 KB, free GNU]: http://www.vein.hu/~nagyd/program/ctmou173.zip mostly for speed, as this is one of the fastest DOS mouse drivers around. :)
Cute Mouse takes only 4 KB of upper DOS memory, if an upper memory manager is loaded from Config.sys.
The AUTOEXEC.BAT LOADHIGH command (LH for short) is not needed, because CTMOUSE loads itself "high". Example using a PS/2 mouse:
C:\MAX\CTMOUSEP.COM /R44
These drivers are compatible with almost ALL serial (CTMOUSE.COM) and PS/2 (CTMOUSEP.COM) mice + trackballs!

--------------------------------------------------------------------------------
* I also use Logitech MouseWare v8.20 mouse drivers for Windows 9x/3.1x (including Win9x custom cursors) + DOS (MOUSE.EXE). Designed for LogiTech mice and trackballs, these drivers support most Microsoft and compatible serial and PS/2 mice + trackballs.
Small memory foot print: MOUSE.EXE takes only 1 KB of upper DOS memory (the stub) and 54 KB of extended memory (the driver) when loading Helix Cloaking technology (CLOAKING.EXE) with LOADHIGH in Autoexec.bat, if an upper memory manager is loaded from Config.sys. My Logitech 8.20 Mouse + Cloaking drivers lines in AUTOEXEC.BAT:
LOADHIGH=C:\HELIX\CLOAKING.EXE
LOADHIGH=C:\MAX\MOUSE.EXE SER 1 MEMA MEMSA AHIGH S02
WARNING: LogiTech Cloaked DOS Mouse driver may generate conflicts with certain Windows setups!
LogiTech MouseWare v8.20 Cloaked Mouse Drivers + Tools [free]:
- Setup Disk 1 [921 KB]: ftp://ftp.aros.net/pub/users/v2c/ Drivers/ Logitech%20Mouse/ logi82_1.zip
- Setup Disk 2 [1.1 MB]: ftp://ftp.aros.net/pub/ users/v2c/ Drivers/ Logitech%20Mouse/ logi82_2.zip
Download BOTH files and decompress/unzip them using ORIGINAL directory names for proper installation! To the Top

--------------------------------------------------------------------------------
* With all the TSRs/devices/drivers loaded in the upper memory area you may be able to "squeeze" a maximum of 625 KB of free conventional memory in native MS-DOS mode outside Windows, without using any 3rd party memory management special features. You'll NEVER need more than 620 KB of free low RAM to run ANY DOS program/game created in the last 3-5 years anyway.

NOTE:
For details on running Windows/MS-DOS using your 3rd party memory manager READ the provided documentation: EMM386, QEMM, UMBPCI, 386MAX, NetRoom, BlueMax, CEMM etc!

ADDENDUM: I have replaced some of the default Microsoft drivers/devices/TSRs (included with MS-DOS 6.xx and MS Windows 95/98) with 3rd party counterparts (most of which are freeware or no nag shareware, if not specified otherwise), because I have found them to be better, faster, more compatible alternatives and most importantly almost ALL take less DOS memory, thus saving more conventional (low) RAM, by loading in upper memory (UMA), using DEVICEHIGH in CONFIG.SYS, or LOADHIGH (LH for short) in AUTOEXEC.BAT.
An upper/extended/expanded memory manager like EMM386.EXE or UMBPCI.SYS (both using HIMEM.SYS to map the UMA) is required in CONFIG.SYS. Here they are:

Microsoft DEFAULT Device/Driver/TSR:
BEST 3rd Party Replacement/Add-on:


--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

HIMEM.SYS v3.95 = High + extended DOS memory manager: 1 KB of low DOS mem. Does NOT provide upper DOS mem!
HIRAM.EXE v1.9 = Upper memory mapper (freeware) using UMBPCI.SYS + Loads HIMEM.SYS in upper mem!

EMM386.EXE v4.95 = Upper, extended + expanded DOS memory manager using HIMEM.SYS: 4.2 KB of low DOS mem Slower!
UMBPCI.SYS v3.21 = Uwe Sieber's upper memory provider (freeware) using HIMEM.SYS: 240 Bytes of low DOS mem. Does NOT provide expanded DOS mem! Faster!

DOS CD-ROM driver = NOT provided! [Win98/98 SE is the ONLY Microsoft OS able to create a bootup floppy with DOS CD-ROM drivers!]
VIDE-CDD.SYS v2.14 = Acer "Universal" DOS (E)IDE/ATAPI CD-ROM/DVD driver (free): 5 KB of upper DOS mem.

ANSI.SYS = DOS BIOS display accelerator + key remapper: 4.2 KB of upper DOS mem. Slower!
NANSI.SYS v3.4 = Daniel Kegel's BIOS display accelerator + key remapper (free GNU): 3.2 KB of upper DOS mem. Faster!

RAMDRIVE.SYS = RAM Disk driver: 1 KB of upper DOS mem, loads ONLY from CONFIG.SYS, canNOT unload, shifts drive letters.
XMSDSK.EXE v1.9i = RAM Disk driver (freeware): 688 Bytes of upper DOS mem, loads/unloads from AUTOEXEC.BAT or native DOS prompt, does NOT shift
drive letters.

MSCDEX.EXE v2.25 = DOS CD-ROM Extensions: 16 KB of upper DOS mem with expanded mem enabled by the trial): EMM386.EXE "RAM" switch.
Faster!
NWCDEX.EXE v2.81 = Lineo CD-ROM Extensions (part of DR-DOS 7.03, free 1 KB of upper DOS mem with expanded mem enabled by the EMM386.EXE "RAM" switch. Slower!

SMARTDRV.EXE v5.02 = DOS disk cache: 8 - 40 KB of upper DOS mem. Slower!
CACHECLK.EXE v4.2 = Helix Software cloaked disk cache (part of Multimedia Cloacking Package, retail): 3 KB of upper DOS mem. Use with CAUTION! Faster!

(MS)MOUSE.COM v6.xx - 11.xx = DOS Mouse driver: 16 - 52 KB of upper DOS mem Slower!
CTMOUSE(P).COM v1.73 = Nagy Daniel's mouse driver (free GNU): 3.7 KB of upper DOS mem. Faster!

DOSKEY.COM = DOS command line recall/editor: 3.5 KB of upper DOS mem. Slower!
RECALL.COM v1.2 = DOS command line recall/editor (public domain): 2.5 KB of upper DOS mem. Faster!

MODE.COM = DOS keyboard accelerator: no DOS mem. Slower!
HYPERKEY.EXE v4.77 = HyperWare keyboard accelerator (no time limit shareware): 2.5 KB of upper DOS mem. Faster!

DOS text mode video BIOS accelerator = NOT provided!
ZENO.EXE v1.74 = DOS text mode video BIOS accelerator (public domain): 1 KB of upper DOS mem. Fast!


--------------------------------------------------------------------------------
NOTES: -
*READ* their provided documentation *FIRST* for proper usage! - See SOFTWARE.TXT (included in "W95-11D.ZIP") for ALL these download links, or go to:
http://members.aol.com/axcel216/web.htm
http://members.aol.com/axcel216/speed.htm
http://members.aol.com/axcel216/dos.htm


--------------------------------------------------------------------------------
... And here are my CONFIG.SYS + AUTOEXEC.BAT lines for all devices, drivers + TSRs listed above (ONLY as examples!), tested and used successfully on my PC, using MY OWN CUSTOM system SETTINGS: directory NAMES, CPU, ROM BIOS, Video BIOS, motherboard chipset, hard disk controller BIOS etc!
You NEED to adapt them to YOUR OWN system to make them work PROPERLY, and BEWARE that some MAY NOT work with YOUR particular hardware/software "combo":
--UMBPCI.SYS v3.21, HIRAM.EXE v1.9 + HIMEM.SYS v3.95 in CONFIG.SYS, in this EXACT order, to load HIMEM.SYS in UMA:
DOS=HIGH,UMB
DEVICE=C:\MAX\UMBPCI.SYS
DEVICE=C:\MAX\HIRAM.EXE
DEVICEHIGH=C:\W95\HIMEM.SYS /NUMHANDLES=128 /TESTMEM:OFF /Q
The "DOS=HIGH,UMB" command MUST appear BEFORE the UMBPCI.SYS and HIRAM.EXE lines in CONFIG.SYS!
--VIDE-CDD.SYS v2.14 in CONFIG.SYS:
DEVICEHIGH=C:\CDROM\VIDE-CDD.SYS /D:IDECDROM
--NANSI.SYS v3.4 in CONFIG.SYS:
DEVICEHIGH=C:\MAX\NANSI.SYS /K /X
--NWCDEX.EXE v2.81 in AUTOEXEC.BAT:
LOADHIGH=C:\DRDOS\NWCDEX.EXE /D:IDECDROM /M:20 /E /F:99
NWCDEX.EXE (same as Microsoft MSCDEX.EXE) requires a CD-ROM driver (like VIDE-CDD.SYS) loaded in CONFIG.SYS:
DEVICEHIGH=C:\CDROM\VIDE-CDD.SYS /D:IDECDROM
--CACHECLK.EXE v4.2 in AUTOEXEC.BAT:
LOADHIGH=C:\HELIX\CACHECLK.EXE EX=1 EX=2 EX=3 EX=4 EX=5 NOCD NOF NOW CNK=1 H=512 K=1 WB=1
CACHECLK.EXE requires CLOAKING.EXE to load in AUTOEXEC.BAT:
LOADHIGH=C:\HELIX\CLOAKING.EXE or Helix NetRoom RM386.EXE memory manager loaded in CONFIG.SYS:
DEVICE=C:\HELIX\RM386.EXE X=F000-FFFF I=B000-B7FF F=C800 AUTO H=128 NMION NOC NOPS2 NOT NOTR Q
CACHECLK.EXE is set here NOT to cache ANY drives, but I use it in combination with Microsoft SMARTDRV.EXE in my AUTOEXEC.BAT:
C:\W95\SMARTDRV.EXE 6144 16 A+ B- C+ D+ E+ F+ G /N /B:8192 /E:32768
to boost cached disk access on ALL drives. CAUTION: CACHECLK may cause disk errors on some machines!

--CTMOUSE.COM v1.73 in AUTOEXEC.BAT (for serial mice):
C:\MAX\CTMOUSE.COM /R44
or:
--CTMOUSEP.COM v1.73 in AUTOEXEC.BAT (for PS/2 mice):
C:\MAX\CTMOUSEP.COM /R44
--RECALL.COM v1.2 in AUTOEXEC.BAT:
LOADHIGH=C:\MAX\RECALL.COM -I
--XMSDSK.EXE v1.9i in AUTOEXEC.BAT (creates here a 30 MB drive H in extended RAM):
C:\MAX\XMSDSK.EXE 30720 H: /T /Y

--HYPERKEY.EXE v4.77 in AUTOEXEC.BAT:
C:\MAX\HYPERKEY.EXE XS A:+ C:1 C:- CR:- D:300 H:127 KW:- L:1 P:30 R:30 W:+ OK:- OX:+
in combination with Microsoft MODE.COM in AUTOEXEC.BAT:
C:\W95\COMMAND\MODE.COM CON: RATE=32 DELAY=1 for fastest DOS keyboard response.

--ZENO.EXE v1.74 in CONFIG.SYS:
DEVICEHIGH=C:\MAX\ZENO.EXE /Q

dolphins
2004-04-03, 06:56 AM
可能有2個原因

1. Dos 要用6.22版以前的版本
2. 現在的VGA卡會吃掉Hi Memory

所以 以前可以將一些容量較小的常駐程式 放到Hi memory
指令是 emm386.exe noems x=a000-c9ff i=e000-efff

但用現在的設備 卻發現會造成開機時就當機的現象
這是因為記憶體位置分配不當的原因