home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-07-03 | 108.0 KB | 2,602 lines |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- BOOT.SYS(tm) - Version 1.42
-
-
-
-
-
-
-
-
- Use boot-up menus to select your MS-DOS system configuration
-
-
-
-
-
-
-
-
-
-
- _______
- ____|__ | (R)
- --| | |-------------------
- | ____|__ | Association of
- | | |_| Shareware
- |__| o | Professionals
- -----| | |---------------------
- |___|___| MEMBER
-
-
-
-
-
-
-
-
- Written by Hans Salvisberg
-
- BOOT.SYS - 2 - Version 1.42
-
-
-
- Copyright Notice
-
- BOOT.SYS(tm) and the accompanying programs and documentation are
-
-
- Copyright (c) 1989, 1990, 1991 Hans Salvisberg
- All rights reserved
-
-
-
-
-
- Table of Contents
-
- Introduction ............................................... 4
-
- About ASP .................................................. 5
-
- ASP Ombudsman Information .................................. 6
-
- License Agreement .......................................... 6
-
- Registration ............................................... 8
-
- Installation ............................................... 10
-
- Quick Start .............................................. 11
-
- Level 1: One Menu ........................................ 12
-
- BOOT.SYS Command Line Parameters ......................... 17
-
- The BOOT.SET Command and Environment Variables ........... 18
- General Introduction to DOS Environment Variables ..... 18
- Using Environment Variables with BOOT.SYS ............. 20
- Trouble-shooting Variable Problems .................... 21
-
- Level 2: Several Independent Menus Following Each Other .. 22
-
- Level 3: Nested Menus .................................... 24
-
- Controlling the DOS= Command in MS/PC-DOS 5.00 ........... 30
- General Introduction .................................. 30
- BOOT.SYS and the DOS= Command ......................... 32
- DOS= Summary .......................................... 32
-
- BOOT.SYS Extensions ...................................... 33
- BOOT.EDIT ............................................. 33
- BOOT.OPTION FREE ...................................... 34
- BOOT.OPTION BOOTASSIST ................................ 35
- BOOT.OPTION EXTMON for Laptops ........................ 36
- BOOT.OPTION COLOR ..................................... 38
-
- BOOT.COM Command Line Parameters ......................... 38
-
- BOOT.SYS - 3 - Version 1.42
-
-
-
- PAUSE.SYS, a Debugging Aid ............................... 40
-
- Closing Remark ........................................... 41
-
- Answers to Common Questions ................................ 42
-
- Revision History ........................................... 46
-
- BOOT.SYS - 4 - Version 1.42
-
-
-
- Introduction
-
- BOOT.SYS makes it possible to display one or more menus at
- boot-up time and to have different parts of CONFIG.SYS and/or
- AUTOEXEC.BAT executed depending on which menu options are chosen.
-
- Many people need different versions of CONFIG.SYS depending on
- what application they are going to run. In the past you had to
- either rename or edit your start-up files and reboot to get a
- different setup. Now this process has become much easier and
- safer by using BOOT.SYS.
-
- BOOT.SYS was written for IBM-compatible Personal Computers run-
- ning under MS-DOS or PC-DOS 2.11 to 5.00. There are no other
- system requirements.
-
- The following features make BOOT.SYS a must-have for every
- sophisticated PC installation:
-
- * easy installation, detailed examples for every level of
- sophistication
-
- * up to nine options per menu (one line per option) and a
- freely definable prompt area at the top of the screen
-
- * up to 25 consecutive menus, each defining a different aspect
- of your system configuration
-
- * up to 25 levels of nested menus (submenus), simplifying a
- systematic approach to systems configuration
-
- * only one version of CONFIG.SYS and AUTOEXEC.BAT; no copy-
- ing/renaming of files and no rebooting
-
- * select menu options by pressing the corresponding digit key
- or by moving an arrow
-
- * user-definable timeout and default option for each menu
-
- * full support for DOS= and the other new commands in MS/PC-DOS
- 5.00
-
- * switch to an external monitor on boot-up for some laptop
- computers
-
- * edit individual CONFIG.SYS lines on the fly while booting up
-
- * typically uses less than 200 bytes of resident DOS memory
-
- * do a warm or a cold boot from the DOS command line or from a
- batch file; change Alt-Ctrl-Del to do a cold boot or disable
- it altogether
-
- * includes PAUSE.SYS for debugging complex CONFIG.SYS setups
-
- BOOT.SYS - 5 - Version 1.42
-
-
-
- Acknowledgments
-
- BOOT.SYS(tm) was developed using Borland's Turbo C(R), Turbo
- Assembler(R), and Turbo Debugger(R), as well as the Periscope(R)
- debugger by The Periscope Company. The documentation was written
- with Lotus Manuscript(R).
-
- Many thanks to Michael J. Mefford of PC Magazine who has provided
- valuable information about modifying CONFIG.SYS on the fly.
-
- Many thanks to the members of the ASP; their help and advice have
- been invaluable for getting BOOT.SYS to you.
-
-
-
- Trademarks
-
- BOOT.SYS is a trademark of Hans Salvisberg.
- Compaq is a trademark of Compaq Computer Corporation. IBM, PC-DOS
- and PC are trademarks of IBM Corporation. MS-DOS and MS Windows
- are trademarks of Microsoft Corporation. 386MAX is a trademark of
- Qualitas, Inc. DESQview and QEMM386 are trademarks of Quarterdeck
- Office Systems. 4DOS is a trademark of JP Software. Other product
- names mentioned in this documentation may be trademarks of these
- or other companies.
- Association of Shareware Professionals and the ASP logo are
- trademarks of the Association of Shareware Professionals.
-
-
-
- About ASP
-
- ASP, the Association of Shareware Professionals(R), was formed in
- April 1987 to strengthen the future of shareware (user supported
- software) as an alternative to traditional commercial software.
- Its members, all of whom are programmers subscribing to a code of
- ethics or non-programmers sincerely interested in the advancement
- of shareware, are committed to the concept of shareware as a
- method of marketing.
-
- The ASP has adopted general standards that all ASP authors have
- agreed to follow, some of which are:
-
- Support standards:
- All ASP members' shareware products must provide support (in-
- cluded in the purchase price) for a minimum of three months
- from the date of registration.
- Any money sent to an author to register an unsupported prod-
- uct shall be promptly returned with an explanation that the
- product in question is no longer supported.
- Known incompatibilities with other software or hardware and
- major or unusual program limitations are noted in the docu-
- mentation that comes with the shareware (evaluation) program.
-
- BOOT.SYS - 6 - Version 1.42
-
-
-
- 'no crippling' standard:
- The principle behind shareware is "try before you buy." ASP
- believes that users have a right to try a fully functioning
- shareware program in their regular computing environment.
- Accordingly, ASP authors agree that:
- - The executable files (and/or items linked in with execut-
- ables) in the shareware and registered versions will
- essentially be the same.
- - All the program's features will be fully documented.
- - Registration encouragement procedures which in the judg-
- ment of the Board are either unreasonable or unprofes-
- sional are not allowed.
-
- Miscellaneous standards:
- The program has been thoroughly tested by the author and
- should not be harmful to other files or hardware if used
- properly.
- Any discussion of the shareware concept and of registration
- requirements is done in a professional and positive manner.
-
- If you are interested in ASP and in Shareware issues, you are
- invited to come to the SHAREWARE forum on CompuServe, where many
- shareware authors meet regularly.
-
-
-
- ASP Ombudsman Information
-
- This program is produced by a member of the Association of Share-
- ware Professionals (ASP). ASP wants to make sure that the share-
- ware principle works for you. If you are unable to resolve a
- shareware-related problem with an ASP member by contacting the
- member directly, ASP may be able to help. The ASP Ombudsman can
- help you resolve a dispute or problem with an ASP member, but
- does not provide technical support for members' products. Please
- write to the ASP Ombudsman at 545 Grover Road, Muskegon, MI
- 49442-9427, U.S.A. or send a message via CompuServe Mail to ASP
- Ombudsman 70007,3536
-
-
-
- License Agreement
-
- BY INSTALLING BOOT.SYS ON YOUR SYSTEM YOU INDICATE YOUR AGREEMENT
- TO THE FOLLOWING TERMS AND CONDITIONS. IF YOU DO NOT AGREE TO
- THEM YOU ARE NOT ALLOWED TO USE THIS PROGRAM.
-
- BOOT.SYS AND THE ACCOMPANYING PROGRAMS AND DOCUMENTATION (LATER
- ON COLLECTIVELY REFERRED TO AS BOOT.SYS) ARE DISTRIBUTED AS IS.
- HANS SALVISBERG (THE AUTHOR) MAKES NO WARRANTY OF ANY KIND,
- EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF
- MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT
- TO THIS SOFTWARE AND DOCUMENTATION. IN NO EVENT SHALL THE AUTHOR
- BE LIABLE FOR ANY DAMAGES, INCLUDING LOST PROFITS, LOST SAVINGS,
-
- BOOT.SYS - 7 - Version 1.42
-
-
-
- OR ANY OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF
- THE USE OF OR THE INABILITY TO USE THIS PROGRAM, EVEN IF THE
- AUTHOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR
- FOR ANY CLAIM BY ANY OTHER PARTY.
-
- BOOT.SYS is a copyrighted work protected by Swiss, U.S., and
- international copyright law. It is not free, freeware, or in the
- public domain. It is distributed as Shareware, which means that
- you may try it out at no cost for three weeks; if you determine
- that it fits your needs and you wish to use it regularly, you
- must register. If you choose not to pay the registration fee, you
- must stop using BOOT.SYS after the initial trial period and
- remove it from your computer, but you may still keep copies of it
- and pass them on to others as outlined below.
-
- You may give individual copies of the unregistered version of
- BOOT.SYS to your friends and associates for evaluation purposes
- as described above. You must include all the files (described in
- the READ.ME file) that make up BOOT.SYS without any modifica-
- tions, preferably in the original self-extracting LHarc archive
- file. You may upload BOOT.SYS to the public section of a public
- BBS, but you may not place it in any user group or commercial
- library or distribute it for a fee or in any way sell copies of
- it without express written permission from the Author.
-
- Under no circumstances may an unregistered version of BOOT.SYS be
- used in a commercial (business, corporate, government, educa-
- tional, or other institutional) environment except for the pur-
- pose of evaluation on a single computer.
-
- You may not modify or dis-assemble BOOT.SYS, nor distribute any
- modified or dis-assembled versions of BOOT.SYS. BOOT.SYS may not
- be included (bundled) with any other product for any reason what-
- soever without prior written permission from the Author.
-
- You may install your registered copy of BOOT.SYS on more than one
- computer at a time ONLY if no more than one of these computers is
- usually running at the same time. You may make as many backup
- copies of BOOT.SYS as you need for your personal backup purposes.
-
- You may NOT give, sell, lend, or otherwise transfer copies of the
- registered version of BOOT.SYS to any other person for any rea-
- son. Registered copies of BOOT.SYS have a unique registration
- number and display your name and address. Your registration,
- including that information, are transferable to future Shareware
- versions of BOOT.SYS, which will then be considered registered
- versions.
-
- No version of BOOT.SYS may be rented or leased.
-
- Any use or distribution of BOOT.SYS, which violates this license
- agreement, will be considered a copyright violation, and may be
- prosecuted to the full extent of the law.
-
- BOOT.SYS - 8 - Version 1.42
-
-
-
- U.S. Government RESTRICTED RIGHTS: Use, duplication, or disclo-
- sure by the Government is subject to restrictions as set forth in
- subdivision (b)(3)(ii) of the Rights in Technical Data and
- Computer Software clause at 252.227-7013.
-
-
-
- Registration
-
- BOOT.SYS is not free! You may try it out at no charge for an
- initial trial period to determine if it fits your needs. If you
- want to continue using BOOT.SYS after the initial trial period
- you must register. This method of software distribution is known
- as Shareware.
-
- The registration fee for a single copy of BOOT.SYS is SFR 70.- +
- s&h (exchange rate US$ to Swiss Francs is about $0.63 = SFR 1.-
- (July 1991)) for registration with the author in Switzerland or
- $39 US + s&h for registration with PsL in the U.S.A.
-
- Payment of the single-copy registration fee entitles you to the
- following benefits:
-
- * A disk with the current version of BOOT.SYS
-
- * A printed and bound manual
-
- * A special utility program that lets you transfer your license
- to any later shareware versions of BOOT.SYS that you may
- obtain from any shareware source (getting an upgrade from the
- author requires new registration).
-
- * Free support (by electronic mail or by mail) for the first 90
- days after payment, consisting of answering questions and
- fixing any reproducible program error(s) that interfere(s)
- with the intended use of the program as outlined in this
- documentation. The author may choose not to fix problems
- related to a special hardware and/or software configuration
- and will then arrange for a refund of the registration fee,
- if the problem is reported within 90 days of payment. The
- author makes no other warranties, expressed or implied, and
- this warranty is expressly limited to the cost of the regis-
- tration fee.
-
- * BOOT.SYS is publicly supported on CompuServe in the DOS Uti-
- lities section of the IBMSYS forum. A free CompuServe Intro-
- Pak, which includes a $15.00 usage credit, is available to
- registered BOOT.SYS users who do not yet subscribe to
- CompuServe. CompuServe will open the door for a whole new
- world of information, services, and interesting people. Com-
- puServe is also the best place to obtain technical support
- for products from Hans Salvisberg (and many other developers
- and vendors). The CompuServe IntroPak (a $39.95 value) is
- provided to registered BOOT.SYS users compliments of Compu-
-
- BOOT.SYS - 9 - Version 1.42
-
-
-
- Serve, Inc., and Hans Salvisberg. This offer is dependent on
- its continued availability from CompuServe, Inc.
- For your information: Current CompuServe rates are $12.50 per
- connect hour plus communications surcharges (e.g., $0.30/hour
- in the U.S.A., $9.50/hour in Switzerland and the United King-
- dom, varying rates in other countries).
-
- Note: All prices and terms are subject to change without notice.
-
- BOOT.SYS must be registered before it is used in a commercial
- (business, corporate, government, educational, or other institu-
- tional) environment beyond initial evaluation or on more than one
- computer.
-
- There are no quantity discounts available for BOOT.SYS, because
- it does not make sense to purchase a large number of single-PC
- licenses. However, site licenses for installing BOOT.SYS on mul-
- tiple computers are available starting at 2 PCs. Please refer to
- the accompanying file SITELICE.DOC for details.
-
- The accompanying file REGISTER.FRM includes registration forms
- for registering single-PC copies of BOOT.SYS.
-
- If any of these files are missing or if you have any questions,
- please contact the author:
-
- Hans Salvisberg, Bellevuestr. 18, CH-3095 Berne, SWITZERLAND
-
- CompuServe: 73237,3556
- Internet: 73237.3556@compuserve.com
-
- BOOT.SYS - 10 - Version 1.42
-
-
-
- Installation
-
- BOOT.SYS can be used on three different levels:
- - one menu only
- - several menus in sequence
- - nested menus
-
- It is probably a good idea to start experimenting with BOOT.SYS
- on the easiest level and to build up from there. This is also how
- the installation instructions will be presented here. Alterna-
- tively, if you already have (up to nine) pairs of AUTOEXEC.BAT
- and CONFIG.SYS files, you can use the procedure outlined in the
- Quick Start chapter to get BOOT.SYS working right away.
-
- Please keep in mind that heavily editing CONFIG.SYS and AUTOEX-
- EC.BAT may lead to your PC not coming up in the usual configura-
- tion or even locking up at boot-up time. Therefore it is
- recommended that you first create a bootable diskette by
- following these steps (at the DOS prompt):
- 1. Insert a new diskette in drive a: and FORMAT a: /S
- 2. COPY c:\COMMAND.COM a:
- 3. COPY c:\CONFIG.SYS a:
- 4. COPY c:\AUTOEXEC.BAT a:
- 5. Edit a:AUTOEXEC.BAT and a:CONFIG.SYS and make sure that all
- file names (including the external DOS commands) include the
- drive name of your boot disk (here assumed to be c: ).
- 6. Boot from this diskette to see if everything is ok; check if
- you can start your editor as usual.
-
- Many of the features of BOOT.SYS will be presented by examples.
- In each chapter there is a simple example to start with and some
- more interesting ones to give you an idea of what BOOT.SYS can
- do. The upper-case portions should be copied exactly (case does
- not matter), the lower-case ones may be different for your sys-
- tem.
- Example:
- DEVICE=c:\dos\ANSI.SYS
-
- The ANSI.SYS device driver that comes with DOS is often located
- in the directory \dos on drive c: ; if this is not the case on
- your system then you should change the drive and/or path accord-
- ingly.
-
- The first example on each level will use DOS features only, so it
- should work on every system running under MS-DOS or PC-DOS. Usu-
- ally there is a CONFIG.SYS file (CO) and an AUTOEXEC.BAT file
- (AU) for each example.
-
- All text in curly braces (like {a comment}) is comment and should
- be omitted.
-
- BOOT.SYS - 11 - Version 1.42
-
-
-
- Quick Start
-
- If you already have (up to nine) pairs of different CONFIG.SYS
- and AUTOEXEC.BAT files, you can start using BOOT.SYS right away
- by following these instructions:
-
- 1. Create a new master CONFIG.SYS like this:
-
- CO DEVICE=c:\bin\BOOT.SYS
- DEVICE=BOOT.1 1st configuration {any name}
- DEVICE=BOOT.SET boot=config1 {use a meaningful name,
- e.g. Windows}
- {entire content of CONFIG.SYS for the 1st configuration}
- DEVICE=BOOT.2 2nd configuration {any name}
- DEVICE=BOOT.SET boot=config2 {again, use an appropri-
- ate name}
- {entire content of CONFIG.SYS for the 2nd configuration}
- {etc.}
- DEVICE=BOOT.END
-
- 2. Create a new AUTOEXEC.BAT like this (make sure that there
- are no duplicate labels in different sections):
-
- AU c:\bin\BOOT SET
- IF ERRORLEVEL 10 GOTO not_installed
- GOTO %boot%
- :config1 {use the same name here as in CONFIG.SYS}
- {entire content of AUTOEXEC.BAT for the 1st configura-
- tion}
- GOTO done
- :config2 {use the same name here as in CONFIG.SYS}
- {entire content of AUTOEXEC.BAT for the 2nd configura-
- tion}
- GOTO done
- {etc.}
- :not_installed
- echo BOOT.SYS is not installed
- :done
-
- 3. Press Alt-Ctrl-Del to reboot and watch BOOT.SYS in
- action.(1)
-
-
- The real power of BOOT.SYS, which comes into play when you use
- multiple or even nested menus, is not used here, but this setup
- may be sufficient for many users' needs. The next chapters will
- explain how and why to create more sophisticated setups.
-
-
-
- --------------------
- 1 If you see messages like 'Unrecognized command' from CON-
- FIG.SYS, please refer to the chapter <<Answers to Common
- Questions>>.
-
- BOOT.SYS - 12 - Version 1.42
-
-
-
- Level 1: One Menu
-
- For many users one menu is all they will ever need. It gives you
- the equivalent of choosing between up to nine different sets of
- CONFIG.SYS and AUTOEXEC.BAT.
-
-
-
- Ex Choose between one of the [SCREEN]
- 1.1(1) following configurations:
- - no RAM disk
- - 64K RAM disk
- - 128K RAM disk
- If there's a RAM disk, copy
- COMMAND.COM to it and make
- DOS reload the command pro-
- cessor from there.
-
-
-
- CO.11 BUFFERS=32
- FILES=20
- {any other of the usual commands that should apply to all
- the configurations; this goes for all the examples}
-
- DEVICE=c:\bin\BOOT.SYS {optional command line parameters}
-
- DEVICE=TOP
- DEVICE=TOP Select one of the following choices by
- DEVICE=TOP pressing the corresponding digit key, or by
- DEVICE=TOP moving the arrow with the Cursor-Up, Cursor-
- DEVICE=TOP Down, Home and End keys and pressing Enter
- DEVICE=TOP (or Cursor-Right):
- DEVICE=TOP
-
- DEVICE=BOOT.1 no RAM disk
- DEVICE=BOOT.SET boot=no_vdisk
-
- DEVICE=BOOT.2 64K RAM disk
- DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
- DEVICE=BOOT.SET boot=vdisk
-
-
-
-
-
-
-
-
- --------------------
- 1 The screen shots are deliberately reproduced in a small scale.
- They are intended to provide a view of the general screen layout
- only; for the text please refer to the corresponding CONFIG.SYS
- listing. In the Shareware documentation they are omitted.
-
- BOOT.SYS - 13 - Version 1.42
-
-
-
- DEVICE=BOOT.3 128K RAM disk
- DEVICE=c:\dos\VDISK.SYS size=128 sector=512 dir=64
- DEVICE=BOOT.SET boot=vdisk
-
- DEVICE=BOOT.END
-
- {any other of the usual commands that should apply to all
- the configurations; this goes for all the examples}
-
-
-
- AU.11 c:\bin\BOOT SET
- IF ERRORLEVEL 10 GOTO not_installed
- GOTO %boot%
-
- :vdisk
- COPY c:\COMMAND.COM d:
- SET COMSPEC=d:\COMMAND.COM
- GOTO done
-
- :no_vdisk
- ECHO Sorry, there is no RAM disk
- GOTO done
-
- :not_installed
- ECHO BOOT.SYS is not installed!
-
- :done
- PATH c:\dos;c:\bin
-
-
-
- The part of CONFIG.SYS that is controlled by BOOT.SYS starts with
- the BOOT.SYS line and ends with the BOOT.END line. Between these
- two lines you define the menu to be displayed as well as the
- commands to be executed for each menu option.
-
- The text to the right of TOP is displayed at the top of the menu
- screen. You may use most of the characters of the PC character
- set (including the box and foreign characters). Unfortunately DOS
- converts all lower-case characters in the range of 'a' to 'z' to
- upper case(1); a work-around to this problem is presented in the
- next example. There is no upper limit to the number of TOP lines,
- as long as they fit on the screen, along with all the options;
- TOP may be omitted altogether and BOOT.SYS will display a default
- text.
-
-
-
-
-
-
- --------------------
- 1 This applies to the BOOT.SET command as well.
-
- BOOT.SYS - 14 - Version 1.42
-
-
-
- The BOOT.1 line introduces the first menu option. All text to the
- right of BOOT.1 is displayed as the option text. Between BOOT.1
- and BOOT.2 there may be zero or more of the usual CONFIG.SYS
- commands (all kinds, not just DEVICE= ). These commands will be
- executed if the user selects option 1 and will be bypassed
- silently otherwise.
-
- The BOOT.SET line is an instruction to BOOT.SYS to define a DOS
- environment variable that can be used later on in AUTOEXEC.BAT.
- It is explained in detail in <<The BOOT.SET Command and Environ-
- ment Variables>>.
-
- There may be up to nine options each beginning with a correspond-
- ing BOOT.n line. The options must be numbered consecutively from
- 1 up to 9.
-
- You may insert empty lines and comment lines ( REM ) wherever you
- like; REM was introduced with DOS 4.00, for older versions you
- can insert comments between BOOT.SYS and BOOT.END like this:
-
- DEVICE=REM any comment
-
- So much for the CONFIG.SYS part of our first BOOT menu; even if
- you think you know enough already you should read on, up to the
- end of the next section.
-
- Very often different commands must be executed in AUTOEXEC.BAT
- depending on which boot-up configuration is selected. It is even
- possible that all your configurations use the same CONFIG.SYS
- commands and differ only in the contents of AUTOEXEC.BAT (see
- example 1.2). This can be done by defining one or more variables
- in CONFIG.SYS, which are kept in the very small part of BOOT.SYS
- that stays resident.
-
- Calling the companion program BOOT.COM with the SET parameter in
- AUTOEXEC.BAT copies the variables from the resident BOOT.SYS to
- the DOS environment, where they can be used like any other envi-
- ronment variables defined with the SET , PATH , or PROMPT com-
- mands in DOS(1). If BOOT.COM cannot find the resident driver, it
- displays an error message and returns an ERRORLEVEL of 10.
-
- There are many ways to use environment variables, e.g. as labels
- in GOTO statements, to conditionally execute commands or GOTOs
- in IF statments, as program parameters, or even to branch to
- different batch files. There is a short introduction to the use
- of environment variables in <<The BOOT.SET Command and Environ-
- ment Variables>>.
-
-
- --------------------
- 1 In short: if there is a variable definition name=value and you
- put %name% anywhere in a batch file, then DOS will replace %name%
- with value . If the variable name is not defined, then DOS will
- simply remove %name% .
-
- BOOT.SYS - 15 - Version 1.42
-
-
-
- Ex 1.2 On a certain LAN you may want [SCREEN]
- to choose between the follow-
- ing options:
- - no network support
- - XNS protocol
- - TCP/IP protocol
- Display the menu white on
- blue, use both upper-case and
- lower-case letters, and rear-
- range the menu on the screen.
-
-
-
- CO.12 DEVICE=c:\bin\BOOT.SYS /CX1f /L18 /U^
- DEVICE=TOP
- DEVICE=TOP
- DEVICE=TOP ^What kind of network support do you need?
- DEVICE=TOP
- DEVICE=TOP
- DEVICE=TOP
- DEVICE=BOOT.1 none
- DEVICE=BOOT.2 ^X^N^S
- DEVICE=BOOT.SET net=xns
- DEVICE=BOOT.3 ^T^C^P/^I^P
- DEVICE=BOOT.SET net=tcp
- DEVICE=BOOT.END
-
-
-
- AU.12 ECHO OFF
- CLS
- c:\bin\BOOT SET >NUL: {>NUL: hides BOOT.COM's
- IF "%net%" == "" GOTO no_net output}
-
- auto%net%
-
- :no_net
- PATH c:\dos;c:\bin
-
-
-
- The command line parameters will cause BOOT.SYS to use the /Color
- 1f (heX), to put 18 spaces to the /Left of the option numbers,
- and to indent the TOP text just insert spaces in these lines.
- BOOT.SYS will translate all characters in the range of 'a' to 'z'
- to lower case except for those preceded by a '^' character (or
- any other you specify) which will be displayed in /Upper case.
-
- This LAN does not need any drivers in CONFIG.SYS, so the options
- are empty except for the BOOT.SET commands. If the user selects
-
- BOOT.SYS - 16 - Version 1.42
-
-
-
- either XNS or TCP/IP then AUTOEXEC.BAT branches to autoxns.bat or
- autotcp.bat respectively(1), which will load the necessary driv-
- ers.
-
- This example demonstrates how to control the appearance of the
- menus by using additional empty TOP lines, indenting the text on
- the TOP lines, and using the /Left switch. There is also a /Spac-
- ing switch which indicates the spacing between the menu options;
- the default is 2, acceptable values are 1, 2, etc., as long as
- all the menu options fit on the screen. - For the sake of brevity
- the remaining examples are not optimized for good looks, and the
- /Uppercase switch will be omitted, too.
-
-
-
- Ex 1.3 Choose
- - whether you want a RAM disk, and
- - whether you need ANSI.SYS.
- If the user does not press any key within 5 seconds then
- take the default of RAM disk and no ANSI.SYS.
-
-
-
- CO.13 DEVICE=c:\bin\BOOT.SYS /D2 /T5
- DEVICE=TOP Select your system configuration
-
- DEVICE=BOOT.1 no RAM disk, no ANSI.SYS (all RAM above DOS
- available)
-
- DEVICE=BOOT.2 64K RAM disk, no ANSI.SYS
- DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
-
- DEVICE=BOOT.3 no RAM disk, ANSI.SYS
- DEVICE=c:\dos\ANSI.SYS
-
- DEVICE=BOOT.4 64K RAM disk and ANSI.SYS
- DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
- DEVICE=c:\dos\ANSI.SYS
-
- DEVICE=BOOT.END
-
-
-
- The command line parameters will cause BOOT.SYS to /Timeout after
- 5 seconds and continue the boot process using the /Default option
- #2. Other command line parameters will be introduced in the next
- section.
-
-
-
- --------------------
- 1 When execution is transferred to another batch file (without
- the CALL statement introduced in DOS 3.30) it does not return,
- i.e. the rest of the calling batch file is not executed.
-
- BOOT.SYS - 17 - Version 1.42
-
-
-
- This example proves that one menu is not enough when you need to
- make more than one independent decision. Just imagine you would
- also like to specify whether to load your keyboard macro program
- or not: this would take another four options! Example 2.1 will
- show a better solution.
-
-
- BOOT.SYS Command Line Parameters
-
- Most of the command line parameters of BOOT.SYS have already been
- introduced informally and they are explained in detail in this
- chapter.(1)
-
- /CXhh Color to be used for the menu, usually specified by two
- /Cn hexadecimal digits hh ; if you prefer you may use the
- decimal equivalent n instead. The values for hh can be
- taken from the following table (the background gives the
- first and the foreground the second digit):
-
- color background foreground
- normal bright
- black 0? ?0 ?8
- blue 1? ?1 ?9
- green 2? ?2 ?A
- cyan 3? ?3 ?B
- red 4? ?4 ?C
- magenta 5? ?5 ?D
- brown 6? ?6 ?E
- white 7? ?7 ?F
-
- For monochrome systems use one of the following values:
- 02 =normal, 2F =high intensity, 70 =reverse video (hexa-
- decimal).
- Default value: /CX2F (bright white on green)
-
- /Dd Default option: the arrow will point to that option and
- if there is a timeout specified then that option will be
- chosen.
- Default value: /D1
-
- /Ln Number of positions to indent the option numbers from
- the left edge of the screen.
- Default value: /L5
-
- /N+ Turn NumLock on or off, for those who use the numeric
- /N- keypad to select options.
-
- /P Display the menu identifier in the lower right corner of
- the screen. This may be useful for setting up, debug-
- ging, and discussing complex menu systems and it is
- explained in example 3.1.
-
- --------------------
- 1 You may use '-' instead of '/' as the switch character.
-
- BOOT.SYS - 18 - Version 1.42
-
-
-
- /Sn Spacing between the option lines.
- Default value: /S2 (double-spaced)
-
- /Tn Timeout: If the user does not press any key within n
- /T-n seconds (or n clock ticks for /T-n , 18.2 ticks per
- second), then execution continues with the default
- option. Pressing any key within the specified time dis-
- ables the timeout.
- /T0 is legal; BOOT.SYS will check if there is a key code
- waiting in the keyboard buffer and continue immediately
- if the buffer is empty. Most BIOSes accept key presses
- right after the initial beep.
- /T No timeout; this is the default.
-
- /Uc Shift character: All characters preceded by c will be
- displayed in upper case, all others in lower case. This
- applies to the letters 'a' to 'z' on the TOP and BOOT.n
- lines. To display a c on the screen, write cc .
- There is no default value for c ; /U^ or /U~ are good
- choices.
- /Uct Shift and toggle character (analogous to Shift and Caps-
- Lock on your keyboard):
- If this parameter is specified, all lines start out in
- lower case, t changes case permanently and c only for
- the next character.
- Example with /U^\ : lower\UPPER\lower^Proper\IM^pROPER
- Use tt or ct to display a t .
- /U All characters 'a' to 'z' will be upper-case. This is
- the default.
-
-
- The BOOT.SET Command and Environment Variables
-
- General Introduction to DOS Environment Variables
-
- The command processor of MS/PC-DOS maintains a special storage
- area called the environment, which contains any number of charac-
- ter strings (called variables) of the form
-
- NAME=value
-
- Every variable has a name, usually composed of upper-case alpha-
- numeric characters, and a value, mixed-case and sometimes even
- with embedded space characters. DOS automatically defines a
- variable called COMSPEC that points to the command processor
- file, and you usually define at least another variable called
- PATH in AUTOEXEC.BAT. At the DOS prompt enter the command
-
- SET
-
- and you will see something like
-
- COMSPEC=C:\DOS\COMMAND.COM
- PATH=c:\dos;c:\util;c:\myapp
-
- BOOT.SYS - 19 - Version 1.42
-
-
-
- The SET command lets you look at the environment, and it also
- lets you define variables like this (try it!):
-
- SET test=ok
-
- Again, enter SET without anything else on the line to display the
- environment, and you will see:(1)
-
- COMSPEC=C:\DOS\COMMAND.COM
- PATH=c:\dos;c:\util;c:\myapp
- TEST=ok
-
- Two special environment variables ( PATH and PROMPT ) are so
- important for DOS that they each have a DOS command with the same
- name, but they can easily be manipulated with the general-purpose
- SET command as well.
-
- The primary use of environment variables for our purposes is in
- batch files: Whenever you enclose a variable name with two per-
- cent signs DOS will replace the name and the percent signs with
- the value of the variable. If there is no variable of that name
- the space will be empty. The following are a few examples of how
- this could be used in a batch file:
-
- GOTO %test% {jump to label "ok"}
- ECHO The value of TEST is %test%. {simple string substi-
- tution, useful for
- debugging}
- EDIT %test% {command parameter}
- %test% {execute the command or
- batch file called ok}
- IF "%test%" == "ok" GOTO continue {string comparisons}
- IF NOT "%test%" == "" CALL doit.bat
-
- The use of double quotes in the last two examples is mandatory
- for two reasons:(2)
- - If the variable does not exist, " IF %test% == " would lead
- to a syntax error because DOS cannot handle the resulting
-
-
-
- --------------------
- 1 There are certain DOS shells, e.g. Norton Commander, that
- ignore the SET command, i.e. you cannot change the environment.
- Just exit the shell and SET should work as indicated.
- The environment has a pre-defined fixed size, and if you try to
- define more (or longer) variables than will fit, DOS displays an
- error message similar to " Out of environment space " and ignores
- the command. If this happens to you, please refer to your DOS
- manual (SHELL= command in CONFIG.SYS) or ask an experienced user
- for help.
-
- 2 There are other less general ways to get similar results, but
- the double quotes will work most of the time.
-
- BOOT.SYS - 20 - Version 1.42
-
-
-
- " IF == ".
- - If the value has embedded spaces, then the double quotes are
- needed to keep it together as a single piece of information.
-
- Warning: DOS lets you use SET with all kinds of parameters as
- long as there is an equal sign somewhere on the line, and it
- literally copies to the environment whatever is on the command
- line. Many of these 'variable definitions' are not usable in
- batch files; the most common error is:
-
- SET test = not_ok
-
- Enter SET to see:
-
- COMSPEC=C:\DOS\COMMAND.COM
- PATH=c:\dos;c:\util;c:\myapp
- TEST=ok
- TEST = not_ok
-
- The spaces on both sides of the equal sign have become part of
- the variable name and value. This is probably not what you
- intended, and DOS will not recognize " %test % " with an embedded
- space as a valid variable name.
-
- Lastly, you can delete variable definitions as follows:
-
- SET test=
-
- This removes the good version of our TEST variable (verify it!).
-
- Note: 4DOS, an alternative command processor by JP Software,
- enhances the functionality of COMMAND.COM and DOS in general in
- just about every way, and it also includes much more powerful
- environment variable support.
-
-
- Using Environment Variables with BOOT.SYS
-
- BOOT.SYS lets you define a variable in CONFIG.SYS by including
- the following statement between the BOOT.SYS and BOOT.END lines
- (wherever a normal CONFIG.SYS command is legal):
-
- DEVICE=BOOT.SET name=value
-
- To define more than one variable just use BOOT.SET multiple
- times.(1) The variable definitions are stored in the resident
- part of BOOT.SYS which will grow accordingly.
-
- In AUTOEXEC.BAT (or from the DOS command line) you must execute
-
- BOOT SET
-
- --------------------
- 1 You could even set the PROMPT and the PATH with BOOT.SET .
-
- BOOT.SYS - 21 - Version 1.42
-
-
-
- to copy the variable definitions into the DOS environment where
- they can be used like any other environment variables. If you
- want, you can free up the environment space taken by these vari-
- ables later on with the command(1):
-
- BOOT CLEAR
-
- BOOT.SET is modeled closely after the SET command in DOS and it
- accepts just about anything as a variable definition. Not all
- such definitions will be usable in DOS.(2)
-
- The variable name is always translated to upper case; by default
- the value is translated as well, but if you need lower-case char-
- acters, you can use the /Upper-case switch as follows:(3)
-
- DEVICE=BOOT.SET /U^ name=^Value
-
-
- Trouble-shooting Variable Problems
-
- If you are having problems with BOOT.SET :
-
- - Use the DOS-internal SET command without any parameters to
- display the current contents of the environment.
-
- - Try to define the variables from the DOS command line with
- the DOS-internal SET command.
-
- - Keep in mind that extraneous spaces to the left or the right
- of the equal sign are stored as part of the name or value,
- respectively.
-
- - To make comparisons with possibly empty strings or with
- strings containing spaces you must use double quotes as
- shown in the previous section.
-
- - You may want to set default values for certain variables
- with BOOT.0.(4)
-
- - You may need to increase the size of the DOS environment if
- you use many and/or long variable definitions; BOOT.SYS will
- display appropriate directions for your version of DOS.
-
-
- --------------------
- 1 You cannot regain the space used by the resident part of
- BOOT.SYS, but this is typically very small, i.e. less than 200
- bytes.
-
- 2 See the warning in the previous section.
-
- 3 /U is fully explained in <<BOOT.SYS Command Line Parameters>>.
-
- 4 BOOT.0 is explained in Example 2.2.
-
- BOOT.SYS - 22 - Version 1.42
-
-
-
- Level 2: Several Independent Menus Following Each Other
-
- Example 1.3 showed that there are situations where you need more
- than one menu: whenever you have to make several independent
- decisions.
-
-
-
- Ex 2.1 Choose
- - whether you want a RAM disk, and
- - whether you need ANSI.SYS.
- If the user does not press any key within 5 seconds then
- take the defaults of RAM disk and no ANSI.SYS.
-
-
- [SCREEN] [SCREEN]
-
-
-
- CO.21 DEVICE=c:\bin\BOOT.SYS /T5
-
- DEVICE=BOOT.A /D2
- DEVICE=TOP Do you need a RAM disk?
- DEVICE=BOOT.1 no
- DEVICE=BOOT.2 yes, 64K RAM disk
- DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
- DEVICE=BOOT.SET VDISK=D
-
- DEVICE=BOOT.B /D1
- DEVICE=TOP Do you need ANSI.SYS?
- DEVICE=BOOT.1 no
- DEVICE=BOOT.2 yes, ANSI.SYS
- DEVICE=c:\dos\ANSI.SYS
-
- DEVICE=BOOT.Z {this line is optional, omit it!}
-
- DEVICE=BOOT.END
-
-
-
- AU.21 c:\bin\BOOT SET
- IF ERRORLEVEL 10 GOTO not_installed
-
- IF "%VDISK%" == "" ECHO Sorry, there is no RAM disk
-
- IF NOT "%VDISK%" == "" COPY c:\COMMAND.COM %VDISK%:
- IF NOT "%VDISK%" == "" SET COMSPEC=%VDISK%:\COMMAND.COM
-
- GOTO done
-
- :not_installed
- ECHO BOOT.SYS is not installed!
-
- :done
-
- BOOT.SYS - 23 - Version 1.42
-
-
-
- PATH c:\dos;c:\bin
-
-
-
- The first menu is introduced by the BOOT.A line, the second by
- BOOT.B , etc., up to BOOT.Y , giving you a maximum of 25 menus.
- The BOOT.Z line is optional and should be omitted here for better
- error checking; its use will become clear with Example 3.1.
-
- The command line parameter /T sets a timeout value of 5 seconds
- for all menus. Alternately, command line parameters may be speci-
- fied on the BOOT.A , etc., lines, and apply only to that menu,
- such as /D in this example. Actually both can be combined: The
- parameters on the BOOT.SYS line set the defaults which can be
- changed for specific menus.
-
-
-
- Sometimes the loading order of different device drivers may be
- important. Thus it is possible that a device driver must be
- loaded between two menus. This can be done with the following
- extension:
-
-
-
- CO.22 DEVICE=c:\bin\BOOT.SYS /T5
-
- DEVICE=BOOT.A /D2
- DEVICE=TOP Do you need a RAM disk?
-
- DEVICE=BOOT.0
- {device drivers}
-
- DEVICE=BOOT.1 no
- DEVICE=BOOT.2 yes, 64K RAM disk
- DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
- DEVICE=BOOT.SET VDISK=D
-
- DEVICE=BOOT.0
- {device drivers}
-
- DEVICE=BOOT.B /D1
- DEVICE=TOP Do you need ANSI.SYS?
- DEVICE=BOOT.1 no
- DEVICE=BOOT.2 yes, ANSI.SYS
- DEVICE=c:\dos\ANSI.SYS
-
- DEVICE=BOOT.END
-
- BOOT.SYS - 24 - Version 1.42
-
-
-
- In each menu the first option may be preceeded and/or the last
- option followed by BOOT.0 ; any device drivers (or other com-
- mands) listed under this 'option' are always loaded/executed when
- this menu is displayed at all.
-
- Note: It is easiest to picture BOOT.SYS as 'executing' the com-
- mands under the first BOOT.0 , followed by menu A and the com-
- mands under the second BOOT.0 , and finally 'executing' menu B .
- In fact this is not correct! DOS begins by executing the commands
- up to and including BOOT.SYS . At this point BOOT.SYS takes over
- and processes all menus down to BOOT.END . Processing a menu
- means that the user selects one of the options, and BOOT.SYS
- wipes out the menu definition lines and the command lines of the
- other options. When BOOT.SYS has processed the last menu, DOS
- comes in again and executes the commands that BOOT.SYS has not
- wiped out, including the ones after BOOT.END .
-
-
- Level 3: Nested Menus
-
- For a sophisticated system configuration it may be desirable to
- have nested menus. This leads to a logical extension of level 2:
- within any option you can embed an entire sequence of submenus.
- Example 3.1 may not be a very good one, but 3.2 will show how
- this can be used in real life.
-
-
- [SCREEN] [SCREEN]
-
- [SCREEN] [SCREEN]
-
-
-
- CO.31 DEVICE=c:\bin\BOOT.SYS /T5 /P
-
- DEVICE=BOOT.A /D2 {A}
- DEVICE=TOP Do you need a RAM disk?
- DEVICE=BOOT.1 no
-
- DEVICE=BOOT.2 yes, RAM disk
- {a}
- DEVICE=BOOT.A /T {A2A}
- DEVICE=TOP What size RAM disk do you need?
- DEVICE=BOOT.1 64K
- DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
- DEVICE=BOOT.2 128K
- DEVICE=c:\dos\VDISK.SYS size=128 sector=512 dir=64
- {b}
-
- DEVICE=BOOT.B {A2B}
- DEVICE=TOP Do you want COMMAND.COM to be
- DEVICE=TOP copied to the RAM disk?
- DEVICE=BOOT.1 yes
- DEVICE=BOOT.SET COPY_CC=Y
-
- BOOT.SYS - 25 - Version 1.42
-
-
-
- DEVICE=BOOT.2 no
- {c}
- DEVICE=BOOT.Z
- {d}
-
- DEVICE=BOOT.B /D1 {B}
- DEVICE=TOP Do you need ANSI.SYS?
- DEVICE=BOOT.1 no
- DEVICE=BOOT.2 yes, ANSI.SYS
- DEVICE=c:\dos\ANSI.SYS
-
- DEVICE=BOOT.END
-
-
-
- AU.31 c:\bin\BOOT SET
- IF ERRORLEVEL 10 GOTO not_installed
-
- IF "%COPY_CC%" == "Y" COPY c:\COMMAND.COM d:
- IF "%COPY_CC%" == "Y" SET COMSPEC=d:\COMMAND.COM
-
- c:\bin\BOOT CLEAR {remove the variable definition}
-
- GOTO done
-
- :not_installed
- ECHO BOOT.SYS is not installed!
-
- :done
- PATH c:\dos;c:\bin
-
-
-
- The command line switch /P ( /Path) enables the display of the
- menu identifiers in the lower right corner of each menu. These
- are the same strings that are shown as comments in the CONFIG.SYS
- listing above.(1) /P is useful for support and debugging pur-
- poses. Calling BOOT.COM from the DOS command line without any
- parameters will display a list of all the menus that were
- displayed and the corresponding choices.
-
-
-
-
-
- --------------------
- 1 The menu identifier describes how you got to the current menu:
- e.g. 'A2B' means
- - you have chosen option 2 on the first first-level menu ('A')
- - this option has at least two submenus, and you have already
- made your choice on the first submenu (the 'A2A' menu)
- - you are now looking at the second submenu ('A2B').
- A level number is displayed along with the menu identifier ('A'
- is a level-1 menu, 'A2A' and 'A2B' are at level 2).
-
- BOOT.SYS - 26 - Version 1.42
-
-
-
- If the user selects option 1 (no RAM disk) in menu {A} then
- everything will be as in example 2.1; but if option 2 is
- selected, a submenu(1) to specify the size of the RAM disk will
- be presented as well as another submenu to specify whether COM-
- MAND.COM should be copied to the RAM disk.
-
- Let us now examine more closely what happens when the user
- selects option 2 (keeping in mind what was said at the end of the
- Level 2 chapter):
-
- First, any commands at {a} are executed. Then menu {A2A} is dis-
- played with no timeout, so the user must make a selection before
- the execution continues. At {b} there could be a BOOT.0 line and
- the associated commands would be executed whenever the user
- selects option 2 in menu {A}. Then menu {A2B} is processed and
- depending on the choice the variable is set or not. At {c} again
- there could be a BOOT.0 line (like {b}). Any further commands at
- {d} are executed (like {a}), and finally processing continues
- with menu {B}.
-
- The role of the BOOT.Z line should now become clear: every
- sequence of menus (starting with BOOT.A , BOOT.B , etc.) is ter-
- minated with a BOOT.Z . For the top level menu sequence BOOT.Z is
- not required because BOOT.END takes its place, and BOOT.SYS can
- do better checking of nesting errors if you omit BOOT.Z .
-
- In AUTOEXEC.BAT the variable is copied to the environment (if it
- is defined at all) and then erased when it is no longer used.
-
- Theoretically there is no limit to the nesting level, but
- BOOT.SYS cannot display more than 25 menus, so you cannot go
- deeper than 25.
-
- Although BOOT.SYS cannot display more than 25 menus per run (most
- users probably would not put up with more than 5 menus anyway),
- the number of menus in the entire menu tree may be much larger
- than that. DOS enforces some upper limit on the size of CON-
- FIG.SYS though, probably 64K bytes.
-
-
-
-
- The final example shows a more [SCREEN]
- involved setup. I used to present
- my personal setup here, but it
- has become too complex by now...
-
-
- --------------------
- 1 The contents of option 2 are indented to illustrate the submenu
- relationship.
- Note: If your editor replaces series of spaces with tabs, then
- columns may not align properly on the screen, especially if you
- use indentation.
-
- BOOT.SYS - 27 - Version 1.42
-
-
-
- [SCREEN] [SCREEN]
-
-
-
- CO.32 break=off
- buffers=32
- country=041,437,c:\dos\country.sys
- files=20
- lastdrive=H
- stacks=9,128
- shell=c:\dos\command.com c:\dos /p /e:300
-
- DEVICE=C:\BOOT\BOOT.SYS /L18 /U^\ /CX2F
-
- DEVICE=BOOT.A /T0 /CX4F /D1
- DEVICE=TOP
- DEVICE=TOP
- DEVICE=TOP ^Select any special boot-up options:
- DEVICE=TOP
- DEVICE=BOOT.1 >>> \NONE <<<
- DEVICE=BOOT.2 \UNIFORM\ - ^Access non-\DOS\ diskettes
- device=c:\ut\uniform\uniform.sys at+ dr96=0
- DEVICE=BOOT.3 ansi.sys
- device=c:\dos\ansi.sys
- DEVICE=BOOT.4 ^Insert an additional device driver
- DEVICE=BOOT.EDIT {see the next section}
- DEVICE=DUMMY FILLER DUMMY FILLER DUMMY FILLER
- DEVICE=BOOT.5 ^Alt-^Ctrl-^Del = cold boot
- DEVICE=BOOT.OPTION BOOTASSIST {see the next section}
- DEVICE=BOOT.SET BOOTASSIST=COLD
-
- DEVICE=BOOT.B /T5
- DEVICE=TOP
- DEVICE=TOP
- DEVICE=TOP ^Select operating environment:
- DEVICE=TOP
-
- DEVICE=BOOT.0
- DEVICE=BOOT.SET CED=Y {default}
-
- DEVICE=BOOT.1 \DOS\ with 1^M^B disk cache
- DEVICE=BOOT.SET C386=MAX
- device=c:\386max\386max.sys ext=1384
- device=c:\386max\386load.sys prog=c:\dos\cache.exe 1024
- ON /EXT /Q
- buffers=5
- device=c:\386max\386load.sys size=4216
- prog=c:\dos\vdisk.sys 360 512 64 /E:8
-
- DEVICE=BOOT.2 \DOS\ without disk cache
- DEVICE=BOOT.SET C386=MAX
- device=c:\386max\386max.sys ext=360
- device=c:\386max\386load.sys size=4216
- prog=c:\dos\vdisk.sys 360 512 64 /E:8
-
- BOOT.SYS - 28 - Version 1.42
-
-
-
- DEVICE=BOOT.3 \DESQ\view 386
- DEVICE=BOOT.SET C386=QEMM
- DEVICE=BOOT.SET DV=Y
- DEVICE=BOOT.SET CED= {erase default variable}
- DOS=LOW {MS/PC-DOS 5.00 only}
-
- DEVICE=BOOT.A /T5 /D2
- DEVICE=TOP
- DEVICE=TOP
- DEVICE=TOP ^Select \DESQ\view configuration:
- DEVICE=TOP (size of 1st window, others 12k^B less)
- DEVICE=TOP
-
- DEVICE=BOOT.1 ^Standard: 535^K^B free
- device=c:\dv\qemm\qemm386.sys extmem=360
- device=c:\dos\vdisk.sys 360 512 64 /E:8
-
- DEVICE=BOOT.2 ^Extended: 546^K^B free
- device=c:\dv\qemm\qemm386.sys extmem=360 ram rom
- device=c:\dos\vdisk.sys 360 512 64 /E:8
-
- DEVICE=BOOT.3 ^Huge: 639^K^B free (no graphics!)
- DEVICE=BOOT.SET NOEGA=Y
- DEVICE=REM use LOADHI NOEGA
- device=c:\dv\qemm\qemm386.sys extmem=360 ram rom
- include=A000-B7FF
- device=c:\dos\vdisk.sys 360 512 64 /E:8
-
- DEVICE=BOOT.Z
-
- DEVICE=BOOT.4 ^Windows 386
- DEVICE=BOOT.SET C386=HIMEM
- device=c:\dos\himem.sys
- device=c:\dos\smartdrv.sys 1024
- device=c:\dos\vdisk.sys 360 512 64 /E:8
- DEVICE=BOOT.SET CED= {erase default variable}
-
- DEVICE=BOOT.5 ^Turbo ^Debugger 386 and ^M^S-^D^O^S
- DEVICE=BOOT.SET C386=TD
- device=c:\tc\td\tdh386.sys
-
- DEVICE=BOOT.6 plain ^D^O^S
- device=boot.option free {see the next section}
- DEVICE=REM Note: BOOT.COM will return ERRORLEVEL 10
-
- DEVICE=BOOT.END
- DOS=HIGH {MS/PC-DOS 5.00 only}
-
- BOOT.SYS - 29 - Version 1.42
-
-
-
- AU.32 path c:\dos;c:\bin;c:\ut;c:\wp\lm
-
- C:\BOOT\BOOT SET >NUL:
- if errorlevel 10 goto plain_dos
-
- if not "%bootassist%" == "" C:\BOOT\BOOT BOOTASSIST
- %BOOTASSIST% >nul:
- set bootassist= {don't need this anymore}
-
- quikkey 24
-
- if "%c386%" == "MAX" goto max
- if "%c386%" == "QEMM" goto qemm
-
- c:\dos\plus\kbext
- if "%ced%" == "Y" c:\ut\ced -b500,200,300,128,128,128
- -fc:\ut\ced.cfg
- goto cont
-
- :max
- c:\386max\386load size=1052 envname prog=c:\dos\plus\kbext
- if "%ced%" == "Y" c:\386max\386load size=9892 envname
- prog=c:\ut\ced
- -b500,200,300,128,128,128
- -fc:\ut\ced.cfg
- goto cont
-
- :qemm
- if "%noega%" == "Y" c:\dv\qemm\loadhi c:\dv\qemm\noega
- set noega= {don't need this anymore}
- c:\dv\qemm\loadhi c:\dos\plus\kbext
- if "%ced%" == "Y" c:\dv\qemm\loadhi c:\ut\ced
- -b500,200,300,128,128,128
- -fc:\ut\ced.cfg
- goto cont
-
- :cont
- if "%WIN%" == "Y" cd c:\win
- if "%WIN%" == "Y" win
- if "%DV%" == "Y" cd c:\dv
- if "%DV%" == "Y" dv
-
- :plain_dos
-
-
-
- The first menu is for 'special needs': it has a timeout of 0 and
- defaults to an empty option. To use non-DOS diskettes or ANSI.SYS
- just press a key (e.g. the space bar) immediately after the two
- beeps at boot-up. This displays the 'special needs' menu, which
- appears in red to distinguish it from the normal green menus. You
- also might put in here device drivers for your scanner, your
- CD-ROM drive, or any other devices that you do not use fre-
- quently.
-
- BOOT.SYS - 30 - Version 1.42
-
-
-
- The BOOT.EDIT and BOOT.OPTION lines will be explained in the next
- section.
-
- The second menu (which is usually the first to be displayed) lets
- you select the operating environment to use:
-
- - MS-DOS with disk cache
- - MS-DOS without disk cache (more EMS memory)
- - DESQview 386
- - Windows
- - Turbo Debugger with 386 support
-
- Depending on which operating environment is selected, one of four
- mutually exclusive 386 control programs are used, and all of them
- have to be loaded from CONFIG.SYS; without BOOT.SYS you would
- need at least 4 different versions of CONFIG.SYS. Some of the 386
- control programs support loading other device drivers and TSRs
- into 'high DOS memory' above the 640K, so AUTOEXEC.BAT is
- affected as well. This menu could also be used to select other
- command processors like 4DOS, *nix-like shells, or other replace-
- ments for COMMAND.COM.
-
- The DESQview option has a submenu to choose between three differ-
- ent QEMM386 setups; each option gives different amounts of memory
- available, along with other advantages and disadvantages (e.g.,
- an additional 96K bytes of memory can be made available for each
- window if you do not want to use any graphics programs).
-
- The sample AUTOEXEC.BAT demonstrates nicely how unrelated aspects
- of your system configuration can be defined in a modular way,
- e.g. while this CONFIG.SYS always runs Windows with HIMEM, that
- is not reflected in AUTOEXEC.BAT; if you wish to start running
- Windows under QEMM you only need to change CONFIG.SYS.
-
-
- Controlling the DOS= Command in MS/PC-DOS 5.00
-
- General Introduction
-
- MS/PC-DOS 5.00 has introduced a new command to CONFIG.SYS:
-
- DOS=HIGH|LOW,UMB|NOUMB
-
- The DOS= command defines two unrelated properties of your system
- configuration that are discussed separately:(1)
-
-
-
-
-
-
- --------------------
- 1 Please refer to the MS-DOS Reference for more information on
- DOS= .
-
- BOOT.SYS - 31 - Version 1.42
-
-
-
- -> DOS=HIGH|LOW
-
- MS/PC-DOS 5.00 has the ability to load most of itself into the
- so-called High Memory Area (HMA).(1) The DOS default is DOS=LOW ,
- i.e. not use the HMA, but usually you will want DOS to go high
- and give you additional conventional memory in the first 640K.
-
- However, there are circumstances when DOS=LOW might be better:
- - Some programs are incompatible with DOS=HIGH , e.g. some ver-
- sions of Borland's Turbo Debugger 386.
- - Some programs can make better use of the HMA than DOS and you
- gain more by letting them use the HMA instead of DOS, e.g.
- DESQview-386.
-
- BOOT.SYS lets you have HIGH and LOW configuration side by side,
- but some special care is needed as explained below.
-
- -> DOS=UMB|NOUMB
-
- MS/PC-DOS 5.00 supports loading device drivers and resident pro-
- grams (TSRs) into the so-called Upper Memory Blocks (UMBs).(2)
- 386MAX and QEMM386 have had this capability for a long time, and
- they provide their own utilities for loading high; by default
- ( DOS=NOUMB ) DOS does not interfere.
-
- On the other hand, DOS=UMB instructs DOS to allocate the UMBs as
- soon as they become available and to integrate them into its own
- memory management.(3) This has two consequences:
- - You can use the DEVICEHIGH and LOADHIGH commands that are
- built into DOS (however these are not as powerful and versa-
- tile as the ones included with 386MAX or QEMM386).
- - DOS can make free UMBs available for use by normal
- application programs (not just device drivers and TSRs). At
- present 386MAX and QEMM386 do not support this.
-
-
-
- --------------------
- 1 The HMA is the first 64K-16 bytes of extended memory (80286
- processor and up), and it is defined in the so-called eXtended
- Memory Specification (XMS). Every memory manager that adheres to
- the XMS standard provides the HMA, e.g. HIMEM.SYS, 386MAX, and
- QEMM386.
-
- 2 UMBs are regions in the address range between 640K and 1M on
- computers equipped with an 80386 processor or higher, that are
- not used for any other purpose. A suitable memory manager (a
- so-called UMB provider, e.g. 386MAX, QEMM386, or HIMEM and EMM386
- as included with MS/PC-DOS 5.00) can map extended memory into
- these regions and make them usable for device drivers and resi-
- dent programs.
-
- 3 DOS=UMB is the only way to go if you use HIMEM.SYS and
- EMM386.EXE that are provided with MS/PC-DOS 5.00.
-
- BOOT.SYS - 32 - Version 1.42
-
-
-
- Some time in the future the third-party memory managers will
- probably support the DOS memory management and DOS=UMB will work
- for everything, but until then BOOT.SYS lets you have UMB and
- NOUMB configurations side by side.
-
-
- BOOT.SYS and the DOS= Command
-
- The DOS= command creates some intricate problems for BOOT.SYS
- because it is prescanned, i.e. DOS looks throughout CONFIG.SYS
- for DOS= commands and sets itself up accordingly before BOOT.SYS
- receives control. BOOT.SYS still manages to give you complete
- freedom in your configurations, but some special care is
- required.
-
- During the DOS prescan for DOS= , the last instance of HIGH / LOW
- and UMB / NOUMB , respectively, is recorded for use by DOS, no
- matter where the DOS= line(s) is/are located. These settings are
- used for loading the device drivers above BOOT.SYS(1) and as
- defaults for those BOOT.SYS configurations that do not specify
- anything else. To let BOOT.SYS control HIGH / LOW , DOS=HIGH must
- be active! We recommend that you put DOS=HIGH below BOOT.END .(2)
-
- When you select a certain configuration, BOOT.SYS wipes out all
- the commands that are not part of the selected configuration;
- then it scans the remaining lines between BOOT.SYS and BOOT.END
- for DOS= commands. Just like DOS, BOOT.SYS uses the last instance
- of each of the two properties and the boot process continues with
- these new settings.
-
- It may be helpful to record the DOS= settings in environment
- variables for later use in AUTOEXEC.BAT and possibly other batch
- files.
-
-
- DOS= Summary
-
- To control the DOS= command use the following procedure:
-
- 1. Put the line
-
- DOS=HIGH,NOUMB
-
-
-
-
- --------------------
- 1 I.e. if DOS=HIGH is set, and an XMS driver is loaded ahead of
- BOOT.SYS and the XMS driver provides the HMA (high memory area),
- then DOS will take the HMA and load high immediately; likewise,
- if DOS=UMB is active and some upper memory blocks become avail-
- able, then DOS will take them immediately.
-
- 2 ... and of course no DOS=LOW below it.
-
- BOOT.SYS - 33 - Version 1.42
-
-
-
- at the bottom of CONFIG.SYS (below BOOT.END ) to set the
- defaults to HIGH and NOUMB .(1)
-
- 2. In the configurations that need UMB , insert:
-
- DOS=UMB
- DEVICE=BOOT.SET UMB=Y {optional}
-
- 3. In the configurations that need LOW , insert:
-
- DOS=LOW
- DEVICE=BOOT.SET LOW=Y {optional}
-
- Technically, when you specify DOS=LOW , BOOT.SYS allocates
- the HMA and DOS is forced low, just as if the HMA was not
- available at all. The HMA is automatically released the
- first time you call BOOT.COM.
-
- If you are using HIMEM.SYS, there is one caveat: The version
- of HIMEM.SYS that comes with MS/PC-DOS 5.00 has the ability
- to load itself into the HMA if DOS=HIGH is specified, but it
- grows considerably when DOS is forced low by BOOT.SYS.(2) To
- avoid wasting precious RAM, either use one of the more ver-
- satile third-party 386 control programs (e.g. QEMM386 or
- 386MAX) instead of HIMEM.SYS or use a different version of
- HIMEM.SYS (e.g. the one that comes with Microsoft Windows
- 3.0) for the 'low' configurations.
-
-
- BOOT.SYS Extensions
-
- This chapter explains extensions to BOOT.SYS that go beyond the
- menu system.
-
- BOOT.EDIT
-
- You can edit individual lines on the fly while booting up by
- including the following lines in CONFIG.SYS (between the BOOT.SYS
- and BOOT.END lines):
-
-
- DEVICE=BOOT.EDIT
- {any standard CONFIG.SYS command}
-
-
-
-
- --------------------
- 1 HIGH is required by BOOT.SYS, and NOUMB is recommended because
- it is the standard DOS default, i.e. if you specify neither UMB
- nor NOUMB you should get NOUMB .
-
- 2 Use MEM /C to get information about the sizes of your resident
- programs and device drivers.
-
- BOOT.SYS - 34 - Version 1.42
-
-
-
- [SCREEN]
- When the menu option containing
- these lines is selected, BOOT.SYS
- displays a screen with a box that
- lets you edit the text to the right
- of the equal sign. The keyword to
- the left of the equal sign
- ( DEVICE , FILES , etc.) and the
- equal sign are required and cannot
- be edited.
-
- All the usual editing keys are supported; a summary will be
- displayed on the screen. There is one restriction: the length of
- the line cannot be increased!(1)
-
- When you press <Enter>, your edits are saved and execution con-
- tinues. To ignore this line and continue, press <Esc> instead.
-
- You may put some explanatory text to the right of BOOT.EDIT and
- BOOT.SYS will display your text instead of the standard message
- explaining the edit keys. If you need more than one line you can
- use as many BOOT.EDIT lines as you like - it works exactly like
- DEVICE=TOP . Example:
-
-
- DEVICE=BOOT.EDIT You may experiment with different
- DEVICE=BOOT.EDIT BUFFERS=n values (<Esc> = ignore):
- BUFFERS=020
-
-
-
-
- BOOT.OPTION FREE
-
- If the line
-
-
- DEVICE=BOOT.OPTION FREE
-
-
-
- --------------------
- 1 There are several ways to get around this limitation:
- - Insert spaces into the line, e.g. between the name of the
- device driver and the parameters (DOS discards any spaces to
- the left or immediately to the right of the equal sign, and
- most text editors do not save spaces at the end of the line).
- - Insert dummy text that you can erase while editing the line.
- - Insert normal spaces at the end of the line followed by a
- single 'hard space'; this is the character with the ASCII
- value 255, and it can usually be entered by holding down the
- Alt key, entering 255 on the numeric keypad, and releasing
- the Alt key.
- Some of these work-arounds may not work with all versions of DOS.
-
- BOOT.SYS - 35 - Version 1.42
-
-
-
- is part of at least one of the options you select, then BOOT.SYS
- will not stay resident as a device driver.(1) This lets you
- create a bare-bones DOS option for checking out TSR conflicts and
- the like. The resident size of BOOT.SYS is so small (typically
- less than 200 bytes) that FREE is not worth it in regular use.
-
- If BOOT.SYS does not stay resident, the variables you may have
- set in CONFIG.SYS are lost and BOOT.COM has no way to copy them
- to the environment - it cannot even tell that BOOT.SYS has done
- its work! In that case it displays an error message indicating
- that BOOT.SYS is not loaded and returns an ERRORLEVEL code of 10,
- which you can use to avoid loading TSRs in AUTOEXEC.BAT.
-
- An example of this option is part of the last sample configura-
- tion above.
-
-
- BOOT.OPTION BOOTASSIST
-
- There exist system configurations and software packages that make
- your system crash when you hit the Alt-Ctrl-Del key combination.
- BOOTASSIST lets you modify the behavior of Alt-Ctrl-Del, and it
- may be of help in your particular situation. To set it up
- requires two steps; the first is to include the line
-
-
- DEVICE=BOOT.OPTION BOOTASSIST
-
-
- somewhere between BOOT.SYS and BOOT.END.(2) Executing this line
- slightly increases the resident size of BOOT.SYS but does not
- change anything else. The second step is to activate BOOTASSIST
- by executing one of the following commands from the DOS prompt or
- in a batch file (possibly AUTOEXEC.BAT):
-
-
- BOOT BOOTASSIST WARM
-
- BOOT BOOTASSIST COLD
-
- BOOT BOOTASSIST INHIBIT
-
-
-
-
-
-
- --------------------
- 1 There may be versions of DOS with which this does not work. Any
- reports are appreciated!
-
- 2 You can put it wherever a normal CONFIG.SYS command is accept-
- able, either as part of an option, or between BOOT.Z and BOOT.END
- to have it available all the time.
-
- BOOT.SYS - 36 - Version 1.42
-
-
-
- Each of these commands does to Alt-Ctrl-Del what its parameter
- implies: WARM is just the normal boot process, COLD is like
- turning the power off and back on, and INHIBIT disables Alt-Ctrl-
- Del. If you are having problems with Alt-Ctrl-Del, one of these
- command may help, but there's no guarantee! Your chances are best
- if you load all your resident utilities before activating BOOT-
- ASSIST.(1)
-
- The remainder of this section is a technical explanation of how
- BOOTASSIST works. The resident part is a keyboard interrupt (09h)
- handler, which is inserted at the head of the handler chain by
- one of the commands above.(2) Being the first in the chain it can
- usually perform the required action which may or may not work
- with your setup. If you want to load another resident utility
- program that hooks up to the same interrupt, you can unhook the
- BOOTASSIST handler by issuing the command
-
-
- BOOT BOOTASSIST OFF
-
-
- and put it back at the head of the chain after loading the TSR.
- If the INT 09h vector does not point to the BOOTASSIST handler,
- it cannot be unhooked anymore and you get an error message indi-
- cating that another program has grabbed the vector, including the
- new address.
-
- If BOOTASSIST does not work properly and turning it OFF does not
- generate an error message, then BOOTASSIST cannot solve your par-
- ticular configuration problem.
-
-
- BOOT.OPTION EXTMON for Laptops
-
- When you use BOOT.SYS with a laptop computer and you have an
- external monitor attached, then BOOT.SYS will usually come up on
- the internal monitor. This is a minor inconvenience which is
- addressed by EXTMON: EXTMON switches to the external monitor.
- However, because there are no standards for this function among
- the different laptop manufacturers (and sometimes not even within
- a product line), it has to be implemented separately for each
- system.
-
-
-
-
-
- --------------------
- 1 If you use one of the KEYBxx keyboard drivers to get a non-U.S.
- keyboard layout (national language support), you must activate
- BOOTASSIST after KEYBxx.
-
- 2 Warning: SideKick insists on being the first in the chain and
- thus defeats this scheme.
-
- BOOT.SYS - 37 - Version 1.42
-
-
-
- At the time of this writing support is implemented for Compaq
- portable and laptop computers only. Support for other computers
- may be added in the future if there is interest and the relevant
- information is available.
-
- The syntax for EXTMON is
-
-
- DEVICE=BOOT.OPTION EXTMON <type>
-
-
- where <type> is machine-specific and can be taken from the fol-
- lowing table:
-
-
- Manufacturer <type> Computer Models
- Compaq COMPAQ all Compaq portables and laptops
- all COLOR standard color screen (mode 3)
- all MONO standard monochrome screen (mode
- 7)
-
-
- There are two ways of handling EXTMON, depending on how smart
- your computer is: If it is smart, it will not try to switch to an
- external monitor when there is none. In that case you can use the
- following lines in CONFIG.SYS, which will make BOOT.SYS use the
- right monitor everytime:
-
-
- DEVICE=c:\bin\BOOT.SYS
- DEVICE=BOOT.A {optional}
- DEVICE=TOP ...
- DEVICE=BOOT.0
- DEVICE=BOOT.OPTION EXTMON <type> {<type> as above}
- DEVICE=BOOT.1 ...
- ...
- DEVICE=BOOT.END
-
-
- If your computer cannot tell whether an external monitor is
- attached or not, you must use a different setup:
-
-
- DEVICE=c:\bin\BOOT.SYS
- DEVICE=BOOT.A /D1 /T10
- DEVICE=TOP Which monitor do you want to use?
- DEVICE=BOOT.1 Internal
- DEVICE=BOOT.2 External
- DEVICE=BOOT.OPTION EXTMON <type> {<type> as above}
-
- BOOT.SYS - 38 - Version 1.42
-
-
-
- DEVICE=BOOT.B
- DEVICE=TOP ... {this is your menu}
- DEVICE=BOOT.1 ...
- ...
- DEVICE=BOOT.END
-
-
- This will display an additional menu at the very beginning where
- you can select the monitor to use. After a /Timeout of 10 seconds
- BOOT.SYS will select the /Default 1, the internal screen. Press-
- ing the '2' key within that time causes it to switch to the
- external monitor for the next menu. This can be done even without
- seeing the menu A, and menu B will be displayed right where you
- want to see it.
-
- Warning: We strongly advise you to use a bootable diskette to try
- out the EXTMON function! If the switch does not work properly,
- your internal screen may go blank, and you will have no way of
- editing the CONFIG.SYS file on the disk you used to boot up!
-
-
- BOOT.OPTION COLOR
-
- Some people prefer more colorful screens to the white on black
- used by DOS. This option lets you specify any color (with the
- same numbers as for the /C switch on the BOOT.SYS command line),
- which will be used immediately after the BOOT.SYS menu.(1) How-
- ever, some device drivers use their own colors, and there is
- nothing that BOOT.SYS could do to change that. Example:
-
-
- DEVICE=BOOT.OPTION COLOR X1F {bright white on blue}
-
-
- BOOT.COM Command Line Parameters
-
- The syntax of BOOT.COM is
-
- BOOT <parm>
-
- where <parm> is one of the following:
-
- SET
- Copy the BOOT.SYS variables defined in CONFIG.SYS into the
- DOS environment and display them.
-
- --------------------
- 1 A value of 0 can be used to change the color to black on black,
- effectively hiding the messages generated from CONFIG.SYS.
- Executing CLS from AUTOEXEC.BAT or from the command line restores
- the default color. Warning: This is not recommended, because in
- case of a problem you will not be able to see any error messages,
- and you may have to boot from a diskette and change the color to
- find out what the problem is.
-
- BOOT.SYS - 39 - Version 1.42
-
-
-
- CLEAR
- Erase the BOOT.SYS variables from the DOS environment to free
- up space.
-
- no parameter
- BOOT.COM will display something similar to the following
- example:
-
- The user selected the following menu choices:
- A1
- B3
- B3A1
-
- This would mean that when you booted up your PC, you selected
- option 1 on the first menu (menu A) and option 3 on the sec-
- ond menu (menu B); that option apparently has a submenu
- (menu B3A) and you selected option 1.
- If there is only one menu, then BOOT.COM will also set the
- ERRORLEVEL (see below).
-
- WARM
- Do a warm boot (like Alt-Ctrl-Del).
-
- COLD
- Do a cold boot (like turning the power switch off and on).
-
- WARM and COLD accept an optional switch ( /O ) for compati-
- bility with very /Old BIOS versions.
-
- BOOTASSIST <p>
- See the chapter on BOOTASSIST.
-
- VERSION
- Display whether this is a registered or an evaluation ver-
- sion, and how to register it.
-
- <menu_selector>(1) {This is obsolete and included for backward
- compatibility only!}
- This form is used for retrieving the user's choices (usually
- in AUTOEXEC.BAT) after CONFIG.SYS has been processed. The
- menu selector is the string of letters and digits that
- uniquely identifies a menu.(2) Expanding on the example 3.1
- above, BOOT b would display 3 and set the DOS ERRORLEVEL(3)
-
- --------------------
- 1 If there is only one menu, then the <menu_selector> is
- optional.
-
- 2 If you specify /P on the BOOT.SYS line in CONFIG.SYS the menu
- selector (and the nesting level) is displayed in the lower right
- corner of each menu.
-
- 3 Be sure to always test ERRORLEVELs in descending order and
- immediately after the call to BOOT.COM!
-
- BOOT.SYS - 40 - Version 1.42
-
-
-
- to 3, and BOOT b3a would display/return 1. Of course you must
- always start testing with the top level, and only when you
- know that BOOT b returns 3, you can ask for BOOT b3a .
-
- If BOOT.SYS is not installed or did not stay resident,
- BOOT.COM displays an error message and returns an ERRORLEVEL
- of 0.
-
- HELP
- Display a summary of this list.
-
-
- PAUSE.SYS, a Debugging Aid
-
- You may have some very sophisticated setups by now, and if a
- certain configuration does not work right it can be quite chal-
- lenging to find the problem, especially because the messages from
- the various drivers scroll by very quickly on fast machines.
-
- PAUSE.SYS provides various functions in CONFIG.SYS that may be
- helpful; the primary function is similar to what the PAUSE com-
- mand does in a batch file:
-
-
- DEVICE=c:\bin\PAUSE.SYS any text you like
-
-
- will display the text and wait for you to press any key to
- continue. The text is always translated to lower case; to get an
- upper case character, preceed the character with a caret ( ^ ),
- and to display a caret, write two carets.
-
- PAUSE.SYS accepts some command line switches that change its
- behavior:
-
-
- DEVICE=c:\bin\PAUSE.SYS /C {clear the screen}
- DEVICE=c:\bin\PAUSE.SYS /P {do a PrintScreen}
- DEVICE=c:\bin\PAUSE.SYS /O any text {output only, no wait}
- DEVICE=c:\bin\PAUSE.SYS /Exxx {ESC sequence}
-
-
- All of these options suppress the wait for a key. The last option
- is intended to send escape sequences to ANSI.SYS or a replacement
- with similar capabilities; the following lines would change the
- screen color to bright white on blue and clear the screen, pro-
- vided that ANSI.SYS is already loaded:
-
-
- DEVICE=c:\bin\PAUSE.SYS /E[1;37;44m
- DEVICE=c:\bin\PAUSE.SYS /E[2^J {upper case J}
-
- BOOT.SYS - 41 - Version 1.42
-
-
-
- To get a summary of the functions of PAUSE.SYS, just
-
-
- TYPE PAUSE.SYS
-
-
- from the DOS prompt.
-
-
- Closing Remark
-
- By now you have versions of CONFIG.SYS and AUTOEXEC.BAT that are
- much more sophisticated than usual. Unfortunately there is a
- growing trend in the software industry to provide automated
- installation programs that read and update your system configura-
- tion files, and this leads to some problems:
-
- - There are installation programs that will boldly overwrite
- your configuration files or make other undesirable changes.
-
- - Others will try to make sense of the current contents and
- then change to whatever their programs preferences are; they
- will certainly not be able to handle CONFIG.SYS and AUTOEX-
- EC.BAT correctly when BOOT.SYS is installed.
-
- - A third category of installation programs will examine the
- contents of CONFIG.SYS and abort the installation if they
- find something offensive. The prime examples are
- MS Windows 386 and MS Windows 3.0, which refuse to install if
- they find a mention of another 386 control program in CON-
- FIG.SYS.
-
- - 386MAX and QEMM386 are in a class all by themselves: they
- come with installation programs called MAXIMIZE/OPTIMIZE that
- will change your CONFIG.SYS and reboot several times to find
- a good system configuration. These installation programs can-
- not handle your sophisticated CONFIG.SYS and they will prob-
- ably end up in a 'crash loop', forcing you to boot from a
- floppy disk to recover.(1)
-
- There are two possible cures to this situation: The first is to
- keep a duplicate of CONFIG.SYS and AUTOEXEC.BAT on hand, so you
- can examine the changes and integrate them at the proper places.
- In fact, keeping current backups is always a good idea!
-
- The second cure is to patch IBMBIO.COM and COMMAND.COM to use
- other names for CONFIG.SYS and AUTOEXEC.BAT. Warning: This is not
- for the faint of heart! If you feel somewhat uncomfortable doing
- this, then please do not even try! The procedure is deliberately
- not explained here, because if you do not have any experience
-
- --------------------
- 1 For information on how to run MAXIMIZE/OPTIMIZE, please look at
- "Answers to Common Question, How can I run...".
-
- BOOT.SYS - 42 - Version 1.42
-
-
-
- with patching files, you should not make your first steps in this
- field with your system files.(1) - Now to the advantage of this
- patch: You will never have to worry about automated installation
- programs anymore, because these will assume that you do not have
- either CONFIG.SYS nor AUTOEXEC.BAT, they will usually create
- these files, and you can go back and look calmly at how the
- system should be set up for the program in question and make any
- necessary changes yourself.
-
-
-
- Answers to Common Questions
-
-
- Why do I get error messages like 'Unrecognized command' from CON-
- FIG.SYS?
-
- With versions of DOS prior to 4.00, commands that have fewer than
- three characters to the right of the equal sign cannot be wiped
- out cleanly, and DOS will give an error message similar to 'Un-
- recognized command'.
-
- This can usually be fixed by appending ' x' to the command in
- question; thus 'LASTDRIVE=F' would become 'LASTDRIVE=F x' and
- 'BREAK=ON' would become 'BREAK=ON x'. Commands with numbers like
- 'FILES=20' accept leading zeros, like 'FILES=020'. I do not know
- how universal these work-arounds are - you will have to experi-
- ment if they work with your version of DOS.
-
-
- My choice is not recognized in AUTOEXEC.BAT...
-
- If you are still using the old ERRORLEVEL interface in AUTOEX-
- EC.BAT (not documented anymore), make sure that all of your IF
- ERRORLEVEL tests start with the highest values first.
-
- If you are using the environment variable interface, please turn
- to the section <<Trouble-shooting Variable Problems>>
-
-
- I get an error message from BOOT.SYS...
-
- If BOOT.SYS finds an error in your CONFIG.SYS file, it tries to
- display a useful error message and aborts. Aborting implies wip-
- ing out all the commands between BOOT.SYS and BOOT.END . BOOT.COM
- then returns an ERRORLEVEL code of 0 and displays an error
- message, too.
-
-
- --------------------
- 1 A second word of warning: If you patch your system files and
- make a bootable diskette, the diskette will get copies of your
- patched system files, so you must use the new names for CON-
- FIG.SYS and AUTOEXEC.BAT on the diskette as well.
-
- BOOT.SYS - 43 - Version 1.42
-
-
-
-
- Will BOOT.SYS get along with automated installation programs that
- modify CONFIG.SYS and/or AUTOEXEC.BAT?
-
- The answer is NO! Please read the chapter "Closing remark" in the
- Installation section for more information.
-
-
- How can I run the 386MAX/QEMM386 installation programs (MAXIMI-
- ZE/OPTIMIZE) with BOOT.SYS?
-
- To run MAXIMIZE/OPTIMIZE do the following:
- - Rename your CONFIG.SYS and AUTOEXEC.BAT files to something
- else.
- - Create new CONFIG.SYS and AUTOEXEC.BAT files and include
- only those commands that you wish to use for your new
- 386MAX/QEMM386 configuration (don't include BOOT.SYS!).
- - Run MAXIMIZE/OPTIMIZE.
- - Merge the new CONFIG.SYS and AUTOEXEC.BAT into the old ver-
- sions as your new 386MAX/QEMM386 option.
- If you patched IBMBIO.COM and COMMAND.COM to use different names
- for CONFIG.SYS and AUTOEXEC.BAT, then you must undo those patches
- or restore the original files, because MAXIMIZE/OPTIMIZE will use
- the standard file names.
-
-
- BOOT.SYS doesn't work right with the DOS= command in
- MS/PC-DOS 5.00...
-
- Please read the chapter on DOS= in the <<Installation>> section.
-
-
- BOOT.COM says that BOOT.SYS is not installed...
-
- There can be two reasons for this error message:
-
- - BOOT.SYS is not installed in your CONFIG.SYS or failed for
- some reason (usually with an appropriate error message).
-
- - You are using BOOT.OPTION FREE, and BOOT.SYS did not stay
- resident; consequently BOOT.COM has no way of finding it now.
- The only purpose of BOOT.OPTION FREE is to define a boot
- option that will start DOS without any resident programs
- (like booting from the original DOS distribution disk), e.g.
- for experimenting with TSR conflicts, and it should not be
- used under normal circumstances.
-
-
- Can I use all characters to create boot-up menus?
-
- Yes, to create menus you may use any of the characters of the PC
- character set (including the box and foreign characters) except
- for NUL, HT, BS, LF, CR, and Ctrl-Z. The BEL character (Ctrl-G)
- sounds the bell and displays a space.
-
- BOOT.SYS - 44 - Version 1.42
-
-
-
-
- I can't get the columns to align properly...
-
- If your editor converts multiple spaces to tabs then the text on
- the screen may not align properly. Your best bet is to set the
- editor so that it will not compress spaces to tabs. - However,
- everything should be fine if the tabs are on every 8th column
- (standard for DOS) and there are no (or a multiple of 8) spaces
- to the left of TOP or BOOT.n .
-
-
- Possible problem with BREAK=ON
-
- If you use the BREAK=ON command in your CONFIG.SYS file you
- should make sure that BREAK really is enabled by entering BREAK
- at the DOS prompt. If BREAK is off, try moving the BREAK=ON com-
- mand below the BOOT.END line.
-
- To avoid this problem altogether you can enable BREAK later in
- AUTOEXEC.BAT with the command BREAK ON .
-
-
- BOOT.SYS doesn't work right with XMAEM.SYS in PC-DOS 4.0x...
-
- PC-DOS 4.0x and probably later versions process the XMAEM.SYS
- driver in a special way: it is loaded before any other part of
- CONFIG.SYS is processed. Unfortunately this makes it impossible
- for BOOT.SYS to control that driver because XMAEM.SYS is already
- installed when BOOT.SYS runs.
-
- A work-around to this problem is to rename XMAEM.SYS to some
- other name (like XMAEMX.SYS ) and to use that name in the DEVICE=
- command. Load the renamed driver early in your CONFIG.SYS, defi-
- nitely before XMA2EMS.SYS .
-
-
- I have a certain configuration where Alt-Ctrl-Del crashes the
- system and forces me to hit the big red switch. Can BOOT.SYS
- help?
-
- Yes, BOOT.SYS may be able to help. Follow the directions in the
- BOOTASSIST chapter of the installation section. If this does not
- help you may still be able to re-boot from the command line (see
- BOOT.COM Command Line Parameters).
-
- BOOT.SYS - 45 - Version 1.42
-
-
-
-
- The Windows installation program (and maybe others as well) com-
- plain that I have a 386 memory manager installed...
-
- The installation program examines the contents of CONFIG.SYS and
- when it finds a mention of 386MAX, QEMM386, or similar programs
- it complains, because Windows has its own 386 memory management
- and may have problems with other 386 control programs. The conse-
- quences of this for you as a user of BOOT.SYS are very minor:
- just set up a special BOOT.SYS menu item specifically for
- Windows, possibly one for each mode.
-
- The quickest way to get Windows installed is to rename CONFIG.SYS
- to something else - the installation program will run without
- problems, even with one of the offensive programs loaded. It will
- create a new CONFIG.SYS containing all the commands it expects to
- have in the BOOT.SYS Windows option of your real CONFIG.SYS file.
- Look at configuration 32 for an example.
-
- Please consult the chapter "Closing remark" in the installation
- section for some general information concerning automated instal-
- lation programs.
-
-
- What can I do if BOOTASSIST does not work?
-
- Try turning BOOTASSIST OFF; if this is successful then BOOTASSIST
- will not work with your configuration and nothing can be done
- about it. If you get an error message, please refer to the BOOT-
- ASSIST chapter of the installation section.
-
- BOOT.SYS - 46 - Version 1.42
-
-
-
- Revision History
-
- 0.95 Beta release
-
- 0.96 Fixed /v in BOOT.COM
- Fixed invalid parm error
-
- 1.00 First public release
-
- 1.01 Allow '-' along with '/' for command line switches
-
- 1.10 Documentation update, mention of ASP
-
- 1.20 Fixed minor bug that disabled /Timeout under some very
- special timing circumstances.
- Added /Spacing to BOOT.SYS.
- Individual CONFIG.SYS lines can now be edited on the fly
- while booting up.
- New parameters to BOOT.COM:
- - "HELP", "/H", "/?", "?" to get a short command summary
- - "VERSION" to get version information
- - "WARM" and "COLD" to re-boot from the command line or
- from a batch file; "/O" switch for compatibility with
- old BIOSes
- New feature to make Alt-Ctrl-Del perform a cold boot, a
- warm boot, or no boot (BOOTASSIST).
- Option to keep BOOT.SYS from installing its tiny resident
- part to get a minimal plain-DOS setup (may not work with
- all DOS versions).
- New international support channel on CompuServe.
- Free CompuServe IntroPak for registered users.
- New retail distribution channel in the U.S.A. through PsL.
-
- 1.21 Fixed bug that caused BOOT.SYS to hang when it was called
- from the first line of CONFIG.SYS and running under DOS
- 4.xx.
- Added new chapter "Quick Start" (Thanks, F.P.).
- Added Home/End key support to the BOOT.SYS menus.
-
- 1.22 Fixed bug that caused BOOT.SYS to ignore the first switch
- on the BOOT.A etc. lines under DOS 4.xx.
-
- 1.25 Documentation update.
- New BOOT.OPTION EXTMON (Compaq: ok, Toshiba: needs test-
- ing) (Thanks, B.F.).
- New BOOT.OPTION COLOR.
- New PAUSE.SYS utility.
- Fixed several minor bugs.
-
- 1.26 Fixed a bug where BOOT.COM was reporting the wrong version
- (Thanks, S.G.).
-
- BOOT.SYS - 47 - Version 1.42
-
-
-
- 1.27 Fixed a bug in PAUSE.SYS (Thanks E.R.).
- Minor documentation update.
- If /T0 is specified and no key is pressed, then the menu
- does not flash on and off.
- If no key is pressed the Shareware screen is never dis-
- played; this allows unattended boot-up without the risk of
- waiting for a key to acknowledge the screen.
- Several other internal tune-ups.
-
- 1.40 Full support for the new MS/PC-DOS 5.00 including the DOS=
- command.
- New BOOT.SET for defining environment variables from CON-
- FIG.SYS.
- New /N switch to set/clear NumLock (Thanks B.G.).
- BOOT.OPTION EXTMON: new MONO and COLOR (Thanks O.M.).
- New case toggle to complement case shift (/Uct).
- Several other internal tune-ups.
- Major documentation revision.
-
- 1.41 Fixed a bug in BOOT SET under DOS 3.20 (Thanks B.H.).
- Fixed an old bug in BOOT.SYS /Cn (Thanks D.H.).
- Several other internal tune-ups.
- Minor documentation revision/correction.
-
- 1.42 Changed message that is displayed when BOOT.SYS cannot
- control the DOS= command because it is loaded high.
- Corrected file dates.