44 44 44 DDDDDDD OOOOO SSSSSS 44 DDDDDDDD OOOOOOO SSSSSSSS 44 44 DD DD OO OO SS 44 44 DD DD OO OO SS 44 44 DD DD OO OO SSSSSS 444444444 DD DD OO OO SSSSSS 44444444 DD DD OO OO SS 44 DD DD OO OO SS 44 DDDDDDDD OOOOOOO SSSSSSSS 44 DDDDDDD OOOOO SSSSSS Version 5.51 Introduction and Installation Guide Developed By Rex Conn and Tom Rawson Documentation By Hardin Brothers, Tom Rawson, and Rex Conn Published By JP Software Inc. P.O. Box 1470 East Arlington, MA 02174 U.S.A. (617) 646-3975 fax (617) 646-0904 ACKNOWLEDGMENTS We couldn't produce a product like 4DOS without the dedication and quality work of many people. Our thanks to: JP Software Staff: Christine Alves, Mike Bessy, Michael Hart, Ellen Stone, Misty White. Online Support: Brian Miller and Tess Heder of Channel 1 BBS; Don Watkins of CompuServe's IBMNET. Beta Test Support: The sysops of CompuServe's CONSULT forum. Beta Testers: We can't list all of our beta testers here! A special thanks to all of you who helped make 4DOS elegant, reliable, and friendly. The following tools are used in creating and maintaining 4DOS: Compilers: Microsoft C, Microsoft Macro Assembler, Borland Turbo Pascal Libraries: Spontaneous Assembly (Base Two Development), Turbo Professional (Turbo Power Software) Editors: Edix (Emerging Technology), Brief (Solution Systems) Debuggers: Periscope (The Periscope Company), Soft- ICE (Nu-Mega Technologies) Version Control: PVCS (Sage Software) Documentation: Microsoft Word for Windows with Adobe Type Manager Cover Design: Gordon Design, Medford, MA. Printing: Goodway Graphics, Burlington, MA. Copyright 1993 - 1995, JP Software Inc., All Rights Reserved. 4DOS is a registered trademark and 4OS2, JP Software, and the JP Software logo and product logos are trademarks of JP Software Inc. Other product and company names are trademarks of their respective owners. 8-95 CONTENTS ------------------------------------------------------------------- CONTENTS Introduction...............................................1 How to Use This Manual.................................2 Customer Service and Technical Support.................3 Chapter 1 / Installation...................................4 Preparing for Installation Under DOS...................4 Preparing for Installation Under OS/2..................5 Automated Installation.................................6 Manual Installation....................................7 Uninstalling 4DOS......................................8 Chapter 2 / Configuration.................................10 Configuration Files...................................10 Setting Up CONFIG.SYS.................................11 4DOS and Multiple-Configuration Utilities.........14 4DOS and DOS 2....................................14 Startup Options for Secondary Shells..................15 Using AUTOEXEC.BAT, 4START, and 4EXIT.................16 COMSPEC and the COMSPEC Path..........................17 4DOS Swapping Methods.................................17 4DOS Help.............................................19 Configuring the Help System.......................21 Chapter 3 / 4DOS and Your Hardware and Software...........23 The CPU...............................................23 Memory................................................24 Upper Memory Blocks (UMBs)........................27 Video.................................................28 Hard Drives and Floppy Disks..........................30 4DOS and DOS..........................................32 Menus and SET Commands in CONFIG.SYS..............32 Novell DOS / DR DOS...............................32 Using 4DOS with Task Switchers and Multitaskers.......34 Creating a 4DOS Window............................35 Parameters for 4DOS Windows.......................35 Multitasking and KEYSTACK.........................36 Multitasking and Disk Swapping....................37 4DOS and Microsoft Windows 3.x........................37 4DOS and Microsoft Windows 95.........................39 Windows 95 Boot Sequence..........................39 Installing 4DOS as the Primary Shell Under Win95..40 Starting 4DOS From The Windows 95 GUI.............41 Using Long File Names with 4DOS...................42 Installing the KSTACK Program.....................43 Using 4DOS on a Network...............................44 4DOS and Novell Netware...........................45 ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / i CONTENTS ------------------------------------------------------------------- Chapter 4 / Using 4DOS Under OS/2.........................47 OS/2 Version 1.x......................................48 OS/2 Version 2.x and OS/2 Warp........................48 Settings for DOS Sessions.........................49 Configuring DOS Sessions for 4DOS.................50 4DOS.INI..........................................52 AUTOEXEC.BAT, 4START, and 4EXIT...................53 Configuring 4DOS for Dual Boot and Boot Manager.......54 CONFIG.SYS........................................55 AUTOEXEC.BAT......................................55 4DOS.INI, 4START, and 4EXIT.......................56 Appendix A / Solving Software Compatibility Problems......58 Path Length...........................................59 Environment Size......................................59 Testing for Interactions..............................60 Memory Allocation Conflicts...........................62 Memory Allocation and Microsoft Windows...........63 Advanced Configuration Options........................64 Appendix B / Technical Information........................65 Detecting 4DOS........................................65 Placing Keystrokes Into the Keystack..................66 Writing Installable Commands..........................67 Using DESCRIPT.ION....................................68 Interrupt 2E..........................................69 Index.....................................................72 ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / ii INTRODUCTION ------------------------------------------------------------------- INTRODUCTION Welcome, and thanks for purchasing 4DOS! We started developing 4DOS when we realized that our computers could be a lot more powerful and a lot more helpful than they were. Whether you are a computer novice or an experienced power user, we think that 4DOS will help you get the most out of your IBM PC or compatible computer. Technically, 4DOS is a command interpreter or "DOS Shell." That means that it reacts to the commands you type at the C:\> prompt. We've designed 4DOS so that you don't have to change your computing habits or unlearn anything to use it. If you know how to display a directory, copy a file, or start an application program, you already know how to use 4DOS. 4DOS understands all of the commands you know and adds to them. Its purpose is to make DOS friendlier, easier to use, and much more powerful and versatile, without requiring you to use or learn a new program, a new set of commands, or a new style of work. You can use 4DOS with all versions of MS-DOS and PC-DOS from 2.0 through 6.2 and above. You can also use it with all versions of Novell DOS and DR DOS (an older name for the same product) from 3.4 through 7.0 and above, and in DOS sessions started under OS/2 1.x, 2.x, OS/2 Warp, and Windows 3.0 or 3.1. Once you have 4DOS installed, you can learn its new features at your own pace. It has more than 50 new commands and hundreds of enhanced features, but you don't have to learn them all at once. Relax, enjoy 4DOS's power, and browse through the manual occasionally. Press the F1 key whenever you need help. 4DOS will soon become an essential part of your computer, and you'll wonder how you ever got along without it. If you want to take 4DOS for a spin without performing a complete installation, see the separate Guided Tour documentation. We are constantly working to improve 4DOS. If you have suggestions for features or commands that you think we should include in the next version, or any other way we could improve our product, please let us know. Many of the improvements in this version of 4DOS were suggested by our users, and while we can't promise to include every suggested feature, we really do appreciate and consider your comments. If you use OS/2 or Windows NT, JP Software offers 4OS2, a replacement for the OS/2 command processor, and 4DOS for Windows NT, which is a replacement for the Windows NT command processor. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 1 INTRODUCTION ------------------------------------------------------------------- These products provide most of the same commands and features available in 4DOS, plus several additional commands and new features for OS/2 and Windows NT. You can use these products to maintain a common working environment and run the same batch files under DOS, OS/2, and Windows NT. 4OS2 and 4DOS for Windows NT are available at a discounted price for 4DOS users. Contact JP Software or your dealer for more information. How to Use This Manual This manual is only one part of the documentation that you will need for 4DOS. It introduces the product and will help you install 4DOS correctly on your computer. It will also help you understand some of the terms and concepts that you will need to know to get the most from 4DOS, and give you specific information on using 4DOS in your particular environment (for example under DOS, Windows, or OS/2). The second part of our documentation is the separate Reference Manual. It contains complete information about the commands and features of 4DOS, plus its sister programs, 4OS2 and 4DOS for Windows NT. You should start with this introductory manual whether you are new to 4DOS or you are upgrading from a previous version. Once you have successfully installed 4DOS, you can move back and forth between this manual and the Reference Manual. For the sake of clarity, we have chosen not to indicate each of the hundreds of places in this manual where you can refer to the Reference Manual for additional information. If you see a reference here to a 4DOS command, the initialization file 4DOS.INI, or any 4DOS feature, you can be sure that detailed information on that topic is available in the Reference Manual. In particular, this manual often refers to directives in 4DOS.INI, which are covered in detail in Chapter 5 of the Reference Manual. 4DOS also includes complete online help for all 4DOS and standard DOS commands. The online help provides much of the same information that is available in the Reference Manual, but in an electronic form which you can access quickly. See page 19 for more details on using the online help. Files distributed with 4DOS cover important additional information beyond what's included in the manuals. README.DOC contains general notes, highlights of the latest release, and brief installation instructions for those upgrading from a downloaded copy. MANMOD.DOC covers changes or corrections in the manuals, if any, and UPDATxxx.DOC contains detailed ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 2 INTRODUCTION ------------------------------------------------------------------- information for users with older versions on what has changed in the latest release ("xxx" is the version number). APPNOTES.DOC contains application notes for a variety of other software packages to help you use those packages with 4DOS. You will likely find some parts of the documentation too simple or too technical for your tastes. If so, feel free to skip to the next part of the manual that is more to your liking. You can use almost every feature of 4DOS without having to worry about other features or commands. As you read the documentation, you will occasionally see an exclamation point [!] next to a paragraph. The exclamation point means that that paragraph contains a caution or warning you should observe when using the feature it discusses. You will also see the symbol ## next to certain paragraphs. This indicates an in-depth discussion or a more advanced topic which you can skip if you wish to stick with the basics. Come back to this topic later for more details, or if you're having trouble with the particular issue it discusses. If you see the ## next to a section heading, it means the entire section contains such information. You may find the information in such marked sections useful even if you're relatively new to computers or to our products. However, you can also skip the marked section and still understand and use the basic topic of the larger section you're reading. Customer Service and Technical Support Technical support for 4DOS is available via public electronic support conferences, private electronic mail, telephone, fax, and mail. For complete details, including a listing of electronic support conferences, see your Reference Manual. Customer service is always available through the telephone and fax numbers listed on the title page of this manual. See your Reference manual for electronic mail addresses for our Sales and Customer Service departments. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 3 CHAPTER 1 / INSTALLATION ------------------------------------------------------------------- CHAPTER 1 / INSTALLATION You can install your copy of 4DOS automatically or manually. If you prefer an automated installation, our installation software will set up 4DOS for you quickly and with very little intervention on your part, other than answering the questions on your screen. If you prefer to install 4DOS yourself, you'll need to use the installation software to copy the 4DOS files to your disk. You can then modify your system manually as explained below. If you're installing a downloaded update to 4DOS, see the instructions under Manual Installation on page 7 . (If you're using DOS 2.x, you must use manual installation. The automated installation software cannot modify CONFIG.SYS for you under DOS 2. See page 14 for additional details.) No matter which method you choose, you'll find that 4DOS's installation software is very well-behaved. It won't modify or erase any existing files, including CONFIG.SYS and AUTOEXEC.BAT, without asking you, and it takes a very straightforward, step by step approach. The installation software always prompts you for the directory to use for your 4DOS files, and will create a new directory if necessary. If you are upgrading from a previous version of 4DOS, use a new directory for the new version, rather than overwriting your existing files. Transfer any necessary configuration files from the old directory (e.g. 4DOS.INI, 4START, etc.), then remove the old directory once the new version is up and running. Preparing for Installation Under DOS If you're running DOS (or DOS plus Windows), you should make a bootable system diskette before you install 4DOS (or any other software, for that matter). This allows you to recover in case of a power failure or other interruption during the installation process. To make the bootable floppy disk, put a fresh diskette in drive A and then type: format a: /s ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 4 CHAPTER 1 / INSTALLATION ------------------------------------------------------------------- The FORMAT command will take a few minutes to prepare the floppy diskette, and will then copy your system files to drive A. Once the process is complete, you should test your bootable floppy by leaving it in drive A and simultaneously pressing the Ctrl, Alt, and Del keys to make sure your system will boot up properly. Once you can boot from a floppy disk and access the configuration files on your hard disk, put the floppy away in a safe place and reboot your computer normally. If you use compression software on your hard disk, you may not be able to access the hard disk from a bootable floppy unless you copy the appropriate device drivers and other software, plus a version of your CONFIG.SYS and AUTOEXEC.BAT files, to the floppy disk. See your compression software documentation for details about creating a bootable floppy disk. Preparing for Installation Under OS/2 If you are running OS/2, a bootable floppy disk is not required. To begin the installation simply start a DOS command line session and follow the automated or manual installation instructions below. If you also have our OS/2 command processor, 4OS2, do not install 4DOS in the same directory as 4OS2. Some file names (for example README.DOC) are the same in both products, and the files should be kept separate to avoid confusion later. If you use OS/2's Dual Boot or Boot Manager facilities to switch between DOS and OS/2, your system has two sets of CONFIG.SYS and AUTOEXEC.BAT files: one for DOS and one for OS/2. In most cases, you'll want to modify both sets, so that 4DOS is available in both environments. If you use automated installation, the installation software modifies only one set: the one for the operating system you are running at the time of installation. After installation, you can modify either set of configuration files manually using the instructions under Manual Installation on page 7. If you use Boot Manager, you can instead restart the installation software and select the "Modify Startup Files" option on the main menu to modify the second set of startup files. If you use this approach, be sure to tell the installation software the proper boot drive for the set of configuration files you wish to modify. See Chapter 4 on page 47 for more details on using 4DOS with OS/2. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 5 CHAPTER 1 / INSTALLATION ------------------------------------------------------------------- Automated Installation To begin the automated installation process, put the distribution diskette into drive A. You can use drive B if you prefer, in which case you should substitute "b" for "a" in the instructions below. One of the files on the distribution diskette, README.1ST, contains information that you should read before you install 4DOS on your computer. Type: type a:readme.1st | more to view the file. If you want to print a copy of the file, type: copy a:readme.1st prn After checking README.1ST, you can start the installation process. Type: a:install and press the Enter key. Once the installation program has started, just follow the instructions on the screen and 4DOS will install itself on your system. The installation program will ask whether you want to perform a complete installation, perform a partial installation in order to run the Guided Tour, or retrieve individual files from the 4DOS library. Choose a full installation to install 4DOS on your system, and modify CONFIG.SYS and AUTOEXEC.BAT (you will be prompted for permission before these files are modified). Choose the Tour option if you want to see what 4DOS can do before you install it permanently. If you elect to perform a full installation, reboot your computer when the installation program is done. You will then have all the power of 4DOS available to you. ## If you use a utility which allows multiple configurations in your DOS CONFIG.SYS file, the automatic installation software may not be able to modify CONFIG.SYS for you, even if you give it permission to do so. In this case you will see a message explaining the problem during installation, and you will need to follow the Manual Installation instructions below to modify CONFIG.SYS yourself. See page 14 for additional notes about using 4DOS with these utilities. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 6 CHAPTER 1 / INSTALLATION ------------------------------------------------------------------- You can halt the installation process at any time by pressing Ctrl-X (hold down the Ctrl key and then press "X"). ## Manual Installation The 4DOS files are contained in a special library file on the distribution diskette. You cannot simply copy files from the diskette onto your system. You must use the installation program to extract the 4DOS files if you want to perform a manual installation, or if you need to replace a damaged 4DOS file on your hard disk. If you want to install 4DOS manually, first start the automatic installation program using the instructions above. Select the Extract all files option and extract the 4DOS files onto your hard disk (be sure to place the files in their own directory). If you are installing 4DOS on floppy disks, you may not be able to use the Extract all files option because the files may not fit on a single diskette. Select Copy individual files instead, and repeat the process two or more times to copy the files to separate diskettes. If possible, you should copy 4DOS.COM, KSTACK.COM, 4HELP.EXE, and 4DOS.HLP to a single diskette, because these are the files required to operate 4DOS with all of its features. If these files do not fit on one diskette, copy 4DOS.COM and KSTACK.COM to one disk and 4HELP.EXE and 4DOS.HLP to another. If you're installing a downloaded update to 4DOS, you will not have an INSTALL program. Instead, use the appropriate decompression program (for example, PKUNZIP) to extract the files from your download into a new directory. Then follow the instructions below to complete your installation. Be sure to check the README.DOC file for any additional update instructions. Once you've extracted the files, you can go through the Guided Tour if you want to try 4DOS before completing the installation (see the separate Guided Tour documentation). When you're ready to finish the installation process, all you need to do is add one line to your DOS or OS/2 CONFIG.SYS file (before modifying the DOS CONFIG.SYS file, be sure you have a bootable floppy disk as discussed on page 4): SHELL=d:\path\4DOS.COM d:\path /P "d:\path" means the drive and directory where your 4DOS files are stored. The second "d:\path" on the SHELL= line sets the ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 7 CHAPTER 1 / INSTALLATION ------------------------------------------------------------------- COMSPEC path (see page 17) and can be left out if 4DOS.COM is in the root directory of your boot drive. Be sure to delete or REMark out any old SHELL= line for COMMAND.COM after you add the new SHELL= line for 4DOS. Once you have 4DOS up and running, see page 11 for additional options you can use on the SHELL= line. If you are running 4DOS under OS/2, change CONFIG.SYS as described above. Once you reboot, 4DOS will be used automatically for all newly-created DOS objects on your desktop, and for all DOS objects which use the default DOS_SHELL settings. See page 47 for more details on configuring OS/2 DOS sessions to use 4DOS. Next, add the following line to your AUTOEXEC.BAT file: d:\path\KSTACK.COM where "d:\path" is the drive and directory where your 4DOS files are stored. The same line can be used for DOS and for OS/2 DOS sessions. When you've finished modifying CONFIG.SYS and AUTOEXEC.BAT, reboot your system to start 4DOS. For additional details on setting up the SHELL= line and AUTOEXEC.BAT, see Chapter 2 / Configuration (page 10). See your Reference Manual for information on the 4DOS.INI file, which controls 4DOS configuration. ## If you use a utility which allows multiple configurations in your DOS CONFIG.SYS file, see page 14 for additional notes on configuring 4DOS properly on your system. ## Uninstalling 4DOS We don't expect you to have any trouble using 4DOS, but we know some people feel more comfortable knowing how to uninstall a product as well as install it. Or, you may need to remove 4DOS from one system if you are moving it to another system. To temporarily remove 4DOS from your system, first find the location of COMMAND.COM on your disk (for example, in the root directory, or the DOS directory). Use your editor to edit CONFIG.SYS (before modifying the DOS CONFIG.SYS file be sure you have a bootable floppy disk as discussed on page 4). Look for the line which begins with SHELL=, and insert the characters "REM " at the beginning of the line. This converts the line into a "remark" or comment. (If you are using DOS 3 ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 8 CHAPTER 1 / INSTALLATION ------------------------------------------------------------------- or below, REMarks are not recognized in CONFIG.SYS, so the changed lines will produce a harmless "Unrecognized command" error when the system boots.) Next, add a new line like this: SHELL=d:\path\COMMAND.COM /P where "d:\path" is the drive and directory for COMMAND.COM. If you were previously running COMMAND.COM with a /E:nnnn switch to set the size of your environment, you should add it to this line as well. After CONFIG.SYS has been modified, edit your AUTOEXEC.BAT file to remove any changes made to accommodate 4DOS. Look for a command beginning SET COMSPEC= and another which loads the 4DOS file KSTACK.COM. The SET COMSPEC command will not be present on most systems. If it's there, change it to read: SET COMSPEC=d:\path\COMMAND.COM where "d:\path" is replaced by the correct drive and directory for COMMAND.COM. Then add "REM " in front of the KSTACK.COM command to convert it to a comment. If you wish, you can also look for the PATH command, and remove the 4DOS directory from the directories listed there. However, there's probably no reason to do so unless you're permanently removing 4DOS from your system. Now reboot your system, and you should be back up and running under COMMAND.COM. To switch back to 4DOS, edit your CONFIG.SYS file again to remove the REMs on your 4DOS lines and put one on your COMMAND.COM line instead, remove any SET COMSPEC command in AUTOEXEC.BAT, and you can boot with 4DOS again. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 9 CHAPTER 2 / CONFIGURATION ------------------------------------------------------------------- CHAPTER 2 / CONFIGURATION This chapter explains how you can tune 4DOS to make it as efficient and as useful as possible in your computing environment. Nearly everything in this chapter is for advanced users and those with unusual needs. If 4DOS works the way you want it to after the automatic installation, you can skip this chapter. You may, however, want to skim this material to see what options are available. Configuration Files 4DOS uses or is affected by five configuration files. Two are for general DOS configuration; the other three are unique to 4DOS. The general DOS files are CONFIG.SYS and AUTOEXEC.BAT. The specialized 4DOS files are called 4START, 4EXIT, and 4DOS.INI. CONFIG.SYS is discussed below. AUTOEXEC.BAT, 4START and 4EXIT are discussed briefly below, and in Chapter 4 / Aliases and Batch Files in the Reference Manual. 4DOS.INI is discussed in Chapter 5 / Configuration in the Reference Manual. ! Anytime you change a configuration file, a typographical mistake or other error could make your system lock up or run erratically. Before you make any changes to any of these files, we strongly urge you to take some precautions. (These precautions are for DOS users. Under OS/2 they can be helpful, but are not required, because problems with the startup files are not as likely to keep the system from booting and prevent you from editing the incorrect file.) First, create a bootable floppy disk (see page 4). Second, make a backup copy of all five configuration files, giving the backup copies a different extension than the originals (for example .SAV). Copy these backup files to your boot-up floppy for safekeeping. With these precautions, if something goes wrong, you will be able to boot with your floppy disk and copy the files back to their original names. You'll only have to spend a few minutes recovering your system. You should follow the same precautions each time you install a new application program that changes your DOS or 4DOS configuration files. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 10 CHAPTER 2 / CONFIGURATION ------------------------------------------------------------------- Setting Up CONFIG.SYS The DOS CONFIG.SYS file contains instructions for DOS to execute before it loads a command processor. The OS/2 CONFIG.SYS file contains similar startup instructions for OS/2. Only one line in the CONFIG.SYS file affects 4DOS. It tells the operating system to use 4DOS as the DOS command processor instead of COMMAND.COM. The format of this line is: SHELL=d:\path\4DOS.COM [d:\path] [@d:\path\inifile] [//iniline]... [/D] [/E:nnnn] [/F] [/L] [/LA] [/LH] [/LD] [/Y] [/P[:filename]] [[/K]command] SHELL= identifies this line as defining the command processor that DOS will load after it finishes executing CONFIG.SYS, or that OS/2 will load when a DOS session is started. Replace the first "d:\path\" (immediately after SHELL=) with the 4DOS drive and directory. If you're using DOS, the drive and path must be correct or your system won't boot (and you'll be very happy that you made the boot-up floppy we suggested). The remainder of the items on this line are optional. If they are used, you should not include the square brackets. In the descriptions below, "d:" means a drive letter and "\path" means a subdirectory name. d:\path: This is the second d:\path above (not the one immediately after SHELL=). It sets the drive and directory where 4DOS is stored, called the COMSPEC path. 4DOS uses this path to find its files and to set the COMSPEC environment variable (see page 17). If you use MS-DOS or PC-DOS 3.0 or above, 4DOS will normally find its directory automatically and this option will not be needed. If you run 4DOS under OS/2, or use Novell DOS or DR DOS, this option is required unless 4DOS.COM is in the root directory of the boot drive. @d:\path\inifile: This option sets the path and name of the 4DOS.INI file. You don't need this option if you aren't using an .INI file at all, or if the file is called 4DOS.INI and it is in the same directory as 4DOS.COM, or in the root directory of the boot drive. //iniline: This option tells 4DOS to treat the text appearing between the // and the next space or tab as a 4DOS.INI directive. The directive should be in the same format as a line in 4DOS.INI, but may not contain spaces, tabs, or comments. Directives on the SHELL= line ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 11 CHAPTER 2 / CONFIGURATION ------------------------------------------------------------------- override any corresponding directive in 4DOS.INI. This is a convenient way to place one or two simple directives on the SHELL= line without having to modify or create a 4DOS.INI file. /D: This option disables execution of AUTOEXEC.BAT (or the file named in the AutoExecPath directive in 4DOS.INI or on the SHELL= line). It is intended for internal use by MS-DOS / PC-DOS 6.x. When you press the F8 key during the boot process, MS-DOS prompts for whether to run AUTOEXEC.BAT. If you answer "No", the /D switch is used to relay your choice to 4DOS. /E:nnnn: This option sets the size of the environment, in bytes. If you don't use this option, 4DOS will allocate 512 bytes for the environment. You can use any value from 256 to 32000 as the environment size. For example, to set an environment of 1,000 bytes, you would enter the option as /E:1000. You can also set the environment size with the Environment directive in the 4DOS.INI file (see your Reference Manual). /F: This option tells 4DOS to automatically provide a Fail response to all critical errors, without prompting or waiting for a user response. It is rarely used except on systems that must run unattended, like bulletin boards. We do not recommend use of this option on a normal system, because you will not have a chance to react to a critical error and correct the problem that caused it. For more information on critical errors see Chapter 3 of your Reference Manual. /F only affects critical errors detected by 4DOS, and will not affect critical error handling for many application programs which perform this function themselves. It is equivalent to the directive CritFail=Yes in 4DOS.INI. /L, /LA, /LD, and /LH: These options force 4DOS to use a local alias, directory history, and / or command history list. They can be used to override any LocalAlias=No, LocalHistory=No, or LocalDirHistory=No settings in 4DOS.INI. This allows you to use global lists as the default, but start a specific shell or OS/2 DOS session with local aliases or history. See your Reference Manual for details on local and global aliases and history. /LA forces local aliases, /LD forces local directory history, /LH forces local command history, and /L forces all 3: local aliases, command history, and directory history. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 12 CHAPTER 2 / CONFIGURATION ------------------------------------------------------------------- /Y: This option forces 4DOS to "single-step" through 4START and AUTOEXEC.BAT (or the file named in the AutoExecPath directive). It is intended for internal use by MS-DOS 6.x. When you press the F8 key to enable single-stepping during the boot process, the /Y switch is used to relay your choice to 4DOS. /P[:filename]: This option tells 4DOS to load permanently and to run AUTOEXEC.BAT. If you specify a filename after the /P, that file will be run instead of AUTOEXEC.BAT. You should specify the full name of the file, including drive and directory. A filename after /P will override the AutoExecPath option in 4DOS.INI. When 4DOS is loaded from the SHELL= command in CONFIG.SYS, or as the shell for an OS/2 DOS session, it will normally detect that it is the primary shell and set the /P option automatically. Under very rare circumstances, you may want to load 4DOS permanently and have it run AUTOEXEC even though you are not loading it from CONFIG.SYS; in such cases you must set /P yourself. 4DOS will not run AUTOEXEC.BAT without either an automatic or an explicit /P. Do not use this option in secondary shells, or you will be unable to return to the primary shell. [/K] command: This option tells 4DOS to run the command after 4START and AUTOEXEC.BAT but before displaying the prompt. The command can be any valid alias, internal or external command, or batch file. All other startup options (such as //iniline or /P) must be placed before the command, because 4DOS will treat characters after the command as part of the command and not as additional startup options. If you use MS-DOS / PC-DOS 6.x and use /K, the command will be executed instead of AUTOEXEC.BAT (for compatibility with MS-DOS / PC-DOS 6.x COMMAND.COM). In all other cases, the command will be executed in addition to AUTOEXEC.BAT. ## If you specify a path and name for the 4DOS.INI file on the SHELL= line, or if you use options that will override directives in your .INI file, you must place the command line options on the SHELL= line in the order in which they are listed above. If you do not, you may find that the command line options do not properly override directives in the .INI file. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 13 CHAPTER 2 / CONFIGURATION ------------------------------------------------------------------- Caution ! There is a bug in all versions of MS-DOS and PC-DOS from 2.0 through 4.01: the SHELL= line in the CONFIG.SYS file may not contain more than 31 characters following the name of the shell program (i.e., beginning with the space after "4DOS.COM"). If the line is too long, the options will not be passed properly to 4DOS and a variety of errors can occur. You can set all necessary 4DOS options without exceeding this limit, especially if you put 4DOS.COM and 4DOS.INI in the root directory of your boot drive. This limit is not present in MS-DOS / PC-DOS 5.0 and above, in Novell DOS, or in OS/2. ## 4DOS and Multiple-Configuration Utilities 4DOS is fully compatible with most products which allow multiple configurations in your DOS CONFIG.SYS file, including BOOT.SYS (a powerful multiple-configuration utility sold by JP Software), and the MS-DOS / PC-DOS 6.0 and above "multi- config" feature. If you plan to use the same 4DOS setup for all configurations, create one SHELL= line and place it in the common area of CONFIG.SYS that is used for all configurations. If you want to use a separate 4DOS setup for each configuration, create individual SHELL= lines in the area of CONFIG.SYS specific to each configuration. Start out using the same line for each configuration, then make any necessary changes to your standard setup. For example, you could use options on the SHELL= line to select a different .INI file or AUTOEXEC file for certain configurations (see above for more details on these options). Be sure to check APPNOTES.DOC for notes on the specific configuration utility you use. 4DOS and DOS 2 We recommend using DOS 3.1 or above, but 4DOS can be used with DOS 2. The only special consideration is that 4DOS must be loaded differently under DOS 2.x, because certain DOS 2 functions require that COMMAND.COM be loaded as the primary command processor. Therefore, you must load COMMAND.COM first and then 4DOS. Assuming that all files are in the root directory of your boot drive, the SHELL= line in DOS 2.x should look like this: shell=command.com /c 4DOS /p [options] ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 14 CHAPTER 2 / CONFIGURATION ------------------------------------------------------------------- Note that due to the "/c 4DOS" on the SHELL line, fewer options can be used before running into the 31-character limit discussed above. You must, however, use the /P option, or AUTOEXEC.BAT will not run. 4DOS will not automatically detect that it is the primary shell and set /P for you when run under DOS 2. Startup Options for Secondary Shells You may want to set explicit options for a 4DOS secondary shell when you define a 4DOS window in a task switching or multitasking system such as Windows, DESQview, Back & Forth, or the MS-DOS shell (DOSSHELL); when you "shell out" of a program which allows you to specify command-line options for the shell; or in rare cases when you run a secondary copy of 4DOS directly from the command line. In most other cases, secondary shells do not use or require any startup options. If you do need to set options for secondary shells, you can use any of the following (for more details on items which are the same as those used in CONFIG.SYS, see the section beginning on page 11): @d:\path\inifile: Set the .INI file name, as in CONFIG.SYS. This option is not necessary if you want 4DOS to use the same .INI file that you used for the primary shell, because values from that file - including those in its [Secondary] section - will be passed automatically to secondary shells. //iniline: This option tells 4DOS to treat the text appearing between the // and the next space or tab as a 4DOS.INI directive. The directive should be in the same format as a line in 4DOS.INI, but may not contain spaces, tabs, or comments. Directives on the secondary shell command line override any corresponding directive in 4DOS.INI. This allows you to use 4DOS.INI directives directly on the command line when starting 4DOS in a window of a multitasking system, rather than having to create separate copies of 4DOS.INI to accommodate small configuration changes in different windows. /E:nnnn: Set the environment size, as in CONFIG.SYS. /F: Force an automatic "Fail" on critical error, as in CONFIG.SYS. /L, /LA, /LD, and /LH: Force 4DOS to use a local alias, directory history and / or command history list, as in CONFIG.SYS. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 15 CHAPTER 2 / CONFIGURATION ------------------------------------------------------------------- [/C | /K] command: This option tells 4DOS to run the command after 4START but before any command prompt is displayed. The command can be any valid alias, internal or external command, or batch file, and can include multiple commands. Use this option if you want 4DOS to run a batch file or execute a command when it starts, for example to run a specific batch file when 4DOS is started in a window of a multitasking system. When the command is preceded by a /C, 4DOS will execute it and then exit and return to the parent program. /C is used by some applications to start the command processor, run one command, and then return to the application. The /K switch is included only for compatibility with COMMAND.COM. It has no effect on 4DOS; using it is the same as placing the command (without a /C or /K) at the end of the startup command line. Using AUTOEXEC.BAT, 4START, and 4EXIT You generally won't need to make any changes to AUTOEXEC.BAT to make it run properly under 4DOS, although once you get used to 4DOS's batch file enhancements, you may want to use them to streamline AUTOEXEC. If you want to use the 4DOS KEYSTACK command, you will normally load the program KSTACK.COM from your AUTOEXEC.BAT file. To do so, include the following line in your file (be sure to place it before any KEYSTACK commands): d:\path\kstack.com Replace d:\path with the path to the KSTACK.COM program, which will normally be stored in your 4DOS directory. You may want to use AUTOEXEC.BAT to configure 4DOS by setting the environment variables that 4DOS uses: CDPATH, COLORDIR, COMSPEC, PATH, PROMPT, TEMP, and TEMP4DOS. You may also want to include a SETDOS command to set configuration variables. All of these settings are optional. 4DOS runs two special batch files automatically, 4START and 4EXIT. 4START is executed whenever 4DOS is started. In the primary shell, it is executed before AUTOEXEC.BAT. If 4DOS is started as a secondary shell with the [/C] command option, 4START is executed before the command. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 16 CHAPTER 2 / CONFIGURATION ------------------------------------------------------------------- See your Reference Manual for more information on environment variables, the SETDOS command, and AUTOEXEC.BAT, 4START, and 4EXIT. COMSPEC and the COMSPEC Path The COMSPEC environment variable contains the full path and name of the command processor. For example, if 4DOS is stored in the directory C:\4DOS, the COMSPEC variable should be set to C:\4DOS\4DOS.COM. COMSPEC is used by applications which need to find the command processor to implement a "shell to DOS" feature. You can set the COMSPEC variable by specifying the COMSPEC path when your system starts, or by using a SET command as you would for any environment variable. If you include a COMSPEC path on the SHELL= line in CONFIG.SYS (see page 11), or in the DOS_SHELL setting for an OS/2 2.x or above DOS session (see page 52), 4DOS will set the COMSPEC variable automatically to the path you specify, and append the filename 4DOS.COM. This method also allows 4DOS to use the COMSPEC path to find other files during the startup process, such as 4DOS.INI and 4START. If you don't include the COMSPEC path on the primary shell's startup command line, 4DOS will set the COMSPEC variable to the root directory of the boot drive (x:\4DOS.COM where "x" is the boot drive), and will also look in the root directory of the boot drive for 4DOS.INI and 4START. You can also set the COMSPEC variable manually with a SET command in AUTOEXEC.BAT. This method will override any setting made with a COMSPEC path on the primary shell's startup command line as described above. We do not recommend this approach, because it will allow applications to shell to DOS, but will not provide the information the primary 4DOS shell needs to find its files during the startup process. When 4DOS is running as the primary command processor, you can determine whether COMSPEC has been set correctly by typing the following line at the 4DOS prompt: echo %comspec 4DOS Swapping Methods 4DOS runs in two parts, a resident portion that is always in memory and a transient portion that can be stored in EMS ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 17 CHAPTER 2 / CONFIGURATION ------------------------------------------------------------------- memory, in XMS memory, on a RAM disk, or on your hard disk while application programs are running. The resident portion uses about 3K bytes of memory in the primary shell and about 1.5K bytes in secondary shells. The transient portion uses about 128K bytes of memory. 4DOS will perform most quickly if the transient portion is swapped to the fastest memory or device available. See page 24 for explanations of XMS and EMS memory. Swapping for the primary shell normally requires about 128K bytes of EMS memory, XMS memory, or disk space. Secondary shells normally require 32K bytes of EMS, or 28K bytes of XMS or disk space. If you have a large environment, alias list, or history list, more memory will be required in both primary and secondary shells. The EMS requirements are larger because EMS memory is allocated in 16K increments; 4DOS does not actually use more memory when swapping to EMS. You can control 4DOS swapping with the Swapping directive in 4DOS.INI. The Swapping directive lists a series of swap types, which may be: EMS: 4DOS will swap to EMS expanded memory if it is available. You must have expanded memory and an EMS memory manager (version 3.2 or later) for this option. XMS: 4DOS will swap to XMS extended memory if it is available. You must have an an XMS memory manager and a 80286, 386, 486, or Pentium computer for this option. d:\path: 4DOS will create a swap file in the drive and directory specified. The file will be called 4DOSSWAP.NNN where "NNN" is the shell number (unless you use the UniqueSwapName directive in 4DOS.INI to generate a unique swap file name). This swap file is created as a hidden system file to avoid accidental deletion and will not be visible with a normal DIR command. Swapping to a RAM disk will generally be faster than swapping to a hard disk. Do not use a floppy disk for swapping because its performance is likely to be unacceptably slow. None: No swapping. The transient portion of 4DOS will remain in memory at all times. This option will reduce memory available for application programs by about 128K compared to the other swap types, and should be used only when no other swapping options are available. You can specify multiple swap types and 4DOS will try them in the order listed. Swap type "None" is always appended to your list of possible swap types as a "last resort," even if you ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 18 CHAPTER 2 / CONFIGURATION ------------------------------------------------------------------- don't include it explicitly. This allows 4DOS to start even if the other swap types you specify don't work. For example, if your system has EMS memory and a RAM disk set up as drive D, the directive: Swapping = EMS, D:\, C:\SWAP in 4DOS.INI will tell 4DOS to try EMS memory first, then the RAM disk, and finally the \SWAP directory on drive C. If all of these options fail (because there isn't enough free space available), the transient portion of 4DOS will remain in memory (swap type "None"). The default Swapping specification is: Swapping = EMS, XMS, x:\, None where "x" is the boot drive (for the primary shell) or the COMSPEC drive (for secondary shells). (Disk swapping will not be included as part of the default if the boot drive is A: or B:, because floppy disk swapping is too slow to be useful on most systems.) After 4DOS starts, you can use the SWAPPING command to view the type of swapping in use. 4DOS Help 4DOS includes a complete help program called 4HELP.EXE. The help system includes complete help for all 4DOS internal commands, all standard DOS external commands, and most 4DOS features. The information in the help system is fully cross- referenced, so you can move easily among related commands. You can start the help system by typing HELP (or HELP plus a command name) at the prompt, or by pressing the F1 key at any time at the command line. If you type part or all of a command on the line and then press F1, the help system will provide "context-sensitive" help by using the first word on the line as a help topic. If it's a valid topic, you will see help for that topic automatically; if not, you will see the list of all help topics and you can pick the one you want. For example, if you press F1 after entering each of the command lines shown below you will get the display indicated: c:\> Topic list c:\> copy *.* a: Help on COPY ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 19 CHAPTER 2 / CONFIGURATION ------------------------------------------------------------------- c:\> c:\util\map Topic list If you type the name of any internal command at the prompt, followed by a slash and a question mark [/?] like this: copy /? then you will see help for the command in a "quick-reference" style. Output from a /? display may be redirected with > or >>. ## The /? option may not work correctly if you have used an alias to redefine how an internal command operates. To view the /? help for such a command you must add an asterisk to the beginning of the command to disable alias processing. For example, if you have defined this alias: alias copy *copy /r then the command COPY /? will be translated to COPY /R /?, which will not work properly. However, if you use *COPY /?, the alias will be ignored and the /? will work as you intended. Once you've started the 4DOS help system with HELP or F1, you can use a standard set of keystrokes to navigate. The table below gives a summary of keys you can use in the help topic list, and in a help text screen. For more details on using the help system, see the Help topic (at the beginning of the topic list) in the help system itself. For details on mouse usage, see the Mouse topic in the help system. Help topic list keys: Arrow Keys Move the highlight to a different topic. Enter Display help on the highlighted topic. Esc Return to 4DOS. Any other key Attempt to match the characters typed with one of the names in the topic list. Help text screen keys: Up Arrow Scroll up one line in the display. Down Arrow Scroll down one line in the display. PgUp Scroll up one page in the display. PgDn Scroll down one page in the display. Left Arrow Move the cross-reference highlight to the previous item. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 20 CHAPTER 2 / CONFIGURATION ------------------------------------------------------------------- Right Arrow Move the cross-reference highlight to the next item. Enter Switch to the topic shown by the highlighted cross-reference item. Esc Return to the topic list, or back to 4DOS if this topic was displayed directly without using the topic list. F1 Go to the topic list in order to select a new topic. Alt-N or Ctrl-Right View the next topic in the topic list. Alt-P or Ctrl-Left View the previous topic in the topic list. Alt-F1 View the previously displayed topic. Alt-X Return directly to 4DOS without restoring the original screen contents. F Find a string within the current topic. G Find a string in any topic (a "global" search). N Find the next occurrence of the search string. P Print the text for the current topic on LPT1. The help system normally restores the screen when exiting. Use Alt-X to leave a page of help text on the screen so you can refer to it. You can use F, G, and N to search for a string in the help text, and P to print the topic you are viewing. Your printer must be turned on and ready before pressing P. Configuring the Help System The 4DOS help system can be configured in several different ways. First, the HELPCFG.EXE program included with 4DOS allows you to customize the HELP colors. To use it, just change to your 4DOS directory, enter the command HELPCFG, and follow the instructions it displays. To force HELPCFG to adjust the monochrome HELP colors, even if you are using a color system, use the command HELPCFG /M to start the program. You can use the HelpPath directive in your 4DOS.INI file to inform 4DOS of the location of the HELP files (4HELP.EXE and 4DOS.HLP). If you don't use the HelpPath directive, the HELP program must be in the current directory or in one of the ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 21 CHAPTER 2 / CONFIGURATION ------------------------------------------------------------------- directories specified in your PATH setting. If you use the HelpPath directive, the HELP command will generally respond more quickly because 4DOS won't have to search the directories in your PATH setting to find the help files. The HELP command has three options which you can set with the HelpOptions directive in 4DOS.INI. The options are: /M(onochrome): Forces HELP to use monochrome display mode. This is useful on a system which has a color video board and a monochrome display (for example, portable computers with LCD screens). /Sn (Speed): Sets the HELP mouse movement speed. /S0 sets the speed to one half the default mouse speed. /S2 sets it to twice the default, and /S4 sets it to four times the default. The higher values may be useful if you use a screen larger than the standard size of 80 x 25. /X: Disable the mouse while HELP is running. If you have a Microsoft serial or PS/2 mouse and are experiencing long delays when HELP starts, you can use this option to disable the mouse. (The delay is caused by the extended time required by some versions of the Microsoft mouse driver to initialize these mice.) For example, if you want HELP to use a monochrome display and disable the mouse by default, you could include the following line in your 4DOS.INI file: HelpOptions = /M /X You can include the same options on the HELP command line if you wish. Options used on the HELP command line will override any that are set in the 4DOS.INI file. For example, to obtain help on the COPY command, and disable the mouse, you could use this command: c:\> help /x copy ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 22 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE This chapter explains how to get the most from 4DOS with the particular hardware and software in use on your system. You should find that 4DOS is compatible with all your PC hardware and software. We have designed it carefully so that it uses standard, documented methods to do its job. It works properly with all kinds of CPUs, keyboards, video displays, and disks; with application software, utilities, networks, multitaskers and task switchers, and memory-resident (TSR) programs; and with system software like disk caches, memory managers, and device drivers. We test 4DOS regularly with dozens of hardware setups and hundreds of popular software products in order to catch and correct any possible compatibility problems before you encounter them. The following sections discuss using 4DOS: * With the physical hardware that makes up system (the CPU, Memory, Video, and Disks). * With DOS, including a specific discussion of Novell DOS. * With multitasking and task switching programs, including a specific discussion of Microsoft Windows. * With networks, including Novell Netware. For specific information about any individual software package or hardware product, including the latest information about products mentioned in this chapter, see the APPNOTES.DOC file distributed with 4DOS. It contains the latest information available when your copy of 4DOS was shipped. If you need to diagnose a problem that isn't covered below or in APPNOTES.DOC, see Appendix A on page 58. If you have questions about some of the terms and concepts here, see Chapter 1 or the Glossary in your Reference Manual, or the Index on page 72 of this manual. The CPU The CPU or "Central Processing Unit" is the chip which performs or directs all of the work done by your computer. All PC CPU chips are part of or compatible with Intel's "80x86" family. These include the 8088, 8086, 80188, 80186, 80286, 386, 486, Pentium, NEC V20, and NEC V30, plus "SX" ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 23 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- versions and other variations of some of those chips. 4DOS is compatible with all of these chips. Some systems have a numeric coprocessor as a companion to the CPU. The numeric coprocessor performs many arithmetic calculations faster than the CPU. 4DOS does not use the numeric coprocessor. You can determine which CPU chip your system has by using 4DOS's _CPU internal variable: c:\> echo %_cpu Similarly, you can find out if you have a numeric coprocessor with _NDP: c:\> echo %_ndp See your Reference Manual for details about _CPU and _NDP. Memory The memory in your computer is organized in bytes. Normally, the amount of memory in a computer is discussed in terms of kilobytes (KBytes or 1,024 bytes) and megabytes (MBytes or 1,048,576 bytes or 1,024 KBytes). The amount of memory available in your computer is determined by the number of memory chips or memory modules you have installed. In an ideal world, there would be little more to say about memory. But because of the history of PCs, the needs of large application programs, and the capabilities of advanced CPUs, there are many different kinds of memory. The original 8088 CPUs of the PC and PC/XT can address 1 MByte of memory. Of that, a maximum of 640KBytes is allocated as base, conventional, DOS, or low DOS memory (all these terms mean the same thing). The other 384 KBytes, known as upper memory, are set aside for the computer's built-in ROM BIOS, video adapter cards, hard disk controllers, and other expansion hardware. When base memory became too limiting, expanded memory (or EMS memory) was developed to give programs more data space. Expanded memory adds a maximum of 16 MBytes which programs can access, 64KBytes at a time, through a window in upper memory. In 8088 / 8086 (PC and XT), and 80286 (AT) based computers, expanded memory typically requires an add-on board and support software. In 386, 486, and Pentium computers, expanded memory is typically provided without additional hardware, using the capabilities of the 386 / 486 / Pentium chips. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 24 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- The 80286 CPU used in the AT, and modern 386, 486, and Pentium CPUs, can use much more than the 8088's original 1 MByte of memory. An 80286 can use a total of 16 MBytes, and the 386, 486, and Pentium can use up to 4,096 MBytes (4 gigabytes) of physical memory. This extended memory is not normally available to DOS-based programs, however, without special programming techniques and the help of DOS extenders or memory managers. The memory terms used in your 4DOS manuals include: Base memory: The 640 Kbytes or less that has traditionally been available for DOS and DOS-based applications. EMS or LIM EMS Memory: Memory which conforms to the Expanded Memory Specification, developed by Lotus, Intel, and Microsoft, that lets programs and utilities share expanded memory. Extended Memory: Memory beyond 1 MB in 80286, 386, 486 and Pentium computers. This memory may be accessed directly, in which case it is referred to as Extended Memory, or through XMS software, in which case it is referred to as XMS Memory. XMS Memory: Extended memory managed by software which conforms to the Extended Memory Specification (XMS). XMS lets programs share extended memory without conflict. This specification divides extended memory into extended memory blocks (EMBs). XMS software also usually manages the HMA and the UMBs. HMA: The first 64K bytes of extended memory, located just above 1 MB. Certain specialized programs such as DESQview, some network drivers, and portions of MS-DOS (version 5.0 or later) and Novell DOS (version 5.0 or later) can be loaded into the HMA instead of taking up valuable space in base memory. UMBs: 386, 486, and Pentium computers can electronically "move" pieces of extended memory into unused space in the upper memory area between 640KB and 1 MB. Each block of this memory is called an Upper Memory Block (UMB). With MS-DOS / PC-DOS 5.0 or later, Novell DOS 5.0 or later, or third-party memory managers like 386MAX and QEMM, memory- resident programs can be loaded into these UMBs instead of taking up valuable space in base memory. Some 8086, 8088, and 80286 systems can also use UMBs with appropriate additional hardware and software. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 25 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- 4DOS does its best to detect and properly access all types of memory that your computer can have. 4DOS always uses standard, documented methods to use the memory that you have installed. 4DOS uses memory in three ways (see page 17 for more information about swapping and the resident and transient portions of 4DOS): * By default, 4DOS uses base memory for its resident portion, the master environment, and the alias and history lists. Base memory is also used to hold the transient portion of 4DOS while your system is at the command prompt or executing a 4DOS command or batch file, and to create any necessary temporary data areas (for example, to hold the filenames to be listed in a directory display, or data being copied from one file to another). * 4DOS can use EMS memory or an XMS Extended Memory Block (EMB) to swap its transient portion, according to the Swapping directive in your 4DOS.INI file. * 4DOS can use Upper Memory Blocks (UMBs) for its resident portion, master environment, and global alias and history lists. 4DOS never accesses extended memory directly. It always uses an XMS driver like HIMEM.SYS, 386MAX, QEXT, or QEMM. 4DOS can also access any RAM disk you create in extended memory by using a program like VDISK.SYS or RAMDRIVE.SYS. 4DOS does not use the HMA at all. If you want to know whether 4DOS sees your system's memory accurately, check the output of the MEMORY command. It should correspond to your computer's memory configuration. The MEMORY command's output depends to some extent on your memory manager. Some memory managers turn your extended memory into either XMS or EMS memory as required, so that the same memory is shown both ways in the MEMORY report. If 1 MB of extended memory managed by such a memory manager is available, MEMORY will report 1 MB of free XMS memory and 1 MB of free EMS memory, even though it is all the same memory. Memory-related problems with 4DOS are usually due to programs which overwrite the extended memory block (EMB) that 4DOS uses for swapping its transient portion. When you exit from such a program, your system will hang, because 4DOS tried to swap itself back into base memory but its code and data in XMS have been destroyed by the program. The same problem can occur ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 26 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- with EMS swapping but is less common because EMS memory is generally better defended against wayward programs. You can diagnose this kind of problem easily by changing to disk swapping with the 4DOS.INI Swapping directive (see page 17) and rebooting. If the problem goes away with disk swapping, then the program in question is probably destroying 4DOS's swap area in XMS or EMS memory. 4DOS EMS swapping sometimes has difficulty with EMS drivers which do not fully meet the EMS 3.2 specification (4DOS supports, but does not require, EMS 4.0 drivers). If you have trouble accessing EMS for swapping, check APPNOTES.DOC to see if there are any known problems with your EMS board or the associated driver software. Upper Memory Blocks (UMBs) 4DOS uses UMBs for several purposes: * to move the 4DOS resident portion out of base memory, if you specify UMBLoad = Yes in your 4DOS.INI file. * to move the master environment out of base memory, if you specify UMBEnvironment = Yes in your 4DOS.INI file. * to move the global alias and history lists out of base memory, if you specify UMBAlias = Yes or UMBHistory = Yes in your 4DOS.INI file. * to load memory-resident programs (TSRs) "high" using the LOADHIGH or LH command under MS-DOS / PC-DOS 5.0 or above or Novell DOS 5.0 or above, or in an OS/2 DOS session. To load 4DOS, the master environment, or global alias and history lists into a UMB, you must be using a memory manager or XMS driver which provides both the ability to remap memory into the area between 640K and 1MB (to create the UMBs) and XMS or DOS 5.0 UMB support (to manage the UMBs). These are generally the same requirements which must be met to load TSRs "high." To give 4DOS access to UMBs, you need hardware and software combinations like the following: 386, 486, and Pentium systems (including 386SX computers): Hardware: Sufficient installed RAM. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 27 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- Software: Qualitas' 386MAX or Blue Max, Quarterdeck's QEMM 5.0 or later, DOS's EMM386.SYS, or a similar 386 memory manager. HIMEM.SYS alone is not sufficient. 80286 systems: Hardware: Chips and Technologies NEAT or LEAP chip set, or an EMS 4.0 or EEMS memory board, plus sufficient installed RAM. Software: Qualitas' MOVE-EM 1.02 or later with Microsoft's HIMEM.SYS, Quarterdeck's QRAM and QEXT, or a similar 286 memory manager. Upper Memory Regions Upper memory blocks are divided into one or more contiguous regions by your memory manager (see your memory manager documentation for additional details). All the 4DOS options and commands which allow access to UMBs also allow you to specify a particular UMB region. For example, you can load the resident portion of 4DOS into upper memory region 1 with a UMBLoad = 1 directive in 4DOS.INI. If you do not specify a particular region (for example, if you use UMBLoad = Yes rather than UMBLoad = 1), 4DOS will use the first available region. In order to use specific region numbers, you must enable DOS UMB management with the DOS=UMB or DOS=HIGH,UMB directive in CONFIG.SYS, or with the DOS_UMB setting for OS/2 2.x and above DOS sessions. If you do not, 4DOS will display an error message and ignore the region number. You can make region support available by using DOS=UMB or DOS=HIGH,UMB even if you are using a 3rd-party memory manager like 386MAX or QEMM. However, enabling DOS UMB management will disable the "load high" programs that come with some memory managers, requiring you to use the DOS DEVICEHIGH and 4DOS LOADHIGH commands instead. For additional details on how your memory manager responds to DOS UMB management, see the memory manager documentation. Region number support is not available under Novell DOS. Video Although 4DOS can normally detect your video parameters automatically, you may have to configure it to use the system most efficiently. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 28 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- 4DOS uses two methods of displaying text on the screen: * 4DOS calls DOS to write the text of prompts and normal messages. If you use an ANSI driver, DOS will transmit the calls to it. Otherwise, DOS will use your BIOS to display text on the screen. DOS text display calls will work on all DOS systems, regardless of video type. * The DRAWBOX, DRAWHLINE, DRAWVLINE, LIST, SELECT, SCRPUT, and VSCRPUT commands bypass DOS, the BIOS, and any ANSI driver. They write directly to video memory. These commands will only work on systems with 100% IBM-compatible video systems. On other computers, results will be unpredictable at best. If you experience a problem, try adding the line OutputBIOS = Yes to your 4DOS.INI file. EGA and VGA systems can display text in standard 25-line mode, plus modes with 43, 50, or more lines. 4DOS normally detects the number of lines automatically. If it doesn't, you can use the 4DOS.INI ScreenRows directive or the SETDOS /R command to set the 4DOS screen length. Similarly, 4DOS normally detects the width of your screen, but in rare cases with some unusual video boards you may need to use the ScreenColumns directive to set the number of columns explicitly. 4DOS never attempts to manipulate your video hardware in order to set the number of rows or columns actually displayed on the screen (the "video mode"); to do so, you must use the software that came with your video board or other software tailored to your system. If you put the screen in 43-line or 50-line mode and find that it still scrolls at the 25th line, you probably have installed an ANSI driver which does not support your extended screen length. In this case you may need to use a different ANSI driver. The video cursor shape that 4DOS uses is defined as a percentage of a character cell height. You can set the height independently for insert and overstrike mode with the CursorIns and CursorOver directives in 4DOS.INI or with the SETDOS /S command. If you don't use either, 4DOS sets the height to 10% of the character cell height for overstrike mode and 100% (a block cursor) for insert mode. If the cursor does not appear the way you want it to, use SETDOS /S to find the values that work for your system. Some video boards may not give a "smooth" response to varying SETDOS /S values. For example, a value of 20% may generate a ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 29 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- very small cursor while a value of 30% may generate a half- height cursor. 4DOS can't do anything about this behavior, so you will have to experiment to find the cursor values that you want to use. If you are using an EGA or VGA adapter, we encourage you to try UltraVision from Personics Corp. It gives you excellent control over your video system, includes a wide variety of text-mode screen fonts, has its own ANSI driver, and works superbly with 4DOS. A special version for laptop and notebook computers dramatically improves the readability of their smaller displays. Most versions of DOS include a copy of ANSI.SYS, a device driver that is normally installed with a DEVICE= line in your CONFIG.SYS file. There are a number of more powerful and faster versions available as public-domain, shareware, and retail products. PC Magazine's free utility ANSI.COM can be enabled, disabled, loaded, and unloaded without rebooting, and works well inside windows of multitasking systems. It is available on most bulletin boards and online systems. Another excellent choice is ANSI-UV.SYS which is included with UltraVision. 4DOS normally detects automatically whether an ANSI driver is installed. If you have an ANSI driver installed and 4DOS doesn't recognize it, try the command SETDOS /A1 which forces 4DOS to use ANSI commands. Use SETDOS /A2 to tell 4DOS you do not have an ANSI driver installed. These options can also be set with the ANSI directive in 4DOS.INI. If you have a laptop or notebook computer with a color video board and a monochrome screen, you may need to add a HelpOptions=/M directive to 4DOS.INI, or run HELPCFG to adjust the HELP colors. (See page 21 for additional information on help colors.) Hard Drives and Floppy Disks 4DOS uses your disks for a wide variety of purposes, and many 4DOS commands are designed to help you create, move, delete, view, and otherwise manage disk files. 4DOS never tries to manipulate the structure of your hard disk directly. It never modifies the FAT, root directory, or other system areas of the disk directly, and it doesn't read or write data on your disk itself. It always calls on DOS to perform these actions, just like most application programs do. As a result, 4DOS is compatible with all disk sizes, formats, and structures that your DOS version supports. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 30 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- 4DOS is also fully compatible with hard disk compression software like DBLSPACE, Stacker, and SuperStor. Under some compression systems you can display file compression ratios and sort directory displays in compression ratio order using the /C and /O:c switches of the DIR and SELECT commands. See APPNOTES.DOC for details on using your particular compression software with 4DOS. 4DOS will generally access your disk very quickly, but the speed depends on what you are trying to do. If you find that 4DOS is slower at performing a particular function than you are used to, you may have asked it to do more than you ask of traditional DOS commands. In particular, if you use file descriptions, remember that 4DOS has to access the description file as well as the actual files that you are manipulating. Some users notice that the common commands DEL and DIR appear slower with 4DOS under certain circumstances. With DEL, this slowdown may be because 4DOS uses a newer method of file deletion instead of a method that is no longer recommended (but is still used by COMMAND.COM). The new method is necessary to enable 4DOS's display of the names of the files you are deleting, and to support 4DOS's "extended wildcards." You can force 4DOS to use the older method with DEL's /Q option, as long as you don't use extended wildcards. For DIR, any speed decrease is because of 4DOS's directory sorting and description processing. 4DOS must read all filenames and descriptions before it can display any of them. The sort itself is quite fast, but DOS is relatively slow at retrieving the entire list of file names and passing them on to 4DOS. Once the 4DOS DIR display starts, it should go as fast as or faster than the traditional DIR display. Whenever 4DOS is interrupted by a Ctrl-C or Ctrl-Break, it performs a "disk reset" to clear out DOS's disk buffers and reset internal DOS disk parameters. This helps ensure that modified data has been written to disk even though the operation was interrupted. A disk reset is also performed before a REBOOT command. If you have trouble with recognition of floppy disk changes, with CD-ROM drivers, or with network disk access, you can try forcing 4DOS to perform a disk reset after file processing commands, and before a DIR. To do so use a DiskReset = Yes directive in 4DOS.INI. Such problems are very rare and normally DiskReset = Yes is not necessary. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 31 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- 4DOS and DOS 4DOS is compatible with all versions of MS-DOS and PC-DOS from 2.0 through 6.2 and above. We recommend the use of DOS 3.1 or above. If you use the MS-DOS utility APPEND, you may need to set up some aliases to invoke it; see APPNOTES.DOC for details. If you use the FORMAT /S command from MS-DOS or PC-DOS, version 4.0 or above, FORMAT will copy the file pointed to by the COMSPEC environment variable (see page 17) and name it COMMAND.COM. In most cases this means that 4DOS.COM will be copied to the floppy disk, but with the name COMMAND.COM. Such a disk should boot properly and start 4DOS, but its contents are sure to be confusing to others. If you use FORMAT /S with MS-DOS or PC-DOS 4.0 or above, we recommend that you copy COMMAND.COM manually to the floppy disk (you can use an alias or batch file if you format bootable disks frequently), or rename the file that FORMAT copies back to 4DOS.COM and place a proper CONFIG.SYS file for 4DOS on the floppy disk. Menus and SET Commands in CONFIG.SYS MS-DOS and PC-DOS 6.0 and above support configuration menus in CONFIG.SYS. If you use these menus, the menu choice you make is typically stored in an environment variable. In addition, under MS-DOS and PC-DOS 6.0 and above, and under Novell DOS, you can put SET commands in CONFIG.SYS to set environment variables explicitly. 4DOS will automatically retrieve environment variables created in CONFIG.SYS and store them in the environment for use in AUTOEXEC.BAT and other batch files, just as COMMAND.COM does. Novell DOS / DR DOS (This section covers Novell DOS, as well as the older version of the same product, called DR DOS. Throughout this section, and the rest of the manual, we refer to the product by its newer name, Novell DOS. Unless otherwise noted, all information below applies to both the older DR DOS and the newer Novell DOS.) 4DOS will work properly as the command processor for Novell DOS 3.4 through 7.0 and above. However, there are certain differences between Novell DOS and MS-DOS which may affect 4DOS. This section covers some of those differences; see ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 32 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- APPNOTES.DOC for additional information, including details on using the Novell DOS task switcher, TaskMax, with 4DOS. HILOAD 4DOS supports the HILOAD feature using the MS-DOS / PC-DOS command names of LOADHIGH or LH. To load a TSR high simply use the command: LH program [options] If you want the command to be called HILOAD for complete Novell DOS compatibility, set up an alias before using it: alias hiload lh Just as under MS-DOS, LOADHIGH and LH will not work properly unless you have memory management software loaded to provide upper memory block support. Because Novell DOS does not return any error to 4DOS if a LOADHIGH operation fails, 4DOS cannot report this condition to you. This means you must use the Novell DOS MEM program or another similar memory mapping utility to determine if your TSR was actually loaded high. The LOADHIGH command's /L and /S switches are included for compatibility with MS-DOS / PC-DOS 6.0 and above, and will not work with Novell DOS. File Passwords 4DOS includes support for Novell DOS file passwords. However, the command syntax used to access files with passwords is slightly different under 4DOS than under Novell DOS COMMAND.COM. The character used to separate passwords from filenames under Novell DOS is a semicolon [;], which 4DOS uses to separate parts of an "include list". Therefore, to avoid confusion with include lists, 4DOS requires the use of two semicolons to separate the password and filename in any command which supports wildcards. For example, to delete the file MYDATA which has the password "fred", you would use these commands: del mydata;fred for COMMAND.COM del mydate;;fred for 4DOS 4DOS directory-related commands like MD and CD (or MKDIR and CHDIR) do not use wildcards. Those commands, and Novell DOS ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 33 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- external commands which accept the "filename;password" syntax, use only a single semicolon. Novell DOS hides files which are password-protected. This means that you must use 4DOS command switches which allow processing of hidden files (COPY /H, DEL /Z, DIR /A, FOR /A, MOVE /H, and SELECT /A) to access a password-protected file under Novell DOS. Passwords are not automatically preserved when copying or moving a file with 4DOS. However, the hidden attribute will be preserved. This means that if you move or copy a password- protected file and want it to be visible in its new location or under its new name, you will have to manually remove the hidden attribute with ATTRIB. For example, to password-protect the file MYDATA, copy it to drive A:, and then delete it: c:\> password mydata /r:fred c:\> copy /h mydata;;fred a: c:\> del /z mydata;;fred To unprotect the password-protected file MYDATA: c:\> password mydata;fred /n Using 4DOS with Task Switchers and Multitaskers Task switchers are programs that allow you to switch quickly among multiple applications, with one application running at a time. Multitaskers are more complex programs which appear to run multiple applications at the same time, with one or more programs executing "in the background" while you work with another program on the screen. This section gives you some important general tips on using 4DOS with task switchers and multitaskers, and includes a specific discussion of Microsoft Windows. If you are using DESQview, see APPNOTES.DOC for additional information. See page 47 for a complete discussion on using 4DOS under OS/2. For convenience, in the text below we will refer to both multitaskers and task switchers as "multitaskers," and to each window or partition they use as a "window," even though some do not have windowed displays. 4DOS works well as both the primary shell (loaded when your system boots) and the secondary shell (loaded in a window) with most multitaskers. (See Chapter 1 of your Reference ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 34 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- Manual for more information about primary and secondary shells.) Creating a 4DOS Window Most multitaskers have a pre-configured "DOS" window. In some cases, this window always runs COMMAND.COM. In others, it runs the default command processor defined when your system boots. We recommend that you always set up a 4DOS window explicitly, with the configuration you want, rather that relying on the multitasker's generic "DOS" window. Many multitaskers also run the command processor when you start certain kinds of windows, such as windows that run a .BAT file. In general, this use of the command processor is transparent. The multitasker will run 4DOS for you automatically when it needs to, and you won't need to do anything about it. If you find that your multitasker is running COMMAND.COM when you meant to run 4DOS, check the COMSPEC setting that is in effect when you start the multitasker (see page 17 for details on COMSPEC). You may also need to check the way a particular window is configured. When you set up a 4DOS window, be sure to specify the full path to 4DOS.COM and any startup options you want (see page 15 for information on startup options for secondary shells). Parameters for 4DOS Windows To set parameters (swapping, alias space, etc.) to be used by all 4DOS secondary shells run by your multitasker, use the [Secondary] section in 4DOS.INI. To set these parameters separately for a specific window, create a copy of 4DOS.INI just for that window and use the @d:\path\inifile option on your command line for the window (see page 11). To change the configuration of a specific window without creating a separate copy of 4DOS.INI, use the //iniline option on your command line for the window (see the example below). 4DOS allows you to place a command to be executed as the last parameter on your 4DOS command line. This command is executed before 4DOS displays its first prompt. You can use this feature to run a batch file (or any other command) each time a 4DOS window is started by your multitasker. For example, if you are setting up 4DOS to run as a DOS application under Windows 3.1, your setup for a 4DOS program item (or in a .PIF file for 4DOS) might look like this: ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 35 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- Program Name: c:\4dos\4dos.com Parameters: //swapping=f:\ c:\winstart.btm This tells Windows to load 4DOS, includes a 4DOS.INI directive to tell 4DOS to swap to drive F, and passes 4DOS the command C:\WINSTART.BTM. You can place commands in WINSTART.BTM to be executed whenever such a window is started (for example, to change your PROMPT to show that you're in a window, or to load a TSR for just that window). The command to be executed (C:\WINSTART.BTM in this example), must be the last thing on the 4DOS command line; no 4DOS switches or options can be placed after it because anything after the command will be interpreted as parameters for the command. This feature is similar to what's provided by the 4START batch file, but 4START is executed every time 4DOS loads, whereas a file like WINSTART will be executed only when a 4DOS window is started from your multitasker. A batch file started this way will be run after 4START. ## If you wish, you can use 4START to accomplish the same goal. However, in order to do so you must have a way to detect whether the multitasker is running, so that you can select the appropriate commands to execute in 4START. If you are running DESQview or Windows, you can use the 4DOS internal variables _DV and _WIN respectively to test this condition. For example, the following lines could be used in 4START to change the prompt for DESQview command-line sessions: iff "%_DV" != "0" prompt [DV] $p$g else prompt $p$g endiff Multitasking and KEYSTACK ## If you use KEYSTACK inside a window of a multitasker, and the KSTACK.COM program has been loaded before the multitasker, you may find that stacked keystrokes "bleed through" from one window to another. You can solve this problem by loading KSTACK.COM in a startup batch file for each window where it is needed. If KSTACK is loaded before the multitasker as well, include a /I on the command line when loading KSTACK inside the window. If you don't, KSTACK will detect that it is already installed and will not install again. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 36 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- ! ## Multitasking and Disk Swapping When 4DOS is loaded as the primary shell, it acts as a "traffic cop" for copies of the transient portion of 4DOS swapped to disk. Each secondary shell is assigned a unique shell number, which is normally used as the extension for its disk swap file name (4DOSSWAP.001, 4DOSSWAP.002, etc.). These shell numbers avoid file name conflicts between multiple copies of 4DOS running in different windows but creating swap files in the same disk directory. However, if 4DOS is not loaded before the multitasker, this capability will not be available. In this case, the copy of 4DOS in each window will use a swap file called 4DOSSWAP.000. To avoid this conflict, you must either use the UniqueSwapName directive in 4DOS.INI, or force every copy of 4DOS to place its swap file in its own unique directory by using the "Swapping=d:\path" directive in 4DOS.INI. If you don't follow this rule, your system will hang when you switch windows or when you exit from an application. This problem will occur only in those rare situations where 4DOS is loaded within a window but is not loaded as your primary shell, and if 4DOS disk swapping is used in more than one window at a time. Note that since the default swapping option uses disk swapping if insufficient EMS or XMS memory is available, you can be invoking disk swapping in your multitasker's windows without specifically requesting it. 4DOS and Microsoft Windows 3.x 4DOS works well as both the primary shell, loaded before Windows, and as a secondary shell loaded inside any window. It works in any Windows mode (Real, Standard, or Enhanced). The general information about multitaskers beginning on page 34 applies to Windows as well. You should read it before continuing with this section. This section gives you the basic information you need to use 4DOS with Windows. For additional details and updated information be sure to check APPNOTES.DOC. All of the information in this section applies to both the standard single-user version of Windows and the peer-to-peer network version, Windows for Workgroups. To run 4DOS as a secondary shell from within Windows, you will need to create a desktop object for it. The generic "MS-DOS Prompt" object supplied by Microsoft will normally run COMMAND.COM. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 37 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- You can set up a 4DOS object from the Program Manager's File / New menu selection. To do so, simply create a new program item and set the command line to d:\path\4DOS.COM (use the appropriate drive and path for your system). You can put the name of a batch file at the end of the command line if you want to run some specific commands when 4DOS starts under Windows (see page 35 for details). When you create a new item in this way, it will be initialized with a standard DOS icon (the word "DOS" inside a rectangle). To install a specific icon for 4DOS, use the Program Manager's File / Properties menu selection. Click on the Change Icon button and type in the full path name of your new 4DOS icon file. We supply two Windows icons with 4DOS: 4DOS.ICO for color displays, and 4DOSM.ICO for monochrome displays. You can create your own icon with any icon editor. For more flexibility, you can use the Windows PIF editor to create a 4DOS.PIF file. We have included a sample .PIF file on the distribution diskette. You must edit this file and make it correspond to your system before you use it to run 4DOS. 4DOS will work properly in either a full-screen or a windowed session. The .PIF file determines the mode that 4DOS will start in. If you don't use a .PIF file, 4DOS will start in the mode set in the _DEFAULT.PIF file provided with Windows. You can set up multiple .PIF files if you need different session types (for example, one for windowed and one for full- screen sessions). Your batch files can determine whether they are running in a secondary shell under Windows, and the current Windows mode, with the 4DOS _WIN internal variable. You can easily set up the Windows File Manager to make .BTM files "executable." Open your WIN.INI file with any editor and find the section labeled [extensions]. Add the following line to the end of the section: btm=c:\4dos\4dos.com /c ^.btm (adjust this to show the proper path for 4DOS.COM on your system). It is not possible to execute .BTM files from the Program Manager by modifying the Programs= setting in WIN.INI; if you try to do so, the system will hang when you attempt to actually invoke a .BTM file. For information on resolving memory allocation problems with Windows, see page 63. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 38 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- 4DOS and Microsoft Windows 95 4DOS works well as both the primary shell, loaded before Windows 95, and as a secondary shell loaded from the Windows 95 GUI. The general information about multitaskers beginning on page 34 applies to Windows 95 as well. You should read it before continuing with this section. The Windows 95 Boot Sequence In order to understand the different methods for installing 4DOS you may find it helpful to learn a little about the Windows 95 boot sequence (if you are not interested in these details, skip to the next section). Modified versions of the standard MS-DOS startup programs are used to boot Windows 95. These programs look for CONFIG.SYS and AUTOEXEC.BAT just as under previous versions of MS-DOS. If CONFIG.SYS is NOT present, Windows 95 will load the appropriate real-mode DOS device drivers automatically, then start WIN.COM, which loads the Windows 32-bit drivers and GUI. If CONFIG.SYS IS present, the MS-DOS startup portion of Windows 95 will process it (while displaying a graphical Windows 95 startup screen). Certain drivers required by Windows 95 (e.g. HIMEM.SYS) will be loaded automatically even if they are not listed in CONFIG.SYS, but otherwise CONFIG.SYS works just as it does under previous versions of MS-DOS. If you use the default command processor, COMMAND.COM, it will be loaded automatically at the end of CONFIG.SYS if needed to process AUTOEXEC.BAT, then the GUI is loaded as described above. If you use a SHELL command in CONFIG.SYS to load a different command processor (like 4DOS), it will be loaded just as under previous versions of MS-DOS, and can then invoke the Windows GUI if desired (see below for details). However the SHELL command is ignored if AUTOEXEC.BAT is not present. Some aspects of the boot process are controlled by the file MSDOS.SYS, which is now an ASCII file which functions as a .INI file for DOS itself. For example you can control whether the GUI is automatically loaded with the BootGUI setting in the [Options] section of MSDOS.SYS, and you can automatically display a standard startup options menu by setting BootMenu=1 in the [Options] section (you can also display this menu by pressing F8 when you see the "Starting Windows 95 ..." prompt). MSDOS.SYS is a hidden, system, read-only file; to edit it from 4DOS use a sequence like this: c:\> attrib -rhs msdos.sys c:\> edit msdos.sys ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 39 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- c:\> attrib +rhs msdos.sys Installing 4DOS as the Primary Shell Under Windows 95 The best way to configure 4DOS for Windows 95 is to add a standard SHELL command as shown in the 4DOS manual to the end of the Windows 95 CONFIG.SYS file. For example: SHELL=C:\4DOS55\4DOS.COM C:\4DOS55 /P The second directory name and the /P should always be used. [If you reinstall Windows 95 or install a later build over an earlier one, your SHELL line will be removed from CONFIG.SYS by the Windows 95 installation process. To correct this simply boot the new version, go to a 4DOS prompt (your desktop with its 4DOS icon is typically preserved when you upgrade), and use EDIT or another ASCII editor to put the SHELL line back in CONFIG.SYS, then restart Windows 95. You can also boot with F8 and select the "Command Prompt Only" boot option, which will give you a COMMAND.COM prompt. At this point use an ASCII editor to modify CONFIG.SYS and add the SHELL= line for 4DOS, then reboot.] When 4DOS is loaded as the primary shell in CONFIG.SYS it will start the Windows 95 GUI automatically (except when you select the "Command prompt only" option from the Windows 95 boot menu). If you want 4DOS to display a prompt without starting the GUI, edit MSDOS.SYS as described above and change the line reading BootGUI=1 to read BootGUI=0. You can then use the WIN command to start the GUI when you wish. Some users find it convenient to set BootGUI=0, then add commands similar to the following at the end of AUTOEXEC.BAT: inkey /w5 Press X for prompt, or wait) for Windows ... %%key if "%key" != "X" win unset /q key These commands start Windows automatically unless you press the X key within 5 seconds after the message is displayed. You can interrupt the 5-second delay by pressing any other key. This gives you a convenient way to go directly to a prompt if you wish, but otherwise starts Windows automatically. Please note that the Windows 95 directory (usually C:\WINDOWS) must be in your PATH for the above examples to work. If it is not, the WIN command may not be recognized. Generally under ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 40 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- Windows 95 it is best to include the Windows 95 directory in your PATH. If you load Windows 95 in "safe mode" your startup files (CONFIG.SYS and AUTOEXEC.BAT) are ignored, and 4DOS will not be loaded as the primary shell (safe mode is for troubleshooting and is selected by pressing F5 during the boot process, or by pressing F8 and selecting a safe mode boot from the menu). If you start Windows 95 in "safe mode" in most cases you should NOT load 4DOS after the GUI starts. DOS applications often do not work properly in "safe mode". If you select other boot modes from the F8 menu (e.g. "step by step" or "command prompt only") the 4DOS primary shell will load, and will handle the option you have selected. The only exception is that if you select step by step mode and then answer "N" (or Esc) when prompted whether to process AUTOEXEC.BAT, the SHELL line will also be ignored and COMMAND.COM will be loaded rather than 4DOS (this is a Windows 95 behavior unrelated to 4DOS). Starting 4DOS From The Windows 95 GUI The simplest method for running 4DOS from the Windows 95 GUI is to create a new shortcut on the desktop. To do so click with mouse button 2 in any open area of the desktop. On the popup menu click New, then Shortcut. Fill in the drive and path for 4DOS.COM, and any other items you wish to set (no specific settings are required for 4DOS). Use the Change Icon button to assign the standard 4DOS icon, in the file 4DOS.ICO, to the shortcut. Once the shortcut is created 4DOS will start when you double- click the corresponding icon on the desktop. You can place any necessary commands or other directives (e.g. @ininame to name a specific INI file) on the startup command line just as you would under DOS or Windows 3.1; see your 4DOS Introduction and Installation Guide or the file 4DOS.DOC for details. If 4DOS is started in this way, and is not installed as the primary shell (whether because you have no CONFIG.SYS and AUTOEXEC.BAT and therefore do not load a primary shell, or because you use COMMAND.COM as your primary shell), then it will not inherit aliases or other startup settings. In this case you must use the 4START file (see your 4DOS manual) to load aliases and perform other startup tasks. To avoid this problem we recommend that you install 4DOS as the primary shell (see above) and load your aliases etc. at system startup, just as you would under DOS. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 41 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- We do not recommend the use of disk swapping under Windows 95. If you do use disk swapping aliases and other settings may not be inherited properly in some cases, especially when 4DOS is the primary shell. The best setup is to install 4DOS as the primary shell, and to use XMS swapping for all shells. You can set this swapping type with the following line in 4DOS.INI: Swapping = XMS If you start Windows 95 in "safe mode" in most cases you should NOT load 4DOS after the GUI starts. DOS applications often do not work properly in "safe mode". Using Long File Names with 4DOS Windows 95 supports filenames up to 255 characters long and which include spaces and other characters previously not allowed in filenames. Names which meet these restrictions but do not fit in the original DOS "8.3" naming convention (8 character name plus 3 character extension) are often called "long filenames". Long filenames are stored and displayed exactly as you entered them, and are not automatically shifted to upper or lower case. For example, you could create a file called MYFILE, myfile, or MyFile, and each name would be stored in the directory just as you entered it. However, case is ignored when looking for filenames, so you cannot have two files whose names differ only in case (i.e., the three names given above would all refer to the same file). This behavior is sometimes described as "case-retentive but not case-sensitive" because the case information is retained, but does not affect access to the files. 4DOS fully supports long filenames under Windows 95. For example, COPY will retain long filenames if possible when copying files to another drive, and DIR will use the long filename display format on all drives by default. Each file on a drive which supports long filenames will have a "short name" which follows the standard 8.3 naming convention. Some files may have only a short name (if no long name has been assigned). Others may have a long name assigned when the file was created, and a corresponding short name created automatically by Windows 95 (these names typically look something like "xxxxxx~n" where "xxxxxx" is the first few characters of the file name and "n" is a number to distinguish files where the initial characters match). Some files may ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 42 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- also have separate long and short names which were assigned when the files were created. On drives which support long filenames, DIR and SELECT use a display format which allows room for the longer name on the screen. In this format file descriptions are not displayed. You can use the /Z switch on either command to switch back to the more traditional 8.3 format, and display the file descriptions. You also can view short and long names at the same time with the DIR /X command. See the on-line help for additional details on these options. Long names can be used for both files and directories. When entering a long file name on the command line you must enclose the name in quotes if it contains any characters which are not valid in a standard 8.3 filename. For example, this command would work without quotes: copy c:\DataFiles\LetterToSara a: However this command requires quotes: copy "c:\Data Files\Letter To Sara" a: For information on how long filenames affect specific 4DOS features, see the COPY, DESCRIBE, DIR, MOVE, SELECT, and SETDOS /U command, Ranges, and the UpperCase directive in 4DOS.INI. Windows 95 only provides long filename features when the proper drivers are loaded. These drivers are loaded with the GUI portion of Windows 95, so normally you cannot use long file names when the GUI is not loaded (for example, from a "Command prompt only" boot). In this case you must refer to each file by its short name. If you boot an operating system which does not support long filenames, then access a drive which uses them, only short names will be visible. (Note that manipulating files with long filenames under such an operating system may break the links between long filenames and the corresponding short names, or cause other damage.) Installing the KSTACK Program If you want to load KSTACK.COM (required for the KEYSTACK command) it should be loaded separately for each 4DOS window. To do so, include the KSTACK command on the startup command line when you set up the corresponding shortcut(s). For example, the command line for your shortcut might read: ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 43 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- c:\4dos55\4dos.com c:\4dos55\kstack.com This will load KSTACK when the 4DOS window is opened, then display a prompt. If you install KSTACK in AUTOEXEC.BAT it will not work properly when multiple 4DOS windows are open -- stacked keystrokes will "bleed through" from one window to another. Using 4DOS on a Network 4DOS works well with DOS-compatible networks. This section will give you some tips on using 4DOS on a network, and on the proper locations for 4DOS files on a network. In general, you'll find that you can load and run your network software normally under 4DOS. Network drives will be accessible as normal drives once the network is loaded, and files on the network will be accessible just as if they were on a local hard disk. Some networks support file and directory names beginning with a double backslash, or with a server name followed by a colon, to identify files by their location on the network. 4DOS detects such names and passes them through to the network unaltered, allowing the network software to process them properly. In rare situations, you may have trouble loading network software under 4DOS. To the best of our knowledge, all DOS- compatible networks work with 4DOS. If yours doesn't, our experience suggests that the most common cause is a network bug, an old version of your network software, or a conflict in the way 4DOS and your network are configured. Most bugs have now been corrected by network vendors, and should not appear on your system. If you have any questions about compatibility with your particular network, check for a listing in APPNOTES.DOC, and feel free to contact our technical support department for additional assistance. If you need to boot a diskless workstation from a network drive, you must have the network drive accessible at boot time. If this condition is satisfied (so 4DOS can find its files on the network drives), the normal approach can be used to start 4DOS from the network. You can also configure 4DOS so that it boots from the floppy disk image used to start your diskless workstation, then retrieves its files from the network. For complete details on starting 4DOS on a diskless workstation under Novell Netware see APPNOTES.DOC. The ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 44 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- approach described there can generally be used for other networks as well. Some networks with large server disk drives (256 MB or more) may report total and free disk space values that are too small if the DIR command, the FREE command, or the @DISKFREE, @DISKTOTAL, or @DISKUSED variable functions are used on the server drive. If this occurs, it is because DOS does not provide a way for the network software to return larger values to 4DOS. !## When you use 4DOS with your network software loaded you need to ensure that two users do not use the same directory simultaneously for secondary shell disk swap files. If they do, the filenames (4DOSSWAP.001, etc.) will conflict and each user will write over the other's files, possibly causing one or both systems to hang. In most cases you will find this is not a problem, because most network users swap 4DOS to XMS or EMS memory or a local hard disk. However if you do swap to a network drive, you can prevent a conflict with the UniqueSwapName directive in 4DOS.INI, or by using the Swapping directive to assign each user's swap files to a different directory. For this reason, 4DOS will automatically enable UniqueSwapName if it detects that you are swapping to a network drive. 4DOS and Novell Netware This section gives you basic information for using 4DOS with Netware. For additional details and updated information be sure to check APPNOTES.DOC. The information below applies to Netware, but not to Novell's peer-to-peer networking software, Netware Lite. 4DOS works well with Netware, and compatibility problems should be very rare. Novell's newer NETX shells are more reliable than the older NET3 / NET4 / NET5. We recommend that you use NETX with 4DOS whenever possible. 4DOS includes a 4DOS.INI directive for Netware, NetwareNames. You must set NetwareNames = Yes on systems which load Netware to avoid problems with destroyed environment variables during LOGIN. Setting NetwareNames = Yes will increase the resident size of 4DOS by 112 bytes. Under Netware version 3 and above, 4DOS commands which scan a directory tree (e.g. COPY /S, DIR /S, GLOBAL, etc.) may stop without scanning the entire tree, and without displaying an error message. This happens when such commands exceed the size of the directory search table on your server; this is a ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 45 CHAPTER 3 / 4DOS AND YOUR HARDWARE AND SOFTWARE ------------------------------------------------------------------- Netware design issue and not a 4DOS bug. You can fix this problem by having your system administrator increase the Maximum Oustanding NCP Searches parameter for the server in question. 4DOS can be set up to run on Novell Netware diskless workstations which boot from the server. To do so, you must make several changes to 4DOS.INI and your other startup files. See APPNOTES.DOC for complete details. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 46 CHAPTER 4 / USING 4DOS UNDER OS/2 ------------------------------------------------------------------- CHAPTER 4 / USING 4DOS UNDER OS/2 4DOS offers almost unlimited flexibility for your OS/2 DOS sessions, and has been specifically designed to take advantage of OS/2 features wherever possible. However, to use DOS, 4DOS, and OS/2 successfully requires some planning if you want to get all the power possible out of each operating environment. This chapter explains some of the planning you should do and some of the techniques you can use to get everything working together correctly. It covers: * Configuring OS/2 version 1.x for 4DOS (see page 48). * Configuring OS/2 version 2.x and above DOS sessions (Virtual DOS Machines) for 4DOS (see page 48). * Arranging your 4DOS.INI, 4START, 4EXIT, and AUTOEXEC.BAT files for use in the multiple DOS sessions available under OS/2 2.x and above (see page 52). * Setting up temporary DOS sessions in OS/2 2.x and above to run a single DOS command or application (see page 53). * Adjusting 4DOS.INI, 4START, 4EXIT, and AUTOEXEC.BAT when you can boot under either DOS or OS/2 using OS/2's Dual Boot or Boot Manager features (see page 54). Throughout this section, we assume that you want to use 4DOS as your command processor in all of these situations. Also, we assume that you have installed 4DOS in the C:\4DOS directory (alter the SHELL= and DOS_SHELL settings below appropriately if 4DOS is installed in a different directory). If you are using OS/2's Dual Boot or Boot Manager, you will have (at least) two copies of CONFIG.SYS and AUTOEXEC.BAT on your computer, one for booting OS/2 and OS/2 DOS sessions, and the other for booting DOS without OS/2. See the section on Dual Boot and Boot Manager on page 54 for details on where these two sets of files are stored. Unless otherwise specified, references in this section to CONFIG.SYS and AUTOEXEC.BAT refer to the OS/2 versions of these files. Before you read this section, read through Chapter 1 / Installation (see page 4) for details on installing 4DOS and modifying the SHELL= statement in your OS/2 CONFIG.SYS file. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 47 CHAPTER 4 / USING 4DOS UNDER OS/2 ------------------------------------------------------------------- OS/2 Version 1.x Under OS/2 version 1.x, you can install 4DOS simply by setting the SHELL= line in CONFIG.SYS. This command determines how 4DOS starts when you invoke the DOS Compatibility Box from the OS/2 desktop. You can use the [options] portion of the SHELL command to select a special 4DOS.INI file and to set any other 4DOS command line options you choose. In essence, you can set up 4DOS just as you would if you installed it on a DOS system without OS/2. You can skip the sections below which explain how to configure DOS sessions under OS/2 version 2.x and above. If you are using the OS/2 version 1.x Dual Boot capability, you should read the section on Dual Boot and Boot Manager (page 54). OS/2 Version 2.x and OS/2 Warp Under OS/2 version 2.x and OS/2 Warp, you can have multiple objects which start DOS sessions, also called Virtual DOS Machines (VDMs). These may include objects in the Command Prompts window, objects for "migrated applications," objects for DOS and Windows applications, and objects for batch files. Assuming you set up your VDM objects as described here, 4DOS is loaded as a primary shell each time a DOS session starts. 4DOS will process 4DOS.INI, execute your 4START file if you have one, and execute AUTOEXEC.BAT. When the session is closed with the EXIT command, 4DOS will run your 4EXIT file if you have one. You can start any number of DOS sessions and (within the limits of system resources) have as many running simultaneously as you like. This is fundamentally different from what happens when you boot your computer under DOS or OS/2 1.x. In these environments there is only one 4DOS primary shell, AUTOEXEC.BAT is only executed once each time you boot, and so on. OS/2 version 2.x and above give you much more flexibility, but that flexibility requires planning to get the most out of 4DOS. For example, you can have all your DOS sessions use the same AUTOEXEC.BAT file, or you can have different versions of AUTOEXEC.BAT for different sessions. The same is true of the other startup and exit files (4DOS.INI, 4START, and 4EXIT). This section and the sections below discuss how to set up ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 48 CHAPTER 4 / USING 4DOS UNDER OS/2 ------------------------------------------------------------------- objects for your DOS sessions, and how to arrange your startup and exit files so that 4DOS will do just what you want it to in each DOS session. Settings for DOS Sessions Each VDM object contains its own information about how to start DOS for that session. In essence, each object has its own CONFIG.SYS file built into it. The information attached to an object which indicates how to start DOS is called its DOS Settings. You can modify these settings using OS/2's Settings notebook. To do so, click the right mouse button in the object. When the popup menu appears, click the left mouse button on the small arrow to the right of the Open selection, then again on the Settings selection on the submenu. Once the Settings notebook is open, use the Program page to modify the object's program name, startup directory, and command line parameters. The Session page lets you set the session type. Other pages let you adjust other configuration data for the object. To modify the DOS settings, use the button with that legend on the Session page of the notebook. Clicking on this button opens the DOS settings dialog box. To modify an individual setting, click on the setting name in the list box at the left, then click on the value window to the right and enter the new value. Settings with choice values (such as "On" and "Off") will show buttons for the value, rather than a text window. In a new object, each DOS setting starts out with a default value taken from your CONFIG.SYS file. For settings which have no corresponding command in CONFIG.SYS, OS/2 uses a built-in default value. For example, the DOS_SHELL setting, which specifies the command processor to use for a DOS session, defaults to the value on the SHELL= line in CONFIG.SYS. Changing the SHELL= line changes the default DOS_SHELL value for all new DOS sessions (as usual, changes to CONFIG.SYS are only effective after you reboot the system). However, the HW_TIMER setting (which tells OS/2 whether to allow the session to manipulate the hardware timer), always defaults to OFF. The default cannot be changed in CONFIG.SYS. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 49 CHAPTER 4 / USING 4DOS UNDER OS/2 ------------------------------------------------------------------- Modifying a setting whose default is specified in CONFIG.SYS, such as DOS_SHELL, breaks the "link" between that setting and the default in CONFIG.SYS. After the modification, changes made to the default in CONFIG.SYS will not affect the object at all. For example, to set up 4DOS as your default DOS command processor for OS/2 DOS sessions you might include this line in the OS/2 CONFIG.SYS file: SHELL= C:\4DOS\4DOS\COM C:\4DOS /P If you then create a new DOS session object, its DOS_SHELL setting will reflect the value from the SHELL= line. Now suppose you modify the DOS_SHELL setting for that object so that it reads: C:\4DOS\4DOS.COM C:\4DOS /L /P At this point the "link" between your object and CONFIG.SYS is broken. If you move 4DOS to a different directory and modify the SHELL= line in CONFIG.SYS, the object's DOS_SHELL setting will not be changed, and the object will no longer work properly. In order to correct this you will have to manually modify the DOS_SHELL setting for that object. You can return any DOS setting to the current default value at any time. To do so, open the DOS Settings dialog box, highlight the setting name, and click on the Default button. This replaces the value of the setting with the value OS/2 read from CONFIG.SYS when you last booted, or with the value from OS/2's standard defaults. For settings which have a default in CONFIG.SYS, this re-establishes the link between the object and CONFIG.SYS, and subsequent changes you make in CONFIG.SYS will again be reflected in the setting for that object each time you reboot. Configuring DOS Sessions for 4DOS To create a VDM object that gives you a standard 4DOS prompt, first place an asterisk [*] in the Program Name field (on the Program page in the Settings notebook). This tells OS/2 to load the DOS command processor and go to a prompt instead of running a specific DOS application. Then go to the Session page and set the session type to DOS Full Screen or DOS Window. Next, click on the DOS Settings button and set up the DOS settings for the object. 4DOS will run properly with default DOS settings, but you may want to check that the DOS_SHELL ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 50 CHAPTER 4 / USING 4DOS UNDER OS/2 ------------------------------------------------------------------- setting is correct, because this setting determines which command processor OS/2 will load when the object is used to start a session. DOS_SHELL is formatted just like the SHELL= line in CONFIG.SYS (see page 11), but without the characters "SHELL=". The DOS_SHELL setting should always include the COMSPEC path (see page 17 for an explanation of the COMSPEC path). For example, you might set DOS_SHELL to: C:\4DOS\4DOS.COM C:\4DOS /P If you've set up CONFIG.SYS for 4DOS as described in Chapter 1, any new VDM objects you create will automatically use the correct DOS_SHELL setting for 4DOS. However, VDM objects which existed before you modified CONFIG.SYS may list COMMAND.COM in the DOS_SHELL setting. To correct the setting so that 4DOS is used for these objects, modify DOS_SHELL in each object to point to 4DOS, as shown in the example above, or change DOS_SHELL back to the default value with the Default button. You can customize any object with optional 4DOS command line switches, such as @ininame, or //iniline (see page 11 for more details). These switches can be placed at the end of the DOS_SHELL setting, or in the Parameters field in the Program window. For example, your Program page might have the following settings for a standard 4DOS prompt, using a special .INI file for this session: Program Name: * Parameters: @C:\4DOS\OS2VDM.INI Working Directory: C:\ You can run any alias, internal command, DOS application, or batch file directly from a 4DOS VDM object. To do so, place the command to be executed as the last item in the Parameters field for the object. 4DOS will execute the command and then display a prompt. 4DOS will execute the command after it processes your 4START file (if any) and AUTOEXEC.BAT. If you precede the command name with /C, 4DOS will exit and return to the OS/2 desktop when the command is finished. This is a "temporary" VDM, described in more detail on page 53. You can also make 4DOS exit when the command is complete by invoking a batch file or alias which ends with the EXIT command. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 51 CHAPTER 4 / USING 4DOS UNDER OS/2 ------------------------------------------------------------------- You can create an object which runs a DOS program by placing the program name (including drive and path) in the object's Program Name field. When you select the object, OS/2 will automatically start a temporary VDM to run the program. See page 53 for additional details. ## Once you have created a 4DOS object on your desktop, you may wish to create a menu item on the desktop menu to run it. You can do so using OS/2's menu editing facilities. If you do, when you start 4DOS from the menu OS/2 will pass the name of the desktop directory as a command line argument to 4DOS. This directory name will appear to 4DOS as a COMSPEC path or a command to be executed, and may result in an error message when the session is started from the desktop menu. To avoid this, add a single % sign in the Parameters field for the object. The % sign will prevent OS/2 from passing the directory name, but will be treated as a null parameter by 4DOS. 4DOS.INI Each time you start a DOS session, 4DOS will search for 4DOS.INI in the directory where 4DOS.COM is stored, then in the root directory of the boot drive. In most cases, the best strategy is to put 4DOS.INI in the same directory as 4DOS.COM and make sure your COMSPEC setting is correct as described above. 4DOS will use this 4DOS.INI file by default for all DOS sessions. To use a different .INI file for sessions started from a particular object, include an @ininame parameter on the DOS_SHELL setting for that object as described in the previous section. Be sure to include the full path and name of the file. To modify specific 4DOS.INI settings for sessions started from an object, use one or more //iniline parameters on the DOS_SHELL setting for the object. For objects with a [*] in the program name field, the @ininame or //iniline parameters may be placed at the beginning of the Parameters field if you wish, rather than in the DOS_SHELL setting. You can also use the @ininame parameter on your SHELL= line in the OS/2 CONFIG.SYS file to change the default location of 4DOS.INI for all DOS sessions run under OS/2. If you do so, remember that changes made in CONFIG.SYS will only take effect after your next reboot, and will not affect existing objects whose DOS_SHELL setting has been changed from its default value. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 52 CHAPTER 4 / USING 4DOS UNDER OS/2 ------------------------------------------------------------------- AUTOEXEC.BAT, 4START, and 4EXIT Each time you start a DOS session, 4DOS will search for 4START and 4EXIT in the directory where 4DOS.COM is stored, then in the root directory of the OS/2 boot drive. It will search for AUTOEXEC.BAT in the root directory of the OS/2 boot drive. Therefore, the same 4START, 4EXIT, and AUTOEXEC.BAT files will normally be used for all DOS sessions. You can override these defaults with the 4StartPath and AutoExecPath directives in 4DOS.INI. To select different 4START, 4EXIT, and AUTOEXEC.BAT files for a particular object, place the files for that object in a directory that is not one of the default directories described above. Then create a new 4DOS.INI file for that object, using the 4StartPath and / or AutoExecPath directives to point to the new directory, or use a //4StartPath or //AutoExecPath directive in the DOS_SHELL setting or parameters field for the object. To disable the default 4START, 4EXIT, or AUTOEXEC.BAT files for a particular object without selecting alternate files, use the techniques described above to tell 4DOS to load these files from a directory where they do not exist. All three files are optional, so if they do not exist in the directory specified by 4StartPath or AutoExecPath, they will not be executed. Remember that if your 4START and 4EXIT files have the extension .BTM, they may be executed by both 4DOS and 4OS2. If so, you may need to customize them for DOS mode and OS/2 mode. You can use the internal variable %_DOS to separate commands for each operating system. For example: iff "%_DOS" == "DOS" rem Commands for DOS only go here else rem Commands for OS/2 only go here endiff "Temporary" VDMs So far, we have discussed starting a VDM to run 4DOS and get to the DOS prompt. OS/2 version 2.x and above also lets you start a temporary VDM, for example to run a DOS application or batch file from a desktop object. In a temporary VDM, 4DOS is still loaded as the primary shell even though it is being invoked to run just a single command or application. This primary 4DOS shell is also a "transient" ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 53 CHAPTER 4 / USING 4DOS UNDER OS/2 ------------------------------------------------------------------- shell that exits (back to OS/2) when its job is done. Temporary VDMs are created automatically by OS/2 if you set up an object with the Program Name set to the name of a DOS application. You can also start them yourself by using a /C (see page 16) in the Parameters field for a standard 4DOS object. For example, to create a temporary VDM to run your word processor you might set up an object like this: Program Name: E:\WORDPROC\WP.EXE Parameters: [blank] Working Directory: D:\LETTERS You usually won't want a temporary VDM to load all the memory- resident utilities and execute all the commands that you want when you are setting up a DOS prompt. Most often, you will want to set up a simple VDM, run the command, and exit as quickly as possible. The 4DOS internal variable %_TRANSIENT makes it easy to do just that. The beginning of your AUTOEXEC.BAT file could look like this: iff %_transient == 1 then call setpath call aliases quit endiff This fragment calls other batch files to set up the path and aliases, but it does not load TSRs. Configuring 4DOS for Dual Boot and Boot Manager When you install OS/2, you are given a choice of making it the only operating system on your computer, or retaining a DOS boot capability as well. If you retain a DOS boot capability, OS/2 offers two different methods for switching between DOS and OS/2: Dual Boot (OS/2 versions 1.x, 2.x, and Warp) and Boot Manager (OS/2 version 2.x and OS/2 Warp only). The way you configure 4DOS to work with OS/2 depends partly on whether you retain a DOS boot capability on your computer, and, if so, which method you choose. Dual Boot is invoked with the BOOT command (the program BOOT.COM distributed with OS/2). If you use Dual Boot, you will have one copy of CONFIG.SYS and AUTOEXEC.BAT available on your boot drive when you boot in DOS mode and another version available when you boot in OS/2 mode. BOOT.COM works by ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 54 CHAPTER 4 / USING 4DOS UNDER OS/2 ------------------------------------------------------------------- swapping the DOS and OS/2 versions of CONFIG.SYS and AUTOEXEC.BAT, as well as other system data, then rebooting the computer. Boot Manager (included with OS/2 version 2.x and above only) uses a different approach. It lets you install DOS on one hard drive partition and OS/2 on another partition. When you boot the computer, Boot Manager displays a menu and lets you pick which operating system to boot. Each partition will have its own versions of CONFIG.SYS and AUTOEXEC.BAT. The difference between these approaches is the location and availability of files. If you use Dual Boot, the system always boots from the same drive, whether you are booting DOS or OS/2. The CONFIG.SYS and AUTOEXEC.BAT files are switched back and forth as you switch from one operating system to the other. The set of files that is in use at any given time is stored in the root directory of the boot drive, and the set not in use is stored in the \OS2\SYSTEM directory. If you use the Boot Manager, the files for DOS reside on one drive (for example, C) and those for OS/2 are on another drive (for example, D). The files are not moved when you switch operating systems. In both cases, you can keep the startup files synchronized or independent to meet your own needs. CONFIG.SYS Setting up CONFIG.SYS is very simple, whether you are using Dual Boot or Boot Manager. Modify both the DOS and OS/2 CONFIG.SYS files for 4DOS as described on page 7. The two files remain separate, and any changes to common items (for example the name of the directory where 4DOS is stored, used in the SHELL= command) must be made in both files. AUTOEXEC.BAT With AUTOEXEC.BAT, you have more flexibility. Whether you use Dual Boot or Boot Manager, you will have two standard AUTOEXEC.BAT files: one for starting 4DOS under a DOS boot and one for OS/2 DOS sessions. If you want different commands in AUTOEXEC.BAT for a DOS boot and OS/2 DOS sessions, you can keep the two files separate and distinct. Just be sure to update both files whenever you make changes to the commands they have in common. You can also ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 55 CHAPTER 4 / USING 4DOS UNDER OS/2 ------------------------------------------------------------------- CALL other batch files from each copy of AUTOEXEC.BAT to handle common commands. You may find that many of the commands in the two AUTOEXEC.BAT files are the same and that it is more convenient to maintain a single file. The following paragraphs explain how to do so. If you use the Boot Manager, you can put all of your instructions in one file and start it from the other. For example, if DOS boots from drive C: and OS/2 boots from drive D:, your AUTOEXEC.BAT on drive D: could simply be: cdd c:\ autoexec.bat On a Dual Boot system the startup files are moved each time you boot, so you cannot start one file from the other as you can with Boot Manager. If are using Dual Boot and you want to use the same commands in AUTOEXEC for both DOS and OS/2, you must put all of your commands into a third file (for example, C:\SYSTART.BAT), and CALL that file from both the DOS and OS/2 AUTOEXEC.BAT files. You can also use the AutoExecPath directive in 4DOS.INI to force 4DOS to look in a particular directory for AUTOEXEC.BAT regardless of whether it is started from an OS/2 DOS session or from a DOS boot, and regardless of the boot drive. If you keep commands for both boot modes in a single AUTOEXEC.BAT file, you can use the internal variable %_DOSVER to separate commands to be executed during a DOS boot from those for an OS/2 DOS session. %_DOSVER will be 10 or above for OS/2 DOS sessions. For example: iff %_DOSVER ge 10.0 rem Commands for OS/2 DOS go here else rem Commands for native DOS go here endiff 4DOS.INI, 4START, and 4EXIT Handling 4DOS's startup and exit files is a little different. Unlike CONFIG.SYS and AUTOEXEC.BAT, the other startup files won't be swapped for you when you switch operating systems with Dual Boot, and they won't be automatically stored on separate partitions if you use the Boot Manager. 4DOS normally looks for these files in the directory where 4DOS.COM is stored, so the same files will be used for both a DOS boot and OS/2 DOS sessions. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 56 CHAPTER 4 / USING 4DOS UNDER OS/2 ------------------------------------------------------------------- To set up one 4DOS.INI file for DOS and another for OS/2 DOS sessions, use the @ininame parameter on the SHELL= line in CONFIG.SYS (see page 11). For example, you might configure the SHELL= line for DOS to load the default file (4DOS.INI in your 4DOS directory), and use the @ininame parameter on the SHELL= line in the OS/2 CONFIG.SYS file to select a different .INI file for OS/2 DOS sessions. To do so, use a line like this for DOS: SHELL=C:\4DOS\4DOS.COM C:\4DOS /P And one like this for OS/2 (enter this on one line): SHELL=C:\4DOS\4DOS.COM C:\4DOS @C:\4DOS\4DOSOS2.INI /P To select different 4START and 4EXIT files for DOS and for OS/2 DOS sessions, place one set of files in a different directory (not the directory where 4DOS.COM is stored). Then either set up a different 4DOS.INI file for that boot mode as described above, using 4StartPath to point to the new directory, or use a //4StartPath directive on the SHELL= line in CONFIG.SYS for that boot mode. For example, this line in an OS/2 CONFIG.SYS file sets 4DOS as the command processor, and tells 4DOS to look for 4START and 4EXIT in the C:\4DOS\OS2START directory (enter this on one line): SHELL=C:\4DOS\4DOS.COM C:\4DOS //4STARTPATH=C:\4DOS\OS2START /P You can also keep commands for both boot modes in a single 4START or 4EXIT file, and use %_DOSVER to separate the commands to be executed during a DOS boot from those for an OS/2 DOS session. For a basic example, see page 56. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 57 Appendix A / Solving Software Compatibility Problems ------------------------------------------------------------------- Appendix A / Solving Software Compatibility Problems Any DOS program running on your computer can potentially interact with any other program running at the same time. Of course, most program interactions are ones you want: your print spooler intercepts printer output and saves it to print later, or your disk cache intercepts disk requests and speeds them up by retrieving data from memory. If you've used the PC for any length of time, however, you'll know that you can also get interactions you don't want. If you load just the wrong combination of TSRs and device drivers, your system may slow to a crawl. Perhaps you can't load your favorite Personal Information Manager with Windows running. And so on. As publishers of a product that replaces part of the operating system, we're very familiar with these issues - not because 4DOS is more likely to cause problems, but because it sometimes gets blamed first when a problem appears. Our technical support department has developed a set of reliable techniques for finding out what's causing an apparent compatibility problem with 4DOS and other software. We are presenting these techniques here as a series of things to try when there seems to be a compatibility problem. Some may not make sense for the particular problem you're investigating. Others may not yield useful results. But as a group, they'll help you resolve many of the common software interactions that do appear, whether with 4DOS or anything else. Before you get started, be sure to check APPNOTES.DOC to see if we've already solved the problem you're facing. If you've tried the techniques in this section and haven't found the problem, contact our technical support department (see page 3). We have more tricks up our sleeve, and a very high success rate at resolving compatibility problems. Some of our suggestions help you figure out what's going on, but aren't intended to help you fix it. For example, when we suggest that you remove all your TSRs to look for the problem, we aren't suggesting that as a permanent solution, but only as a diagnostic test. The first thing to consider is whether the particular combination of software that's not working used to work together. If so, think carefully about what you have changed and see if reversing the change solves the problem. If it does, then you can narrow your search, using the following techniques to find out what it is about that specific change that is causing the problem. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 58 Appendix A / Solving Software Compatibility Problems ------------------------------------------------------------------- Second, make sure that your problem can be reproduced relatively easily, and make sure you know exactly what sequence of commands or other steps reproduces it. Most interactions are very easy to reproduce, but if you think there's an interaction and it occurs once every 10 days, it's going to be difficult to know when you have fixed it. Also, the process of carefully documenting how to reproduce a problem often helps you realize what the problem is without further effort. If you have a problem with a specific application hanging or working improperly, and the above techniques don't help, then try reducing your system configuration to the simplest possible level. This is the single most useful tool we know for finding compatibility problems. To do so, use all of the approaches listed below, and any other similar things you may be able to think of about your particular system after reading our suggestions. When you're modifying 4DOS.INI in an attempt to resolve problems, you may find the INIQuery directive useful. If you set INIQuery to Yes for a section of 4DOS.INI, then 4DOS will prompt you for each line in that section. This allows you to test the effects of changing directives in the .INI file without actually modifying the file for each test. Path Length The first thing to do is to check the length of your PATH variable. 4DOS lets you make it longer than the traditional limit of 123 characters. Some programs can't handle long PATHs and may behave strangely. If your PATH is over the traditional limit, reduce its size using the PATH or ESET command and see if the application starts working. If so, use a batch file or alias to set up an alternate path for running that one program, for example: setlocal path d:\myprog d:\myprog\myprog.exe endlocal The SETLOCAL / ENDLOCAL pair saves and restores the environment; when you're done, the old PATH will be restored automatically. Environment Size Next, check how much environment space is in use in your system. The 4DOS MEMORY command reports the total environment space and the amount free; a simple subtraction tells you how ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 59 Appendix A / Solving Software Compatibility Problems ------------------------------------------------------------------- much is in use. Some programs simply don't work right if there's a lot of information in the environment (these programs don't usually care how big the total environment space is, only how much of it is actually in use). In most cases, these problems show up when the amount of space in use gets up to around 1K (1024) bytes or so, but they can occur at any point. To test for this, use the following simple batch file: setlocal unset var1 var2 var3 ... [command to run the program in question] endlocal where VAR1, VAR2, etc. are variables you can remove from the environment to decrease the space in use before running the program. If reducing the environment space in use makes things work, contact the program's manufacturer and report the problem. You have found a legitimate bug. DOS allows an environment of up to 32K bytes, and your program should be able to work with an environment that large. Until the manufacturer fixes the bug, use the batch file above as a workaround. Testing for Interactions Before testing for software interactions, try booting your system with COMMAND.COM, without changing anything else about your configuration (though you may have to modify AUTOEXEC.BAT if it contains 4DOS-specific commands). If the problem remains, then it's not related to an interaction with 4DOS. Contact the manufacturer of the software that isn't working properly to determine the cause of the problem. To look for a multi-program interaction, you'll need to remove all the device drivers and TSRs you possibly can and still have enough software present to demonstrate the problem. For example, you can't look for a network problem if you don't load the network, but you probably can check it without your disk cache running. If you're running DOS, be sure you have a bootable floppy disk handy (see page 4) before modifying your CONFIG.SYS and AUTOEXEC.BAT files to remove drivers and TSRs. If you run a partitioning disk driver, you probably can't remove it for diagnostic purposes without temporarily losing access to some or all of your hard disk. The same may be true of disk compression programs like Stacker, depending on the mode in which they are installed. Most other device drivers and TSRs can be removed without causing trouble. Check your ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 60 Appendix A / Solving Software Compatibility Problems ------------------------------------------------------------------- system and software manuals if you are unsure of which programs can safely be removed. Once you know what you can take out, don't skimp or guess where the interaction might be. Take out everything you possibly can from CONFIG.SYS, 4START, and AUTOEXEC.BAT that loads or accesses another program . In CONFIG.SYS, remove all possible DEVICE and INSTALL statements. In AUTOEXEC.BAT, remove all the lines you can that load memory-resident programs (and remember that some DOS utilities, like MODE, can be memory-resident). Of course, you should save copies of your configuration files before you delete anything. Better yet, use the REM command to remove lines temporarily without deleting them. REM can be used on any line in AUTOEXEC.BAT, in 4START, and in CONFIG.SYS if you are running DOS 4.0 or above. (In earlier DOS versions, REM will work in CONFIG.SYS but will also generate a harmless "unrecognized command" message during bootup.) If you want to remove everything in AUTOEXEC.BAT you can rename it to another name (say AUOTEXEC.SAV), and rename it back when you are done testing. Clean out your configuration files all at once, not one line at a time. If that solves the problem, you're on the right track, and you can put the lines back one at a time until you find the culprit. If it doesn't solve the problem, you won't waste time removing lines one by one. If the problem isn't there under COMMAND.COM, try fiddling with the program's configuration. If you were loading it high, try loading it low. If you can change the way it uses memory, try doing so. If it's a driver that's used by other programs (like your mouse driver) and is quite old, consider obtaining an update from the manufacturer. All of these techniques will help you narrow down what it is about the program that's causing a problem. Once you have done that, you may have a simple workaround. If not, contact our technical support department and we'll try to verify the problem, then resolve it with the manufacturer of the other software. Some problems can be resolved by modifying the order in which you load drivers and TSRs. If you've found a problem with a particular driver or TSR, if possible try loading it earlier or later than you were and see if the problem goes away. If you're running OS/2, the process of removing device drivers and TSRs is usually simpler than under DOS. You probably won't need to modify CONFIG.SYS, but you may need to adjust the DOS Settings for the session in which 4DOS is running (see page 49). Try changing the amounts of XMS, EMS, and DPMI ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 61 Appendix A / Solving Software Compatibility Problems ------------------------------------------------------------------- memory available to the DOS session, removing drivers if any are listed under DOS_DEVICE in your DOS Settings, and removing memory-resident programs loaded in AUTOEXEC.BAT as described above. Memory Allocation Conflicts A memory allocation conflict is very simple. It occurs when two (or more) programs try to use the same memory, or when a program behaves differently depending on where it is loaded in memory. Inevitably, at least one of the programs will operate incorrectly, report an error, or hang. These conflicts can be very hard to diagnose, because it's difficult to determine which programs are actually causing the conflict, and the symptoms may appear to be totally unrelated to the program responsible for the problem. 4DOS uses memory in a more complex way than COMMAND.COM. It can use base, XMS, or EMS memory, and store portions of itself and its data in UMBs (see page 24 for additional details on 4DOS memory usage). COMMAND.COM does not offer any of these capabilities. This added complexity makes it more likely that you'll encounter memory allocation conflicts with 4DOS. This isn't because 4DOS is less reliable than other programs, it's because the memory allocation conflict was there waiting to happen, and 4DOS triggered it through its access to additional memory. It's easy to check whether 4DOS's use of memory is a problem. If you configure 4DOS so that it swaps to disk, and disable all use of UMBs, then 4DOS uses only base memory, and (in terms of memory allocation) operates very much like COMMAND.COM. You can make this change in two simple steps. First, add one line to 4DOS.INI: Swapping = c:\ (change this if you prefer to swap to a different drive, but do not use a RAM disk when you are testing for compatibility problems - the RAM disk itself could be part of the problem). Second, remove any lines in 4DOS.INI which allocate UMBs (UMBLoad, UMBEnvironment, UMBAlias, and UMBHistory), or place a semicolon at the start of such lines to temporarily turn them into comments. If these steps solve the problem, you've found a memory allocation conflict. The next thing to do is remove all the drivers and TSRs you can to see if you can determine where the conflict is. For specific techniques, see page 60. If you ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 62 Appendix A / Solving Software Compatibility Problems ------------------------------------------------------------------- can't come up with an acceptable solution using these techniques, contact JP Software for technical assistance. Memory Allocation and Microsoft Windows If you use Microsoft Windows, there are some specific memory allocation issues you need to consider. When you run Windows in 386 Enhanced mode, the Windows memory manager "takes over" from the underlying DOS-based memory manager. If the two programs don't see memory in quite the same way, the conflict can produce some very strange behavior. For example, the same memory can be allocated twice, or Windows can put portions of itself in areas that were being used by 4DOS or your device drivers and TSRs. These problems typically apply to upper memory, and not to EMS or XMS memory. Any of them can cause substantial difficulties in Windows DOS sessions. To avoid such problems you need to systematically verify that Windows and your memory manager are using the same information about upper memory. You can do so with this approach: * First, gather a list of all the areas of upper memory used by your hardware. This may require consulting your hardware manuals. Look for an explanation of the range of addresses used by each board, as a pair of 4- digit hexadecimal numbers, for example D400-D7FF. (Sometimes the addresses have a trailing zero, for example D4000-D7FF0. In this case use only the first 4 digits.) Some boards use no upper memory space at all. Boards which may occupy space in upper memory include network interface cards, SCSI boards, sound cards, and scanner boards. Some hard disk controllers and video boards also use upper memory space, including "Super VGA" and other high-resolution video boards. Video boards may use different areas of upper memory depending on your display mode. However, you don't usually need to consider the standard areas used by basic VGA boards. * Next, make sure you have excluded all the areas of upper memory from management by your memory manager. The basic approach is to include a switch when you start up the memory manager, for example /X=D400-D7FF to exclude the range D400-D7FF. See your memory manager documentation for the exact method. * Finally, locate the SYSTEM.INI file in your Windows directory. Find the section of this file beginning [386Enh] and add an EMMExclude line to it for each range to be excluded, for example: ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 63 Appendix A / Solving Software Compatibility Problems ------------------------------------------------------------------- EMMExclude=D400-D7FF The list in SYSTEM.INI should exactly match the exclude list given to your memory manager. If this technique solves the problem, you're finished. If not, also check that any network you have installed is properly configured for Windows. Errors in network configuration under Windows may generate memory allocation conflicts of their own, and can cause unusual behavior in Windows DOS sessions even though the DOS sessions are not specifically accessing the network. Advanced Configuration Options If none of the other techniques in this Appendix proves useful, some of the advanced directives in 4DOS.INI may help solve very rare configuration problems. However, unless you are an experienced DOS user and understand the side effects of each directive, they should be used only as diagnostic tools and not as a workaround or fix. Any of the following can be tried for the conditions indicated: FineSwap = Yes: If you are using disk swapping and your system hangs when exiting an application. Inherit = No: If you have unexplained problems in starting secondary shells. LineInput = Yes (or SETDOS /L1): If you have memory- resident programs which do not recognize that you are at the prompt. Reduce = No: If you have unexplained problems in starting secondary shells. ReserveTPA = No: For unusual memory allocation problems. SwapReopen = Yes: If an application or network generates reproducible errors related to the 4DOS swap file (for example "Swap file seek failed" or similar errors) ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 64 APPENDIX B / TECHNICAL INFORMATION ------------------------------------------------------------------- APPENDIX B / TECHNICAL INFORMATION This appendix provides technical information for programmers who wish to build interfaces to 4DOS. It covers detecting 4DOS, placing keystrokes in the Keystack, writing installable commands, using the DESCRIPT.ION file, and using the interrupt 2E "back door" entry into 4DOS to execute commands. Detecting 4DOS Detecting 4DOS From a Batch File From a batch file, you can determine if 4DOS is loaded by testing for the variable function @EVAL, with a test like this: if "%@eval[2+2]" == "4" echo 4DOS is loaded! This test can not succeed in COMMAND.COM and is therefore a reliable way to detect 4DOS. Other variable functions could be used for the same purpose. Detecting 4DOS From a Program Any program can test for the presence of 4DOS by making a simple INT 2Fh call. Be sure to check the INT 2Fh vector first as it may be 0 under some versions of DOS if no program has hooked the interrupt. To detect 4DOS, call INT 2Fh with: AX D44Dh BX 0 If 4DOS is not loaded, AX will be returned unchanged. If 4DOS is loaded, it will return the following (no other registers are modified): AX 44DDh BX Version number (BL = major version, BH = minor version) CX 4DOS PSP segment address DL 4DOS shell number The shell number is incremented each time a new copy of 4DOS is loaded, either in a different multitasker window (for example, under Windows), or via nested shells. The primary ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 65 APPENDIX B / TECHNICAL INFORMATION ------------------------------------------------------------------- shell is shell number 0. In OS/2 DOS sessions, each session's primary shell is shell 0. The response to INT 2F function D44Dh will come from the most recently loaded 4DOS shell. For example, if your program is run from a secondary shell the response will come from that secondary shell, and will reflect its shell number and PSP address. This function tells you if 4DOS is loaded in memory, but not whether it is the parent process of your program. You can determine if 4DOS is the parent process by comparing the PSP value returned in CX to the PSP chain pointer at offset 16h in your program's PSP. Detecting the 4DOS Prompt 4DOS generates INT 2Fh calls before and after the prompt is displayed to allow TSRs to detect that 4DOS is at the prompt. The calls are: AX D44Eh BX 0 if 4DOS is about to display the prompt; 1 if 4DOS has displayed the prompt and is about to accept keyboard input; or 2 if keyboard input is complete and 4DOS is about to begin processing the line. Any routine intercepting these calls should preserve the SI, DI, BP, SP, DS, ES, and SS registers. Placing Keystrokes Into the Keystack You can put keystrokes into the 4DOS Keystack with an INT 2Fh call. First, you must make a call to check whether KSTACK.COM is loaded: AX D44Fh BX 0 If KSTACK.COM is not loaded, this call will return AX unchanged. If it is loaded, AX will be returned as 44DDh; other registers will be unchanged. Once you have determined that KSTACK.COM is loaded, you can send keystrokes with this call: AX D44Fh BX 1 CX number of words being passed (0 - 255) ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 66 APPENDIX B / TECHNICAL INFORMATION ------------------------------------------------------------------- DS:DX address of the keystroke array On return, if the call succeeded then AX will be 0; if it failed, AX will be non-zero. BX, CX, and DX are destroyed; other registers are preserved. If the call succeeds, subsequent calls to INT 16h functions 0, 1, 10h, or 11h will receive the stacked keystrokes. The keystroke array passed to KSTACK must be an array of words containing the values to return from INT 16h. The high byte of each word is a scan code and the low byte is an ASCII code. Many programs accept keystrokes properly with only the ASCII code, but some require the scan code as well. See Appendix B of your Reference Manual for a list of ASCII and scan codes for most keyboards. To insert a delay in the keystroke sequence, include a word set to FFFFh followed by a word containing the desired delay in clock ticks. Writing Installable Commands An "installable command" is created with a memory-resident program (TSR) which can receive signals from 4DOS and process commands. 4DOS makes every command available to such TSRs before it is executed; if any TSR chooses to execute the command, 4DOS will do no further processing. Otherwise, 4DOS processes the command normally. The 4DOS "Installable Command" interface is compatible with an undocumented interface present in COMMAND.COM for MS-DOS and PC-DOS 3.3 and above. This interface is documented more thoroughly in the excellent reference text Undocumented DOS by Schulman et. al., published by Addison Wesley. 4DOS looks for an installable command after alias and variable expansion and redirection, and after checking to see if the command is a drive change, but before checking for an internal or external command. 4DOS first makes an INT 2Fh call to determine whether any TSR loaded will respond to the command, with: AX AE00h BX offset of command line buffer: first byte = maximum length of command line second byte = actual length of command line, not including trailing CR remainder = command line, with a trailing CR CH FFh CL length of command line, not including the command name ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 67 APPENDIX B / TECHNICAL INFORMATION ------------------------------------------------------------------- DX FFFFh SI offset of command name buffer: first byte = length of command name remainder = command name, shifted to upper case and padded with blanks to 11 characters DS segment for command line and command name buffers If the TSR does not recognize the command as its own, it must pass the INT 2Fh along with registers unchanged. If it does recognize the command, it must return 0FFh in AL. The command should not be executed at this point. 4DOS will then make another call (buffer formats are the same as above): AX AE01h BX offset of command line buffer CH 0 CL length of command name DX FFFFh SI offset of command name buffer DS segment for command line and command name buffers If the TSR executes the command line, it must set the command name length at DS:[SI] to 0. If the command name length is not set to 0, 4DOS will attempt to execute the command as an internal or external command. This allows the TSR to return a modified command line to 4DOS by modifying the command line buffer at DS:BX, and leaving the command name length byte at DS:[SI] set to a non-zero value. If the command is executed, the TSR should return the result of the command (zero for normal return or non-zero for an error) in AL. Using DESCRIPT.ION 4DOS uses the file DESCRIPT.ION to store file descriptions. This file is created as a hidden file in each subdirectory which has descriptions, and deleted when all descriptions are removed or when all files with descriptions are deleted. If you remove the hidden attribute from the file, 4DOS will not hide it again. Your programs can access DESCRIPT.ION to create, retrieve, or modify file descriptions, and to store other information. DESCRIPT.ION has one line per file, and is unsorted. Each line is in the following format: filename.ext Description[*Other program info]... There is normally one space between the description and filename but additional spaces may be used in future versions of 4DOS. The characters after the description allow extension ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 68 APPENDIX B / TECHNICAL INFORMATION ------------------------------------------------------------------- of the description format for use by other programs. They are as follows: * is an ASCII Ctrl-D (04), and marks the end of the description text and the beginning of information for a program other than 4DOS. This symbol can appear multiple times on each line; each occurrence marks the beginning of information for another program. is an identification byte for the program which is using this area of the particular line. If you are writing a program which will store information in DESCRIPT.ION, test it using an ID byte of your own choosing. When you are ready to release the program, contact JP Software and we will provide you with an ID byte value that is not in use by others to the best of our knowledge. Other program info is any text the program wishes to store in its area of the line. The text should relate specifically to the file named on the line. It may not contain the Ctrl-D character, carriage returns, line feeds, or nulls (ASCII 0s). 4DOS will copy, delete, or move all the information on a line in DESCRIPT.ION, including information owned by other programs, when performing the same action on the corresponding file. 4DOS will also change the name if a file is renamed. To support DESCRIPT.ION properly, your program must do the same if it copies, deletes, moves, or renames files. Take care not to remove information which does not belong to your program, or delete lines which contain information for other programs. Your program should be able to handle a line terminated by a CR or LF alone, a CR/LF pair, an EOF (ASCII 26), or the physical end of the file. The lines it creates should be terminated with CR / LF. The line length limit is 4096 bytes; exceeding this limit will cause unpredictable results. Interrupt 2E 4DOS provides full, documented support for the undocumented COMMAND.COM "back door" entry, INT 2E (hex). INT 2E allows applications to call the primary copy of the command processor to execute commands, without loading a secondary shell. INT 2E support is enabled by default. It can be disabled with the FullINT2E = No directive in 4DOS.INI, in which case 4DOS "hooks" INT 2E, but any calls to it are ignored. INT 2E support adds about 100 bytes to the resident size of 4DOS, and ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 69 APPENDIX B / TECHNICAL INFORMATION ------------------------------------------------------------------- applies only to the primary shell (it is ignored in secondary shells). To use INT 2E, set DS:SI to the address of a buffer containing the command, then issue an INT 2E. The buffer format is: First byte Length of the command, not including this byte or the last byte Text bytes The command text Last byte CR (ASCII 13) You must release enough memory for 4DOS to reload its transient portion, and provide about 80 bytes of available stack space for the INT 2E handler to use. INT 2E can not be called from a TSR while 4DOS is running (for example, a TSR popped up at the 4DOS prompt or from within LIST or SELECT), but can be called from within any application or from within a TSR while an application (including the 4DOS HELP system) is running. INT 2E can invoke any 4DOS command including an alias, an internal command, an external command, or a batch file. All changes to 4DOS data (such as aliases, environment variables, and SETDOS settings) which are made by a command executed via INT 2E calls will affect the primary shell, and the environment passed to a program called via INT 2E will be a copy of the primary shell's environment. INT 2E uses the same internal stack as the primary shell. If a complex command is used in the primary shell to start a program which eventually issues an INT 2E, the additional stack space required by commands executed through INT 2E may (in rare circumstances) cause a stack overflow. If this occurs, use the StackSize directive in 4DOS.INI to increase 4DOS's internal stack space. INT 2E also uses the same batch file "stack" as the primary shell. This means that if INT 2E is used to execute a batch file, this batch file is considered "nested" within any batch file(s) used in the primary shell to start the program which issued the INT 2E. This may cause batch nesting errors from within the INT 2E call which would not occur if the same command were executed at the prompt. On return from INT 2E, all registers will be destroyed except SS and SP. AX will be set as follows: FFFFh An error occurred before processing the command: not enough memory was available, INT 2E was called from a TSR, or another error made it impossible to handle the interrupt. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 70 APPENDIX B / TECHNICAL INFORMATION ------------------------------------------------------------------- 0 The command was processed without error. > 0 There was an error in processing the command. AX is the error number, equivalent to the %_? value from an internal command or the %? value from an external command. If a batch file is run, the value will be the error level returned by the batch file (via QUIT n or CANCEL n) or the last command within it. If an alias is run the value will be the exit code returned by the last command in the alias. ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 71 Index ------------------------------------------------------------------- Index A Alias list, local and global, Conventions: Most fully 12, 26, 27 capitalized terms (e.g., ECHO, ANSI driver, 28 SELECT) are command names in CONFIG.SYS, 30 unless otherwise noted. APPEND command, 32 APPNOTES.DOC, 2 AUTOEXEC.BAT, 10, 16 Special Characters and 4START, 16 and installation, 4, 6, 8 ## advanced topic mark, 3 and OS/2, 47, 53, 55 ! warning mark, 3 and OS/2 Dual Boot and Boot Manager, 55 3 and startup command, 13 disabling, 12 386MAX, 28 running, 13 single-step option, 13 4 starting KSTACK.COM, 8, 16 4DOS for Windows NT, 1 B 4DOS.INI, 10 and OS/2 DOS sessions, 51, Back & Forth, 15 52 Base memory, see Memory and OS/2 Dual Boot and Boot Batch files, startup, 13, 16, Manager, 56 35 directives, on startup and Microsoft Windows, 38 command line, 11, 15 BIOS, 28 location of, 11, 15, 52 Boot Manager, see OS/2 prompts during execution, BOOT.SYS, 14 59 Bootable disk, creating, 4 reference information, 2 secondary section, and C multitasking, 35 4DOS.PIF, 38 CD-ROM drives, 31 4EXIT, 10, 16 Colors, in help system, 21, 30 and 4OS2, 53 Command history list, local and and OS/2, 53, 56 global, 12 location of, 53 COMMAND.COM 4HELP, see Help system in DOS version 2.x, 14 4OS2, 1 in Microsoft Windows, 37 and 4DOS installation, 5 in multitasker DOS windows, 4START, 10, 16 35 and 4OS2, 53 Commands and multitasking, 36 4DOS startup, 13, 16 and OS/2, 53, 56 and multitasking, 35 and startup command, 13 in OS/2 DOS sessions, location of, 53 51 single-step option, 13 help on, 19 programming interface, 67 reference information, 2 ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 72 Index ------------------------------------------------------------------- Compatibility, 23 Configuration, 10 and disks, 30 troubleshooting, 64 and memory, 24 Coprocessor, see Numeric and the CPU, 23 coprocessor and video hardware and CPU, 23 software, 28 Critical errors, 12, 15 solving problems, 58 Cursor shape, 29 with DOS, 32 with Microsoft Windows, 37 D with Microsoft Windows 95, 39 DBLSPACE, 31 with multitasking software, DEL, speed of, 31 34 Descriptions, see File with networks, 44 descriptions with Novell Netware, 45 DESQview, 15, 34 Compressed drives, 31 Detecting 4DOS, 65 and installation, 5 DIR, speed of, 31 COMSPEC Directory history list, local environment variable, 17 and global, 12 and disk swapping, 19 Directory scans, and Novell and DOS FORMAT /S, 32 Netware, 45 and multitaskers, 35 Disk drives, 30 checking, 17 free space on, on networks, setting automatically, 45 11, 17 swapping to, 17 setting manually, 9, 17 Disk reset, 31 path, 7, 11, 17 @DISKFREE variable function, and OS/2 DOS sessions, on networks, 45 11, 51, 52 Diskless workstations, 44 CONFIG.SYS, 10 @DISKTOTAL variable function, 4DOS commands in, 11 on networks, 45 and ANSI driver, 30 @DISKUSED variable function, and DOS bug, 14 on networks, 45 and installation, 4, 6, 7 DOS, see also MS-DOS / PC-DOS; in OS/2, 47 Novell DOS Dual Boot and Boot memory, see Memory Manager, 55 shell, 1 location of, 55 version 2.x, 14 multiple configuration versions of, 1 utilities, 6, 32 DOS sessions, see OS/2 DOS SET commands in, 32 sessions SHELL=, 11 DOS version 2.x, 14 and installation, 7 DOS=UMB, in CONFIG.SYS, 28 and multiple DOS_SHELL, see OS/2 DOS configuration sessions utilities, 14 DR DOS, see Novell DOS in DOS version 2.x, 15 DRAWBOX, 29 in OS/2, 49, 52, 57 DRAWHLINE, 29 in OS/2 1.x, 48 DRAWVLINE, 29 length of, 14 Drive, see Disk drives Dual Boot, see OS/2 ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 73 Index ------------------------------------------------------------------- E Installable commands, 67 Installation, 4 EGA, 29, 30 and DOS 2.x, 4 EMS, see Memory and OS/2 Dual Boot and Boot Environment Manager, 5 loading in UMBs, 27 automated, 6 memory space for, 12, 15 directory for, 4 size of, and compatibility manual, 7 problems, 59 of downloaded updates, 4, 7 Expanded memory, see Memory on diskettes, 7 Extended memory, see Memory preparations under DOS, 4 F under OS/2, 5 reversing, 8 File descriptions stopping, 7 and disk performance, 31 INT 2E, 69 programming for, 68 INT 2F, 65 File names, long, 42 File names, on networks, 44 K File passwords, in Novell DOS, 33 KEYSTACK Floppy disks, 30, 31 and multitasking, 36 FORMAT /S command, 32 programming interface, 66 Free memory, see Memory KSTACK.COM, 8, 16 FREE, on networks, 45 and multitasking, 36 and Windows 95, 43 G L Guided tour, 1, 6, 7 LH, 27 H LIST, 29 LOADHIGH, 27 Hard drives, 30 Local and global aliases and Hardware compatibility, see histories, 12 Compatibility Local and global aliases and Help system, 2, 19 history, 26, 27 /? option, 20 Long file names, 42 and monochrome monitor, 30 colors, 21 M configuring, 21 keystrokes, 20 Master environment, see location of files, 21 Environment options, 22, 30 Memory, 24, 26 HELPCFG, see Help system allocation conflicts, 62 History list, local and global, and networks, 64 26, 27 and Windows, 63 HMA, see Memory base, 24 checking status, 26 I expanded (EMS), 24, 25 hardware, 28 .INI file, see 4DOS.INI swapping to, 17, 27 ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 74 Index ------------------------------------------------------------------- Memory (continued) N extended, 25 4DOS's use of, 26 Networks, 44 extended (XMS), 25 disk access problems on, 31 4DOS's use of, 26 disk space calculations on, swapping to, 17 45 high memory area (HMA), 25 disk swapping on, 45 problems with, 26 diskless workstations on, upper, 24 44 upper memory blocks (UMBs), file and directory names 25 on, 44 4DOS's use of, 27 Novell DOS, 11, 25, 32 and Windows, 63 and LOADHIGH, 33 regions, 28 memory management, 27 system requirements passwords, 33 for, 27 Novell Netware, 45 used by 4DOS, 17, 26 diskless workstations on, Memory resident programs, see 46 TSRs Numeric coprocessor, 24 Menus, in CONFIG.SYS, 32 Microsoft Windows, 35, 37, 39 O and batch files, 38 and compatibility, 63 Options, see Startup Options and secondary shells, 15 OS/2, 47 Microsoft Windows 95 4OS2 product, 1 4DOS as primary shell, 40 and 4EXIT, 53 and KSTACK.COM, 43 and 4START, 53 boot sequence, 39 and AUTOEXEC.BAT, 47, 53 long file names, 42 and COMSPEC path, 11, 51, starting 4DOS from, 41 52 Monochrome monitor, and help CONFIG.SYS file, 11, 47 system, 22, 30 Desktop menu, 52 Mouse, in help system, 22 DOS sessions, 48 MS-DOS / PC-DOS, 32 and .INI file, 52 APPEND command, 32 and 4DOS, 50 bug in CONFIG.SYS DOS_SHELL setting, 49, processing, 14 51, 52 FORMAT /S command, 32 settings for, 49 memory management, 25, 27, startup commands for, 28 51 version 2.x, 4 Dual Boot and Boot Manager, version 6.x, 13, 14 47, 54 Multiple configuration and 4DOS installation, utilities, 6, 14, 32 5 Multitasking software, 34 and 4DOS.INI, 56 4DOS windows in, 35 and 4EXIT, 56 and COMSPEC, 35 and 4START, 56 and disk swapping, 37 and AUTOEXEC.BAT, 55 and KEYSTACK, 36 and CONFIG.SYS, 55 Microsoft Windows, 37 file locations, 55 Microsoft Windows 95, 39 installing 4DOS for, 5 ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 75 Index ------------------------------------------------------------------- OS/2 (continued) Shell (continued) temporary VDMs, 51, 53 secondary version 1.x, 48 and multitasking, 34, version 2.x, 48 35 Warp, 48 startup options, 15 swap size, 17 P to run a single command, 16 Passwords, in Novell DOS, 33 Software compatibility, see PATH, length of, 59 Compatibility Primary shell, see Shell Software interactions, 60 Programming, for 4DOS, see Stacker, 31 Technical Information Startup options //iniline, 11, 15, 35, 52 Q /C, 16, 51 /D, 12 QEMM, 28 /E, 12, 15 Quick help, 20 /F, 12, 15 /K, 13, 16 R /L, /LA, /LD, and /LH, 12, 15 RAM, see Memory /P, 13 RAM disk, 26 /Y, 13 swapping to, 17 @inifile, 11, 15, 35, 52 README.1ST file, 6 commands in, 13, 16 Reference information, 2 primary shell, 11 Reference manual, 2 secondary shell, 15 Resident portion (of 4DOS), 17, SuperStor, 31 26 Support, 3 loading in UMBs, 27 Swapping and compatibility, 26 S and multitasking software, 37 Screen, 28 file names used by, 18, 37 size, 29 on networks, 45 SCRPUT, 29 types of, 17 Secondary shell, see Shell SELECT, 29 T SET, in CONFIG.SYS, 32 Shell Task switching software, see DOS shell, 1 Multitasking software primary Technical information, 65 and multitasking, 34, DESCRIPT.ION, 68 37 detecting 4DOS, 65 in OS/2, 53 installable commands, 67 startup options, 11 INT 2E, 69 swap size, 17 KEYSTACK, 66 Technical support, 3 Transient portion (of 4DOS), 17, 26 ------------------------------------------------------------------- Copr. 1995 JP Software Inc. 4DOS Intro. & Installation Guide / 76 Index ------------------------------------------------------------------- TSRs, 23 and compatibility, 60 and multitasker startup files, 35 and OS/2 DOS sessions, 54 loading order, 61 U UltraVision, 30 UMBs, see Memory Uninstalling 4DOS, 8 V VDM, see OS/2 VGA, 29, 30 Video hardware, 28 VSCRPUT, 29 W Wildcards, and DEL speed, 31 Windows, see Microsoft Windows; Microsoft Windows 95 Windows NT, 4DOS/NT product, 1 X XMS, see Memory