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