607 lines
34 KiB
Plaintext
607 lines
34 KiB
Plaintext
Your CONFIG.SYS and AUTOEXEC.BAT by Barry Simon
|
||
|
||
Copyright (c) 1986, by Barry Simon
|
||
Written expressly for and posted on Compuserve's IBM Forum. May only be
|
||
reproduced commercially with the author's permission. May only be
|
||
distributed with this copyright notice intact.
|
||
|
||
Introduction
|
||
|
||
During the startup of an IBM or IBM compatible computer, the operating system
|
||
looks for two files of user supplied commands which allow you to customize
|
||
your system in various ways. This article will attempt to explain some of
|
||
the options available to you when you make these basic files. While I have
|
||
written it for the relative novice, I hope it may provide some useful new
|
||
tricks even to the more experienced user.
|
||
|
||
These two files whose names must be CONFIG.SYS and AUTOEXEC.BAT should reside
|
||
in the root directory of your boot diskette or of your hard disk if you have
|
||
a bootable hard disk (i.e. if you can start your system from your hard disk
|
||
without placing a diskette in drive A). Actually, there is a method for
|
||
placing the AUTOEXEC.BAT file in a subdirectory but despite the fact that
|
||
I tend to be fanatical about keeping my root directory lean, I don't
|
||
recommend using this option.
|
||
|
||
When you turn on your computer, the CPU is setup to begin a program in the
|
||
ROM (read only memory) that all IBM compatible machines have. This ROM is
|
||
distinct from and in addition to the working RAM (random access memory).
|
||
When you are sold a machine with 256K of memory, that figure refers to the
|
||
RAM. There is an additional 16K-32K of ROM. RAM is cleared whenever you
|
||
turn off your machine or reboot while the ROM is permanently burned in and
|
||
should not change.
|
||
|
||
Booting Up
|
||
|
||
The program that is automatically run from ROM begins with a brief test
|
||
(POST="power on self test") of various components of your computer. If you
|
||
have an XT or AT, the most noticeable part is the memory(RAM) test accompanied
|
||
by counting up the memory on your screen as the test progresses. This test
|
||
is skipped when you do a warm reboot by hitting Ctrl-Alt-Del. You may also
|
||
notice your drives and printer "burping" as they get tested.
|
||
|
||
After this test, the machine searches for various "ROM extensions" that is
|
||
additional ROM that can come with a hard disk or EGA card for example. The
|
||
program then searches first drive A and then a hard disk if you have a
|
||
bootable hard disk for a diskette or disk program to transfer control to. It
|
||
transfers control to the very first sector on the disk which is called the
|
||
boot sector. When you format a diskette, a little program is placed in the
|
||
boot sector which will display the message "non system disk, replace and hit
|
||
any key". When you transfer the operating system to the disk with the SYS
|
||
command or via FORMAT/S, this boot sector program is changed to transfer
|
||
control to a program which must be in the position immediately following the
|
||
boot sector.
|
||
|
||
If the disk has the system on it, control is transferred successively to two
|
||
hidden files which load the BIOS ("basic input/output system" part of which
|
||
is in ROM) and the DOS ("Disk operating system"). When most users think of
|
||
DOS they think of the familiar prompt and copy,.... commands. These parts of
|
||
the DOS are only loaded later; the part in the hidden file involves services
|
||
provided by DOS to programmers rather than directly to users. The two hidden
|
||
files are called "IBMBIOS.COM" and "IBMDOS.COM" in PC-DOS and may have
|
||
different names on other computers although surprisingly, the names persist
|
||
even on some non-IBM brands!
|
||
|
||
Parenthetically, I want to note that there isn't really much hidden about
|
||
hidden files. As you may know, the DIRectory you are used to display gets
|
||
its information from a special file also called the directory. This file
|
||
is essentially a little database with information about each file including
|
||
the filename, extension, date and time of creation. One byte in the record
|
||
for each file is called the attribute byte and contains eight "switches" to
|
||
keep track of things like whether the file is a volume label, read only, etc.
|
||
One of these switches is whether the file is "hidden". To anyone with any
|
||
programming experience or with any of a large number of public domain or
|
||
commercial programs, these files are not in any sense hidden. The basic DOS
|
||
services like DIR and COPY are specially set up to ignore hidden files and
|
||
that is the only sense in which these files are hidden. The two system files
|
||
are hidden because their location is critical for a successful boot-up and
|
||
they are less likely to be moved by accident if they are hidden.
|
||
|
||
After the second hidden file is mainly loaded, it looks for a special file
|
||
called "CONFIG.SYS" and processes the commands in it. Then control is passed
|
||
to the third file in the operating system, COMMAND.COM. As the final step in
|
||
booting up, COMMAND.COM looks for a file named AUTOEXEC.BAT and, if found,
|
||
it loads it and runs it. If not found, COMMAND.COM exits with the DATE and
|
||
TIME commands.
|
||
|
||
Except for its special status as a bootup file, the AUTOEXEC.BAT file is an
|
||
ordinary BATch file with the usual rules of syntax. The CONFIG.SYS file has
|
||
a special syntax with a limited number of allowed commands. Both must be
|
||
pure ASCII files, that is without any special formatting codes that some word
|
||
processors add. Many word processors which have special codes have a
|
||
"non-document" mode for preparing ASCII files. These files have separate
|
||
lines which must be ended with carriage return/line feed pairs. If you have
|
||
any doubts about whether the file is "pure ASCII" you can use the TYPE
|
||
command to display it on the screen and see if it just has ordinary letters
|
||
and numbers.
|
||
|
||
What goes in your root directory
|
||
|
||
When a subdirectory fills up, it adds another cluster of disk space to
|
||
increase its size but the size of the root directory is fixed at the time
|
||
the diskette or disk is formatted. It is not merely because of the size
|
||
restriction that I recommend that you keep your root directory slight.
|
||
Since the files in the root are likely to be of diverse type, it will be
|
||
difficult to keep track of things if you put too much there. I mainly put
|
||
subdirectories there and mainly subdirectories which have no files but only
|
||
subsubdirectories. For example, I have a WORDS subdirectory with my word
|
||
processor, outliner, thesaurus, etc in subsubdirectories. Generally, there
|
||
are only three files that I recommend go into the root: COMMAND.COM,
|
||
CONFIG.SYS and AUTOEXEC.BAT. As I mentioned, one can put AUTOEXEC.BAT
|
||
elsewhere and even COMMAND.COM but I feel that is carrying things too far.
|
||
In fact, I even have a startup.bat file of the type I'll describe there but
|
||
the point is to keep that directory thin and to complain bitterly about
|
||
software so inconsiderate that it forces you to place it in the root
|
||
directory. My point in mentioning this here is that I'm about to discuss
|
||
device drivers which many people put in the root directory. If you like to
|
||
be organized, I recommend you make a directory for device drivers (mine is
|
||
called \BIN\DEVICES). Another option is to put the drivers in different
|
||
directories with each driver in with related files so, for example, the
|
||
drivers that come with DOS are kept in the same directory as the other DOS
|
||
programs or the mouse driver is with the other mouse software.
|
||
|
||
Device drivers
|
||
|
||
There are a group of programs which are made permanently resident and which
|
||
are loaded as part of the CONFIG.SYS. Virtually any resident program can
|
||
be produced in this format but certain ones must be of this form. Typically,
|
||
console drivers and any program which controls "a device" must be loaded now.
|
||
Most virtual disks and print spoolers also are loaded as device drivers.
|
||
While device drivers are programs, they need not have the extension "com" or
|
||
"exe". In fact, so far as I can tell their extension can be anything you
|
||
wish. Nevertheless virtually all commercially available device drivers have
|
||
the extension "sys". Some drivers are available with the extension "dev".
|
||
The syntax for loading a device driver in your CONFIG.SYS is:
|
||
|
||
device=<path><name><parameters>
|
||
|
||
so if you have a device foo.sys in the directory \bin\devices of drive C: and
|
||
it will take a numeric parameter to set the size of some buffer, you might
|
||
load it with:
|
||
|
||
device=C:\bin\devices\foo.sys 128
|
||
|
||
Note that it is essential to include the extension "sys" or else you will get
|
||
an error message "bad or missing foo". The drive letter C: is not required
|
||
but it can't hurt and I know of one person who claimed the device driver on
|
||
her machine couldn't be found without it. The question of which parameters
|
||
a given device driver allows or whether it allows any at all depends on the
|
||
driver and should be dealt with in the documentation for the program in
|
||
question. For the drivers ANSI.SYS and VDISK.SYS which come with DOS, I note
|
||
that the former takes no parameters while the latter takes parameters
|
||
explained in the DOS manual. DOS 3.2 comes with a third driver called
|
||
DRIVER.SYS while some versions of MSDOS 3.2 comes with an alternate ram disk
|
||
called RAMDRIVE.SYS. Both take parameters.
|
||
|
||
Examples of Device Drivers: the default drivers
|
||
|
||
I will not attempt to describe all available device drivers since there are
|
||
so many. For example, Chris Dunford, one of the sysops of Compuserve has
|
||
written public domain programs which installs "devices" to control screen
|
||
blanking (BURNDEV) and another allowing you to send control sequences easily
|
||
to your speaker (SPKR). These represent examples where a real "device" is
|
||
installed. A device is a virtual file which can typically be written too
|
||
and read from. The most common example is "con" which you typically read
|
||
from when you issue the command "copy con filename". Devices can only be
|
||
installed via the CONFIG.SYS. Despite the name, the device command can load
|
||
other programs which do not control devices and physical "devices" may not be
|
||
devices in the sense of setting up a virtual file. A mouse is a good example
|
||
of something which is not a device in this technical sense.
|
||
|
||
The hidden file IBMDOS sets up several devices even if you have no CONFIG.SYS:
|
||
con, prn, aux, lpt1, lpt2, lpt3, com1, com2. Con (short for console) is a
|
||
combined keyboard/monitor device, prn for printer is by default a name for
|
||
lpt1 and aux a name for com1. The DOS mode command allows reassignment of
|
||
these devices. LPTn and COMn are names for the parallel and serial ports on
|
||
the computer. These device names are assigned even if you don't have the
|
||
full complement of ports.
|
||
|
||
Examples of Device Drivers:Console Drivers
|
||
|
||
The most common device driver to install is a console driver which replaces
|
||
the default console driver. Some of these replacements attempt to address
|
||
the notoriously slow display speed of the monitors and/or the annoying
|
||
flicker on the color graphics display. In addition, some of the escape
|
||
sequences of the 1977 console standard of the American National Standards
|
||
Institute (ANSI) are implemented. These sequences include ways of controlling
|
||
colors, cursor position and some DOS level keyboard macros. (They are
|
||
described in my article ANSI.ART). One console driver of this type called
|
||
ANSI.SYS is supplied with DOS and takes about 2K of resident memory. It does
|
||
not address the speed of display issue but it does implement several ANSI
|
||
escape sequences. There are numerous programs which assume the ANSI.SYS is
|
||
installed to operate properly (as well as a few that don't work properly if
|
||
ANSI.SYS is installed!) so it is wise to install ANSI or an equivalent driver
|
||
even if you do not want to use its features yourself. Actually, it is not
|
||
hard to use the driver at the DOS level to set colors, set up a fancy prompt
|
||
or redefine keys.
|
||
|
||
There are several alternatives available to ANSI.SYS which you might want to
|
||
consider. NANSI.SYS is a public domain program which speeds up scrolling
|
||
(when combined with RAW mode by a factor of about 2) and provides some
|
||
additional ANSI escape commands at a cost of only 3K of RAM. FANSI CONSOLE
|
||
and TALL SCREEN are two commercial programs (listing for $75 and $49
|
||
respectively) taking much more memory (around 60K with a reasonable amount
|
||
of screen save memory) providing many more services: faster scrolling
|
||
(FANSI only), screen blanking (FANSI only), DOS command line editing and
|
||
recall (TALL SCREEN ONLY), screen memory and keyboard enhancements as well
|
||
as additional features. While it is most natural to control scrolling by a
|
||
device driver, there is at least one commercial com program which takes over
|
||
the console by a different method and speeds up scrolling my a factor of six or
|
||
more (FLICKER FREE). I am quite happy with FANSI but I have friends whose
|
||
computer taste I trust using both NANSI and TALL SCREEN so the choice is not
|
||
clear. And FLICKER FREE is an intriguing program whose second release (which
|
||
will support the EGA) I eagerly await.
|
||
|
||
Examples of Device Drivers:Other drivers
|
||
|
||
If you have a Lotus/Intel/Microsoft EMS board or AST EEMS board, you will
|
||
need to load a device driver to access this extended memory. Often the
|
||
command will require various parameters to specify the amount of memory being
|
||
set aside and various items like the region of conventional memory used for
|
||
swapping and the port number to use. Be warned if you are setting up a
|
||
CONFIG.SYS file for the first time that you may already have a CONFIG.SYS
|
||
file which was made for you when you installed the EMS software that came
|
||
with your board. Since this likely has the correct parameters, you should
|
||
make your own CONFIG.SYS file by starting with this one and continuing from
|
||
there. It is possible that you will need to load the EMS driver before
|
||
anything else. I can report that if I try to load FANSI-CONSOLE on my AT
|
||
before the EMS driver that Intel supplies with my Above Board AT, the EMS
|
||
driver refuses to load and gives me the error message that my machine is
|
||
"not a close enough AT compatible"! Also be warned that while there is an
|
||
EMS "standard", this refers to the way EMS works once the driver that comes
|
||
with your board is installed. More likely than not, drivers from different
|
||
companies are incompatible and if you need a second EMS board, it will have
|
||
to come from the company that supplied your first (this warning does not
|
||
apply to extended memory on the AT but only to expanded EMS memory).
|
||
|
||
Some older hard disks are not self booting and require a device driver loaded
|
||
in your CONFIG.SYS but that is not so common any more. DOS 3.2 has a program
|
||
called DRIVER.SYS which is a device driver to initialize external 3.5 inch
|
||
drives if you have one on an XT or AT. By far the most common drive device
|
||
driver is to operate a RAM disk, that is a segment of RAM set aside as a fast
|
||
virtual disk. There are com files loaded after the CONFIG.SYS which set up
|
||
such drives but generally it is more sensible to use a device driver for this.
|
||
DOS 3.x comes with a program VDISK.SYS to set up a RAM disk. This disk can
|
||
operate in conventional or AT extended memory. It will not set up a RAM disk
|
||
in EMS memory but most EMS boards come with device drivers to set up RAM disks
|
||
in EMS. In addition Microsoft WINDOWS comes with a RAM disk device driver
|
||
(which can be run independently of WINDOWS) and which can be set up in
|
||
conventional, AT extended or EMS memory. Given Microsoft's experience and the
|
||
care they have lavished on WINDOWS, I'd recommend using the WINDOWS RAM disk
|
||
driver if you have it in preference to alternatives and, in particular to
|
||
VDISK which also comes from Microsoft. However, if you are loading other
|
||
programs that use AT extended memory, you may want to stick with VDISK
|
||
because the specification that IBM uses to access AT extended memory is
|
||
published while that of Microsoft is not and so other programs may clobber
|
||
the Window's RAM DISK driver. If you want to set up more than one RAM disk,
|
||
you can include more than one line loading a RAM disk driver in your
|
||
CONFIG.SYS file. You can normally load the same driver twice or use different
|
||
driver if you prefer. Be warned that there is typically a few K overhead in
|
||
conventional memory to load a RAM disk and you will pay this overhead more
|
||
than once if you load more than one RAM disk.
|
||
|
||
Print spoolers set aside some memory to receive printer output and then send
|
||
that output to your printer as a background process. I regard them as a
|
||
tremendous productivity tool. While there exist print spoolers loading as com
|
||
files, many are loaded as device drivers.
|
||
|
||
The Microsoft Mouse requires software to install it so your system will
|
||
recognize the mouse. The mouse comes with two versions of this software:
|
||
MOUSE.SYS which is loaded as a device driver in your CONFIG.SYS and MOUSE.COM
|
||
which is loaded later, typically in your AUTOEXEC.BAT. I do not believe
|
||
there is any particular reason to prefer one over the other. Microsoft
|
||
recommends using the device driver on all systems but the 3270 machines. If
|
||
you are using Software Carousel, you'll want to use the com file in various
|
||
partitions rather than the device driver.
|
||
|
||
As you may know you can place remarks in your BATch files and in particular
|
||
in your AUTOEXEC.BAT. This is useful if you want to temporarily run your
|
||
system without some resident program that is usually loaded in your
|
||
AUTOEXEC.BAT file. You need only "remark it out", i.e. add the phrase "REM"
|
||
at the beginning of the line including it. Technically, remarks are not
|
||
allowed in CONFIG.SYS files. If you insert the word "REM" at the start of a
|
||
line in your CONFIG.SYS file you will get the message:
|
||
|
||
Unrecognized command in CONFIG.SYS
|
||
|
||
However, since the rest of the line is not acted on, this procedure will have
|
||
the desired effect of "commenting out" the line in question so you should not
|
||
hesitate to use it.
|
||
|
||
ECHO also doesn't work in CONFIG.SYS so there is no direct way of placing
|
||
messages on the screen during the loading of the CONFIG.SYS However, there
|
||
is a public domain program called COMMENT.SYS which allows you to echo
|
||
comments to the screen via:
|
||
|
||
device=path\comment.sys <message>
|
||
|
||
There is no stay resident part of comment.sys so you don't waste memory, only
|
||
time, by using it. If you are a color freak, you can first load an ANSI
|
||
compatible console driver and then use COMMENT.SYS to send color setting
|
||
escape sequences to the screen and so see most of your bootup in living color!
|
||
|
||
The FILES command
|
||
|
||
DOS is a prisoner of its past. Original IBM PC's came with only 16K of
|
||
memory (!) so when DOS boots up it sets aside memory for various purposes in
|
||
an incredibly frugal manner. The defaults for three regions of memory set
|
||
aside for file handles, disk buffers and environment are woefully inadequate.
|
||
If you know what you are doing, it is easy to change these defaults but it's
|
||
unfortunate that the novice gets stuck with these small values. In any event,
|
||
FILES and BUFFER commands are among the most important for you to include in
|
||
your CONFIG.SYS. When DOS opens a file, it keeps certain information in
|
||
memory to be able to quickly access the file. This information is called a
|
||
file handle. During bootup, memory is put aside for these file handles so a
|
||
limit is placed on the number of files that can be open at one time. The
|
||
default is eight which may seem adequate since programs normally close files
|
||
when they are done allowing the file handles to be reused. However, eight is
|
||
often not adequate. DOS uses four of the handles itself for "files" like con
|
||
and prn. Thus there are four available for your programs. Some resident
|
||
programs leave files open and even the ones that don't, may need to open a
|
||
file for an initial access at the same time that an application program have
|
||
several files open. Database programs often have separate index and data
|
||
files and typically may want to have more than four open files. If DOS is
|
||
asked to open a file and a handle is not available, DOS issues an error
|
||
message and the running program may even abort. I strongly recommend that
|
||
you place the line:
|
||
|
||
FILES=20
|
||
|
||
in your CONFIG.SYS file. Indeed since the cost of increasing files is less
|
||
than 40 bytes per handle, you could even use a number larger than 20. For
|
||
most purposes 20 should suffice but ever since it wasn't enough for me in a
|
||
rather specialized situation, I've taken files=30 myself.
|
||
|
||
BUFFERS
|
||
|
||
You may have heard of disk caching. As you've noticed, diskette access is
|
||
very slow and even a hard disk has access times 100 fold grater than RAM
|
||
access times. Disk caching sets aside some RAM to keep a copy of the most
|
||
recently accessed disk information so, for example, if a database is
|
||
continually accessing a disk, the first time the disk is really read but the
|
||
next time the copy in cache memory will be read instead. This is not the
|
||
place to discuss the pros and cons of commercial disk caching software but
|
||
you should know that DOS comes with some free rudimentary disk caching
|
||
included. It keeps N buffers of 512 bytes each with the copies of the last
|
||
N disk sectors accessed. By default N is only two (three on the AT). You
|
||
should certainly make this number larger by including the line:
|
||
|
||
BUFFERS=N
|
||
|
||
in your CONFIG.SYS where recommended values of N are between 10 and 25.
|
||
|
||
Let me tell you an anecdote to show how dramatic a difference this number can
|
||
make. The first time that I ran my tape backup drive to backup my 30 meg
|
||
hard disk, I was bitterly disappointed. Despite what I'd been told by the
|
||
salesman, it took over 45 minutes! The next day, when I thought about it and
|
||
tried again, it took only 8 minutes! What had happened? The first time I
|
||
had been nervous about the effect my many resident programs might have so I
|
||
put an original write protected DOS disk in drive A and rebooted before
|
||
running the backup software. This disk had no CONFIG.SYS so I was running
|
||
with the default three buffers. The next day, I used my regular hard disk
|
||
boot with buffers=20 and that made the difference. I have done some time
|
||
tests comparing something as simple as copying a directory from a hard disk
|
||
to a floppy and I've found that using extra buffers can decrease times by 30
|
||
or 40 percent. So USE YOUR FREE DISK CACHING.
|
||
|
||
The issue of precisely how many buffers to take is not an easy one.
|
||
Increasing the number of files handles has little effect on memory or
|
||
efficiency so you can freely take files=99 if the mood strikes you. This is
|
||
not so with buffers. Each buffer takes .5K of RAM so buffers add up.
|
||
Moreover at some point it will take DOS longer to check through all its
|
||
buffers looking to see if a file is there than it would take it to access it
|
||
directly. I've seen the number 25 given as a dividing line but I would like
|
||
to do some tests to check this out. I can only say that I've settled on
|
||
buffers=20 myself and that with a floppy based system, you should take a
|
||
higher figure than you might with a hard disk.
|
||
|
||
Increasing your environment
|
||
|
||
DOS sets up a special section of memory called the environment which has a
|
||
default size of 160 bytes. This area must hold your path, your prompt, the
|
||
place that COMMAND.COM can be found and various other strings. Programs can
|
||
communicate with you by asking you to place information in the environment
|
||
with the SET command. In addition you can keep global variables in the
|
||
environment to pass between BATch files. If you attempt to place more there
|
||
than it has room for you'll get a message "Out of environment space". With
|
||
DOS 3.1 and later there is a CONFIG.SYS command allowing you to increase the
|
||
amount of space reserved for your environment. There are known patches for
|
||
earlier versions DOS which are listed for example in my article on ANSI.SYS.
|
||
The procedure is documented in DOS 3.2 and so presumably it will be a
|
||
permanent feature of DOS. It is undocumented in DOS 3.1. The syntax is:
|
||
|
||
shell=C:\command.com /P /E:nnn
|
||
|
||
where n is the number of bytes you want to set aside for the environment. For
|
||
DOS 3.1 nnn represents the number of 16 byte paragraphs you want to set aside.
|
||
So for a 512 byte environment take nnn=32 in DOS 3.1 and 512 in DOS 3.2.
|
||
Obviously with a floppy based system, replace C: by A:
|
||
|
||
How much space do you need for your environment? That depends on your path,
|
||
applications and how fancy a prompt you make. My advice is to do nothing
|
||
until you have a problem at which point you should remember that there is
|
||
something that you can do.
|
||
|
||
For more advanced users, I note that the environment is not as benign as you
|
||
might think. I know of several programs which crashed if there was too much
|
||
in the environment (most of the ones I know about have been fixed) and one
|
||
that crashed if the PATH was the last thing set in the environment. I have
|
||
occasionally been baffled at what could be causing a conflict only to discover
|
||
the culprit was the environment.
|
||
|
||
Miscellaneous CONFIG.SYS commands
|
||
|
||
There are some other commands that can go in your CONFIG.SYS:
|
||
|
||
-You can turn BREAK ON that is have the operating system check for control C
|
||
more often than just during disk I/O. This slows down certain processing
|
||
but gives you more safety from certain kinds of dead ends. The syntax is
|
||
a line saying:
|
||
|
||
BREAK=ON
|
||
|
||
Unlike any other CONFIG.SYS command, this one can also be issued from the
|
||
DOS command line or in your AUTOEXEC.BAT file.
|
||
|
||
-In addition to file handles, DOS has something called file control blocks
|
||
which in DOS 3.x can be changed by an FCBS command. These are needed only
|
||
if you have a LAN (local area network) and the parameters to take should be
|
||
discussed by your LAN software.
|
||
|
||
-DOS 3.2 has a STACK command. From what I've read this is a real cludge and
|
||
the manual seems to suggest that it was added at the last minute to solve a
|
||
problem connected with a new way that DOS 3.2 treats the stack. In any
|
||
event, if you use DOS 3.2 and seem to have unexplained crashes, try adding:
|
||
|
||
STACK=20
|
||
|
||
to your CONFIG.SYS.
|
||
|
||
-DOS 3.1 and later allows you to use the SUBST command to assign drive letters
|
||
to directories. In addition, with several RAM disks you may want to assign a
|
||
letter beyond the default last drive of E. DOS 3.x allows you to add a
|
||
command:
|
||
|
||
LAST DRIVE = ?
|
||
|
||
where ? is a letter and then you can assign any drive up to and including
|
||
that letter. Even a last drive=z only takes about 1K of RAM.
|
||
|
||
-There is a COUNTRY command to control things like the time format. The
|
||
default is USA.
|
||
|
||
One final remark about your CONFIG.SYS. The order of the commands is
|
||
irrelevant except to the extent that certain device drivers like to be loaded
|
||
before others (and if you are loading two RAM disks of different sizes you
|
||
may care which is assigned which letter). As with most DOS commands the
|
||
syntax is not case sensitive.
|
||
|
||
As a review of what a CONFIG.SYS can contain, let me list the CONFIG.SYS from
|
||
one of my machines which is running DOS 3.2:
|
||
|
||
break=on
|
||
buffers=20
|
||
device=C:\bin\intel\emm.sys M3 I5 D
|
||
device=C:\bin\devices\fconbeta.dev /C=1/S=2000/H=0/V=0/R=200/L=1/W=1
|
||
device=C:\bin\devices\ramdrive.sys 1024 512 128 /A
|
||
device=C:\bin\devices\ramdrive.sys 1300 512 64 /E
|
||
device=C:\bin\devices\atqlpt1.sys 1644,1,3
|
||
device=C:\bin\devices\mouse.sys
|
||
files=30
|
||
lastdrive=z
|
||
shell=C:\command.com /P /E:512
|
||
|
||
What should your AUTOEXEC.BAT contain?
|
||
|
||
Most of my AUTOEXEC.BAT file loads my own particular blend of resident
|
||
programs. This is not the place for me to advise you on what resident
|
||
programs you might want to put into your system but I would like to make some
|
||
comments about DOS and general aspects of what goes into your AUTOEXEC.BAT file.
|
||
|
||
First, if you have very many resident programs, they may have conflicts and
|
||
you must be prepared to permute the order of loading which often cures some
|
||
or all of the conflicts. For technical reasons I won't go into here it really
|
||
does pay to listen to SIDEKICK's demand to be loaded last although you need
|
||
not take all the other Borland program demands quite so seriously.
|
||
|
||
In addition to loading a stable of resident programs your AUTOEXEC.BAT can
|
||
contain some of the following:
|
||
|
||
-a VERIFY ON command. This slows down copying because DOS checks that the
|
||
copy at least has consistent CRCs; this is not the same as comparing after
|
||
copying but it is a fairly good check. Only several compensating errors
|
||
could pass this test after an incorrect copy.
|
||
|
||
-set a PROMPT. At a minimum use:
|
||
|
||
prompt=$p$g
|
||
|
||
Mine uses ANSI.SYS to set colors and place the path and date on the bottom
|
||
line of my screen.
|
||
|
||
-set a PATH. If possible, keep your path short since every time you type in
|
||
a bad command, DOS will have to read every directory in the path before
|
||
responding "Bad command or filename". Also try to list the path in the
|
||
order of how many times you expect to access a given directory. That is
|
||
place the directories you call most often early in your path. If you have
|
||
a RAM disk, place its directories first in the path. If you have a
|
||
relatively large RAM disk, think about copying your BATch file directory and
|
||
the programs you call often to that RAM disk and place that RAM disk first
|
||
in your path.
|
||
|
||
-If you have a large RAM disk, consider copying COMMAND.COM to it and placing
|
||
the command:
|
||
|
||
SET comspec=D:\command.com
|
||
|
||
in your AUTOEXEC.BAT (assuming D: is your RAM disk). Even without a large
|
||
RAM disk, it is worthwhile to do this on a floppy based system. What the
|
||
command does is tell DOS to look there when it needs to reload COMMAND.COM
|
||
(large programs will overwrite a part of COMMAND.COM and when they exit, DOS
|
||
will try to reload COMMAND.COM. With the above command, you'll no longer
|
||
get "Place a disk with command.com in drive A: and hit any key to continue".)
|
||
|
||
-It really is important to put the proper date and time in your system. Be
|
||
sure to include the DATE and TIME commands or else be sure to get a clock
|
||
and place the appropriate commands setting the system time from the clock
|
||
into your AUTOEXEC.BAT file.
|
||
|
||
-if you want to keep track of how often you boot, keep a record in a
|
||
convenient directory. Make a file called junk consisting only of a carriage
|
||
return line feed and include the lines:
|
||
|
||
date >>directory\logon <junk
|
||
time >>directory\logon <junk
|
||
|
||
You will then get the lines:
|
||
|
||
Current date is Wed 7-23-1986
|
||
Enter new date (mm-dd-yy):
|
||
Current time is 16:29:22.70
|
||
Enter new time:
|
||
|
||
for each time you bootup. With CED, EBL or some other programs you can get
|
||
this record in a more elegant fashion without the "Enter new ..." lines.
|
||
|
||
Speed and Memory tips
|
||
|
||
Some final remarks about tricks to minimize memory usage and speedup your
|
||
bootup procedure. When DOS loads any program it saves a copy of the current
|
||
environment in memory, one copy for each program. It doesn't force the copy
|
||
to be as large as the empty space that you've set aside via a shell command
|
||
but only to keep in full the present value of all environmental variables.
|
||
Thus you can save memory by keeping the environment small while your
|
||
AUTOEXEC.BAT file is loading your resident programs. Two variables are always
|
||
present: path and comspec. I start my AUTOEXEC.BAT file with a line:
|
||
|
||
Path=A
|
||
|
||
This is incorrect syntax and gets ignored when the path is needed. I have to
|
||
be sure to put down full path names of all the programs that I load but that
|
||
speeds processing any ways. I reset the path and set the prompt at the end of
|
||
my AUTOEXEC.BAT after I've loaded my resident programs. Given my fancy
|
||
prompt, I save almost 200 bytes per resident program from what would happen if
|
||
I set my path and prompt at the beginning of my AUTOEXEC.BAT. In total I
|
||
save several K of RAM: not a lot but every little byte helps.
|
||
|
||
BATch files are read by DOS a line at a time so BATch files really do get
|
||
processed much faster from a RAM disk than from a floppy. There is a smaller
|
||
difference between a hard disk and a RAM disk. If you have a RAM disk and a
|
||
floppy based system, it is well worth your while to place what would have been
|
||
your AUTOEXEC.BAT in a file called startup.bat and have your AUTOEXEC.BAT read:
|
||
|
||
copy startup.bat C:
|
||
C:startup.bat
|
||
|
||
assuming your RAM disk is C:. To conserve space, you can have the last line
|
||
in startup.bat say:
|
||
|
||
erase C:startup.bat
|
||
|
||
You'll get a "batch file missing" error message but other than that the method
|
||
will work perfectly. This procedure can also be used on a hard disk. The
|
||
savings when I did it on my hard disk was two seconds out of about 65 so you
|
||
may not feel it is worth your while.
|
||
|
||
You can slightly speed up processing of BATch files especially from floppies
|
||
by using the FOR...IN...DO command to combine several commands in one line.
|
||
For example, if you want to copy \bin\batfiles, \bin\dump and \bin\opsys to
|
||
your RAM disk you might try:
|
||
|
||
for %%a in (\bin\batfiles \bin\dump \bin\opsys) do copy %a C:\ >nul
|
||
|
||
if C: is your RAM disk. This can actually cut about 10% off a long
|
||
AUTOEXEC.BAT file. Several warnings are in order. First, FOR...IN...DO parse
|
||
the list at spaces so you can't combine commands which have parameters in this
|
||
way. Secondly, I strongly recommend against using this device to load
|
||
resident programs particularly if you plan to use Kokkenen's MARK/RELEASE
|
||
package.
|
||
|
||
Summary
|
||
|
||
By using your CONFIG.SYS and AUTOEXEC.BAT files you can personalize many
|
||
aspects of your PC.
|
||
|
||
-----------------------------------------------------------------------------
|
||
Then downloaded from The Cave BBS (Wellington) for the library of
|
||
The Pinnacle Club (Auckland)...................................B.
|
||
----------------------------------------------------------------------------- |