and without having to reinstall it (of course).
I am going to use
"Outlaws" by Lucas Arts (a "shoot-em-up" cd-rom game) as example of doing this, step by step:
HKEY_LOCAL_MACHINE\SOFTWARE\LucasArts Entertainment Company\Outlaws
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectPlay\Applications\Outlaws
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\OUTLAWS.EXE
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\LucasArts' Outlaws
The last two
Registry keys listed above ("App Paths" and "Uninstall") contain settings for most installed Win95/98
programs.
Replace the first C:\Outlaws instance with D:\Outlaws, and then press F3 to find the next instance (and so on).
Repeat this operation until you get this message:
"Finished searching through the Registry"
Close Regedit.
In the
above example there are no *.CFG, *.DAT, *.INI, *.LOG etc files you need to modify, either in your Windows folder or in the
Outlaws folder. But other apps make use of such files, and you need to replace all your particular app's old folder instances
with the new ones (to point to your program's new location), in all those files too (where applicable).
There are several 3rd party uninstallers out there that can automate some of the steps above (especially if you use such a tool to monitor all your programs' installations), since most of them keep a record (log) of all changes made to your Win95/98 system during install.
IF "%0"==""
MS-DOS plugs a batch file name into the "%0" parameter when you execute it from the command line, but when
AUTOEXEC.BAT is processed at bootup, this parameter is still blank.
Easier, if you have a group of command lines you'd
like executed only at startup, just insert this on a separate line before them:
IF NOT "%0"=="" GOTO AFTERBOOT
Then insert the :AFTERBOOT label on a line of its own, after the last line in your selected
group.
And if you have more than one group of such commands, use a different label for each one, e.g. :AFTERBOOT1,
:AFTERBOOT2 etc.
If you have multiple such groups scattered throughout your AUTOEXEC.BAT, make sure to add a
GOTO END line after the last line of each such group, and an :END label as the last line of your
AUTOEXEC.BAT.
File Name: Attributes: --------------------------- BOOTLOG.PRV Hidden BOOTLOG.OLD Hidden BOOTLOG.TXT Hidden DETLOG.OLD Hidden, System DETLOG.PRV Hidden, System DETLOG.TXT Hidden, System MSDOS.--- Hidden NETLOG.TXT Archive OEMLOG.TXT Hidden SCANDISK.LOG Archive SETUPLOG.TXT Hidden SUHDLOG.DAT Read-only, Hidden SYSTEM.1ST Read-only, Hidden, System W95UNDO.DAT Read-only, System W95UNDO.INI Read-only, System
NONE of the files above are needed for Windows 95/98 proper operation! They
were created when you first installed Win95/98 and further updated when you have made certain changes to your system
configuration, or were created when your Win95/98 system loaded/shut down improperly.
The only useful file (that I know
of) on this list is SYSTEM.1ST, good to restore your original Registry, in case of a sudden disaster (system lockup,
file corruption etc), when you're caught off guard, with no recent backups of your Win9x Registry files.
See "RESTORE DAMAGED REGISTRY" in MYTIPS95.TXT [part of W95-11D.EXE], for more
details.
Just keep that floppy handy...
The easiest way to move all these files is by running File Manager (FM =
C:\Windows\WINFILE.EXE). But you can also do this in Windows Explorer.
If you use File Manager: make sure you can
view ALL files in File Manager (including Hidden, Read-only AND System files): left-click View, By File Type..., and
then check the "Show Hidden/System Files" box.
In File Manager highlight all the above C:\ root files by holding
down Ctrl and then left-clicking on each one of them. Now drag all highlighted files to the A: drive icon, while holding down
Alt (to move them instead of just copying). Release the left mouse button and then answer Yes to all those
confirmation screens. [nag... nag... :)]
SHELL=C:\COMMAND.COM C:\ /E:1536 /L:128 /U:128 /P
Make sure you have
a copy of COMMAND.COM in the root folder of your C:\ boot drive, to make the line above work properly. You can usually find
COMMAND.COM in the C:\Windows and C:\Windows\Command folders.
Now reboot, so the new Command environment can take
"charge".
BootGUI=0
Save your work and exit the text editor.
This setting prevents the
Windows GUI from loading, and you'll find yourself at the plain DOS prompt after a (re)boot.
That's it. Enjoy the DOS ride!
FYI:
DEVICEHIGH=C:\CDROM\UIDE.SYS /D:MYCDROM
Your CD/DVD
drive name (MYCDROM above) MUST match EXACTLY the one on your MSCDEX/SHCDX33C/NWCDEX driver
line in CONFIG.SYS/AUTOEXEC.BAT!
See these topics for more details:
UIDE.SYS takes 2.3 KB of upper DOS RAM if loaded with DEVICEHIGH in CONFIG.SYS. An upper memory
manager like UMBPCI.SYS, EMM386.EXE, QEMM386.SYS, RM386.EXE or 386MAX.SYS is required in CONFIG.SYS for this to work.
See
MEMORY.TXT [part of both W95-11D.EXE + W31-11D.ZIP] for memory management
guidelines.
Other 3 CD/DVD drivers listed above accept similar CONFIG.SYS lines.
Make sure to read respective
documentation for the specific driver you intend to use to take advantage of specific command line switches, especially if
using UATA/UDMA modes to access your CD/DVD drive(s) in native MS-DOS.
To my knowledge all these drivers work GREAT with ANY 100% compliant internal (E)IDE/ATAPI CD/DVD drive of ANY speed using the default 16-bit IDE or 32-bit (E)IDE motherboard connector. Most all Pentium, Pentium Pro and Pentium II/III/IV motherboards provide the dual (E)IDE PCI interface for internal (E)IDE/ATAPI drives, which support CD/DVD drives.
FYI:
If you have an IDE/ATAPI
CD-ROM drive connected to a Sound Blaster (SB) card interface (the IDE interface on some Creative Labs SB cards, like the SB
AWE32 PnP, or SB AWE64 PnP), you may NOT be able to use the DOS drivers mentioned above, because the SB IDE interface
(controller) uses a different interrupt and hex base address.
Example: the standard secondary (E)IDE controller on the
motherboard uses interrupt 15, and base address 170h (hex notation). Sound Blaster IDE interface uses by default interrupt
(IRQ) 5 (same as the sound card chip), and base address (BA) 220h.
Also, if you have an SB card featuring the older
Matsushita/Panasonic proprietary 8-bit CD-ROM interface (like the Sound Blaster 16 CD/16 ASP, NOT PnP), you canNOT use the
CD-ROM drivers listed here. In this case you will have to use the driver(s) provided by Creative Labs (bundled with your
sound card or CD-ROM drive), usually called SBCD.SYS (which takes 13 KB of memory).
The Panasonic/Matsushita CD-ROM
connector uses (to my knowledge) interrupt 5 and base address 220h, and cannot be changed.
The standard (E)IDE motherboard
controller interface in most Pentium (and newer) systems uses the following Interrupt ReQuest lines (IRQ) and hex Base
Addresses (BA):
Alternative IRQs and BAs used by non-standard/supplemental (E)IDE connectors (IDE controller cards):
NOTES:
UPDATES:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
In the following example I'll use the "Network Neighborhood" icon:
With the above key highlighted, right click anywhere in the Registry field, select New, and click DWORD, to create a new entry. Name it "NoNetHood" (don't type the quotes). When you set its value to 1 and then reboot, the Network Neighborhood desktop icon will be gone! To reinstate this icon on your desktop, change its value to 0.
And the beauty of this trick is that you can apply it to ALL your Desktop system icons.
To make changes to any other "hardwired" (read "unwanted") icon, go to:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Desktop\NameSpace\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
Within this key, each system icon has its own CLSID (Class ID) key, a 16 byte value which identifies an individual object, that points to a corresponding key in the Registry:
HKEY_CLASSES_ROOT\CLSID{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
To delete an icon, remove the 16 byte
CLSID value within "NameSpace".
To change an icon name, change the value of its "sister" CLSID key:
HKEY_CLASSES_ROOT\CLSID{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\DefaultIcon
Therefore, the "Network Neighborhood" correspondent keys would be:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Desktop\NameSpace\{208D2C60-3AEA-1069-A2D7-08002B30309D}
and respectively:
HKEY_CLASSES_ROOT\CLSID\{208D2C60-3AEA-1069-A2D7-08002B30309D}
Here are the "CLSID" keys for all Windows 95 system icons:
Briefcase.{85BBD920-42A0-1069-A2E4-08002B30309D}
Desktop.{00021400-0000-0000-C000-000000000046}
Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}
Dial-Up
Networking.{992CFFA0-F557-101A-88EC-00DD010CCC48}
Fonts.{BD84B380-8CA2-1069-AB1D-08000948F534}
Inbox.{00020D76-0000-0000-C000-000000000046}
My Computer.{20D04FE0-3AEA-1069-A2D8-08002B30309D}
Network
Neighborhood.{208D2C60-3AEA-1069-A2D7-08002B30309D}
Printers.{2227A280-3AEA-1069-A2DE-08002B30309D}
Recycle
Bin.{645FF040-5081-101B-9F08-00AA002F954E}
Shortcut.{00021401-0000-0000-C000-000000000046}
The
Internet.{FBF23B42-E3F0-101B-8488-00AA003E56F8}
The Microsoft Network.{00028B00-0000-0000-C000-000000000046}
Url
History Folder.{FF393560-C2A7-11CF-BFF4-444553540000}
You can use the method above for any system icon you want to
modify/delete.
Go to the CLSID key you want to modify and change its "DefaultIcon" subkey.
Recycle Bin makes an
exception, its "Default" value lists the full pathname of the file that contains the corresponding icon. Recycle Bin has
three entries under "DefaultIcon": Default, Empty and Full, each represented by a different icon for the: default, empty and
full Recycle Bin respectively.
I know my "nightmare" is to see that pesky "Recycle Bin" icon on my desktop every day. Just
go to its "NameSpace" key:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Desktop\NameSpace\{645FF040-5081-101B-9F08-00AA002F954E}
and
delete it. From now on when you start Win95, bye-bye Recycle Bin!
You can also rename the Recycle Bin's "NameSpace" key,
by scrolling to the corresponding CLSID key:
HKEY_CLASSES_ROOT\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIcon
and modifying its "default" value.
You can always create new versions of the icons listed above, which will have the Move, Copy and Delete
properties enabled.
The Control Panel icon for example, is represented by this CLSID key:
HKEY_CLASSES_ROOT\CLSID\{21EC2020-3AEA-1069-A2DD-08002B30309D}
To create a new icon called, let's say "Control Center", delete the key below:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Desktop\NameSpace\{21EC2020-3AEA-1069-A2DD-08002B30309D}
and then create a new folder called:
Control Center.{21EC2020-3AEA-1069-A2DD-08002B30309D}
A
folder with this extension file retains the properties of the original Control Panel, but it can also be deleted or
moved.
To change the "My Computer" icon, go to:
HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\DefaultIcon
and change its icon file name in the "default" entry.
TIP: You can use Microsoft TweakUI [110 KB, free,
unsupported] to eliminate the Win9x system icons of your choice from your desktop (and much more).
... But that takes the
fun out of messing with the Registry :-)
NOTE: Do NOT install MS Font Smoother if you have MS Plus! for 95, OSR2, Win98 or WinME!
So I changed the system desktop font to a screen (raster/plotter) font, which doesn't take for ever to render,
having no edges to "smooth".
I chose the plain "System" font.
To do this, right-click on an empty spot on your Desktop,
select Properties, click on the Appearance tab, and click once on the "Normal" desktop setting.
In the "Font:" list,
scroll down to the "System" font. Select it and then click Apply to make the change "stick" instantly, or click OK to make it
permanent.
Repeat the above steps with the "Selected", "Active Window", "Inactive Window", and "Message box" Appearance
settings. Choose the "System" font for ALL of them. Not only it is available strictly in Bold, so it stands out much better
on the screen than "Arial" (which by default is in Regular), but it also takes less time to draw a window/menu/pop-up
tab.
Depending on your installed fonts, you may have other neat screen fonts (all the ones with the .FON extension) to
"play" with, like: "Courier", "Modern", "Roman", "Fixedsys", "MS Serif", "MS Sans Serif" etc.
To view each individual
font, open the "Fonts" icon in Control Panel, and double-click on the one(s) you wish (all screen/plotter fonts have a red
"A" icon assigned).
XCOPY /?
you get this help screen:
"Copies files and directory trees. XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/W] [/C] [/I] [/Q] [/F] [/L] [/H] [/R] [/T] [/U] [/K] [/N] source Specifies the file(s) to copy. destination Specifies the location and/or name of new files. /A Copies files with the archive attribute set, doesn't change the attribute. /M Copies files with the archive attribute set, turns off the archive attribute. /D:date Copies files changed on or after the specified date. If no date is given, copies only those files whose source time is newer than the destination time. /P Prompts you before creating each destination file. /S Copies directories and subdirectories except empty ones. /E Copies directories and subdirectories, including empty ones. Same as /S /E. May be used to modify /T. /W Prompts you to press a key before copying. /C Continues copying even if errors occur. /I If destination does not exist and copying more than one file, assumes that destination must be a directory. /Q Does not display file names while copying. /F Displays full source and destination file names while copying. /L Displays files that would be copied. /H Copies hidden and system files also. /R Overwrites read-only files. /T Creates directory structure, but does not copy files. Does not include empty directories or subdirectories. /T /E includes empty directories and subdirectories. /U Updates the files that already exist in destination. /K Copies attributes. Normal Xcopy will reset read-only attributes. /Y Overwrites existing files without prompting. /-Y Prompts you before overwriting existing files. /N Copy using the generated short names."Xcopy.exe and Xcopy32.exe are located by default in your C:\Windows\Command folder (Win9x/ME).
If using MS-DOS 6.xx, XCOPY is limited to these command line parameters, and does NOT provide LFNs support:
"Copies files (except hidden and system files) and directory trees. XCOPY source [destination] [/A | /M] [/D:date] [/P] [/S] [/E] [/V] [/W] source Specifies the file(s) to copy. destination Specifies the location and/or name of new files. /A Copies files with the archive attribute set, doesn't change the attribute. /M Copies files with the archive attribute set, turns off the archive attribute. /D:date Copies files changed on or after the specified date. /P Prompts you before creating each destination file. /S Copies directories and subdirectories except empty ones. /E Copies any subdirectories, even if empty. /V Verifies each new file. /W Prompts you to press a key before copying. /Y Suppresses prompting to confirm you want to overwrite an existing destination file. /-Y Causes prompting to confirm you want to overwrite an existing destination file. The switch /Y may be preset in the COPYCMD environment variable. This may be overridden with /-Y on the command line"This is the COPYCMD command variable line, you can add to your AUTOEXEC.BAT file, to disable the confirmation prompts when using: XCOPY, XCOPY32, COPY and MOVE (use it with CAUTION!):
SET COPYCMD=/Y
Example of Xcopy/Xcopy32 command used to preserve the LFNs at a Win9x/ME DOS prompt, that copies ALL subfolders and files from your Windows folder to another drive/directory:
XCOPY C:\WINDOWS D:\WINBAK /C /E /H /K
WARNINGS:
ADD-ON: There is a better XCOPY(32) alternative: XXCOPY for Win9x/NT/2000/ME/DOS (freeware), which adds more command line switches [besides supporting ALL Microsoft XCOPY(32) parameters], and complete LFNs support in a DOS box (Win9x/NT/2000/ME only).
BEWARE: The %windir% variable is
available ONLY with the Windows GUI started, therefore can be used ONLY in a Windows DOS session/box prompt and in batch
files executed ONLY from within Windows, it canNOT be used in native/real/true/pure MS-DOS mode outside Windows!
So if you are
running such commands from the native MS-DOS prompt, use the real name of your Windows folder (directory), or if using
Win9x/ME, you can add the %winbootdir% variable followed by a backslash (\) in front of your file names, to
point to a valid path.
Example:
XCOPY <parameters> %winbootdir%\*.INI C:\WINBAK
The
%windir% variable shows off its usefulness when you have Windows installed in a folder other than the default C:\WINDOWS,
and/or would like to use the same batch file(s) on multiple Windows PCs (eventually connected to a network), without having
to customize it/them individually for each machine.
The Windows 9x/ME directory (set <windir>) is an internal
MS-DOS variable, specified in MSDOS.SYS (a system file located in C:\ root), which is processed
by the Win9x/ME boot routine.
IO.SYS (which is processed first at bootup) looks into MSDOS.SYS [Paths] section to
determine the location of your Windows 9x/ME directory, and loads it in the MS-DOS environment memory.
This MSDOS.SYS
example uses default values:
[Paths]
WinDir=C:\Windows
If you run the SET command at a DOS prompt (using "| MORE" to display one screen at a time):
SET | MORE
you'll see all MS-DOS
variables, including "windir".
Notice that the internal ones ("windir" and "winbootdir") appear in small characters, and
the external SET variable (specified in CONFIG.SYS and/or AUTOEXEC.BAT by the SET <variable> command lines) appear in
capitals.
Example of a common SET variables list at a Win9x/ME DOS box prompt:
windir=C:\WINDOWS
winbootdir=C:\WINDOWS
COMSPEC=C:\WINDOWS\COMMAND.COM
TEMP=C:\WINDOWS\TEMP
TMP=C:\WINDOWS\TEMP
PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\;etc...
WINPMT=$P$G
PROMPT=Type
EXIT & hit Enter 2 return 2 Windows!$_$P$G
SOUND=C:\SB16
MIDI=SYNTH:1 MAP:E MODE:0
BLASTER=A220 I5 D1 H5 P330
T6
MOUSE=C:\MOUSE
COPYCMD=/Y
DIRCMD=/A/O:GEN/P/V
etc...
Now notice the difference when you run the same "SET | MORE" command from native MS-DOS 7.xx/8.00:
winbootdir=C:\WINDOWS
COMSPEC=C:\WINDOWS\COMMAND.COM
TEMP=C:\WINDOWS\TEMP
TMP=C:\WINDOWS\TEMP
PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\;etc...
PROMPT=$P$G
WINPMT=Type EXIT & hit Enter 2 return 2
Windows!$_$P$G
SOUND=C:\SB16
MIDI=SYNTH:1 MAP:E MODE:0
BLASTER=A220 I5 D1 H5 P330
T6
MOUSE=C:\MOUSE
COPYCMD=/Y
DIRCMD=/A/O:GEN/P
etc...
Example of a common SET variables list at a Win31 DOS box prompt:
windir=C:\WINDOWS
COMSPEC=C:\DOS\COMMAND.COM
TEMP=C:\DOS
TMP=C:\DOS
PATH=C:\;C:\DOS;C:\WINDOWS;C:\STUFF;... etc
WINPMT=$P$G
PROMPT=Type
EXIT & hit Enter 2 return 2 Windows!$_$P$G
SOUND=C:\SB16
MIDI=SYNTH:1 MAP:E MODE:0
BLASTER=A220 I5 D1 H5 P330
T6
MOUSE=C:\MOUSE
COPYCMD=/Y
DIRCMD=/A/O:GEN/P
etc...
Now notice the difference when you run the same "SET | MORE" command from native MS-DOS 6.xx:
COMSPEC=C:\DOS\COMMAND.COM
TEMP=C:\DOS
TMP=C:\DOS
PATH=C:\;C:\DOS;C:\WINDOWS;C:\STUFF;... etc
PROMPT=$P$G
WINPMT=Type EXIT & hit Enter 2 return 2
Windows!$_$P$G
SOUND=C:\SB16
MIDI=SYNTH:1 MAP:E MODE:0
BLASTER=A220 I5 D1 H5 P330 T6
MOUSE=C:\MOUSE
COPYCMD=/Y
DIRCMD=/A/O:GEN/P
etc...
SOLUTION 1:
This
works with all Windows 9x/NT4/2000/ME/XP releases.
Open Regedit and go to:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer
Look in the right hand
pane for the "Max Cached Icons" entry.
Create it if not present: right-click in Regedit's right hand pane -> select
New -> click String Value -> name it "Max Cached Icons" (the spaces are required, but don't type the quotes).
The
default value is 500, which means the maximum number of icons that are cached by the OS.
The information about all
Win9x/ME (WinNT4/2000/XP keep this data inside the IconCache.db file) cached icons is held in the
ShellIconCache file, located in your main Windows folder. Every time you create a new Desktop/Start Menu
folder/shortcut, this file is updated, until it reaches the (default) upper limit of 500 icons.
But you can
increase this number to allow Windows to cache more icons (up to 4096), and to force it to stop accessing your disk(s)
frequently, only to search for those "uncached" icons.
According to this MSKB article, the maximum size allowed for "Max Cached Icons" is 4096. Minimum value is
100.
You need to restart your machine after this change, sometimes 2 or more times, until the new setting "catches
on", and Win9x/ME GUI recreates a new ShellIconCache file. :(
To force Win9x/ME to rebuild its icon cache file,
delete the current one, then shut down Windows by hitting Alt + F4 simultaneously, and finally reboot/reload/restart
the GUI.
Try also to delete a possibly corrupt ShellIconCache file after modifying the Registry value above, especially if
you have deleted/moved/renamed some of your old shortcuts, changed their icons or added new ones, because Windows still keeps
the info about deleted icons. :( Don't worry, this file should be recreated the next time you (re)load Windows, but sometimes
it may take more than one (re)start. :)
SOLUTION 2:
All Win9x/ME + Windows/WfWG 3.1x users: It is also recommended to edit your SYSTEM.INI file's [vcache] section to read (SYSTEM.INI is located in your Windows directory):
[vcache]
MinFileCache=2048
MaxFileCache=4096
ChunkSize=512
AllocPageFixed=OFF
MEANING:
File caching is handled by the dedicated VCACHE.386 driver in Windows for WorkGroups (WfWG) 3.1x (located in %windir%\SYSTEM), and by VCACHE.VXD in Windows 95/98/ME, included as part of the complex VMM32.VXD driver (found also in %windir%\SYSTEM).
These are the mandatory entries for file cache to work properly:
[386enh]
device=vcache.386
Older Windows 3.xx releases canNOT cache files, relying on the MS-DOS mode SMARTDRV.EXE 16-bit disk cache tool for this purpose [much slower :(].
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VCACHE] [HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\VMM32Files]
"StaticVxD"="*VCACHE"
"Start"=hex:00
"vcache.vxd"=hex:00
The
lines above are useful on systems with at least 16 MB of RAM installed.
On systems with 8 MB or less, try these
conservative SYSTEM.INI [vcache] settings:
[vcache]
MinFileCache=1024
MaxFileCache=2048
ChunkSize=512
On machines with 32 MB or more,
you may want to adjust the "MinFileCache" to 1/8 of your installed RAM, and "MaxFileCache" to 1/4. Some trial and error might
be necessary, depending on your particular system configuration.
Create the SYSTEM.INI [vcache] section if not
present.
Save your work, and then restart Windows for these changes to take effect.
And don't forget to BACKUP your
SYSTEM.INI FIRST!
Here are some recommended "MinFileCache" and "MaxFileCache" values depending on your installed
memory (note that the minimum and maximum cache values are NOT the same, which helps if you routinely perform tasks dealing
with large files):
Memory (RAM) MinFileCache MaxFileCache -------------------------------------------- 8 MB 1024 2048 16 MB 2048 4096 32 MB 4096 8192 64 MB 8192 16384 128 MB 16384 32768 256 MB 32768 56320 512 MB 51200 56320
On systems with 128 MB RAM or more, you may want to delete these
settings from your SYSTEM.INI altogether (if present), and let Windows handle its own file cache sizes for optimal
performance.
I have experimented with these values on 32, 64 and 128 MB systems. You may find that other values work
better on your computer, depending on what kind of apps/games you're using: business, CAD/graphics rendering, animation/video
editing, development, publishing, 3D gaming, Internet, CD/DVD burning etc.
FYI:
Also consider running a benchmark utility (free) like Windows Magazine's:
NOTE: This topic applies also to MS-DOS 6.xx and Windows/WfWG 3.1x systems, with these exceptions: the /L:xxxx and /U:xxx COMMAND.COM parameters and the "winbootdir" environment string, which apply ONLY to Win95/98/ME [a.k.a. MS-DOS 7.xx/8.00] OSes!
Q [The Captain]:
"What are your recommendations for a Win95 OSR
2.5 system with 32 MB RAM for a CONFIG.SYS "shell=" line parameters? What about a 16 MB system?
I am currently using
"SHELL=C:\WINDOWS\COMMAND.COM /P /E:1024".
I have no real mode drivers loading, it's all 32-bit."
A [MDGx]:
"The SHELL COMMAND.COM environment parameter length, set by the /E:xxxx switch (used
in CONFIG.SYS), doesn't depend on your installed memory (RAM), but on how MANY and how LONG are your SET statements in your
CONFIG.SYS and/or AUTOEXEC.BAT files, including the PATH and the PROMPT lines.
A safe bet is to set your CONFIG.SYS SHELL
line to read:
SHELL=C:\COMMAND.COM C:\ /E:1024 /L:128 /U:128 /P
Change the path above if your
COMMAND.COM copy is located somewhere else.
You may want to increase the environment size, let's say to /E:1536 if your
PATH line is pretty long, and/or if you have a bunch of SET lines in your startup files, like I do.
For details on the /L
and /U switches (and for all Win95/98 COMMAND.COM available parameters), run:
COMMAND /?
at any
DOS prompt.
If you don't have a SHELL line in your CONFIG.SYS, Win95/98 automatically starts the GUI at the end of
processing the startup files (IO.SYS, MSDOS.SYS, CONFIG.SYS and AUTOEXEC.BAT), even if you have the "BootGUI=0" line present
in your MSDOS.SYS file, the [Options] section. At least that's what happens on my machine, and I noticed this to be valid
with both Win95 OSR1 and Win95B OSR2 releases.
There is a good DOS diagnostics tool called SysChk (no nag shareware), which reports the total, used and free environment memory
amounts in bytes (among many other details about your system), when you select option #7 from SysChk's main screen menu. If
your free environment size is below 100-200 bytes, you might need to increase it, to have at least 400-500 bytes free,
because Windows 3.1x/95/98 and their DOS sessions also add to the length of the environment size (like the "windir" line,
present only with Windows/WfWG 3.1x/95/98 started). Also, Win9x adds the "winbootdir" string to the environment upon bootup,
reading the MSDOS.SYS file, the [Paths] section, which contains the "WinBootDir=C:\WINDOWS" line.
To see all the SET
lines/strings displayed on your screen, just run:
SET | MORE
from any DOS prompt. Adding "|
MORE" to the SET command, allows viewing all SET lines one screen at a time, and you can press a key to move to the next
screen, that is if all your SET lines don't fit into the default DOS screen of 25 lines.
Run SysChk from a Windows DOS
prompt box, and press 7, which displays all environment variables/strings and sizes (a lot more useful details compared to
using the plain "SET | MORE" command).
Also, when you start a DOS session in Windows 95/98, the Command environment size
defaults to /E:2048 /L:1024 /U:255 (maximum sizes allowed by the OS, in order to accomodate all your SET/environment
strings/lines). This loads a huge COMMAND module into memory, usually too big for your needs. But you can restrict/customize
the environment size in a Windows DOS session by starting it from a custom PIF file (MS-DOS application shortcut).
All you
have to do is type something like:
COMMAND.COM /E:1024 /L:128 /U:128
in your PIF file's "Cmd
line" dialog box, by modifying the "MS-DOS Prompt" item already present in your Start Menu (Win95/98) or in the Main Program
Group (Win/WfWG 3.1x), or by creating a new one.
In Windows/WfWG 3.1x you need to start PIFEDIT.EXE located in your
Windows directory to modify/create a PIF executable (Program Information File)."
UPDATE:
"To
determine exactly the proper size for your environment, open a DOS box, type this line and hit Enter:
SET > HOWMUCH.TXT
This plain text file is exactly the same size as your environment. You can open HOWMUCH.TXT
(the name is of no importance) using Notepad in Windows or EDIT in DOS to see what strings your environment currently
contains.
Note that the environment size is different in a Windows DOS box from the native MS-DOS prompt, because Windows
adds the "windir=C:\WINDOWS" (default) variable to the SET list."
[Thank you Early Bird!]