Bravo was a
modal editor—characters typed on the keyboard were usually commands to Bravo, except when in "insert" or "append" mode, in which case they were entered into the
character buffer. Bravo made extensive use of the
mouse for marking locations in the text, as well as selecting areas of the text, but it was not used for command entry. (Being at the very dawn of
graphical user interface design, a non-
command driven interface was judged too ambitious and possibly even inefficient and cumbersome.) In addition to a long list of commands for controlling the
formatting of the text (e.g. the ability to adjust left and right margins for sections of text, select fonts, etc.) Bravo also supported use of multiple buffers (i.e. files), and also multiple windows. Although Bravo usually displayed the text with formatting (e.g. with
justification, fonts, and proportional spacing of characters), it did not normally attempt to reproduce the way a page would look in hardcopy. This was because the Alto monitor provided a
resolution of 72
pixels per inch, but the
laser printers used at PARC provided a resolution of 300 PPI. This meant that the screen could at best only provide an approximation of the way the page would look when printed. Instead, the normal display mode showed the text using character sizes, etc., more suited to the capability of the display. There was a special display mode which did attempt to show the text exactly as it would appear when printed, and the normal command set worked in that mode as well. However, because the screen image was necessarily an approximation, one would occasionally find characters and words slightly off (a problem that continues to this day with
word processing systems). The 72 PPI pixel size closely approximated the 72.27
points per inch used in the commercial printing industry, so that a pixel in Bravo would be the same size as a typeface point. Bravo was the base for
Gypsy, a later document system on the Alto, the first with a modern
graphical user interface. Bravo was followed by BravoX, which was developed in 1979 under Simonyi's leadership at Xerox's Advanced Systems Development (ASD) group. BravoX was "modeless", as was Gypsy. While Bravo (and BravoX) were originally implemented in
BCPL for the Xerox Alto, BravoX was later re-implemented in a language called "Butte" ("a Butte is a small
Mesa", as Charles Simonyi used to say). Alto BCPL compiled into
Data General Nova machine instructions, which were in turn interpreted by Alto microcode. Butte compiled into Butte-specific byte codes, which were interpreted by special Alto microcode, similar to the Mesa bytecode interpreter. ==EDIT command==