home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / utility / mnubt222.zip / MENUBOOT.DOC < prev    next >
Text File  |  1992-06-23  |  26KB  |  735 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.                  MENUBOOT.SYS  V2.2
  26.                 (c) 1992 P. Appleton
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41. Page 2
  42.             Contents
  43.  
  44. Introduction.................................................3
  45. Registration / License agreement.............................4
  46. Installation.................................................5
  47. Basic usage..................................................5
  48. Multiple menus...............................................8
  49. Use of the 'SET' command.....................................9
  50. Use of the ON and OFF commands..............................11
  51. Appendix 1 - New DEVICE statements..........................12
  52. Appendix 2 - Error messages.................................14
  53. Appendix 3 - System requirements / known problems...........15
  54. Revision history............................................15
  55. Disclaimer..................................................16
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63. Page 3
  64.             Introduction
  65.  
  66.  
  67. With the variety of modern software and hardware now available,
  68. inevitably conflicts arise between the configurations required
  69. for different programs.  MS-DOS only allows for one
  70. configuration file to be present, and hence can lead to some
  71. extraordinary manipulations using batch files to allow
  72. configurable rebooting.
  73.  
  74. MENUBOOT is a device driver which adds new commands to your
  75. CONFIG.SYS file enabling you to simply and easily build custom
  76. menus, obviating the requirement to swap configuration files.
  77. Commands are provided to allow the user's choice to be saved for
  78. later use by other programs or AUTOEXEC.BAT.  The following
  79. features are provided:
  80.  
  81.  
  82. Up to 20 options per menu.
  83.  
  84. Up to 255 menus (!).
  85.  
  86. User-defined menus, with selection by cursor keys or initial
  87. letter.
  88.  
  89. Optional default and/or timeout for each menu
  90.  
  91. User definable colours
  92.  
  93. Cursor positioning commands
  94.  
  95. Box drawing commands
  96.  
  97. Uses typically 112-130 bytes of memory
  98.  
  99. Ability to communicate with other programs via environment variables
  100.  
  101. Page 4
  102.         Registration / License agreement
  103.  
  104. MENUBOOT.SYS is shareware.  That means that you are permitted to
  105. use a unregistered copy freely for a 'reasonable time', and to
  106. freely distribute unregistered copies, provided that all the
  107. files making up this package are included and that MENUBOOT.SYS
  108. is not bundled with any other package or product whatsoever.
  109. You may not, for any reason whatsoever, distribute, sell, lend
  110. or otherwise transfer or permit to be transferred any registered
  111. copy of MENUBOOT.SYS, nor may you charge for an unregistered
  112. copy apart from a nominal fee to cover the costs of duplication,
  113. distribution and handling.  You are not permitted to
  114. disassemble, decrypt or modify MENUBOOT.SYS or any portion
  115. thereof.  No registered copy of MENUBOOT.SYS may be installed on
  116. more than one computer, unless there is NO possibility that two
  117. or more of these computers may be running at the same time.  If
  118. you use MENUBOOT.SYS after a short (1 month) trial period, you
  119. MUST register.  MENUBOOT.SYS shall remain at all times the
  120. property of the author; you are permitted a limited license to
  121. use MENUBOOT.SYS.  By installing MENUBOOT.SYS onto your machine
  122. you indicate your acceptance of the above terms and conditions.
  123.  
  124. Registration is available by payment of £10 to:
  125. P. Appleton
  126. Greenaway
  127. Maltmans Lane
  128. Gerrards Cross
  129. Bucks SL9 8RT
  130. England
  131.  
  132.  
  133. This will entitle you to the benefits of:
  134.  
  135. Free support by mail / email of MENUBOOT.SYS.
  136. Unlimited free upgrades (please send a disk and P&P).
  137. No 'nag' text or similar items.
  138.  
  139. In addition, a professionally printed and bound manual is availble for
  140. an extra £5 to registered users only (it is significantly better laid
  141. out than this one...).
  142.  
  143. I am also available via JANET / BITNET as
  144. bi3pma%stg1.shef@uk.ac.sheffield.sunc.  This is probably a better route
  145. for addressing queries to me than using letter mail.  If you have an
  146. urgent problem, you can also ring me at 0742-308830 although I cannot
  147. guarrantee how long this number will be unchanged.
  148.  
  149. Page 5
  150.             Installation
  151.  
  152.  
  153. Installation of MENUBOOT.SYS is extremely simply.  You should
  154. have received two large files - MENUBOOT.DOC (which you're reading)
  155. and MENUBOOT.EXE -  and several utilities /bits & bobs.  The
  156. documentation can either be printed or left for on-line reference if
  157. preferred, and the other files should all be copied to a
  158. sub-directory.  MENUBOOT.SYS is now a slight misnomer as it has been
  159. repackaged in an EXE format; this allows the three previous programs to
  160. be incorporated into a single file, although it does mean losing
  161. backwards compatability with MS-DOS 2.x.  If you run version 2.0, either
  162. a) buy DR-DOS... it's much better than MS-DOS & has a similar utility to
  163.    this built in.
  164. b) Upgrade to at least MS-DOS 3.30
  165. c) Use MENUBOOT.SYS version 1.x
  166.  
  167. To start using MENUBOOT.SYS two changes are required to your
  168. CONFIG.SYS file:
  169.  
  170.  A new line should be inserted at the begining with the
  171. statement DEVICE=[path]MENUBOOT.EXE
  172.  
  173.  A new line must be inserted at the end with the statement
  174. DEVICE=~ (found as shift-# on UK keyboards).
  175.  
  176.  
  177. That's it!  At the moment, it will not do anything terribly
  178. useful, but it will provide all the new commands.  The use of
  179. MENUBOOT to provide menus is covered in the next section.
  180.  
  181.             Basic usage
  182.             -----------
  183.  
  184. First, a word on syntax conventions in this manual.
  185.  
  186. Anything enclosed in [square braces] is optional, and may be
  187. ommitted or replaced with the relevant parameter; hence [path]
  188. may be ommitted or replaced with (for example) C:\PDUTILS\.
  189.  
  190. Anything enclosed in <angle braces> is literal, and must be
  191. entered exactly as-is.  Also, all text not enclosed in braces is
  192. a literal.
  193.  
  194. Anything enclosed in {curly braces} is a required parameter, and
  195. should have the appropriate argument substituted for the text in
  196. the curly braces.
  197.  
  198. The pipe symbol | indicates a choice of items; for example,
  199. [MAX|OPTION|{number}] indicates that you may omit the parameter,
  200. supply a number or one of the parameters MAX or OPTION.
  201.  
  202. OK, so, what is the format for a menu?
  203.  
  204. A menu is started by the line:
  205.     DEVICE=MENU [options]
  206. (Note: see appendix 2 for an explanation of all the options you
  207. may use)
  208.  
  209. Page 6
  210.  
  211. When this line is encountered, MENUBOOT will clear the screen,
  212. display a copyright notice and any text or options you specify,
  213. and then wait for you to choose an option (or press a key if no
  214. options were specified).  An option is specified by the line:
  215.  
  216.     DEVICE=OPTION [<{>{options}<}>] {option text}
  217.  
  218. In between the OPTION statements, any configuration statements
  219. relevant to that option should be placed.
  220.  
  221. Finally, the menu is terminated by the line
  222.     DEVICE=END
  223. We now know enough to create a simple menu sytem for a sample
  224. CONFIG.SYS file:
  225.  
  226. DEVICE=C:\PDUTILS\MENUBOOT.SYS
  227. DEVICE=MENU
  228. DEVICE=OPTION 1...I^NSTALL RAMDRIVE^
  229. DEVICE=C:\DOS\RAMDRIVE
  230. BUFFERS=5
  231. DEVICE=OPTION 2...D^ON'T INSTALL RAMDRIVE
  232. BUFFERS=15
  233. DEVICE=END
  234. DEVICE=C:\DOS\ANSI.SYS
  235. FILES=30
  236. DEVICE=~
  237.  
  238. Try it!  Format a blank disk, making sure you transfer MS-DOS
  239. and MENUBOOT.SYS, and type it in as your CONFIG.SYS.
  240.  
  241. You have probably noticed the carets (^) in the example
  242. file which did not print on screen.  Why not?  The reason is
  243. that MS-DOS translates all characters in CONFIG.SYS to uppercase
  244. as it loads.  In order to print a lower case character, you must
  245. precede it with a caret.  From that point on, all text will be
  246. translated to lower case until another caret is met.  What if
  247. you want a caret?  Just use two together (^^), and a single
  248. caret will be printed.  Notice, too, the way in which
  249. configuration statements which went with an option were placed
  250. after the OPTION statement, but a DEVICE statement which applied
  251. to all options was placed after the menu end.
  252.  
  253. Now, you may decide that you wish to display some text for the
  254. user - for example, a help line indicating that the option
  255. should be selected by using the arrow keys and then pressing
  256. return.  In order to do this, the TEXT statement is provided.
  257. The syntax is simply:
  258.  
  259.     DEVICE=TEXT {message}
  260.  
  261. So, for example, we could modify our example file to read:
  262.  
  263. DEVICE=C:\PDUTILS\MENUBOOT.SYS
  264. DEVICE=MENU
  265. DEVICE=TEXT P^LEASE USE THE ARROW KEYS TO SELECT AN OPTION, THEN
  266. PRESS RETURN^
  267.  
  268. Page 7
  269.  
  270. DEVICE=OPTION 1...I^NSTALL RAMDRIVE^
  271. DEVICE=C:\DOS\RAMDRIVE
  272. BUFFERS=5
  273. DEVICE=OPTION 2...D^ON'T INSTALL RAMDRIVE
  274. BUFFERS=15
  275. DEVICE=END
  276. DEVICE=C:\DOS\ANSI.SYS
  277. FILES=30
  278. DEVICE=~
  279.  
  280. That will display the message at the top of the screen.  The
  281. next question to consider is the aesthetics; what if you want
  282. the screen to be a different colour, or the text in a different
  283. position?
  284.  
  285.     To set the colour for the menu, two options are provided for
  286. the MENU statement: /NORMAL and /HIGHLIGHT.  They set,
  287. respectively, the colour for non-highlighted text, and that for
  288. highlighted text (ie the copyright notice and the selected
  289. option).  The syntax is:
  290.  
  291.     DEVICE=MENU /N[ORMAL]={colour name}[ ON {colour name}]
  292.  
  293. for NORMAL, and the same for HIGHLIGHT.  Note that you can
  294. abbreviate NORMAL to N; this applies to all parameters, which
  295. may be abbreviated to their first letter.  The colour names are:
  296.  
  297. Colour    Colour name for MENUBOOT
  298.  
  299. Black        BK
  300. Blue        BL
  301. Green        G
  302. Cyan        C
  303. Red        R
  304. Magenta        M
  305. Brown        BR
  306. White        W
  307.  
  308.  
  309. In addition, you may put a plus sign after a foreground colour
  310. name to signify enhanced intensity, or after a background colour
  311. to signify flashing (NB: see the INTENSE option in appendix 1).
  312.  
  313. Thus, we could for example change our menu statement to read:
  314.  
  315.     DEVICE=MENU /NORMAL=W+ ON G /HIGHLIGHT=BR+ ON C
  316.  
  317. to obtain a menu with bright white text on a green background,
  318. and a highlight with yellow text on cyan.  By default, a colour
  319. computer has /N=W+ on BL and /H=W+ on R, whilst a mono system
  320. has /N=W on BK and /H=BK on W.
  321.  
  322.     You may position the cursor prior to displaying an option by
  323. using the CURSOR statement.  The syntax is:
  324.  
  325.     DEVICE=CURSOR [X={x coord}] [Y={y coord}]
  326.  
  327. You do not have to specify both X and Y, or indeed either
  328. although that would be a little pointless...
  329.  
  330. Page 8
  331.  
  332. Finally, on the aesthetics front, you can place a box on screen
  333. with the command
  334.  
  335.     DEVICE=BOX [N[ONE]|S[INGLE]|D[OUBLE]] [C[OLOUR] {name}[ ON
  336.     {name}]] {x1},{y1} TO {x2},{y2}
  337.  
  338. This will create a box on screen with the top-left corner at X1,Y1 and
  339. the lower-right corner at X2,Y2.  The NONE, SINGLE, and DOUBLE keywords
  340. govern the number of lines to be drawn around the box (by default none
  341. are drawn).  If used, the lines are drawn to the coordinates given, not
  342. outside.
  343.  
  344. Using these commands, it is possible to create some fairly
  345. pretty menus.  Note that by default pressing either left- or up-
  346. arrow will take you to the previous option, and right- or down-
  347. arrow will take you to the next option.  It is possible to
  348. change this; please see appendix 3 for details.
  349.  
  350.             Multiple Menus
  351.             --------------
  352.  
  353.     It is possible to have more than one menu in your CONFIG.SYS
  354. file.  If this is the case, then menus can either follow each
  355. other, be nested inside each other, or a mixture of both.  In
  356. order to do this, simply place a DEVICE=MENU statement at the
  357. start of each menu and a DEVICE=END statement at the end.  Even
  358. if the menus are nested, there is no need to explicitly declare
  359. this - MENUBOOT is capable of determining which OPTION statement
  360. goes with which menu.  For example:
  361.  
  362. DEVICE=MENUBOOT.EXE
  363. DEVICE=MENU
  364. DEVICE=TEXT PLEASE SELECT WHETHER YOU WANT A RAMDRIVE
  365. DEVICE=OPTION 1...RAMDRIVE
  366. DEVICE=MENU
  367. DEVICE=TEXT PLEASE SELECT THE SIZE OF YOUR RAMDRIVE
  368. DEVICE=OPTION 1...1024K
  369. DEVICE=RAMDRIVE.SYS 1024
  370. DEVICE=OPTION 2...512K
  371. DEVICE=RAMDRIVE.SYS 512
  372. DEVICE=END
  373. DEVICE=OPTION 2...NO RAMDRIVE
  374. DEVICE=END
  375. DEVICE=MENU
  376. DEVICE=TEXT PLEASE SELECT WHETHER TO INSTALL ANSI.SYS
  377. DEVICE=OPTION 1...INSTALL ANSI
  378. DEVICE=ANSI.SYS
  379. DEVICE=OPTION 2...DONT INSTALL ANSI
  380. DEVICE=END
  381. DEVICE=~
  382.  
  383. Page 9
  384.  
  385. Upon running the above CONFIG.SYS, the user will be presented
  386. with a menu asking whether ramdrive should be installed.  If it
  387. is chosen to install ramdrive, another menu will be presented
  388. requesting the size of the ramdrive.  In any event, a menu will
  389. then be given asking whether ANSI.SYS may be installed.  You may
  390. have up to 255 menus if you so desire, each with up to 20
  391. options, although I would recommend keeping to a maximum of 3 or
  392. 4 menus.  Each menu can have different options specified on the
  393. MENU line, and will not affect any other menu in the file.
  394.  
  395.  
  396.             Use of the SET command
  397.             ----------------------
  398.  
  399.  
  400. As was stated in the "Introduction", MENUBOOT.SYS provides a
  401. means of communicating with AUTOEXEC.BAT and other programs.  To
  402. do this uses the SET command.  The syntax is:
  403.  
  404.     DEVICE=SET {variable}={value}
  405.  
  406. Basically, it functions exactly the same as the MS-DOS SET
  407. command; a variable will be placed into the environment space
  408. with the specified value.  In order to achieve this, you must
  409. run MENUBOOT.EXE in AUTOEXEC.BAT:
  410.  
  411. (config.sys)
  412. DEVICE=MENUBOOT.EXE
  413. DEVICE=MENU
  414. DEVICE=OPTION SET BOOT
  415. DEVICE=SET BOOT=Y
  416. DEVICE=OPTION DONT SET BOOT
  417. DEVICE=END
  418. DEVICE=~
  419.  
  420. (autoexec.bat)
  421. MENUBOOT
  422. IF "%BOOT%"=="Y" ECHO BOOT WAS SET!
  423.  
  424. Obviously, the example does nothing worth doing, but it does
  425. provide an illustration of the command.  A better approach is to
  426. set a variable to a value corresponding to the option chosen,
  427. and then to use the DOS GOTO command:
  428.  
  429. (autoexec.bat)
  430. MENUBOOT
  431. IF ERRORLEVEL==1 GOTO NOT_INSTALLED
  432. GOTO %BOOT%
  433. :WINDOWS
  434. .
  435. .
  436. :DOS
  437. .
  438. .
  439. :NOT_INSTALLED
  440.  
  441. Page 10
  442.  
  443. This requires that BOOT is set to either DOS or WINDOWS
  444. depending upon which configuration was chosen.  If MENUBOOT.SYS
  445. was not installed for some reason then BOOT will return an
  446. errorlevel of 1 to indicate this (for details on errorlevel
  447. please see your MS-DOS manual).  You may set variables up to a
  448. total of 512 characters in length, including the variable name,
  449. equals sign and carriage return.  Note that you need to have
  450. space in the environment to insert them; by default, MS-DOS has
  451. 160 bytes unless otherwise specified in a SHELL statement in
  452. CONFIG.SYS - see your MS-DOS manual for details on this
  453. statement.  You should also be aware that MENUBOOT.SYS has a
  454. memory requirement of the length of the variables set plus 112
  455. bytes, and that no single variable should exceed 128 characters
  456. in length.  In general, it is best to keep variables as short as
  457. possible (less than eight characters for both name and value).
  458. It is recommended that in each menu you SET a variable with a name
  459. related to the menu's contents to a value appropriate for the choice
  460. selected, and then GOTO that variable.  For example:
  461.  
  462. (config.sys)
  463. DEVICE=MENUBOOT.EXE
  464. DEVICE=HIMEM.SYS
  465. DEVICE=MENU
  466. DEVICE=OPTION 1...INSTALL RAMDRIVE
  467. DEVICE=RAMDRIVE.SYS
  468. DEVICE=SET MENU2=RAMDRIVE
  469. BUFFERS=5
  470. DEVICE=OPTION 2...DON'T INSTALL RAMDRIVE
  471. DEVICE=SET MENU1=NORAMDRIVE
  472. BUFFERS=15
  473. DEVICE=END
  474. DEVICE=MENU
  475. DEVICE=OPTION 1...CONFIGURE MEMORY FOR WINDOWS
  476. DEVICE=EMM386.EXE NOEMS
  477. DEVICE=SET MENU2=WINDOWS
  478. DEVICE=OPTION 2...CONFIGURE MEMORY FOR DOS
  479. DEVICE=EMM386.EXE RAM
  480. DEVICE=SET MENU2=DOS
  481. DEVICE=END
  482.   {rest of config.sys}
  483. DEVICE=~
  484.  
  485. (autoexec.bat)
  486. ECHO OFF
  487. MENUBOOT
  488. IF ERRORLEVEL==1 GOTO NOT_INSTALLED
  489. GOTO %MENU1%
  490. :RAMDRIVE
  491. SET TEMP=D:
  492. GOTO %MENU2%
  493. :NORAMDRIVE
  494. SET TEMP=C:\TEMP
  495. GOTO %MENU2%
  496. :WINDOWS
  497. ECHO Starting Windows, please wait...
  498. WIN :            <- Note: the colon is an undocumented switch which
  499. :DOS            disables the Microsoft logo.
  500.  
  501. Page 11
  502.         Use of the ON and OFF switches
  503.  
  504.     There are two switches for the MENU statement that are worth a
  505. special mention - ON and OFF.  These switches enable the menu to be
  506. hidden or displayed according to the keys held down by the user as the
  507. machine is booting.  This is useful if, for example, the machine is
  508. normally booted in one particular configuration and you don't want the
  509. hassle of a menu each and every reboot.  To make the machine skip the
  510. menu, simply place a switch such as ON=CTRL after the MENU statement.
  511. The menu will not be displayed, nor any text or boxes, and the default
  512. option automatically activated (if no default has been set, then the
  513. first option will be chosen).  The OFF statement may be used to have a
  514. menu which, for example, displays help text for new users of the
  515. machine, but which advanced users can skip simply by holding down a key
  516. as the machine boots.
  517.     It is possible to force the user to hold down more than one key
  518. by multiple usage of the ON or OFF switches - for example:
  519.  
  520.     DEVICE=MENU /ON=LSHIFT /ON=RSHIFT
  521.  
  522. would force the user to press both the left and right shift keys
  523. simultaneously in order to display the menu.  It is not, however,
  524. possible to use both the ON and OFF switches in the same menu... they
  525. are mutually exclusive.  If you attempt to do so, MENUBOOT will use the
  526. last ON or OFF that you specified, and combine the hotkeys chosen for
  527. all of them.  For example:
  528.  
  529.     DEVICE=MENU /ON=LSHIFT /OFF=RSHIFT
  530.  
  531. would result in the menu being displayed unless the user pressed both
  532. left- and right- shift keys simultaneously.
  533.  
  534.     It is possible for each menu to have an ON or OFF clause
  535. associated with it, but it is not reccommended as you do not really
  536. have time to press the relevant key after a menu has been displayed but
  537. before the next one is processed.
  538.  
  539. Page 12
  540.             Appendix 1
  541.           New DEVICE statements
  542.  
  543. This is a reference to the syntax of all the new DEVICE
  544. statements provided by MENUBOOT.SYS.
  545.  
  546. DEVICE=BOX [N[ONE]|S[INGLE]|D[OUBLE]][COLOUR {colour name}[ ON {colour
  547. name}] {x1},{y1} to {x2},{y2}
  548.  
  549. Fills an area of screen with top-left at x1,y1 and bottom-right at x2,y2
  550. with the specified colour.  By default, the area is left unbounded,
  551. but using the SINGLE or DOUBLE keywords will cause a box with single
  552. or double lines to be drawn around the area.  If an syntax error occurs,
  553. the statement is ignored.  Please note the English spelling of COLOUR!
  554.  
  555. DEVICE=CURSOR [X={number}] [Y={number}]
  556.  
  557. Positions the cursor at X,Y (if either is not specified, the
  558. current value will be used).  If a syntax error occurs, the
  559. statement is ignored.  X ranges from 1 to the number of columns
  560. on screen, and Y ranges from 3 to 23.
  561.  
  562. DEVICE=END
  563.  
  564. Delimits the end of a menu.  No options should follow this
  565. statement; any which do will be ignored.
  566.  
  567. DEVICE=MENU [/N[ORMAL]={colour}[ ON {colour}]
  568. [/H[IGHLIGHT]={colour}[ ON {colour}] [/S[PACING]={number}]
  569. [/B[ARLENGTH]=<MAX|OPTION|{number}> [/D[EFAULT]={number}]
  570. [/T[IMEOUT]={number}] [/I[NTENSE]] [/ON|/OFF=ALT|CTRL|LSHIFT|RSHIFT]
  571.  
  572. Starts a menu.  NORMAL defines the colour of all text except
  573. highlighted; HIGHLIGHT defines the colour of highlighted text.
  574. See table on page 13 for details of available colours.  SPACING
  575. defines the spacing between options, and is valid between one
  576. and three.  BARLENGTH defines the method of display for the
  577. highlight bar; MAX sets the highlight bar to be the length of
  578. the longest option, and is the default.  OPTION sets the bar to
  579. be the length of the selected option, and a number between 1 and
  580. 99 sets the bar to be that many characters in length.  DEFAULT
  581. specifies the option that the bar should highlight when the menu
  582. is displayed.  TIMEOUT indicates the length of time (in seconds)
  583. that MENUBOOT should wait for the user to choose an option.  If
  584. the timeout fails, the option selected will be that on which the
  585. highlight bar rests.  INTENSE will disable the flashing attribute, and
  586. instead allows you to use enhanced intensity for background as well as
  587. foreground colours.  Note that this keyword is only supported by EGA,
  588. MCGA and VGA graphics cards; IT WILL NOT WORK WITH, AND SHOULD NOT BE
  589. USED WITH, ANY OTHER DISPLAY ADAPTER!  The results of trying to do so
  590. are unknown, but will probably cause a crash requiring rebooting from a
  591. floppy disk.  ON makes a menu default to not being shown.  If you wish
  592. to display the menu, you must hold down the key specified (control,
  593. Alt, left shift or right shift) as the machine boots,  otherwise the
  594. default option will be selected from the menu without any interaction
  595. with the user.  OFF has the reverse effect; the menu will be shown
  596. unless the given key is held down as the machine boots.  If a syntax
  597. error occurs in any option, that option will be ignored.
  598.  
  599. Page 13
  600.  
  601. DEVICE=OPTION [<{>[U[P]={option #}] [D[OWN]={option #}]
  602. [L[EFT]={option #}] [R[IGHT]={option #}]
  603. [B[ARLENGTH]={length}]<}>] {option text}
  604.  
  605. Creates an option in the menu.  Up to twenty options may exist,
  606. with up to 80 characters.  If more than twenty options are
  607. present, an error message will be given and the program will abort,
  608. deleting all statements up to the DEVICE=END statement.  This will
  609. also happen if a syntax error occurs.  UP, DOWN, LEFT and RIGHT specify
  610. which option the highlight bar should move to if the respective arrow
  611. key is pressed.  By default, pressing UP or LEFT moves to the previous
  612. option, and DOWN or RIGHT moves to the next.  Moving off the end of the
  613. menu will result in the highlight bar appearing at the other end, ie it
  614. wraps round.  BARLENGTH specifies the length of the highlight bar for
  615. this option, and can be used to generate a highlight bar which fills a
  616. column completely no matter which option is selected.  {option text} is
  617. the text to display to the user.  Use a caret (^) to toggle between
  618. upper/lower case conversion on or off.
  619.  
  620. DEVICE=TEXT {text}
  621.  
  622. Displays the given text on screen.  The text will be printed in
  623. the colour of the background.
  624.  
  625. DEVICE=~
  626.  
  627. Delimits the end of CONFIG.SYS.  This line MUST be present for
  628. MENUBOOT.SYS to work.
  629.  
  630. Page 14
  631.  
  632.             Appendix 2
  633.               Error messages
  634.  
  635. Several error messages can be generated by MENUBOOT.SYS.  These
  636. are listed below:
  637.  
  638. ERROR: "DEVICE=END" statement missing!
  639. The menu lacks an END statement - this must be present for
  640. proper operation.  Edit CONFIG.SYS and insert an END statement
  641. at the appropriate point.
  642.  
  643. ERROR: "DEVICE=~" statement missing!
  644. The CONFIG.SYS file lacks a DEVICE=~ statement.  This statement
  645. is required at the end of CONFIG.SYS (for MENUBOOT to be able to
  646. trace the end of CONFIG.SYS).  If your CONFIG.SYS file is longer
  647. than 64K, this error may also be generated - if so, please
  648. contact the author.  It will also be generated under DR-DOS 6,
  649. which is not compatible with MENUBOOT due to its method of
  650. interpreting CONFIG.SYS.
  651.  
  652. ERROR: Syntax error in OPTION statement, or too many options
  653. This error will be generated if either a mistake has been made in one of
  654. the options, such as a mis-spelling or a number larger than 99, or if
  655. you miss the closing curly brace from the option, or if there are more
  656. than 20 options in the menu.  Check CONFIG.SYS and correct the mistake.
  657.  
  658. ERROR: Too many nested menus exist!
  659. You have got more than 255 menus nested inside each other...
  660.  
  661. Page 15
  662.  
  663.             Appendix 3
  664.     System requirements / known incompatiblities
  665.  
  666. MENUOOT.SYS should run on any fully IBM compatible PC, and
  667. requires MS-DOS version 3.0 or later.  No other requirements are
  668. necessary.  It has been tested under MS-DOS 3.30, 4.01 and 5.0.
  669.  
  670. Windows
  671. MENUBOOT.SYS has been fully tested with Windows 3.0, and no
  672. problems have been encountered.
  673.  
  674. DR-DOS
  675. MENUBOOT.SYS is not compatible with DR-DOS 6.  It has not been
  676. tested under any other versions of DR-DOS, but it is anticipated
  677. that it would not be compatible with earlier versions either;
  678. this is due to an incompatiblity in DR-DOS, not in MENUBOOT!
  679. DR-DOS has an adequate means of dynamic configuration provided
  680. as part of itself anyway (and is much better than MS-DOS...).
  681.  
  682. PC-DOS 4.0+ & XMAEM.SYS
  683. PC-DOS 4.0 and later pre-loads the XMAEM.SYS driver before
  684. MENUBOOT.SYS gets control.  This makes it impossible to control
  685. this driver's installation as it is already loaded.  You can
  686. work around this by renaming the driver, eg to XMAEM!.SYS, and
  687. then loading it as early as possible in the CONFIG.SYS file.
  688.  
  689. Programs which modify CONFIG.SYS / AUTOEXEC.BAT
  690. Programs in this class such as Windows, Qemm386, 386Max and so
  691. on tend to get very confused by versions of CONFIG.SYS and
  692. AUTOEXEC.BAT set up in this way, and will often fail to install.
  693.  The cure is simple; rename CONFIG.SYS and AUTOEXEC.BAT, and
  694. then install your program.  These programs normally create a
  695. configuration file if one is not present - you can then examine
  696. the file it has written and incorporate any necessary changes
  697. into AUTOEXEC and CONFIG yourself.  For this reason, ALWAYS MAKE
  698. A BACK-UP OF CONFIG.SYS AND AUTOEXEC.BAT BEFORE INSTALLING ANY
  699. NEW SOFTWARE!
  700.  
  701.             Revision History
  702.  
  703. Version 1.0 released 25.2.92.
  704. Version 2.0 - bug in registration routine fixed.  Added options to
  705.     draw lines round boxes, and integrated all programs into one
  706.     file.  Not released due to v2.1 being finished early.
  707. Version 2.1 - added ON and OFF keywords in response to a request.
  708.     Released 29.2.92.
  709. Version 2.2 - cleared up a few minor bugs (problems with 20 options
  710.     and with error handling routine).  Released 1.3.92.
  711. Version 2.3 - Experimental version using no memory if no variables set.
  712.     Not publicly released, although it is available as a ß.
  713. Version 2.21 - corrected bug where colours were ignored (oops!).
  714.     Released 13.3.92.
  715. Version 2.22 - included support for non-standard Tiko BIOS, which caused
  716.     boxes to be drawn without vertical lines.  Released 23.6.92.
  717.  
  718.  
  719. Page 16
  720.  
  721.             Disclaimer
  722.  
  723. (sigh!)
  724.  
  725. MENUBOOT.EXE, the accompanying documentation, and any other programs or
  726. utilities that may be provided at any time, together jointly referred to
  727. as MENUBOOT.SYS, are provided as is.  Peter Appleton (the author) makes
  728. no warranty of any kind, express or implied, including but not limited
  729. to warranties of merchantablility or fitness for any particular purpose,
  730. with respect to this software and documentation.  In no event shall the
  731. author be liable for and damages, including lost profits, lost savings,
  732. damaged hardware or software or any other incidental or consequential
  733. damages arising out of the use of, or the inability to use, this
  734. product, even if the author has been advised of the possibility of such
  735. damages, or for any claim by any other party.