This document was made by OCR from a scan of the technical report. It has not been edited or proofread and is not meant for human consumption, but only for search engines. To see the scanned original, replace OCR.htm with Abstract.htm or Abstract.html in the URL that got you here.


ALTO

USER'S

HANDBOOK

OCTOBER 1976

This document is for Xerox internal use only


XEROX

PALO ALTO RESEARCH CENTER


OCTOBER 1976

This document is for Xerox internal use only


Table of Contents

Preface

Alto Non-programmer's Guide                                                                                                                         1

Bravo Manual                                                                                                                                                           27

Markup User's Manual                                                                                                                                          59

Draw Manual                                                                                                                     73

DDS Reference Manual                                                                                                                                         103

FTP Reference Manual                                                                                                                                           115


Preface

This handbook contains documentation for all the standard Alto services intended for use by non-programmers. It is divided into six sections, separated by heavy black dividers:

The Alto Non-programmer's Guide, which has most of the general information a non-programmer needs.

The Bravo manual, which tells you how to deal with documents containing text on the Alto.

The Markup and Draw manuals, which tell you how to add illustrations to documents. Section 10 of the Non-programmer's Guide is an overview on illustrations.

Finally, two reference manuals, one for the DDS filing service, and one for the FTP service which transports files between machines. These manuals supplement the introductory information on these two services in the Non-programmer's Guide.

If you are new to the Alto, start at the beginning of the Non-programmer's Guide. Read the first four sections there, and then the first two sections of the Bravo manual. After that, you should be able to find what you need by looking at the tables of contents, and browsing through the rest of the material. If you have trouble, don't hesitate to ask an expert for help.


ALTO

NON-PROGRAMMER'S

GUIDE

by BUTLER W. LAMPSON


Alto Non-programmer's Guide

Table of Contents

1.       Introduction                                                                                                                                                 2

2.      Getting started                                                                                                                                             2

3.      The Executive                                                                                                                                               5

3.1   Correcting typing errors                                                                                                                           5

3.2   Starting a service                                                                                                                                          5

3.3   Aborting                                                                                                                                                         5

4.      Files                                                                                                                         6

4.1   Naming conventions                                                                                                 6

4.2   File name patterns                                                                                                     6

5.      Recovering from disasters                                                                                          8

5.1   Reporting problems                                                                                                   9

6.      Keeping up to date                                                                                                    10

7.      More about files                                                                                                        11

7.1   Version numbers                                                                                                       11

7.2   DDS                                                                                                                          11

7.3 Copy                                                                                                                           13

7.4 Dump and Load                                                                                                          13

7.5 CopyDisk                                                                                                                    14

8.      Communicating with Maxc                                                                                         15

8.1   Chat                                                                                                                          15

8.2 About Maxc                                                                                                                16

8.3   Maxc files                                                                                                                  16

8.4 Hardcopy on Maxc                                                                                                      17

8.5   Archiving                                                                                                                  18

8.6   Messages                                                                                                                   18

9.        File transfers                                                                                                            21

10.      Pictures                                                                                                                  23

11.   Documentation and software distribution                                                                  25


1.      Introduction

This document is intended to tell you what you need to know to create, edit and print text and pictures on the Alto. It doesn't assume that you know anything about Altos, Maxc or any of the other facilities at Parc.

You will find that things are a lot clearer (I hope) if you try to learn by doing. This is especially true when you are learning to use any of the services which use the display. Try out the things described here as you read.

Material in small type, like this paragraph, deals with fine points which can be skipped on first reading (and perhaps on subsequent readings as well).

I would appreciate comments on this guide. In particular, I would like to know what you found to be confusing or unclear, as well as anything which you found to be simply wrong.

2.    Getting started

To do anything with an Alto, you must have a disk pack. This is a circular, yellow or white object about 15 inches in diameter and 2 inches high. Your secretary can tell you how to obtain a new one from the stock kept by your organization. The most common source is the yellow cabinet in the Maxc room (room 1153 on the first floor). Go straight through the first room, and you will find the cabinet in the second room, in the far left corner. When you take a disk, be sure to write your name on the logging form provided for the purpose, together with the serial number of the disk pack, which you will find on its bottom.

INITIALIZE YOUR DISK

The next step is to get the disk initialized with copies of all the programs you will need to use.          Here is how to do this:

Go to the first Maxc room (room 1153 on the first floor; this is the room you just went through to get your disk pack). There you will find a rack containing (among other things) a disk pack labeled BASIC NON-PROGRAMMER'S DISK, and an Alto which has two disk drives, each with four square lights, a white switch and a slanted plastic window. Take this BASIC NON-PROGRAMMER'S DISK and load it into the drive labeled 0. You do this as follows:

The drive should have the white switch in the LOAD position, and the white LOAD light should be lit. Open the door by pulling down on the handle. Put in the disk by holding it flat, with the label facing you, and pushing it gently into the drive until it stops. Then gently close the door and push the white switch to RUN. The white LOAD light will go out, and after about a minute the yellow RUN light will go on. The disk is now loaded and ready to go. If anything else happens, you need help.

Now start the Alto. This is done by pushing the small button on the back side of the keyboard, near the thick black cable. Pushing this button is called booting the Alto. It resets the machine completely, and starts it up working on the disk you have just loaded. After you boot the machine, it will tell you at the top of the screen what it thinks the state of its world is, and then it will print a ">" about halfway down the screen. When the screen looks like that, anything you type will be read by the Executive, whose basic job is


to start up the service you want to run. There is a section on the Executive later in this document. For now, you will find everything you need to know right here.

You are going to use a service called CopyDisk, which copies everything on the main disk (which you just loaded) onto another disk which you will load into the disk drive labeled 1. This copying erases anything which is already on the disk in disk drive 1, so you should be very careful not to copy onto a disk which has anything you want to keep. Load your new disk into the disk drive labeled 1, doing just what you did to load the BASIC

NON-PROGRAMMER'S DISK into drive 0.

Now type

>Copy DiskC3.

The CR stands for the carriage RETURN key on the keyboard. In this and later examples, what you type is underlined in the example, and what the Alto types is not.. On the screen, of course, there won't be any underlining. It doesn't matter whether you capitalize letters or not; the capitalization in this          manual is chosen to make reading easier.

The CopyDisk service will start up and ask you some questions, which you answer as follows:

Copy from: DP0a                             the digit zero, not the letter 0

Copy to: DP1CL

Check after copying: Yes

Copy from DPO to DP1 with checking on [ confirm ] Yes

Now CopyDisk will copy the contents of the BASIC NON-PROGRAMMER'S DISK onto your new disk pack. This takes about two minutes. While it is running, it records its progress in the two numbers near the top of the screen: they have to count up to 406 twice. When it is done, it will ask you "Do you want to make another copy of the original disk?" Answer No, and CopyDisk will return to the Executive, which will type its ">" character, meaning that it is waiting for further instructions.

Now you can take both disks out of the machine. Before you do, you should tell the Executive that you are finished,                                    by typing

>0u4CR

You will see that after a couple of seconds the screen goes blank and starts to display a white square that jumps around. This is an indication that the memory test program is running properly; an Alto should always be left in this state when it is not being used.

Now take out both disks, by pushing the white switch on each drive to LOAD. The yellow READY light should go out, and about 25 seconds later the white LOAD light should go on. Now you can open the door (aeainst a slight resistance) and remove the disk. Put the

BASIC NON-PROGRAMMER'S DISK                          back in the rack where you found it.

If the Alto in room 1153 is broken or unavailable, you can do a CopyDisk from one standard Alto to another; the procedure for doing this is described in section 7.5. Since it is a little more complicated than the method just given, a novice should use it only as a last resort.

LABEL YOUR DISK

Before doing anything else, put a label on the new disk with your name, and any other identifying information you like. Now you can take the new disk to any Alto, load it in, boot the machine by pushing the button on the back of the keyboard, and start working.


NAME YOUR DISK

When you do this, if you look at the information printed at the top of the screen just after you do the boot, you will see that it says

--- OS Version x/x --- Alto #xxx --- NoName --- Basic Non-programmer's Disk --‑

This is because your new disk is an exact copy of the BASIC NON-PROGRAMMER'S DISK, which has no owner, and owner and disk name information got copied along with everything else. To give the disk your own name as owner, you should type

>Installa

to the Executive. It will ask you whether you want the "long installation dialogue"; answer No. When it asks you for your name, type in your Maxc account name, followed by a CR. When it asks you for a disk name, choose a suitable one and type that in, again followed by a CR. Next it will ask you whether you want to give your disk a password. If you do this, the Alto will ask you for the password every time you boot it, and won't let you do anything until you provide

it correctly. This provides a modest level of security for the information on your disk. If you do give your disk a password, it is best to use your Maxc password, since the Alto will then know it and use it automatically whenever you communicate with Maxc. Don't forget the password, since there Js no simple way to find out what it is, and you will need an expert to get access to anything on your disk.

There will be a pause for a few seconds, and then the Executive will come back (If you assigned a password to your disk, you will be asked for it first). Now your name is installed on the disk, and the system will display it near the top of the screen whenever the Executive is in control, and will put it on the cover page of anything you print.


3. The Executive

This is the service to which you are typing right after a boot, and whenever any other service finishes its job. It has two display areas on the screen, a small one of six lines at the top, and a large one of about 20 lines in the middle. When you are talking to it, your typing and its responses appear in the large area. Whenever you call another service, the large area is erased, and the command you gave to call the other service appears at the bottom of the small area. In between the two areas, the Executive displays a clock and some other useful status information: the versions of the Executive and the operating system, the owner name and disk name installed on the disk, and the serial number of the Alto you are using.

3.1 Correcting typing errors

When you are typing at the Executive and you make a mistake, there are a few special keys you can type to correct the mistake. The BS (backspace) key erases the last character you typed. The DEL key cancels the command you were typing completely; it prints "XXX", and then starts a new line with a fresh ">" character.

3.2 Starting a service

As we said before, the Executive is for starting up other services which do the work you want done. To start a service called Alpha, you just type

>Al phagi

It doesn't matter whether you type in capitals, lower case, or a mixture of the two. If the service needs some other information about what to do, you type that after the name of the service. For example, there is a service to type out a document on the screen. Suppose you want to type out the document called "Notes".     You just say

>Type Notes

The Executive won't ever do anything until you type the final CR; if you change your mind, just type DEL to cancel the command any time before you type the CR.

3.3 Aborting

You can usually stop what is going on and get back to the Executive by holding down the left-hand SHIFT key and striking the blank key in the lower right corner of the keyboard (called the SW AT key; on an Alto 2 it's in the upper right corner). If this doesn't work, you can push the boot button.

If you push the SWAT key while holding down both CTRL and SHIFT, you will find yourself talking to a service called Swat which is of no interest to non-programmers. Usually no harm is done if this happens; you can get back to what you were doing before by typing PC (control-P; hold down the CTRL key and type P).


4. Files

The Alto stores on your disk all of the material you are working on (text and pictures), as well as all the programs which provide the various services described here. The named unit of storage on the disk is called a file. Each different document you handle will be stored on its own file. The facilities for identifying files are not ideal, but you will get used to them after a while.                           Better facilities are the subject of current research.

A file is identified by its name, which is a string of letters (upper and lower case can be used interchangeably), digits, and any of the punctuation characters "+-.!$". A file name can have two parts, which are called the main name and the extension., they are separated by a period. For example, "Alto.Manual" is a file name, with main name "Alto" and extension "Manual". File names cannot have blanks in them, or any punctuation characters except the ones just mentioned. A file name must not have more than 39 characters; most people don't notice this restriction.

A file name can also have a version number, which is a number that comes at the end of the name, preceded by an exclamation point: for example, "Alto.Manual!4" is version 4 of the file Alto.Manual.    Version numbers are discussed in detail in section 7.

4.1 Naming conventions

It is important to name your files in some systematic way, using the extension to tell what kind of file it is, and the main name to identify it. For instance, useful extensions might be Memo, Letter, Note, Figure, Calendar. If you are a secretary keeping material for several people on one disk, you can stick the person's initials in front of the extension, e.g. BWLmemo, JGMmemo etc. If you don't have anything specific in mind, it is customary to make the extension the same as the name of the service which creates the file, e.g.

Report.bravo for a document which doesn't have any special                                 properties, and is written
using Bravo.

The Alto doesn't care whether you capitalize letters in file names or not (i.e. ALPHA and alpha and aLpHa refer to the same file), but it is a good idea to use capitalization to make names more readable. This is especially useful when a name consists of more than one

word, since blanks are       not allowed in file names: e.g., TripReport or MasterList.

4.2 File name patterns

The Executive provides some simple facilities for handling files. First of all, it allows you to name a group of files by using file name patterns containing the magic characters "*" and "#". The "*" character stands for any string of characters. For example, the pattern

"*.memo*" stands for all the files which have the extension "memo", and the pattern "*.BWL*" stands for all the files which have BWL as the first three characters of the extension. The "#" stands for any single character; for instance, "###.memo" stands for all the files which have a three character main name and the extension "memo". If you are

curious to see what a pattern expands into, you can type Xc to get                    it expanded.

If you type a file name or a pattern to the Executive, and then type a TAB, it will give you a list of all the files    whose names start with that name.                                                                                              So, for example, typing
>*.BwiTAB


will get you a list of all files which have an extension starting with the characters BWL. You can get other kinds of lists of file names using the DDS service described later, but this is a useful quick and dirty facility.

Another useful thing to know is this: if you are in the process of typing a file name to the Executive, and you type ESC, it will add as many characters as it can to complete a file name. If you type "T', it will give you a list of all the files which start with what you have already typed; you can then go on and finish the file name.

Here is a summary of magic characters for getting file names expanded:

ESC     completes the file name if possible; if not, completes as much as it can, and flashes the
screen.

TAB     shows you all the file names which match what you have typed since the last blank, and
erases what you typed.

like TAB, but doesn't erase anything.

Xc        retypes the command line with all file name patterns replaced by the list of file names they
expand to.

There are two mme simple commands for dealing with files. To delete a file, or a group of files, type

>Delete Fl F2 ..CR

Warning: once you have deleted a file, you cannot get it back. Proceed with caution. If there is more than one version of a file, the one with the lowest version number gets deleted.

To get the contents of a text file printed on the screen, type

>Tvpe

If the contents won't fit on the display, the Alto will show you as much as will fit, then ask if you want to see more. If you do, just type a space; if you want to stop, type "n" for no.

When the Executive is running, it displays two lines of status information near the top of the screen. Included in this information is the amount of space which is left for storing files. This space is measured in disk pages; it takes about 5 disk pages to store one page of text. It is prudent to keep at least 150 disk pages available; if your disk has fewer, you should delete some files, perhaps after sending them to Maxc for archiving (see sections 8.5 and 9).

At this point you know enough to use Bravo to begin creating and editing text. Bravo is described in its own manual. You should start reading the Bravo manual, and not try to continue with this guide until you have become familiar with the material in the first two sections of the Bravo manual. The remainder of this guide contains more information about the Alto which you won't need on the first day, but will probably want in the first week.


5. Recovering from disasters

There are various ways in which your Alto disk can become damaged. If this does happen, the procedures described in this section will almost always allow you to recover the disk, or at worst will let you copy files from the sick disk to a healthy one. It is probably a good idea to get some help with this if you are not experienced.

Here are the symptoms of trouble:

You can't boot the disk and get to the Executive.

You are out of disk space, but you think you should have plenty; in other words, some disk space has apparently gotten                                                                              lost.

You get an error message from some service which says something about disk errors or file errors, and perhaps recommends that you should run the Scavenger.

You hear a funny buzzing noise from the disk for a couple of seconds, after which the service you are using breaks in some way.

It may be that the problem is caused by an incompatibility between the disk drive on which your disk pack was written, and the disk drive on which you are trying to use it. This is a likely cause of your problems only if you have been moving the pack from one machine to another, and if you notice that it works properly on some machines, but not on others. If your problem is caused by disk incompatibility, the procedures described below won't do you much eood. Instead, you should report the problem to the hardware maintenance staff, so that the offending disk drive can be realigned, and make yourself a new disk pack on a machine known to be in alignment_ You can transfer files from the old pack to the new one using the procedure described in section 6.

The first step is to run a service called Scavenger.       If your disk is healthy enough to let you
boot and use the Executive, you can just invoke the Scavenger by typing

>Scavengera

If it isn't, you can hold down the BS key and the top two blank keys, and press the boot button (keep the keys down until you see a fuzzy cursor in the center of the screen; this can take up to 5 seconds). This will get you a copy of the Scavenger over the Ethernet; after the cursor appears, it takes about 15 seconds more for the procedure to complete. If this doesn't work, hold down just the BS key and press the boot button; this should give you the dancing white square of the memory diagnostic. If it doesn't, either your Alto's Ethernet connection is broken, or your Alto has not been updated with the latest microcode (the latter is unlikely after 1/1/77). Either find another Alto without these problems, or load in a disk which is still in good shape, invoke the Scavenger, and then unload the good disk and load your sick one. The Scavenger will ask you whether you want to change disks, and give you a chance to do so if you say yes. Then it will ask you if it can alter your disk to correct errors; say yes.

The Scavenger will now work for about a minute. As it runs, it may ask you whether it is OK to correct "read errors". If they are "transient" errors, answer Yes fearlessly; if they are "permanent" errors, it is best to ask for advice from an expert. When the Scavenger is done, it will tell you what it found. If it has succeeded in making your disk healthy, you can go about your work. If it has deleted some files whose contents you value, read the description of Extract below. After you have retrieved anything which interests you from the debris, delete the file Garbage.$ which the Scavenger leaves around. It is a good idea to go through this scavenging procedure once a month or so, just to keep your disk in good shape.

If things are still in bad shape (i.e., you can't boot and run the Executive), the next step is to boot again, this time with the BS key and the top blank key held down. This should get you a fresh copy of the operating system, which will ask you whether you want to Install. You should say Yes, and go through the Install procedure described in section 2. If all goes well, you will then find yourself talking to the Executive and can proceed normally.


If this doesn't work, there is one more step to try. Boot again, this time with BS and the middle blank key held down. This should get you the FTP service described in section 9; use it to transfer the files <Alto>Executive.run and <Alto>SysFontal from Maxc. Then boot the Scavenger as described above and run it again. If this fails, you should consult an expert. If no expert is available, you can boot FTP again, and use it to transfer files from your broken disk to Maxc or to a clean disk on another Alto (made using the procedure described in section 2).

The Scavenger leaves all the stuff which it wasn't able to put into a recognizable file on a file called Garbage.$, and it leaves a readable record of everything it did on another file called ScavengerLog (unless it tells you that you have a beautiful disk). There are two kinds of entries in ScavengerLog: names of files removed from the directory or otherwise modified, and names of file paees which were put into Garbage.$. Such pages are identified by the serial number of the file, the page number of the page, and the number of the page in the Garbage.$ file. The other ScavengerLog entries allow you to find the serial number of a file which was smashed; the serial number is printed as two or three numbers separated by semi-colons.

To retrieve some pages from a smashed file called Alpha, first look in ScavengerLog to find Alpha's serial number. Then look for a group of pages with that serial number which were moved to Garbage.$. Make a note of the page number p in Garbage.$ of the first such page, and the number of pages a. Then type:

CR

>Extract Alpha p n--

and the desired pages will show up on Alpha. If it was a text file, you can now start Bravo, Get it in, and see what you can make of it.

5.1 Reporting problems

If your Alto itself is broken, obtain a trouble report form, fill it out, and leave it in the proper place; procedures for doing this depend on your location.

If you have trouble with Bravo, report it using the procedure in section 4.3 of the Bravo manual.

For other                            problems, consult your local expert.


lO                                                             ALTO NON-PROGRAMMER'S GUIDE

6. Keeping up to date

When new versions of the various services are released, they are normally announced by Maxc messages to all registered Alto users (see section 8.6). You can obtain a new version of a service called Alpha as follows:

Using FTP, attempt to retrieve <Alto>Alpha.cm. If this succeeds, leave FTP and type to the Executive

>@Alpha.cm@fik

This will cause FTP to be invoked again, some files to be transferred from Maxc, and perhaps some other activity. When everything settles down, you will-have the new version.

If there is no <Alto>Alpha.cm, retrieve <Alto>Alpha.run.                                    This will be the new

version of the service.                      You don't have to        do anything else.

The best way to obtain a complete set of new software, and clean up your disk at the same time, is to obtain a fresh disk, initialize it from the BASIC NON-PROGRAMMER'S DISK as described in section 2, and then copy the files you want to keep from your old disk to the new one. To do this, put the new disk in an Alto and start the FTP service (section 9.).

Note the Alto's serial number, in the top right corner of the screen. Then put the old disk in another Alto, and use DDS (section 5.1) to mark all the files you want to keep. When you have done this, use the DDS Send to command, giving it the number of the Alto with the new disk in it, followed by a #: e.g., 236# (you can use the name instead, if you know it). This will call in FTP and start it sending over all the marked files to the new Alto.

An alternative way to make a BASIC NON-PROGRAMMER'S DISK is to put the disk you want to initialize into an Alto, hold down the BS key and the top blank key, and push to boot button, as described in section 5. YOu will get a fresh version of the operating system, which will ask you if you want to Install. Say yes, ask for the "long installation dialogue", and say that you want to erase a disk. After a minute or so, you will have a clean disk with nothing on it except the Executive and FTP.                  Use FTP                         to retrieve the files

<Alto>NewNpDisk.cm.        Then type

>@,NewNoDisk.cm@

This will automatically transfer all the needed files from Maxc, and do any other necessary initialization. It takes about 20 minutes, and puts a significant load on Maxc, so use this procedure only when you can't find the BASIC NON-PROGRAMMER'S DISK. During the operation, there will be an automatic Install of the operating system; answer its questions appropriately. There will also be an automatic initialization of Bravo, and you should do a Quit when it is finished.


7. More about files

This section describes various things you will need to know about the Alto filing system.

7.1 Version numbers

A file name normally has a version number, which is a number that comes at the end of the name, preceded by an exclamation point: for example, "Alto.Manual!4" is version 4 of the file Alto.Manual.       The        basic rule for version numbers is this:

When you read a file, you get the one with the largest version number (the current version), unless        you include the version number you want in the file name.

When you write onto a file for which the current version is n, a new version n+1 is created, and becomes the current version, unless you include the version number in the file name. Furthermore, if version n-1 was around, it gets deleted, so that just two versions of the file are kept, the current one (with the largest version number)
      and the next earlier   version.

For example, if version 4 is the current version of the file Alto.Manual, there will probably be "Alto.Manuall4" and "Alto.Manual!3" around. If you write onto ''Alto.Manual" (e.g. by doing a Put from Bravo), "AltoManual!3" will disappear, and "Alto.Manuall5" will appear with the new information on it. "Alto.Manual!4" will still be around unchanged, so you can get the old version back from there if you need it. On the other hand, if you write onto "Alto.Manual!4", that file will be changed, and no new versions will be created.

If a file name doesn't have a version number, most services will not make any new versions, but will just write on the single version. Bravo is an exception; it always makes new versions, unless you have turned off versions at Install time, If you don't like the version feature, you can turn it off when you Install, by asking for the "long installation dialogue" and answering the questions appropriately. You can also change the number of versions which are kept in this way.

7.2 DDS

There is a service called DDS which allows you to keep track of your files and do various useful things with them. It is very easy to use, since most of the commands are self-explanatory. Be sure to start it up before going on with this section, and try out the various facilities as they are described.

Like Bravo, DDS needs to be initialized whenever you run the Scavenger, change your user profile, or find that it isn't behaving well. You do this just as for Bravo, by typing

>DDS/icR

to the Executive when you call it. DDS takes about 12 seconds to start up normally, and about 30 seconds if you are initializing it. Unlike Bravo, Dos remembers its state, and restores the previous state whenever you start it. You can also use initialization to force it back to the original initial state. To get out of DDs, point at the word Quit in the upper left corner of the screen and click YELLOW. Or you can just type SHIFT-SWAT.

Whenever Dos is doing something, and not listening to the keyboard, it displays an hourglass in the cursor. When you see the hourglass, you shouldn't expect any response to
        your actions: wait until it   goes away.


The DDS screen is divided into four windows. From top to bottom, they are: a command window, a control window, a filter window and a file window, which are separated by horizontal lines across the screen. The file window, at the bottom of the screen, is a Bravo-style window in which DDS will tell you various things about your files. The control and command windows contain menus: if you point to a menu word and click a mouse button, something suggested by that word will be done.

The bottom window starts out with a list of your files, which are initially sorted by the time they were written. This window has a scroll bar exactly like Bravo's. When the cursor isn't in the scroll bar, you can use it to select or mark files; commands like delete work on the marked files. The RED (left or top) mouse button marks a file, and BLUE (right or bottom) unmarks it. Marked files are displayed with an arrow in the left margin. If you hold down the button and move the cursor around (not too fast), all the files it passes over will be marked (or unmarked). You can also mark or unmark all the files which are displayed by moving the cursor to the right until it turns into a box containing the word ALL, and then using RED or BLUE.

Just above the files is the filter window. The two lines labeled Selspec and Context contain filters which decide which file names to display. A simple filter is just like a file name pattern in the Executive; it can include *'s and #'s, and it allows only file names which match the pattern to be displayed. To see all the files, you can just use * as the filter: note that the Selspec is initialized that way. You can also type more complicated filters, using and, or, not and parentheses: the Context is initialized to one such complex filter.

The two filters act together, and a file name must pass both of them to be displayed. The idea is that the Context can be used to filter out a lot of things you almost never want to see, and the Selspec can provide fine control. Note that the Context is initialized to suppress all      the standard system files.

To change a filter, point at the text of the filter with RED. It will turn black. Now type the new filter, which will replace the old one as soon as you type the first character. End your typing with CR or ESC; the latter appends a * to the filter. DDS will immediately update the file window to reflect the new filter. If you type DEL instead, the old filter will be restored.

Above the filter window is the control window, which contains a list of sort words and a list of show words. If you select sort words (with RED) they turn black and move to the left; you can unselect them with BLUE. Moving the cursor down into the file window will get the list of files sorted according to the sort words which are selected. Usually, you only want to select one sort word. The YELLOW button reverses the direction of sorting (indicated by the arrow next to the word) when it is clicked with the cursor over a sort word. DDS is initialized to sort on time written; that is why the sort word written is black. Try turning written off (with BLUE) and sorting on name. Now reverse the direction and sort again.       Now turn off name and sort on extension.

The show words say what properties of the file will be shown along with the name. You can turn options on with RED and off with BLUE, just like sort words. The file display won't be updated until you move the cursor down into the file window. The marked show word limits the display to marked files. Note that DDS is initialized with written and size (the number of disk pages in the file) turned on. Try some other show words.

Finally. at the top is the command window. Commands act on marked and filtered files only, and should be self-explanatory. A command must be confirmed with ESC or CR before it takes effect. Some commands take other parameters, which you should type before the ESC or CR. The typing appears in a black region just above the commands;


sometimes DDS will supply a default value, which you can override by typing something else.

You can mark some files, and then change the filters so that the marked files are no longer displayed; they will still be marked. They will not, however, participate in a command. If you later change the filters so that they are again displayed, they will still be marked, and now they will participate in a command.

Here is an example which illustrates several features: it deletes all the files whose names end in $ (these are usually the files on which Bravo leaves old versions of files you have edited, if you have file version numbers turned off). Point at the Selspec filter and click

RED; it will turn black. Now type j* Ca; this will display all the files whose names end with S. Now put the cursor in the file window, and use RED in the ALL bar on the right to mark all the files.   Finally, select the          delete command and type ESC.

There are many options for initializing DDS. They are all set up in a standard way in the user profile on the BASIC NON-PROGRAMMER'S DISK, but you can change them by editing the [DDS] section of the file User.cm. Detailed instructions on how to do this can be found in the DDS reference manual, together with a lot of additional information about DDS itself. This manual appears as DDS.ears on the Maxc <AltoDocs> directory (see section 11), and can also be found at the back of the Alto User's Handbook.

7.3 Copy

To copy one file to another, e.g., Old to New, say

>Copy New 4- Old              don't leave out the spaces

The "4-" is to     remind you of the direction the copying is done.

7.4 Dump and Load

These services give you a way to package up a number of files into a single, so-called dump file. You can then transport the dump file around as a unit, and later recover one, a few, or all of the files from it. This is especially useful when you want to send a group of files to Maxc for storage or archiving.

To make a dump file, type

>Dump alpha.dm fl f2

Here "alpha.dm" is the name of the dump file: by convention it has the extension "dm." You can list as many files as you want to be dumped. Often the * feature of the Executive is useful here.

To get files back from a dump file, type

>Load/v

You will get a list of the files in alpha.dm. and after each one you will be asked whether you want it loaded or not. If you leave out the /v all the files which don't already exist will be loaded; if you say /c instead, all the files will be loaded whether or not they are already on your disk.


7.5 CopyDisk

The simplest use of the CopyDisk service is copying the contents of one disk pack to another on an Alto equipped with two disk drives; it is described in section 2. CopyDisk can also copy the contents of a disk pack from one Alto to another over the Ethernet. To use it in this mode, you need two Altos; in the example below they are called Banjo and Flash. Put the disk you want to write onto into one Alto (Flash), and start CopyDisk. If you want to copy onto a blank disk, which won't have an Executive and therefore cannot be booted from, you can start CopyDisk by holding down the BS and ] keys, and pushing the boot button. After some delays, as described in section 5. the CopyDisk service will be running.

The first thing it does is to ask you "Copy from: ". Here you type the name of the Alto from which you want to copy, followed by a CR. If you don't know the name, you can type the serial number (displayed in the Executive"s status lines), followed by a #. The dialogue then proceeds as follows:

Copy from: Banjo

Copy to: DP0a-                                the digit zero, not the letter 0.

Check after copying: Yes

Copy from Banjo to DPO with checking on [ confirm ] Yes

Waiting on Ether ...

Next, go to the other Alto (Banjo), put in the disk you want to copy, start CopyDisk and proceed as follows:

Copy from: DPO—

Copy to: Flash

Check after copying: Yes

Copy from DPO to Flash with checking on [ confirm                       Yes

Now the copy should proceed. When it is done, the source Alto will ask "Do you want to make another copy of the original disk?". You can answer No, and it will return to the Executive. The target Alto will say "Waiting on Ether ...". and you can boot it and say Quit to the Executive.


8. Communicating with Maxc

Many uses of the Alto require you to communicate with Parc's large shared computer, which is called Maxc. To make any use of Maxc, you must first obtain a Maxc account and password; to do this, see the CSL laboratory manager's secretary.

Before trying to use Maxc from your Alto, you should first tell the Alto your Maxc account name and password. If you have given your Maxc account name to Install as the owner name for your disk, however, the Alto already knows it, and if you gave your Maxc password as your disk password, it knows that too and you can skip to section 8.1. Otherwise, you can give the necessary information by typing to the Executive:

>Loginal

The Login service will now ask you for your Maxc name and password. Type in each one in turn, ending each with a CR or space. Note that it assumes your Maxc acount name is the same as your disk owner name; if this is the case, you can just type CR to confirm it, and go on to give your password. If it isn't, type DEL, and then give the Maxc name you want to use. Once you have done this Login, your Alto will automatically identify you to Maxc whenever necessary. If you boot your Alto, it will forget this information, and you must Login again.

Note that the Login service only records your Maxc name and password; it does not connect you to Maxc. If you don't do a Login, both Chat and FTP will automatically ask you for the Login information when they first run, and will record it just as Login does.

If you wish, you can supply a password for your disk when you Install (see section 2). If you do this, you will have to type the password whenever you boot the Alto. but it will automatically be used as your Maxc password, unless you override it with a Login command. The password is stored on your disk in encrypted form, so that your Maxc password cannot readily by compromised to someone who paws around on your Alto disk.

8.1 Chat

You can use your Alto as a Maxc terminal through the Chat service. Just type >Chatfa

If all goes well, you will see the message "Connected to :", followed by some numbers, at the top of the screen, and a message from Maxe at the bottom of the screen. If Chat has trouble getting connected to Maxc, it will tell you its problem after trying for a few seconds. This usually means that Maxc is broken; you might try again in a few minutes.

If you have forgotten to Login to your Alto, Chat will ask you for your Maxc name and password. It will then record this information, just as though you had given it to Login, so that you won't have to supply it again unless you boot the Alto.

When Maxc types more than a screenful at you, it will pause after every screenful and "ring the bell", which causes Chat to display a large DING at the top of the screen. After you have had a chance to read the screen, striking any key on the keyboard will get Maxc

to produce the next screenful.                 If you type ahead to Maxc, this feature is suppressed.

Maxc has its own Executive, and a large array of services called subsystems. The next few subsections contain enough information about how to use Maxc to satisfy your routine needs.


Chat keeps a record of your conversation with Maxc on a file called Chat.scratchScript. You can read it with Bravo after a Chat session, just to see what happened, or perhaps to copy things out of it into other files, print it, or whatever.    There are two funny things about this    file which you need to know about

The file is not erased when you start a new conversation. Instead, the typescript of the new conversation starts at the beginning of the file and continues for as long as the conversation lasted. The end of the conversation is marked by the characters <_> after which you will see the remnants of the previous conversation.

The typescript file is only 20,000 characters long. If your conversation is longer than that, the
typescript will wrap around to the beginning. It is possible to make the file larger by editing the

[CHAT] section of the user profile (the file User.cm) in                the obvious way.

8.2 About Maxc

Maxc has its own Executive and file system, which are thoroughly documented in the Tenex Exec Manual. That manual was written primarily for programmers, and contains a large amount of information not needed by casual users of Maxc. In the hope of keeping you from having to read the Tenex Exec Manual, the next few paragraphs contain a summary of basic procedures for dealing with Maxc.

In order to do anything useful on Maxc, you must be logged in. The details of this procedure will normally not concern you, since Chat will take care of them automatically. When you are finished with your Maxc session, however, you should log out by giving the command

@Logoutak

to the Executive. (Note that Maxc types an "@" when it is listening for commands, just as the Alto types a ''>".) After a few seconds, you will get a farewell message from Maxc. Then you can exit from Chat and get back to the Alto Executive by typing SHIFT-SWAT (hold down the left-hand shift key and hit the blank key in the lower right corner of the keyboard).

If you expect to use Maxc again within a few minutes, you can save a little time and some Maxc resources by not logging out. This notifies Maxc that you expect to be back soon. If you don't return within a few minutes, Maxc will log you out automatically. If you don't expect to be back soon, it is considerate to log out, since you use up space on Maxc while you are logged      in.

8.3 Maxc files

Maxc has a file system somewhat like the Alto's, but the procedures for finding out about your Maxc files are rather cumbersome. You will want to store files on Maxc for several reasons (all of           which are explained in more detail below)

so that other people can copy them easily, using the File Transfer service (see 9.);

so that others can obtain hardcopy easily, using the Ears subsystem on Maxc (see 8.4);

so that                   they can be archived on magnetic tape (see 8.5).

Maxc file names look very much like Alto file names, but they have one more part: a directory. Also, the version number is always present, and is preceded by a semi-colon rather than an   exclamation point. The format           is

<directory>name.extension;version


Each Maxc user has a directory, named by his Maxc user name, and you can reference files in some other directory simply by prefixing the directory name to the file name, as illustrated. There is a protection system, not described here, which allows a user to control which other users can read or write his files. The usual setting of the protection, and the one you will get automatically if you don't say anything special, allows all Xerox users to read the file, but prevents anyone except the owner from writing it.

When you put a file onto Maxc, if there is already a file with the same name, the new file is added, with a version number one bigger than the old one, just as on the Alto when the file version number feature is enabled. However, old versions are never deleted automatically. When you reference a file, you get the one with the largest version number

if you don't specify the version                                   explicitly, just as on the Alto.

The ESC feature for completing a file name works on Maxc more or less as it does on the Alto.

You can list the names of your                           Maxc files with

@Dirfa

If you want just the      files with a particular main name or extension, you can say
@Dir activitv.*gi or @Dir *.reportCR

but these are the only uses of * which will work. To list another user's directory, say @Dir <user>fl

You can get more detailed information about your files (length, date written, etc.) with

@Dir21               note the comma
@@vCR

@@CE

If you want to print or otherwise manipulate this list, read the Chat typescript into Bravo and treat it like any    other piece                             of text.

You can delete one or several Maxc files, just as on the Alto, with

@Del fl f2

and *s will also work here, just as in the Dir subsystem described above. To delete all the old versions of your  files, say

@Delvergi

answer the two questions Yes, and type a CR when you are asked for the "file group." It is a good idea to do this once a week or so, since old versions can pile up and waste a lot of space.

To find out how much space you are using on Maxc, type @Dskal

One Maxc page is equivalent to about five Alto pages.

8.4 Hardcopy on Maxc

If you have a file, say TripReport.ears, in "Ears" or "Press" format (see section 10 for an explanation of these formats), i.e., ready for printing, you can get it printed by typing @Ears TripReporta

If you want 6 copies, say

@Ears TrinRenort,a                    note the comma

@@Copies 6CL @@cji


This is mainly useful for printing files on other directories, which other people have left there to make it convenient for you to print them. If the extension isn't "ears", you have to type it as part of the filename.

You can get Bravo to produce an Ears file by using the E option in the Hardcopy command. You should give the file the extension "ears." Then you can send it over to Maxc using the File Transfer procedure described in section 9.

8.5 Archiving

Maxc provides facilities for archiving files onto magnetic tape, where the cost of storing them is negligible. You can get an archived file back within a day with no effort, and within a few minutes at the cost of some inconvenience.

To archive one or several files, type

@Arch f filel file2 ...--CR

The files will be archived onto tape within a day or two. After this has been done, they will be deleted from the disk automatically, and you will get a message notifying you that the archiving has been done.

Maxc keeps track of your archived files in an archive directory which you can list exactly like your regular Maxc directory, using the Interrogate command rather than the Directory command. If the listing is of just one file, Maxc will ask you whether or not you want it retrieved from the tape. If you say yes, the file will appear on your disk within a day, and you will get a message to that effect. If you need the file right away, see Ed Taft or Ron Weaver.

8.6 Messages

You can send and receive messages on Maxc using two subsystems called Sndmsg and Msg. To send a message, type

@Sndmsc,C2

and fill in the To:, Cc:, Subject: and Message: as they are requested. You can edit the message with the following control characters; this editing is rather clumsy, however, so you should type the message as carefully as you can.

Ac          to backspace one character (not BS, unfortunately)

Qc        to delete a whole line

Rc             to retype the current line

Sc             to retype the whole item

DEL        to abort the whole thing

CR          to terminate everything except the Message

Zc             to terminate the Message.

After Zc type a CR. Maxc will report success as it sends the message to each destination. You can make a list of people on a file, say Csl.msg, and send a message to all of them by

typing BC CSI.MS2C-- as part of the To: or Cc: lists. There is a set of useful destination lists on the <Secretary> directory; they all have the extension "msg", so you can get a list of them with


@Dir <secretary>*.msga

To get on a distribution list, send a message to Jeanette Jenkins.

You can copy a file, say Meeting.notes (perhaps prepared with Bravo, but don't use any formatting, and put in carriage returns yourself, rather than relying on Bravo's automatic

ones), into the message by typing Bc F Meeting.notes-C1-1.

To read your mail, type @msgCR

Soon Maxc will type a summary of your newly arrived mail, and then a <- symbol. Notice that the messages are numbered. You are now talking to Ivlsg; it has a rather complicated command language which you can learn about by typing "?" after the <- symbol. Here is enough information to get by on.

To see message n, type

<-Type message

To see the next message, type LF; to see the previous message, type BS. To see the current message again, type T ESC. If you want to save the message, after it has been typed, Get the Chat typescript into Bravo.

You can delete a message by typing

ll_R

>Delete message

The current message can be deleted with >Delete message ESC

It is a good idea to delete messages after reading them, unless they reflect pending business. By keeping your message file short, you will find that Maxc responds much faster, and also you will be able to get a quick summary of pending business by listing the message headers (From:, Date:, Subject:). To do this, type

<-Headers of messages MCR

where for M you can say

All messages

Not examined messages

From nameC-1

Subject texta CR

m-n‑


To answer the message you just typed out, type <-Answer message ESC

Text Box: can say
a copy to yourself as a rP"ord; the message.
It will ask you where to send the answer, and you

From to send the answer to the sender, with All to send the answer to everyone who got


You can also get into Sndmsg from Msg by typing

<-SndmsgCLEi

When you have finished sending the message, you will be talking to Msg again.

Finally, two useful things:

To stop Msg in the middle of typing the response to any command, type Oc; if it was waiting at the end of a page, you will also have to strike another key.


To exit from Msg, type: <-Exita

Text Box: out your message file by typingEvery now and then you should clear <-Move All messages

to file 8Dec75.msg.a [new file] -C-ii                 using the current date in the file name
<-ExitCE.

@Arch f 8Dec75.msga

You can always retrieve the messages if you need them. If you do want to read messages from a file like the one created with the Move just described, you can tell Msg to read that file by typing

<-Read from file 8Dec75.msga [old version]cg‑


9. File transfers

You can transfer files from one Alto to another, or from an Alto to Maxc, using the File Transfer Program, or FTP for short. Like DDS, this program has a fairly elaborate set of features, which are described in its manual. You can print this manual from <AltoDocs>Ftp.ears, and you will also find it at the end of the Alto User's Handbook. This section tells you enough about FTP to take care of all ordinary needs.

After starting FTP, you will see three windows on the screen; from top to bottom, they are the server window, the user window, and the Chat window. Most interactions with FTP involve only the middle window; note the blinking vertical bar there, which shows where you can type. The first step is to type the name of the machine you want to talk to. Usually this is Maxc, and you should just type

*Maxca

In a second or two you should get back a response like

Maxc Pup Ftp Server 1.06 30-Jun-76

When Maxc is broken, there will be delay of about a minute, before FTP gives up; you can give up sooner by striking the middle blank key (opposite CR). If you want to talk to another Alto, you can type its name, if you know it, or its number followed by a #:

*Banioak

Text Box: or*326#C-a

A similar message should come back. Before doing this, you should make sure that the other Alto is running FTP, since your Alto will only wait one minute for it. You can get a list of all the Alto 'owners, names and numbers from the Maxc file <System>Pup-Network.txt.

Now you can retrieve a file from the remote machine (Maxc, or the other Alto), or store a file into it. To retrieve, you type

*R etrieve remote file Example as local file Exampie_cR

As in the Executive, you can just type enough of the command to identify it uniquely, and then a space; unlike the executive, FTP supplies the rest of the command name automatically. You then type the Maxc (or remote Alto) file name, folowed by a space. FTP will then suggest a local name for the file. If you like it, you can just type CR. Otherwise, you can type some other name, as in the following example:

*R etrieve remote file Example  as local file Dummy-C1-

During the transfer, the cursor will flip its two black squares back and forth every time it transfers a block of the file, so you can tell how it is progressing from the frequency of flips.

To store a file on your local Alto into the remote machine, you type

*S tore local file Example  as remote file Example-CB‑

or

*S tore local file Example  as remote file Dummy—

again depending on whether or not you want to use a different name.

You can do as many Retrieve and Store commands as you want. When you are done, type *p_uit

and you will be back talking to the Executive.

If you are not logged in, and are talking to Maxc rather than another Alto, FTP will ask you for your Maxc user name and password when you do the first Retrieve or Store. Like Chat, it will save the information so that you won't have to provide it again until you boot the Alto.


If you intend to do a lot of transfers to a Maxc directory other than your own, you can give the command

*Dir ectory OtherDira

to make <OtherDir> the default directory for Maxc names; this saves typing <OtherDir> in front of each name.                           You can also do

*Con nect to directory OtherDir         Password xxxxx2-

which works just like the Maxc Connect command. The password is not displayed when you type it, of course.

Text Box: *.memo_c_EYou can get a list of the Maxc files which match a file name pattern with the command *List

which works just like the Maxc Directory command. It is quite slow, however, and there is no way to interrupt it except to SHIFT-SWAT out of FTP.

At the bottom of the screen is the Chat window, in which you can talk to Maxc exactly as you do with Chat. You can move the cursor down into the Chat window by striking the bottom unmarked key (the SWAT key); to get back to the middle window, strike the middle unmarked key (on an Alto 2, the highest and lowest

unmarked keys on the right, respectively). In the Chat window, after typing Maxca, you can Login to Maxc and do whatever you want. This window doesn't offer all the conveniences of Chat itself, but at times it is nice to be able to switch very quickly between transferring files and giving commands to Maxc.

When you start FTP on an Alto, it is normally ready to act as a remote machine or server, in addition to accepting commands as described above. If you don't say anything special, it will allow any other machine to retrieve files, and to store new files, but not to overwrite an existing file. You can change these defaults by starting FTP with

Ftp/X

where X can be: Nothing to prevent any such transfers; Protected to allow retrieving only, but no writing; Overwrite to allow an existing file to be overwritten. Any server activity is reported in the server windown at the top of the screen.


10. Pictures

There are currently three major services for drawing pictures on the Alto:

Markup: good for pictures involving images, free-hand drawing or painting. Markup is also useful for adding pictures to a text document produced by Bravo; these pictures can come from Draw or Sil, or they can be drawn by Markup itself.

Draw:       good for pictures which just contain lines, curves and text;

Sil:           good for forms and pictures with only horizontal and vertical lines.

At the moment only the first two are suitable for general use. Each has its own manual, copies of which can be obtained by printing <AltoDocs>Markup.ears and Draw.ears (see section 8.4). You will also find these        manuals in the Alto User's Handbook.

You can compose the various parts of a document with Bravo, or with any of these picture-drawing services, and then put together the complete document with a service called PressEdit. This service can combine two kinds of files which describe pages of a document: Press files and Ears files. Markup, Draw and Sil can all produce Press files, and Bravo can produce Ears files. You will find an explanation of how to use PressEdit in

the next section.     Warning. the resulting Press file will be about as big as all the input files;
be sure you have enough disk space.

The input to PressEdit must be a Press or Ears file. Markup automatically produces Press files, but the other services require extra steps to make the right kind of file for PressEdit.

For Bravo, use the Ears option on the Hardcopy command to get an Ears file. This file will be on your Alto disk, like any other file. If the Bravo file was named "Example.bravo", the Ears file should be named "Example.ears".

For Draw, use the Press command to get a Press file.

For Sil, use the Nppr service to get a Press file, which is always named "Sil.press". You should rename it to something reasonable.

In all these cases, the resulting Press or Ears file cannot be converted back into Bravo, Draw or Sil form. You should therefore do all the work you can in these systems before making a Press or Ears file.

The output of PressEdit is a Press file, and you can do the following things with it:

1)  Print it on the Ears printer from your Alto, by typing to the Executive >Print Example.pressCE

Currently this is done through Maxc, and takes a while. if you type /s immediately after a file name, the file will be saved on your Maxc directory in Ears format. if you type n/c before a file name, n copies will be printed.          Thus

>Print 5/c Example.press/.s

2)  Send it to Maxc with FTP, and          then print it on the Ears printer by typing
@Ears Example.pressal

When doing this, you can make several copies if you wish, as described in section 8.4. In addition, you will be asked if you "want to save the Press conversion?" You should do this if you expect that a number of other people will want to print the file later, since it requires quite a lot of Maxc resources to print a Press file. If you do save the Press conversion, you will be asked for a file name; choose the name Example.ears if the Press file was Example.press. The resulting Ears file can then be printed by typing


@Ears Example.earsat

with much less Maxc computing. If you save the Ears file, you should delete or archive the Press file, so as not to consume too much Maxc file space. Note: you can also save        the Ears file with         the Print service, as described earlier.

3)  Send it to the 3100 Alto in room 2064 and print it on the 3100 there. The advantage of doing this is that pictures made by Draw will be much prettier; the drawback is that the 3100 is slower, and the procedure for printing is only semi-automatic. To print on the 3100, you should start FTP on your Alto, go to the 3100 Alto, run FTP there, and retrieve the Press file from your Alto. Then follow the instructions in the notebook labeled Press to get your file printed.

4)  Look at it with Markup, and possibly make changes. Read the Markup manual to find out how to do this. You can make substantial changes to the document with Markup, but the procedure is rather laborious, and you cannot transfer any of the changes back to the Bravo, Draw or Sil files you started with. Therefore, it is best to get all the pieces of the document into final form before assembling it and marking it up.

The use of PressEdit for assembling documents has one major advantage: the resulting complete document can be left of Maxc for printing by anyone who needs a copy. If you are producing a document for large-scale printing outside, on the other hand, it is probably easier to assemble it   by hand than to go through all this ritual.

10.1 PressEdit

To convert an Ears     file foo.ears to a Press file foo.press:

>PressEdit foo.press    F foo.earsa

To extract pages 3 and 17 from a Press             file     long.press, and put them in short.press:

>PressEdit short.press F long.press      3 17Cg

To extract pages 5 through         12 from foo.ears,     and put them in short.press:
>PressEdit short.press 4- foo.ears 5 to 12CR

To add fonts Logo24 and Helvetical4 to              a.press:

>PressEdit a.press       a.press Logo24/f Helvetical4/fLE

Here the arguments on the right hand side of the arrow may be given in any order.

To make a blank, one-page Press file containing all three faces of TiniesRontan10: >PressEdit      Bla nkTimes.press     F                                Ti mesR oman 10/f                 TimesRomanl0i/f

TimesRoman 1 Ob/fgl

To append to the end of chap3.press all the Press files with names fig3-1.press, fig3-2.press, fig3-3.press etc:

>PressEdit chap3.press f chap3.press fie3-*.presses

Cautiorr. when you combine files with PressEdit, try not to use different sets of fonts, or the same fonts in different orders. This will result in proliferation of font sets, making the file more bulky and creating other minor           sources of inefficiency.


11. Documentation and software distribution

Documentation for all the standard Alto software can be found on the Maxc <AltoDocs> directory. As a rule, each major piece of documentation appears as an Ears file which can be printed by the Ears subsystem on Maxc. Short documents are available on files with the extension "tty"; these can be copied from Maxc to your Alto and read with Bravo, or they can be printed with

@Corw foo.tty Ipt:cR [OK]

You can do

@Dir <AltoDocs>*.ears or *My

on Maxc to see what is available.

Current versions of all the standard Alto software are stored on Maxc in the <Alto> directory. The procedures for obtaining current versions are explained in section 6.


BRAVO

by BUTLER W. LAMPSON


Bravo Manual

Table of Contents

Preface                                                                                                                      28

1. Introduction                                                                                                           29

2. Basic features                                                                                                          31

2.1 Moving around                                                                                                     31

2.2 Changing the text                                                                                                  32

2.3 Filing and Hardcopy                                                                                              34

2.4 Miscellaneous                                                                                                        36

3.   Formatting                                                                                                            37

3.1 Making pretty characters                                                           37
Looks during typing

3.2 Paragraphs                                                                        38
Hints

3.3 Formatting style                                                                   41
Emphasis

Section Headings

Leading Indenting Offsets

3.4 Forms                                                                             44

3.5 White space and tabs                                                              44

3.6 Page formatting                                                                   45
Page numbers

Margins

Multiple-column printing

Line numbers Headings

4.   Other things                                                                       50

4.1 Some useful features                                                               50

4.2 Windows                                                                         51

4.3 If Bravo breaks                                                                    52

4.4 Arithmetic                                                                        53

4.5 Other useful features                                                     54
Buffers

Partial Substitution

Magnification

Control characters

4.6 The user profile                                                                   56

4.7 Startup and quit macros                                                           57

4.8 Diablo and Ears hardcopy                                                57
Samples of standard fonts


Preface

This manual describes the Bravo system for creating, reading and changing text documents on the Alto. It is supposed to be readable by people who do not have previous experience with computers. You should read the first four sections of the Non-Programmers Guide to the Alto before starting to read this manual.

You will find that things are a lot clearer (I hope) if you try to learn by doing. Try out the things described here as you read.

Material in small type, like this, deals with fine points and may be skipped on first, or even second, reading.

I would appreciate any comments which occur to you while trying to use the manual. In particular, I would like to know what you found to be confusing or unclear, as well as anything which you found to be simply wrong.

This manual is written on the assumption that you have the user profile, fonts and other Bravo-related material from the BASIC NON-PROGRAMMER'S DISK. If this is not the case, some of the things which depend on that stuff will not work the same way.

There is a one-page summary of Bravo at the end of this manual. It is intended as a memory-jogger, not as a complete specification of how all the commands work.

Bravo was designed by Butler Lampson and Charles Simonyi, and implemented mainly by Tom Malloy, with substantial contributions from Carol Hankins, Greg Kusnick, Kate Rosenbloom and Bob Shur.


1. Introduction

Bravo is the standard Alto system for creating, editing and printing documents containing text. It can handle formatted text, but it doesn't know how to handle pictures or drawings; for these you should use Draw,                                                         Markup or Sil.

When you start up Bravo (do it now, by saying Bravo/ea- to the Executive), you will see two windows on the screen, separated by a heavy horizontal bar. The top one contains three lines with some useful introductory information; it is called the system window. The bottom one contains a copy of the material you are reading, which was put there because of the "/e" you typed to the Executive. If you had omitted the "/e", as you do when using Bravo normally, the bottom window would be empty, except for a single triangular endmark which indicates the end of a document. In the bar separating the two windows is the name of the document in the lower window.

As you do things in Bravo, the first two lines of the system window will give you various useful pieces of information which may help you to understand what is going on and to decide what you should do next. Usually, the top line tells you what you can do next, and the second line tells you what you just did, and whether anything went wrong in doing it. Make a habit of looking at these two lines while you are learning Bravo, and whenever you are unsure of what is happening.

No matter what is going on in Bravo, you can stop it and get back to a neutral state by hitting the DEL key. You can leave Bravo and get back to the Executive by typing QuitCR

The characters which you type (Q and CR) are underlined in this example; the characters which are not underlined are typed by Bravo. This convention is used throughout the manual. Notice that you only type the first character of the Quit command; this is true for all the Bravo commands.

Each Bravo window (except the top one) contains a document which you can read and change. Usually you read the document from a file when you start Bravo, and write it back onto a file after you have finished changing it. Later, you will find out how to do this (see section 2.3). It is possible to have several windows, each containing a document; this too is explained later on (see section 4.2).

Bravo is controlled partly from the keyboard and partly from the mouse, the small white object with three black buttons which sits to the right of the keyboard. As you push the mouse around on your working surface, a cursor moves around on the screen. Pushing the mouse to the left moves the cursor to the left, pushing the mouse up (away from you) moves the cursor up; and so forth. You should practice moving the mouse around so that the cursor moves to various parts of the screen.

The three buttons on the mouse are called RED (the top or left-most one, depending on what kind of mouse you have), YELLOW (the middle one) and BLUE (the bottom or right-most one). They have different functions depending on where the cursor is on the

screen and what shape it has.                     Don't push any buttons yet.

Mouse lore:

You will find that the mouse works better if you hold it so that it bears some of the weight of your hand.

If the cursor doesn't move smoothly when the mouse is moving, try turning the mouse upside down and spinning the ball in the middle with your finger until the cursor does move smoothly as the ball moves. If this doesn't help, your mouse is


broken; get it fixed.

You can pick the mouse up and move it over on your work surface if you find that it. isn't positioned conveniently. For instance, if you find the mouse running into the keyboard when you try to move the cursor to the left edge of the screen, just pick the mouse up and set it down further to the right.


2. Basic features

This section describes the minimum set of things you have to know in order to do any useful work with Bravo. When you have finished this section, you can read the other parts of the manual as you need the information.

2.1 Moving around

Move the cursor to the left edge of the screen and a little bit below the heavy black bar. Notice that it appears as a double-headed arrow. It will keep this shape as long as you stay near the left edge, in a region called the scroll bar. if you move it too far right, the shape will change.      Keep the cursor in the scroll bar for the moment.

Now push down the RED (top or left) button and hold it down. Notice that the cursor changes to a heavy upward arrow. This indicates that when you let the button go, the line opposite the cursor will be moved to the top of the window. Try it. This is called scrolling the document up.

Next push down the BLUE (bottom or right) button and hold it down. Now the arrow points down, indicating that when you let the button go, the top line on the screen will be moved down to where the cursor is. Try it. This operation takes a few seconds, so don't get impatient. Practice scrolling the document up and down until you feel comfortable with it. It is useful to know that if you don't move the mouse, scrolling with RED and BLUE are symmetrical operations: one reverses the effect of the other.

You may have noticed that the text on the screen doesn't fill up the window, but that more text appears when you scroll up. The reason for this is that in addition to space on the screen, Bravo needs space inside itself (in the Alto's memory) to display lines of text on the screen. When a line has only a few characters, it doesn't take up much internal space, but when it runs all the way across the page, like the lines in this document, it takes a lot of internal space. When Bravo runs out of internal space, it stops displaying text and leaves the rest of the window blank. You can tell that there is more text in the document (i.e., that you aren't seeing the end), because when Bravo gets to the end it displays a triangular endmark as the very last thing to mark the end. If you don't see the endmark at the bottom of the displayed text, you can be sure that there is more text in the document which isn't being displayed.

If you keep the cursor in the scroll bar, near the left edge, and hold down YELLOW (the middle mouse button), you will see the cursor change into a striped right-pointing arrowhead. Think of it as a thumb, and the entire left edge of the window as the pages of a closed book, corresponding to your whole document (not just to what is displayed). If you stick the thumbnail into the book and flip it open, you will find yourself someplace in the book. If the thumb is near the middle, you will be about in the middle. If it is all the way at the top, you will be at the beginning; if all the way at the bottom, you will be at the end.

The tip of the arrowhead acts like the thumbnail, and letting go of YELLOW is like flipping open the book. You will also see another striped arrow, enclosed in a box. This one is called the bookmark; it points to your current location in the document. After you let up YELLOW, if you hold it down again without moving the mouse, the thumbnail and the bookmark should coincide exactly, making a solid arrowhead; this happens because the thumbing operation moved the document exactly to the place indicated by the thumbnail. To move forward a little, push the thumbnail down a little below the bookmark and thumb again; to move back, push the thumbnail up a little above the bookmark. To get to the beginning, push the thumbnail up until the arrowhead overlaps slightly the horizontal bar


at the top of the window. Try thumbing your way through the document until you feel comfortable with it. Also try thumbing and then scrolling up and down.

2.2 Changing the text

In order to make a change in the text of your document, you have to: say where you want the change made, by making a selection;

say what you want done, by giving a command.

You always make the selection first, then give the command. If you change your mind about where you want the change made, you can always make another selection. Making a selection is just like pointing with a pencil: it doesn't have any effect on the document. Only commands can change the document. You never have to worry about getting rid of a selection, since it never does any harm. If you make a selection, and then give a command that doesn't require any selection, that is perfectly all right; the needless selection will be ignored.

You make selections by pointing with the mouse and pushing one of the buttons. To try this out, move the cursor into the region of the screen where the text of the document is displayed. Notice that the cursor is displayed as an arrow which points up and slightly to the left. Point the arrow at a character (any character) in the document, and click RED. The character you pointed at should be underlined; if it is, you have just selected it. If it

isn't, look nearby and see if some other character is underlined. if you find one, then that is the one Bravo

thought you were pointing at Experiment until you feel confident that you can point easily at characters.

You should note that each selection erases the previous one: there is only one selection at a time, and it is the most recent one. Also, you can make a selection at any time, except when you are in the middle of a command. Once you have started a command, you must either finish it normally, or abort it by striking DEL, before you can make another selection.

Something useful to know: if you hold RED down, you can move the cursor around and the selection will follow it. The selection won't freeze until you release RED (or move the cursor out of the text area).   Try this too.

Now try a selection using YELLOW instead of RED. Notice that instead of underlining a character, Bravo now underlines a whole word. A word is defined as consecutive letters and digits, or consecutive punctuation characters. For convenience, apostrophe is counted as a letter.

Also, a number containing a decimal point is a single word.

There is one more thing to learn about selecting text: how to select more than one character or one word. To do this, first select a character with RED. Then point to another character and click BLUE; Bravo will underline all the characters between the one you selected with RED and the one you pointed at with BLUE. This is called extending the selection. Try holding down BLUE and moving the cursor around. The selection will change continuously so that it includes the characters between the one you originally selected with RED and the one you are pointing at now. As before, when you let up the button, the selection will freeze. You can change the extension as many times as you want by using BLUE over and over; Bravo will remember the original selection you made with RED until you make another one.

Finally, try selecting a word with YELLOW and then using BLUE to extend the selection. Notice that the end of the selection will be a word also.


Space, TAB and carriage return (CR) characters in the document simply appear as white. space on the screen, just as they do on paper. You can, however, select them like any other characters. Try it. You will notice that not all the white space on the screen can be selected; in fact, the space on a line after a CR, and the space to the left of the left margin, cannot be selected. Bravo's handling of white space is discussed in detail in section 3.5.

Now that you know how to say where you want a change made, it's time to make a change. Select something (for instance, a word). Now type D (for Delete). The word you selected is deleted from the document, and the selection moves over to the character after the original selection. The rest of the text is adjusted to make up for the deleted material; if necessary some words may be brought up from the next line to fill up the one which contained the deleted material.

You can undo the deletion by typing U (for undo). Try it; you will see the stuff you deleted reappear, and it will be selected again, just as it was before you deleted it. Do several deletions, followed by undos, until you are sure you know what will happen. Try deleting larger pieces of text by extending your selections. Be sure not to move the selection between doing the Delete and the Undo.

Delete and Undo are commands. Like all Bravo commands, they are given by typing just the first letter of the command name. You can type the letter in either upper or lower case.

To add new text, select something in front of which you want the new text to go (if you want it to go at the very end of the document, you can select the endmark). Then type I (for Insert). You will see that a blinking caret appears just before the selection. This marks the place where the new text will go. Anything you type will appear where the caret is, and as you type each character, the caret will move over to make room for it. Try typing a few characters, and notice that the rest of the text is automatically rearranged to make room for the new stuff.

If you strike the wrong key while typing, you can erase the mistake by striking the BS key (on the right side of the keyboard). You can erase as many typed characters as you like

using BS. You can also use Ac (hold down the CTRL key and type A) to erase a character; it works just like BS, and may be more convenient to type with your left hand, if your right hand is on the mouse. To erase

typing on a larger scale, you can use We (hold down the CTRL key and type W) to erase a word and its following spaces or punctuation characters. When you have typed as much as you care to, hit Fsc to finish the insert. Notice that the caret disappears, and that the inserted material is selected. You can undo the insertion with Undo. Then you can undo the undo and get the insertion back. Try it.

Sometimes it is more convenient to insert after a selection, rather than before. You can do this with the Append command (remember that you just type the A). Except for where the new material goes, Append is exactly like Insert.

If you want to change one word into another, or correct a typo, you have to delete some text and insert other text in its place. This can be done by a Delete followed by an Insert, but it is more convenient to use the Replace command, which combines these two functions into one. Replace can also be undone.

Whenever Bravo first displays the blinking caret, you can insert a copy of some existing text rather than typing in new text. You do this by making another selection, called a copy selection, instead of typing. The copy selection is made exactly like an ordinary selection, and you can even use the scroll bar to move around in the document in order to find the text you want to copy. You can distinguish a copy selection from an ordinary one by its dotted underline, which contrasts with the solid underline of an ordinary selection.


You can change your copy selection as many times as you like. When you are satisfied with it, type ESC, and a copy of the copy selection will be inserted in place of the blinking caret. You can't do anything else while you are making a copy selection, except to scroll the document.

A copy selection can be used to move text from one place to another: first copy the text, and then delete the original.

There is one more useful thing to know about insertion. If you just type an ESC for an insertion, without making a copy selection or typing anything else, a copy of the last thing you inserted or deleted will be inserted. This is called repeating or defaulting an insertion; it is very convenient for inserting the same thing in several places, e.g., a dollar sign in front of several numbers. It also gives you another way to move text: first delete it, and then insert it in its new place by selecting the new place and typing Insert followed by ESC.

You now know all three ways of doing an insertion: typing the text, selecting some existing text to be copied, or defaulting the previous insertion by simply typing ESC. These three ways of inserting text can be used whenever a Bravo command needs some text. You will see many references to "inserting text" as you read   on.

Before going on to learn anything more about Bravo, you should practice the Delete, Insert, Append and Replace commands, and copy selections, until they are quite familiar.

2.3 Filing and Hardcopy

Whether you use Bravo simply to read or browse through a document, or to create or change it, you will need to fetch the document from a file before starting, and to file it away again afterwards if you have changed it. This section tells you how to do these things.

To fetch a document from a file, give the Get command. You will see the blinking insertion caret appear in the heavy black bar above the window. Insert the text of the file name, usually by typing it in, and ending it with an ESC just as for any other insertion. The document will appear in the document window, and there will be a note in the system window telling you how long it is. A Get will erase the old contents of the window, if any.

To file a document away, give the Put command, and type the file name as you did for Get. If the name you want is already in the black bar, you can just type ESC to default the name. It is also possible to edit the file name in the black bar, exactly like an ordinary document. Put always files away the entire document, regardless of what the selection is; when it is done, you will see a note which tells you how long it is. Warning. If you quit from Bravo without saving your document, you will lose any changes you have made. if this

does happen to you, read section 4.3 on replaying to see if                      you can still be saved.

If you Get a document from a file and Put it back on the same file, Bravo will save the original on a backup file. Normally this will be the old version of the file from which you did the Get, and Bravo will make a new version for the Put (see section 4 of the Alto Non-programmer's Guide for a discussion of file versions). If you have disabled version numbers at Install time, however, the backup file's name will be the name of the original file, followed by a "$". The backup file is sometimes useful if you discover that some of the changes you made are not to your liking after  all.

You can do an "unformatted Get" with the 2c command (type    instead of Get); this treats the formatting

information at the end of each paragraph as ordinary text. The main use of 2c is for patching up a file which has been damaged by hardware failure or cosmic rays. In particular, if Bravo refuses to Get the file because "End of file not in Bravo format", you can usually correct the problem by doing an unformatted Get


of the file, deleting the last line or two, and Putting it back. Then Quit, restart Bravo and try again to Get the file.

To print a document, simply give the Hardcopy command; it will print the entire document, regardless of what the selection is. While doing the hardcopy, Bravo displays in the cursor a count (modulo 10) of the number of pages it has processed; hardcopy takes about 8 seconds per full page, like this one. After sending the document to the Ears printer, Bravo will report success. If there is a problem, Bravo will leave a note in the system window. If the printer is not responding, Bravo will leave a note to that effect, and keep trying. You can abort the Hardcopy by typing DEL, as always.

The hardcopy may fail for several reasons. If there is an EFTP error, trying again will usually work. If the problem is that there is a character in your document which is in a font for which you don't have the necessary .ep file, Bravo leaves one of the offending characters selected, and puts it at the top of the screen. You can try again after retrieving the necessary file from the <Fonts> directory on Maxc and initializing Bravo (see section 2.44. If you have a paee with so many different fonts (usually more than 7 or 8) that it exceeds the 32k capacity of Ears, Bravo leaves the first character of the page selected and at the top of the window. There is no remedy for this problem except to simplify the offending page. See section 4.6 for more information about fonts.

You may want more than one copy of your document. The Hardcopy command has an option called Copies, which allows you to specify the number of copies you want; you type in the number, and it will appear in the leftmost buffer in the system window, much like a file name. You must give the Copies option right after the Hardcopy command, every time you want more than one copy.

If you compare the hardcopy of your document with Bravo's display, you will see that although the text is identical, the hardcopy has more words on each line, so that the two versions look quite different. In order to see a nearly exact facsimile of the hardcopy on the screen, you can give the command

Look hardcopy (note the lower-case h)

You are now in hardcopy mode on the screen. Until further notice, Bravo will represent the printed version of your document as faithfully as it can, by positioning each character on the screen within one-half screen dot (about .007 inches) of its position in the final hardcopy. The screen representation is 10% larger than the printed one (to change this scaling, see section 4.5). To turn off the hardcopy simulation, give the command

Look Hardcopy (note the upper-case H)

You can edit normally in hardcopy mode_ In fact, if your document contains tables whose appearance is critical to you, it is advisable to stay in this mode, because in the normal mode text will take up much more space on the screen than it will in the final hardcopy (if

you have such tables, you should also read section 3.5 on white space and tabs). In hardcopy mode it is

also possible to see exactly where lines will be broken, so that you can insert hyphens by hand if necessary.

When Bravo is printing a hardcopy, it will start a new page whenever it runs into the bottom margin (normally 1", but see section 3.6 to change it). It will also start a new page, after printing the current line, whenever it sees the character Lc (control-L) in the text. This character is displayed as a lower case "L" with an over-bar. You can't type it in simply by holding down CTRL and typing L, but instead you can type an L followed by Sc. You do this during an insertion, not as a command. The Le is treated just like any other character during editing. There are a number of other facilities for controlling page formatting, which you can read about in section 3.6.

The Hardcopy command has options for printing on the Diablo printer, and for producing an Ears file which can be combined with drawings into a larger printable document, or sent to Maxc for •printing. These are described in section 4.8.


2.4 Miscellaneous

As you edit, Bravo keeps track of the changes you make to the document. In doing this, Bravo consumes space in the Alto memory. During a long editing session, it is possible to consume all the available space, in which case Bravo will leave a warning note ("Core storage getting low") in the system window, and will refuse to execute any more editing commands. If this happens, you should Put your document onto a file immediately, and then Quit, restart Bravo, and Get the document back from the file. Now you can continue with another editing session.

When you have finished editing one document and have filed it away, you can Get another file, and continue working. It you are making extensive changes, however, it is better to Quit and restart Bravo when you start to work on a new document. If you do this, you are less likely to provoke a bug in Bravo, and you will be able to recover from a crash with the replay feature (section 4.3) much more quickly.

The maximum size of a Bravo document is 65,536 characters. Whenever Bravo Gets or Puts a document, it leaves a note telling you how long the document was. When your document has reached 65,536 characters, you won't be able to add any more text, and peculiar things may occur if you do try to add more text. It is a good idea to split the document into two parts well before this happens.

If you type a character which has no printable representation, Bravo will display it as a black rectangle.   The best thing to do with such a character is to delete it.

Depending on exactly what Bravo is doing, the amount of text it can display on the screen will vary. You can always get the maximum amount of text displayed by doing a scrolling operation; if you scroll up with the cursor at the top of the scroll bar, the text won't move, and Bravo will just display as much more as it can. If you then give a command, some of the text may disappear from the screen, but you can always get it to reappear by doing another scrolling                 operation.

Bravo keeps copies within itself of information in your user profile (see section 4.6) and in various files on your disk: font files (named *.al and *.ep), and the files containing the Bravo system and its temporary storage (named Bravo.*). It refreshes these copies whenever you start it up with

>Bravo/ia‑

This is called initializing Bravo. It is necessary to initialize whenever you get a new version of Bravo, change your user profile or any font file, or run the Scavenger. Initializing is just like starting Bravo up normally, except that it takes about 30 seconds. If you are in any doubt about whether something has changed since the last time you initialized Bravo, or if your Bravo is crashing with messages which refer to disk or file errors, you should initialize Bravo by starting it with Bravo/i.

You now know enough to edit unformatted documents. Take a rest.


3. Formatting

This section describes the Bravo facilities for creating formatted text and pages. It you are not interested in formatting, you don't have to read it. if you are interested, be sure to read sections 3.3 and 3.4, where you will find a      lot of good advice.

Bravo normally describes character sizes and distances on the page in points. A point is a unit of distance used in the printing industry; there are 72 points per inch. Thus 36 points is 1/2 inch, and 18 points is 1/4 inch. In many cases, you can also specify distances in inches or centimeters, as described in section 3.2.

3.1 Making pretty characters

Bravo allows you to say how you want your text printed: in italics or bold face, underlined, in various sizes and type styles, superscripted or subscripted, etc. You can change the way existing text is printed, or you can say how you want the characters to appear as you are typing them in. We will begin by describing how to change the looks of existing text.

First, select the text you want to mess with. Then give the Look command.           This command

has a large number of options, each specified by             a single letter, which is sometimes
followed by some additional information:

bold                                                       shift B to un-bold

italic                                                       shift I to un-italicize

- to underline                                            shift - to remove the underline

‹- to subscript (text down 4 pts)                           shift 4- or t to superscript (up 4 pts)
0-9 to set the typeface

visible to display spaces, tabs                        shift V to stop this.
and carriage returns

> to make letters upper case                           < to make letters lower case

BS to overstrike with the next character. E. g.,    shift BS to stop overstriking
§ can be made by starting with <> and doing

Look-BS to the <. This can be repeated:

is <>1 with Look-Bs applied to both < and >.

Down followed by a distance (see below)           Up followed by a distance to

to move the text down that distance. relative       move the text up.         Superscript

to the baseline. Subscript is Down 4.               is Up 4.

CLR (the blank key to the right of Bs) to restore the standard looks: font 0; not bold, italic, underlined, visible, graphic, or overstruck; no up or down.

Try a few. You can turn all these on and off independently, although you won't be able to print a character which is both bold and italic with the fonts on the basic disk.

The typeface is usually called the font. For Bravo, each different size of the same style is a different font, but bold and italic are considered to be in the same font. The choice of fonts is specified by your user profile in a way which is described later (in section 4.6),

but the standard choice provided on the basic non-programmer's disk                         is:


0      Times Roman,    10 pt. This is the standard font.

1      Times Roman,     8 pt.

2     XEROX logo (only the capital letters E 0 R and X)

3      Math, 10 pt. A     large set of mathematical symbols. No bold or italics on
hardcopy.

4      Greek, 10 pt. No      bold or italics on hardcopy.

5      Times Roman,     12 pt:

6      Helvetica, 10 pt.

7      Helvetica, 8 pt.

8      Gacha, 10 pt.     This is a fixed-pitch font.

9      Helvetica, 18 pt.      Only bold on hard-copy. This is mainly for making
view-graphs, since it is a good size for that purpose.

You will find tables at the end of this manual which give the correspondence between ordinary characters and the Math and Greek fonts, and some samples of the various fonts.

There is another Look option which is very convenient. It is Look Same, followed by a copy selection. In this case, what is copied is the looks, rather than the characters. This is the way to get one piece       of            text to print in the same style as another piece.

Like most commands, Look can be repeated with ESC. This is useful if you want to change the looks of several pieces of text in the same way. You can also undo a Look with Undo.

You can find out what the looks of a character are by selecting it and giving the Look ? command. Bravo will tell you (in the system window) all the looks of the selected character.

LOOKS DURING TYPING

When you start typing, the looks which will be attached to the characters you type are set to the looks of

the   first character of      the selection if the command is Insert or Replace;

the   last character of the selection if the command is Append;

the   standard looks    otherwise.

To change the looks while you are typing text, use the CTRL key instead of the Look command: hold down CTRL and type the look you want. The only things described above which you can't do this way are Look > and < (use shift lock for this), and Look Up and Down; you can get the standard superscript and substript offsets with r and *-, though. To restore the standard looks, you can just strike the CLR key; it is not necessary to use CTRL in this case. Overstriking works a little differently during type-in: typing CTRL-BS causes the next character typed to overstrike the previous one. Thus, you can type in 3t by typing first <, then CTRL-BS, and then >.

3.2 Paragraphs

In addition to changing the looks of the characters, you can also change the shape of the text: the margins, space between lines, justification, centering, etc. The Bravo facilities for doing this are based on the      idea of a paragraph.


A paragraph in Bravo is all the text between two CTRL-CR characters. You can tell when you have one by selecting it. To do this, move the cursor into the line bar, which is between the scroll bar on the far left, and the text area. You can tell that you are in the line bar, because the cursor will appear as a rightward-pointing arrow. Once you are in the line bar, use the YELLOW button to select a paragraph. Note that the cursor changes to a mirror P symbol; it keeps this shape as long as                                                                                      the selection is a paragraph.

The CTRL-CR which ends a paragraph carries the paraeraph looks described below. It can also carry character looks, and if you are setting up a standard paragraph, it is a good idea to attach to its CTRL-CR the character looks which you want as the standard ones for the paragraph. Thus, for example, the CTRL-CR for a standard heading like the one at the start of this section would carry the italic look. Of course, this is just a convenience, and not essential; you can always set the character looks during typein as described above, e.g. by typing is for italics.

The YELLOW button selects exactly one paragraph, so by looking at what is underlined you can tell where the paragraph starts and ends. Note that the second CTRL-CR (the one which ends the paragraph) is counted as part of the paragraph; the first CTRL-CR is part of the previous paragraph. You can use BLUE to extend      the selection to several paragraphs.

To merge two paragraphs into one, just delete the CTRL-CR which separates them. You will probably want to replace it with a couple of spaces, or maybe with an ordinary CR. To break one paragraph into two, insert a CTRL-CR; it is just like any other character, except that you can't backspace over it.

If you select a paragraph and then give an Append, Insert or Replace command, a blank paragraph with the same looks as the selected one will be created for you to type into.

To change the looks of a paragraph, you can use some more sub-cases of the Look command. Select the paragraph (or any text in it) first, and then say Look, followed by:

center; turns off justification                          shift C to stop centering

justify (even right margin); turns off centering     shift 1 to stop justifying

nested to indent the whole paragraph (36 pts,     shift N to un-indent
or 1/2 inch, more)

open up more white space in front of                shift 0 to close up the white space
the paragraph (12 pts, or 1/6 inch, more)

g to open up half as much more white space in shift Q to close up the white space front of the paragraph as Open does (6 pts more)

All of these can be invoked during type-in; hold down the CTRL key and strike the appropriate key, just as you do for character looks.

In the following Look cases, d is a distance on the page, which can be specified in several different ways, as described below. Distances are measured from the left edge of the paper (except for Up and Down, which measure from the baseline of the line of text). These looks cannot be used during type-in.

Left d to set the left margin. The default is 85 points, or about 1.2 inches from the left edge of the paper.

First d to set the left margin of the first line. Use this to control indenting or un-indenting of the first line. A Look Left cancels a Look First, since it sets the left margin for all the lines of the paragraph.


Paragraph .d to set the left margin of all the lines except the first. A Look Left cancels

a Look Paragraph, since it sets the left margin for all the lines of the paragraph.

Right d to set the right margin. The default is 527 points. Since an 8.5" x 11" page is 612 point's wide, this results in 85 points, or 1.18", of white space on the right. Thus, the default margins center the text on the page.

X n to set the space or leading between lines. The leading should be at least 1 point (as it is in this document). to avoid a squashed effect. If you want a less dense appearance, try larger leadings. The default is 6pt, which gives double spaced text.

Y n to set the leading in front of the paragraph. The default is 12pt, which gives a blank line between paragraphs. Note that Look Open increases the paragraph leading by 12 pts, and Look Q increases it by half that, or 6 pts. Note that both line and paragraph leading are suppressed for the first line of a page or column. Leading must be less than 64 points.


 



a sequence of blanks a distance equal to the width of that many blanks.

By typing a number n, as above, preceded by + or -. The distance specified by n is added to, or subtracted from, the current value of the look being changed. Thus, to indent a paragraph by an additional one-half inch, type Look Left +.5 ESC.

By making a copy selection in some other paragraph, using YELLOW. The value of the look being changed is read from the selected paragraph (or character, in the case of Up and Down) and displayed in the system window, in both points and inches.

By using BLUE to point to a place on the screen. The horizontal position of the place you point at is displayed in the system window. if you hold down BLUE and move around, the displayed position is updated continuously.

By using RED to select a character. The horizontal position of the left edge of the character is displayed in the system window.

By typing \ (hack-slash, not /), which displays a default value for the look being changed in the system window.

By just typing ESC, which uses the value already in the leftmost buffer of the system window. This is useful if you want to read the value of some property with YELLOW, and then abort the command with DEL and copy the value to some other property; e.g., you might want to set the P margin to the same value as a tab stop.

You can select, point or default as many times as you want, just as with an ordinary copy selection. Then you can type a number, if you like. When the leftmost buffer in the system window has the value you want, type ESC to complete the command. Of course, if you get disgusted you can always type DEL to cancel the whole thing. Note that the copy selection is a convenient way to find out the value of a single paragraph look; after you


have seen it, you can cancel the command with DEL. Also, pointing is a convenient way to measure horizontal positions on the page.

Look All, followed by a copy selection, will copy all the paragraph looks of the paragraph in which the copy selection is made, to the paragraph containing the current selection.

If a paragraph is selected (using YELLOW in the line bar; the cursor will be a P symbol when a paragraph is selected), the Look ? command will display the paragraph looks in the system window; if the selection is not a paragraph, the command displays character looks, as described in the previous section. You may have to scroll the system window to see all

the information. Note that it appears in a buffer (see section 4.5) which is made current, and you can insert it into a document with a default insertion.

If you have a paragraph whose left margin is less than the default (normally 85 pts), any characters in the paragraph to the left of the default marein will fall off the left edee of the window and will not be displayed. Try settine a left margin to some values less than 85, and see how this works. You can change the setting of the left edge of the window, so as to make these characters visible on the screen, with the command

Window Edge d d is a distance, which must be typed in and cannot be obtained by pointing. The distance d is the distance from the left edge of the page at which the left edge of the window should be set. It should be smaller than any paraeraph left margin if you want to see all the characters on the left. For instance, if d is 0, the window edee will be at the paper edge; if the text has the usual 85 pt margin, this will result in 1.2" of white space in the window (in addition, of course, to the white space in the line and scroll

bars).                     The default value for d is the default left margin.

HINTS

You can select several paragfaphs (using BLUE to extend your selection) and apply the same Look command to all of them. You can change the looks of every paragraph in the document by doing an Everything to select the whole document before the Look. A Look command involving a distance of the form +n or -n adds or subtracts n from the look value for each selected paragraph. Thus, Look Left +5 ESC will indent each selected paragraph by five more                                                          points.

If you use several different formats (e.g., for section headings or for indented material) you can copy the formatting from an existing example of a particular style to a newly created one with Look All. Often it is convenient to put a set of sample paragraphs at the head of your document, each containing one line which explains what it is a sample of. Then you can split the window (as described in section 4.2) and have the samples readily available to copy from with Look All.

When you are setting up the format for a document, you should put a few blank paragraphs (just CTRL-CRS) at the end, and set the formatting on all of them to your standard format (it is convenient to do this by copying the formatting from a paragraph which already has your standard format). This might include indenting the first line of a paragraph, setting the leading, leaving space between paragraphs, justification, and even the

font. Now when you add material to the document by inserting into one of these blank paragraphs, you will automatically pick up all of the formatting you have preset. As you type along, each time you use a CTRL-CR to start a new paragraph, it will acquire the same formatting as the old one.

3.3 Formatting style

This section is intended to provide you with some guidance in using all the different ways Bravo gives you for controlling the appearance of your document. Many of the rules are based on the customs of the printing industry. There are two advantages to following these customs:


they are the result of many years of experimentation, during which many people have tried to find out what looks -good on the page:

readers are accustomed to seeing text presented in this style.

You will notice that some of the rules are contrary to the usual practice for preparing documents on a typewriter. There are good reasons for this: when you are printing with variable-pitch fonts, italics, boldface, justification and precisely controlled leading, some of the things which work well for fixed-pitch, single-font documents are no longer appropriate.

EMPHASIS

Use italics for emphasis in text. You can also use boldface, but this is usually less desirable, and it is better to reserve boldface for words which play some special role, e.g., begin and end in computer programs. You should also use italics for the names of

variables, e.g., "Suppose there are             n items."

Don't use underlining for emphasis; it is not compatible with the use of italics and boldface. Use underlining only when you want a different kind of emphasis, e.g., to distinguish the characters a user types from the ones the machine types, as is done in this document.

Don't capitalize a whole word for emphasis. In fact, try not to capitalize a whole word at all: it usually looks terrible in a variable-pitch font because the capital letters are so much wider than the small ones. If you have words which you think should be set in capitals for some reason, try SMALL CAPITALS. In this example, the S and C were 10 point (font 0), the rest of the letters 8 point (font 1). Compare this with the appearance of FULLY CAPITALIZED words and you will see the point.

SECTION HEADINGS

In general, use left-justified rather than centered headings, and don't use all capitals, for the reasons just discussed. Here is a satisfactory list of styles for the headings of successively larger portions of your document:

smallest            Italic                       18 pt paragraph leading (Look Y 18, or Look Q if
your standard leading is 12 pts).

next               Bold                            24 pt paragraph leading (Look Y 24, or Look 0 if
your standard leading is 12 pts).

largest              12 pt bold         36 pt paragraph leading (Look Y 36, or Look 0 twice
if your standard leading is 12 pts).

Note that you can switch from the standard leading to the 1.5, 2 or 3 times standard leadings for headings during typein, using Oc and Qc. For the largest units, you can center the heading and/or use.all caps instead of, or as well as, switching to a 12 pt font. It is best not to have more than three levels of heading, but you can extend to four or five levels using these tricks. Helvetica 18 bold (font 9 bold) is sometimes nice for chapter or document titles.

Use Look Keep 80 (see section 3.6) on headings to make sure that the heading doesn't end up all by itself at the bottom of a page.


LEADING

The standard printing fonts are designed in such a way that they need some extra space between the lines to avoid a cramped appearance. You put this space in with Look X, and you should use 1 pt for ordinary single-spaced text. If you want a less dense appearance, experiment with more leading. For double-spacing of the text, try Look X 6 (the default).

Use double spacing (Look 0) between paragraphs. When you have indented material which is fairly short, try 6 pt leading (Look Q), as in the example two paragraphs back. Don't use extra carriage returns to get blank space between paragraphs. However, the maximum leading you can specify is 63 points; if you need more (e.g., to leave space for a figure) you will have to put in blank paragraphs.

Note that both line and paragraph leading are suppressed for the first line of a page or column_ The height of a line of text (in points) is equal to the point size of the largest font used in the line, provided there are no characters which have been superscripted, subscripted or offset with Look Up or Look Down. If any character in the line is offset Up, the minimum line height, including leading, is given by the font size of the character, plus its offset; i.e., characters offset Up are allowed to eat into the leading. If a character is offset Down, the largest such offset must be added to obtain the line height; i.e., characters offset Down are not allowed to eat into the leading.

INDENTING

Use Look nested to indent material, and Look Nested to cancel the indentation. Note that this also works when you are typing in. For example, if you type

citcric Here are three points: cRcncFirst ..cR`Second ..cRcThird ..cRcNcNow we continue ... the document will look like this:

Here are three points:
First ..

Second ..

Third ..

Now we continue ..

Use Look First if you want to indent the first line of a paragraph, rather than tabs. When you have a list of items, it is often nice to unindent the first line by about 15 pts, especially if the items are numbered. For example:

1. This paragraph was formatted with Look Left 120, Look First -15, in order to make the number hang out to the left.

2. To get the first word of the first line to line up with the left margin on subsequent lines, set a tab stop at that point (see section 3.5).

3. You can find out where to set the tab stop by doing Look Paragraph, using a copy selection to read the margin setting, and then aborting the Look command with DEL.                In this case, of course, the stop is at 120.

OFFSETS UP AND DOWN

Use the smallest offset you can get away with for subscripts and superscripts, since large offsets result in wide ugly spaces between the lines. The offset used by Look t (superscript) and Look 4- (subscript) can be defined in your user profile (see section 4.6); the standard user profile sets it to 4 pts.


3.4 Forms

Although Bravo will let you begin with a completely empty window and start typing into it, this is a bad practice and should be avoided. Instead, you should start out by Getting a template or form which will guide you in constructing the document you want.

An obvious example is a memo form, and you will find one on the file Form.Memo. Start Bravo, and Get it into the window: You will see that it has spaces for the sender, receiver, date and subject, and that these are filled in with words which indicate what should go there. To fill in the form, select each of these words, and Replace it with the proper text. Then do the same with the MEMOBODY. When you are done, you have a completed memo which you can file under a suitable name using Put.

Your disk comes equipped with a few forms; you can see their names by typing form..rt to the Executive. You should construct your own forms for other kinds of documents which you find yourself creating frequently. As you have seen in the description of Bravo's formatting features above, a form can contain a great deal of information in addition to standard text and spaces to be filled in. You will find that your life is easier and your work is more uniform and of higher quality if you use forms consistently, and take the trouble to carefully design a new one when necessary.

3.5 White space and tabs

When you type on a typewriter, you can get white space to appear between characters by typing spaces or TABs. You can get blank lines by typing carriage returns. In Bravo, you can do exactly the same things, with exactly the same results. Space, TAB and CR are characters which are in your document exactly like "a", "b" or "c". You can get Bravo to display them as special, visible characters by selecting the text in which you want to see them, and typing

Look visible                                    (this must be a lower-case v).

 To turn off the display and just see the usual white space, type

Look Visible                                    (this must be an upper-case V).

Normally you don't have to type any CRs; Bravo will automatically end a line when there is no room for the next word. You can force a line to end by putting in a CR; this is appropriate when you want to control the layout of the text precisely, as in a table. Otherwise, don't put in CRs. You should use CTRL-CR to end a paragraph, as described in section 3.2.

Bravo allows you to set up to 15 tab stops, which are named by the digits 0-9 and the letters abcde. The tab stops are paragraph looks, just like the margins; hence they can be different for each paragraph. You can set a tab stop with the command

Look TAB t d

where t is a digit or one of the letters abcde, and d is a distance (see section 3.2).

When you strike the TAB key during typein. the caret moves to the next tab stop, just as it does on a typewriter, and a TAB character is added to the document. This TAB character will carry the name of the tab stop; this name won't change unless you replace the TAB with a different one. You can also name the TAB character explicitly when you type it in, by holding down the TAB key (as though it were a shift key) and striking one of the keys 0-9 or abcde. A named TAB character will always make the following character print at the correspondingly named tab stop. If printing has already passed that tab stop, Bravo will start a new line, and display a heavy black rectangle at the end of the previous line, to warn you that something is wrong.


For example, suppose you have a line like this

Column 1 Column 2                            Column 3

The tab stops are at 180, 265 and 400 points, and there is a TAB between each digit and the following C. If you now append some x's to the digit 1 to get past tab stop 1, the result will look like this:

Column lxxxxxxxl

Column 2                         Column 3

on the screen (the black rectangle does not appear in hardcopy). When you switch from normal display mode to hardcopy mode, there will usually be more white space occupied by the TAB, but everything will continue to be positioned in exactly the same way. An advantage

of naming the TAB explicitly when you type it is that you can move the caret to any column of a table with a single key stroke, by setting tab stops at each column, and typing the number of the column you want with the TAB key held              down.

You can find out the name of a tab stop by selecting it and giving the Look ? command. An unnamed tab is called a plain-tab.

As a convenience, you can set a contiguous group of tab stops at equal intervals by using the command Look Table d d n

where the two d's are distances which specify the left and right boundaries of a region, and n is the number of tabs desired.      For example,

Look Table 100 ESC 400 ESC   3 ESC

sets tab stops   0, 1 and 2 at 100, 200. and 300 points respectively.

For compatibility with old versions of Bravo, and with the programmer-oriented tab conventions of the Alto and Maxc, you can set unnamed or plain tab stops spaced at equal intervals with the command

Look TAB = d

where the distance d specifies the interval. If you don't set any tab stops, you get plain tab stops spaced at 36 pts (this parameter comes from the user profile, and can be changed: see section 4.6).

If you put a TAB in a paragraph that has plain (unnamed) tabs, and then in later editing add so many characters before the TAB character that it gets pushed past the stop, it will automatically move to the next tab stop. In other words, every time you edit the line, Bravo behaves as though you had retyped it completely. For example, suppose you have a line    like this

Column 1      Column 2     Column 3

The tab stops are at 145, 205 and 265 points (i.e. an even spacing of 60 pts), and as before there is a TAB between each digit and the following C.                                   Now if you add characters in front of the first TAB, like this:

Column lxxxxxxx              Column 2       Column 3

all the columns move over. Similarly, if you started with the second line and removed the x characters, all the columns would move back to the positions they had in the first line, since the x characters overlapped a tab stop. This can also happen when switching between the normal display mode and hardcopy, since characters take up less space on the page in hardcopy. Of course, you can always use Look hardcopy to see the document on the screen          exactly as    it will be printed.

One final word about white space: Bravo has formatting features, described in the section on paragraphs above, which allow you to indent the first line of a paragraph, and to put blank space above a paragraph, without using spaces, TABS or extra CRs. It is good practice to use these features, since you can control the spacing much more precisely and don't have to worry about having extra characters cluttering up your document.

3.6 Page formatting

There are a number of features to help you in controlling the layout of your document on printed pages. Unlike the horizontal layout, the location of page breaks and the headings, page numbers etc. for the most part cannot be displayed on the screen. There is, however, a page boundary command which allows you to see on the screen where the page


boundaries will appear in the hardcopy. The command is invoked by the LF key. It assumes that the first character of the current selection is the first character on a hardcopy page, and it moves the selection to the first line of the next page. By applying the page boundary command repeatedly, you can move through the document, page by page (or column by column, if your document profile specifies multiple columns; see below). Alternatively, if you know where one page break is (perhaps because of a control-L in the previous line; see below), you can start there. If you want to start at the beginning of the document, you can use the Everything command to make the first character of the document be the first character of the selection.

As a convenience, the page boundary command leaves the original selection at the top of one subwindow, and the first line of the next page as the third line of the next subwindow (which it creates if necessary). Among other things, this makes it easy to do some editing near the end of the page, and then reselect the beginning of the page and repeat the command. Try it.

Normally, Bravo will start a new page when it runs out of room on the current page, i.e., when the next line to be printed would intrude on the bottom margin, or at the beginning of a paragraph if the amount of space left before the botom margin is less than the paragraph's keep value.. You can force a page break by including a control-L in the text; the line containing the control-L will stay on the same page, but the next line will start a

new page. To type a control-L, type L Sc. You can also force a paragraph to start a new page by giving it a keep property of 11". If you want to position the paragraph precisely on the new page, give it a vertical tab property as well.

You can exercise some control over where page breaks occur with the command Look Keep d        d is a distance

This sets the paragraph property called keep, which has the following meaning. During hardcopy, when printing of the paragraph is begun. the amount of space left on the page before the bottom margin must be at least the keep distance, or a new page will be started. For instance, by setting the keep of a heading to the total height of the heading (including its leading) plus the height of the first two lines of the next paragraph, plus the paragraph leading, you can ensure that the heading will never end up alone at the bottom of a page. Good values to use, with standard fonts and paragraph leading as in this document, are 40 pts on ordinary paragraphs and 80 pts on headings.

You can set the vertical position of a paragraph precisely on a page using the vertical tab property, which is set by the command

Look Z d                                                    d is a distance.

When a paragraph with a vertical tab is printed, its upper edge (including leading, if any) will be positioned at the vertical tab value, measured from the bottom of the page (i.e., use 10.5" to put it .5" from the top). Unlike a horizontal tab, which may start a new line, a vertical tab never starts a new page; instead, it may cause overprinting. Vertical tabs are useful for positioning headings and footnotes, and for precisely aligning text to meet some physical constraint, such as a pre-printed form or a window envelope. The first line of a paragraph with a vertical tab will be printed on the current page, even if it runs into the bottom margin (but not if the paragraph also has a keep property which forces it off the page). To remove a vertical tab, use the default distance; i.e., type Look Z \ ESC.

Vertical tab and keep properties are not visible on the screen, but you can always use Look ? to find out whether a paragraph has them, and what their values are.

Note that both line and paragraph leading are suppressed for the first line of a page of column. If you want white space in front of such a line 1, you can use vertical tabs, or introduce a blank line in front of line 1, and adjust the leading of 1 to compensate for the


height of the blank line.

The remaining aspects of page formatting can be controlled by an optional document profile which you can put at the very beginning of the document. The document profile is a sequence of paragraphs, each of which must have the profile property. This property is set and cleared by a Look command:

Look ; sets the profile property                                           Look shift • clears it

A document profile has the following form (this one is the profile for this part of this manual):

Page Numbers: Yes X: 527 Y: -.5"             First Page: 37 Not-on-first-page
Private Data Stamp: No X: 3.5" Y: -.6"

Columns: 1 Edge Margin: .6" Between Columns: .4"

Margins: Top: 1.3" Bottom: 1" Binding: -5

Line Numbers: No Modulus: 5 Page-relative First Line: 1

Odd Heading: Not-on-first-page

BRAVO MANUAL

Even Heading:

Section 3: Formatting

Any of the lines may be omitted, and in general any of the fields on a line may be omitted. Fields on a line are separated by one or more spaces. Distances, shown in inches in the example, may be given in points or centimeters, as described in section 3.2. X coordinates are from the left edge of the paper, Y coordinates from the bottom; negative coordinates are measured from the right edge or top of an 8.5" x 11" page.

Bravo's measurements on the page are exact to less than .01". The Ears printer, however, can make errors in positioning the text on the page of as much as .25" in any direction. These errors do not affect the relative positions of characters (e.g., the length of a line cannot be affected) but they can cause the text to shift around on the page as a whole.

We now proceed to explain the various options.

PAGE NUMBERS

The coordinates of the page number are the coordinates of the upper right corner of the number. You can add Roman to the line if you want Roman numerals for your page numbers, and Uppercase if you want the Roman numerals in tipper case. If Not-on-first-page is present, the page number is not printed on the first page of the document. If First Page is not specified, it is assumed to be 1, and Not-on-first-page is also assumed for both page nubmers and heading; i.e., there will be no page number or heading on page 1 in the default case.

The coordinates of the private data stamp are for its upper right corner. Do not use a private data stamp without proper authorization. You will need to supply a password on each hardcopy to get the private data stamp applied; see the CSL laboratory manager's secretary to learn the password if you have a legitimate need.

MARGINS

The top margin specifies the amount of white space at the top of the page. The bottom margin specifies the minimum amount of white space at the bottom of the page; a line will start a new page if any part of it intrudes into the bottom margin. Exception: if a paragraph has a vertical tab, its first line will be printed without regard to the bottom margin, and it may be positioned without any regard to the top margin.


If Binding appears, it is assumed that the pages are eventually to be printed on both sides of the paper, with odd-numbered pages on the right side of the resulting double spreads. Page numbers of even pages will be reflected left-to-right; in the example, even page numbers will have their upper left corner at X: .5" Y: .5". The binding distance is the amount of extra margin to be supplied on the inner side of the page, which abuts the binding. This amount is added to all the X coordinates on odd pages, and subtracted from all the X coordinates on even pages. For example, if you want 98 pt (1.36") outside margins and 72 pt (1") inside margins, use a left margin (Look Left) of 85 pt (the default), and a right margin (Look Right) of 612 (8.51-85=527 (also the default) to center the text

on the page.        Then use a Binding of 72-85=-13.                                  In general, this rule is

Let d = (desired outside margin + desired inside margin)/2

Look Left

Look Right              612 (8.5") - d

Binding:                 desired inside margin - d.

This rule will     lead to a negative binding if the inside margin is less than the outside
margin; that is perfectly all right.

MULTIPLE-COLUMN PRINTING

The columns line is relevant only for multiple-column pages. It says that the hardcopy should have the specified number of columns, with the nominal edge margin (at both edges) specified (.6" in the example), and the amount of space between columns specified (.4" in the example). If the number of columns in the example is changed to 2, the nominal horizontal layout of an odd page    will be:

.6" edge margin - 3.45" text,     col 1 - .4" between  cols - 3.45" text, cot 2 - .6" edge margin

for a total of 8.5". The text is centered on the page; if a Binding is specified, the text will be displaced in opposite directions on odd and even pages, just as for single-column text. The width of the text in the columns (3.45 in this example) is determined by subtracting all the other space from the 8.5" page width. If there are tic columns, the column width is

col width = (8.5"       - 2*(edge margin)               - (nc -1)*(between cols))/nc

The text width and position specified above is only nominal: the actual width and position is determined by the specified left and right margins in the following way. The first column is printed exactly as its left and right margins specify. The second column is moved right by (col width + between cols) from what its left margin specifies (i.e., that amount is added to all its X coordinates). This means, for example, that you can get a double-column page with some text at the top which runs all the way across by setting the right margin of the full-width text appropriately, and using a vertical tab to position the first paragraph of the second column below the full-width text. The appearance of the resulting page           will be

Full-width text ...........................................

first-col text          second-col text

Note that to do this you must manually find the end of the first column (easily done using the page boundary command), and put a suitable vertical tab property on the first paragraph of the second           column.

A consequence of this laissez-faire approach to column formatting is that you must supply the proper left and right margins yourself. To keep the text within the nominal boundaries defined above, the left margin should be greater than or equal to the edge margin specified in the document profile, and the right margin should be less than or equal to the edge margin plus the column width. The command Look \ will make it more likely that the document satisfies these restrictions, by shifting all the left margins over by the difference


between the default left margin (normally 85 pts) and the edge margin, and similarly shifting all the right margins over by the difference between the default right margin (normally 527 pts) and the edge margin plus the column width. Its effects can be reversed with Look shift-\, until you Put the document then they are permanent. This command works well if your text is straight prose, with no careful horizontal formatting. If your text is any more complex than that, you should plan on manually formatting it for multiple-column printing, since the automatic facility is unlikely to do what you want.

The edge margin specified in the example, which would be much too small for single-column pages, is good for double-column. It is also desirable to reduce the top and bottom margins when you are printing double-column, e.g. to .8" and .4" respectively.

When you are printing more than one column, a Lc in the document starts a new column rather than a new page. To start a                                           new page, use two consecutive Lc characters.

LINE NUMBERS

If there is a line which says

Line Numbers: Yes Modulus:                     n Page-relative First Line: f

every nth line will be numbered, slightly to the left of the standard left margin. Thus, if n is 5, the numbers will be 5, 10, 15 If Page-relative appears, numbering starts over on each page; otherwise it continues throughout the document. if First Line appears, the first line is numbered f, and numbering continues from there; otherwise the first line is numbered 1.

HEADINGS

If a Heading line appears, it must be followed by a paragraph, also with the profile property. which is used as the heading on each page. This paragraph should have a vertical tab which positions it correctly (for example, 10.5" for the heading on this page) and appropriate margins, centering or whatever to produce the desired effects. It may have more than one line. It is also possible to have separate Odd Heading and Even Heading paragraphs. If Not-on-first-page is present, the heading will not be printed on the first page.


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 select the whole document, say Everything.

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. 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 f command will put parentheses around the current selection. You can put other kinds of brackets around the current selection with the commands L 1_, <, and ". The command expands the current selection as little as possible to make it balanced with respect to parentheses. Again, the 3, 1, 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).

In summary:

Window                                    Kill

RED                                move boundary                    give space to window above

YELLOW                         split; new subwindow               clear

BLUE                              new window                       give space to window below

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. It 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 boot the machine. 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,

>BravoBucr-CE

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

>BravoBue/RCa


This will send over to Maxc 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.

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)

select b       ħ

select c       \

select d          +
C*

Stack: a

Stack: a+ b Stack: c

Stack: c+ d

Stack: ( a+ b)* (c+ d)

a+ b a+ b

 

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.

1' 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 t 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.

9.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 second line 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.

MAGNIFICATION

You have already learned about Look hardcopy, which shows you the document on the screen as it will look when printed, but about HI% larger than the printed size. If you want a different magnification, you can use the command Look Magnify n, where n is a single digit which specifies the amount of magnification you want:

8                         screen is 80% the size of the hardcopy

9                                     90%

0                                     100%

1                   110% (hardcopy just fits with a right margin of 530)
120%

3                                     130%

4                                     140%

You can return to the normal, non-hardcopy mode of display with Look Hardcopy, as usual. Once you have done a Look Magnify, a subsequent Look hardcopy will use the same scaling.

At the larger magnifications there won't be room on the screen for all of the page unless the right margin is less than 530, and the excess will be chopped off on the right. This makes magnifications greater than 110% relatively useless, except for documents which are narrower than   a normal full-width page.

Depending on the magnification, Bravo will choose an appropriately sized screen font from the list provided in your user profile (see the next section) to represent each of your hardcopy fonts. There is no guarantee that a screen font will exist which is closely matched to the hardcopy font at the magnification you are using. In order to make the screen faithful to the hardcopy, Bravo forces each character to appear on the screen as nearly as possible where it will appear in the hardcopy. The maximum error is about .007".

Normally, Bravo formats the hardcopy display to match the hardcopy which will be produced by Ears or some other xerographic raster-output printer. If you want the hardcopy display to match the hardcopy produced by the Diablo printer, you can say Look Magnify Diablo n.


CONTROL CHARACTERS

Note: this section is mostly for programmers.

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). 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.

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 more screen fonts which can be used to represent that hardcopy font on the screen. Bravo will choose the most suitable font from this list, based on the current magnification.

For example, the line

FONT:O TIMESROMAN 10 TIMESROMAN 12 TIMESROMAN 10

says that font 0 is to print as 10 pt Times Roman. The font will be represented on your disk by a file called TimesRomart10.er the "ep" is the extension for hardcopy fonts. There will also be files called TimesRomanlOi.ep and TimesRomanlOb.ep for the italic and bold versions of the font, if you expect to use those.

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.31. Bravo will use the 12 pt version in display mode, and the 10 pt version if the magnification is 110% or less. 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 these .ep       and .al files, there is also a file called fonts.widths which

contains information about   the widths of all the characters in the hardcopy fonts.

Current versions of all the Parc fonts are stored on the Maxc directories <Fonts> and <Altofonts>, If you obtain new hardcopy fonts from these directories, you should also get yourself a new version of <Eonts>fonts.wiciths; after getting new fonts, be sure to initialize

Bravo.


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 t, 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.

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       .

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.

These features are not guaranteed to work; use them at your own risk.

4.8 Diablo and Ears hardcopy

To make an Ears file on your disk instead of sending your hardcopy directly to the Ears printer, use the Ears option to the Hardcopy command. It will ask you for the name of the file; the recommended name is the name of your document, wioth the extension replaced by "cars". Once you have made this file, you can store it on Maxc, where it can easily be printed    (see section 8.4 of the Alto Non-programmer's Guide), or you can give it to

PressEdit to combine it with other files into a            large document (see section 10 of the


Guide). Warning. the Ears file is typically 50% larger than the document file; be sure you have enough room on your disk.

For both Ears 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 tr option.


Font 5: Times Roman 12

ABCDEFHIJLMNOPQSTUVXYZ abcdefghijklmnopqrztuvwxyz !@#$%-&*()=1-Aill+f;:'",<>1?

ABCDEFHIJLMNOPQSTUVXYZ abcdefghijklmnopqrztuvwxyz !#$-&*( )..+11( .1{ }D;:r",.< )7?

ABCDEFHIJLMNOPQSTUVXYZ abcdefghijklmnopqrztuvwxyz !@#$%-&*()=+ \ILint;:mr< >1?

Font 9: Helvetica 18 (bold only)

ABCDEFGHIJKLMNO

PQRSTUVWXYZ

abcdefghijklmno

pqrztuvwxyz

!@#$%—&* ()-=+\(

[]{}(-4;:'",.<>/?

Text Box: Font 1: Times Roman 8
A BCDEFGHIJK LMNOPQRSTUVWXY2 abcdefghi jk I mnopqrztuvwxyz !@#S%-&*()-=+ \ In{	>/?
A BC DE FG H 1J K LAI NO PQRSTUVWXYZ abcd efghij k I mrropq rzttivwxyz (..42,0`$%-&*( 1-=4-‘1[1{1#-t;:'",.( )/?
A BCD EFG H IJKLMNOPQRSTUVWXYZ abedefghijklinnopqrztuvwxyz
!@#$%-&*0-=+ \	1€*;f",.< >1?
Font 0: Times Roman 10

ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrztuvwxyz

!@#$%-&*()---.+Ail )4- t::"'-<>/?

ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrztuvwxyz !@#$%_&*( )-=+\/t j/                  .>/?

ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrztuvwxyz

!@#V70-84*0-=+ \ ID{                    >1?

Text Box: Font 7: Helvetica 8
ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrztuvwxyz !@#S%-&•(	I[]{}
ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrztuvwxyz !@#$%-&' = +	LI,-	<>1?
ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrztuvwxyz
!@#S%-8,' -=+ 100 4- t;:'"-0/?
Font 6: Helvetica 10

ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrztuvwxyz

!@#$%-&*0-=+\1Eiti";:-,.<>/?

ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrztuvwxyz !@#$%–&'0-=+\11H)

ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrztuvwxyz

!@#$%-&*()-=+\ID{},-I;:'",.<>/?


 

Font 8: Gacha 10 (fixed pitch, no bold or italic)

ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrztuvwxyz

!@#$%-&*( )—+ \ I NO";      -on

Font 2: Logo 24

XEROX

 


Text Box:  Text Box: 4 0
R IR O
F
V
Text Box: 5
O
T
B
Text Box: 2
A
W
S
X
Text Box: 3
00 O
E
3
D
a
C
Text Box: 6
If
N
Text Box: Q
A
V
-I
Text Box: Here is the keyboard layoutText Box: 7	8
A
L
U I
U
V I
J K
L
Text Box: MText Box: II	3Text Box: 0Text Box: for Math: Text Box: 9	0
0
m	P
•	CC
Text Box: L
J
Text Box: 0Text Box: Font 3: Math 10 (no italic or bold) vEcv3t.c(tc37)D)occ-nlz--_Luv=xln
t%ool04-----F/V-T-#ħ/1/20'43/1--+4.1§.°3...<>01,
Text Box: 1/2Text Box: 3/4Font 4: Hippo 10 (no italic or bold)
ABEAMTHIKAMNOTIOPITTOXII/Z aigSekprp.socAtivowtipaTvwx,Pi. !@#$%-&*0-=+\1[]{}4-7;:',./

Here is the keyboard                   layout for

1 2          3     4     5     6    7      8         9

Text Box: # $ %	&
1 2 3 4 5 6	7
*

8                                                                        9

QWERT                      Y    U      I

m      0     E    P     T     NI,   T      I

0     6)    r     p     I'       Iii       v

AS          D    F     G     H     J

AEA             OF     H                     K

K

a      a     s    (I'   Y     71    s            K

Z     X    C     V     BAIM

Z X Z                  B   N M

X     i         P    v    iL


Text Box:  Text Box: Scroll barText Box: SYSTEM
WINDOW
Text Box: Text areaText Box: Line barText Box: DOCUMENT WINDOWText Box: Scroll up Thumb Scroll downText Box: Select character Select word ExtendText Box: Select paragraph (sets cursor to T)
Extend
Text Box: Select lineText Box: THE SCREEN	THE MOUSEText Box: WHAT MOUSE BUTTONS DOText Box: The blank key to the right of BS is called CLRText Box: What you can do next What you did last
1
file nan e
S	L
Text Box: NText Box: EText Box: BText Box: C O L
B A R
Text Box: TEXT AREAText Box: REDText Box: YELLOWText Box: BLUECOMMANDS


Delete selection                                                                                  During type in:

Text Box: CHANGING
TEXT
The following make a new paragraph if a paragraph is selected

Insert <text> before selection Append <text) after selection Replace selection by <text>

<text> can be typed or selected. ESC gets the current buffer. Buller n ESC makes buffer


Backspace character with BS or ctrl-A Backspace word with ctrl-W

Separate paragraphs with ctrl-CR Enter ctrl-Cchar> as <char> ctrl-S Enter TAB n as n with TAB held down

n current.


Text Box: Hardcopy to print. Options:
ESC gets you one already there.
Get to read in a file

Text Box: FILINGctrl-Z for unformatted text

Put to write out a file

File name goes into bar above window

Text Box: Diablo output, with sub-options: Space to start or abort Start on page n	Continuous printing
Reprint last page
Copies n Ears tile

CR to do it

Can edit file name like any other text_


MISCELL­ANEOUS

Undo works on most recent command

ESC repeals most recent command, using current selection. Everything selects whole document.

Normalize moves current selection to top of window.

[             e ' " put indicated brackets around current selection.

) -I I i extend current selection to closest matching brackets.

LF takes current selection as top of page. and moves selection to top of next page.

DEL cancels what you are doing. Out CR exits from Bravo

Time inserts current date and time. But ler 123 <text> sets buffer and

makes it current. ESC instead of

<text> just makes it current.

Text Box: Basic looks.	Mostly, SHIFT means NOT. Thus. Look b turns on bold. Look 13 turns it off.
As a number:	in points (72 'inch) - 123 or 123 pt.
in inches - 4.5 or 4.5" or 4.5 in in cm - 4.5 cm
As the left edge of a character:	select with RED
Copied from an existing paragraph: select with YELLOW As a position on the screen: point with BLUE
Text Box: italic	ES overstrike	justified
visible	-/t sub/superscript	nested (indent)
graphic	>/< upper/lower case	open - add 12 pis space before paragraph
0-9 ford	CLR to reset	q - add 6 pts space before paragraph
; document profile
Text Box: Distances (measured from left or bottom page edge):
In blank widths - type that many blanks
As an increment to current value:	or - followed by a number as above
Defaulted to a standard value: type \-
Text Box: Look Same <selection) sets all text looks of current selection to be the same as those of <selection> Look All <selection> sets all paragraph looks of current selection to be the same as those of <selection> Look ? displays looks 01 selected text or paragraph in buffer 3.
Look hardcopy makes screen match hard-copy with 10'!., magnification.	Look	Hardcopy clears it.
Look Magnify n does Look hardcopy with n0".- magnification.	Look	Maanity Diablo n matches Diablo hardcopy.
Text Box: Private Data Stamp: Yes No	X:d Y:d
Coarransm Edge Margin:el Between Colamns:d
Margins: Top:d Bottom:d Binding:d
Lille Numbers: Yes: No Modulusm Page-relative First Line:n
Text Box: Page Numbers' Yes No X	Y:d Fir st Page: n Roman Uppercase Not -on- f it st-page
Hear-boa or Odd Even Hearling: Nnt-on-first-pale followed by a heading paragraph_ also mei profile property
Text Box: LOOKSText Box: Standard Fonts
There are samples in the manual
Text Box: 0 Times Roman 10
1 Times Roman 8
2	Logo
3	Math 10
4	Hippo 10
5 Times Roman 12
6	Helvetica 10
7	Helvetica 8
8	Gacha 10
9	Helvetica 18
Text Box: PAGE
FORMATTING
Text Box: pe-in.
Left margin; default 85 pt
F - left margin of first line
P - left margin of other lines
Right margin: default 527 pt
X - space between lines; default 6 pt
Y - space between paragraphs; default 12 p1 Z - vertical tab: default none
Keep on current page; default 0; 11" forces new page
Tddn- sets n stops for table
TAB n d sets tab n; default not set
TAB = d sets even tab stops, default 36 pt
Text Box: (1 is a distance: use - to measure horn top or right ctrl-L causes page (or col) break alter current line Use two ctrl-Ls for page break with multiple cols Also note Look Keep and Look Z (vertical tab)Window -RED             to move boundary                                                Kill                      RED        to merge with window above

WINDOWS                         YELLOW      to spur (make new subwindow)                                                        YELLOW to erase contents. leave the window

BLUE            to make nevi window                                                                     BLUE       to merge with window below
Window Edge <Oslo-ice> acts the leil edge of the window 31 the specified point on the page; the default is 85 pt.

Jump <text> starts search at second line, doesn't move selection

SEARCHES               Find <text> starts search alter current selection. moves selection to the string bound

Substitute <text> for <text> - works on the current selection. Usually you want to do Everything first. Yes is equivalent to Replace ESC Find ESC; use Yes when you want to confirm substitutions.

>Bravobug will start a replay.                  ' allavobug/F1 will report a bug to the Bravo mairilainers first. Then replay.

REPLAY           Space will stop the replay and show you the number of the next command. You can then type:

Slow to slow down typein          Space to replay one more command                      Break n to slop before command n

Quick to speed it up                 Proceed to continue replay lull speed                      Terminate CR to stop replaying

Operators are a= -        ii, / \(enter). Art operator as a command combines the selection with the top of slack.

ARITHMETIC         Also:        '- exchanges x and y                         Calculator, with options:     Fixed                   operator to operate on x and y
You can also type a number, followed by an operator. The stack is just like the one in a Hewlelt-Packard calculator.

I rotates the stack                                                                 Scientific              0-9 ID set ragas atter decimal rat

Ell<pileQf int]              Radix n to set the radix (isti lor her)


MARKUP

by WILLIAM M. NEWMAN


Markup User's Manual

Table of Contents

1.      Introduction                                                                                                                                         60

2.      Things to know before you start                                                                         60

3.      Use of Markup                                                                                                  61

How to obtain Markup                                                                                        61

How to start Markup                                                                                           61

The mouse                                                                                                          61

The menu                                                                                                           62

The top row of menu symbols: freehand drawing                                                 62

The second and third rows: line drawings                                                            63

Text                                                                                                                   63

Image areas                                                                                                         64

Erasing and inserting image areas                                                                        64

Retrieving from memory                                                                                      65

Images and text                                                                                                  65

Changing the grid                                                                                               65

Inversion and fast erasing                                                                                   66

Rotation and scaling                                                                                           66

Image files                                                                                                          67

Turning the page                                                                                                 67

Finishing                                                                                                            67

Camera Input                                                                                                      67

4.      Markup Techniques                                                                                          68

Disk space                                                                                                          68

Use of existing illustrations                                                                69

For faster copying                                                                            69

Recovery from a full disk                                                                                     69

Printing                                                                                        70

Ears hard-copy                                                                                                   70

SLOT/3100 hard-copy                                                                                           70

Examples                                                                                                                  71


1.           Introduction

Markup is an Alto program for document illustration. Its basic purpose is to permit you to add illustrations to an existing formatted text document. It can also be used to prepare visual aids, and to manipulate illustrations prepared with other illustration programs, such as DRAW.

The purpose of this manual is to explain how to use Markup. Effective use of Markup involves three different kinds of issues. In the first place, there are things you must know before you start to use Markup; then there are the individual commands of Markup, and their effects, which you must learn; finally, there are a great many 'tricks' that you will find useful if you make extensive use of Markup. This manual is concerned mainly with issues of the first two kinds, those that you will need to understand in order to use Markup. The final section of this manual discusses some of the 'tricks' that fall into the third          category.

2.           Things to know before you start

Markup manipulates dots. The commands in Markup are almost all oriented towards helping you to manipulate the dots that make up the picture on the screen. With enough patience and skill, you could use Markup to build entire pictures out of individual dots, as if you were a Pointillist painter. On the assumption that you don't have the time for this, Markup gives you more powerful commands for manipulating whole collections of dots. Thus you can with a single command lay down a straight line of dots, or an entire rectangular area. Even after you have used one of these commands, the picture remains a collection of dots, each of which can still be individually modified.

Markup treats dots and text separately. Markup knows how to deal with text: it will accept formatted text from Bravo and other such programs, or simple text strings placed with the mouse. Text is, however, treated differently from dots. You use different commands to manipulate the two different types of information.

Markup is for marking up documents. In other words, Markup expects you to provide the initial document for marking up. If you don't have anything with which to start, Markup will provide you with something analogous to a single blank sheet of paper. If you do have a document from which to start, Markup will let you add more pages to it. Basically, however, Markup expects you to provide a document as a starting point.

Markup works with Press files. In the world of the Alto, there are many different sorts of file formats: Bravo files, Ears files, Draw files and plain ordinary text files. Most of these are for use with a specific program -- Bravo files with Bravo, Ears files for printing on Ears, and so on. Press format is rather different: it is supposed to be suitable for all kinds of program, whether text editors, page composition systems, printers or illustrators. As time goes on, we expect more and more of our programs to deal solely in terms of Press files.     Markup is the first of these.

The implications of the use of Press files are as follows:

1.       Any document to be illustrated with Markup must be converted to Press file format.
The PressEdit program is useful for this purpose. To convert an Ears format file


FOO.EARS, generated with Bravo, to Press format, type: >Pressedit foo.press                           foo.earsa

2.         Once in Press format, the document will be in the form of separate pages, each corresponding to a page of the final printed document. It will no longer behave like a continuous scroll, as in Bravo.

3.         Any illustrated document generated with Markup will also be in Press format, and must be printed by a process that accepts Press files. Examples of systems that will print Press files are the EARS subsystem on Maxc, and the PRESS program for the SLOT/3100.

3.         Use of Markup

This section of the manual starts by explaining how to get hold of a copy of the Markup program, and how to get the program running. It then covers each of the commands of Markup, one by one.

How to obtain Markup

The program you need is called Markup.run, and is to be found on the <Alto> directory on Maxc. A copy of Markup.run is usually included with the other programs on the BASIC NON-PROGRAMMER'S DISK. If your disk does not include a copy, transfer it from Maxc by means of the FTP program, as follows:

>Ftp maxc r <alto>markupsun How to start Markup

Simply type "Markup", followed by L—R. Markup will ask you for names of the input and output files. If you omit the input file name, and type only CR, Markup will supply a one-page blank Press file; if you omit the output file name, Markup will assume that you just want to play, and do not want to generate any output for printing. For convenience, you may type both file names on the command line:

>Markup InputFile OutputFile-CR.

Markup takes several seconds to get started. Eventually the display screen will go blank, the first page of the input file will appear, and the cursor will change to a small cross. Markup is now ready for your use.

The mouse

The mouse is the most important input device to Markup. Its three buttons are used throughout in a consistent manner:

RED button (top or left-hand): use of this button generally results in the addition of information to the document.

YELLOW button (middle): this button invariably controls the display of the command


menu that you use to select your next command.

BLUE button (bottom or right-hand): use of this button generally results in the removal of information from the document.

There are exceptions to these rules, which are noted below wherever they occur.

As a minor but important point, it should be understood that the so-called "ball mouse", with the three large buttons arranged from left to right, is much less satisfactory for use with Markup than the older-style mouse with three bar-shaped buttons, arranged from top to bottom. The old-style mouse can be moved much more smoothly than the ball mouse, and this is essential for some of the freehand drawing operations of Markup.

The menu

Whenever you press the YELLOW (middle) switch, one row of the command menu appears. You may move the mouse around with this switch held down, and select the menu symbol corresponding to the command you want -- the cursor symbol will change as you move from one menu symbol to the next. If you move up or down, more rows of the menu will appear. When you have selected the command you want, release the switch, and the menu will disappear.



Figure 1. The Markup menu.

The complete menu is shown above. The four rows of six symbols constitute the principal commands of Markup. Below these symbols are the names of the fonts available to you for adding text to your illustrations (the choice of fonts depends on the fonts defined in the input Press file). Above the menu are the names of other Press files containing images that you can add to your illustrations. To the left and right are the numbers of the other pages in the document, and the symbols "+" and "quit" for adding more pages and for leaving the Markup program when you are finished.

Text Box:  The top row of menu symbols: freehand drawing

The top row of the menu contains six different "brushes" for freehand drawing. When you select one of these six, you can "draw" by pressing down on the RED (top or left) button, and holding it down as you move the mouse; dots will appear as long as you hold the


switch down. The pattern of dots laid down matches the shape of the brush, except in the case of the two left-hand brushes in the top row, which are surrounded by broken circles to make them easier to follow.

The BLUE (bottom or right) switch is used for erasing, in an exactly analogous manner to the RED switch. As long as the BLUE switch is held down, any black dots over which the cursor passes will be changed to white.

Text Box:  The second and third rows: line drawings

The middle two rows of the menu are devoted mainly to line-drawing brushes. When these are selected, use of the RED switch dispenses black dots in straight line segments, and the BLUE switch does the same with white dots. The upper of the two rows is for use when only horizontal and vertical lines are required; the lower row will also draw lines at 45 degrees. Four different line thicknesses are provided, measuring 1, 2, 4 and 6 screen units across.

In contrast to the freehand drawing brushes, these brushes do not dispense dots in a continuous stream. Instead, a short straight segment is laid down every time the cursor is moved to the next intersection of an invisible grid. Thus if you press and release the RED switch, nothing will happen; if you press, and then move the cursor about 1/4 inch, a line segment will appear. As you move the mouse further, a connected sequence of line segments will be laid down, following the path of the cursor as closely as the grid will allow. Note that as long as the switch is held down, the corners of connected lines are filled in neatly; if you lift the switch between line segments, however, the corners will look messy. To rectify this, you can redraw the line segments that meet at the corner in question.

At the start, Markup sets the line drawing grid to 16x16 Alto screen dots. If you are a novice, you will find this relatively large spacing convenient, but for many purposes it is too coarse -- 8x8 is a more useful setting. The command for changing the grid setting is described below.

Text

To add text to your picture, simply type it. You need not position the cursor before you type, for Markup expects you to position the text afterwards. While you type, the text will appear wherever the cursor happens to be. During type-in, ac or BS erases the most recent character typed, and DEL or either the YELLOW or BLUE mouse switch erase the whole string. When the text is complete, position the cursor where the center of the text string should go, and press on the RED switch. The original text will disappear from the screen, and will reappear, centered about the cursor position.

Text is positioned in this way to the nearest half-grid unit. If you want to position it more accurately than that, do not release the RED switch immediately, but hold it down and move the mouse in the direction you would like to move the text. You will have to move through a small "dead zone", and then the text will begin to move, somewhat more slowly than the cursor. If you move the mouse beyond a certain distance, the text will disappear altogether. This is useful, for it allows you to change your mind about inserting the text.

Text may also be erased, using the BLUE switch. To do this, you must first select the "text brush", i.e. the T-shaped symbol in the lower right-hand corner of the menu. When you point at a string of text and press on the BLUE switch, the text will he erased. It may now be inserted elsewhere with the RED switch. Only the text brush and the text-and-image brush (see below) can be used to remove text. It is not always possible to erase text created


with other programs, such as        Bravo or Draw.

Markup "remembers" the text you erase, or type in and insert, and allows you to insert this text any number of times. In between insertions, you may draw with the freehand and line-drawing brushes, change fonts (see below), and move to other pages of the document.

You may add text in any of the fonts in the font portion of the menu. To select a font, press the YELLOW switch and move the mouse down until the font menu appears; lift up when the cursor is within the appropriate font name. You may change the font of a piece of text in this way: erase it,   switch fonts, and insert it.

Image areas

Markup provides a number of commands for manipulating rectangular image areas on the screen. You can erase an area, insert its contents somewhere else, rotate the image, make a mirror image, and scale it up or down. You may read in images from files on your disk, and may scan images in using a TV camera. You have the option, when erasing or moving an image area, of taking the                         text within the area too.

In order to use all these commands, you must understand that Markup can "remember" image areas, in much the same way that it "remembers" text. Thus when you erase an area, it doesn't vanish forever, but goes into Markup's memory; when you give the command to insert an image, it is the image in this memory that gets inserted. The fact that you can't see the image in Markup's memory is sometimes inconvenient; but there is only one display on the Alto, and Markup uses it just to show you what's on the page.

Erasing and inserting image areas

There is a small open square symbol in the bottom row of the menu: selection of this symbol allows you to erase and insert image areas. To erase, you must indicate the rectangle to be erased, by tracing out a diagonal of the rectangle. Position the center of the cursor at one corner of the rectangular area, press down with the BLUE switch, move to the opposite corner, and lift up. As you move the mouse, the area you will erase is shown by inverting its contents, i.e. by turning black dots white and white dots black. Note that the boundaries of the area are constrained to the nearest grid lines.

If, during the erase operation, you change your mind or realize that you started in the wrong place, simply retrace your steps until the black inverted area disappears; you can then lift up with no side-effects. If you should lift up, and erase some priceless gem of an image, there is a special command to put it back exactly where it was (see below, retrieving from memory).

To insert an image, select the image area symbol in the menu. Then press down with the RED switch, and whatever image is in Markup's memory will be added to the displayed page. Thus an image can be moved by selecting the image area command, erasing it and then inserting it in its new position.

When you press the RED switch to insert an image, Markup shows you the boundary of the rectangle where the image will be added. You may keep the RED switch down and move this rectangle around until you are satisfied, and then lift up. If you decide you don't want to add the image at all, move the cursor to the edge of the screen, so that the rectangle disappears; you may now release the switch without causing insertion.

Markup includes a "feature" to help you position images exactly where you want them --


until this feature was provided, it was very difficult to align parts of an image with the picture on the screen. The feature allows you, before erasing an image area, to copy a small square region of the image into the cursor; this is done by selecting the image area command, positioning the cursor over the area of interest, and pressing the BLUE switch down and up without moving the mouse. Now you may erase the area. When you try to insert it with the RED switch, the cursor will show you where the area of interest will appear, and you can align it appropriately before lifting                                                            the RED switch.

Images with dimensions                                                                4 4

The third row of the menu includes a symbol made up from four arrow-heads: this symbol can be selected for image manipulation with dimensions. The command operates in all respects exactly like the image-area brush, except that dimensions are shown. During erasure, two numbers are displayed near the cursor, indicating the size of the area selected for erasing. During insertion, the two numbers show the displacement of the image from its original position when erased; this is useful for bar charts etc. Measurements are given in screen dots (1/80 inch each).

Retrieving from memory

The symbol at the right-hand end of the second row, depicting an arrow emerging from a bucket, can be selected to retrieve the image, or string of text, from Markup's memory. Whatever was last erased, whether a text string or image area, will be replaced on the screen in its original position, and will be expunged from Markup's memory. This command is useful now and again: for example, to copy an existing text string, you can erase it, insert it at the new position, and retrieve from memory to put back the original text.

Images and text

At the left-hand end of the bottom row is a symbol made up of the image area and text symbols combined. If this symbol is selected, text and image areas can be manipulated together.     This command is very useful for moving entire illustrations.

The image-and-text command works in a similar fashion to the image area command: the BLUE switch is used to define the rectangular area to be picked up, and the RED switch is used to insert the image and text in the desired position. As in the image area command, a rectangle shows where the information will be inserted; also the same cursor alignment feature is available. Images and text may be moved between pages by erasing them, selecting another page, and inserting them; this is useful for adding existing illustrations to a text document, and applies to pure images and pure text as well as to combinations of the two.

The only unusual feature of this command is its criterion for picking up text. Any text strings placed on the page with the aid of Markup will be picked up provided they lie within the boundary of the overall enclosing rectangle. Formatted text from Bravo, however, is picked up only in units of a paragraph at a time -- it is not possible to pick up part of a paragraph and leave the rest. This is sometimes useful, for it means that you can pick up an illustration without accidentally including part of a nearby text paragraph.

Changing the grid

The symbol resembling a number-sign, next to the image-and-text symbol, can be selected in order to change the grid spacing. This command uses the BLUE mouse switch for size


changes, and the RED to change the grid alignment.           Either switch, if pressed, will cause
lines of dots to appear on the screen showing the horizontal and vertical grid spacing.

To change the grid spacing, press down on the BLUE switch. Two numbers will appear near the cursor, showing the horizontal and vertical spacing. As the mouse is moved, the spacing will change. It can be adjusted to as high a value as you like, and to as low as 5 units in each direction, independently in the two directions. Note that 45-degree lines cannot be drawn if the horizontal and vertical spacings are different.

You may wish, after changing the grid spacing, to make sure that lines drawn with the new grid are aligned with those drawn previously. To do this, you may have to change the grid alignment, using the RED switch. When the RED switch is held down, two numbers show the coordinates of the grid "origin"; you can think of these numbers as defining the position of the "squared paper" on which the grid is drawn". With the aid of these numbers, plus the dots showing the grid itself, it is usually possible to get things lined up.

Inversion and fast erasing

The bottom row includes a command symbol made up of a black box together with an open box. This command provides two functions. With the RED switch, image areas may be inverted, i.e. black dots turned white and vice versa. With the BLUE switch, fast erasing can be done, at the expense of retrieval from mistakes -- once the dots have gone, they can't be retrieved or inserted elsewhere. If you should ever need to erase a large area rapidly, you will find this command saves you many seconds of waiting.

Rotation and scaling                                                                                                                                                        9:]

Once an image has been erased and stored in Markup's memory, it can be manipulated in a number of ways, using the one remaining command symbol on the bottom row yet to be described -- the one consisting of two open boxes. This command differs from all the others in its use of the mouse switches: both switches cause the image to be inserted. The RED switch is used to scale the image, to rotate it through multiples of 90 degrees, and to make mirror images of it. The BLUE switch is used to rotate the image through arbitrary angles.

When you press down on the RED switch, a double cross appears, marking the "origin" for

scaling and rotation. You may now choose between          the various functions available, by

moving the cursor in various different directions.             As shown below, the upper right
quadrant is used for scaling, while the two adjacent quadrants provide mirror-imaging, and

Text Box: 180° rotationthe lower-left quadrant provides 180-degree rotation. If the cursor is positioned directly above or directly to the left of the origin, the image will be inserted rotated 90 degrees anticlockwise, while if it is directly to the right or below, the image is rotated 90 degrees clockwise. In every case, a rectangle shows the position where the image will be inserted; in the case of scaling, tick-marks are placed at intervals of half the size of the original.


Text Box: ro
0
6
mirror about vertical axis

scaling


900 anticlockwise  :11F.   90° clockwise

mirror about horizontal axis

Figure 2. Control of scaling and rotation by quadrant.


Pressing down on the BLUE switch also displays the double cross origin, and when the mouse moves, three small dots show the positions of the other three corners of the rotated image.    Rotation is zero when the cursor is directly to the right of the origin.

In both cases, the image will appear when the mouse switch is released. To prevent any insertion, simply return the cursor to the vicinity of the displayed origin and release the switch.

Image files

Images may be stored in Markup's memory either by erasing them from the displayed picture, or by reading them in from Press files stored on the disk. The names of the files that you can access in this way are shown above the main menu, and you read them in by moving the cursor so that it coincides with the name of the image you want; when you lift the YELLOW switch, the image is placed in Markup's memory, whence it can be inserted, rotated or scaled as described above.

Markup selects images for inclusion in the menu at initialization time, by scanning your disk directory for files with extension ".press", and then checking to see which of these include an image on the first page. A maximum of 20 such images may be included in the menu. You may inhibit the construction of the image file menu by invoking Markup thus:

>markup/n InputFile OutputFilega

Turning the page

The numbers to the left and right of the main menu may be selected in order to turn to other pages of the document. Markup's memory is not affected by page turning. The "+" symbol creates a fresh blank page. There is no command for erasing a page, but if all the text and dots on a page are erased, Markup will delete the page from the document when it writes out the output file.

Finishing

When you have finished using Markup, select the word "quit" to the right of the page number display in the menu. Markup will think for a while, and then return you to the Alto Executive.

Camera input

The menu contains a few blank spaces, including two on the third row. However, if you happen to use an Alto with a TV camera attached, a special symbol will appear on this row, depicting a square with a round hole in it. This symbol controls the use of the camera for scanning in images.

Before you select the camera command symbol, you should define a rectangular area of the screen into which to scan the image; do this by erasing an area with the image-area or fast-erase brushes. Then when you select the camera command, the normal screen picture will disappear, and you will see instead the view through the camera lens, with an area of the required size highlighted within a black border. You can move the border around until it encloses the desired image, and then press the RED switch to scan the image onto the page and return to the normal display. The mouse may be moved while the RED switch is held down, in order to make accurate adjustments to the position of the border.


The camera hardware performs what is known as thresholding on the image -- dark areas are made black, and light areas white. The resulting image quality is not always perfect. To improve it, you can adjust the threshold level while the camera image is visible, by pressing the BLUE switch and then moving the cursor up and down: upward movement will darken the image, and downward will lighten it, at a rate proportional to the cursor's horizontal position.

Use of the TV camera unfortunately involves learning how to switch it on, and how to adjust the various knobs on the camera control box. This is best understood by watching someone else do it.

4. Markup Techniques

This section is for serious users of Markup, who want to learn how to produce good-quality illustrated documents with the minimum of effort. The list of techniques described here is by no means exhaustive. After all, Markup is really a 'box of tools' for manipulating the image on the screen, and there are no well-defined limits to the utility of these tools. Each tool has an explicit purpose, like 'line-drawing' or 'area manipulation', but there are generally several other useful things you can do with each tool; for example, you can erase with the line-drawing brushes in order to 'square off' an irregular black area. The more you use Markup, the more techniques and strategies for illustration you will learn.

This section deals with two sorts of technique: those for managing your document as a whole, and those for creating the individual illustrations. Document management techniques are discussed first.

Disk space

The first thing you must understand before trying to illustrate a large document (i.e. a document with more than half a dozen illustrated pages) is that Markup consumes large quantities of disk space. As a rule of thumb, you should make sure there are at least 100 free pages on your disk for every illustrated page of the document. Thus if you intend to put illustrations on 12 pages, you should have 1200 free pages before you start. The exact amount you will need depends on the size of the illustrations: if you intend to put just a few tiny images on each page, in the same manner as this manual, then your disk space requirements will be much less.

The reason for all this caution is that Markup cannot he relied upon to recover gracefully if it runs out of disk space, unless it runs out after you have 'quit'. Whenever you turn to a different page, Markup checks to see if you have 100 or more disk pages available; if you do not, it writes out the pages you have created or modified so far, and quits to the Executive. This is not fool-proof, for it is still possible for you to spend three hours illustrating twenty pages, and then run out of disk space while working on the twenty-first, leaving you with no means of recovering your lost work. When you 'quit', Markup goes through a cleaning-up operation, combining the new versions of the pages you have created or modified with the original versions of the pages that have not been changed. This, too, consumes disk space in large quantities, but if Markup fills up the disk during this operation, or quits when it finds fewer than 100 disk pages, there is a simple recovery procedure (see below, Recovery from a full disk).

For reasons such as these, it is generally worthwhile to split large documents into a number of separate Press files, and combine them only when all illustrations are complete. This is easily done with the PressEdit program (see <AltoDocs>PressEdit.ears). Each separate


Press file should include no more than six to ten illustrated pages.

Use of existing illustrations

Documents must often be edited many times before they are ready for distribution. Markup has been designed to allow you to prepare the illustrations for such documents on a separate Press file or files, and then to combine them with the text. You may also use illustrations prepared with other programs, such as Draw, Nsil and Flyer.

This technique amounts to the preparation of one or more Press files that form a portfolio of illustrations for inclusion in the document. It is generally more convenient if each Press file page contains just one illustration. lf, however, you are sure that a certain group of two or more illustrations will be placed on the same page, then you will save time by keeping them on one page of the portfolio.

The PressEdit program is again the means whereby the formatted text file, in Press or Ears format, is combined with the portfolio file or files. Once the files have been combined, you can commence [he rather tedious operation of copying illustrations from the portfolio pages to the appropriate text pages using the image-and-text brush. Make sure that, at the end, nothing is left on the portfolio pages, so that they will be expunged from the file when you write it out.

Use of Draw output

Press files generated with the Draw program may be used as input to Markup. You may define curves with Draw, and then read the resulting Press file into Markup, in order to add image information or text.

Although Draw allows you to add text to the curved pictures you draw, it is often more convenient to omit the text at the Draw stage, and add it with Markup. If you include text in the Draw file, you will find the resulting picture very slow to edit with Markup, particularly if you mix several fonts.

For faster copying

Markup uses a rather out-of-date method of copying image areas, which means that this operation is sometimes rather slow. In particular, if the grid is not set to a horizontal spacing of 16, with the origin at zero, then images will be inserted very slowly. Before you start copying illustrations from the portfolio to the text pages, therefore, make sure that the horizontal spacing and grid origin are at 16 and zero. For ease of vertical alignment, however, you may set the vertical spacing to a smaller value, such as 8, without affecting performance.

Recovery from a full disk

If Markup exhausts disk space during during a page turn or the 'quit' operation, it prints a message on the screen telling you what to do. In essence, Markup saves all the new and modified pages of the document on a Press file called MARKUP.SCRATCH, and this allows you to reconstruct the desired output file.

The most difficult part of this operation is to figure out which pages are included in MARKUP.SCRATCH. You may use Markup itself to help you here, but with caution, for Markup erases MARKUP.SCRATCH and creates a new version. Therefore you should copy


MARKUP.SCRATCH to a file with another name (such as FOO.SCRATCH), and look at this new file with Markup. When you have figured out which pages this file contains, you can use PressEdit to put together the required document out of this and the original file. Before doing all this, you must of course delete some files from your disk, so as create more space.

Printing

There are now two ways in which you can print the Press files produced by Markup. One of these is with Ears -- this method is not guaranteed to print your document, but it will handle most diagrams. Ears output is, because of its speed, more convenient when multiple copies are required. The other method of printing involves the SLOT/3100; you can print any Press file from Markup on this printer, but you must yourself go to the Alto that controls the printer, and run the Press program to print the file. The SLOT/3100 produces very good quality hard-copy when it is properly adjusted.

Ears hard-copy

To print a Press file on Ears, you must be running the Executive. The simplest method is the following:

>Ftp Maxc s/s FileName Ipt•CR

This command invokes the FTP program, and sends the Press file to "Ipt:" on Maxc. Another way of doing the same thing is to transfer the file to Maxc with FTP, and then log in to Maxc and type the following:

@Ears FileName

This command gives you all the normal options (number of copies etc.), as described in section 8.4 of the Alto Non-programmer's Guide.

SLOT/3100 Hard-copy

To print your file on the SLOT/3100, you must first send it, with the aid of FTP, to an Alto equipped with a SLOT/3100 printer. Instructions for printing are provided in a binder near the printer.        Follow them.


Text Box: CCEText Box: A., • —IceText Box: 431
BSM
team #
account #
amount

/

car #


invoice
1

(        130

Li

car # invoice #, etc

I         


branch

budget center month

4 32


Text Box: BSM SM
Text Box: copy CCE
Text Box: Car file


Text Box:  
HQ
FSM
Text Box: IIText Box: 4 34Text Box:  Text Box: 	driver
I 	team
Branch  Secretary


CCE file


Text Box: Branch  Accountant
Text Box: FM-D
Text Box: team
account #
amount
vendor
Text Box: budget center 4 39
Text Box: 384	sign


Text Box: originator branchText Box: originator branchBCM

Text Box: 411Text Box:  Text Box: BTCheck register
file



DRAW

by PATRICK C. BAUDELAIRE


Draw Manual

Table of contents

Text Box: 74
75 76
78
78
78
79
79
80
80
81
81
82
83
85
85
85
86
86
88
89
89
90
90
91
92
92
93
94
95 96
Introduction

1.       Using the menu

2.      Drawing a curve

3.     Text

3.1 Text input

3.2 Text positioning 3.3 Menu command

4.      Redrawing and rewriting

5.      Moving, copying, transforming

5.1 Selecting 5.2 Translating 5.3 Copying

5.4 Transforming: rotation and scaling

5.5 Transforming: stretching, slanting, symmetry, etc

6.      Deleting

7.      Refreshing

8.      Undoing

9.      Use of the mouse buttons 9.1 Defining a point

9.2 Pointing

10.    Saving and retrieving pictures

11.    Printing

12.    Fonts

13.    On-line documentation

14.    How to run DRAW

15. Summary of commands 15.1 Menu commands

15.2 Keyboard commands

Appendix A: Mouse and keyboard terminology Appendix B: Arrow head font

Appendix C: Examples


Introduction

DRAW is an interactive illustrator program for creating pictures composed of lines, curves and text captions. All the illustrations in this document have been created with DRAW. Appendix C shows a few interesting examples.

Illustrations are drawn on the Alto screen with the help of the mouse (the reader not familiar with the use of this device should consult Appendix A which explains standard keyboard and mouse terminology).

Three types of actions are usually necessary for creating and altering pictures:

-  Selecting an operation or command to be executed by DRAW. Most commands are selected by clicking in a command menu area of the screen. Some commands may also be typed on the keyboard.

-  Defining points in the picture wich govern the drawing of a line, of a curve, or the modification of the picture. These points are specified with the help of the mouse in the picture area of the screen.

-  Selecting the brush to be used for drawing a line or a curve in the picture, or selecting the font to be used for writing a caption. Brush and font are also selected by clicking in the brush menu area or the font menu area of the screen.

As just mentioned, the DRAW screen is divided into a number of areas:

1

message area

r - -

Text Box: command
menu
brush menu

picture area

Text Box:  font menu

C.------------------------------------

caption area

The picture area shows the current state of the illustration being composed. The menu areas contain symbols which serve to identify commands, brushes and fonts that may be selected. The caption area is used to show typed captions destined to be added to the illustration. Finally, the message area is used by DRAW to display informational, error or prompting messages to the user.


1. Using the menu

The menu is organized in three parts:

Text Box:  
•
Brush selection

•

Text Box: nThe "paint brush" used for drawing lines and curves may be changed by pointing in this area. The size and the shape of the brush may be changed independently. There are four different brush sizes (on the left side of the menu) and four different brush shapes (on the right side of the menu). Brush selection may be done at any time, regardless of the current selected command. This is done by clicking the chosen brush size and chosen brush shape.

The current brush is shown here.

d6            1

X

A

T

Command selection

All commands involving display interaction are in the central area of the menu. Each is represented by a small ideographic symbol. A command is selected by clicking the corresponding symbol. DRAW indicates which command is selected by changing the shape of the cursor to match the command symbol.

 

 

Text Box:  Text Box: 0Text Box: 2Text Box: 1Text Box: 3Font selection

One of four text fonts (numbered from 0 to 3) may be selected by clicking the corresponding font number. The current font is shown on a black background. Font selection may be done at any time, regardless of the current selected command.

When pointing at the menu, you may click any one of the three mouse buttons.

A few additional operations, which do not involve display interaction, are invoked by control keys. They never affect the current selected command.


2. Drawing a curve

A curve is defined by a number of special points, called knots, distributed along its trajectory. The density of knots is generally a function of the curvature of the curve. If the curve is not closed, its end points will be the first and last knots. For instance, a curve looking like this:

could be defined by these 5 knots (shown as big dots):

In order to draw a similar curve, first select the command +. Then using the RED button, click down 5 knots at these approximate positions:

Then terminate the drawing command by hitting the ESC key (at the top left corner of the keyboard), or by selecting a new command. The appearance of the curve depends on which brush is currently selected, for instance:

•

•


 

One single knot makes a dot, two knots make a line:

n                          •

 

 

 

In order to make a smooth closed curve, select the menu command G:), and then specify the knots by clicking RED:

C4

Of course, you need to define at least three knots. Here are some examples:

When defining knots, you may edit your input: delete the last knot with CTRL A, start over with DEL.

To obtain a smooth regular curve, it is better to distribute the knots evenly along the curve. It is not usually necessary to specify many knots unless you want a particularly sinuous curve. For sharp bends specify more knots. In the extreme, two or more overlapping knots will make a cusp.

2 3                                              2

1 V                    4  1see 3


3. Text

3.1 Text input

Text captions are added to an illustration by typing on the keyboard. The caption being typed is displayed in the caption area located at the bottom right corner of the display area. Delete characters with the a key. To start over hit the RETURN key and type again.

To put the text caption into the picture, invoke the text command by either hitting the RETURN key or clicking the caption area itself. As a result, a short section of the text caption becomes the cursor and the text buffer is closed: the caption is displayed on a black background. This means that further keyboard input will start a new caption.

You may now repeatedly deposit copies of the text caption in the picture area by clicking the RED mouse button. If part of the caption lies outside the picture area, the text is not displayed but is shown as a striped rectangle of the same size. The very last deposited copy may be erased with either CTRL A or DEL.

This is an example

This is an example This is an example

XEROX

XEROX           XEROX

The text font may be changed at any time, using the lower area of the menu. The caption area and cursor are updated accordingly, but text already deposited in the illustration is not affected.

3.2 Text positioning

The truncated portion of the caption which appears as a cursor is used for easier positioning of the caption in the illustration. In order to allow either centering or alignment of a caption, the portion displayed may be either the beginning, the middle or the end of the caption. The effect is accomplished by setting the appropriate text

positioning mode with CTRL T, as illustated below.      The options are: center, left, right, top
and bottom. The initial mode is center.

This is an example


3.3 Menu command T

If the central section of the caption is blank, or if the characters are too large, it may not be practical to display a portion of the caption as the cursor. Then it is probably

preferable to use the T-like pointing symbol T. This is done by selecting the text command in the menu area (rather than by typing _RETURN or by clicking the caption area). Except for the cursor, the effect and operation of this command are as described earlier: point at some position in the illustration and click RED.

The position of the caption relative to the clicked point is a function of the text positioning mode. For example, if the mode is left, the clicked position will become the left edge of the caption:

-r

left positioned caption

Similarly for other positioning modes:

Centered caption

T

Right positioned caption

 

4. Redrawing and rewriting

The shape of curves cannot be changed. However you can redraw a curve using a different

brush. Select the menu command with a brush-like symbol a. Redraw a curve, using the current brush, by pointing at the curve and clicking RED:

Text Box:  Remember that the current brush may be changed either before or after selecting the command a.

With the same command, you may also rewrite a text caption in a different font:


The menu command with the scissor-like ideogram d6 has a similar function. It is used to make dashed curves and dashed lines. It has no effect on text.

It is also used for the inverse operation.

5. Moving, copying, transforming

You may copy and move lines, curves and text. Lines and curves, but not text, may also be transformed in various ways: rotated, scaled up or down, stretched, etc. You must first select the objects to which these operations are to be applied.

5.1 Selecting

First get from the menu the selection command D. All previously selected objects, if any, are unselected. Using RED, click all the objects to be selected. Selected text is shown on a black background. Selected lines and curves exhibit a little square symbol.


5.2 Translating

Selected objects may be translated with the command 4. Using RED, click twice with the

tip of the arrow symbol 4 to specify a source point P1 and a target point Q1. The translated objects remain selected.


Qi

 


The translation is defined uniquely by the length and orientation of the vector PiQv Therefore the two points may be arbitrarily positioned relative to the selected objects.

5.3 Copying

The command * is for making translated copies of the selected objects. It operates in the same fashion:


,E8

 


 

P

1

Qi


5.4 Transforming: rotation and scaling

The command A is used to apply a similarity transformation, i.e. an arbitrary combination of rotation, scaling and translation.

The transformation is specified by four points (say P1, P2, Q1 and Q2). First define some dimension PIP, of the original object, and then define the corresponding dimension Q1Q2

of the transformed object. The transformed objects remain selected. Text is treated in a special way: it is simply repositioned, by transforming the left-top corner of the text caption.


Text Box: PP
P2		 	 		
					 
				Q2	

 



To be more precise, the transformation is defined uniquely by the mapping of the source vector P1P2 into the target vector Q1Q2. The four points may be arbitrarily positioned.

Notice that there will be no rotation if P1P2 and Q1Q2 are parallel, and no scaling if P1P2 and Q1Q, are of equal length. Section 9.1 gives details for specifying such constrained transformations.

Text Box:  The command i is used in a similar fashion to make transformed copies of selected objects.


5.5 Transforming: stretching, slanting, symmetry, etc

An other pair of commands permit more complex transformations. The command executes a general affine transformation, which is an arbitary combination of translation, rotation,

scaling, stretching, slanting, symmetry and more. To be precise: an affine transformation is a linear

transformation which preserves parallelism; a linear transformation preserves colinearity of points; non-affine linear transformations include perspective projections.

The transformation is specified by six points (say, in the order of input P1, P2, P3, Q1, Q2 and Q3). It is defined by the mapping of the source triangle PIP,P3 into the target triangle Q1Q2Q3, as illustrated here:

 

2

Q2

 


Text Box:


Text Box:

Q1

Q3

 

As shown above, text is treated in a simple way: it is merely repositioned. Like the 4-point transformation (¨                  and I), the 6-point transformation comes in two versions: A

(transform) and      (copy and transform).

For best results, P1P2P3 and Q192Q3 should be real triangles, i.e the three vertices should

not be colinear. Particular effects are obtained by carefully choosing the shapes and the sizes of the two triangles (see section 9.1).                              Here are some examples:


+                                                                           +


 

+

slanting

+

 


+              ħ


I I I

I I I

I

I I I

1 1

1
symmetry

+                                      +

+ 

+


6. Deleting

To delete lines, curves and text, select the menu command X. Then, using RED, click at the objects to be deleted.



The keyboard command CTRL D will delete selected objects. Therefore, CTRL E followed by CTRL D will delete the whole picture.

7.    Refreshing

After deleting an object, the screen may not accurately represent the illustration, and will need to be refreshed. The inaccuracies result whenever one of several overlapping objects is deleted: a portion of an other object may also be erased. These effects do not affect the illustration itself, but only its current representation on the display. A new refreshed picture may always be obtained by hitting the TAB key. This is a relatively fast operation which, like any other keyboard command, may be executed at any time.

8.       Undoing

There is a limited "undo" command for operations which are destructive or simply not easily invertible: delete, translate and transform. The command is CTRL u. It will undo the effects of the following commands:

CTRL D X * A

You may undo up to several levels of delete, translate and transform operations. The depth

is a runtime variable which depends on availability of free storage.


9. Use of the mouse buttons

In the previous sections, only the use of the RED button has been described. Although all mouse buttons are equivalent in the menu area, they have various interpretations when used in the picture area. The mouse buttons are used in one of two modes, depending on the command.

9.1 Defining a point

With the following commands: + T the mouse is used for defining a point in the picture area, namely a knot of a curve, the position of a text caption, or the geometric parameters of a translation or a transformation. The point is defined by clicking one of the mouse buttons. Each button has a different function:

RED yields the exact location pointed at by the cursor. Click with the tip of 4 A       the center of + G3 , the bottom of T.

YELLOW yields a point only if the cursor is in the vicinity of an object. Then it will be the nearest point on the nearest curve, or the center of the nearest caption. The main applications are:

connecting curves: end knots of a curve or a line may be positioned on some other line or curve

positioning arrow heads (Appendix B): using text positioning mode center, arrow

head characters may be positioned at the end point of a curve or a line

constrained translation: in order to do a translation precisely in a given direction (e.g. horizontally or vertically), construct a temporary line along this direction, and specify the translation points on this line


BLUE is used to position a point on a grid. The grid which may be displayed and erased with the keyboard command CTRL G. Useful applications are:


vertical and horizontal           lines

text alignment

left

justified               centered

text                                   text1•11n11•n•n

right
justified
text


symmetric curves



particular transformations:


•


 

rotation

scaling

 



Text Box:


9.2 Pointing

With the commands d6 X q , the mouse is used for pointing at lines, curves and text captions. All buttons are equivalent. They may be used in two different ways, for designating either one single object or several objects enclosed inside some rectangular area.

Pointing at one single object is simply done by clicking, that is to say pointing in the vicinity of the object and                                       quickly depressing and releasing the button.


 

button down & up

 

 


Text Box:  Text Box: button downText Box: pointing areaText Box: sunText Box:  Designating several objects may be done by bounding a rectangular area: point at one of its corners, depress a mouse button, move the cursor to the opposite corner and then release the button. This operation designates all the objects which are totally enclosed within the rectangular area. The trajectory of the cursor is irrelevant. There is no visual feedback during the bounding operation, but this does not seem to be a major hindrance.


10.   Saving and retrieving pictures

DRAW uses its own format for picture files. The recommended file name extension is DRAW.

Two keyboard commands are provided for reading and writing picture files:

CTRL W followed by a file name, terminated by ESC or RETURN, writes the whole picture onto the file. So:

CTRL W PICTURE.DRAW RETURN

CTRL R, followed by a file name, terminated by ESC or RETURN, reads in a picture from the file and adds it to the current picture.

Thus a file "notebook" of elementary pictures may be constituted and utilized for composing complex pictures from simpler elements.

The DRAW file format is also accepted by the spline editor FRED (see documentation on <GR-DOCS>FRED.EARS). Therefore FRED may also be used to create pictures to be incorporated in DRAW illustrations. However FRED ignores text and curve brushes, and need only be used for making complicated curves requiring careful editing.

11.    Printing

DRAW pictures may also be printed and merged into documents. For that purpose, DRAW outputs one single page PRESS file (the recommended file name extention is PRESS). The command is CTRL P. For instance type:

CTRL P PICTURE.PRESS RETURN

Pictures may be printed on EARS or on the 3100 PRESS printer. Printing on EARS is done automatically through MAXC: simply use the command file PRINT.CM that DRAW generates

(it will transfer the file to device LPT: via FTP).      After your DRAW session, type:

@PRINT.CM@ RETURN

You will obtain much better pictures with the 3100 PRESS printer. However, in this case, the operation is manual: you have to transfer the PRESS file to the PRESS printer Alto and run the program PRESS.

For merging a picture PRESS file into an other document in PRESS format, use MARKUP and PRESSEDIT (see section 10 of the Alto Non-programmer's Guide).


12.        Fonts

Fonts to be used with DRAW must satisfy standard naming conventions (e.g. HELVETICAl2B). Furthermore, for better printing results you should use coordinated Alto/EARS fonts.

DRAW currently uses a default font set which is read in when the program is started:

HELVETICAl2 (standard size) HELVETICAl2B (bold)

HELVETICA8 (small size) ARROWS10 (see Appendix B)

You may change fonts with the command CTRL F, followed by a font number (0 to 3), followed by a font name. For instance, change font 3 with:

CTRL F 3 LOG024.AL RETURN

You may also release a font and reclaim the corresponding storage space, by omitting the file name:

CTRL F 3 RETURN

13.   On-line documentation

DRAW comes with a 13 page on-line          manual (an abstracted                        version of the present

documentation). The manual is activated and disactivated with CTRL ?.      Consecutive pages

are obtained    by hitting the LF key.

When viewing the manual, the current picture is automatically saved and restored. The first page of the manual is a packed summary of all the commands. Therefore you may take a quick look-- so to speak-- at this summary at any time, without losing your

picture.             A     printable      version     of the           summary      may      be found                on
<ALTODOCS>DRAW-SUMMARY.EARS.


14. How to run DRAW

Get the file package <ALTO>DRAW.DM and unpack it with the Alto program LOAD. It contains the following files:

DRAW.RUN: this is the illustrator,

MANUAL1.DRAW to MANUAL13.DRAW: 13 pages of on-line manual, default fonts (see above),

CIRCLE.DRAW: contains a carefully done 8-knot closed curve which impersonates a circle very well (look at it in sections 2 and 5.5).

If you only need the program DRAW.RUN, the current version may simply be obtained from the directory <ALTO>.

To run the program, type:

DRAW RETURN

Because of a current shortage of memory storage, it may be good practice to release the fonts you will not be using (see section 12).

Terminate with CTRL Q.


15. Summary of commands

15.1 Menu commands

The most commonly used menu commands may also be invoked from the keyboard. Tt allows faster interaction for the                                                          experienced user.

menu           equivalent       action

command    keyboard

command


Text Box: position text RETURN	position textESC

Ef3

X      CTRL X

0     CTRL S

CTRL Z

CTRL C

•

T

text buffer


draw curves & lines

draw closed curves & lines

redraw curves & lines, rewrite text

dash/undash curves & lines

delete

select

translate

copy & translate

transform (4-point)

copy & transform (4-point)

transform (6-point)

copy & transform (6-point)


15.2 Keyboard commands

CTRL A             delete last mouse input

(applies to: + EDT*4•ii A

start over

(applies to: ħ              T**•i A

delete characters in caption area CTRL T    change text positioning mode

TAB

CTRL G

refresh the picture display/erase the grid

 

 

CTRL D            delete current selection

CTRL E            select everything

CTRL U               undo

(applies to: CTRL D X4-• A)


CTRL W  CTRL R  CTRL P  CTRL F

CTRL ?

LF

CTRL 0


write a picture file (DRAW format) read a picture file (DRAW format) write a PRESS file

change font n

enable/disable on-line manual get next manual page

quit


Appendix A
Mouse and keyboard terminology

The mouse

The three mouse buttons on a mouse are labeled RED, YELLOW and BLUE. The physical arrangement of the buttons depends on the model:

The most common interaction with the mouse is the click: the mouse is first moved over the table until the cursor, which follows the mouse movement, is positioned at the desired spot on the screen; then a button is depressed and raised in one motion. Commands described in this manual usually call for clicking a particular mouse button, for instance: "point at a screen position and click RED".

The mouse may also be used to bound a rectangular area which the user wishes to define: first position the mouse at one of the corners of the rectangular area and depress a mouse button; then move the cursor to the opposite corner and release the depressed mouse button. The trajectory of the cursor between the two corners of the rectangle thus defined is unimportant.

The keyboard

In this manual, keyboard keys are given in underlined small size capitals, e.g. Q. The special dark colored keys are identified by their keyboard label:

TAB, CTRL, SHIFT, LF, DEL, BS. RETURN

The CTRL and SHIFT keys are used similarly to the shift key on a typewriter. For instance, CTRL A means: depress the CTRL key; depress and release the A key; then release the CTRL key.


Appendix B
Arrow head font

There is a special font of arrow heads for use with various illustrator programs (MARKUP, DRAW, SQL). The Alto and EARS versions are: <ALTOFONTS>ARROWS10.AL and <FONTS>ARROWS10.EP.

The arrow heads come in 8 directions, 4 sizes and 2 styles:


Text Box:  	A A A	A A

 



The keyboard mapping is as follows:

-    the arrow heads occupy the left 8 keys of each row;

-    direction = counterclockwise, from left to right:

* •      V 4 • I A

-    size = row:                     A             top row

A

A

A                           bottom row

-   style = lower case & upper case:

"SHIFT VP"           is

- reference key: "v" is • (however, "<" is A ...)


Appendix C
Examples


cents/bit .


Text Box: 0.7 0.6 0.5 0.4 0.3 0.2 0.1

 

 

 

 

 

 

um._

CoreM

CCDs

 

11111111111              _

-L,

log

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


1972 73                  74          75          76          77          78          79        1980


Text Box:  disk


machine

user

Text Box:   f4

Text Box: user machinemachine

Text Box: disk•

service

Text Box: diskmachine

SYSTEM CONFIGURATION


AC6


INFORMATION FLOW DIAGRAM


 

Reseau NPL
LONDRES

Reseau ESRO

 


Text Box: Iris 80TVT 6000

Text Box: IRIAIris 50

Text Box: Iris 50
IN T 160
IN

PARIS

RENNES



Mitra 15

LYON          Iris 45

Iris 80

GRENOBL

Iris 80

IBM 360

CII 10070

TOULOUSE

 

q ordinateur

n      Concentrateur Mitra 15

·        Noeud Cigale Mitra 15

RESEAU CYCLADES1

 


ARPA NETWORK
(may 1973)


XEROX

Telecommunications Guide & Directory


DDS

by L. PETER DEUTSCH


DDS Reference Manual

Table of Contents

0. The mouse and cursor                                                                                                                                     104

1.      The display                                                                                                                                                     104

Ll The viewspec area                                                                                                                                            104

L2 The filter area                                                                                                                                                    106

1.3 The data area                                                                                                               107

1.4 Marking files                                                                                                                                                     107

2.      Commands                                                                                                                 109

2.1 Internal commands                                                                                                      109

2.2 External commands                                                                                                     110

2.3 Error messages                                                                                                            111

3.      User profile                                                                                                                112

4.      The command line                                                                                                      114

The Descriptive Directory System (DDS) is a front end for the Alto file system that provides substantially greater flexibility than the TAB and "?" features in the Executive. In addition to file names, DDS can display file lengths, creation-read-write dates, and contents. This reference manual describes release 1.12 of DDS.


0. The mouse and cursor

1.1 The viewspec area

The three buttons on the mouse are called RED (left or top button), YELLOW (middle button), and BLUE (right or bottom button). Most mouse-controlled actions in DDS happen as soon as you depress the mouse button: these are described below using phrases like "RED does xxx", meaning "As soon as you depress RED, xxx happens." Some actions require depressing a button and then releasing it: phrases like "clicking RED does xxx" mean "If you depress RED and then release it, xxx will happen." Careful reading, or a little experimenting, will familiarize you quickly with the distinction.

The cursor changes shape according to its location on the display and according to how DDS is interpreting the buttons. Generally speaking, when the cursor is circular, RED selects what you are pointing at in some way, and BLUE deselects it. When the cursor assumes the shape of an hourglass, DDS is busy doing something and is not listening to the mouse buttons.

1. The display

Like Bravo, DDS divides the display into a command area at the top, and one or more windows below. Currently DDS just supports a single window. A heavy black bar separates the command area from the window. Section 2 (below) describes the command area.

The window has three parts, separated by lighter horizontal bars:

1)  The top part is the view specification area, or viewspec area for short. It contains a set of keywords that describe what information is to be displayed for the files being examined in this window, and a set of keywords that describe how the displayed files are sorted.

2)  The second part is the filter specification area, or filter area for short. It contains a pair of expressions which together determine what set of files is being examined in the window. View and filter specification are completely independent: each can be   changed without affecting the other.

3) The main part of the window is the data area, which actually displays a set of files. The names are always displayed: other information is controlled by the viewspecs.

1.1 The viewspec area

There are 9 keywords in the viewspec area that control what is displayed:

created          the date when the file was created

written          the date when the file was last altered

read             the date when the file was last read

referenced      the date when the file was last referenced (i.e. the most recent of
"created", "written", and "read")


 

size

length address

contents pagemap

the size of the file in disk pages

the length of the file in bytes (characters)

the hardware address, in the form directory-pointer: (SN1,SN2)!VN @ virtual-leader-address

the contents of the file (in octal, if a binary file)

the disk addresses of all pages of the file, with a "*" before each address which is not adjacent to the preceding one

If the keyword is displayed white-on-black, the corresponding information is displayed in the data area, otherwise not.

There are 6 keywords that control other aspects of how the data are displayed:

(marked)                                   if turned on, DDS only displays marked files (see sec. 1.4 below)

(small) if turned on, DDS uses a smaller font for the data, which allows more data to appear on the screen (see sec. 3 below for how to tell DDS the name of the font)

(packed)         if turned on, DDS displays several files per line if possible (not
implemented yet)

(times)           in conjunction with "created", "written", "read", or "referenced",
shows the time of day as well as the date

(browse) if turned on, then when "contents" is turned on, DDS only displays the first 5 lines of text files and the message "*** binary file ***" for binary files, instead of the complete contents of the file.

(chart) if turned on, changes the data display to be a chart made up of boxes in which the height of the box is proportional to the file length. (Try it -- you'll like it.)

When the cursor is positioned over a keyword name, RED turns the keyword on; BLUE turns the keyword off. When the cursor is over the word "Show:" at the upper left of the keywords, BLUE turns all keywords off.

There are currently                                       8 keywords that control sorting of the data:


Text Box: name extension
created written read
referenced length serial
alphabetic order by name (upper and lower case letters are equivalent) alphabetic order by extension

the corresponding date and time

the date last referenced

the file length

the file's serial number (not of general interest)


The keywords which are displayed white-on-black are those actually used to sort the data area. They are displayed in the order most- to least-significant criterion, e.g. "extensions" followed by "namet" means sort by extension first, then sort files with the same extension by name. Following each keyword, whether active or not, is an arrow which indicates whether the sort is to be in ascending (upward arrow) or descending (downward arrow).

When the cursor is positioned over a sorting keyword name, clicking RED turns the keyword on and adds it to the list of white-on-black keywords actually used for sorting; clicking BLUE turns the keyword off and removes it from the list; clicking YELLOW inverts the direction of the arrow, regardless of whether the keyword is in the list. When the cursor is over the words "Sort by:" at the left of the sorting keywords, BLUE turns off all sorting criteria.


Since sorting may take a long time and it is easy to request sorting by accident, you can abort sorting at any time by typing any character. Be sure the cursor is not in the data area when you do this: if it is, DDS may          start the sort over again!

Whenever the cursor moves into the data area, regardless of whether any mouse buttons are down, DDS repaints the display to be as specified by the viewspecs if the viewspecs have changed since the last time the display was repainted.

1.2 The filter area

The filter area contains two expressions which defines what subset of the directory will actually be displayed in the data area. These expressions are built up from name patterns which are similar to those recognized by the Alto Executive. More precisely, a name pattern is a sequence of characters which may contain "*"s and "#"s: "*" matches any sequence of characters in a name (including no characters at all), "#" matches any single character. Upper and lower case letters are not distinguished. Note that DDS deletes the final "." from file names. Here are some examples of name patterns and what they match:

*.BC              All files with extension BC (or bc, bC, or Bc).

*.B                All files with extension B.

*.B*                         All files whose names contain the string .B -- this includes all files

with     extension    Bsomething,      but also        includes files             like
TH IS.BI N A R Y.THAT.

All files whose extensions consist of B and one more character. All the files in the directory.


Text Box: "and", "or", and "not", and and what they select: LPD, except those withYou can build up more complex expressions using the words parentheses.       Here are some examples of such expressions

LPD* and not *.temp          All files beginning with

extension temp.

Text Box: memo$.
BS, except those
*.memo or *.memo$           All files with extension memo or

(*.BT or *.BS) and not X*      All files with extension BT or

beginning with X.


The upper expression in the filter area is called the selspec; the lower one is called the context. (The two together are simply called the filters.) Only files which satisfy both expressions will be displayed. The idea is that if you are going to be working on memos, for example, you can set the context to "*.memo" and use the selspec to further select within this set. As another example, if there is some set of files you want not to see (like "V), you can set the context to "not *$".

To change the selspec or the context, point at it, or at the word "Selspec:" or "Context", and click RED or YELLOW. This will cause it to change to white-on-black. As soon as you start typing, the old text will vanish and what you type will appear white-on-black in its place. Eventually you must type one of the following three things before you can point anywhere else or select any commands (see sec. 2 below):

CR                confirms the change, and repaints the display to reflect it.

ESC                   is equivalent to *CR, i.e. it adds a * to what you have typed and then
confirms the change.

DEL                                   aborts the typein and restores the old selspec or context expression.

See section 3 below for how to get the selspec and/or context initialized automatically to something other than "*" when you first enter DDS.


The third line of the filter area is a message of the form "nnn files are selected, of which mmm are marked" where nnn is the count of files selected by the current filter and mmm is the count of those which are marked (see 1.4 below). If there are marked files not selected by the filter (again, see 1.4), the message "there are kkk files marked but not selected" also appears. While DDS is sorting data, the message Sorting ... appears in this area in place of the file counts.

1.3 The data area

As mentioned above, whenever the cursor moves into the data area, DDS regenerates the display if necessary to conform to the current viewspecs.

The left edge of the data area is a scrolling bar which works the same way as in Bravo: clicking RED scrolls up, clicking BLUE scrolls down, and clicking YELLOW jumps proportionately to the vertical location in the window. A hollow arrow in the left margin shows where in the list you are positioned: if the arrow is at the top, you are at the beginning of the list; if the arrow is at the bottom, you are at the end. The idea is that if you were to move the cursor to this arrow and click YELLOW, the list would stay positioned just as it is.

If you are positioned at the beginning of the list of selected files, DDS displays the message BEGIN      

at the head of the list; if            not, DDS displays

if

--------------------------  nnn files not shown ---------------

indicating the position within the list of the first file actually shown on the screen (e.g. "2 files not shown" means the first file on the screen is actually the third in the list). Similarly, if the last file shown on the screen is actually the last file in the list, DDS displays

END ------------- 1r

below it.

A vertical strip at the right edge of the data area will be used in the future to control the formatting of the screen into windows. Currently the cursor changes shape when it is in this area, but the buttons have no effect. Another vertical strip just to the left of this one is used for mass marking and unmarking of files: see the following section.

1.4 Marking files

DDS provides a facility for marking any set of files for later processing by commands such as <Delete>, <Send to Maxc>, etc. Marked files are displayed with a small dark arrow in the left margin, and a count of how many marked files are in the current selected set is maintained in the filter area.         When the cursor is in the data area of a window, other than

the right or left edge areas, the mouse buttons control marking and unmarking of individual files: RED marks the file on whose line the cursor resides; BLUE unmarks the file. When the cursor is in the vertical strip about 1" in from the right edge of the screen, the cursor changes to the word ALL, and the buttons mark and unmark files en masse: clicking RED marks all the files selected by the filter; clicking BLUE unmarks all the files.

Note that files may be marked even though they are not selected by the current filter, i.e. marking is associated with the file rather than the display. (If this proves confusing it will be changed.) The count of "files marked but not selected" in the filter area lets you know when there are marked files         not selected by the current selspecs.


Since marking or unmarking individual files occurs as soon as the button is depressed, you can hold down RED or BLUE and slide the mouse (slowly) in the vertical direction to mark or unmark a group of adjacent files

The marked file counts in the filter area are adjusted as soon as a file is marked or unmarked, but if the "marked" viewspec is on and you unmark a file, you must scroll the data to get the unmarked file(s) deleted from the display.


2. Commands

The command area at the top of the screen consists of four parts:

1)    A header with the DDS version number, time of day, and count of free disk pages;

2)    A type-in area, where typed characters appear;

3)    An error message line;

4)    A menu of commands, each command being enclosed in angle brackets <>.

When the mouse is in the command menu area, RED selects a command for subsequent execution: the selected command is displayed white-on-black, and any previously selected command is deselected. BLUE deselects the currently selected command and selects the default command <Quit>. Typing ESC or CR finally initiates the command: you can freely select or deselect commands, type and edit your type-in, change viewspecs, etc. up to that moment. For commands which do not require type-in, you may also initiate the command by clicking YELLOW with the mouse in the command menu area. The cursor takes the shape of a circle with a cross when this is allowed, and a circle with a dot when it is not.

Some commands require or allow type-in before the final ESC or CR. You may type at any time. All typed characters are accumulated in the type-in area just below the header until the ESC or CR. CTRL-A (or BS), CTRL-W, CTRL-Q, and DEL are available for editing as in Bravo. DDS displays a vertical bar when it is waiting for your typing, and of course you can "type ahead" while DDS is processing a command. However, as for selspec and context changes (sec. 1.2), once you have started to type, you must either confirm the command with ESC or CR, or abort with DEL, before you can select another command or another place to type (selspec or context).

When you have selected a command with RED, then when you release the button, DDS may display something in the type-in area which is a default for that command. If you want to execute the command with that default type-in, you can just confirm it (with ESC, CR, or YELLOW); otherwise, the default disappears as soon as you start typing, just like the old selspec or context.

In the description of commands below, "something" following the command name means that DDS expects you to have typed something before the final ESC or CR that initiates the command; "optional-something" means you may type something or not. To help you remember, all the commands that require type-in end with "...", and those which allow but do not require type-in end with "[...]".

Many commands operate on a set of files: they use precisely those files which, at the time you type the final ESC or CR, are both selected (i.e. match the selspec) and marked. "Filename-1 filename-n" in the descriptions below refer to these files, which are also called the "designated" files.

DDS presently has two classes of commands: those which leave you in Dos after execution (internal commands), and those which send you back to the Alto Executive (external commands). For external commands, DDS saves away a command line so that if something

goes wrong, you can execute the command again by typing @Dds.cm@g-K to the Executive.


2.1 Internal commands (those which leave you in DDS)

<Put on file ...> "filename" writes on the file named "filename" (in text form) the contents of the window. DDS also writes a header with your name, the disk name, and the date and time. The default for "filename" is "Dir.Lst", an arbitrary name which DDS supplies so you don't have to make one up.

<List on file ...> "filename" writes on the file named "filename" (in text form) the names of the designated files, separated by blanks. This makes it easy for you to make up an @-file for the Executive by adding a command name to the front of this file. The default for "filename" is "Dir.Cm", an arbitrary name which DDS supplies so you don't have to make one up.

<Delete> deletes the designated files. There is presently no way to un-delete files, so be careful: the count of marked files in the filter window is a good clue as to whether you are deleting more than you want. You can stop a <Delete> at any time by typing any character: of course, some files may already have been deleted. DDS changes the "free pages" count at the top of the screen as it deletes each file.

<Rename as ...> "filename" requires that there be exactly one designated file, and changes its name to "filename". If there is already a file named "filename", <Rename> gives an error message and does nothing else.

2.2 External commands (those which leave you in the Executive)

<Quit> leaves DDS gracefully. SHIFT-SWAT is also safe whenever DDS is awaiting input (i.e. not in the midst of sorting, deleting, etc.).

<Bravo/[...]> "optional-switches" gives control to Bravo in the following way:

If there are no designated files, DDS effectively executes "Bravo/switches".

If there is more than one designated file, DDS gives an error message and does nothing else.

If there is a single designated file and you did not type anything, DDS effectively executes "Bravo/N filename", i.e. instructs Bravo to read in the file. If there is a single designated file and you did type in switches, DDS executes "Bravo/switches filename".

<Gears/[...]> "optional-switches" executes "Gears/switches filename-1              filename-n", i.e.
prints the designated files.

<Send to Maxc directory <...>> "directory-name" sends the designated files to the directory named "directory-name" on Maxc, using FTP. The default for directory-name is the user name on your Alto disk. If you accept the default, Dos assumes you have already done a Login in the Executive to supply the password; if you supply some other directory-name XYZ which requires a password, FTP will prompt you with a message asking you to type in the password for XYZ at that time.

<Send to ...> "name" sends the designated files to the Alto whose name is "name", using FTP. "Name" may be anything acceptable to FTP, i.e. an Alto name, an Alto number, etc. The default for "name" is Maxc, which is not really very useful.

<Execute ...> "command" constructs a command line formed from "command" and the names of the designated files, and then executes the command line thus formed by either


jumping directly to the subsystem or returning to the Alto Executive. (If there are no designated files, DDS produces an error message "No files are marked" and does nothing else.) The command line is formed in the following way:

., .
If "command" does not contain any "characters, the command line is just

"command" followed by the names of the designated files. For example, if files Alpha and Beta are designated, <Execute ...> "Bldr/L" would execute the command line "Bldr/L Alpha Beta". "String" may contain blanks, so for example <Execute> "Bldr Foo/S" would execute "Bldr Foo/S Alpha Beta".

If "command" does contain a "*", DDS divides "command" into 3 parts "sl s2*s3", where s2 is the part of "command" extending backwards from the "*" to the first preceding blank (or the beginning of "command"). Then the command line is "sl s2fls3 s2f2s3 ..." where fl, f2, etc. are the names of the files. For example, if Alpha and Beta are designated, <Execute ...> "Bldr @*@" would execute the command line "Bldr @Alpha@ @Beta@". (If this seems confusing or useless, don't worry about it too much -- some future version of DDS may find a better way to provide this facility.)

2.3 Error messages

Non-fatal error messages appear in bold characters just below the type-in line. Such messages always abort the current command and reset the command to <Quit>, but they do not change the state of DDS in any other way. The message disappears as soon as you type any character.

Fatal errors cause DDS to call Swat. When this happens, the screen changes completely and a heading like "Swat.21 (August 28, 1976)" appears at the top; the error message itself appears at the bottom of the screen just above a "#". Fatal errors are never supposed to happen, but if one ever does, summon a DDS expert. If none is available, write down the message and what you were doing at the time, and then type CTRL-K. This will throw you out of DDS and back to the Executive.


3. User profile

DOS examines the user profile (User.Cm) during initialization to obtain the names of the fonts which will be used to display various things, and other rarely-changed information. Just as Bravo's section of User.Cm begins with [BRAVO] and then follows the format of OPTION:STRING, DOS looks for [DDS] and follows the same format for its entries.

The entries which DDS recognizes in User.Cm fall into two classes. "Initialization-only" entries are those which DDS only consults when you ask it to do a full initialization (by using the FULLINIT: Yes entry in User.Cm, or the /l switch in the command line, both described below). "Ordinary" entries are those which DDS looks at every time.

The names of the "ordinary" entries are:

FONT: fontname - specifies the name of the normal font (used for the command window, the file count line, and the data area).

BOLDFONT: fontname - specifies the name of the bold font (used for error messages, the viewspec and selspec display, and the headings on the data area).

SMALLFONT: fontname - specifies the name of the small font (used for displaying data when the "(small)" viewspec is turned on).

SMALLBOLDFONT: fontname - specifies the name of the small bold font.

usERTYPE: type - lets DDS know what kind of user you are. If type is NON-PROGRAMMER, DDS doesn't provide the "pagemap" and "address" viewspecs. If type is WIZARD, DDS provides some extra features for debugging which are not described in this document.

WINDOWS: Yes - enables you to use some experimental facilities for splitting the screen into multiple windows in a Bravo-like manner. These facilities are not documented, not fully debugged, and not recommended.

RAMOK: Yes - tells DDS to use the RAM on your Alto. If your Alto is a standard one, this will make DDS run about 30% faster; if not, DDS may not run faster, and may not run at all. Try it once (or use the /R switch in the command line as described below) and see what happens.

FULLINIT: Yes - tells DDS to scan the whole Alto file directory each time it starts up, and reinitialize the selspec, context, etc. from the "initialization-only" entries in User.Cm (possibly overridden by the command line: see sec. 4). FULLINIT: No - tells DDS to update its knowledge of the world from Sys.Log (an incremental record of file activity since you last ran DDS), and restore the selspec. context, etc. to what they were when you last left DDS. The default is FULLINIT: No which leads to much faster startup.

The names of the "initialization-only" entries are:

SELSPEC: expression - specifies the initial value of the selspec when you enter DDS. if there is something illegal about the expression, Dos just uses "*" for the initial selspec, as though there were no SELSPEC entry in User.Cm.

CONTEXT: expression - specifies the initial value of the context when you enter DDS.


SHOW: list of viewspecs - allows you to initialize the viewspecs. Use commas between, viewspecs if there is more than one.

SORT BY: list of sorting keywords - allows you to initialize the sorting order. Each keyword may be followed by "T" for ascending order or "<-" for descending order (neither means ascending order). Use commas between keywords if there is more than one.

A word about fonts: if FONT is not specified in User.Cm, DDS uses the standard system font SysFont.Al. If BOLDFONT is not specified, DDS fabricates a boldface version of the normal font, whatever it may be. If SMALLFONT is not specified, the "(small)" viewspec has no effect. If you specify a font name and there is no file by that name, Dos just ignores that entry in User.Cm.


4. The command line

Just typing Dds to the Alto Executive will activate DDS in its normal way, in which various aspects of its behavior are controlled by entries in User.Cm if present. However, you can override User.Cm by typing switches following the name DDS to the Executive. Here are the switches currently implemented:


Text Box: Dds/I Dds/-I Dds/R Dds/-R Dds/W Dds/-W Dds/S
Dds/P
equivalent to FULLINIT: Yes in User.Cm. overrides (cancels) FULLINIT: Yes in User.Cm. equivalent to RAMOK: Yes in User.Cm. overrides (cancels) RAMOK: Yes in User.Cm. equivalent to WINDOWS: Yes in User.Cm. overrides (cancels) WINDOWS: Yes in User.Cm.

causes DDS to write some statistics in a file Dds.stats. Not currently of general interest.

causes DDS to write some data regarding disk activity in Dds.stats. Not of general interest.


These switches can be combined, e.g. Dds/l/R causes both full initialization and use of the RAM. Switches may be either upper or lower case.

If DDS is doing a full initialization (either because FULLINIT: Yes appears in User.Cm or because you said Dds/l), you may also supply initial selspec and context strings in the command line, and these will take precedence over those in User.Cm, if any. Unfortunately, the Alto Executive makes it a little inconvenient to include *'s in these strings, and you can't have blanks in them at all. To include a *, you must type '*, e.g. to start up DDS and specify alpha* as the selspec, you must type

Dds/I alpha'*

to the Executive. To specify beta* as the selspec and *.cm as the context, you must type Dds/I beta's '*.cm


FTP

by DAVID R. BOGGS EDWARD A. TAFT


FTP Reference Manual

Table of Contents

1.      Introduction

2.      Concepts and terminology

3.      Calling the FTP subsystem

4.      The FTP display 4.1 Directing keyboard input to the User and Telnet windows

5.      Keyboard command syntax 5.1 Keyboard commands

6.      Command line syntax 6.1 Command line commands

7.      Telnet

8.      File property defaulting 8.1 File types

8.2 Byte-size

8.3 End-of-line conventions

9.      Abort and error messages

10.    Server options

11. Command line examples

116 116 118

118

118

119

119

122 122

124

124 124

124

125

126

126

127


1. Introduction

FTP is a Pup-based File Transfer Program for moving files to and from an Alto file system. The program comes in 3 parts:

1)  An FTP Server, which listens for file transfer requests from other hosts,

2)  An FTP User, which initiates file transfers under control of either the keyboard or the command line, and

3) A User Telnet for logging into a remote host using the Pup Telnet protocol.

This program replaces Ethermca and the previous Alto subsystem called FTP, both of which are now obsolete. It is not compatible with the older FTP. Compatible Pup-based FTP progams are currently implemented and supported on Altos, Novas, and Maxc.

2. Concepts and terminology

Tranferring a file from one machine (or "host") to another over a network requires the active cooperation of programs on both machines. In a typical scenario for file transfer, a human user (or a program acting on his behalf) invokes a program called an "FTP User" and directs it to establish contact with an "FTP Server" program on another machine. Once contact has been established, the FTP User initiates requests and supplies parameters for the actual transfer of files, which the User and Server proceed to carry out cooperatively. The FTP User and FTP Server roles differ in that the FTP User interacts with the human user (usually through some sort of keyboard interpreter) and takes the initiative in user/server interactions, whereas the FTP Server plays a comparatively passive role.

The question of which machine is the FTP User and which is the FTP Server is completely independent of the direction of file transfer. The two basic file transfer operations are called "Retrieve" and "Store"; the Retrieve operation causes a file to move from Server to User, whereas Store causes a file to move from User to Server.

The Alto FTP subsystem contains both an FTP User and an FTP Server, running as independent processes. Therefore, to transfer files between a pair of Altos, one should start up the FTP subsystem on both machines, then issue commands to the FTP User process on one machine directing it to establish contact with the FTP Server process in the other machine. Subsequent file transfers are controlled entirely from the FTP User end, with no human intervention required at                                        the Server machine.

Transferring files to or from Maxc involves establishing contact with an FTP Server program that runs all the time on Maxc. Hence, one may simply invoke the Alto FTP subsystem and direct its FTP User process to connect to Maxc.

In the descriptions that follow, the terms "local" and "remote" are relative to the machine on which the FTP User program is active. That is, we speak of typing commands to our "local" FTP User program and directing it to establish contact with an FTP Server on some "remote" machine. A Retrieve command then copies a file from the "remote" file system to the "local" file system, whereas a Store command copies a file from the "local" file system to the "remote" file system.

Furthermore, we refer to "local" and "remote" filenames. These must conform to the conventions used by the "local" and "remote" host computers, which may be dissimilar (for example, Alto versus Maxc).       The Alto FTP knows nothing about Maxc filename


conventions or vice versa.

The Alto FTP subsystem also includes a third process, called a "User Telnet", which simulates a Maxc terminal in a manner exactly analogous to the Chat subsystem (though lacking some of its refinements). By this means, one may conveniently log in to Maxc so as to perform operations not directly available via the basic file transfer mechanisms. While logged into Maxc, it is even possible to run "PupFtp", the Maxc FTP User program, and direct it to establish contact with the FTP Server in your own Alto. You should probably not try this unless you really understand what you are doing, however, since the terms "local" and "remote" are relative to Maxc rather than to your Alto (since the FTP User program is running on Maxc in this case), which may be confusing.


3.    Calling the FTP subsystem

A number of options are available when running FTP. The program decides which parts of itself to enable and where user commands will come from by inspecting the command line. The general form of the command line to invoke FTP looks like:

>Ftp[/<Server switches>] [<Host name> [<command list>] iCR

The square brackets denote portions of the command line that are optional and may be omitted.

Server switches, explained below, control the operation of the server. The first token after the switch-list, if present, is assumed to be a <host name> (a discussion of which appears later in the description of the "Open" command). The User FTP will attempt to connect to the FTP Server on that host. After connecting to the server, if a <command list> is present, an interpreter is started which supplies commands to the User FTP. When the command line is exhausted, FTP returns to the Alto Executive. If no <command list> is present, an interactive keyboard command interpreter is started.

4.    The FTP display

In addition to the standard system display window (the top inch or so), a window is created for each part of the program that is enabled during a session. When FTP is started, the system window displays the release date of that version of FTP, the current date and time, and the machine's internetwork address.

If the FTP Server is enabled, it opens a window below the system window and identifies itself. If a User FTP subsequently connects to this Server, the User's network address will be displayed. The name and length of each file stored or retrieved by the Server is logged in this window. The Server is not enabled when FTP is being controlled from the command line.

The FTP User opens the next window down and identifies itself. The command herald is an asterisk.

The User Telnet opens the bottommost window, identifies itself, and waits for a host name to be entered. The Telnet is not enabled when FTP is being controlled from the command line.

4.1 Directing keyboard input to the User and Telnet windows

The bottom two unmarked keys control which window gets characters from the keyboard. Hitting the unmarked key to the right of the right-hand SHIFT key directs keyboard input to the Telnet window. A blinking cursor will appear at the next character position. Hitting the unmarked key to the right of the RETURN key directs keyboard input to the FTP User window. If the FTP User is waiting for type-in, a blinking cursor will appear at the next character position.


5. Keyboard command syntax

FTP's interactive command interpreter presents a user interface very similar to that of the Alto Executive. Its command structure is also very similar to that of PupFtp, the Maxc user FTP program. The standard editing characters, command recognition features, and help facility (via "?") are available. When FTP is waiting for keyboard input, a blinking cursor will appear at the next character position.

5.1 Keyboard commands *Open  <host name>gg

Opens a connection to the FTP Server in the specified host. FTP permits only one user F-rp connection at a time. In most cases the word "Open" may be omitted: i.e., a well formed <host name> is a legal command and implies a request to "Open" a connection. FTP will try for one minute to connect to the specified host. If you made a mistake typing <host name> and wish to abort the connection attempt, hit the middle unmarked key (opposite carriage-return).

Ordinarily, <host name> should be the name of some host at Parc (e.g., "Maxc"). Most Altos and Novas have names which have been registered on Maxc. So long as Maxc is up, FTP is able to obtain the information necessary to translate a known host name to a Parc inter-network address (this information will eventually be maintained on other hosts also).

If the name of the server machine is not known, one may specify an inter-network address in place of the <host name>. The general form of an inter-network address is: <network> # <host> # <socket>

where each of the three fields is an octal number. The <network> number designates the network to which the Server host is connected (which may be different from the one to which the User host is connected): this (along with the "#" that follows it) may be omitted if the Server and User are known to be connected to the same network. The <host> number designates the Server host's address, which (for an Alto) is the same as its serial number. The <socket> number designates the actual Server process on that host: ordinarily it should be omitted, since the default is the regular FTP server socket. Hence, to connect to the FTP server running in Alto serial number 123 on the directly-connected Ethernet, one would say "Open  123#" (the trailing "#" is required).

*CloseCR

Closes the currently open User FTP connection.

*Login  <user name> <password>at

Supplies any login parameters required by the remote server before it will permit file transfers. FTP will use the user name and password in the Operating System, if they are there. Logging into FTP will set the user name and password in the OS (in the same manner as the Alto Executive's "Login" command).

When you issue the "Login" command, FTP will first display the existing user name known to the OS. If you now type a space, FTP will prompt you for a password, whereas if you want to provide a different user name, you should first type that name (which will obliterate the previous one) followed by a space. The command may be terminated by carriage return after entering the user name to omit entering the password.


The parameters are not immediately checked for legality, but rather are sent to the server for checking when the first file transfer command is issued. If a file transfer command is refused by the server because the name or password is incorrect, FTP will prompt the user as if he had issued the LOGIN command and then retry the transfer request. Hitting delete in this context will abort the transfer command.

At present, a user name and password need be supplied only when transferring files to and from Maxc. A future version of the Alto FTP Server may require a password to be supplied if the server machine's disk is password-protected.

*Connect  <directory name> <password>C11

Requests the FTP server to "connect" (in the Tenex sense) the user to the specified directory on the remote system. The password may be omitted by typing carriage return after the directory name. As with Login, these parameters are not verified until the next transfer command is issued. At present, the "Connect" command is meaningful only when transferring files to or from Maxc; the Alto FTP server currently ignores connect requests. If the "multiple directory" feature of the Alto Operating System ever comes into widespread use, this may be changed.

*Directory  <directory name>CR

Causes <directory name> to be used as the default remote directory in Store, Retrieve, and List commands. Specifying a default directory is different from connecting to a directory; connecting gives you 'owner access', but specifying a default directory in no way modifies your access privileges. Explicitly mentioning a directory in a file name overrides the default directory, which overrides the connected directory, which overrides the login directory.

*Retrieve  <remote filename>cR

Initiates transfer of the specified remote file to the local host. The syntax of <remote filename> must conform to the remote host's file system name conventions. Before transferring a file, FTP will suggest a local filename based on the "name body" (name and extension) of the file about to be transferred, and will tell you whether or not the file already exists on your local disk. If the suggested name is ok, you should type <return> or <esc>. If you do not want the file, type <del>. If you want to call the file by a different name on the local file system, type the new local file name followed by <return>; the name suggested by FTP will disappear and the new file name will replace it.

If <remote filename> designates multiple files (the remote host permits "*" or some equivalent in file names), each file will be sent separately and the process of suggesting a local filename will repeat for each file. At present, only the Maxc FTP Server supports this capability. That is, you may supply "*"s in the <remote filename> when retrieving files from Maxc, but not when retrieving files from another Alto.

*Store  <local filename>gg

Initiates transfer of the specified local file to the remote host. Alto filename conventions apply to the <local filename>; "*" expansion is not supported. FTP will suggest a remote filename based on the "name body" of the local file. If the suggested name is ok, type <return> or <esc> and the transfer will begin. If you wish to abort the transfer at this time, type <del>. If you wish to call the file by a different name on the remote host, type the new remote file name followed by <return>; the name suggested by FTP will disappear, the new file name will replace it, and the transfer will begin.


*List <remote file designator>CR

Lists all files in the remote file system which correspond to <remote file designator>. The '<remote file designator> must conform to file naming conventions on the remote host, and may designate multiple files if "*" expansion or some equivalent is supported there. The printout is similar to that of the Tenex Exec QFD command, displaying the filename, type (text or binary, and if binary the byte size), and creation date. Only the Maxc FTP server supports this command at present, so List is only useful for listing a directory if you are connected to Maxc.

*Quitgl

Returns control to the Alto Executive, closing all open connections.

*Type  <data type>g

Forces the data to be interpreted according to the specified <data type>, which may be Text or Binary. Initially the type is Unspecified, meaning that the source process should, if possible, decide on the appropriate type based on local information.

*Byte-size <decimal number>CR

Applicable only to files of type Binary, Byte-size specifies the logical byte size of the data to be transferred. The default is 8.

*EOL <convention>01

Applicable only to files of type Text, this command specifies the End-of-line convention to be used for transferring text files. The values for <convention> are CR, CRLF, and Transparent. The default is CR.

*Telnet  <command>g11-

Controls the operation of the User Telnet. The only command currently implemented is "Quit" which closes any open connection and reinitializes the Telnet process.

*DebugCR

Toggles a switch controlling whether or not protocol interactions for both the User and Server FTP are displayed. Warning: this printout sometimes includes passwords.


6. Command line syntax

The User FTP will alternatively take commands from the command line. As explained above, the first token after the subsystem name and server switches must be a legal host name: if the User FTP can't connect to the FTP Server on that host it will abort and return control to the Alto Executive. If a <command list> follows the host name, the command line interpreter is invoked instead of the interactive keyboard interpreter. This permits the full capabilities of the Alto Executive (filename recognition, "*" expansion, command files, etc.) to be used in constructing commands for FTP.

Each command is of the form:

<Keyword>/<SwitchList> <arg>             <arg>

To get a special character (any one of "*#';") past the Alto Executive, it must be preceded by a single quote. To get a "I" into an FTP argument, the "1" must be proceeded by two single quotes (the second one tells FTP to treat the "I" as an ordinary character in the argument, and the first one gets the second one past the Alto Executive).

Unambiguous abbreviations of commands (which in most cases amount to the first letter of a command keyword) are legal. However, when constructing command files, one should always spell commands in full, since the uniqueness of abbreviations in the present version of FTP is not guaranteed in future versions.

A command is distinguished from arguments to the previous command by having a switch on it, so every command must have at least one switch. The switch "/C" has no special meaning and should be used on commands where no other switches are needed or desired.

When the command line has been completely executed, FTP returns control to the Alto Executive. If the Debug command has been given or any errors have occurred, FTP will pause before finishing. This prevents error messages from disappearing before the user has a chance to see them. In this situation, FTP will terminate after one minute has elapsed or any key has been struck on the keyboard.

6.1 Command line commands

Connect/C <directory name> <password>

See description in "Keyboard commands". The <password> may be omitted.

Connect/Q <directory name>

Causes FTP to prompt the user for the password needed to connect to the specified <directory name>. This form of the "Connect" command should be used in command files (since including passwords in command files is bad practice).

Directory/C <default directory>

See description in "Keyboard commands".

Retrieve/C <remote filename> ... <remote filename>

Retrieves each <remote filename>, constructing a local filename from the—name body of the actual remote filename as received from the Server, and writes it in the local file system. FTP will overwrite an existing file unless the IN (No overwrite) switch is


appended to the Retrieve command keyword.

If the remote host allows "s" (or some equivalent) in a filename, a single <remote filename> may result in the retrieval of several files. (Note that one must quote the "s" to get it past the Alto Executive's command scanner.) As noted previously, this capability is implemented only by the Maxc FTP Server at present.

Retrieve/S <remote filename> <local filename>

Retrieves <remote filename> and names it <local filename> in the local file system. This version of Retrieve must have exactly two arguments. FTP will overwrite an existing file unless the /N (No overwrite) switch is also appended to the Retrieve command keyword.

The <remote filename> should not cause the server to send multiple files.

Retrieve/U <remote filename> ... <remote filename>

Retrieves <remote filename> if its creation date is later than the creation date of the local file. A file will not be retrieved if the local filename does not exist, or if the FTP server does not send a Creation-date property. This option can be combined with Retrieve/S to rename the file as it is transferred.

Store/C <local filename> ... <local filename>

Stores each <local filename> • on the remote host, constructing a remote filename from the name body of the <local filename>. A <local filename> may contain "s", since it will be expanded by the Alto Executive into the actual list of filenames before the FTP subsystem is invoked.

Store/S <local filename> <remote filename>

Stores <local filename> on the remote host as <remote filename>. The <remote filename> must conform to the file name conventions of the remote host. This version of store must have exactly two arguments.

Type/C <data type>

See the description in "Keyboard commands".

Byte-size/C <decimal number>

See the description in "Keyboard commands".

EOL/C <convention>

See the description in "Keyboard commands".

Debug/C

See the description in "Keyboard commands".


7.      Telnet

FTP provides a simple User Telnet as a convenience for logging into a remote host (e.g., Maxc) to poke around without having to leave the FTP subsystem and start Chat. It lacks most of the creature comforts Chat provides, such as automatic attaching to detached jobs, automatic logging in, etc. The Telnet is not enabled when the User FTP is being controlled from the command line. When the Telnet does not have an open connection, it waits for you to type a host name with the syntax explained above for the Open command, and then attempts to connect to the specified host. If you wish to abort the connection attempt, hit the bottom unmarked key (opposite right-shift).

8.      File Property Defaulting

Without explicit information from the file system, it is often difficult to determine whether a file is Binary or Text, if Binary, what its byte-size is, and if Text, what End-of-line convention is used. The User and Server FTPS use some simple heuristics to determine the correct manner in which to transfer a file. The heuristics generally do the right thing in the face of incomplete information, and can be overridden by explicit commands from a human user who knows better.

The FTP protocol specifies a standard representation for a file while in transit over a network. If the file is of type Binary, each logical byte is packed right-justified in an integral number of 8-bit bytes. The byte-size is sent as a property along with the file. If the file is of type Text, each character is sent right-justified in an 8-bit byte. An EOL convention may be sent as a file property. The default is CR.

8.1 File types

FTP determines the type of a local file by reading it and looking for bytes with the high-order bit on. If any byte in the file has a high-order bit on, the file is assumed to be Type Binary, otherwise it is assumed to be Type Text. FTP will generate a warning, but allow you to send what it thinks to be a text file as type Binary, since no information is lost.            It will refuse to send a binary file as type text.

Moral: Don't specify a Type unless you know what you are doing. The heuristic will not lose information.

8.2 Byte-size

If a file is type Binary, the byte-size is assumed to be 8 unless otherwise specified. The FTP User and Server will both accept binary files of any byte-size and write them as 8 bit bytes on the disk. No transformation is done on the data as it is written to the disk: it is stored in network default format. Since there is no place to save the byte-size property, it is lost.

Similarly, requests for Binary files will be honored with any bytesize, and whatever is on the disk will be shoved out to the net without transformation. Since Alto files have no byte-size information, the byte-size property will be defaulted to 8 unless otherwise specified, in which case whatever was otherwise specified will be returned as the byte-size.


Moral: Don't specify a Byte-size unless you know what you are doing.

Alto-Alto transfers can't go wrong. Alto-Maxc transfers with weird byte-sizes will not work unless the byte-size specified in the Alto to Maxc direction is the same as the byte-size in which the file was stored on the Alto. If it isn't, the Alto will not give any error indication, but the result will be garbage.

8.3 End-of-line conventions

FTPS are expected to be able to convert text files between their own internal EOL convention and the network standard. Conveniently enough, the Alto file system's internal representation of a text file is the same as the network standard. The Alto FTP does not do any transformations on text files. It will refuse to store a text file coming in from the net whose EOL convention is CRLF.

As an escape to bypass conversion and checking, EOL convention 'transparent' tells both ends not to convert to network standard, but rather send a file 'as is'. This is included for Lisp files which contain internal character pointers that are messed up by removing IFS.

Moral: Don't specify an EOL convention unless you know what you are doing. If your text file is a Lisp source file, specify EOL convention 'Transparent'.


9.    Abort and error messages

Error and Abort packets are displayed in the system window. Abort packets are fatal; Error packets are not necessarily so.

The most common Abort message is "Timeout. Good bye", generated by Maxc when a server process has not received any commands for 5 minutes.

The most common Error message is "Port input queue overflowed" indicating a momentary shortage of input buffers at the remote host. Receiving an Error Pup does not imply that the file in transit has been damaged. Loss of or damage to a file will be indicated by an explicit message in the User FTP window. The next iteration of Pup will probably rename 'Error Pups' to be 'Information Pups'.

10.   Server options

Server options are controlled by switches on the subsystem name. There are currently four options:


Text Box: Switch
none
/P
/0
/N
Action

If no server option is specified, retrieve requests (disk to net) are allOwed. Store requests (net to disk) are allowed unless the store would overwrite an already existing file.

(mnemonic 'Protected') Retrieve requests are allowed. No stores are allowed.

(mnemonic 'Overwrite') Retrieve requests are allowed.                    Store
requests can overwrite files.

No server is started.


11. Command line examples

To transfer files Scavenger.run and Scavenger.syms from the Alto called "Michelson" to the Alto called "Morley", one might start up FTP on Michelson (to act as an FTP Server), then walk over to Morley and type:

>Ftp Michelson Retrieve/c Scavenger.run Scavenger.symsgl

Alternatively, one could start an FTP server on Morley (invoking it by "Ftp/O" to permit files to be overwritten on Morley's disk), then issue the following command to Michelson: >Ftp Morley Store/c Scavenger.run Scavenger.synisCR

The latter approach is recommended for transferring large groups of files such as "*.run" (since expansion of the "*" will be performed by the Alto Executive).

To retrieve User.cm from the FTP server running on Alto serial number 123 (name unknown):

>Ftp 123'# Retrieve User.cm-C-t-

Note that the "#" must be preceded by a single quote when included in a command line, since otherwise the Alto Executive does funny things with it. (This is not true when typing to FTP's interactive keyboard interpreter).

To start FTP, have the FTP User connect to Maxc, and then accept further commands from the keyboard:

>Ftp Maxc

To retrieve <System>Pup-Network.txt from Maxc and store it on the Alto as PupDirectory.bravo, and store PupRTP.bcpl, Puplb.bcpl, and PupBSPStreams.bcpl on <DRB> with their names unchanged:

>Ftp Maxc Connect/c drb mypassword Retrieve/s <System>Pup-Network.txt PupDirectory.bravo Store/c PupRTP.bcpl Puplb.bcpl PupBSPStreams.bcplCR

To retrieve the latest copy of all .RUN files from the <alto> directory, overwriting copies on the Alto disk (The single quote is necessary to prevent the Alto Executive from expanding the "*"):

>Ftp Maxc Ret/c <alto>'*.rung1

To update the Alto disk with new copies of all <Alto> files whose names are contained in file UpdateFiles.cm:

>Ftp Maxc Dir/c Alto Ret/u @UpdateFiles.cm@CR

To store all files with extension .BCPL from the local Alto disk to your login directory on Maxc (the Alto Executive will expand "*.bcp1" before invoking FTP):

>Ftp Maxc St/c *.bcpla-1.

To retrieve <System>Host-name/descriptor-file.txt;43 (two single quotes are necessary to get the "1" past the Alto Executive and the FTP command scanner, and one quote is necessary to get the ";" past the Alto Executive):

>Ftp Maxc R/c <System>Host-name"/descriptor-file.txt°;43cR

To cause Memo.ears to be spooled for printing on Ears by the Maxc printing system: >Ftp Maxc Store/s Memo.ears LPT:ak‑

This also works for Press files and unformatted text files if you know what you are doing. It does not do the right thing for Bravo-format files.