home *** CD-ROM | disk | FTP | other *** search
/ Mega CD-ROM 1 / megacd_rom_1.zip / megacd_rom_1 / MENU / BMS_7_21.ZIP / BMS.DOC < prev    next >
Text File  |  1987-07-21  |  27KB  |  578 lines

  1.  
  2. Bob's Menu System  -  Rev. 07/21/87  -  Documentation
  3.  
  4.  
  5. ******************* Recent changes *****************************
  6. This version fixes some trivial little things that weren't quite
  7. 'bugs', but which were mildly annoying.  You can now use the
  8. single key selection method with items which begin with numbers.
  9. If you choose to set the color of the 'dimmed' menu items to a
  10. reverse video attribute, the reversed part of the item name will
  11. now be spaced out evenly.  The delay before the screen protect
  12. routines kick in has been increased to about 5 minutes, and is
  13. now optional.  The system automatically determines if screen-
  14. flicker avoidance in necessary, by checking the EGA bios area for
  15. the presence of the 'IBM' characters.  If not found, the color card
  16. is assumed to be an CGA.  Selections which begin with space characters 
  17. can now be selected with the single key method.
  18. ****************************************************************
  19.  
  20. ******************* BUG FIX ************************************
  21. A bug existed in some previous versions which caused some serious
  22. problems for people  using  DOS  2.xx.    It  seems  that earlier
  23. versions  of  DOS  don't  handle  file  attributes  the way later
  24. versions do.  The  Makemenu  installation  utility  in  the older
  25. versions set  Menu.bat to  read-only and  hidden when creating it.
  26. This works fine with  recent  DOS  versions,  but  apparently the
  27. batch  interpreters  in  the  earlier versions can't read these
  28. files.  My apologies to  anyone  who  had  problems  due  to this
  29. oversight...
  30. *****************************************************************
  31.  
  32.  
  33. This  menu  system  allows  having  anywhere  from 1 to 240 items
  34. available without a complicated system of sub-menus having  to be
  35. defined.   Just create  a simple  text file listing the items, as
  36. described below,  run the  install program,  and you  have a good
  37. looking  menu  devoid  of  annoying  copyright messages.  You can
  38. include a password for any item,  and can  specify how  each item
  39. should be executed.
  40.  
  41. There are 3 methods of executing selections:
  42.  
  43. 1)   BATCH METHOD:   When  an item  of this sort is selected, the
  44.      menu program exits to DOS with the error code set.  The main
  45.      batch file  (Menu.Bat) then resumes control and executes the
  46.      instruction which corresponds to the error code.   When done
  47.      executing, control returns to DOS - and the Menu.Bat file is
  48.      run again, either by the application batch file or manually,
  49.      to restart the menu.
  50.  
  51. 2)   SHELL METHOD:   When  the item is selected, the menu program
  52.      (Bms.Com) loads a secondary  copy of  the command processor,
  53.      with  the  argument  set  to  the  name  of  the  command or
  54.      application.    As  soon  as  the   selected  item  finishes
  55.      executing Bms.Com  regains control, optionally pausing for a
  56.      keypress before taking over the display.
  57.  
  58. 3)   DIRECT METHOD:    The  menu  program  (Bms.Com)  invokes the
  59.      selected item directly without first loading another command
  60.      shell.  This has most of the advantages of the Shell Method,
  61.      but additionally saves a bit of memory.
  62.  
  63. Each of  these methods has it's advantages and disadvantages, and
  64. the last one (Direct)  will only  work under  certain conditions.
  65. The following  is an outline of how to choose the best method for
  66. a given application:
  67.  
  68. -    The Batch Method will work for  ANY application,  and is the
  69.      most  efficient  in  terms  of  memory.  This is the default
  70.      method.
  71.  
  72. -    The  Shell  Method  will  work  for  almost  any application
  73.      provided there  is enough  memory left over for it after the
  74.      Bms.Com program and the  secondary command  shell have taken
  75.      what they  need.  On my machine, I have 512K - and DOS takes
  76.      up 52K.  With  Bms.Com  and  a  secondary  command  shell in
  77.      place, there  is 127K  used - and the remainder is available
  78.      for applications.    The  'almost'  is  because  you clearly
  79.      shouldn't  use  this  method  to load TSR's (memory resident
  80.      programs).  More on that later...
  81.  
  82. -    The Direct Method will ONLY work  for applications  which do
  83.      not require  access to  any of  the DOS internal commands or
  84.      functions.  You cannot directly invoke DIR, for  example, or
  85.      do  redirection  or  piping.    You cannot directly invoke a
  86.      batch file, since  the  batch  interpreter  is  part  of the
  87.      command processor  (doing so  will require a Ctrl-Alt-Del if
  88.      you're lucky - the Off switch if you're  not).   You have to
  89.      give the  FULL path  and name of an .EXE or .COM file: e.g.,
  90.      \db3\dbase.exe.  Using this  method is  slightly faster, and
  91.      slightly  more  memory  efficient,  than  the  Shell Method.
  92.      Again, don't use this method for TSR's.
  93.  
  94. I recommend using the Batch  method  predominantly.    Having the
  95. extra memory  free is quite important, and the batch method isn't
  96. THAT slow.  I  would use  the shell  or direct  methods for small
  97. applications, or  for setting  up specific  applications in areas
  98. where security is an issue.  You obviously  don't want  people to
  99. be able  to Control-C  their way  out of  batch files when you're
  100. concerned about security.
  101.  
  102. See below (Command  Options)  for  details  of  how  to  use each
  103. method.
  104.  
  105. Let's talk in more general terms for a minute.  We'll get back to
  106. the technical end in a bit...
  107.  
  108. The menu system provides  a way  of displaying  and executing all
  109. applications running  on PC  compatible systems.  The actual menu
  110. seen by the user will be a moderately standard 'moving  bar' type
  111. - with  selections being made with arrow, home and end keys or by
  112. pressing the  first  letter  of  the  selection.    You  can have
  113. anywhere from  1 to 240 selections on a given menu, with PgUp and
  114. PgDn being used to switch between pages of  60 items  each.  Each
  115. item can  optionally be  protected with it's own password, as can
  116. the ability to exit from the menu with the Esc key.  Pressing any
  117. incorrect key will, optionally, sound a short beep.
  118.  
  119. The process  of creating  a menu requires that you first position
  120. yourself in the directory where  you  want  the  menu  to reside.
  121. It's assumed that a hard drive is being used.  (You could run the
  122. menu on a floppy system, but  why bother?)   You  should copy the
  123. files Bms.Com and Makemenu.Com to this directory.
  124.  
  125. Having done  that, you'll now need to create an ASCII Source Text
  126. file,  which  will  be  read  by  the  Makemenu.Com  installation
  127. utility.
  128.  
  129. Create the Source Text file as follows:
  130.  
  131. Type a 21 char. max line which contains the application name that
  132. you want the user to see.  If you want a password  to protect the
  133. item, follow  the name  with a comma and a 60 char. max password.
  134. Do not include spaces before or after the comma.  An example line
  135. would look like this:
  136.  
  137. WordPerfect 4.1,password
  138.  
  139. On the  very next  line (no blank lines allowed), you should type
  140. the 64 char. max  command  that  will  be  executed  if  the user
  141. selects this  item.  It will normally be the name of a batch file
  142. (assumed to be in  the  current  directory  or  in  the  path, or
  143. preceded by  the pathname),  or, if the Shell or Direct Method is
  144. used,  the  name  of  a  command  appropriate  to  those methods.
  145. Continuing the  above example, if our WordPerfect batch file were
  146. named wordperf.bat, then the entire two  line entry  would appear
  147. as follows:
  148.  
  149. WordPerfect 4.1,password
  150. wordperf
  151.  
  152. Adding a second item (SideKick, with no password, using the batch
  153. file skick.bat) would then result in this:
  154.  
  155. WordPerfect 4.1,password
  156. wordperf
  157. Load SideKick
  158. skick
  159.  
  160. NOTE:     If you  want  to  load  TSR's  like SideKick,
  161.           etc., from  the menu,  make sure  you use the
  162.           default Batch Method.  You'll end up with all
  163.           kinds  of  bozo  things  happening if you use
  164.           either of the other methods, since there will
  165.           be  a  'hole'  in  memory as soon as the menu
  166.           terminates.
  167.  
  168. Now let's add an item to  be  executed  using  the  Shell Method.
  169. Remember, this will load a secondary command shell - and allow us
  170. to give any command  that we  normally could  at the  DOS prompt.
  171. We'll add an option to run Norton's Sysinfo.Com program, with the
  172. password 'This is my new password':
  173.  
  174. WordPerfect 4.1,password
  175. wordperf
  176. Load SideKick
  177. skick
  178. Norton Sysinfo,this is my new password
  179. +sysinfo
  180.  
  181. The + sign tells  Bms.Com to  execute this  item using  the Shell
  182. Method, and  to wait  for a  keypress after the program concludes
  183. (so we have time to read  everything before  the menu  takes over
  184. the screen  again).   Note that you can also use a '&' instead of
  185. the '+', if you don't  want  the  keypress  pause.    See Command
  186. Options, below.
  187.  
  188. Let's  add  one  using  the  Direct  Method  (Bms.Com executes it
  189. WITHOUT loading a secondary command shell).  We'll  add a program
  190. called Setprint.Com,  which resides  in the \utils directory, and
  191. we won't give it a password:
  192.  
  193. WordPerfect 4.1,password
  194. wordperf
  195. Load SideKick
  196. skick
  197. Norton Sysinfo,this is my new password
  198. +sysinfo
  199. Setup Printer
  200. $\utils\setprint.com
  201.  
  202. The $ character tells Bms.Com  to  execute  this  item  using the
  203. Direct Method,  and that  we don't  want to pause after it's done
  204. executing.  Note that  we had  to spell  out the  command name in
  205. detail.   You can  also use a '-' instead of the '$', in case you
  206. do want to pause for a keystroke before the menu takes over.  See
  207. Command Options, below.
  208.  
  209. Let's add one more Direct method item, the ability to exit to DOS
  210. leaving the menu in memory as a shell.  You'll  need to  know the
  211. location of  your command  processor to do this, so I'll use mine
  212. on the assumption that it's a standard setup.
  213.  
  214. WordPerfect 4.1,password
  215. wordperf
  216. Load SideKick
  217. skick
  218. Norton Sysinfo,this is my new password
  219. +sysinfo
  220. Setup Printer
  221. $\utils\setprint.com
  222. Command Shell,dos
  223. $\command.com
  224.  
  225. All we've done here is tell Bms.Com to  load and  run a secondary
  226. copy  of  the  command  shell,  which  is  called Command.com and
  227. located in the root directory, with the password 'dos' protecting
  228. the option.   You  would return to the menu by typing either EXIT
  229. or MENU.  Note: Menu.Bat executes an EXIT  command just  prior to
  230. running  Bms.Com,  to  prevent  multiple layers of command shells
  231. from being built up.  This last option we added is almost totally
  232. useless, but  it gives  the menu  system a  way of opening a 'Dos
  233. Window' just like the real programs do.  Whoopee.
  234.  
  235. Keep alternating lines like this, giving the message you want the
  236. user to  see, an  optional comma  and password, and a second line
  237. containing the command you  want  carried  out  if  that  item is
  238. selected:
  239.  
  240.                Prompt,Password
  241.                Command to be executed
  242.  
  243.  
  244. Remember, using  the Batch file method is the most foolproof, and
  245. is the default unless you add  either  a  &/+  or  a  $/-  to the
  246. command.   Think of  the '&'  and '+'  signs as meaning 'plus the
  247. command shell'.
  248.  
  249. -----------------------------------------------------------
  250. Command Options - Summary (plus one new one)
  251.  
  252. To use the Batch Method:  -   Either use no prefix, or prefix the
  253.                               command with  '='.   The equal sign
  254.                               prefix   is   to   allow   for  the
  255.                               possibility  that  you  may  have a
  256.                               filename  that  begins  with one of
  257.                               the  other  prefix  characters, and
  258.                               want  to  make  sure  it's executed
  259.                               with the batch method.
  260.  
  261. To use the Shell Method:  -   Prefix the command with  '&' if you
  262.                               want the  menu to  take control the
  263.                               instant  the  application  is done.
  264.                               Use  '+'  if  you  want the menu to
  265.                               wait  for  a  keypress   before  it
  266.                               clears the screen and takes over.
  267.  
  268. To use the Direct Method: -   Prefix the  command with '$' for no
  269.                               pause, or '-' for a pause after the
  270.                               item concludes.
  271.  
  272. If you're  confused by  the 'pause'  thing, imagine running DIR/W
  273. with the Shell method  (remember, you  can't run  an internal DOS
  274. command with  the Direct  method).   The DIR  routine would begin
  275. executing,  listing  filenames  on  the  console.    When  it had
  276. completed, it  would terminate.   The split second it terminated,
  277. however, the menu would flash back  onto the  screen.   You would
  278. have roughly  a hundredth  of a  second to ponder the list.  With
  279. the pause option, a  small message  saying 'Press  Any Key' would
  280. appear on  the bottom  line - giving you time to read the results
  281. before returning to the menu.  Try it  both ways!   For  a pause,
  282. use +dir/w.  For no pause, use &dir/w.
  283.  
  284. If you're confused by the equal sign '=' trick, imagine trying to
  285. execute a batch file  called '$Earned.Bat'.   The  initial '$' in
  286. the name  would cause  Bms.Com to execute it as a Direct command,
  287. causing the whole system to go out to lunch in spectacular style.
  288. To force  Bms to  run it  in Batch  mode, prefix it with an equal
  289. sign as in '=$Earned'.   Now  it will  be run  correctly in Batch
  290. mode.
  291.  
  292. IMPORTANT:  Remember  not  to  put  any spaces either between the
  293. prefix and the command or  surrounding  the  comma  delimiter for
  294. passwords.  Also, do not include any blank lines.
  295. ------------------------------------------------------------
  296.  
  297. We could add a few more little touches to this, but it's actually
  298. ready to use now.  Save  the file  (remember that  it must  be in
  299. ASCII text  format), then  run the  Makemenu utility program.  It
  300. will ask you for the name of your Source Text file (whatever name
  301. you used  when you  saved it),  give you  a few simple options to
  302. select from, and then create the two files you need, Menu.Bat and
  303. Menutext.Bms.   The Menu.Bat file is the main batch file you will
  304. always run to start up the menu.
  305.  
  306.  
  307. Additional details
  308.  
  309. Having gotten to this  point, we  can talk  about some additional
  310. details that  you might  find helpful.   If you have any commands
  311. that you want to have executed  every time  the menu  is run, you
  312. can include  them in your Source Text file by putting them at the
  313. top and preceding them with an  asterisk *.   For  example, let's
  314. modify our  example file by including a line to set the path each
  315. time the menu is run:
  316.  
  317. *path=c:\menu;c:\utils;c:\dos
  318. WordPerfect 4.1,password
  319. wordperf
  320. Load SideKick
  321. skick
  322. Norton Sysinfo,this is my new password
  323. +sysinfo
  324. Setup Printer
  325. $\utils\setprint.com
  326. Command Shell,dos
  327. $\command.com
  328.  
  329. The Menu.Bat  file would  then issue  this path  command prior to
  330. running Bms.Com.   You  can add  as many  such lines as you need,
  331. e.g., to run a batch file which prints a message to the  user, to
  332. set the time/date, etc.
  333.  
  334. I suggest  that you  include a  path statement to set the path to
  335. include the directory the menu resides in.   Then, it's  a simple
  336. matter to  have your  application batch  files chain  back to the
  337. menu by adding the line MENU  to the  end of  each one.   It also
  338. makes it  easier for  new users to run the menu - they don't have
  339. to worry about what directory they're in...
  340.  
  341. You can, of course, edit your Source Text  file and  run Makemenu
  342. as many  times as  you like.   It's  also useful to have multiple
  343. Source Text files, and use Makemenu  whenever you  want to change
  344. the menu.  Makemenu is very fast, so it only takes a second.
  345.  
  346.  
  347. Notes on the Makemenu utility program
  348.  
  349. If you  are re-installing the menu in a given directory, Makemenu
  350. will read the previous configuration data and give you the choice
  351. of using  the same  values for  the new  menu.  NOTE:  if you are
  352. currently using one of the earlier  versions of  the menu system,
  353. you may  or may  not receive  the message  that the defaults have
  354. been read -depending on how recent your version  is.   If you do,
  355. choose N)o and install the system manually the first time.
  356.  
  357. If you choose not to use the same values, or if this is the first
  358. install in  the given  directory, Makemenu  will ask  you for the
  359. name of  the Source  Text file  you created, and present you with
  360. some Yes/No questions about how  you  want  the  menu configured.
  361. There are currently only 6 such questions:
  362.  
  363. -    Require Password  for exit  to DOS?  Answer Y)es if you want
  364.      users to be required to enter a valid  password before being
  365.      able  to  exit  to  Dos  by  pressing the <ESC> Key.  If you
  366.      select password protection, you will later be asked to enter
  367.      the  password.    Note  that  whenever  the  menu requires a
  368.      password, a window will  open  and  the  'please  enter your
  369.      password'  prompt  will  be  displayed.  Characters won't be
  370.      echoed to the screen, for obvious reasons.
  371.  
  372. -    Enable Item  Locking option?   If  Y)es, users  will only be
  373.      allowed  three  'guesses'  at  an  item's  password.   Three
  374.      failures will  result in the item no longer being accessible
  375.      until the menu is reloaded  (e.g.,  after  another  item has
  376.      been run  in Batch  mode, or the menu is terminated and then
  377.      restarted).  This is simply to discourage people from trying
  378.      repeated guesses at a password they don't know.  The exit to
  379.      dos option will not be locked out regardless  of the setting
  380.      of this option.
  381.  
  382. -    Return to  Root Directory  on Exit?  Answer Y)es if you want
  383.      to always return to the root when the menu system is exited.
  384.  
  385. -    Beep On Error Condition?  Select  Y)es if  you want  a short
  386.      beep whenever an incorrect key is pressed.
  387.  
  388. -    Show Allocation Size?  Selecting Y)es will cause the menu to
  389.      be displayed with the file allocation  (cluster) size noted.
  390.      You  may  want  to  suppress  this  if it's confusing to new
  391.      users.  It's merely informational...
  392.  
  393. -    Protect Screen Phosphor?  Selecting Y)es will cause the menu
  394.      to shift into a screen-protect mode after about 5 minutes of
  395.      keyboard inactivity.  This mode will prevent burn-in of the
  396.      screen by displaying a 'Press any key' message which jumps to
  397.      random screen locations every few seconds.
  398.  
  399. If you are running  a video  adaptor board  in other  than mode 7
  400. (monochrome), Makemenu  will next  allow you to select attributes
  401. (colors, etc.) for 6  different parts  of the  menu.   The prompt
  402. asking  for  the  attribute  will be displayed with the attribute
  403. which is currently set for that  part.   You can  mess around all
  404. you want,  because there  is an option which automatically resets
  405. all attributes to the default (the  way it  was when  you got the
  406. menu).   Pressing Return at each of the 6 prompts will accept the
  407. current value (that is, the value of the prompt itself).  You can
  408. generate some pretty ugly menus with this feature!
  409.  
  410. Makemenu will  finally inform  you that  it is creating the files
  411. Menu.Bat and Menutext.Bms,  or  will  indicate  an  error  if one
  412. occurs.
  413.  
  414. At this  point, assuming  you didn't  get any error messages, you
  415. can run the Menu.Bat file by  typing MENU  and hitting  the Enter
  416. key.   Test each option, to make sure your individual batch files
  417. are working correctly.  Again, note the suggestion of setting the
  418. path to  include the directory containing the menu system, and of
  419. including the MENU command as the last instruction  in each batch
  420. file so the menu system will be re-started after each application
  421. is run.
  422.  
  423. Obviously, the individual batch files which will be called by the
  424. menu system  must be  correct.   If you  find that  the system is
  425. executing the  wrong item  (that is,  not the  one you selected),
  426. there is  probably a  problem with the batch file associated with
  427. the selected item.
  428.  
  429. TECHNICAL NOTES
  430.  
  431. The utility program Makemenu.Com  reads in  the Source  Text file
  432. (created  by   you),  and   generates  the   files  Menu.Bat  and
  433. Menutext.Bms.  Menu.Bat contains  batch instructions  to test for
  434. the Dos error code returned by Bms.Com (the actual menu program),
  435. and to execute  the  appropriate  command  (usually  the  name of
  436. another batch  file).  Menutext.Bms contains the information used
  437. by Bms.Com to display the menu  screen.   This includes  the menu
  438. prompts  and  corresponding  passwords,  and  various of the menu
  439. options  set  with  the  Makemenu   utility.      This   file  is
  440. superficially encrypted.   The  encryption algorithm is extremely
  441. simple, in the interest of speed.  It's enough to  stop amateurs,
  442. but don't rely on it to provide serious security if there are any
  443. programmers around.
  444.  
  445. Bms.Com and Makemenu.Com  both  set  the  numlock  status  bit to
  446. cursor  mode.    This  is  expected  to  be  found in the byte at
  447. 0000:0417h.  Both programs  also  write  directly  to  video ram,
  448. which is assumed to start at either B000h or B800h.  The programs
  449. test to see which of these addresses to use.  I didn't  feel like
  450. cluttering  up  the  program  with  code to make video ram access
  451. contingent on retrace mode,  so there  will be  some flicker with
  452. CGA  boards.  The Bms.Com program checks the 3 bytes starting at
  453. C000:001Eh for the 'IBM' characters which, by widespread convention,
  454. signal the presence of an EGA card.  If the program has detected the
  455. presence of a color card, and doesn't find that it's an EGA, the date
  456. and time display routines will be set to suppress the seconds display.
  457. This will prevent the menu from writing to the screen every second (and
  458. causing flicker).
  459.  
  460. Bms.Com checks  to see  if the  video mode has changed after each
  461. item has executed.  Hence, if  you want  to use  one of  the menu
  462. selections to  switch monitors,  Bms will return with the correct
  463. screen attributes for the current video mode.
  464.  
  465. For people using a network, the following points should be noted.
  466. The screen  can be manually restored by pressing Alt-S in case an
  467. incoming message blows it away and fails to restore it.   I don't
  468. currently have access to any networked micros, so I haven't tried
  469. writing  code  necessary  to  handle  file  and  record lockouts.
  470. Hence, there may be problems if multiple users happen to load the
  471. menu or execute  the  same  selection  simultaneously.    This is
  472. unlikely, perhaps,  but is certain to happen eventually.  Perhaps
  473. I'll release a 'Network Version' someday...
  474.  
  475. The limit of 240 menu selections is partly imposed by  DOS, which
  476. uses  a single  byte to store error return codes.  The current
  477. 240 value represents 4 pages of 60 items each, which  seemed like
  478. a good  round byteable number.  Note that the system slows down a
  479. bit if you use this many items in  Batch mode.   Batch  files are
  480. inherently  slow,  and  the  Menu.Bat  file  would  have over 240
  481. comparison instructions in it if the menu were  used to capacity.
  482. On an  8 mhz  AT, this  translated into a delay of 3 or 4 seconds
  483. for the  worst case  item.   Most people  shouldn't need anywhere
  484. near this  number of  selections on  a menu.  I considered having
  485. the program simply create the batch file for  each application as
  486. the selection  was made,  but ruled  it out for two reasons:  The
  487. file creation process would  be slower  for a  typical small menu
  488. (120  items  or  less),  and  this  would increase the chances of
  489. conflicts when  run on  a network.   If  speed is  a problem, try
  490. using the  Shell or Direct methods described above, and note that
  491. the first menu items  are  the  last  to  be  tested  for  in the
  492. Menu.Bat file.   Hence,  you should put any Shell or Direct items
  493. early in the menu.
  494.  
  495. NOTE:     If you need  vast  numbers  of  selections,  you should
  496.           simply install multiple menus in different directories.
  497.           A menu option on each would be used to load and execute
  498.           the other menu, by preceeding the MENU command with the
  499.           appropriate path.  Do this using batch mode.
  500.  
  501. One small warning.  Since Makemenu has no way of  knowing a valid
  502. source text file from an invalid one, most any file you name will
  503. be accepted.  This  can  result  in  some  pretty  strange menus,
  504. especially if  a binary file is read in until the first control Z
  505. character!  Make sure you give it a valid file...
  506.  
  507.  
  508. Summary of Key Usage
  509.  
  510. The following lists all key  commands  available  while  the menu
  511. system is running:
  512.  
  513. KEY            EFFECT
  514. ---            ------
  515.  
  516. Enter          Select the item currently highlighted
  517.  
  518. Arrows         Move  highlighted  selection  bar  in direction of
  519.                arrow key.  Wrapping  will occur.
  520.  
  521. PgUp / PgDn    Move to another page of the menu if there are more
  522.                than 60 items.   Flashes page  number indicator on
  523.                status line if not.
  524.  
  525. Home / End     Move to first / last item on current page of menu
  526.  
  527. Esc            Terminate menu system (normal exit to DOS)
  528.  
  529. Alt-S          Re-write the menu screen if some network type task
  530.                intrudes
  531.  
  532. Ctrl-PrtSc     Manually invoke the screen protection routine
  533.  
  534. First
  535. Character
  536. of any item    Moves highlighted bar to that item, or to the next
  537.                item on  the current  page which  begins with that
  538.                character (if multiples are present)
  539.  
  540. Any other
  541. Incorrect
  542. Key            Either a  short beep  or no  response depending on
  543.                setting of beep option.
  544.  
  545.  
  546. Note  that  you  don't  have  to  worry  about the setting of the
  547. NumLock key, as Bms.Com holds this  in cursor  control mode while
  548. running.    Also,  the  screen  protection routine will be called
  549. automatically if there is  no keyboard  activity for  a couple of
  550. minutes.  Pressing any key will restore the menu screen.
  551.  
  552. --------------------------
  553.  
  554. This may  all seem  a bit  complicated on the surface, but anyone
  555. who understands batch files should have  no problem  getting this
  556. system  running.    I  initially  wrote  this  because  there are
  557. numerous new users where  I work,  and I  needed a  system that I
  558. could  quickly  install  and  customize  for  each machine.  It's
  559. worked out  extremely well,  and people  seem to  have no trouble
  560. learning to use it.
  561.  
  562. I THINK  all the  bugs are  out of  this thing, but please let me
  563. know of any I may have  missed.   If you  decide you  like it and
  564. want to  use it,  send me  whatever you think it's worth.  If you
  565. don't  want  to  spend  any  money,  I'll  settle  for  a  letter
  566. containing rave reviews...
  567.  
  568.  
  569. Bob Trevithick
  570. 409 Woodhill Apts
  571. Newark, New York  14513
  572.  
  573. GEnie address:  R.TREVITHICK
  574.  
  575. Days       (315) 331-1700 Ext. 2082
  576. Evenings   (351) 331-5266
  577.  
  578.