The OS/2 CONFIG.SYS file is longer than any DOS equivalent that 
I've ever seen and I'm sure most user's will agree with me on 
this assessment. Although the file largely remains an intrigue to 
the average OS/2 user, it doesn't have to be. Therefore, I have 
undertaken the responsibility of listing most of the generic 
lines the user is likely to encounter when installing OS/2 on 
his/her system for the first time. I would also like to add that 
the lines included per CONFIG.SYS file are largely dependent on 
the system setup. What I have listed here is perhaps a model to 
provide a general understanding of the OS/2 CONFIG.SYS file. 

by IDORENYIN UYOE , DAYVM2  X640659


IFS=C:\OS2\HPFS.IFS  /CACHE:256 /CRECL:4 /AUTOCHECK:CD
IFS=C:\OS2\CDFS.IFS /Q

The IFS statements in the OS/2 CONFIG.SYS file are for 
installable file systems such as HPFS, CD-ROM and networking 
support.  Installable File System (IFS) drivers load code and 
manage other storage media with file systems other than FAT 
(File Allocation Table). If you are using IFS for another file 
system other than FAT, the syntax is:

IFS=DRIVE:\PATH\FILENAME,SWITCHES. There are three switches 
available for use with this parameter

/CACHE:nnn      Defines the amount of RAM to use for caching 
                the file system. The default is 64 (which is            
                usually inadequate). If you have about 8 MB of RAM, set the 
                cache to anywhere between 384 and 512. Above 
                512, the gain tapers off, but performance still improves until
                you go beyond 1.5 MB. If you don't specify a cache 
                amount, then the default is 10% of installed RAM.

/CRECL          Working with the /CACHE parameter, the /CRECL 
                specifies the threshold record size of reads into 
                cache in multiples of 2K. The default is 4K, and must be 
                specified in 2K multiples, up to a maximum of 64K.

/AUTOCHECK:XX   This setting tells OS/2 to automatically run 
                CHKDSK on the specified drive letters XX, if the 
                system was not shutdown properly. This parameter is crucial 
                because of OS/2's extensive use of Extended Attributes (EA's),
                which are files set aside for each file with  
                information such as file type, icons, program settings, 
                and other OS/2 related information. If the system is 
                shutdown improperly, these EA's may be corrupted or damaged, 
                CHKDSK will inform the user of such damage, and 
                often times provide a means for recovering trashed EA's. 



In addition to HPFS, the other common file system type is the 
CDFS. This is required in order for CD-ROM drives to be visible 
to the Workplace Shell, as well as all DOS and OS/2 sessions, 
automatically. The /Q parameter sets the CDFS to quiet mode, 
which loads the driver without displaying any messages during 
startup. The installable file system still requires you have a 
supported hardware driver for your CD-ROM and supported SCSI 
or other interface card.

If you are using only FAT partitions, then you can REM out this 
statement to save about 500K, and activate the DISKCACHE= line.


PROTSHELL=C:\OS2\PMSHELL.EXE

The PROTSHELL line loads the OS/2 interface program, 
PMSHELL.EXE, which allows  full screen window sessions to work. 
The current (default) interface program is the Workplace Shell 
(WPS). However you can load an alternate interface (such as 
Dashboard for Windows), and use it instead of the PMSHELL.EXE 
default. For instance, if the user decides to use the Windows' 
3.0 interface for OS/2 instead of the WPS, you would need to 
change the OS2.INI file to WIN_30.RC. See the OS/2 User's Guide 
for further details. If this line is absent, OS/2, by default 
loads its command processor, CMD.EXE, which only enables you to 
use OS/2 from the command line.


SET USER_INI=C:\OS2\OS2.INI

Tells OS/2 the name and location of the file that contains your 
desktop setup information and the options saved from OS/2 
applications which need to do so. OS2.INI is the default file. If 
you wish to transfer your current desktop settings to another 
machine, this is the file you would need to copy.


SET SYSTEM_INI=C:\OS2\OS2SYS.INI

Tells OS/2 the name and location of its INI file, OS2SYS.INI. 
OS2SYS.INI tells OS/2 what kind of equipment your system uses. 

NOTE:   OS2.INI and OS2SYS.INI are critical files to the proper 
        operation of OS/2 and should not be deleted or modified.  These 
        files are not in the ASCII file format and therefore cannot be 
        repaired with an ASCII editor if they should become damaged. 
        Both of these files remain open the entire time OS/2 is booted 
        and operational and only closes upon shutdown.  If it should 
        become damaged, or corrupt, the MAKEINI.EXE  program that ships 
        with OS/2, located in the \OS2 directory, can be used to easily 
        build a new set of INI files. You will need to boot from a floppy 
        drive to do so.  Alternatively, you may hold down the ALT + F1 
        key sequence when booting your machine. This too will reset your 
        desktop back to its default state. 


SET OS2_SHELL=C:\OS2\CMD.EXE
SET COMSPEC=C:\OS2\CMD.EXE 

OS2_SHELL defines the application to use as the command line 
interface program on boot up. While OS/2 actually uses the 
OS2_SHELL setting, the COMSPEC setting is provided for any 
applications that look for this setting in order to find the 
location of the command processor. It is advisable to leave the 
COMSPEC line in the CONFIG.SYS to allow OS/2 1.XX apps to find 
this information.


SET RUNWORKPLACE=C:\OS2\PMSHELL.EXE

This statement points to the program that is desired to be run 
as the user interface. The default is the Workplace Shell. This 
setting is provided in case you decide to use a third party 
shell as a replacement, or use the command-line program as the 
shell (CMD.EXE). This would allow you to start other processes 
and still perform multitasking without the overhead of the 
Workplace Shell. To disable the WPS, the line would resemble:

        SET RUNWORKPLACE=C:\OS2\CMD.EXE.

        Much of the power of OS/2 is lost when you do this since 
        the muscle of the WPS is unavailable, but it can be 
        efficient for specialized tasks.


SET AUTOSTART=PROGRAMS,TASKLIST,FOLDERS,CONNECTION

When the Workplace Shell initializes, it examines this line to 
determine which portions of the shell to initialize. There are 
four parameters that you can specify:

PROGRAMS:       This controls whether application programs that were 
                running when you last shutdown the system are restarted. 

(NOTE:          Removing the PROGRAMS parameter causes the WPS to open 
                every object type, except application programs, that were open
                when you performed a shutdown).

FOLDERS:        This parameter opens the desktop folder. Because the  
                Workplace is a work area, all other Workplace folders, objects
                or applications that were running at shutdown restart as well.

TASK LIST:      This setting enables the OS/2 Task List (or Window List).

CONNECTIONS:    This parameter restores any network connections 
                in use the last time you shutdown OS/2 2.1.


SET RESTARTOBJECTS=YES

This line is interesting, important, and undocumented. A feature 
of the Workplace Shell is to reopen all the folders, programs, 
and objects that were running the last time you shutdown OS/2. 
This ensures that your system starts in the same state it was 
in when you ended your last session. By default there is no line 
within the CONFIG.SYS file to control this option. If this line 
were included, it would be stated as above. The user therefore 
has the option of including this line, and specifying the 
following RESTARTOBJECTS options:

YES                   This is the default. This automatically restarts any 
                      objects that were running at the time of system shutdown.

NONE or NO            This prevents any applications or objects (other than the
                      Desktop folder) from starting when the Workplace Shell 
                      initializes.

STARTUPFOLDERSONLY    Start objects only in the Startup folder.

REBOOTONLY            Starts objects or programs if the Workplace
                      Shell was not properly shutdown (i.e. from a 
                      Ctrl-Alt-Del, or power interruption to the system). This
                      parameter can be used in conjunction with any of the
                      other parameters.

NOTE:                 If you have a program running when you shutdown the 
                      system, and also have the same program defined in the 
                      startup folder, you'll have two copies of the same 
                      program running when you restart your system. If you do 
                      not correct this problem, you will have three copies of 
                      the same program running the next time you restart and 
                      so on. You can avoid this by using the 
                      RESTARTOBJECTS=STARTUPFOLDERSONLY setting to prevent
                      automatic restart.


LIBPATH=.;C:\OS2\DLL;C:\OS2\MDOS;C:\;C:\OS2\APPS\DLL;

This command tells OS/2 where to search for special runtime 
libraries called, Dynamic Link Libraries (DLLs), for system and 
application usage. Normally when the operating system searches 
for files, it starts with the current directory, and then 
proceeds in sequence through the listed path, or DPATH for data 
files, until it finds the desired file. LIBPATH does not 
automatically search the current directory, hence, the (.;) is 
placed as the first entry in the LIBPATH statement as shorthand 
method of referring to the current directory.

SET PATH = C:\OS2;C:\OS2\SYSTEM;C:\OS2\MDOS\WINOS2;C:\OS2\INSTALL;
C:\;C:\OS2\MDOS;C:\OS2\APPS;

Similar to DOS, this line sets the directories that OS/2 will 
search to find any executable files, typically files ending in 
COM, EXE, CMD, and BAT. List of directories in the path need to 
be separated by a semi colon.

SET DPATH = 
C:\OS2;C:\OS2\SYSTEM;C:\OS2\MDOS\WINOS2;C:\OS2\INSTALL;C:\;C:\OS2\BITMAP;
C:\OS2\MDOS;C:\OS2\APPS;


This OS/2 command tells OS/2 where to look for data files. As 
with the PATH statement, DPATH searches directories in the 
order listed, beginning with the current directory.


SET PROMPT=[$p]

This environment variable controls the OS/2 protected mode 
prompt string. If the prompt is in the AUTOEXEC.BAT file, it will 
control the prompt for that specified DOS session. The prompt 
setting is relatively flexible, and can be used to display text 
and symbols, per user customization. Since special symbols are 
reserved for operating system use, the user needs to use 
special codes to display those characters. The following table 
lists all of special codes that can be used with the prompt 
setting:

OPTIONS INCLUDE:

CHARACTER               DESCRIPTION

$A                              &
$B                              |
$C                              Open parenthesis symbol (
$D                              Current system date
$E                              ASCII code 27 (escape) so you can work with 
                                ANSI commands to screen
$F                              Closed parenthesis symbol)
$G                              The greater than > symbol
$I                              The default OS/2 line 0 prompt; Displays 
                                help line at top of Window
$N                              Default drive letter
$P                              Current disk and directory
$Q                              The = character
$R                              The numeric exit code from last command
$S                              The space character
$T                              System  time
$V                              Displays the OS/2 version number
 -                              CR/LF (go to beginning of new line)


SET HELP=C:\OS2\HELP;C:\OS2\HELP\TUTORIAL;

Tells OS/2 where to search for an application's help file, 
usually ending in HLP. The list of directories to be searched 
are separated by a semi colon.

SET GLOSSARY=C:\OS2\HELP\GLOSS;

This command tells OS/2 where the OS/2 glossary, WPGLOSS.HLP, is 
located. If you remove the glossary program, you can remove this 
line from the CONFIG.SYS.


SET DIRCMD=/O:-D /P

This command sets the environment variable for the DIR command. 
When you run DIR, OS/2 appends the DIRCMD setting to your DIR 
command. For instance 

                SET DIRCMD=/O: -S /P
                
                Tells OS/2 to display the DIR information in reverse 
                Order, the file sizes from largest to smallest.

This is for OS/2 only.  Set the DOS default in your AUTOEXEC.BAT 
file. Options include:

/A      list files with specific attributes.  E.g. /AH list only hidden 
        files.  Other options are S A & R.
        If you place a negative (-) sign in front of your specified 
        attribute, all files will list except those with the attribute
        specified.  E.g. /A-H-S will display all files except hidden and 
        system files.

/B      list directories and files without heading and summary 
        information.

/F      list files with the full drive and path information. Date, 
        time and size are omitted.

/L       displays information in lowercase.

/N      lists files on a FAT drive in the same format used for a 
        HPFS drive, i.e. date, time, size, name.

/O      list files according to sort option specified.  Sort options are:


                N = alphabetize by file name
                -N = reverse-alphabetizes by name
        
                E = alphabetize by extension
                -E = reverse-alphabetizes by extension

                D = by date, oldest first
                -D = by date, newest first

                S = by file size, smallest first
                -S = by file size, largest first

/P      pauses after each full screen of files listed.

/R      displays long file names if applicable.

/S      searches and displays all directories.

/W      displays file names across the screen.  Date, time and size 
        are not included


PRIORITY=DYNAMIC

This parameter controls OS/2's pre-emptiveness. The default is 
DYNAMIC, which lets OS/2 change the priority of different tasks. 
If you're running an application that depends on critical timing, 
such as one that gathers real time data, you should change this 
setting to ABSOLUTE. This will prevent the operating system from 
changing the priority level of a task to ensure that it gets a 
chance to run. If one application has a much higher priority 
than all other tasks, the ABSOLUTE setting gives the application, 
not the operating system, control of the CPU. For all but critical 
timing situations, leave the PRIORITY setting to DYNAMIC.

PRIORITY_DISK_IO=YES

This statement specifies whether or not the active application 
running in the foreground should receive a priority boost for 
the file input and output. The default is PRIORITY_DISK_IO = YES. 
Normally, this will give you the best performance and throughput. 
There are instances where the time - critical applications would 
be adversely affected by another application receiving file 
priority throughput. If this is the case, you would set the 
parameter to NO.


TIMESLICE=XX,YY

This command controls the maximum and minimum amounts of time 
an execution thread can be active before it gives up the CPU to 
another thread. The first values XX, sets the minimum number of 
milliseconds a thread gets, and the second values, YY, sets the 
maximum amount of time. The bare minimum is 32 ms and the 
maximum is 65,536 ms. The only rule is that maximum settings 
must be higher than minimum. If you usually run more 
applications than your system has RAM for, your system will 
waste a lot of processor time paging data to disk. Studies by IBM 
and others have shown that the best values for this parameter 
are 64, 128.


FILES=40

This setting determines the maximum number of files that any 
DOS session can have open at any one time. The maximum is FILES 
= 255. This statement has no impact on OS/2 sessions. OS/2 
sessions can automatically have up to 64,000 files open at once.


DEVICE=C:\OS2\TESTCFG.SYS

TESTCFG.SYS was a new device driver introduced in OS/2 2.0 and 
continued in 2.1. This driver is used during the install process 
to test the system configuration. This DEVICE statement should 
not be removed from the CONFIG.SYS file as it is also used by 
the selective install and device driver installation.


DEVICE=C:\OS2\DOS.SYS

This line is used to communicate between DOS and OS/2 apps 
running on the same machine. It is also used on a dual boot 
system to automatically set up your hard drive to boot DOS. The 
DOS.SYS driver also enables the dual boot program, BOOT.COM to 
reboot your system from OS/2.


DEVICE=C:\OS2\PMDD.SYS

This loads the Presentation Manager device driver for drawing 
the desktop. Failure to load this driver will prevent the 
Workplace Shell from initializing.


BUFFERS=30

Sets aside memory for buffering disks requests in 512 - byte 
increments. A buffer is simply a section of RAM that briefly 
holds data on its way from the disk, so that the processor 
always has information available. Increasing this value may 
improve system performance, although increasing it too much can 
cause disk thrashing. Keep in mind that as you increase the 
number, you reduce available memory. 30 is the default, but you 
may wish to experiment with a higher number. Be careful about 
using a lower number.

Note:   Disk thrashing is the heavy disk activity caused by 
        excessive memory paging.


IOPL=NO

The IOPL line determines which OS/2 process can issue direct 
input/output (I/O) instructions. To control how programs interact 
with each other, OS/2 generally requires them to use OS/2's I/O 
services instead of allowing devices to write directly to the I/O 
hardware. When set to YES, the IOPL parameter lets all programs 
that need to circumvent OS/2 and work directly with hardware 
devices, do so. NO means that no program can access the 
hardware directly. You can also specify a list of programs that 
are allowed to work directly with the hardware. For example, 
IOPL=WORD.EXE, MYFILE.COM would allow only these two programs to 
access hardware directly. Programs that need IOPL privileges and 
don't get them will usually generate an error message that tells 
you to add them to the IOPL line.


DISKCACHE=256,LW,64,AC:C:

This command applies to FAT file systems only. The purpose of 
the command is to set up an area of RAM to be set aside for 
disk reads and writes. Caching keeps frequently used data in 
memory so that a program's request's can be fulfilled more 
quickly. And because RAM accesses information faster from 
memory than a hard disk, a RAM cache noticeably speeds up your 
system if you have the memory available. The syntax for this 
command is illustrated below, and the parameters explaining what 
aspects of the system they control follows.

DISCACHE=NN,LW,TT,AC:C

NN:     The amount of RAM set aside for caching in kilobytes.

LW:     This refers to lazy write caching, which is explained below.

TT:     Sets the threshold, in sectors, for file reads into the 
        diskcache.

AC:C    AC means AUTOCHECK. When this command is specified, it 
        performs a CHKDSK on all specified drives during initialization. 
        If you are using a FAT file system, this command sets up a RAM 
        disk cache. The DISKCACHE line noted here sets up a 256K cache 
        with lazy writing enabled. If you don't want lazy write 
        enabled, then remove "LW". The default cache size is 64K, 
        which I feel is too small. If you have the RAM, increase the 
        size to improve system performance. If you want CHKDSK to 
        automatically check your startup partition (usually C), then 
        add this switch to the end of the DISKCACHE command: AC:n where 
        n is yourstartup partition, e.g. AC:C. If you are only using 
        HPFS, then you can REM out this statement.

LAZY WRITING EXPLAINED:

The lazy write capability is available in OS/2 for both the FAT 
and HPFS file systems. Lazy Writing is a way to delay physical 
disk I/O writes until a time when the operation will have little 
impact on the rest of OS/2. The application writes records into 
the cache and regains control immediately. When the disk is not 
busy with other tasks, or when the cache has too many updated 
(also called dirty) blocks in it, the physical I/O will be done 
asynchronously by another processing thread. Lazy Writing can 
improve the performance of write operations by as much as 20% 
to 40 %, depending on the type of I/O and the hardware being 
used. There is, however, an important consideration when using 
Lazy write. With Lazy Write active, any information written to 
disk will be lost in the event of a power failure since the 
information is in "volatile" RAM. For mission critical applications, 
using write through caching instead of Lazy writing is strongly 
recommended, despite the performance gains possible with lazy Write.

MAXWAIT=3

This OS/2 command specifies the length of time, in seconds, a 
process waits before the system assigns it a higher priority. 
The system normally waits for the indicated number of seconds 
before raising the priority of  threads waiting for the 
processor. Depending on system hardware and active programs, 
this command can actually increase overall system performance. 
This line makes sure that no program is eternally put on hold 
while another program exploits the system exclusively. You can 
set MAXWAIT from 1 to 255 seconds.  The default is 3 seconds.


MEMMAN=SWAP,MOVE,PROTECT,COMMIT

This parameter is perhaps one of the most vital settings on 
your system. The MEMMAN parameter is used to control the OS/2 
swapping mechanism. OS/2 has the ability to use hard disk space 
to emulate additional memory. The following parameters explain 
the syntax listed above:

SWAP_SETTING:    Specifying the SWAP option (listed above), 
                 enables memory swapping. Setting to NOSWAP 
                 disables swapping and the user receives
                 no virtual memory support.

MEMORY_SETTING:  Possible options include MOVE and NOMOVE. 
                 Due to programs constantly grabbing and
                 releasing bits of memory no longer needed as they are 
                 running, your memory has the tendency to get fragmented. 
                 Hence, your system may slow down due to this fragmentation.
                 OS/2 overcomes this by consolidating this memory. Setting 
                 this parameter to MOVE  enables this protection. 
                 This parameter. has no function within OS/2 2.X. It is 
                 provided for compatibility with OS/2 1.3.

PROTECT_SETTING: The default setting is PROTECT. This enables protected mode 
                 memory access for certain (Application Program Interface), 
                 API calls. If you wish to disable this function, simply 
                 remove this setting.

PAGING MEMORY:   The new parameter to the MEMMAN statement is COMMIT. This is
                 an optional parameter, and the default is NO COMMIT. OS/2 2.0 
                 introduced the idea of being able to allocate memory without 
                 committing it. The COMMIT parameter forces memory to be 
                 reserved for the SWAPPER.DAT file at the time of allocation. 
                 If there is not enough room on the disks for the SWAPPER.DAT 
                 file to grow, the application will get an error return code 
                 at this stage.  Thus, an application will fail to load because
                 of insufficient memory, rather than failing while running. 
                 Although this works well with 16 bit OS/2 apps, this memory 
                 reservation (also known as backing store) will lead to a very
                 large SWAPPER.DAT file.  IBM recommends that the commit 
                 parameter not be used, unless there is a specific 16- bit
                 application that needs it in order to run.


SWAPPATH=C:\OS2\SYSTEM 2048 4096

As mentioned previously, OS/2 has the ability to use hard disk 
space to emulate memory per application requests. The SWAPPATH 
statement designates the location of the SWAPPER.DAT file, which 
is used for swapping pages of memory out to disks to provide 
virtual memory. The first parameter (2048)  represents MINFREE 
and the second parameter, (4096), represents the INITIAL 
SWAPPER.DAT size. The following explains both the parameters 
listed above in more detail:


MINFREE:     The MINFREE value indicates the maximum size the SWAPPER.DAT 
             file can grow until it reaches this value. If the SWAPPER.DAT 
             file tries to grow into the area specified by the MINFREE amount,
             the user will receive a warning message that the MINFREE area has 
             been broached. At this point, it is advisable the user close some
             open apps, or delete files on the drive where the SWAPPATH is 
             pointing.

INITIAL:     The initial allocation size of the SWAPPER.DAT file at startup. 
             As a rule, if a system has about 6MB of physical RAM, the initial 
             allocation size should be at least 2048 (2MB).  Pre-allocating 
             the right initial SWAPPER.DAT file size is significant because it 
             will reduce disk query and allocation time when the SWAPPER.DAT 
             file has to grow. Pre-allocating the right initial swap space 
             may also aid in reducing disk fragmentation.


BREAK=ON/OFF

This parameter is only valid for DOS programs. If BREAK=ON, the 
system checks more frequently to see if you have pressed 
Ctrl+Break to interrupt a DOS program. Normally, if BREAK is set 
to OFF, DOS only checks for Ctrl+Break during standard I/O 
operations. Setting BREAK=ON slows DOS program processing 
somewhat. This is a command that can be enabled/disabled from 
the DOS command line.


THREADS=256

As you already know, OS/2 has the ability to run multiple 
processes simultaneously. Within each process, threads are the 
actual vehicles for processing used by OS/2. Actual processes do 
not run, but threads do, and each process always has at least 
one thread. The THREADS statement specifies the maximum amount 
of threads which can be created by OS/2 for itself and 
applications. The default is 256 and the maximum value is 4096. 
Since each thread requires memory to maintain it, you may 
consider going down to the minimum 128 if you are constrained on 
memory.


PRINTMONBUFSIZE=134,134,134

This OS/2 command exists more for compatibility with prior 
versions of OS/2. The purpose of this parameter is to set the 
amount of RAM, in bytes, to use in buffering output to the 
printer ports. In a small system, you have to balance buffer 
versus system memory.  The default is 134 for each port, (LPT1, 
LPT2 and LPT3). If data seems to be moving slowly through your 
parallel port, experiment with adjusting this setting to a higher 
value. For instance, to speed up printing on a system with LPT1 
only, this line may resemble PRINTMONBUFSIZE = 1024,0,0. The 
maximum value is 2048 bytes (2K). Note that you still need to 
define a buffer for LPT2 and LPT3 by setting the value to 0, 
even if you don't have these ports installed.


COUNTRY=001,C:\OS2\SYSTEM\COUNTRY.SYS

The COUNTRY setting provides OS/2 with information about the 
country OS/2 is customized for. COUNTRY.SYS defines the set of 
CODEPAGES that can be used for code page switching. The default 
setting is for the United States (001). The following parameters 
are valid for this setting:

nnn:    A three digit value that defines the country in question. 
        This value is typically the same as the three digit 
        international country code used for overseas telephone calls. 
        Please consult your OS/2 manual for a complete list of 
        country codes. Several examples include: 

                United States=001 
                United Kingdom=044
                Netherlands=031
                Portugal=351
                Spain = 031
                France=033
                Germany=049
                and Korea=082.

filename:       Usually COUNTRY.SYS. This is a file that contains 
                formatting information for the specified country.

SET KEYS=ON

This setting enables command line editing within an OS/2 session. 
When this setting is enabled, you can use your arrow keys to do 
the following:

Up arrow:               Scrolls through previous commands
Down arrow:             Scrolls forward through commands
Right/Left arrow:       Moves cursor within current command

An addendum to this command is that if you are using the ANSI 
escape sequences for keyboard remapping, KEYS must be set to 
OFF in order for your macro to work under an OS/2 session. This 
command is similar to the "Doskey" command in DOS.


REM SET DELDIR=C:\DELETE,512;D:\DELETE,512;

Tells OS/2 where to keep deleted files for undeletion, and how 
many deleted files to keep. A separate directory must be 
specified for each logical disk. Installation will add the 
appropriate DELDIR statement to CONFIG.SYS but remarks it out. 
For example, if a data object is dropped on the shredder, the 
object would be copied into the path specified by the SET DELDIR  
statement. Note that the DELDIR facility operates on a per 
partition basis. Any objects deleted from the "C" drive will only 
be saved into the C:\DELETE subdirectory if specified in the 
DELDIR. If you have multiple partitions, you will want to specify 
a delete directory on each partition. To activate the undelete 
feature, you need to remove the REM from the beginning of the 
line. The delete facility uses a First In First Out (FIFO) method 
to determine what is discarded from the delete directory when 
the maximum size is reached.


BASEDEV = DRIVER_NAME

The purpose of the BASEDEV line is to load a base device driver 
in OS/2 on startup. A base driver is needed to get the operating 
system started.  These drivers perform very basic device 
interfacing and are among the first commands in your CONFIG.SYS 
to get loaded, regardless of their position in the file. Notice 
that the BASEDEV commands do not contain a drive, nor path 
information; the system does not know enough to process that 
information at the time these commands are processed. Instead, 
the operating system searches the root directory of the startup 
drive. If the file is found, it is loaded and executed - if not, 
the only other directory searched is the \OS2 directory on the 
same drive. The following is a list of BASEDEV's and their 
function:

BASEDEV           FUNCTION

PRINT01.SYS       Printer support for non-microchannel machines
PRINT02.SYS       Printer support for microchannel machines

IBM1FLPY.ADD      Floppy disk support for non-microchannel machines
IBM2FLPY.ADD      Floppy disk support for microchannel machines

IBM1S506.ADD      Hard disk support for non SCSI disks on non-microchannel 
                  machines

IBM2ADSK.ADD      Hard disk support for non SCSI disks on microchannel machines
IBM2SCSI.ADD      Hard disk support for SCSI disks on microchannel machines

IBMINT13.I13      Hard disk support for non microchannel SCSI adapters

OS2DASD.DMD       General purpose support for hard disks

OS2SCSI.DMD       General purpose support for non disk SCSI devices


SET BOOKSHELF=C:\OS2\BOOK

The BOOKSHELF command tells the OS/2 VIEW command where to look 
for .INF files. An example would be the on-line documentation 
(and any other on-line books) provided by other OS/2 programs. If 
you have multiple .INF files, it's generally a good idea to 
specify different paths for each of your on-line books.


SET EPMPATH=C:\OS2\APPS

The EPMPATH is application specific. It points to the directory 
that contains files and/or subdirectories used by some of the 
productivity applications (in this case, the Enhanced Editor - EPM).


PROTECTONLY=NO

This command allows you to choose between a shared OS/2 & 
DOS/Windows operating environment or an OS/2 only environment. 
In other words, the default NO, lets you run DOS and Windows 
programs under OS/2. Under OS/2, you can run both DOS and OS/2 
programs at the same time. To do this, OS/2 restricts the lowest 
640K in conventional memory to DOS programs. If you want to run 
OS/2 programs only and prevent DOS/Windows programs from 
running, then change this statement in CONFIG.SYS to 
PROTECTONLY=YES. This gives OS/2 access to the lowest 640K, but 
makes it impossible to run programs in a DOS session. The only 
time you'd probably want to set this to YES is if the system is 
being used as a dedicated LAN or file server, in which case 
OS/2 should have full access to the system's resources.


DEVICE=C:\OS2\APPS\SASYNCDx.SYS

The SASYNCDx.SYS driver loads the device support necessary to 
run the PM Terminal program. If you are not using the PM 
Terminal program, this line can be REM'ed out.


SHELL=C:\OS2\MDOS\COMMAND.COM C:\OS2\MDOS /E

Shell starts the COMMAND.COM or another DOS command processor. 
The Shell= command does not affect either the OS/2 SET command 
or the Shell command in BASIC. The following parameters are 
valid for this setting:

PARAMETER        EXPLANATION

/C string        Executes the command processor with the command 
                 used in the string, and then closes the DOS 
                 session and returns to the calling session.

/E:x             Sets the environment size for the DOS session. 
                 Valid numbers are from 160 to 32768 and are 
                 automatically rounded up to the nearest multiple of 16.

/K string        Executes the command processor with the command 
                 used in string. Remains in the new session 
                 after the command is completed.

/P               Retains COMMAND.COM in storage until the session is closed.


FCBS=16,8

This line sets the file control blocks (FCBS) management 
information for DOS sessions. A FCB is a record that contains 
all the information about a file (for example, its structure, 
length and name). If a program tries to open more than the 
number of files specified in the FCBS statement, the system 
closes the least recently used file control block and opens the 
new file. This parameter should not need to be changed and has 
no effect on OS/2 sessions. 


RMSIZE=640

This statement specifies the highest storage address allowed for 
the DOS operating environment. The default is 640K. This is a no 
brainer. Leave it alone. If however you need to change this 
setting, do so using the DOS SETTINGS notebook on a session by 
session basis.


DEVICE=C:\OS2\MDOS\VEMM.SYS 4096 [options]

This line loads support for virtual Lotus Intel Microsoft (LIM) 
Expanded Memory Specification (EMS) specification. Various 
expanded memory options can be specified within the DOS 
SETTINGS  notebook on a session per session basis.  The default 
is 4096 bytes (4 MB).


DEVICE=C:\OS2\MDOS\VMOUSE.SYS

Provides virtual mouse support to Windows and DOS applications 
by virtualizing the INT 33 interface.


DOS=LOW,NOUMB

This line specifies whether the DOS kernel will reside in the 
High Memory Area (HMA) and whether the operating system or DOS 
applications will control Upper Memory Blocks (UMB's). The HMA 
refers to the area between 1 MB and 1 MB + 64KB, and the UMB's 
reside between 640K and 1 MB.

If DOS=HIGH/LOW,UMB is specified in the CONFIG.SYS, then the 
operating system controls UMB's. This means that DOS applications 
can be loaded into upper memory and cannot allocate UMB's. On 
the other hand if DOS=HIGH/LOW,NOUMB is specified in the 
CONFIG.SYS, then the operating system will not control any UMB's 
and DOS applications can allocate UMB's but cannot be loaded 
there. I recommend the setting as follows: DOS=HIGH,UMB.


DEVICE=C:\OS2\MDOS\VXMS.SYS /UMB

Provides virtual XMS (eXtended Memory Specification) memory to 
DOS and WIN-OS2 sessions. This driver provides DOS sessions 
with access to the High Memory Area (HMA), Extended Memory 
Blocks (EMBs) and Upper Memory Blocks (UMBs). Settings for this 
driver can also be altered within the SETTINGS notebook.


DEVICE=C:\OS2\MDOS\VCDROM.SYS 

The VCDROM virtual device driver enables audio support for CD-
ROM applications running in virtual DOS machines. It emulates the 
audio portion of MSCDEX driver, the native DOS CD-ROM driver, 
and communicates to the hardware CD-ROM device driver loaded 
within OS/2. It also translates the DOS style IOCTLs into 
requests that the physical CD-ROM device can understand. VCDROM 
provides only audio IOCTL support and not full emulation of 
MSCDEX. Any application that calls MSCDEX for file system 
services will not run in a virtual DOS machine.


DEVICE=C:\OS2\MDOS\VDPX

This is the virtual DOS Protected Mode Extender (VDPX) device 
driver, which provides support address translation from protected 
mode to Virtual 86 (V86) mode for DOS Protect Mode Interface 
(DPMI) applications running in a DOS session. This translation is 
needed because DPMI applications run in protected mode but issue 
interrupt requests in Virtual 86 mode to provide system 
services.


DEVICE=C:\OS2\MDOS\VDPMI.SYS

This is the DOS Protect Mode Interface (VDPMI) device driver that 
provides a subset of version 1.0 DPMI support for virtual DOS 
machines. DPMI applications run in protected mode, not V86 mode.


DEVINFO = ID, VARIABLE, FILENAME, PARAMETERS

The DEVINFO statement is used to prepare a device (such as 
keyboard (KBD), display terminal (SCR), or printer (LPT#), for the 
code page switching. Separate DEVINFO statements are required 
for each device to be used for code-page switching.  DEVINFO 
statements are closely related to the CODEPAGE and COUNTRY 
statements in the CONFIG.SYS when trying to load alternate code 
pages. 

The following explains the syntax listed above:

ID:             Refers to the specific device to be prepared 
                for a particular code page. Usually, the devices or 
                identifiers will be the keyboard, display and printer.

VARIABLE:       This refers to the type of device i.e. VGA for 
                display, 4201 for the printer, etc.

FILENAME:       Identifies the filename of the specific device 
                driver files 

PARAMETERS:     Shows the parameters which are passed to the 
                device driver identified in the FILENAME.

Now that I have generally discussed the DEVINFO statement, you 
need to know about the three general DEVINFO statements 
installed by default in the OS/2 CONFIG.SYS.

DEVINFO=SCR, DISPLAY,DRIVE:\DIRECTORY\FILENAME
DEVINFO=SCR,VGA,C:\OS2\VIOTBL.DCP

SCR             This device loads code page support for your display adapter.

DISPLAY         Represents your display mode\type.

FILENAME        The files, VIOTBL.DCP and VIOTBL.ISO (see note), 
                contains the video font table and character mapping 
                information for displaying characters in each of the 
                code pages supported by your system.

NOTE:           OS/2 versions 2.1 and 2.00.1 both provide support for ISO 
                fonts in full screen DOS or OS/2 text mode sessions 
                only. To install ISO font support, you'll need to do the 
                following:

                1. Insert the OS/2 2.1 diskette # 13 (#14 if using OS/2 
                2.00.1) in drive "A". 
                
                2. From the A:\ prompt, type
                
                        UNPACK A:REQUIRED /N:VIOTBL.ISO  (Enter)
                
                3. Finally, go into the OS/2 CONFIG.SYS file and add the line

                        DEVINFO=SCR,VGA,C:\OS2\VIOTBL.ISO   (Enter)
                
                If you decide to use this line, please REM out the 
                VIOTBL.DCP line. In the command syntax listed above, the 
                "REQUIRED" represents the OS/2 bundle name where the file 
                resides.


DEVINFO=PORT,PRINTER,DRIVE:\DIRECTORY\FILENAME, ROM=(NN,FONTID)
DEVINFO=LPT1,4201,C:\OS2\4201.DCP,ROM=(437,0)

This line loads codepage support, along with font information, 
for the specified printer.

PORT                    Defines the printer port. This can be set to 
                        PRN, LPT1, LPT2, OR LPT3.

PRINTER                 OS/2 comes with support for the IBM 4201 printer 
                        (the IBM Proprinter I and II) and the 5202 
                        printer (the IBM Quietwriter).

FILENAME                This file contains a printer font table for each 
                        codepage supported by OS/2.

NN                      Selects a code page that is resident in the printer.

FONT                    Selects the associated font for the code page.


DEVINFO=KBD,KEY_LAYOUT,DRIVE:\DIRECTORY\FILENAME
DEVINFO=KBD,US,C:\OS2\KEYBOARD.DCP

This line loads the codepage support for the keyboard layout 
specified. Again, this is a parameter that works very closely 
with the COUNTRY and CODEPAGE statements.

KBD                     Represents the device (keyboard) to be prepared 
                        for codepage switching.

KEY_LAYOUT              Specifies your keyboard layout ID (keyboard 
                        country and sub country codes).

FILENAME                The file, KEYBOARD.DCP, contains a keyboard 
                        layout table for translating keystrokes into 
                        characters for each code page supported by OS/2. 

Please refer to your OS/2 User's Guide for a list of countries 
supported directly under OS/2.


DEVICE=C:\OS2\MDOS\VVGA.SYS 

Loads a virtual device driver for a VGA display in a virtual DOS 
session.


SET VIDEO_DEVICES=VIO_XGA
SET VIO_XGA=DEVICE (BVHVGA,BVHXGA)

The above two lines set environmental variables related to the 
XGA driver. You may specify any other driver that is currently 
being used according to your display type.


DEVICE=C:\OS2\MDOS\VXGA.SYS

Loads a virtual device driver for an XGA display in a virtual DOS session.

DEVICE=C:\OS2\POINTDD.SYS

This file provides mouse-pointer draw support in all text modes 
for OS/2 sessions. In order for this file to function, an 
appropriate mouse driver must be loaded.


DEVICE=C:\OS2\MOUSE.SYS QSIZE=nn TYPE=tt
DEVICE=C:\OS2\MOUSE.SYS SERIAL=port

This is the general purpose mouse driver for OS/2.  This line 
also references the type of mouse you have and which serial 
port it is on. The following explains the parameters listed above.

QSIZE=nn        Value from 1 to 100 which indicates the length of the 
                queue for events to be used for all OS/2 session tasks. 
                The default value is 10 records.

TYPE=tt         Either a PCLOGIC$ (Logitech mouse that does not 
                emulate a Microsoft mouse) or VISION$ (Visi-On mouse).

SERIAL=PORT     Specifies the serial port that the mouse is 
                connected to. It is not supported for mice with a 
                bus interface.

NOTE:           If  you are using the IBM PS/2 Models, 90 or 95, add 
                the following line after the Mouse.sys line:

                DEVICE=C:\OS2\COMDMA.SYS

Since the COM.SYS driver seizes control of any ports not in use 
on the system, this line must be loaded before the COM.SYS driver.


DEVICE=C:\OS2\COM.SYS

Lets you use the communications ports one and two (COM1 and 
COM2).  If you want to use COM3 or COM4, change the IRQ of a 
COM port, then add the next line below.  This line MUST appear 
after any driver that uses the communications ports.  Use 
COM02.SYS if you have an IBM PS/2 model 90 or 95.


DEVICE=C:\OS2\COM.SYS (3,3E8,4) (4,2E8,3)

This line adds support for COM3 and COM4 in OS/2 at Hex Address 
3E8 with IRQ 4 and 2E8 with IRQ 3 respectively. Instead of 
adding this line to provide support, you can just add (3,3E8,4) 
(4,2E8,3) to the DEVICE=C:\OS2\COM.SYS line above.


DEVICE=C:\OS2\MDOS\VCOM.SYS

Lets you use the communications ports for DOS & Windows sessions.


CODEPAGE=PRIMARY,SECONDARY
CODEPAGE=437,850

Defines the character set to be prepared by OS/2 for code page 
switching. 

AN EXPLANATION ON CODE PAGES:

When your computer displays output, the characters used are 
defined by a specific code page. OS/2 provides direct support 
for seven code pages, and offers supplemental support for about 
8 more (Refer to your documentation for country listings of code 
pages). Each code page contains letters, numbers, symbols and 
other characters common to a particular country. Each character 
has a number (sometimes called the ASCII code) between  1 and 
255 assigned to it. For instance, character number 212 might 
display one character in the US code page (437), but a different 
one in the Portuguese code page (860). Therefore, you should use 
your default national language code page unless you are working 
with files that were created using another code page, or unless 
you are planning to send files to other countries. 

The CODEPAGE entry in the OS/2 CONFIG can specify two code 
pages; a PRIMARY code page and a SECONDARY code page. This 
means that the character sets of both code pages will be 
available at any given time. If you are working within 
international parameters and often have the need to share files 
across the Atlantic, I strongly recommend using code page 850 as 
the secondary code page. Code page 850 is the multilingual code 
page and offers the best choice for compatibility among the 
other various code pages. The following table lists code pages 
supported by OS/2:

437             US
850             Multilingual
852             Latin 2 (Czechoslovakia, Hungary, Poland, Yugoslavia)
857             Turkish
860             Portuguese
861             Iceland
862             Hebrew- Speaking
863             French Canadian
864             Arabic-Speaking
932             Japanese
934             Korean
938             Republic of China
942             Japanese SAA
944             Korean SAA
948             Republic of China SAA

NOTE:           For the DOS environment, code pages 862 and 864 are 
                supported with a country supplement available only in 
                certain countries. Code pages 932, 938, 942, 944 and 948 are 
                supported only with the DBCS version of OS/2 on DBCS 
                hardware.

                DBCS stands for Double Byte Character Set. This is a 
                set of characters in which each character is    
                represented by two bytes. Languages such as Chinese, 
                Japanese, and Korean, which contain more characters 
                than can be represented by 256 code points, require double - 
                byte character sets. As each character requires two bytes, 
                the entering, displaying, and printing of DBCS characters 
                requires hardware and software that can support DBCS. 

I hope this helps alleviate some of the ambiguity associated with 
the OS/2 CONFIG.SYS file. If you're installing on a network or 
have added any accessories to your system, you may have 
additional lines in this file. But I do hope that this provides 
the user some sort of framework for optimizing the user's 
system and getting the most from your system configuration.

                                IDORENYIN UYOE
                                NDD DAYMV2  X640659
                                T/L 80-269-6479


Acknowledgments:        The following sources were very helpful in 
                        providing various tips, hints, and guidance in 
                        compiling this document:

                        Maximizing OS/2 2.1
                        Dvorak Guide to OS/2
                        OS/2 2.1 Unleashed
                        IBM Red Books
                        IBM Personal Systems Tech Solutions

