Page Numbers: Yes X: 527 Y: 10.5" First Page: 52
Margins: Top: 1.3" Bottom: 1" Binding: -8
Odd Heading:
BRAVO MANUAL
Even Heading:
Section 4: Other features
4. Other things
In this section you can learn about a wide variety of other useful things Bravo can do. They are described more-or-less in order of cost-effectiveness: the earlier ones will probably give you more payoff per unit of effort to learn them.
4.1 Some useful features
This section describes a number of features which are easy to learn and helpful to use. As always, it is a good idea to try them out as you read about them.
You can select entire lines of the document by moving the cursor into the line bar, which is to the left of the text area and to the right of the scroll bar. You can tell that you are in the line bar because the cursor will appear as a right-pointing arrow when it is in the line bar. To select the entire line pointed to by the cursor, use the RED mouse button. To extend the selection, use the BLUE button. Both of these work very much like selecting a character and extending. The YELLOW button selects a paragraph; you can read about paragraphs in section 3.2.
To put the current selection at the top of the screen, say Normalize.
To insert the current date and time in front of the current selection, say Time. Notice that it leaves just the time selected, so if you follow it immediately with a Delete, you will be left with just the date. To replace some text with the current date, select it and say Delete Time Delete; be sure you understand why this works.
You can search the document for the next occurrence of some text with the Jump command. After you say Jump, you have to specify the text you want to search for, and you do this exactly the way you make an insertion: by typing it in (ending with ESC), by making a copy selection, or by typing ESC to default to the same text which was used for the last Jump (not the last insertion or deletion). Notice that if you type in text, it appears between the right-most set of curly brackets in the system window; this is called the search key buffer, and it normally contains the last text you searched for. However, the contents of this buffer are destroyed by the Look ? command and some of the Calculator commands. The search starts with the second line displayed in the window. If it succeeds, it brings the first occurrence of the text to the top of the window; if it fails, a note in the system window informs you. Jump does not affect the current selection. The search ignores the looks of the characters.
You can substitute one text for another using the Substitute command. It will ask you (in the top window) for the information it needs. In looking for substitutions it will examine only the text in the current selection, so if you want to substitute throughout the document, do an Everything first; this will make the entire document the current selection. For reasons you don’t want to know about, it is not a good idea to do a Substitute in which the old text contains a CR.
Most Bravo commands can be repeated by simply typing ESC in command mode. When you do this, Bravo uses the current selection, not the one which the previous command used. For example, you can append a carriage return after each of several words by selecting the first one and Appending after it, and then selecting successive words and simply typing ESC. Or, you can search through the document looking for occurrences of a word by Jumping to it once and then just typing ESC.
The Undo command will undo the action of most Bravo commands which change the document, provided you haven’t moved the selection. You can only Undo the most recent command; it will still work if you have scrolled, however.
The ( command will put parentheses around the current selection. You can put other kinds of brackets around the current selection with the commands [, {, <, ’ and ".
The ) command expands the current selection as little as possible to make it balanced with respect to parentheses. This is useful primarily while editing algebraic expressions or programs. For example, if the current selection is the underlined character in
Xn+1 = ((aXn) mod (m+1) + c) mod m
then one application of the ) command will extend the selection thus:
Xn+1 = ((aXn) mod (m+1) + c) mod m
and another application will do this:
Xn+1 = ((aXn) mod (m+1) + c) mod m
Again, the ], }, and > commands do similar things.
4.2 Windows
So far you have worked with a single document in a single window. Bravo will let you work on several documents at the same time, each in its own window. This is convenient if you want to compare two documents, or copy something from one into another, say from an address list into a letter. You can also have several subwindows looking into the same document, which is nice when you want to copy something from one part of the document to another, or to check something on another page without losing your place.
At the top of each window, separating it from the one above, is a heavy black bar. Inside this bar is the name of the file for the document in the window; this name is set by Get and used by Put. It can be edited like any other text. Subwindows, created only by the split operation described below, are separated by horizontal black lines. All the subwindows of a window are looking at the same document, although usually at different parts. If part of the document happens to be displayed in several subwindows, any changes to it will appear in all of them, and so will the selection underline or the insertion caret. Two different windows, on the other hand, are always looking at different documents, and no change to one window can affect the other. You can copy text freely from one document to another with a copy selection.
Some commands, like Jump, Everything, Get, Put and Hardcopy, work on the current window, which is the window containing the current selection.
There are two commands for windows, one for creating and re-arranging windows, and the other for destroying them. Each has three options, selected by the three mouse buttons.
To create a new window, type Window, move the cursor so that it marks the point where you want the new window boundary to be, and hold down BLUE. The new window will appear. As long as you keep BLUE down, you can move the cursor around and the top boundary of the new window will follow it. When you let go of the button, the boundary will freeze. Try it. The new window will be empty, but you can insert or Get into it.
To split a window and create a new subwindow, type Window, put the cursor where you want the split, and hold down YELLOW. The new boundary will appear, and it will follow the cursor until you release YELLOW. It is important to understand that after a split you have the same document in each subwindow. Scroll one of the subwindows so that some of the same text appears in both subwindows, and select some of the common text. Notice that the selection appears in both subwindows. If you make changes to the document, you will see them in both subwindows. This is very different from creating a new window and Getting the same file into it; that is equivalent to taking another copy out of a file cabinet.
To move a window or subwindow boundary, type Window, put the cursor over the boundary you want to move, and hold down RED. The boundary will follow the cursor until you let go of RED.
You can get rid of a window or subwindow by typing Kill, putting the cursor in the doomed window, and holding down RED or BLUE for about a second. RED will give the space of the window to the window above; BLUE will give it to the window below. Kill YELLOW will clear the window; it is equivalent to Everything Delete (except that you can’t Undo it).
If you attempt to Kill the only window showing a document that you have changed and haven’t filed with Put, Bravo will pause with the message "Type CR to confirm". If you really want to lose the changes you have made to the document, type CR; otherwise, type DEL and then file the document using Put.
In summary:
WindowKill
REDmove boundarygive space to window above
YELLOWsplit; new subwindowclear
BLUEnew windowgive space to window below
You can remove the system window from view by striking the unmarked key to the right of RETURN. This provides more space on the screen and in Alto memory for your document, and also makes subsequent commands execute slightly faster. You can restore the system window by striking the same key again. The system window is restored automatically when you make an error, and at certain other times when Bravo wants you to see what is in the window.
4.3 If Bravo breaks
When Bravo breaks or crashes, what usually happens is that Swat gets called; the manifestation is a couple of seconds of whirring from the disk, followed by a mostly blank display on the screen, with the words Swat version xx at the top. If this happens, look at the bottom of the screen, where there will be a more or less intelligible message. In some cases this message may describe a condition you can do something about, e.g., that your disk is full. Or it may inform you of a parity error; if this happens repeatedly, you should file an Alto trouble report to get your Alto repaired (see section 5.1 of the Alto Non-programmer’s Guide). A third possibility is some fairly meaningless message describing an internal Bravo malfunction. In any case, after looking at the message you should type Kc (if that doesn’t work, boot the Alto). Then, if you want to recover your work, you can proceed as described below.
Bravo makes a record of everything you do during a session; the record is called the transcript. It is useful for three reasons:
If Bravo crashes because it has a bug, the transcript can be used to report the problem to the people responsible for fixing bugs.
If Bravo crashes because of a hardware failure of your Alto, a power failure, you accidentally pushing the boot button, or whatever, you can recover your work by replaying the transcript. In this case, the last few characters you typed may be lost.
If you make a mistake, like deleting half of the document you have been editing for several hours, you can replay the transcript up to the error and then save the document.
You can do all these things using a system called BravoBug. Thus,
>BravoBugCR
will start replaying your transcript. As the replay proceeds, Bravo will report each command, just as it does when you type a command in the usual way. When it is finished, Bravo will say Ready, and you can go on editing. It is a good idea to save your work with a Put and start Bravo again.
Warning: you can only do a replay if you haven’t started Bravo up again. Once you restart Bravo normally, your chance to replay is lost.
To report a bug in Bravo and then do a replay, type
>BravoBug/RCR
This will deliver to the Bravo maintainers copies of all the files involved in the bug, including the transcript, and then start Bravo to do the replay.
You can control the replay, step by step, as described in this paragraph. To stop a replay which is going on, type a space. As soon as the command currently being replayed is finished, Bravo will stop and tell you the number of the next command. At this point you can type
Quick to make typed-in text go in all at once during the replay, rather than one character at a time. This is faster, but you don’t get to see what is going on. Quick is the normal mode.
Slow to make typed-in text go in one character at a time.
space to replay one more command. Note: only commands which change the text or windows are recorded in the transcript, not scrolling operations.
Proceed to continue replaying at full speed. You can stop the replay again at any point by typing a space.
Break before command n to make the next Proceed stop before command n (of course, it will still stop right away if you type a space). This is useful if you know that the first 50 commands are good, but want to proceed more cautiously after that. Note that after a Bravo crash, the Swat display usually tells you the number of the command during which the crash occurred.
Terminate CR to terminate the replay. After terminating, you can proceed to give ordinary Bravo commands. Don’t do this unless you are sure that you want to stop replaying, since there is then no way to resume it.
You should try replaying a Bravo session and using these commands, so that you feel comfortable with them. You will then feel much more in control when you have a problem with Bravo or your Alto, or make a serious blunder while editing.
4.4 Arithmetic
Bravo incorporates a simple calculator, modeled after the Hewlett-Packard 35. The calculator has a stack with room for four numbers; while you are using it the top of the stack is displayed in the search key buffer, in the lower right corner of the system window.
To enter a number in your document onto the stack, select it and type \ (enter). To add a number in your document to the top of the stack, select it and type + (or =, which is the lower-case character on the same key). Similarly, you can subtract with −, multiply with * (or ←), and divide with /. The % command is just like *, except that it divides the result by 100. After any of these operations, the top of stack is the current buffer, which means that you can insert its contents in a document by defaulting the text of the insertion with ESC.
If you want to type in a number instead of selecting it, just type the number, and end it with one of the calculator commands. The number will appear in the middle buffer while it is being typed.
You can operate on the top two stack elements, rather than on the current selection and the stack, by prefixing the operation with the Calculator command. Thus, to compute (a + b) * (c + d), you
select a\ (enter)Stack: a---
select b+Stack: a+b---
select c\Stack: ca+b--
select d+Stack: c+da+b--
C *Stack: (a+b)*(c+d)---
This also works for enter: Calculator \ duplicates the top of the stack; if the stack was a b c d, it becomes a a b c.
There are a few more calculator commands which are occasionally useful:
~ exchanges the top two elements of the stack: a b c d becomes b a c d.
↑ rotates the stack, bringing the second element to the top and the top to the bottom: a b c d becomes b c d a. Four repetitions of ↑ leave the stack where it was.
Calculator n sets the number of digits after the decimal point to n. It is initialized to 2. All calculator arithmetic is rounded.
Calculator Fixed sets the display to fixed point (the normal mode).
Calculator Scientific sets the display to scientific notation.
Calculator Engineering sets the display to engineering notation.
Calculator Radix n sets the radix. n can be a digit, or Binary, Octal, Decimal or Hexadecimal.
4.5 Other useful features
BUFFERS
The system window contains three pieces of text enclosed in curly brackets. These are called buffers, and they are used for a variety of purposes, some of which you have already encountered. The three buffers are numbered, as follows:
1 {last deletion}2 {last insertion}3 {search key}
One of the buffers is always marked with a "*"; that one is the current buffer, and its contents are usually what is inserted when you default a text insertion by simply typing ESC.
Commands which insert into buffers, like Jump and Substitute, default to the old contents of the buffer being loaded. Get and Put default to the file name already in the window.
The text in the buffers is always in visible mode, i.e., with spaces, TABs and CRs shown explicitly. Furthermore, TABs and CRs don’t have their usual effect of leaving white space, because there is no room in the system window for these effects. Finally, if there is too much text to fit in the space allowed for the buffer on the screen, the middle of the text is replaced by an ellipsis (...).
You can force buffer n to be the current buffer with the command Buffer n ESC. You can set the contents of buffer n with the command Buffer n followed by typing or a copy selection.
PARTIAL SUBSTITUTION
If you want to substitute "that" for "this" you can use the Substitute command described in section 4.5. If you want to change some of the occurrences of "this" to "that", however, it is useful to know about the Find and Yes commands.
Find is exactly like Jump, except that
the search starts from the end of the current selection, not from the top of the display;
the occurrence of the key which is found becomes the current selection (Jump leaves the selection unchanged).
Yes is equivalent to Replace ESC Find ESC. So, to change some "this"es to "that"s, proceed as follows:
select something before the first place you want to start looking;
Find this ESC;
ESC to repeat the Find until you get the one you want to change;
Replace that ESC;
Find ESC;
Now at each point type ESC (i.e., repeat the Find) to make no change and go on to the next "this", or Yes to make the same change you made last time and then go on.
CONTROL AND SPECIAL CHARACTERS
Bravo normally displays a control character as the corresponding lower-case letter (or whatever) with an overbar. If you turn on Look graphic it will try to display the control character from the font (if there is something in the font for it; otherwise it will display a black rectangle). This is a character Look, just like Look Visible.
You can’t type a control character in directly, but you can type the corresponding regular character, followed by a Sc, which converts the preceding regular character into a control character.
Certain font families (notably TimesRoman and Helvetica) contain extra characters, such as accents, ligatures, and several sizes of dashes and spaces, which are useful in creating very high-quality documents. These may be entered as control characters in graphic mode (use Look graphic). The correspondence between control characters and their printed representations is as follows.
Accents. Each of these has a width of zero so should be typed in immediately before the character above which it is to appear.
̈d scexample:ö
̀e scò
́k scó
̃p scõ
Ligatures:
fff screplaces:f f
ffiq scf f i
fflr scf f l
fit scf i
flu scf l
Quotation marks:
‘g scopen single quote
’’close single quote (standard apostrophe)
Note that you can make open and close ‘‘double quotes’’ by using pairs of the corresponding ‘single quotes’.
Spaces and dashes:
| |space barletter space; here are 10 of them: | |
| |y scfigure space: | |
| |o scem space: | |
--hyphen: ----------
–v scen dash: ––––––––––
−x scminus sign: −−−−−−−−−−
—s scem dash: ——————————
Miscellaneous:
¿b sc
çc sc
¡h sc
At the time this manual was prepared, the special characters had not yet been incorporated into the *.al display fonts. Until this has been done, these characters will all appear as black rectangles on the screen. To find out which control character one of these black rectangles corresponds to, turn off its graphic look.
4.6 The user profile and fonts
The file User.cm is your user profile, which contains information for various systems about how you want them to be set up for your use. The information for each system starts with the name of the system in brackets, e.g. [BRAVO]. Then follow a series of lines of the form
label: information
Bravo currently accepts three kinds of information in the user profile: initial and quit macros, described in the next section, and font definitions and default parameter settings, which are discussed here. Look at your User.cm file now, to see how this works.
Each line of font definition tells
the number of the font (0 to 9)
the name and size (in points) of the hardcopy font
the name and size of one or two screen fonts which can be used to represent that hardcopy font on the screen. Bravo will use the first one normally but the second one (if present) in hardcopy mode.
For example, the line
FONT:0 TIMESROMAN 10 TIMESROMAN 12 TIMESROMAN 10
says that font 0 is to print as 10 pt Times Roman when you generate hardcopy.
The rest of the line says that font 0 can be represented on the screen by the screen fonts stored on files TimesRoman12.al and TimesRoman10.al, which must be present on your disk. Bravo will use the 12 pt version in normal display mode and the 10 pt version in hardcopy mode. The extension "al" is used for screen fonts. There are no files for the bold or italic versions of screen fonts, because Bravo can construct them from the regular version.
In addition to all the *.al files, you must also have a file called Fonts.widths, which contains information about the widths of all the characters in the hardcopy fonts.
Warning: A Bravo document file does not contain the association between the font numbers and names used to create that document. If you modify the font definitions in your user profile, you may encounter problems when you attempt to share Bravo documents with other people.
The user profile also contains settings for
default left and right margins;
tab interval;
Look nested parameters;
default line leading (used by Look X) and paragraph leading (used by Look Open, Look Q and the default for Look Y);
standard offsets (used by Look ↑, Look ←, and the default for Look Up and Look Down).
You can change all these settings by editing User.cm in a way which should be obvious; after doing this, be sure to initialize Bravo. Except for the default margins, all these settings affect only the process of editing the document, and not the document itself. In other words, once a Look nested, superscript or whatever has been done, the margins, offset, etc., have been set in the document and cannot be affected by subsequent changes in the user profile.
There is also a [HARDCOPY] section in the user profile that is used both by Bravo and by other subsystems that generate hardcopy. This contains entries for
preferred printing format (Press is the only reasonable choice at present);
name of your Press printer;
the name to be inserted in the "Printed by" field on the break page of the printout (an occurrence of "$" is replaced by the name by which you are known to the Alto Executive).
4.7 Startup and Quit macros
This section is only for programmers, and is not recommended even for them.
You can put into your user profile sequences of Bravo commands, called macros, to be executed automatically when you start up or quit from Bravo. Each macro is named by a letter. Startup macro x will be executed if you start Bravo with
>Bravo/x . . . CR
Quit macro x will be executed if you type an "x" instead of CR after typing Quit.
You can see the format of a macro definition by looking at your user profile. The command sequences are just like those which Bravo writes into the transcript (the file Bravo.ts), and can be constructed by actually executing the desired sequence of commands, and then copying Bravo.ts to another file and copying the sequence out of that file. There are two exceptions:
* in place of a selection (which looks like {6,2,123,648}) means the current selection;
@n in place of typed-in text (which looks like ’text{) means the nth parameter. For startup macros the parameters are strings on the command line separated by blanks; the first one after Bravo/x is numbered 1. For quit macros, parameters 1, 2 and 3 are the three buffers, 4 is the file name for the first window, 5 the file name for the second window, etc.
4.8 Press and Diablo hardcopy
To make a Press file on your disk instead of sending your hardcopy directly to a printer, use the File option of the Hardcopy command. It will ask you for the name of the file; the recommended name is the name of your document, with the extension replaced by "Press". Once you have made this file, you may print it using the EmPress subsystem, store it on a file server to make it available to other people (see sections 6 and 7.4 of the Alto Non-programmer’s Guide), or give it to PressEdit to combine it with other files into a large document (see section 7.6 of the Guide). Warning: the Press file is typically 50% larger than the document file; be sure you have enough room on your disk.
To send hardcopy to some printer other than your regular one (specified in User.cm), use the Hardcopy option
@ name ESC
where name identifies the printer you wish to use.
For both Press and Diablo printing, you can start printing at a specified page number with the Hardcopy option
Start at page n
This is mainly useful for Diablo printing. There will usually be a substantial delay while Bravo figures out where page n starts.
To print on the Diablo printer, you can use the Diablo option to the Hardcopy command. Before doing this, be sure a printer is plugged into your Alto; when you plug or unplug it, turn the Alto power off first. This option has an array of sub-options, which you can invoke when it pauses before printing each page. At the pause, the system window says "Ready to print page n", and the beginning of the text for page n is displayed in the document window (if there is room in Bravo’s memory). You can then say:
Repeat last page to prepare to reprint the previous page, instead of the page which was going to be printed next.
Continuous print, to suppress the pause after each page; this is useful if you have continuous forms in your printer. You can still stop the printing by typing space during printing, as described below.
space to start printing the page which Bravo says it is ready to print.
During printing, you can abort printing of the current page at any time by typing a space. You can then use the options just described to restart the current page (with space) or reprint the previous page (with Repeat). If you want to start at another page, use DEL to leave the Hardcopy command, give another Hardcopy command, and use the Start at page n option.
There is a command Look Magnify Diablo that displays the document as closely as possible to the way it will appear when printed on the Diablo printer. Look Hardcopy terminates this mode.