The menu bar and drop-down menus are defined by a set of files of the form MNUiiii.CTL where iiii is the menu identification. The apex or root menu is defined in the file MNU.CTL (the menu identification of the root menu is assumed to be null).
Lines within a menu definition file contain four fields:
Menu ID. This value is usually formed by concatenating the parent's menu ID with a two character ID associated with this item. This item is always specified for menus (see Attribute field below) and usually not specified for menu items.
Attribute. The first position of this field is used to comment a particular line. If the first position contains an asterisk (*), the line will be ignored. Other values are ignored, i.e., the line is processed normally.
The second position contains one of the following:
M indicates that this line describes a menu.
I indicates that this line describes a menu item.
- indicates that a separator line is to be provided.
The rest of the positions of the attribute field are reserved for future use.
Item Description. This is the text that will be displayed on the menu. If the item description contains a broken vertical bar (|), the broken vertical bar will be replaced with a tab character, which will cause text following the broken vertical bar to be displayed in the right column of the menu. If the item description contains a tilde character (~), the character following the tilde will be underlined.
Actual command invoked. When an item is selected from a menu, this is the command that BIM-EDIT/XP will invoke.
BIM-EDIT/XP builds the menu structure at startup time. The initial file processed is MNU.CTL. When a menu (the second character of the attribute field is a M) is encountered, the file containing the items for the menu is processed. For example, if the menu ID is "EdZn", the file MNUEDZN.CTL is processed. In this manner the entire menu structure is built.
For any menu file, the startup routine searches for the file first in the specific user directory (if user not "DEFAULT"), then the default user directory, then in the site directory, and finally in the system directory. Since the distributed menu files are stored in the system directory, the menu structure can be customized by placing selective menu files in either the site or user directories. The startup routine will then process the customized version of the particular menu.