home *** CD-ROM | disk | FTP | other *** search
/ Mega CD-ROM 1 / megacd_rom_1.zip / megacd_rom_1 / MENU / PCMS130.ZIP / PCMENU.DOC < prev    next >
Text File  |  1990-07-22  |  36KB  |  819 lines

  1. Docs for PCMENU - Personal Computer Menu System
  2. Copyright (c) 1989,1990  Bob Trevithick and Rick Kiss
  3. Sun  07-22-1990
  4.  
  5. ----------PERSONAL COMPUTER MENU SYSTEM----------
  6.  
  7.                    VERSION 1.30
  8.  
  9.  
  10. OVERVIEW
  11. ========
  12. PCMENU is for people who don't want lots of bells and whistles, and who need
  13. something small, fast, and very easy to use and modify.  PCMENU can run any
  14. and all applications on your computer, with or without password protection,
  15. and steals NO memory (and very little disk space) from your applications.  It
  16. requires a 'true' PC/AT/PS2 compatible system.
  17.  
  18. Many (most) of the menus available these days attempt to be all-purpose DOS
  19. 'shells' in addition to being menu systems.  PCMENU has no such aspirations.
  20. It is for people who want a menu, period.  It is specifically tailored for
  21. those who administer large numbers of PC's - but is so simple to use that even
  22. beginners seem to like it.
  23.  
  24. To set up the system, you will create a simple ASCII text file which contains
  25. the menu choices to be displayed to the user, and all of the batch
  26. instructions needed to execute each choice.  Then you'll type "PCMENU" to
  27. start the menu system.  If the file you create (or want to use) is named
  28. something other than "DEFAULT.PCM", then you'll follow the "PCMENU" command
  29. with the name of the file.  That's all there is to it.
  30.  
  31. One immediate advantage is that the systems under your control can now be
  32. purged of all those trivial little batch files that are such a nightmare to
  33. keep track of.  Each computer can have ONE easy to read and understand menu
  34. text file - or, optionally, a number of logically grouped functions in a
  35. handful of these text files (which will be loaded as sub-menus).  This can
  36. result in significant disk space savings, as well, given the large cluster
  37. size of many drives.
  38.  
  39.  
  40.  
  41. INITIAL SETUP
  42. =============
  43. This is an extremely easy system to set up.  All you need to do is copy the
  44. distributed files to the directory of your choice, edit the DEFAULT.PCM file,
  45. and you're set to go.  If the directory you picked is in your path, and you
  46. use the MAKEMENU command described below, you will be able to start the menu
  47. from anywhere in the system.  I just install it in the \UTILS directory of the
  48. machines I work with, which is in the path and which includes all of the
  49. things I use routinely.
  50.  
  51. If you are using a network, there are special notes which you should read
  52. under 'NETWORK SUPPORT and NOTES', below.
  53.  
  54. If you're using an environment such as DESQVIEW or WINDOWS, or have a CGA
  55. which displays 'snow' with direct video access, see the notes below on forcing
  56. the system to 'USE ONLY LEGAL BIOS VIDEO CALLS'.
  57.  
  58. NOTE that although the executable program file is PCMS.COM, you will start the
  59. menu by running the PCMENU.BAT batch file which calls PCMS and then processes
  60. it's errorlevel return code in the standard way for menus such as this.
  61. Starting the menu by executing PCMS directly will cause the menu to display
  62. normally, but none of your selections will actually be executed.  A basic
  63. PCMENU.BAT file is included, but you will want to run the MAKEMENU program (or
  64. edit the file yourself) to create one which is customized for your machine.
  65. There is a message in the supplied PCMENU.BAT to remind you to do this.
  66.  
  67. MAKEMENU.COM is a small program which will create a slightly optimized version
  68. of PCMENU.BAT for you, checking the DOS version to see if the '@echo off'
  69. command is supported, and inserting the drive and directory change commands in
  70. the proper places.  Simply move to the drive and directory where you'll be
  71. installing the menu, then issue the command:
  72.  
  73.         MAKEMENU
  74.  
  75.  
  76. Once the system is installed, the only files needed to run it will be
  77. PCMS.COM, PCMENU.BAT, and whatever menu text file(s) you created (presumably
  78. DEFAULT.PCM will be one of them.)  All other distributed files can be deleted,
  79. as they are not used by the menu system.  Optionally, you can also use
  80. PCMSPASS.COM to install administrator passwords into the PCMS.COM program in
  81. a lightly encrypted format.
  82.  
  83.  
  84.  
  85. CREATING THE MENU FILE(S)
  86. =========================
  87. The text (menu) file containing the names and commands is easy to create. Any
  88. text editor capable of creating standard 7-bit ASCII text files can be used.
  89. Selecting the name "DEFAULT.PCM" for your main (or only) menu file will allow
  90. the menu, as noted above, to be started with just the "PCMENU" command.
  91.  
  92. Any entry (with a few exceptions, below) which starts in the first column is
  93. an item NAME - that is, it's what the user will see as one of the selection
  94. choices.  A name can be up to 21 characters long.  Any text which begins in
  95. any other column (indented by a space or tab) is a COMMAND, and is associated
  96. with the last NAME above it.  These can be any valid batch file instruction,
  97. and each can be up to 127 characters long.  You can have as many commands as
  98. you want for any given item name.
  99.  
  100. Here's an example of a couple of typical entries:
  101.  
  102. --------------------------------
  103. Run WordStar
  104.         d:
  105.         cd\ws
  106.         ws
  107.  
  108. dBase III Plus
  109.         cd\db
  110.         dbase
  111. --------------------------------
  112.  
  113. There will be only two items displayed when the menu above is run.  The rest
  114. of the lines (the indented ones) will be written to a temporary batch file if
  115. their parent item name is chosen.  Neither of the items above will return to
  116. the menu when completed (see below for that).
  117.  
  118. Note that you may separate items in your file with blank lines, or insert
  119. comments by preceeding them with a semicolon in column one, and that ANY valid
  120. batch file command can be used (including branching to labels).
  121.  
  122. The program will look for the menu file DEFAULT.PCM unless you specify another
  123. name on the command line (note the %1 parameter in PCMENU.BAT, which allows
  124. the PCMENU command to load any text file you want).  A couple of sample menu
  125. files are included, but they don't do anything significant. The batch file
  126. which is created and executed when an item is selected is normally called
  127. PCM_EXEC.BAT, but can also be named via an environment variable for network
  128. users (see below under 'NETWORK SUPPORT and NOTES'.)
  129.  
  130. While a menu is being displayed, the cursor keys move the highlite bar.
  131. Pressing <Enter> will execute the highlited selection.  Pressing <Esc> will
  132. exit the menu.
  133.  
  134.  
  135. ERROR MESSAGES
  136. ==============
  137. The four types of errors most likely to occur are those reported by
  138. PCMENU.BAT, and include errors reading and writing files, having too many menu
  139. items in a given menu text file, and using invalid 'dot' commands.  The first
  140. problem is usually due to mis-spelling a menu file name on the command line,
  141. or having forgotten to run MAKEMENU to customize your PCMENU.BAT file.  The
  142. second is likely due to a disk-full condition, but will also occur if you set
  143. PCM_EXEC.BAT (or the file named in the environment variable PCM, described
  144. below) to read-only attribute. The invalid dot commands problem can be a typo,
  145. or an attempt to use a command no longer supported such as the .a= command.
  146. The last problem occurs when you attempt to list more than 66 items in a
  147. single menu text file.  By this we mean 66 NAMES which are displayed to the
  148. user.  You can have ANY number of COMMANDS listed under each NAME (I've tested
  149. it with files containing 1300 command lines for a single item.)  If you need
  150. more than 66 items, simply chain to another menu file (described below.)
  151.  
  152.  
  153. That's all you need to know to get started.  Read on when you're ready for
  154. some simple but handy options.
  155.  
  156.  
  157.  
  158. ---OPTIONS, BELLS, WHISTLES:
  159.  
  160. AUTOMATIC RETURN TO MENU WHEN SELECTED ITEM CONCLUDES
  161. =====================================================
  162. The first bell (whistle?) will cause an automatic return to the menu after an
  163. item has finished executing.  Using just a '/' character as the last command
  164. for an item will cause the batch file to be created with the necessary return
  165. commands added at the end.  You can think of this as a way of telling PCMENU
  166. to "do whatever you have to do to get the menu running again after this item
  167. finishes executing."  For example, if you're currently logged to the E:\UTILS
  168. directory, you invoked the menu by typing "PCMENU MENU1" to use the MENU1 text
  169. file, and you selected the middle item on the top row which looks like this:
  170.  
  171. ----------------------------
  172. TEST ITEM
  173.         c:
  174.         cd\finance
  175.         dbase finmenu
  176.         /
  177. ----------------------------
  178.  
  179. The batch file which would be created would contain the following commands:
  180.  
  181. ----------------------------
  182. c:
  183. cd\finance
  184. dbase finmenu
  185. E:
  186. cd\UTILS
  187. pcmenu MENU1 +1
  188. ----------------------------
  189.         
  190. NOTE that this option will only work if you start the system from a batch file
  191. named PCMENU.BAT, as the program has no knowledge of the command line prior to
  192. it's own invocation.
  193.  
  194. The +1 in the above example shows one use of the '+' option described below.
  195. This option tells the menu to move to a specific menu item as soon as the menu
  196. is displayed on the screen. By doing this, the user is returned to the menu
  197. with the highlight bar and mouse cursor positioned as they were when the
  198. selection was made.  Note that if you prefer the old system of always
  199. returning to the menu with the first item highlighted, you can use '/+0'
  200. instead of just '/'.
  201.  
  202. In addition to the default '+' value which returns to the same item, you can
  203. optionally include your own custom value immediately after the '/' character
  204. in your menu file.
  205.  
  206. ----------------------------
  207. TEST ITEM
  208.         c:
  209.         cd\finance
  210.         dbase finmenu
  211.         /+2
  212. ----------------------------
  213.  
  214. This will cause the menu to reappear, after executing the selected item, with
  215. the top right item (i.e., the 3rd one) highlighted.  Using /+0 will put the
  216. highlight on the first item.
  217.  
  218. You can use this feature to guide a person through a series of menus or items,
  219. making a guess about which item they are likely to want next.  The first item
  220. is number zero, so the +2 means the third item.  Or, think of it as meaning
  221. 'add 2 to the initial item'.  Also note that the menu counts items from left
  222. to right - just use the right arrow key to count them in the order the menu
  223. system does.
  224.  
  225. The first two items in the distributed .PCM files use this approach to show
  226. how to do it.  Selecting 'Utilities Menu' places you on a certain item in that
  227. menu.  If you run that item, you return to the option which allows exit from
  228. the menu.  Similarly, selecting 'Aphrodisiac Research' will cause the next
  229. default item to be 'Incident Reporting', and if that is run the next item will
  230. be the 'Exit' from the menu.  If there are certain sequences that you use
  231. routinely, these '+' options can make them easier and smoother.
  232.  
  233.  
  234. LOAD ANOTHER MENU TEXT FILE
  235. ===========================
  236. There is a way of loading another menu text file directly to the display,
  237. which provides a very fast method of chaining between multiple menus.  If a
  238. command consists of a '<' character immediately followed by a filespec, the
  239. file specified will be loaded just as if it's name had been specified on the
  240. command line.  For example:
  241.  
  242. --------------------------------
  243. UTILITY MENU
  244.     <utility.pcm
  245. --------------------------------
  246.  
  247. This will load the file "utility.pcm", and the items defined in that file will
  248. immediately be displayed for selection.  Full pathnames are supported.
  249.  
  250. This command also supports the new '+' ability to index directly to a desired
  251. option (see discussion of '/' character above).  You can follow the filename
  252. with a plus sign and the number of the item you want.  For example,
  253.  
  254.         <utility.pcm +2
  255.  
  256. will put the highlight bar on the righthand top menu item.  Remember that the
  257. first item is item number 0, so +2 means the third item.  This is a handy
  258. option for constructing menu systems which anticipate the user's choices.  The
  259. demo menu goes to a specific item using this command.
  260.  
  261.  
  262. PASSWORDS
  263. =========
  264. You can include password protection with any item.  You do this by following
  265. the item name with a comma and the password.  For example:
  266.  
  267. ----------------------------
  268. Exit to DOS,password
  269. ----------------------------
  270.  
  271. Note that no space was included surrounding the comma.  If you wanted to get
  272. tricky, you might require the user to press the space bar twice before
  273. entering the password:
  274.  
  275. ----------------------------
  276. Exit to Dos,  password
  277. ----------------------------
  278.  
  279. Passwords can be up to 21 characters long (the same max length as an item
  280. name).  They can also be a phrase with embedded white space as long as the max
  281. length is not exceeded.  Case is not significant.
  282.  
  283.  
  284. DEFAULT PASSWORDS
  285. =================
  286. A related option allows setting one or more default passwords, which will
  287. protect the menu items subsequently defined in the text file.  This is done by
  288. placing a '.p=' in the far left column, immediately followed by the password.
  289. Items which have been entered with a comma and their own password will still
  290. be protected by that explicitly defined word, and items which are followed by
  291. only a comma will NOT be protected by any word (i.e., they are then exempt
  292. from the current default password).  A lone '.p=', with no word specified,
  293. will turn off default password protection for subsequent items.
  294.  
  295. For example, examine the following text file fragment:
  296.  
  297. --------------------------------------
  298. .p=aardvark
  299. Item One
  300.         d:
  301.         cd\item1
  302.         item1
  303.         /
  304. Item Two
  305.         cd\item2
  306.         item2
  307.         /
  308. Item Three,password3
  309.         cd\item3
  310.         item3
  311.         /
  312. Item Four
  313.         cd\item4
  314.         item4
  315.         /
  316. .p=hello world
  317. Item Five
  318.         cd\item5
  319.         item5
  320.         /
  321. Item Six,
  322.         cd\item6
  323.         item6
  324.         /
  325. Item Seven
  326.         cd\item7
  327.         item7
  328.         /
  329. .p=
  330. Item Eight
  331.         cd\item8
  332.         item8
  333.         /
  334. Item Nine
  335.         cd\item9
  336.         item9
  337.         /
  338. --------------------------------------
  339.  
  340. The first two items above would be protected by the work "aardvark", but the
  341. third item would have it's own password set to "password3".  The fourth item
  342. would use the current default of "aardvark" again, but then a new default
  343. password is set with the ".p=hello world" statement.  Items number 5 and 7 are
  344. protected by this new phrase, but item number 6 is exempt because of the
  345. trailing comma.  The '.p=' all by itself prior to the eighth item turns off
  346. the default password feature, so the remaining items (8 and 9) have NO
  347. password protection at all.
  348.  
  349.  
  350. ADMINISTRATOR PASSWORD 
  351. ====================== 
  352. Yet another password option allows setting an 'administrator' password, which
  353. can be used whenever the program requests a password.  This USED to be done by
  354. putting '.a=' in the far left column, and immediately followed by the
  355. password.  We decided this was not sufficiently secure, so wrote a utility
  356. program (PCMSPASS.COM) which inserts the admin password directly into the PCMS
  357. program in a lightly encrypted format.  With PCMS.COM in the current
  358. directory, just type PCMSPASS new_password old_password, where the
  359. new_password is any phrase up to 21 characters long and the old_password is
  360. the one which is currently set (none if PCMSPASS has never been used).  Case
  361. is not significant.  Enclose the password in quotes if you want embedded
  362. whitespace.  For example:
  363.  
  364.         PCMSPASS bobt oldword
  365.             or
  366.         PCMSPASS "new password" oldword
  367.  
  368. Assuming your current administrator password is 'oldword', this will cause the
  369. phrase 'bobt' (or 'new password' in the 2nd example) to be accepted in
  370. addition to any other password which might be defined for a given item.  It
  371. will allow access to ANY item which is password protected.  It's handy for
  372. people who have to maintain multiple machines - and who don't want to memorize
  373. eighty or ninety routinely changing passwords.
  374.  
  375. This 'backdoor' password is null when PCMS.COM is first extracted from the
  376. .ZIP file.  Hence, to set it the first time you will not use the old_password.
  377.  
  378. Obviously you want to keep PCMSPASS on floppy, and not give it out to your end
  379. users...
  380.  
  381.  
  382. DISABLE ESCAPE KEY
  383. ==================
  384. Another security related option involves the ability to turn off the <Esc>ape
  385. key as a means of exit.  Including '.e=0' in the first column will accomplish
  386. this.  For example:
  387.  
  388. --------------------------------
  389. .e=0
  390.  
  391. Run WordStar,bob
  392.         d:
  393.         cd\ws
  394.         ws
  395.         /
  396.  
  397. Exit to System,sys
  398.  
  399. dBase III Plus,norm
  400.         cd\db
  401.         dbase
  402.         /
  403. --------------------------------
  404.  
  405. Note that you should provide some other means of exit if you turn off the
  406. Escape key.  The 'Exit to System' option above does this by not defining any
  407. commands to be executed.  As long as the user knows the "sys" password, this
  408. item will allow exit to DOS.
  409.  
  410.  
  411. SETTING A MENU TITLE
  412. ====================
  413. You can optionally have a short title (21 chars max, same as item name and
  414. password) displayed at the top of the screen, which can be handy if you're
  415. using multiple menus.  Here's how you would set the title of your utilities
  416. menu:
  417.  
  418. --------------------------------
  419. .t=UTILITIES MENU
  420. --------------------------------
  421.  
  422.  
  423. TIMED SCREEN PROTECTION
  424. =======================
  425. Three minutes (by default) of no keyboard activity will result in a screen
  426. save routine being invoked.  The screen will clear, and a small message saying
  427. 'Hit any key for menu' will move slowly down the screen.  Users report liking
  428. this kind of message, as they tend otherwise to assume the machine is dead or
  429. the monitor turned down.  The next keystroke or mouse activity will restore
  430. the menu display.
  431.  
  432. You can set the Screen-protect delay by including '.s=' followed immediately
  433. by the number of seconds delay you want.  Using 0, or any value less than 5,
  434. will disable the screen protect feature entirely.  For example, the value 300
  435. will set the delay to 5 minutes (300 seconds), as shown below:
  436.  
  437. --------------------------------
  438. .s=300
  439. --------------------------------
  440.  
  441. As an aside, this screen protection is very important for the old monochrome
  442. monitors, which tended to 'burn in' a stationary image.  I'm not sure whether
  443. the newer color monitors need this, but it can't hurt...
  444.  
  445.  
  446. USE ONLY LEGAL BIOS VIDEO CALLS
  447. ===============================
  448. By default, the system writes directly to video ram for all screen output. If
  449. your system doesn't permit this, or if you're running under an environment
  450. where this is inconvenient, you can force the system to use only legal BIOS
  451. calls by including '.b=1' in the menu text files.  This is an option you
  452. should only use if you have to, as it will slow down the display (most
  453. noteably on slower machines).  If would be worth using this option if, for
  454. example, you're running DesQview or Windows - which would have to routinely
  455. de-window the environment otherwise.  This will also solve 'snow' problems if
  456. you have any old CGA adaptors in use.
  457.  
  458.  
  459. SINGLE KEY SELECTION
  460. ====================
  461. While the menu is being displayed, the highlite bar is normally moved with the
  462. cursor control keys.  You can also move directly to an item by pressing the
  463. character key which corresponds to the first letter of the item name. If there
  464. are multiples, pressing the same key will move to the next item beginning with
  465. that character.
  466.  
  467.  
  468. MOUSE SUPPORT
  469. =============
  470. If you have a mouse installed, PCMENU will activate a mouse cursor and will
  471. move the highlight bar to wherever the mouse cursor is when you press any
  472. mouse button. If the highlight bar is already on this item, the mouse button
  473. will act like the <ENTER> key and select the item.  NOTE that the mouse cursor
  474. will follow the highlight bar if the bar is moved via the keyboard.
  475.  
  476. A small program called MPAUSE.COM is also included, and simulates the DOS
  477. 'pause' command -- allowing mouse button hits as well as key hits.  It allows
  478. you to include a pause during the execution of a menu selection, while
  479. maintaining the mouse 'feel' of the menu.  This is optional, of course, and
  480. can be used independently of PCMENU if you wish. You use it by making sure
  481. it's in the path, then substituting the MPAUSE command anyplace you'd normally
  482. use a PAUSE command.
  483.  
  484.  
  485. NETWORK SUPPORT and NOTES
  486. =========================
  487.  
  488. Unique output files for networks
  489. --------------------------------
  490. The batch file created when a selection is made is normally "PCM_EXEC.BAT". If
  491. you want multiple users to be able to each write to their own files, you can
  492. set the DOS environment to include a variable "PCM" which will control the
  493. primary name of this file (the '.bat' extent will be added for you - don't
  494. include this yourself.)  Each user's autoexec can set this variable on bootup.
  495. Note that all users on the system can share the "PCMENU.BAT" file, and the
  496. various menu text files in a read-only mode (see below for more on this).
  497.  
  498. Unique menu files for network users
  499. -----------------------------------
  500. Since we already have the "PCM" environment variable defined (see above), we
  501. can also use this to specify the name of the menu file (normally we won't want
  502. to do this, as users can share the menu files without any conflicts.) When we
  503. _do_ need to give them distinct menus, however, we can use this "PCM"
  504. variable. Let's say for example that user Bob needs a unique menu.  Our
  505. autoexec file for Bob might include these lines:
  506.  
  507.         ----------------
  508.         set PCM=BOB
  509.         pcmenu %PCM%.PCM
  510.         ----------------
  511.  
  512. The pcmenu.bat file would then be handed the filename "BOB.PCM" as the menu
  513. file to be used.  The users on the network could share sub-menus, such as a
  514. 'utilities menu', by having a 'Return to master menu' item defined in the
  515. shared sub-menu as follows:
  516.  
  517.         ------------------------
  518.         Return to master menu
  519.                 pcmenu %PCM%.PCM
  520.         ------------------------
  521.  
  522. By using this approach, each user would return to his or her own master menu
  523. when they were through sharing the common utilities menu.
  524.  
  525.  
  526. File sharing modes for networks
  527. -------------------------------
  528. Menu users hold the menu text file they're currently using open in a shared
  529. read-only mode.  This avoids problems caused by making a selection from a menu
  530. whose file has changed since the menu was displayed, as any attempt to modify
  531. the file will (or should) result in a sharing violation error.
  532.  
  533.  
  534. Name changes for Novell (tm) networks
  535. -------------------------------------
  536. The original versions of PCMENU used to use the name "MENU.BAT" instead of
  537. "PCMENU.BAT", but this caused a conflict with Novell systems which have their
  538. own MENU command.  Hence, the "PCMENU.COM" file also had to be renamed, and is
  539. now "PCMS.COM".
  540.  
  541.  
  542. COLORS and KEYBOARD LOCK STATE
  543. ==============================
  544. The system defaults to using the screen colors in effect when it's started,
  545. and creates a reverse video attribute by simply flipping the color bits. The
  546. screen is cleared to the original colors on exit and when an item is chosen.
  547. The program also saves the original keyboard lock state (caps, num, etc.),
  548. then holds all of these OFF while it is running.  This makes it certain that
  549. the cursor arrow keys will always work, and prevents users from rebooting or
  550. hotkeying into most TSR's from within the menu.  The original keyboard locks
  551. are restored on exit and when any item is selected.
  552.  
  553. There are three options which will allow you to control the colors and
  554. keyboard state directly.  Including '.c=' immediately followed by a base 10
  555. numeric value will set the menu colors to that value.  If you include 2 values
  556. seperated by a comma, you can set both the base color and the color to be used
  557. for the hilite selection bar.  Using '.k=0' will prevent PCMENU from restoring
  558. the original keyboard lock state on exit.  This is handy for dealing with
  559. IBM's latest little joke, which takes the form of forcing numlock on when
  560. booting. The '.k=0' option will ensure that the locks will all be off after
  561. using the menu.  Using '.l=0' tells the program NOT to do anything to the
  562. keyboard lock state - i.e., the keys are not held in the off state while the
  563. program is running.  This means that control-alt-del reboots are possible, and
  564. invoking TSR's via 'Hot-Keys' is possible.
  565.  
  566. For example, the following will set the screen colors to black on white
  567. reverse video, allow the keys to be held off while running, and prevent the
  568. original keyboard lock state from being restored:
  569.  
  570. --------------------------------
  571. .c=112
  572. .k=0
  573. --------------------------------
  574.  
  575. The next example will set the colors to dim white (gray?), and use bright
  576. white for the selection bar.  Note that it won't actually be a 'bar' this way,
  577. merely a different color text.
  578.  
  579. --------------------------------
  580. .c=7,15
  581. --------------------------------
  582.  
  583. The program "PCMCOLOR.COM" is now included to assist you in selecting values
  584. to use with these '.c=' commands.  Just type 'PCMCOLOR' at the DOS prompt to
  585. see the values and the associated screen colors.  The program will show you a
  586. menu and allow you to interactively set the colors with various of the cursor
  587. keys.  The PgUp and PgDn keys will cycle through the colors, allowing the
  588. system to choose the default hi-light bar color on it's own.  The Up and Down
  589. Arrow keys will change just the normal item colors, and the Right and Left
  590. Arrow keys will change just the hi-lighted item color.  The End key will set
  591. the hi-lighted color to the default based on the current normal item color,
  592. and the Home key will restore both colors to the startup value.
  593.  
  594. The color setting 'dot command' which you would include in your menu text file
  595. to acheive the displayed colors is shown in exactly the format it should be
  596. entered (except, of course, that it would be in the far left column of the
  597. text file). Pressing the Escape key will abort the program. The easiest way to
  598. explore the color possibilities is to simply use the PgUp and PgDn keys to
  599. find a basic setting that looks ok, then use the Right and Left Arrow keys to
  600. fine-tune the hi-light bar to whatever looks best.
  601.  
  602.  
  603.  
  604. *****NOTES, and points to remember:
  605.  
  606. -You start the menu with the PCMENU command, and not by invoking PCMS.COM
  607.  directly.
  608.  
  609. -The various 'dot' commands don't really need to be at the top of the file,
  610.  but putting them there will make the file much more legible.  The only one
  611.  which remains location dependent is the default password (.p=) command, for
  612.  obvious reasons.
  613.  
  614. -Spaces are NOT stripped off the passwords, so make certain you set these to
  615.  exactly what you want them to be.
  616.  
  617. -You can include an 'Exit' option, as I did in the example file, by simply not
  618.  following the item name with any commands.  This will cause an empty (0 byte)
  619.  batch file to be written, and control will go to DOS.  You could also put
  620.  something like "echo Use PCMENU command to re-start the menu" as the only
  621.  command for the item.  The normal exit is to simply press the <ESC> key,
  622.  unless this has been disabled with a '.e=0' command in your menu text file.
  623.  
  624. -You should run the MAKEMENU.COM program (described above) to create a
  625.  customized PCMENU.BAT which will change to the proper drive and directory
  626.  prior to executing PCMS.COM.  Installing the menu system in a directory which
  627.  is in the path will allow users to restart the menu by simply typing "PCMENU"
  628.  from anywhere in the system.
  629.  
  630. -I tried to make the movement of the highlite bar as intuitive as I could,
  631.  allowing the up, down, right and left arrow keys to wrap in a way that seems
  632.  logical.  Don't forget that pressing the first letter of the item name you
  633.  want will take you directly to it.
  634.  
  635. -For people NOT on a Novell network and who have been using PCMENU for some
  636.  time, you might want to create a little batch file called MENU.BAT which
  637.  contains just the line
  638.  
  639.                 PCMENU %1 %2
  640.  
  641.  This will allow you to convert to the new version without having to train all
  642.  of your users to type 'PCMENU' instead of 'MENU'!  Note that the %1 and %2
  643.  are so the optional filespec and '+' value can be passed to the system.
  644.  
  645.  
  646.  
  647. SUMMARY OF SPECIAL OPTIONS:
  648. ===========================
  649.  
  650. *----------------------*
  651. | Command line options |
  652. *----------------------*
  653. -The name of a menu text file can follow the PCMENU command to override the
  654. automatic use of DEFAULT.PCM.
  655.  
  656. -A plus sign + followed by a number can be used to tell the menu to put the
  657. highlight bar on a specific menu item on startup.
  658.  
  659. -Both of the above options can be used together, and in any order.
  660.  
  661. *-------------*
  662. | Environment |
  663. *-------------*
  664. -Environment variable "PCM" can be used to name the output batch file to be
  665.  created when selections are made (needed for network use), and can also be
  666.  used in other ways such as to specify a unique menu file for each user.
  667.  
  668. *-----------------*
  669. | Command options |
  670. *-----------------*
  671. -A single '/' character as the last command for a given item will cause the
  672.  batch file to be written with commands for re-starting the menu and for
  673.  'remembering' the item the cursor was on when the selection was made.
  674.  
  675. -A '<' character immediately followed by a filespec can be used as a command.
  676.  It will load another menu text file directly into the menu system display.
  677.  This is the fastest method of chaining multiple menus together, and a good
  678.  way of bringing up quick sub-menus.
  679.  
  680. -Both of the above options can also be followed by a '+' sign and a number to
  681.  allow moving directly to a specific item as soon as the menu is displayed.
  682.  See above for details.
  683.  
  684. *----------------------*
  685. | Dot Command Settings |
  686. *----------------------*
  687. -Disable ESC key as exit key:   .e=0
  688. -Default Password:              .p=text
  689. -Screen protection delay:       .s=n
  690. -Use only legal BIOS video:     .b=1
  691. -Don't change keyboard Locks:   .l=0
  692. -Leave keyboard locks off:      .k=0
  693. -Title for menu:                .t=text
  694. -Colors to be used:             .c=n   OR   .c=n1,n2
  695. -Set item password:             item name,password
  696.  
  697. NOTE that case is not significant:  '.P=' is the same as '.p=', so use
  698. whichever you find most legible.
  699.  
  700.  
  701. SUMMARY OF KEY MAPPING:
  702. =======================
  703.  
  704. Action                          Key(s)
  705. ======                          ======
  706.  
  707. select highlited item           Enter
  708. ---
  709. exit                            ESCape key (if not disabled)
  710. ---
  711. move to specific item           first char of Item Name
  712. ---
  713. move down list                  Down Arrow
  714. move up list                    Up Arrow
  715. move right                      Right Arrow
  716. move left                       Left Arrow
  717. ---
  718. left of row                     Home
  719. right of row                    End
  720. top of column                   PgUp
  721. bottom of column                PgDn
  722.  
  723.  
  724.  
  725. TECHNICAL NOTES & MISCELLANY
  726. ============================
  727. You can skip this part if you aren't interested in the technical aspects of
  728. the system, but you may want to come back to it later - especially if you have
  729. any problems getting it running.
  730.  
  731. -PCMS.COM writes directly to the video screen buffer for increased display
  732.  speed, uses many BIOS level calls, and directly manipulates data in the BIOS
  733.  data segment.  Hence the need for PC/AT/PS2 compatibility.  A new option (as
  734.  of the 2/19/89 release) allows forcing the system to write to the screen via
  735.  legal BIOS routines, however, so this constraint is now lifted somewhat.
  736.  
  737. -The system normally holds all of the 'shift' keys (Shift, Ctrl, Alt, Scroll,
  738.  Caps, and NumLock) in an OFF state while displaying a menu, then restores
  739.  them to their previous setting on exit.  This has a number of advantages for
  740.  this application:
  741.  
  742.     -most TSR's cannot be invoked from menu (more security).
  743.     -cannot reboot via Ctrl-Alt-Del (more security).
  744.     -arrow keys will always work (NumLock cannot accidently be set).
  745.  
  746.  
  747. -I'm not sure at what point DOS gained the ability to reference environment
  748.  variables in batch files by enclosing them in '%' signs.  If this is reported
  749.  by your version of DOS as an error, simply remove the offending line from the
  750.  PCMENU.BAT file.  It's only there for network support, and people using old
  751.  versions of DOS aren't likely to be on a network.  NOTE however that if you
  752.  do remove this line, you WON'T be able to set the name of the output file by
  753.  using the "PCM" environment variable.
  754.  
  755. -MAKEMENU.COM is a simple little program which does the following.  1) It
  756.  checks the DOS version number to see if the "@echo off" command is supported.
  757.  If it's DOS version 3.30 or higher, it includes the '@' sign, otherwise it
  758.  suppresses it.  2) It checks the logged drive and directory, and inserts
  759.  commands to automatically change to these prior to running the menu. 3) It
  760.  dumps out the remainder of the text for the batch file, verbatim.
  761.  
  762. -MPAUSE.COM is a routine to duplicate the DOS 'pause' command, but also allows
  763. mouse button hits.  If a mouse is detected, MPAUSE's prompt will change to
  764. include a reference to it.
  765.  
  766. -PCMSPASS.COM is another simple little program which accepts a password on the
  767. command line, encrypts it, and writes it into the PCMS.COM file as the
  768. administrator password (which can be used whenever a password is required).
  769.  
  770. -PCMCOLOR.COM is a trivial program which displays a phony menu and allows you
  771.  to experiment with different color combinations.  It will show you the ".c="
  772.  command needed to reproduce the combination shown.
  773.  
  774. -PCMS.COM returns 'errorlevel' codes to DOS, which are used by the PCMENU.BAT
  775.  file to determine what action it should take upon regaining control.  The
  776.  normal return code is 255, which means that the user selected an item and
  777.  that the batch file needed to run the item was created successfully.  The
  778.  name of this batch file will be either the contents of the PCM environment
  779.  variable with ".BAT" added as an extent, or "PCM_EXEC.BAT", which is the
  780.  default. PCMENU.BAT issues both commands, starting with the environment
  781.  variable name. If this variable is set, then control will not return to
  782.  PCMENU.BAT and the other command will never be executed.  If it isn't set,
  783.  the PCM_EXEC.BAT file will be executed instead.
  784.  
  785. -PCMS.COM returns a 0 value if the user hit the Escape key to exit the menu,
  786.  and this tells PCMENU.BAT that it shouldn't execute the batch file this time.
  787.  Any other value (besides the normal 255) indicates that an error occurred,
  788.  and PCMENU.BAT then branches to it's simplistic error reporting section.  I
  789.  kept this small, knowing how slow batch files are - and figuring that the
  790.  three errors covered would be enough to diagnose most any problem likely to
  791.  occur.
  792.  
  793. -PCMS.COM opens the menu text files in read-only mode, and keeps the file
  794.  open. This has the virtue of preventing anyone else from accessing the file
  795.  in a 'write' mode while the system is in use.  Hence, the menu text files can
  796.  only be modified when no users are accessing them.
  797.  
  798. -"NOVELL", "DESQVIEW" and "WINDOWS" are registered trademarks of their
  799.  respective vendors.
  800.  
  801. -We suspended our 'Aphrodesiac Research' program years ago (as soon as we
  802.  found one that worked).
  803.  
  804. *--------------------------*---------------------------------*
  805. | Bob Trevithick           | Voice.......315-331-1700 (2453) |
  806. | Information Services     | PC Data............315-331-4899 |
  807. | N.Y.S. OMR               | OMR Network....NEWARK::TREVITRF |
  808. | Newark Office            | GEnie..............R.TREVITHICK |
  809. | 703 East Maple Ave.      | CompuServe...........73567,2675 |
  810. | Newark, New York  14513  | MCI Mail...RTrevithick 394-8198 |
  811. *--------------------------*---------------------------------*
  812.  
  813. *---------------------------------*
  814. | Rick Kiss                       |
  815. | O.D. Heck Developmental Center  |
  816. | Daytime Voice:  (518) 370-7529  |
  817. | GEnie address:  R.W.KISS        |
  818. *---------------------------------*
  819.