Menu 25 November 1982 Menu is a general purpose menu processor for CP/M. It can join programs and systems written in various languages together into a single coherent menu-driven structure. Menu is invoked from CP/M by typing: menu where is expected to be a file whose file name ends in the extension '.MNU'. The '.MNU' extension does not need to be given. The must consist of lines describing a screen to be displayed, a set of single-character responses to that screen, and a command line for each response. The associated command line is executed by Menu when the user has made a permissible response. The menu file consists of two main sections. First, the screen to be displayed. Second, the allowed responses to the menu and CP/M command lines for these responses. The first lines in the menu file are simply the screen to be displayed. The first line will usually be a series of characters to clear the screen. The next lines are an image of the menu screen. These image lines are followed by a single period ('.') on a line by itself. This line is not displayed; it is only used to end the screen image. The cursor is left on the screen at the end of the last screen line; that is, at the character position immediately following the last character in the line before the line containing a single period. The last section is a series of lines describing the responses allowed and the CP/M command lines to be executed based on those responses. Each line consists of three fields. These are a response character, a return character and a CP/M command line. The response character is a single character representing one of the allowable responses. This is the character to be typed by the user to select that particular response. Upper and lower case response characters are treated as if they were all the same case. A blank can be used to represent a response of just a . The response character is followed by a return character. This is a '<' if the system is to return to this particular menu immediately after executing the CP/M command line. If the system should not automatically return to this menu, the character following the allowable response character is a '>'. - 1 - Menu 25 November 1982 The rest of the line, that portion following the '>' or '<', is the CP/M command line to be invoked if the response character which began this line is the actual character selected. For readability, blanks may be used freely after the response character as well as the '<' and '>' characters. For example : ======================================================= << End of Period Processing >> < 1 > End of Day < 2 > End of Week < 3 > End of Month < 4 > End of Year < 5 > Return to Master Menu Your Selection ? . 1 < ENDDAY 2 < ENDWEEK 3 < ENDMONTH 4 < ENDYEAR 5 > MASTMENU ======================================================= Everything from "<< End of Period Processing >>" through "Your Selection ? " would appear on the screen. The cursor would appear just after the '?' in "Your Selection ? ". The user may then choose one of the selections. The allowable responses in this example are the characters '1', '2', '3', '4', and '5'. Menu will not accept anything other than one of these characters or a ^C. If '1', '2', '3' or '4' is typed, the programs 'ENDDAY.COM', 'ENDWEEK.COM', 'ENDMONTH.COM' and 'ENDYEAR.COM', respectively, - 2 - Menu 25 November 1982 would be executed. For each of these, this menu would appear again after the selected program is finished. If option '5' is chosen, the program 'MASTMENU.COM' is called, and will not return. Menus can, of course, invoke other menus for a heirarchical menu structure. Since Menu uses CP/M's submit facility, the system drive must not be write protected. Using the submit facility also means that if CP/M detects a character at the console while preparing to process a submitted command line, the entire submitted batch will be aborted. There seems to be no way to stop this, short of patching CP/M. To avoid this hole as much as possible, Menu will execute CP/M command lines directly, and will use the submit facility only to return to a menu afterwards. Menu may itself be called within a submit file without disturbing the ongoing submitted process. However, the standard CP/M program Submit will make it impossible to return to any previous menus. For information or to report bugs, contact: Concept Development Systems Compuserve (Micronet) #70235,403 - 3 -