home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_01_06 / boot127.exe / lha / BOOT.DOC < prev    next >
Text File  |  1990-10-12  |  92KB  |  2,086 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.           BOOT.SYS(tm)   -   Version 1.27
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.           Use boot-up menus to select your MS-DOS system configuration
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.                                _______
  38.                           ____|__     |                (R)
  39.                        --|       |    |-------------------
  40.                          |   ____|__  |  Association of
  41.                          |  |       |_|  Shareware
  42.                          |__|   o   |    Professionals
  43.                        -----|   |   |---------------------
  44.                             |___|___|    MEMBER
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.           Written by Hans Salvisberg
  54.  
  55.           BOOT.SYS                     -  2  -                 Version 1.27
  56.  
  57.  
  58.  
  59.                                    Copyright Notice
  60.  
  61.           BOOT.SYS(tm) and the accompanying programs and documentation are
  62.  
  63.  
  64.                        Copyright (c) 1989, 1990 Hans Salvisberg
  65.                                  All rights reserved
  66.  
  67.  
  68.  
  69.  
  70.  
  71.                                   Table of Contents
  72.  
  73.           Introduction ...............................................   3
  74.  
  75.           About ASP ..................................................   4
  76.  
  77.           ASP Ombudsman Information ..................................   5
  78.  
  79.           License Agreement ..........................................   5
  80.  
  81.           Registration ...............................................   7
  82.  
  83.           Installation ...............................................  10
  84.  
  85.             Quick Start ..............................................  11
  86.  
  87.             Level 1: One Menu ........................................  12
  88.  
  89.             BOOT.SYS Command Line Parameters .........................  16
  90.  
  91.             Level 2: Several Independent Menus Following Each Other ..  17
  92.  
  93.             Level 3: Nested Menus ....................................  19
  94.  
  95.             BOOT.SYS Extensions ......................................  26
  96.                BOOT.EDIT .............................................  26
  97.                BOOT.OPTION FREE ......................................  27
  98.                BOOT.OPTION BOOTASSIST ................................  27
  99.                BOOT.OPTION EXTMON for Laptops ........................  28
  100.                BOOT.OPTION COLOR .....................................  30
  101.  
  102.             BOOT.COM Command Line Parameters .........................  30
  103.  
  104.             PAUSE.SYS, a Debugging Aid ...............................  32
  105.  
  106.             Closing Remark ...........................................  33
  107.  
  108.           Answers to Common Questions ................................  34
  109.  
  110.           Revision History ...........................................  38
  111.  
  112.           BOOT.SYS                     -  3  -                 Version 1.27
  113.  
  114.  
  115.  
  116.                                      Introduction
  117.  
  118.           BOOT.SYS makes  it  possible  to display  one  or more  menus  at
  119.           boot-up time  and to  have different parts  of CONFIG.SYS  and/or
  120.           AUTOEXEC.BAT executed depending on which menu options are chosen.
  121.  
  122.           Many people  need different versions  of CONFIG.SYS depending  on
  123.           what application they  are going to run.  In the past you  had to
  124.           either rename  or edit your  start-up files and  reboot to get  a
  125.           different setup.  Now this  process  has become  much easier  and
  126.           safer by using BOOT.SYS.
  127.  
  128.           BOOT.SYS was written  for IBM-compatible Personal  Computers run-
  129.           ning under MS-DOS or PC-DOS 2.11, 3.xx, and 4.0x.
  130.  
  131.           The  following  features make  BOOT.SYS  a  must-have  for  every
  132.           sophisticated PC installation:
  133.  
  134.             * easy  installation,  detailed examples  for  every  level  of
  135.               sophistication
  136.  
  137.             * up to  nine options  per  menu (one  line per  option) and  a
  138.               freely definable prompt area at the top of the screen
  139.  
  140.             * up to 25 consecutive menus, each defining  a different aspect
  141.               of your system configuration
  142.  
  143.             * up to  25 levels  of nested menus  (submenus), simplifying  a
  144.               systematic approach to systems configuration
  145.  
  146.             * only one  version of  CONFIG.SYS and  AUTOEXEC.BAT; no  copy-
  147.               ing/renaming of files and no rebooting
  148.  
  149.             * select menu options  by pressing the corresponding  digit key
  150.               or by moving an arrow
  151.  
  152.             * user-definable timeout and default option for each menu
  153.  
  154.             * switch to  an external  monitor  on boot-up  for some  laptop
  155.               computers
  156.  
  157.             * edit individual CONFIG.SYS lines on the fly while booting up
  158.  
  159.             * insert comments into CONFIG.SYS without generating error mes-
  160.               sages
  161.  
  162.             * uses less than 200 bytes of resident DOS memory
  163.  
  164.             * do a warm or a cold boot from the DOS  command line or from a
  165.               batch file; change Alt-Ctrl-Del to do a cold  boot or disable
  166.               it altogether
  167.  
  168.             * includes PAUSE.SYS for debugging complex CONFIG.SYS set-ups
  169.  
  170.           BOOT.SYS                     -  4  -                 Version 1.27
  171.  
  172.  
  173.  
  174.                                    Acknowledgments
  175.  
  176.           BOOT.SYS(tm)  was developed  using  Borland's  Turbo C(R),  Turbo
  177.           Assembler(R), and Turbo Debugger(R). The  documentation was writ-
  178.           ten with Lotus Manuscript(R).
  179.  
  180.           Many thanks to Michael J. Mefford of PC Magazine who has provided
  181.           valuable information about modifying CONFIG.SYS on the fly.
  182.  
  183.           Many thanks to the members of the ASP; their help and advice have
  184.           been invaluable for getting BOOT.SYS to you.
  185.  
  186.  
  187.  
  188.                                       Trademarks
  189.  
  190.           BOOT.SYS is a trademark of Hans Salvisberg.
  191.           Compaq is a trademark of Compaq Computer Corporation. IBM, PC-DOS
  192.           and PC are trademarks  of IBM Corporation. MS-DOS and  MS Windows
  193.           are trademarks of  Microsoft Corporation. 386^MAX is  a trademark
  194.           of Qualitas, Inc. DESQview and QEMM are trademarks of Quarterdeck
  195.           Office Systems. Other product names mentioned  in this documenta-
  196.           tion may be trademarks of these or other companies.
  197.           Association  of Shareware  Professionals  and  the ASP  logo  are
  198.           trademarks of the Association of Shareware Professionals.
  199.  
  200.  
  201.  
  202.                                       About ASP
  203.  
  204.           ASP, the Association of Shareware Professionals(R), was formed in
  205.           April 1987 to strengthen the future of  shareware (user supported
  206.           software) as an alternative to commercial  software. Its members,
  207.           all of whom are programmers who subscribe to a  code of ethics or
  208.           are non-programmers  sincerely interested  in the advancement  of
  209.           shareware, are committed to the concept of shareware  as a method
  210.           of marketing.
  211.  
  212.           The ASP has adopted  general standards that all ASP  authors have
  213.           agreed to follow, some of which are:
  214.  
  215.           Support standards:
  216.               All ASP members' shareware products must provide support (in-
  217.               cluded in the purchase  price) for a minimum of  three months
  218.               from the date of registration.
  219.               Any money sent to an author to register  an unsupported prod-
  220.               uct shall be promptly  returned with an explanation  that the
  221.               product in question is no longer supported.
  222.               Known incompatibilities with  other software or  hardware and
  223.               major or unusual program  limitations are noted in  the docu-
  224.               mentation that comes with the shareware (evaluation) program.
  225.  
  226.           BOOT.SYS                     -  5  -                 Version 1.27
  227.  
  228.  
  229.  
  230.           'no crippling' standard:
  231.               The principle behind shareware is "try before you  buy."  ASP
  232.               believes that users have  a right to try a  fully functioning
  233.               shareware program  in  their regular  computing  environment.
  234.               Accordingly, ASP authors agree that:
  235.                 - The executable files (and/or items linked in with execut-
  236.                   ables)  in the  shareware  and registered  versions  will
  237.                   essentially be the same.
  238.                 - All the program's features will be fully documented.
  239.                 - Registration encouragement procedures which in  the judg-
  240.                   ment of  the Board are  either unreasonable or  unprofes-
  241.                   sional are not allowed.
  242.  
  243.           Miscellaneous standards:
  244.               The program  has been  thoroughly  tested by  the author  and
  245.               should not  be harmful  to other  files or  hardware if  used
  246.               properly.
  247.               Any discussion of  the shareware concept and  of registration
  248.               requirements is done in a professional and positive manner.
  249.  
  250.           If you  are interested in  ASP and in  Shareware issues, you  are
  251.           invited to come to the SHAREWARE forum on  CompuServe, where many
  252.           shareware authors meet regularly. Do not be surprised  if you get
  253.           to the IBMJR forum, because that forum is  currently being shared
  254.           between IBMJR and ASP.
  255.  
  256.  
  257.  
  258.                               ASP Ombudsman Information
  259.  
  260.           This program is produced by a member of the Association of Share-
  261.           ware Professionals (ASP). ASP wants to make sure  that the share-
  262.           ware principle  works for  you. If  you are unable  to resolve  a
  263.           shareware-related problem  with an ASP  member by contacting  the
  264.           member directly, ASP may  be able to help. The ASP  Ombudsman can
  265.           help you  resolve a dispute  or problem with  an ASP member,  but
  266.           does not provide technical support for  members' products. Please
  267.           write to the ASP Ombudsman at P.O. Box  5786, Bellevue, WA 98006,
  268.           U.S.A. or  send a message  via CompuServe  Mail to ASP  Ombudsman
  269.           70007,3536
  270.  
  271.  
  272.  
  273.                                   License Agreement
  274.  
  275.           BY INSTALLING BOOT.SYS ON YOUR SYSTEM YOU INDICATE YOUR AGREEMENT
  276.           TO THE  FOLLOWING TERMS AND  CONDITIONS. IF YOU  DO NOT AGREE  TO
  277.           THEM YOU ARE NOT ALLOWED TO USE THIS PROGRAM.
  278.  
  279.           BOOT.SYS AND THE  ACCOMPANYING PROGRAMS AND  DOCUMENTATION (LATER
  280.           ON COLLECTIVELY REFERRED TO  AS BOOT.SYS) ARE DISTRIBUTED  AS IS.
  281.           HANS SALVISBERG  (THE  AUTHOR) MAKES  NO  WARRANTY OF  ANY  KIND,
  282.           EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED  TO WARRANTIES OF
  283.           MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT
  284.  
  285.           BOOT.SYS                     -  6  -                 Version 1.27
  286.  
  287.  
  288.  
  289.           TO THIS SOFTWARE AND DOCUMENTATION. IN NO EVENT  SHALL THE AUTHOR
  290.           BE LIABLE FOR ANY DAMAGES, INCLUDING LOST  PROFITS, LOST SAVINGS,
  291.           OR ANY OTHER INCIDENTAL  OR CONSEQUENTIAL DAMAGES ARISING  OUT OF
  292.           THE USE  OF OR THE  INABILITY TO  USE THIS  PROGRAM, EVEN IF  THE
  293.           AUTHOR HAS BEEN  ADVISED OF THE  POSSIBILITY OF SUCH DAMAGES,  OR
  294.           FOR ANY CLAIM BY ANY OTHER PARTY.
  295.  
  296.           BOOT.SYS is  a copyrighted  work  protected by  Swiss, U.S.,  and
  297.           international copyright law. It is not free, freeware,  or in the
  298.           public domain. It is  distributed as Shareware, which  means that
  299.           you may try it out  at no cost for three weeks; if  you determine
  300.           that it fits your needs and you wish to use it regularly you must
  301.           register. If you choose not to pay the registration fee, you must
  302.           stop using BOOT.SYS after the initial trial period  and remove it
  303.           from your computer, but you may still keep copies  of it and pass
  304.           them on to others as outlined below.
  305.  
  306.           You may  give individual  copies of the  unregistered version  of
  307.           BOOT.SYS to your  friends and associates for  evaluation purposes
  308.           as described above. You must include all the  files (described in
  309.           the READ.ME  file) that  make up BOOT.SYS  without any  modifica-
  310.           tions, preferably in  the original self-extracting  LHarc archive
  311.           file. You may upload  BOOT.SYS to the public section of  a public
  312.           BBS, but you  may not place  it in any  user group or  commercial
  313.           library or distribute it for  a fee or in any way sell  copies of
  314.           it without express written permission from the Author.
  315.  
  316.           Under no circumstances may an unregistered version of BOOT.SYS be
  317.           used in  a  commercial (business,  corporate, government,  educa-
  318.           tional, or other  institutional) environment except for  the pur-
  319.           pose of evaluation on a single computer.
  320.  
  321.           You may not modify  or dis-assemble BOOT.SYS, nor  distribute any
  322.           modified or dis-assembled versions of BOOT.SYS.  BOOT.SYS may not
  323.           be included  with any  other  product for  any reason  whatsoever
  324.           without written permission from the Author.
  325.  
  326.           You may install your registered copy of BOOT.SYS on more than one
  327.           computer at a time ONLY if no more than one of these computers is
  328.           usually running  at the same  time. You may  make as many  backup
  329.           copies of BOOT.SYS as you need for your personal backup purposes.
  330.  
  331.           You may NOT give, sell, or otherwise transfer  copies of the reg-
  332.           istered version of BOOT.SYS  to any other person for  any reason.
  333.           If  you register,  your  copy  of  BOOT.SYS will  have  a  unique
  334.           registration number and display your name and  address. Your reg-
  335.           istration including that information will be  transferable to any
  336.           future  shareware  versions  of  BOOT.SYS,  which  will  then  be
  337.           considered a registered version.
  338.  
  339.           No version of BOOT.SYS may be rented or leased.
  340.  
  341.           BOOT.SYS                     -  7  -                 Version 1.27
  342.  
  343.  
  344.  
  345.           Any use or distribution of BOOT.SYS, which  violates this license
  346.           agreement, will be  considered a copyright violation,  and prose-
  347.           cuted to the full extent of the law.
  348.  
  349.           U.S. Government RESTRICTED  RIGHTS: Use, duplication,  or disclo-
  350.           sure by the Government is subject to restrictions as set forth in
  351.           subdivision  (b)(3)(ii)  of the  Rights  in  Technical  Data  and
  352.           Computer Software clause at 252.227-7013.
  353.  
  354.  
  355.  
  356.                                      Registration
  357.  
  358.           BOOT.SYS is  not free! You  may try it  out at  no charge for  an
  359.           initial trial period to  determine if it fits your needs.  If you
  360.           want to continue to  use BOOT.SYS after the initial  trial period
  361.           you must register. This method of software  distribution is known
  362.           as Shareware.
  363.  
  364.           The registration fee  for a single copy  of BOOT.SYS is  SFR 70.-
  365.           (exchange rate US$ to Swiss Francs is about $0.76  = SFR 1.- (Oc-
  366.           tober 1990)). Payment of this fee entitles you to:
  367.  
  368.             * A disk with the current version of BOOT.SYS
  369.  
  370.             * A printed and bound manual
  371.  
  372.             * A special utility program that lets you transfer your license
  373.               to any  later shareware  versions  of BOOT.SYS  that you  may
  374.               obtain from any shareware source (getting an upgrade from the
  375.               author requires new registration).
  376.  
  377.             * Free support (by electronic mail or by mail) for the first 90
  378.               days after  payment,  consisting of  answering questions  and
  379.               fixing any  reproducible program  error(s) that  interfere(s)
  380.               with the  intended use  of the  program as  outlined in  this
  381.               documentation. The  author  may choose  not  to fix  problems
  382.               related to a  special hardware and/or  software configuration
  383.               and will then arrange  for a refund of the  registration fee,
  384.               if the  problem is reported  within 90  days of payment.  The
  385.               author makes no  other warranties, expressed or  implied, and
  386.               this warranty is expressly limited to the cost  of the regis-
  387.               tration fee.
  388.  
  389.             * BOOT.SYS is publicly supported on CompuServe in  the DOS Uti-
  390.               lities section of the IBMSYS forum. A  free CompuServe Intro-
  391.               Pak, which includes  a $15.00 usage  credit, is available  to
  392.               registered  BOOT.SYS  users  who  do  not  yet  subscribe  to
  393.               CompuServe. CompuServe  will open  the door for  a whole  new
  394.               world of information, services, and  interesting people. Com-
  395.               puServe is also  the best place  to obtain technical  support
  396.               for products from Hans Salvisberg (and  many other developers
  397.               and vendors).  The CompuServe  IntroPak (a  $39.95 value)  is
  398.               provided to registered  BOOT.SYS users compliments  of Compu-
  399.  
  400.           BOOT.SYS                     -  8  -                 Version 1.27
  401.  
  402.  
  403.  
  404.               Serve, Inc., and Hans Salvisberg. This offer  is dependent on
  405.               its continued availability from CompuServe, Inc.
  406.               For your information: Current CompuServe rates are $12.50 per
  407.               connect hour plus communications surcharges (e.g., $0.30/hour
  408.               in the U.S.A., $9.50/hour in Switzerland and the United King-
  409.               dom, varying rates in other countries).
  410.  
  411.           BOOT.SYS must  be registered before  it is  used in a  commercial
  412.           (business, corporate, government, educational, or  other institu-
  413.           tional) environment.
  414.  
  415.           The following per-unit  prices apply for  registration of one  or
  416.           more copies of BOOT.SYS on the same order form:
  417.  
  418.                               1       SFR 70.-
  419.                        2  -   4       SFR 60.-
  420.                        5  -   9       SFR 50.-
  421.                       10  -  24       SFR 45.-
  422.                       25  -  49       SFR 40.-
  423.                       50  -  99       SFR 35.-
  424.                      100  - 249       SFR 30.-
  425.                      250  - 499       SFR 25.-
  426.                      500  or more     negotiable
  427.  
  428.           THESE PRICES INCLUDE ONE  MASTER DISKETTE AND ONE  PRINTED MANUAL
  429.           PER  ORDER.  The licensee  is  responsible  for  duplicating  the
  430.           diskette and documentation as  needed, and for ensuring  that the
  431.           registered number of installed copies is not exceeded. Additional
  432.           manuals are  available for  a  nominal fee.  Under this  schedule
  433.           SUPPORT  IS PROVIDED  TO  ONE  DESIGNATED REPRESENTATIVE  OF  THE
  434.           LICENSEE ONLY.
  435.  
  436.           You have three choices for registering:
  437.  
  438.             - With the author in  Switzerland: All payment must be  done in
  439.               Swiss Francs. The easiest  way to do this is by  credit card.
  440.               You authorize us  to charge your card  for the amount  due in
  441.               SFR and the credit card company will automatically convert to
  442.               your currency  using  the current  exchange  rate. We  cannot
  443.               guarantee a  fixed exchange rate  or a  certain date for  the
  444.               conversion to  take place,  but based on  our experience  the
  445.               exchange rates do not vary quickly.
  446.               Alternatively you may send  us a postal money order  in Swiss
  447.               Francs (your local post office does the currency conversion).
  448.  
  449.             - With  Public  software  Library  in   the  U.S.A.  (single-PC
  450.               licenses only!):  PsL  is authorized  to sell  pre-registered
  451.               single-PC versions  of BOOT.SYS at  $39 +  $4 s&h. They  take
  452.               credit card  orders on  a toll-free phone  number or  written
  453.               orders accompanied by a check or credit card information.
  454.  
  455.             - For site licenses:  Other modes of payment  including payment
  456.               in US$ or other  currency can be negotiated -  please contact
  457.               the author.
  458.  
  459.           BOOT.SYS                     -  9  -                 Version 1.27
  460.  
  461.  
  462.  
  463.           Note: All prices are subject to change without notice.
  464.  
  465.           The accompanying  file REGISTER.FRM  includes registration  forms
  466.           for the first two options. If this file is missing or if you have
  467.           any questions, please contact the author:
  468.  
  469.             Hans Salvisberg, Froeschmattstr. 40, CH-3018 Berne, SWITZERLAND
  470.  
  471.                CompuServe:  73237,3556
  472.                Internet:    salvis@ahorn.iam.unibe.ch
  473.                    or       73237.3556@compuserve.com
  474.  
  475.           BOOT.SYS                     -  10  -                Version 1.27
  476.  
  477.  
  478.  
  479.                                      Installation
  480.  
  481.           BOOT.SYS can be used on three different levels:
  482.             - one menu only
  483.             - several menus in sequence
  484.             - nested menus
  485.  
  486.           It is probably a  good idea to start experimenting  with BOOT.SYS
  487.           on the easiest level and to build up from there. This is also how
  488.           the installation  instructions will  be presented here.  Alterna-
  489.           tively, if you  already have (up  to nine) pairs of  AUTOEXEC.BAT
  490.           and CONFIG.SYS files, you  can use the procedure outlined  in the
  491.           Quick Start chapter to get BOOT.SYS working right away.
  492.  
  493.           Please keep in mind  that heavily editing CONFIG.SYS  and AUTOEX-
  494.           EC.BAT may lead to your PC not coming up  in the usual configura-
  495.           tion  or  even locking  up  at  boot-up  time.  Therefore  it  is
  496.           recommended  that  you  first  create  a   bootable  diskette  by
  497.           following these steps (at the DOS prompt):
  498.             1. Insert a new diskette in drive a: and FORMAT a: /S
  499.             2. COPY c:\COMMAND.COM a:
  500.             3. COPY c:\CONFIG.SYS a:
  501.             4. COPY c:\AUTOEXEC.BAT a:
  502.             5. Edit a:AUTOEXEC.BAT and a:CONFIG.SYS and make  sure that all
  503.                file names (including the external DOS commands) include the
  504.                drive name of your boot disk (here assumed to be c: ).
  505.             6. Boot from this diskette to see if everything is ok; check if
  506.                you can start your editor as usual.
  507.  
  508.           Many of the features  of BOOT.SYS will be presented  by examples.
  509.           In each chapter there is a simple example to  start with and some
  510.           more interesting ones  to give you an  idea of what  BOOT.SYS can
  511.           do. The upper-case portions  should be copied exactly  (case does
  512.           not matter), the lower-case  ones may be different for  your sys-
  513.           tem.
  514.           Example:
  515.                     DEVICE=c:\dos\ANSI.SYS
  516.  
  517.           The ANSI.SYS device driver  that comes with DOS is  often located
  518.           in the directory \dos  on drive c: ; if  this is not the  case on
  519.           your system then you should change the drive  and/or path accord-
  520.           ingly.
  521.  
  522.           The first example on each level will use DOS features only, so it
  523.           should work on every system running under MS-DOS  or PC-DOS. Usu-
  524.           ally there  is a CONFIG.SYS  file (CO)  and an AUTOEXEC.BAT  file
  525.           (AU) for each example.
  526.  
  527.           All text in curly braces (like {a comment}) is comment.
  528.  
  529.           BOOT.SYS                     -  11  -                Version 1.27
  530.  
  531.  
  532.  
  533.           Quick Start
  534.  
  535.           If you already  have (up to  nine) pairs of different  CONFIG.SYS
  536.           and AUTOEXEC.BAT files, you  can start using BOOT.SYS  right away
  537.           by following these instructions:
  538.  
  539.             1. Create a new master CONFIG.SYS like this:
  540.  
  541.           CO     DEVICE=c:\bin\BOOT.SYS
  542.                  DEVICE=BOOT.1 first configuration {any name}
  543.                    {entire contents of CONFIG.SYS for the first configura-
  544.                     tion}
  545.                  DEVICE=BOOT.2 second configuration {any name}
  546.                    {entire contents of CONFIG.SYS for the second configura-
  547.                     tion}
  548.                  {etc.}
  549.                  DEVICE=BOOT.END
  550.  
  551.  
  552.             2. Create a new master  AUTOEXEC.BAT like this (make  sure that
  553.                there are no label conflicts between different sections):
  554.  
  555.           AU     c:\bin\BOOT >NUL:
  556.                  IF ERRORLEVEL 9 GOTO config9     {Be sure to always test
  557.                  IF ERRORLEVEL 8 GOTO config8      ERRORLEVELs in descend-
  558.                    ...                             ing order and immedi-
  559.                  IF ERRORLEVEL 1 GOTO config1      ately after BOOT.COM!}
  560.                  ECHO BOOT.SYS is not loaded!
  561.                  GOTO done
  562.                  :config1
  563.                    {entire contents of AUTOEXEC.BAT for the first configu-
  564.                     ration}
  565.                  GOTO done
  566.                  :config2
  567.                    {entire contents of AUTOEXEC.BAT for the second configu-
  568.                     ration}
  569.                  {etc.}
  570.                  :done
  571.  
  572.  
  573.             3. Press  Alt-Ctrl-Del   to  reboot   and  watch  BOOT.SYS   in
  574.                action.(1)
  575.  
  576.  
  577.           The real power  of BOOT.SYS, which comes  into play when  you use
  578.           more than one  or even nested menus,  is not used here,  but this
  579.           set-up may be sufficient for many users' needs. The next chapters
  580.           will explain how and why to create more sophisticated set-ups.
  581.  
  582.  
  583.           --------------------
  584.           1 If you see messages like 'Unrecognized command' from CON-
  585.           FIG.SYS, please refer to the chapter Answers to Common Questions.
  586.  
  587.           BOOT.SYS                     -  12  -                Version 1.27
  588.  
  589.  
  590.  
  591.           Level 1: One Menu
  592.  
  593.           For many users one menu is all they will ever  need. It gives you
  594.           the equivalent of choosing  between up to nine different  sets of
  595.           CONFIG.SYS and AUTOEXEC.BAT.
  596.  
  597.  
  598.  
  599.           Ex     Choose between one of the     [SCREEN]
  600.           1.1(1) following configurations:
  601.                    -  no RAM disk
  602.                    -  64K RAM disk
  603.                    -  128K RAM disk
  604.                  If there's a RAM disk, copy
  605.                  COMMAND.COM to it and make
  606.                  DOS reload the command pro-
  607.                  cessor from there.
  608.  
  609.  
  610.  
  611.           CO.11  BUFFERS=32
  612.                  FILES=20
  613.                  {any other of the usual commands that should apply to all
  614.                  the configurations; this goes for all the examples}
  615.                  DEVICE=c:\bin\BOOT.SYS {optional command line parameters}
  616.                  DEVICE=TOP
  617.                  DEVICE=TOP Select one of the following choices by
  618.                  DEVICE=TOP pressing the corresponding digit key, or by
  619.                  DEVICE=TOP moving the arrow with the Cursor-Up, Cursor-
  620.                  DEVICE=TOP Down, Home and End keys and pressing Enter
  621.                  DEVICE=TOP (or Cursor-Right):
  622.                  DEVICE=TOP
  623.                  DEVICE=BOOT.1 no RAM disk
  624.                  DEVICE=BOOT.2 64K  RAM disk
  625.                  DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
  626.                  DEVICE=BOOT.3 128K RAM disk
  627.                  DEVICE=c:\dos\VDISK.SYS size=128 sector=512 dir=64
  628.                  DEVICE=BOOT.END
  629.                  {any other of the usual commands that should apply to all
  630.                  the configurations; this goes for all the examples}
  631.  
  632.  
  633.  
  634.           AU.11  c:\bin\BOOT
  635.                  IF ERRORLEVEL 3 GOTO VDISK     {Be sure to always test
  636.                  IF ERRORLEVEL 2 GOTO VDISK      ERRORLEVELs in descending
  637.  
  638.  
  639.  
  640.           --------------------
  641.           1 The screen shots are deliberately reproduced in a small scale.
  642.           They are intended to provide a view of the general screen layout
  643.           only; for the text please refer to the corresponding CONFIG.SYS
  644.           listing. In the Shareware version they are omitted.
  645.  
  646.           BOOT.SYS                     -  13  -                Version 1.27
  647.  
  648.  
  649.  
  650.                  IF ERRORLEVEL 1 GOTO NO_VDISK   order and immediately
  651.                  ECHO BOOT.SYS is not loaded!    after BOOT.COM!}
  652.                  GOTO DONE
  653.                  :VDISK
  654.                  COPY c:\COMMAND.COM d: >NUL:
  655.                  SET COMSPEC=d:\COMMAND.COM
  656.                  GOTO DONE
  657.                  :NO_VDISK
  658.                  ECHO Sorry, there is no RAM disk
  659.                  GOTO DONE
  660.                  :DONE
  661.                  PATH c:\dos;c:\bin
  662.  
  663.  
  664.  
  665.           The part of CONFIG.SYS that is controlled by BOOT.SYS starts with
  666.           the BOOT.SYS line and ends with the BOOT.END  line. Between these
  667.           two lines you define both  the menu to be displayed and  the com-
  668.           mands to be executed.
  669.  
  670.           The text to the right of TOP is displayed at  the top of the menu
  671.           screen. You may  use most of the  characters of the  PC character
  672.           set (including the box and foreign characters). Unfortunately DOS
  673.           converts all lower-case characters in the range of  'a' to 'z' to
  674.           upper case;  a work-around to  this problem  is presented in  the
  675.           next example. There is no upper limit to the number of TOP lines,
  676.           as long as  they fit on the  screen, along with all  the options;
  677.           TOP may be omitted altogether and BOOT.SYS will display a default
  678.           text.
  679.  
  680.           The BOOT.1 line introduces the first menu option. All text to the
  681.           right of BOOT.1 is  displayed as the option text.  Between BOOT.1
  682.           and BOOT.2  there may  be zero  or more of  the usual  CONFIG.SYS
  683.           commands (all kinds, not  just DEVICE= ). These commands  will be
  684.           executed if  the  user  selects option  1  and will  be  bypassed
  685.           silently if he/she selects another option.
  686.  
  687.           There may be up to nine options each beginning with a correspond-
  688.           ing BOOT.n line. The options must be  numbered consecutively from
  689.           1 up to 9.
  690.  
  691.           You may insert empty lines wherever you like,  and you may insert
  692.           comments between BOOT.SYS and BOOT.END like this:
  693.  
  694.                  DEVICE=REM any comment
  695.  
  696.           So much  for the  first BOOT  menu; even  if you  think you  know
  697.           enough already  you should  read on  up to  the end  of the  next
  698.           section.
  699.  
  700.           BOOT.SYS                     -  14  -                Version 1.27
  701.  
  702.  
  703.  
  704.           Very often  different commands must  be executed in  AUTOEXEC.BAT
  705.           depending on which boot-up configuration is selected.  It is even
  706.           possible that  all your  configurations use  the same  CONFIG.SYS
  707.           commands and  differ only  in the contents  of AUTOEXEC.BAT  (see
  708.           example 1.2). This can be done with BOOT.SYS because a very small
  709.           part of it stays resident and the companion  program BOOT.COM can
  710.           be used to retrieve the user's choice any time later on.
  711.  
  712.           BOOT.COM sets the DOS ERRORLEVEL code to the number of the chosen
  713.           option; it also writes that information to  standard output which
  714.           can  be redirected  to  the  null  device. If  BOOT.SYS  was  not
  715.           installed or there  was some kind  of error, then the  ERRORLEVEL
  716.           code is set to 0. Be sure to always test for ERRORLEVEL values in
  717.           descending order, because DOS does a 'greater  or equal' compari-
  718.           son, not an 'equal' comparison!
  719.  
  720.           Based on the  ERRORLEVEL different parts  of AUTOEXEC.BAT can  be
  721.           executed as illustrated in the above example.  Instead of execut-
  722.           ing different parts of the same AUTOEXEC.BAT you  could branch to
  723.           different batch files, as shown in the next example.
  724.  
  725.  
  726.  
  727.           Ex 1.2 On a certain LAN you may want [SCREEN]
  728.                  to choose between the follow-
  729.                  ing options:
  730.                    -  no network support
  731.                    -  XNS protocol
  732.                    -  TCP/IP protocol
  733.                  Display the menu white on
  734.                  blue, use both upper-case and
  735.                  lower-case letters, and rear-
  736.                  range the menu on the screen.
  737.  
  738.  
  739.  
  740.           CO.12  DEVICE=c:\bin\BOOT.SYS /CX1f /L18 /U^
  741.                  DEVICE=TOP
  742.                  DEVICE=TOP
  743.                  DEVICE=TOP    ^What kind of network support do you need?
  744.                  DEVICE=TOP
  745.                  DEVICE=TOP
  746.                  DEVICE=TOP
  747.                  DEVICE=BOOT.1 none
  748.                  DEVICE=BOOT.2 ^X^N^S
  749.                  DEVICE=BOOT.3 ^T^C^P/^I^P
  750.                  DEVICE=BOOT.END
  751.  
  752.  
  753.  
  754.           AU.12  ECHO OFF
  755.                  CLS
  756.                  c:\bin\BOOT >NUL:              {>NUL: hides BOOT.COM's
  757.                  IF ERRORLEVEL 3 c:\autotcp      output}
  758.  
  759.           BOOT.SYS                     -  15  -                Version 1.27
  760.  
  761.  
  762.  
  763.                  IF ERRORLEVEL 2 c:\autoxns
  764.                  IF ERRORLEVEL 1 GOTO NO_NET
  765.                  ECHO BOOT.SYS is not loaded!
  766.                  :NO_NET
  767.                  PATH c:\dos;c:\bin
  768.  
  769.  
  770.  
  771.           The command line parameters will cause BOOT.SYS to use the /Color
  772.           1f (heX) and to put 18 spaces to the /Left of the option numbers;
  773.           to  indent the  TOP  text  just  insert spaces  in  these  lines.
  774.           BOOT.SYS will translate the characters in the range of 'a' to 'z'
  775.           to lower-case;  only those  preceded by a  '^' character (or  any
  776.           other you specify) will be left /Upper-case.
  777.  
  778.           This LAN  does not  need any  drivers in CONFIG.SYS,  so all  the
  779.           options are empty. If the user selects either  XNS or TCP/IP then
  780.           AUTOEXEC.BAT branches to autoxns.bat or autotcp.bat respectively,
  781.           which will load the  necessary drivers; note that  when execution
  782.           is transferred to another batch file (without  the CALL statement
  783.           introduced in DOS 3.30) the rest of AUTOEXEC.BAT is not executed.
  784.  
  785.           This example has  demonstrated how to  control the appearance  of
  786.           the menus by using additional empty TOP lines, indenting the text
  787.           on the TOP  lines, and using  the /Left switch.  There is also  a
  788.           /Spacing switch  which  indicates the  spacing  between the  menu
  789.           options; the default is  2, acceptable values are 1, 2,  etc., as
  790.           long as all the menu options fit on the screen. - For the sake of
  791.           brevity the remaining examples are not optimized  for good looks,
  792.           and the /Uppercase switch will be omitted, too.
  793.  
  794.  
  795.  
  796.           Ex 1.3 Choose
  797.                    -  whether you want a RAM disk, and
  798.                    -  whether you need ANSI.SYS.
  799.                  If the user does not press any key within 5 seconds then
  800.                  take the default of RAM disk and no ANSI.SYS.
  801.  
  802.  
  803.  
  804.           CO.13  DEVICE=c:\bin\BOOT.SYS /D2 /T5
  805.                  DEVICE=TOP  Select your system configuration
  806.                  DEVICE=BOOT.1 no RAM disk, no ANSI.SYS (all RAM above DOS
  807.                                available)
  808.                  DEVICE=BOOT.2 64K RAM disk, no ANSI.SYS
  809.                  DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
  810.                  DEVICE=BOOT.3 no RAM disk, ANSI.SYS
  811.                  DEVICE=c:\dos\ANSI.SYS
  812.                  DEVICE=BOOT.4 64K RAM disk and ANSI.SYS
  813.                  DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
  814.                  DEVICE=c:\dos\ANSI.SYS
  815.                  DEVICE=BOOT.END
  816.  
  817.           BOOT.SYS                     -  16  -                Version 1.27
  818.  
  819.  
  820.  
  821.           The command line parameters will cause BOOT.SYS to /Timeout after
  822.           5 seconds and continue the boot process using the /Default option
  823.           #2. Other command line parameters will be introduced  in the next
  824.           section.
  825.  
  826.           This example proves that one menu is not enough  when you need to
  827.           make more than one  independent decision. Just imagine  you would
  828.           also like to specify whether to load your  keyboard macro program
  829.           or not: this  would take another  four options! Example 2.1  will
  830.           show a better solution.
  831.  
  832.  
  833.           BOOT.SYS Command Line Parameters
  834.  
  835.           Most of the command line parameters of BOOT.SYS have already been
  836.           introduced informally and  they are explained  in detail in  this
  837.           chapter.(1)
  838.  
  839.             /CXhh  Color to be used for the menu, usually  specified by two
  840.             /Cn    hexadecimal digits hh ;  if you prefer  you may use  the
  841.                    decimal equivalent n instead.  The values for hh  can be
  842.                    taken from the following table (the background gives the
  843.                    first and the foreground the second digit):
  844.  
  845.                          color      background     foreground
  846.                                                  normal  bright
  847.                          black          0?         ?0      ?8
  848.                          blue           1?         ?1      ?9
  849.                          green          2?         ?2      ?A
  850.                          cyan           3?         ?3      ?B
  851.                          red            4?         ?4      ?C
  852.                          magenta        5?         ?5      ?D
  853.                          brown          6?         ?6      ?E
  854.                          white          7?         ?7      ?F
  855.  
  856.                    For monochrome systems use one of  the following values:
  857.                    02 =normal, 2F =high intensity, 70 =reverse video (hexa-
  858.                    decimal).
  859.                    Default value: /CX2F (bright white on green)
  860.  
  861.             /Dd    Default option: the arrow will point to  that option and
  862.                    if there is a timeout specified then that option will be
  863.                    chosen.
  864.                    Default value: /D1
  865.  
  866.             /Ln    Number of  positions to indent  the option numbers  from
  867.                    the left edge of the screen.
  868.                    Default value: /L5
  869.  
  870.  
  871.  
  872.  
  873.           --------------------
  874.           1 You may use '-' instead of '/' as the switch character.
  875.  
  876.           BOOT.SYS                     -  17  -                Version 1.27
  877.  
  878.  
  879.  
  880.             /P     Display the menu identifier in the lower right corner of
  881.                    the screen. This  may be useful  for setting up  complex
  882.                    menu systems and it is explained in example 3.1.
  883.                    The displayed identifier is the  'menu_selector' parame-
  884.                    ter you give to BOOT.COM to retrieve the  choice for the
  885.                    current menu.
  886.  
  887.             /Sn    Spacing between the option lines.
  888.                    Default value: /S2 (double-spaced)
  889.  
  890.             /Tn    Timeout: If  the user does  not press  any key within  n
  891.             /T-n   seconds (or  n clock  ticks  for /T-n ,  18.2 ticks  per
  892.                    second),  then  execution  continues  with  the  default
  893.                    option. Pressing any key within the  specified time dis-
  894.                    ables the timeout.
  895.                    /T0 is legal; BOOT.SYS will check if there is a key code
  896.                    waiting in the keyboard buffer  and continue immediately
  897.                    if the buffer is  empty. Most BIOSes accept  key presses
  898.                    right after the initial beep.
  899.             /T     No timeout; this is the default.
  900.  
  901.             /Uc    Shift character:  All characters preceded  by c will  be
  902.                    displayed  upper-case,   all  others  lower-case.   This
  903.                    applies to the letters 'a' to 'z' on  the TOP and BOOT.n
  904.                    lines. To display a c on the screen, write cc .
  905.                    There is no  default value for c ;  /U^ or /U~  are good
  906.                    choices.
  907.             /U     All characters 'a'  to 'z' will  be upper-case. This  is
  908.                    the default.
  909.  
  910.  
  911.           Level 2: Several Independent Menus Following Each Other
  912.  
  913.           Example 1.3 proved that there are situations where  you need more
  914.           than one  menu: whenever  you  have to  make several  independent
  915.           decisions.
  916.  
  917.  
  918.  
  919.           Ex 2.1 Choose
  920.                    -  whether you want a RAM disk, and
  921.                    -  whether you need ANSI.SYS.
  922.                  If the user does not press any key within 5 seconds then
  923.                  take the defaults of RAM disk and no ANSI.SYS.
  924.  
  925.  
  926.                  [SCREEN]                      [SCREEN]
  927.  
  928.           BOOT.SYS                     -  18  -                Version 1.27
  929.  
  930.  
  931.  
  932.           CO.21  DEVICE=c:\bin\BOOT.SYS /T5
  933.                  DEVICE=BOOT.A /D2
  934.                  DEVICE=TOP  Do you need a RAM disk?
  935.                  DEVICE=BOOT.1 no
  936.                  DEVICE=BOOT.2 yes, 64K RAM disk
  937.                  DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
  938.                  DEVICE=BOOT.B /D1
  939.                  DEVICE=TOP  Do you need ANSI.SYS?
  940.                  DEVICE=BOOT.1 no
  941.                  DEVICE=BOOT.2 yes, ANSI.SYS
  942.                  DEVICE=c:\dos\ANSI.SYS
  943.                  DEVICE=BOOT.Z  {this line is optional, omit it!}
  944.                  DEVICE=BOOT.END
  945.  
  946.  
  947.  
  948.           AU.21  ECHO OFF
  949.                  CLS
  950.                  c:\bin\BOOT A >NUL:             {note the 'A'!}
  951.                  IF ERRORLEVEL 2 GOTO VDISK      {Be sure to always test
  952.                  IF ERRORLEVEL 1 GOTO NO_VDISK    ERRORLEVELs in descending
  953.                  ECHO BOOT.SYS is not loaded!     order and immediately
  954.                  GOTO DONE                        after BOOT.COM!}
  955.                  :VDISK
  956.                  COPY c:\COMMAND.COM d: >NUL:
  957.                  SET COMSPEC=d:\COMMAND.COM
  958.                  GOTO DONE
  959.                  :NO_VDISK
  960.                  ECHO Sorry, there is no RAM disk
  961.                  GOTO DONE
  962.                  :DONE
  963.                  PATH c:\dos;c:\bin
  964.  
  965.  
  966.  
  967.           The first menu  is introduced by the  BOOT.A line, the  second by
  968.           BOOT.B , etc., up to  BOOT.Y , giving a maximum of 25  menus. The
  969.           BOOT.Z line  is optional and  should be  omitted here for  better
  970.           error checking; it's use will become clear with example 3.1.
  971.  
  972.           The command line parameter  /T sets a timeout value of  5 seconds
  973.           for all menus. Alternately, command line parameters may be speci-
  974.           fied on the  BOOT.A , etc., lines, and  apply only to  that menu,
  975.           such as /D  in this example. Actually  both can be  combined: The
  976.           parameters on the BOOT.SYS line set the defaults and these can be
  977.           changed for specific menus.
  978.  
  979.           If you use  more than one menu  you must tell BOOT.COM  which one
  980.           you mean by giving the corresponding letter. BOOT.COM without any
  981.           command line parameters displays the choices for all menus.
  982.  
  983.           BOOT.SYS                     -  19  -                Version 1.27
  984.  
  985.  
  986.  
  987.           Sometimes the order of loading of different device drivers may be
  988.           important. Thus  it  is possible  that a  device  driver must  be
  989.           loaded between  two menus. This  can be  done with the  following
  990.           extension:
  991.  
  992.  
  993.  
  994.           CO.22  DEVICE=c:\bin\BOOT.SYS /T5
  995.                  DEVICE=BOOT.A /D2
  996.                  DEVICE=TOP  Do you need a RAM disk?
  997.                  DEVICE=BOOT.0
  998.                  {device drivers}
  999.                  DEVICE=BOOT.1 no
  1000.                  DEVICE=BOOT.2 yes, 64K RAM disk
  1001.                  DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
  1002.                  DEVICE=BOOT.0
  1003.                  {device drivers}
  1004.                  DEVICE=BOOT.B /D1
  1005.                  DEVICE=TOP  Do you need ANSI.SYS?
  1006.                  DEVICE=BOOT.1 no
  1007.                  DEVICE=BOOT.2 yes, ANSI.SYS
  1008.                  DEVICE=c:\dos\ANSI.SYS
  1009.                  DEVICE=BOOT.END
  1010.  
  1011.  
  1012.  
  1013.           In each menu  the first option may  be preceeded and/or  the last
  1014.           option followed  by BOOT.0 ;  any device drivers  (or other  com-
  1015.           mands) listed under this 'option' are always loaded/executed when
  1016.           this menu is displayed at all.
  1017.  
  1018.           Note: It is easiest  to picture BOOT.SYS as 'executing'  the com-
  1019.           mands under the  first BOOT.0 , followed by  menu A and  the com-
  1020.           mands under the second BOOT.0 , and finally  'executing' menu B .
  1021.           In fact this is not correct! DOS begins by executing the commands
  1022.           up to and including BOOT.SYS . At this point  BOOT.SYS takes over
  1023.           and processes  all menus  down  to BOOT.END .  Processing a  menu
  1024.           means that  the user  selects one  of the  options, and  BOOT.SYS
  1025.           wipes out the menu definition lines and the  command lines of the
  1026.           other options.  When BOOT.SYS  has processed the  last menu,  DOS
  1027.           comes in again  and executes the  commands that BOOT.SYS has  not
  1028.           wiped out, including the ones after BOOT.END .
  1029.  
  1030.  
  1031.           Level 3: Nested Menus
  1032.  
  1033.           For a sophisticated system  configuration it may be  desirable to
  1034.           have nested menus. This leads to a logical  extension of level 2:
  1035.           within any option you  can embed an entire sequence  of submenus.
  1036.           Example 3.1 may  not be a  very good one,  but 3.2 will show  how
  1037.           this can be used in real life.
  1038.  
  1039.  
  1040.                  [SCREEN]                      [SCREEN]
  1041.  
  1042.           BOOT.SYS                     -  20  -                Version 1.27
  1043.  
  1044.  
  1045.  
  1046.                  [SCREEN]                      [SCREEN]
  1047.  
  1048.  
  1049.  
  1050.           CO.31  DEVICE=c:\bin\BOOT.SYS /T5 /P
  1051.                  DEVICE=BOOT.A /D2                  {A}
  1052.                  DEVICE=TOP  Do you need a RAM disk?
  1053.                  DEVICE=BOOT.1 no
  1054.                  DEVICE=BOOT.2 yes, RAM disk
  1055.                    {a}
  1056.                    DEVICE=BOOT.A /T                 {A2A}
  1057.                    DEVICE=TOP  What size RAM disk do you need?
  1058.                    DEVICE=BOOT.1  64K
  1059.                    DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
  1060.                    DEVICE=BOOT.2 128K
  1061.                    DEVICE=c:\dos\VDISK.SYS size=128 sector=512 dir=64
  1062.                    {b}
  1063.                    DEVICE=BOOT.B                    {A2B}
  1064.                    DEVICE=TOP  Do you want COMMAND.COM to be
  1065.                    DEVICE=TOP  copied to the RAM disk?
  1066.                    DEVICE=BOOT.1 yes
  1067.                    DEVICE=BOOT.2 no
  1068.                    {c}
  1069.                    DEVICE=BOOT.Z
  1070.                    {d}
  1071.                  DEVICE=BOOT.B /D1                  {B}
  1072.                  DEVICE=TOP  Do you need ANSI.SYS?
  1073.                  DEVICE=BOOT.1 no
  1074.                  DEVICE=BOOT.2 yes, ANSI.SYS
  1075.                  DEVICE=c:\dos\ANSI.SYS
  1076.                  DEVICE=BOOT.END
  1077.  
  1078.  
  1079.  
  1080.           AU.31  ECHO OFF
  1081.                  CLS
  1082.                  c:\bin\BOOT A >NUL:           {note the 'A'!}
  1083.                  IF ERRORLEVEL 2 GOTO VDISK_1
  1084.                  IF ERRORLEVEL 1 GOTO NO_VDISK
  1085.                  ECHO BOOT.SYS is not loaded!
  1086.                  GOTO DONE
  1087.                  :VDISK_1
  1088.                  c:\bin\BOOT A2B >NUL:         {note the 'A2B'!}
  1089.                  IF ERRORLEVEL 2 GOTO DONE
  1090.                  IF ERRORLEVEL 1 GOTO VDISK_2
  1091.                  GOTO DONE
  1092.                  :VDISK_2
  1093.                  COPY c:\COMMAND.COM d: >NUL:
  1094.                  SET COMSPEC=d:\COMMAND.COM
  1095.                  GOTO DONE
  1096.                  :NO_VDISK
  1097.                  ECHO Sorry, there is no RAM disk
  1098.                  GOTO DONE
  1099.  
  1100.           BOOT.SYS                     -  21  -                Version 1.27
  1101.  
  1102.  
  1103.  
  1104.                  :DONE
  1105.                  PATH c:\dos;c:\bin
  1106.  
  1107.  
  1108.  
  1109.           The command line  switch /P ( /Path)  enables the display of  the
  1110.           menu identifiers in  the lower right  corner of each menu.  These
  1111.           are the same strings that are shown as comments in the CONFIG.SYS
  1112.           listing and used as parameters to BOOT.COM in AUTOEXEC.BAT.(1)
  1113.  
  1114.           If the  user selects  option 1  (no RAM  disk) in  menu {A}  then
  1115.           everything  will be  as  in  example  2.1,  but if  option  2  is
  1116.           selected, a submenu(2) to  specify the size of the RAM  disk will
  1117.           be presented as well  as another submenu to specify  whether COM-
  1118.           MAND.COM should be copied to the RAM disk.
  1119.  
  1120.           Let us  now  examine  more closely  what  happens when  the  user
  1121.           selects option 2 (keeping in mind what was said at the end of the
  1122.           Level 2 chapter):
  1123.  
  1124.           First any commands at  {a} are executed. Then menu {A2A}  is dis-
  1125.           played with no timeout, so the user must  make a selection before
  1126.           the execution continues. At {b} there could be  a BOOT.0 line and
  1127.           the  associated commands  would  be  executed whenever  the  user
  1128.           selects option 2 in  menu {A}. Then  menu {A2B} is processed  and
  1129.           the only result is that  the choice is saved. At {c}  again there
  1130.           could be a  BOOT.0 line (like {b}).  Any further commands  at {d}
  1131.           are executed  (like {a}), and  finally processing continues  with
  1132.           menu {B}.
  1133.  
  1134.           The role  of  the  BOOT.Z line  should  now become  clear:  every
  1135.           sequence of menus (starting with BOOT.A , BOOT.B ,  etc.) is ter-
  1136.           minated with a BOOT.Z . For the top level menu sequence BOOT.Z is
  1137.           not required because BOOT.END  takes its place, and  BOOT.SYS can
  1138.           do better checking of nesting errors if you omit BOOT.Z .
  1139.  
  1140.  
  1141.  
  1142.  
  1143.  
  1144.           --------------------
  1145.           1 The menu identifier describes how you got to the current menu:
  1146.           if it says 'A2B', that means that
  1147.             - you have chosen option 2 on the first first-level menu ('A')
  1148.             - this option has at least two submenus, and you have already
  1149.               made your choice on the first submenu (the 'A2A' menu)
  1150.             - you are now looking at the second submenu ('A2B').
  1151.           'A2A' and 'A2B' are menus at level 2, and the level number is
  1152.           displayed along with the menu identifier.
  1153.  
  1154.           2 The contents of option 2 are indented to illustrate the submenu
  1155.           relationship.
  1156.           Note: If your editor replaces series of spaces with tabs, then
  1157.           columns may not align properly on the screen.
  1158.  
  1159.           BOOT.SYS                     -  22  -                Version 1.27
  1160.  
  1161.  
  1162.  
  1163.           In AUTOEXEC.BAT BOOT.COM retrieves the choice in menu {A2B}. How-
  1164.           ever, you must  first make sure that  the user did  indeed choose
  1165.           option 2 in menu  {A} before asking for  the choice in  {A2B}. If
  1166.           the choice in {A} other  than 2 then there is no value  for {A2B}
  1167.           and BOOT.COM displays an error message.
  1168.  
  1169.           You can also  call BOOT.COM without  any command line  parameters
  1170.           and it will  display a list  of all the  menus processed and  the
  1171.           corresponding choices.
  1172.  
  1173.           Theoretically  there  is no  limit  to  the  nesting  level,  but
  1174.           BOOT.SYS cannot display (and  remember the choices of)  more than
  1175.           25 menus, so you cannot go deeper than 25.
  1176.  
  1177.           Although BOOT.SYS cannot display more than 25 menus per run (most
  1178.           users probably would not  put up with more than 5  menus anyway),
  1179.           the number of  menus in the entire  menu tree may be  much larger
  1180.           than that.  DOS enforces  some upper  limit on the  size of  CON-
  1181.           FIG.SYS, probably 64K Bytes.
  1182.  
  1183.  
  1184.  
  1185.           The final example shows  parts of    [SCREEN]
  1186.           CONFIG.SYS and  AUTOEXEC.BAT  for
  1187.           my personal system configuration.
  1188.  
  1189.                  [SCREEN]                      [SCREEN]
  1190.  
  1191.  
  1192.  
  1193.           CO.32  break=off
  1194.                  buffers=32
  1195.                  country=041,437,c:\dos\country.sys
  1196.                  files=20
  1197.                  lastdrive=H
  1198.                  stacks=9,128
  1199.                  DEVICE=C:\BOOT\BOOT.SYS /L18 /U^ /CX2F
  1200.                  DEVICE=BOOT.A /T0 /CX4F /D1
  1201.                  DEVICE=TOP
  1202.                  DEVICE=TOP
  1203.                  DEVICE=TOP       ^Select any special boot-up options:
  1204.                  DEVICE=TOP
  1205.                  DEVICE=BOOT.1 >>> ^N^O^N^E <<<
  1206.                  DEVICE=BOOT.2 ^U^N^I^F^O^R^M  -  ^Access alien diskettes
  1207.                  device=c:\ut\uniform\uniform.sys at+ dr96=0
  1208.                  DEVICE=BOOT.3 ansi.sys
  1209.                  device=c:\dos\ansi.sys
  1210.                  DEVICE=BOOT.4 ^Insert an additional device driver
  1211.                  DEVICE=BOOT.EDIT                   {see the next section}
  1212.                  DEVICE=DUMMY FILLER DUMMY FILLER DUMMY FILLER
  1213.                  DEVICE=BOOT.5 ^Alt-^Ctrl-^Del = cold boot
  1214.                  DEVICE=BOOT.OPTION BOOTASSIST      {see the next section}
  1215.  
  1216.           BOOT.SYS                     -  23  -                Version 1.27
  1217.  
  1218.  
  1219.  
  1220.                  DEVICE=BOOT.B /T5
  1221.                  DEVICE=TOP
  1222.                  DEVICE=TOP
  1223.                  DEVICE=TOP       ^Select operating environment:
  1224.                  DEVICE=TOP
  1225.                  DEVICE=BOOT.1 ^M^S-^D^O^S with 1^M^B disk cache
  1226.                  device=c:\386max\386max.sys ext=1384
  1227.                  device=c:\386max\386load.sys prog=c:\dos\cache.exe 1024 ON
  1228.                                   /EXT /Q
  1229.                  device=c:\386max\386load.sys size=4216
  1230.                                   prog=c:\dos\vdisk.sys 360 512 64 /E:8
  1231.                  shell=c:\command.com /p /e:300
  1232.                  DEVICE=BOOT.2 ^M^S-^D^O^S without a disk cache
  1233.                  device=c:\386max\386max.sys ext=360
  1234.                  device=c:\386max\386load.sys size=4216
  1235.                                   prog=c:\dos\vdisk.sys 360 512 64 /E:8
  1236.                  shell=c:\command.com /p /e:300
  1237.                  DEVICE=BOOT.3 ^D^E^S^Qview
  1238.                    DEVICE=BOOT.A /T5 /D2
  1239.                    DEVICE=TOP
  1240.                    DEVICE=TOP
  1241.                    DEVICE=TOP    ^Select ^D^E^S^Qview configuration:
  1242.                    DEVICE=TOP    (size of 1st window, others 12k^B less)
  1243.                    DEVICE=TOP
  1244.                    DEVICE=BOOT.1 ^Standard: 535^K^B free
  1245.                    device=c:\dv\qemm\qemm.sys extmem=360
  1246.                    device=c:\dos\vdisk.sys 360 512 64 /E:8
  1247.                    DEVICE=BOOT.2 ^Extended: 546^K^B free
  1248.                    device=c:\dv\qemm\qemm.sys extmem=360 ram rom
  1249.                    device=c:\dos\vdisk.sys 360 512 64 /E:8
  1250.                    DEVICE=BOOT.3 ^Huge: 639^K^B free (no graphics!)
  1251.                    DEVICE=REM  use LOADHI NOEGA
  1252.                    device=c:\dv\qemm\qemm.sys extmem=360 ram rom
  1253.                                               include=A000-B7FF
  1254.                    device=c:\dos\vdisk.sys 360 512 64 /E:8
  1255.                    DEVICE=BOOT.Z
  1256.                    shell = c:\command.com /p /e:300
  1257.                  DEVICE=BOOT.4 ^Windows 386
  1258.                  device=c:\ut\win386\smartdrv.sys 1024
  1259.                  device=c:\dos\vdisk.sys 360 512 64 /E:8
  1260.                  shell=c:\command.com /p /e:300
  1261.                  DEVICE=BOOT.5 ^Turbo ^Debugger 386 and ^M^S-^D^O^S
  1262.                  device=c:\tc\td\tdh386.sys
  1263.                  shell=c:\command.com /p /e:300
  1264.                  DEVICE=BOOT.6 plain ^D^O^S
  1265.                  device=boot.option free            {see the next section}
  1266.                  DEVICE=REM  Note: BOOT.COM will return ERRORLEVEL 0
  1267.                  DEVICE=BOOT.END
  1268.  
  1269.           BOOT.SYS                     -  24  -                Version 1.27
  1270.  
  1271.  
  1272.  
  1273.           AU.32  path c:\dos;c:\bin;c:\ut;c:\wp\lm
  1274.                  C:\BOOT\BOOT A >NUL:            {see the next section}
  1275.                  if errorlevel 5 if not errorlevel 6 c:\boot\boot
  1276.                                       bootassist cold >nul:
  1277.                  C:\BOOT\BOOT B >NUL:
  1278.                  if errorlevel 5  set C386=TD    {Be sure to always test
  1279.                  if errorlevel 5  goto boot_b     ERRORLEVELs in descending
  1280.                  if errorlevel 4  set WIN=Y       order and immediately
  1281.                  if errorlevel 4  set C386=NONE   after BOOT.COM!}
  1282.                  if errorlevel 4  goto boot_b
  1283.                  if errorlevel 3  goto boot_b3
  1284.                  if errorlevel 1  set C386=MAX
  1285.                  if errorlevel 1  goto boot_b
  1286.                  goto plain_dos
  1287.                  :boot_b3
  1288.                  set C386=QEMM
  1289.                  set DV=Y
  1290.                  C:\BOOT\BOOT B3A >NUL:
  1291.                  if errorlevel 4  set C386=MAX
  1292.                  if errorlevel 4  goto boot_b
  1293.                  if errorlevel 3  c:\dv\qemm\loadhi c:\dv\qemm\noega
  1294.                  :boot_b
  1295.                  if .%C386% == .MAX   c:\386max\386load size=1052 envname
  1296.                                       prog=c:\dos\plus\kbext
  1297.                  if .%C386% == .TD    c:\dos\plus\kbext
  1298.                  if .%C386% == .NONE  c:\dos\plus\kbext
  1299.                  if .%C386% == .QEMM  c:\dv\qemm\loadhi c:\dos\plus\kbext
  1300.                  quikkey 24
  1301.                  if .%WIN% == .Y goto no_ced
  1302.                  if .%DV%  == .Y goto no_ced
  1303.                  if .%C386% == .MAX   c:\386max\386load size=9892 envname
  1304.                                       prog=c:\ut\ced
  1305.                                       -b500,200,300,128,128,128
  1306.                                       -fc:\ut\ced.cfg
  1307.                  if .%C386% == .TD    c:\ut\ced -b500,200,300,128,128,128
  1308.                                       -fc:\ut\ced.cfg
  1309.                  if .%C386% == .QEMM  c:\dv\qemm\loadhi c:\ut\ced
  1310.                                       -b500,200,300,128,128,128
  1311.                                       -fc:\ut\ced.cfg
  1312.                  :no_ced
  1313.                  @echo off
  1314.                  if .%WIN% == .Y  cd c:\ut\win386
  1315.                  if .%WIN% == .Y  win386
  1316.                  if .%DV%  == .Y  cd c:\dv
  1317.                  if .%DV%  == .Y  dv
  1318.                  :plain_dos
  1319.  
  1320.  
  1321.  
  1322.           The first menu is for 'special needs': it has a  timeout of 0 and
  1323.           defaults to  an empty  option. Whenever  I want  to read  non-DOS
  1324.           diskettes or use ANSI.SYS I press a key immediately after the two
  1325.           beeps at boot-up (usually the space bar). This gives me the 'spe-
  1326.           cial needs' menu, which appears in red to distinguish it from the
  1327.  
  1328.           BOOT.SYS                     -  25  -                Version 1.27
  1329.  
  1330.  
  1331.  
  1332.           other menus  that are green.  You also might  put in here  device
  1333.           drivers for your scanner, your CD-ROM drive, or any other devices
  1334.           that you do not use frequently.
  1335.  
  1336.           The boot.edit and boot.option lines will be explained in the next
  1337.           section.
  1338.  
  1339.           The second menu (which is usually the first to be displayed) lets
  1340.           me choose the operating environment I am going to use:
  1341.  
  1342.             - MS-DOS with disk cache
  1343.             - MS-DOS without disk cache (more EMS memory)
  1344.             - DESQview 386
  1345.             - Windows 386
  1346.             - Turbo Debugger with 386 support.
  1347.  
  1348.           Depending on which operating environment I selected,  one of four
  1349.           mutually exclusive 386 control programs are used, and all of them
  1350.           have to be loaded from CONFIG.SYS, so prior  to BOOT.SYS I needed
  1351.           at least  4 different  versions of  CONFIG.SYS. Some  of the  386
  1352.           control programs let me  load other device drivers and  TSRs into
  1353.           'high DOS memory' above the 640K, so AUTOEXEC.BAT  is affected as
  1354.           well. This menu could  also be used to select other  command pro-
  1355.           cessors like  *nix-like  shells or  other  replacements for  COM-
  1356.           MAND.COM.
  1357.  
  1358.           When I  select  DESQview I  get  a submenu  that  lets me  choose
  1359.           between three different QEMM set-ups; each option gives different
  1360.           amounts of memory available, along with other advantages and dis-
  1361.           advantages (e.g., if I do not want to  use any graphics programs,
  1362.           an additional 96K bytes of memory can be  made available for each
  1363.           window).
  1364.  
  1365.           BOOT.SYS                     -  26  -                Version 1.27
  1366.  
  1367.  
  1368.  
  1369.           BOOT.SYS Extensions
  1370.  
  1371.           This chapter explains extensions  to BOOT.SYS that go  beyond the
  1372.           menu system.
  1373.  
  1374.              BOOT.EDIT
  1375.  
  1376.           You can  edit individual  lines on  the fly while  booting up  by
  1377.           including the following lines in CONFIG.SYS (between the BOOT.SYS
  1378.           and BOOT.END lines):
  1379.  
  1380.  
  1381.                  DEVICE=BOOT.EDIT
  1382.                  {any standard CONFIG.SYS command}
  1383.  
  1384.                                                [SCREEN]
  1385.           When  the  menu  option  containing
  1386.           these lines  is selected,  BOOT.SYS
  1387.           displays a screen  with a box  that
  1388.           lets you edit the text to the right
  1389.           of the equal  sign. The keyword  to
  1390.           the   left  of   the   equal   sign
  1391.           ( DEVICE ,  FILES , etc.)  and  the
  1392.           equal sign are required  and cannot
  1393.           be edited.
  1394.  
  1395.           All the  usual  editing keys  are supported;  a  summary will  be
  1396.           displayed on the screen. There is one restriction:  the length of
  1397.           the line cannot be increased!(1)
  1398.  
  1399.           When you press <Enter>,  your edits are saved and  execution con-
  1400.           tinues. To ignore this line and continue, press <Esc> instead.
  1401.  
  1402.           You may put some explanatory text to the right  of BOOT.EDIT  and
  1403.           BOOT.SYS will display your  text instead of the  standard message
  1404.           explaining the edit keys. If you need more than  one line you can
  1405.           use as many BOOT.EDIT lines  as you like - it works  exactly like
  1406.           DEVICE=TOP . Example:
  1407.  
  1408.  
  1409.  
  1410.           --------------------
  1411.           1 There are several ways to get around this limitation:
  1412.             - Insert spaces into the line, e.g. between the name of the
  1413.               device driver and the parameters (DOS discards any spaces to
  1414.               the left or immediately to the right of the equal sign, and
  1415.               most text editors do not save spaces at the end of the line).
  1416.             - Insert dummy text that you can erase while editing the line.
  1417.             - Insert normal spaces at the end of the line followed by a
  1418.               single 'hard space'; this is the character with the ASCII
  1419.               value 255, and it can usually be entered by holding down the
  1420.               Alt key, entering 255 on the numeric keypad, and releasing
  1421.               the Alt key.
  1422.           Some of these options may not work with all versions of DOS.
  1423.  
  1424.           BOOT.SYS                     -  27  -                Version 1.27
  1425.  
  1426.  
  1427.  
  1428.                  DEVICE=BOOT.EDIT   You may experiment with different
  1429.                  DEVICE=BOOT.EDIT   BUFFERS=n values (<Esc> = ignore):
  1430.                  BUFFERS=020
  1431.  
  1432.  
  1433.  
  1434.              BOOT.OPTION FREE
  1435.  
  1436.           If the line
  1437.  
  1438.  
  1439.                  DEVICE=BOOT.OPTION FREE
  1440.  
  1441.  
  1442.           is part of  at least one  of the options  that the user  selects,
  1443.           then BOOT.SYS will not stay resident as a  device driver.(1) This
  1444.           lets you  create a  bare-bones DOS  option for  checking out  TSR
  1445.           conflicts and the like.
  1446.  
  1447.           If BOOT.SYS does not  stay resident, BOOT.COM has no way  to tell
  1448.           you  what options  were  chosen -  it  does  not even  know  that
  1449.           BOOT.SYS has  done its work!  In that case  it displays an  error
  1450.           message indicating  that BOOT.SYS  is  not loaded  and return  an
  1451.           ERRORLEVEL code of 0, which you can use to  avoid loading TSRs in
  1452.           AUTOEXEC.BAT.
  1453.  
  1454.           An example of this  option is part of the last  sample configura-
  1455.           tion above.
  1456.  
  1457.              BOOT.OPTION BOOTASSIST
  1458.  
  1459.           There exist system configurations and software packages that make
  1460.           your system crash when you hit the  Alt-Ctrl-Del key combination.
  1461.           BOOTASSIST lets you modify  the behavior of Alt-Ctrl-Del,  and it
  1462.           may  be of  help  in your  particular  situation.  To set  it  up
  1463.           requires two steps; the first is to include the line
  1464.  
  1465.  
  1466.                  DEVICE=BOOT.OPTION BOOTASSIST
  1467.  
  1468.  
  1469.           somewhere between BOOT.SYS  and BOOT.END.(2) Executing  this line
  1470.           increases the resident size  of BOOT.SYS by a few bytes  but does
  1471.           not change anything else. The second step is to activate BOOTASS-
  1472.           IST by  executing  one of  the following  commands  from the  DOS
  1473.           prompt or in a batch file (possibly AUTOEXEC.BAT):
  1474.  
  1475.           --------------------
  1476.           1 There may be versions of DOS with which this does not work. Any
  1477.           reports are appreciated!
  1478.  
  1479.           2 You can put it wherever a normal CONFIG.SYS command is accept-
  1480.           able, either as part of an option, or between BOOT.Z and BOOT.END
  1481.           to have it available all the time.
  1482.  
  1483.           BOOT.SYS                     -  28  -                Version 1.27
  1484.  
  1485.  
  1486.  
  1487.                  BOOT BOOTASSIST WARM
  1488.  
  1489.                  BOOT BOOTASSIST COLD
  1490.  
  1491.                  BOOT BOOTASSIST INHIBIT
  1492.  
  1493.  
  1494.           Each of these  commands does to  Alt-Ctrl-Del what its  parameter
  1495.           implies: WARM  is  just the  normal boot  process,  COLD is  like
  1496.           turning the power off and back on, and INHIBIT disables Alt-Ctrl-
  1497.           Del. If you are  having problems with Alt-Ctrl-Del, one  of these
  1498.           command may help, but there's no guarantee! Your chances are best
  1499.           if you load all  your resident utilities before  activating BOOT-
  1500.           ASSIST.(1)
  1501.  
  1502.           The remainder of this  section is a technical explanation  of how
  1503.           BOOTASSIST works. The resident part is a keyboard interrupt (09h)
  1504.           handler, which is  inserted at the head  of the handler  chain by
  1505.           one of the commands above.(2) Being the first in the chain it can
  1506.           usually perform  the required action  which may  or may not  work
  1507.           with your set-up.  If you want  to load another resident  utility
  1508.           program that hooks up  to the same interrupt, you can  unhook the
  1509.           BOOTASSIST handler by issuing the command
  1510.  
  1511.  
  1512.                  BOOT BOOTASSIST OFF
  1513.  
  1514.  
  1515.           and put it back at  the head of the chain after loading  the TSR.
  1516.           If the INT 09h vector  does not point to the  BOOTASSIST handler,
  1517.           it cannot be unhooked anymore and you get  an error message indi-
  1518.           cating that another program has grabbed the vector, including the
  1519.           new address.
  1520.  
  1521.           If BOOTASSIST does not work properly and turning  it OFF does not
  1522.           generate an error message, then BOOTASSIST cannot solve your par-
  1523.           ticular configuration problem.
  1524.  
  1525.              BOOT.OPTION EXTMON for Laptops
  1526.  
  1527.           When you  use BOOT.SYS  with a  laptop computer and  you have  an
  1528.           external monitor attached, then BOOT.SYS will usually  come up on
  1529.           the internal  monitor. This  is  a minor  inconvenience which  is
  1530.           addressed by  EXTMON: EXTMON  switches to  the external  monitor.
  1531.           However, because there are  no standards for this  function among
  1532.  
  1533.  
  1534.           --------------------
  1535.           1 If you use one of the KEYBxx keyboard drivers to get a non-U.S.
  1536.           keyboard layout (national language support), you must activate
  1537.           BOOTASSIST after KEYBxx.
  1538.  
  1539.           2 Warning: SideKick insists on being the first in the chain and
  1540.           thus defeats this scheme.
  1541.  
  1542.           BOOT.SYS                     -  29  -                Version 1.27
  1543.  
  1544.  
  1545.  
  1546.           the different laptop manufacturers (and sometimes not even within
  1547.           a product  line), it has  to be  implemented separately for  each
  1548.           system.
  1549.  
  1550.           At the  time of this  writing support  is implemented for  Compaq
  1551.           portable and laptop  computers only. Support for  other computers
  1552.           may be added in the future if there is  interest and the relevant
  1553.           information is available.
  1554.  
  1555.           The syntax for EXTMON is
  1556.  
  1557.  
  1558.                  DEVICE=BOOT.OPTION EXTMON <type>
  1559.  
  1560.  
  1561.           where <type> is machine-specific  and can be taken from  the fol-
  1562.           lowing table:
  1563.  
  1564.  
  1565.                Manufacturer   <type>     Computer Models
  1566.                Compaq         COMPAQ     all Compaq portables  and lap-
  1567.                                          tops
  1568.  
  1569.  
  1570.           There are  two ways of  handling EXTMON,  depending on how  smart
  1571.           your computer is: If it is smart, it will not try to switch to an
  1572.           external monitor when there is none. In that case you can use the
  1573.           following lines in CONFIG.SYS,  which will make BOOT.SYS  use the
  1574.           right monitor everytime:
  1575.  
  1576.  
  1577.                  DEVICE=c:\bin\BOOT.SYS
  1578.                  DEVICE=BOOT.A                      {optional}
  1579.                  DEVICE=TOP  ...
  1580.                  DEVICE=BOOT.0
  1581.                  DEVICE=BOOT.OPTION EXTMON <type>   {<type> as above}
  1582.                  DEVICE=BOOT.1 ...
  1583.                    ...
  1584.                  DEVICE=BOOT.END
  1585.  
  1586.  
  1587.           If your  computer  cannot tell  whether  an external  monitor  is
  1588.           attached or not, you must use a different set-up:
  1589.  
  1590.  
  1591.                  DEVICE=c:\bin\BOOT.SYS
  1592.                  DEVICE=BOOT.A /D1 /T10
  1593.                  DEVICE=TOP  Which monitor do you want to use?
  1594.                  DEVICE=BOOT.1 Internal
  1595.                  DEVICE=BOOT.2 External
  1596.                  DEVICE=BOOT.OPTION EXTMON <type>   {<type> as above}
  1597.  
  1598.           BOOT.SYS                     -  30  -                Version 1.27
  1599.  
  1600.  
  1601.  
  1602.                  DEVICE=BOOT.B
  1603.                  DEVICE=TOP  ...                    {this is your menu}
  1604.                  DEVICE=BOOT.1 ...
  1605.                    ...
  1606.                  DEVICE=BOOT.END
  1607.  
  1608.  
  1609.           This will display an additional menu at the  very beginning where
  1610.           you can select the monitor to use. After a /Timeout of 10 seconds
  1611.           BOOT.SYS will select the /Default 1, the  internal screen. Press-
  1612.           ing the  '2' key within  that  time causes  it to  switch to  the
  1613.           external monitor for the next menu. This can be done even without
  1614.           seeing the menu A, and  menu B will be displayed right  where you
  1615.           want to see it.
  1616.  
  1617.           Warning: We strongly advise you to use a bootable diskette to try
  1618.           out the EXTMON  function! If the  switch does not work  properly,
  1619.           your internal screen  may go blank, and  you will have no  way of
  1620.           editing the CONFIG.SYS file of the disk you used to boot up!
  1621.  
  1622.              BOOT.OPTION COLOR
  1623.  
  1624.           Some people prefer  more colorful screens  to the white on  black
  1625.           used by  DOS. This option  lets you specify  any color (with  the
  1626.           same numbers as for the /C switch on  the BOOT.SYS command line),
  1627.           which will be used  immediately after the BOOT.SYS  menu.(1) How-
  1628.           ever, some  device drivers  use their  own colors,  and there  is
  1629.           nothing that BOOT.SYS could do to change that. Example:
  1630.  
  1631.  
  1632.                  DEVICE=BOOT.OPTION COLOR X1F       {bright white on blue}
  1633.  
  1634.  
  1635.           BOOT.COM Command Line Parameters
  1636.  
  1637.           The syntax of BOOT.COM is
  1638.  
  1639.                  BOOT <parm>
  1640.  
  1641.           where <parm> is one of the following:
  1642.  
  1643.           HELP
  1644.               Display a summary of this list.
  1645.  
  1646.  
  1647.  
  1648.           --------------------
  1649.           1 A value of 0 can be used to change the color to black on black,
  1650.           effectively hiding the messages generated from CONFIG.SYS.
  1651.           Executing CLS from AUTOEXEC.BAT or from the command line restores
  1652.           the default color. Warning: This is not recommended, because in
  1653.           case of a problem you will not be able to see any error messages,
  1654.           and you may have to boot from a diskette and change the color to
  1655.           find out what the problem is.
  1656.  
  1657.           BOOT.SYS                     -  31  -                Version 1.27
  1658.  
  1659.  
  1660.  
  1661.           VERSION
  1662.               Display whether this  is a registered  or a Shareware  evalu-
  1663.               ation version, including  short registration information  for
  1664.               the latter.
  1665.  
  1666.           WARM
  1667.               Do a warm boot (like Alt-Ctrl-Del).
  1668.  
  1669.           COLD
  1670.               Do a cold boot (like turning the power switch off and on).
  1671.  
  1672.           WARM and COLD accept an optional switch  ( /O ) for compatibility
  1673.           with very /Old BIOS versions.
  1674.  
  1675.           BOOTASSIST <p>
  1676.               See the chapter on BOOTASSIST.
  1677.  
  1678.           no parameter
  1679.               BOOT.COM  will display  something  similar to  the  following
  1680.               example:
  1681.  
  1682.                    The user selected the following menu choices:
  1683.                       A1
  1684.                       B3
  1685.                       B3A1
  1686.  
  1687.               This would mean that when you booted up your PC, you selected
  1688.               option 1 on the first menu (menu A) and option 3  on the sec-
  1689.               ond  menu (menu B);  that  option  apparently has  a  submenu
  1690.               (menu B3A) and you selected option 1.
  1691.               If there is  only one menu, then  BOOT.COM will also  set the
  1692.               ERRORLEVEL (see below).
  1693.  
  1694.           <menu_selector>(1)
  1695.               This form is used for retrieving the  user's choices (usually
  1696.               in AUTOEXEC.BAT)  after  CONFIG.SYS has  been processed.  The
  1697.               menu  selector is  the  string  of letters  and  digits  that
  1698.               uniquely  identifies  a menu.(2)  Expanding  on  the  example
  1699.               above, BOOT b would display  3 and set the  DOS ERRORLEVEL(3)
  1700.               to 3, and BOOT b3a would display/return 1. Of course you must
  1701.               always start testing  with the top  level, and only when  you
  1702.               know that BOOT b returns 3, you can ask for BOOT b3a .
  1703.  
  1704.  
  1705.           --------------------
  1706.           1 If there is only one menu, then the <menu_selector> is
  1707.           optional.
  1708.  
  1709.           2 If you specify /P on the BOOT.SYS line in CONFIG.SYS the menu
  1710.           selector (and the nesting level) is displayed in the lower right
  1711.           corner of each menu.
  1712.  
  1713.           3 Be sure to always test ERRORLEVELs in descending order and
  1714.           immediately after the call to BOOT.COM!
  1715.  
  1716.           BOOT.SYS                     -  32  -                Version 1.27
  1717.  
  1718.  
  1719.  
  1720.               If  BOOT.SYS is  not  installed  or did  not  stay  resident,
  1721.               BOOT.COM displays an error message and  returns an ERRORLEVEL
  1722.               of 0.
  1723.  
  1724.  
  1725.           PAUSE.SYS, a Debugging Aid
  1726.  
  1727.           You may  have some very  sophisticated set-ups by  now, and if  a
  1728.           certain configuration does not  work right it can be  quite chal-
  1729.           lenging to find the problem, especially because the messages from
  1730.           the various drivers scroll by very quickly on fast machines.
  1731.  
  1732.           PAUSE.SYS provides  various functions in  CONFIG.SYS that may  be
  1733.           helpful; the primary function  is similar to what the  PAUSE com-
  1734.           mand does in a batch file:
  1735.  
  1736.  
  1737.                  DEVICE=c:\bin\PAUSE.SYS any text you like
  1738.  
  1739.  
  1740.           will display  the  text and  wait for  you to  press  any key  to
  1741.           continue. The text is always translated to lower  case; to get an
  1742.           upper case character, preceed  the character with a caret (  ^ ),
  1743.           and to display a caret, write two carets.
  1744.  
  1745.           PAUSE.SYS accepts  some  command line  switches  that change  its
  1746.           behavior:
  1747.  
  1748.  
  1749.                  DEVICE=c:\bin\PAUSE.SYS /C         {clear the screen}
  1750.                  DEVICE=c:\bin\PAUSE.SYS /P         {do a PrintScreen}
  1751.                  DEVICE=c:\bin\PAUSE.SYS /O any text {output only, no wait}
  1752.                  DEVICE=c:\bin\PAUSE.SYS /Exxx      {ESC sequence}
  1753.  
  1754.  
  1755.           All of these options suppress the wait for a key. The last option
  1756.           is intended to send escape sequences to ANSI.SYS or a replacement
  1757.           with similar capabilities;  the following lines would  change the
  1758.           screen color to bright  white on blue and clear the  screen, pro-
  1759.           vided that ANSI.SYS is already loaded:
  1760.  
  1761.  
  1762.                  DEVICE=c:\bin\PAUSE.SYS /E[1;37;44m
  1763.                  DEVICE=c:\bin\PAUSE.SYS /E[2^J     {upper case J}
  1764.  
  1765.  
  1766.           To get a summary of the functions of PAUSE.SYS, just
  1767.  
  1768.  
  1769.                  TYPE PAUSE.SYS
  1770.  
  1771.  
  1772.           from the DOS prompt.
  1773.  
  1774.           BOOT.SYS                     -  33  -                Version 1.27
  1775.  
  1776.  
  1777.  
  1778.           Closing Remark
  1779.  
  1780.           By now you have versions of CONFIG.SYS and  AUTOEXEC.BAT that are
  1781.           much more  sophisticated  than usual.  Unfortunately  there is  a
  1782.           growing  trend in  the  software  industry to  provide  automated
  1783.           installation programs that read and update your system configura-
  1784.           tion files, and this leads to some problems:
  1785.  
  1786.             - There are  installation programs  that will boldly  overwrite
  1787.               your configuration files or make other undesirable changes.
  1788.  
  1789.             - Others will  try to make  sense of  the current contents  and
  1790.               then change to whatever their programs  preferences are; they
  1791.               will certainly not be  able to handle CONFIG.SYS  and AUTOEX-
  1792.               EC.BAT correctly when BOOT.SYS is installed.
  1793.  
  1794.             - A third  category of installation  programs will examine  the
  1795.               contents of  CONFIG.SYS and  abort the  installation if  they
  1796.               find   something   offensive.   The   prime    examples   are
  1797.               MS Windows 386 and MS Windows 3.0, which refuse to install if
  1798.               they find a  mention of another  386 control program in  CON-
  1799.               FIG.SYS.
  1800.  
  1801.             - In a  class all by  itself it  Quarterdeck's QEMM 5.0,  which
  1802.               comes with an installation program called  OPTIMIZE that will
  1803.               change your  CONFIG.SYS and  reboot several times  to find  a
  1804.               good system configuration.  OPTIMIZE obviously cannot  handle
  1805.               your sophisticated CONFIG.SYS and it will probably  end up in
  1806.               a 'crash  loop', making it  necessary to  boot from a  floppy
  1807.               disk to recover.(1)
  1808.  
  1809.           There are two possible  cures to this situation: The first  is to
  1810.           keep a duplicate of  CONFIG.SYS and AUTOEXEC.BAT on hand,  so you
  1811.           can examine the changes and integrate them at  the proper places.
  1812.           In fact, keeping current backups is always a good idea!
  1813.  
  1814.           The second  cure is to  patch IBMBIO.COM  and COMMAND.COM to  use
  1815.           other names for CONFIG.SYS and AUTOEXEC.BAT. Warning: This is not
  1816.           for the faint of heart! If you feel  somewhat uncomfortable doing
  1817.           this, then please do not even try! The  procedure is deliberately
  1818.           not explained  here, because if  you do  not have any  experience
  1819.           with patching files, you should not make your first steps in this
  1820.           field with your system  files.(2) - Now to the advantage  of this
  1821.           patch: You will never have to worry  about automated installation
  1822.           programs anymore, because these will assume that you  do not have
  1823.  
  1824.           --------------------
  1825.           1 For information on how to run OPTIMIZE, please look at "Answers
  1826.           to Common Question, How can I run...".
  1827.  
  1828.           2 A second word of warning: If you patch your system files and
  1829.           make a bootable diskette, the diskette will get copies of your
  1830.           patched system files, so you must use the new names for CON-
  1831.           FIG.SYS and AUTOEXEC.BAT on the diskette as well.
  1832.  
  1833.           BOOT.SYS                     -  34  -                Version 1.27
  1834.  
  1835.  
  1836.  
  1837.           either  CONFIG.SYS nor  AUTOEXEC.BAT,  they will  usually  create
  1838.           these files,  and you  can go  back and  look calmly  at how  the
  1839.           system should be set up for the program in  question and make any
  1840.           necessary changes yourself.
  1841.  
  1842.  
  1843.  
  1844.                              Answers to Common Questions
  1845.  
  1846.  
  1847.           Can I use all characters to create boot-up menus?
  1848.  
  1849.           Yes, to create menus you may use any of the  characters of the PC
  1850.           character set (including  the box and foreign  characters) except
  1851.           for NUL, HT, BS,  LF, CR, and Ctrl-Z. The BEL  character (Ctrl-G)
  1852.           sounds the bell and displays a space.
  1853.  
  1854.  
  1855.           I can't get the columns to align properly...
  1856.  
  1857.           If your editor converts multiple spaces to tabs  then the text on
  1858.           the screen may  not align properly. Your  best bet is to  set the
  1859.           editor so that  it will not compress  spaces to tabs.  - However,
  1860.           everything should  be fine if  the tabs are  on every 8th  column
  1861.           (standard for DOS) and there  are no (or a multiple of  8) spaces
  1862.           to the left of TOP or BOOT.n .
  1863.  
  1864.  
  1865.           Why do I get error messages like 'Unrecognized command' from CON-
  1866.           FIG.SYS?
  1867.  
  1868.           With versions of DOS prior to 4.00, commands that have fewer than
  1869.           three characters to the  right of the equal sign cannot  be wiped
  1870.           out cleanly, and DOS  will give an error message similar  to 'Un-
  1871.           recognized command'.
  1872.  
  1873.           This can  usually be fixed  by appending ' x'  to the command  in
  1874.           question; thus  'LASTDRIVE=F'  would become  'LASTDRIVE=F x'  and
  1875.           'BREAK=ON' would become 'BREAK=ON x'. Commands  with numbers like
  1876.           'FILES=20' accept leading zeros, like 'FILES=020'. I  do not know
  1877.           how universal these work-arounds  are - you will have  to experi-
  1878.           ment if they work with your version of DOS.
  1879.  
  1880.  
  1881.           My choice is not recognized in AUTOEXEC.BAT...
  1882.  
  1883.           Make sure  that all of  your IF ERRORLEVEL  tests start with  the
  1884.           highest values first.
  1885.  
  1886.           BOOT.SYS                     -  35  -                Version 1.27
  1887.  
  1888.  
  1889.  
  1890.  
  1891.           I get an error message from BOOT.SYS...
  1892.  
  1893.           If BOOT.SYS finds an  error in your CONFIG.SYS file, it  tries to
  1894.           display a useful error message and aborts.  Aborting implies wip-
  1895.           ing out all the commands between BOOT.SYS and BOOT.END . BOOT.COM
  1896.           then returns  an  ERRORLEVEL  code of  0  and displays  an  error
  1897.           message, too.
  1898.  
  1899.  
  1900.           Possible problem with BREAK=ON
  1901.  
  1902.           If you  use  the BREAK=ON  command in  your  CONFIG.SYS file  you
  1903.           should make sure that  BREAK really is enabled by  entering BREAK
  1904.           at the DOS prompt. If BREAK is off, try  moving the BREAK=ON com-
  1905.           mand below the BOOT.END line.
  1906.  
  1907.           To avoid this  problem altogether you  can enable BREAK later  in
  1908.           AUTOEXEC.BAT with the command BREAK ON .
  1909.  
  1910.  
  1911.           BOOT.SYS doesn't work right with XMAEM.SYS in PC-DOS 4.0x...
  1912.  
  1913.           PC-DOS 4.0x  and probably  later versions  process the  XMAEM.SYS
  1914.           driver in a  special way: it is  loaded before any other  part of
  1915.           CONFIG.SYS is processed.  Unfortunately this makes  it impossible
  1916.           for BOOT.SYS to control that driver because  XMAEM.SYS is already
  1917.           installed when BOOT.SYS runs.
  1918.  
  1919.           A work-around  to this  problem is  to rename  XMAEM.SYS to  some
  1920.           other name (like XMAEMX.SYS ) and to use that name in the DEVICE=
  1921.           command. Load the renamed driver early in  your CONFIG.SYS, defi-
  1922.           nitely before XMA2EMS.SYS .
  1923.  
  1924.  
  1925.           Will BOOT.SYS get along with automated installation programs that
  1926.           modify CONFIG.SYS and/or AUTOEXEC.BAT?
  1927.  
  1928.           The answer is no! Please read the chapter "Closing remark" in the
  1929.           Installation section for more information.
  1930.  
  1931.           BOOT.SYS                     -  36  -                Version 1.27
  1932.  
  1933.  
  1934.  
  1935.  
  1936.           How can I run the QEMM 5.0 installation utility (OPTIMIZE) with
  1937.           BOOT.SYS?
  1938.  
  1939.           To run OPTIMIZE do the following:
  1940.             -  Rename your CONFIG.SYS  and AUTOEXEC.BAT files  to something
  1941.                else.
  1942.             -  Create new  CONFIG.SYS  and AUTOEXEC.BAT  files and  include
  1943.                only those commands that  you wish to use for your  new QEMM
  1944.                configuration (don't include BOOT.SYS!).
  1945.             -  Run OPTIMIZE.
  1946.             -  Merge the new CONFIG.SYS and AUTOEXEC.BAT into  the old ver-
  1947.                sions as your new QEMM option.
  1948.           If you patched IBMBIO.COM and COMMAND.COM to  use different names
  1949.           for CONFIG.SYS and AUTOEXEC.BAT, then you must undo those patches
  1950.           or restore  the original  files,  because OPTIMIZE  will use  the
  1951.           standard file names.
  1952.  
  1953.  
  1954.           I have a certain configuration where Alt-Ctrl-Del crashes the
  1955.           system and forces me to hit the big red switch. Can BOOT.SYS
  1956.           help?
  1957.  
  1958.           Yes, BOOT.SYS may be  able to help. Follow the directions  in the
  1959.           BOOTASSIST chapter of the installation section. If  this does not
  1960.           help you may still be able to re-boot from  the command line (see
  1961.           BOOT.COM Command Line Parameters).
  1962.  
  1963.  
  1964.           The MS Windows 386 and Windows 3.0 installation programs (and
  1965.           maybe others as well) complain that I have a 386 memory manager
  1966.           installed...
  1967.  
  1968.           The installation programs examine the contents  of CONFIG.SYS and
  1969.           when they find  a mention of  386^MAX, QEMM, or similar  programs
  1970.           they complain (Windows 386 even refuses to install), because Win-
  1971.           dows does its own  386 memory management and cannot  coexist with
  1972.           another 386 control program at present. The  consequences of this
  1973.           for you as  a user of  BOOT.SYS are very  minor: you will need  a
  1974.           BOOT.SYS menu item specifically designated for  Windows, where no
  1975.           other memory manager is loaded.
  1976.  
  1977.           The quickest way to get Windows installed is to rename CONFIG.SYS
  1978.           to something  else -  the installation program  will run  without
  1979.           problems, even with one of the offensive programs loaded. It will
  1980.           create a new CONFIG.SYS containing all the commands that you will
  1981.           want to list under the BOOT.SYS Windows option  of your real CON-
  1982.           FIG.SYS file. Look at configuration 32 for an example.
  1983.  
  1984.           Please consult the  chapter "Closing remark" in  the installation
  1985.           section for some general information concerning automated instal-
  1986.           lation programs.
  1987.  
  1988.           BOOT.SYS                     -  37  -                Version 1.27
  1989.  
  1990.  
  1991.  
  1992.  
  1993.           What can I do if BOOTASSIST does not work?
  1994.  
  1995.           Try turning BOOTASSIST OFF; if this is successful then BOOTASSIST
  1996.           will not  work with your  configuration and  nothing can be  done
  1997.           about it. If you get an error message, please  refer to the BOOT-
  1998.           ASSIST chapter of the installation section.
  1999.  
  2000.  
  2001.           BOOT.COM says that BOOT.SYS is not installed...
  2002.  
  2003.           If BOOT.SYS is installed, there can be two reasons for this error
  2004.           message:
  2005.  
  2006.             - BOOT.SYS and BOOT.COM  are different versions -  please check
  2007.               the version number that each displays.
  2008.  
  2009.             - You are  using BOOT.OPTION  FREE, and BOOT.SYS  did not  stay
  2010.               resident; consequently BOOT.COM has no way of finding it now.
  2011.               The only  purpose of  BOOT.OPTION FREE  is to  define a  boot
  2012.               option that  will  start DOS  without  any resident  programs
  2013.               (like booting from the original DOS  distribution disk), e.g.
  2014.               for experimenting with  TSR conflicts, and  it should not  be
  2015.               used under normal circumstances.
  2016.  
  2017.           BOOT.SYS                     -  38  -                Version 1.27
  2018.  
  2019.  
  2020.  
  2021.                                    Revision History
  2022.  
  2023.           0.95   Beta release
  2024.  
  2025.           0.96   Fixed /v in BOOT.COM
  2026.                  Fixed invalid parm error
  2027.  
  2028.           1.00   First public release
  2029.  
  2030.           1.01   Allow '-' along with '/' for command line switches
  2031.  
  2032.           1.10   Documentation update, mention of ASP
  2033.  
  2034.           1.20   Fixed minor  bug that  disabled /Timeout  under some  very
  2035.                  special timing circumstances.
  2036.                  Added /Spacing to BOOT.SYS.
  2037.                  Individual CONFIG.SYS lines can  now be edited on  the fly
  2038.                  while booting up.
  2039.                  New parameters to BOOT.COM:
  2040.                    - "HELP", "/H", "/?", "?" to get a short command summary
  2041.                    - "VERSION" to get version information
  2042.                    - "WARM" and "COLD" to re-boot from  the command line or
  2043.                      from a batch file; "/O" switch  for compatibility with
  2044.                      old BIOSes
  2045.                  New feature to  make Alt-Ctrl-Del perform  a cold boot,  a
  2046.                  warm boot, or no boot (BOOTASSIST).
  2047.                  Option to keep BOOT.SYS from installing  its tiny resident
  2048.                  part to get a  minimal plain-DOS setup (may not  work with
  2049.                  all DOS versions).
  2050.                  New international support channel on CompuServe.
  2051.                  Free CompuServe IntroPak for registered users.
  2052.                  New retail distribution channel in the U.S.A. through PsL.
  2053.  
  2054.           1.21   Fixed bug that caused BOOT.SYS to hang when  it was called
  2055.                  from the first  line of CONFIG.SYS  and running under  DOS
  2056.                  4.xx.
  2057.                  Added new chapter "Quick Start" (Thanks, F.P.).
  2058.                  Added Home/End key support to the BOOT.SYS menus.
  2059.  
  2060.           1.22   Fixed bug that caused BOOT.SYS to ignore  the first switch
  2061.                  on the BOOT.A etc. lines under DOS 4.xx.
  2062.  
  2063.           1.25   Documentation update.
  2064.                  New BOOT.OPTION EXTMON  (Compaq: ok, Toshiba:  needs test-
  2065.                  ing) (Thanks, B.F.).
  2066.                  New BOOT.OPTION COLOR.
  2067.                  New PAUSE.SYS utility.
  2068.                  Fixed several minor bugs.
  2069.  
  2070.           1.26   Fixed a bug where BOOT.COM was reporting the wrong version
  2071.                  (Thanks, S.G.).
  2072.  
  2073.           BOOT.SYS                     -  39  -                Version 1.27
  2074.  
  2075.  
  2076.  
  2077.           1.27   Fixed a bug in PAUSE.SYS (Thanks E.R.).
  2078.                  Minor documentation update.
  2079.                  If /T0 is specified  and no key is pressed, then  the menu
  2080.                  does not flash on and off.
  2081.                  If no key  is pressed the  Shareware screen is never  dis-
  2082.                  played; this allows unattended boot-up without the risk of
  2083.                  waiting for a key to acknowledge the screen.
  2084.                  Several other internal tune-ups.
  2085.  
  2086.