Reprinted from Byte, issue 9/1981, pp. 58-68.
In the mid-1970s, the personal-computer market blossomed with the introduction
of the Altair 8800. Each year since has brought us personal computers with
more power, faster execution, larger memory, and better mass storage. Few
computer enthusiasts or professionals can look at the machines of today without
wondering: What’s next?
The Alto: a Personal Computer
In 1972, Xerox Corporation decided to produce a personal computer to be used
for research. The result was the Alto computer, whose name comes from the
Xerox Palo Alto Research Center where it was developed. The Alto was the result of
a joint effort by Ed McCreight, Chuck Thacker, Butler Lampson, Bob Sproull,
and Dave Boggs, who were attempting to make a device that was small enough to
fit in an office comfortably, but powerful enough to support a reliable,
high-quality operating system and graphics display. Their goal was to
provide each user with a personal computing facility capable of meeting all individual needs
and a communications facility that would allow users to share information easily.
In 1978, Xerox donated a total of fifty Altos to Stanford, Carnegie-Mellon,
and MIT (Massachusetts Institute of Technology). These machines were quickly assimilated
into the research community and rapidly became the standard against which other
personal computers were judged.
It is unlikely that a person outside of the computer-science research community will
ever be able to buy an Alto. They are not intended for commercial sale, but
rather as development tools for Xerox, and so will not be mass-produced. What
makes them worthy of mention is the fact that a large number of the personal
computers of tomorrow will be designed with knowledge gained from the development of
The Alto consists of four major parts: the graphics display, the keyboard,
the graphics mouse, and the disk storage/processor box. Each Alto is housed in
a beautifully formed, textured beige metal cabinet that hints at its
$32,000 price tag. With the exception of the disk storage/processor box,
everything is designed to sit on a desk or tabletop.
The Graphics Display
The graphics display is the most striking feature of the Alto. It looks
somewhat like a television screen that has been turned sideways (see photo 1). It
is a raster-scan display, and the physical dimensions of the screen are
8 inches (horizontal) by 10 inches (vertical). The black-and-white display allows the
user to address an area 808 pixels (picture elements) vertically by 606
pixels horizontally. This results in resolution of about 80 points per inch.
|Photo 1: Two of the Xerox Alto personal computers. Each Alto processor is made of medium- and small-scale TTL integrated circuits, and is mounted in a rack beneath two 3-megabyte hard-disk drives. Note that the video displays are taller than they are wide and are similar to a page of paper, rather than standard television screen.|
The method of display used is called bit-mapped raster scan. This
means that every point on the display is addressable as a bit in memory. Although
this method can take up a great deal of memory, it has the advantage of making the display very
fast. Bit mapping also provides the user with a convenient method of screen
access and the ability to easily look at the current contents of the screen.
In terms of displaying text, the screen can hold 60 lines of 90 characters
(assuming the characters are equivalent to the typical 7 by 9 dot character
commonly found on most video terminals). Character generation is not
done in hardware on the Alto. A character set may be created by a user
and displayed on the screen. Mixed fonts are allowed so that text of various
sizes and shapes may be simultaneously displayed on the screen.
Since each dot on the display corresponds to only one bit in memory, there is
no facility for grays or intermediate intensities. Due to the large number of
points per inch, however, various combinations of points can be displayed
to form a “texture” that gives the impression of varying shades
of gray. This is exactly the same method used to reproduce pictures in a newspaper.
|Photo 2: Display from the keyboard-test program. The Alto keyboard has a separate signal line for each key and can thus tell when any number of keys are being pressed simultaneously. In the display, the black keys are being held down. The small square above the keyboard represents the mouse (see photo 4); one mouse key is also pressed.|
Superficially, the Alto keyboard resembles a typical typewriter keyboard with
the addition of a few special keys. The keyboard is detachable, and quite
comfortable for typing. It has the unique property of being entirely unencoded.
Each key has its own signal line in the keyboard interface, which allows a
program to take advantage of the possibility of “chord” commands,
where the user holds down one or more keys. For example, Shift-Control-E is as easy
for the Alto to read as A-B-C (see photo 2). Another advantage is the ability
to determine how long a key has been held down. For example, the pinball game
program in photo 3 determines the force of a shot by measuring how long a key
is held down on the keyboard. There is, of course, software to allow a
program to read the keyboard in the typical manner.
|Photo 3: The Pinball game. Flippers are actuated by the two shift keys; an Alto port can be connected to a speaker to provide bells and buzzer sounds.|
The Graphics Mouse
The mouse is a small box with three buttons on the top and several ball bearings
on the bottom. A slender cable connects the mouse to the Alto keyboard (see photo
4). The buttons are named red, yellow, and blue, although the physical buttons
are all black. The mouse is typically held in the user’s right hand and
rolled along the table on a soft piece of plastic that provides traction for
the ball bearings.
|Photo 4: The mouse input device. The operator uses the mouse to control cursor placement on the screen; it detects its own change in position (a joystick relies on absolute position) as the operator rolls it around on a piece of soft plastic. The mouse also has three buttons, called red, yellow and blue.|
Movement is detected by the motion of one of the ball bearings. The mouse
reports changes in position to the Alto. From this, a cursor on the Alto
display can be positioned. The physical position of the mouse on the table
is unimportant, since only the change in position is reported. The mouse graphics
interface is considerably more flexible and comfortable than a bit pad,
joystick, or trackball. Many Alto programs can be controlled with the mouse
alone, independent of a keyboard.
Disk Storage/Processor Box
The processor and disk storage for the Alto are contained in a rack about the
size of a waist-high filing cabinet. Each Alto has two 3-megabyte disk drives. The
drives themselves resemble small pizza ovens and are often referred to in this manner.
The “brain” of the Alto is a 16-bit custom-made processor intended
to resemble the Data General Nova 1220. The processor is made entirely of
small- to medium-scale TTL (transistor-transistor logic) ICs (integrated circuits). The
processor operates at a speed of approximately 400,000 instructions per second.
Each Alto has an address space of 64 K 16-bit words, including the graphics bitmap.
By using a technique called bank selection, the Alto may expand its available
memory in 64 K-word increments up to 256 K words. An Alto with 256 K words
is known as a wide-bodied Alto.
Quite a bit of the magic of the Alto is performed at the microcode level.
The Alto can run up to sixteen tasks concurrently, and all of the scheduling
and I/O (input/output) for this multiprocessing is done in microcode. The user
has direct control over only one task, however. The user task is the lowest
priority and must, if necessary, relinquish processing cycles to the other tasks
that control the display, disks, keyboard and mouse I/O, and Ethernet connections.
The user has direct control over the microcode and may rewrite it according to
The Alto has the interesting property of using software (often microcode) to perform
many tasks, such as keyboard encoding and character generation, that are typically
done in hardware. This approach leaves the Alto with an occasionally cumbersome but
highly flexible architecture.
Each Alto has a ROM (read-only memory) that contains just enough software to
“bootstrap” an Alto into the local network (see
textbox on this page). By keeping a bootstrap program in ROM, the user will always have a “safety net”
to fall back on in case some other portion of the system software is not working.
All of the Alto software can be retrieved from across the network.
The Alto Operating System (OS), a program which provides a set of basic facilities for control
and communication with the Alto, is written in BCPL, a language very similar to
C. Most programs, BCPL or otherwise, run under the direction of the Alto OS.
Since the address space of an Alto is small, a technique called a “Junta”
is used to permit BCPL programs to shed unwanted sections of the Alto OS during
execution. If those portions are needed later, they may be restored by
performing a “Counterjunta.”
One BCPL program that runs on top of the operating system is called the Alto Executive
(see photo 5a). This program speaks to the user directly and makes facilities available
for file manipulation and program execution. An interesting feature of the Executive
is that of escape expansion and file-name completion. Typing a partial file or
program name followed by an escape, in the same fashion that an ESC (escape)
or ALT (alternate mode) might be sent from an ASCII (American Standard Code for
Information Interchange) terminal, causes the Executive to complete the typing
of the name on the screen. This
allows a programmer to name a file in a descriptive manner (such as
Gatewaylnformation.press), rather than typing in a long name. The Executive program
will recognize it as soon as it has read enough characters to determine the
file uniquely. By typing a question mark instead of an escape, the Executive will
list all file names that are valid matches for the string typed thus far.
|Photo 5a: Examples of Alto software: Display of the Alto Executive, with an example of star and question-mark notation.|
The Alto has a highly flexible and rugged file system. Unlike many file systems
(eg: Digital Research’s CP/M or Radio Shack’s TRSDOS) that limit names to
six or eight characters with a three-character extension, the Alto file system permits
file names of up to thirty-one characters in length. When a file name is entered
for the first time, the file name is stored exactly as typed, even with regard
to upper- and lowercase. Since the file names may be very long, this permits
a programmer to use upper- and lowercase to improve readability. LongFileName.BigExtension
is much easier on the eyes than LONGFILENAME.BIGEXTENSION. After the creation
of a file, case is ignored when the user is speaking about the file, so either
of the two names in the previous examples, as well as longfilename.bigextension,
would be valid.
Alto files are divided into pages. Each page contains a small header that
describes the current page, tells what file the page belongs to, and points to
the places on the disk that contain the next and previous pages for the same file.
This makes the file system almost indestructible. A program called Scavenger can
automatically rebuild a broken file system.
Of course, no Alto is an island, so software is needed to deal with the Ethernet
network. Some of this software appears in the form of the NetExecutive (see photo
5b) and FTP (file-transfer program). The NetExec
is a program that appears to be very similar to the Alto Executive, but it
loads programs from across the network rather than from the local disk. This
means that a user need not keep infrequently used or large programs locally.
Instead, these programs can be loaded through the network (at an apparent
speed of approximately 800,000 bits per second) only when needed. FTP performs
similar feats of file manipulation, but in a considerably more flexible manner.
|Photo 5b: Examples of Alto software: NetExecutive (similar to the Alto Executive, but it allows access to resources on the Ethernet.|
Although a great deal of software written for the Alto is in BCPL, there is
a new contender for software development called Mesa. Mesa is a Pascal-like
language that is incompatible with BCPL because of differences in their respective
microcodes. Mesa is expected to be the programming language for the successors
of the Alto (see photo 5c).
|Photo 5c: Examples of Alto software: Typical Mesa program being edited by Bravo; note the different typefonts used in the program listing.|
BCPL and Mesa are the system languages for the Alto, which means that the
system utilities and many applications programs are written in them. Other
languages are available on the Alto, however. Much of the research work done
on the Alto at Xerox is written in Smalltalk, an object-oriented language that
is both easy to learn and highly powerful (see the special August 1981 BYTE issue
on the Smalltalk language). Another supported language is LISP, a list-processing
language that is very popular in the artificial intelligence research community.
Using the Screen
A system with the advanced graphics capability of the Alto will make extensive
use of those facilities. The screen may be broken up into windows, and each
window may be accessed in a different manner, if
desired. Many Alto programs use only the mouse and screen windows for program
control. For instance, the Neptune program is used for managing the contents of
the Alto’s local disks (see photo 5d). A file may be deleted simply by
touching the file name with the cursor, then touching the Delete spot on the
screen with the cursor. As the cursor enters a new window, it may change
shape, perhaps appearing as an arrow in one window and a paintbrush in another.
|Photo 5d: Examples of Alto software: Directory from the Neptune directory editor. The file names in black have been selected for further operations such as printing or erasure. The cursor is displayed as a cross in a circle.|
Since the Alto is used extensively for research in the office automation field,
a good text editor is an obvious requirement. Bravo is a text editor and formatter
widely used on the Alto. In the tradition of screen-oriented editors, the current
state the user’s file is always shown on the screen. Bravo is controlled
partly by keyboard commands and partly by mouse commands. It allows a user to
open windows into one or more files. Text may be added or deleted by pointing
at the desired location on the screen (see photo 5e) with the mouse cursor,
and giving a command via the keyboard or mouse. Bravo supports many different
fonts and allows the user to change easily from one font to the next. In
addition, Bravo remembers the changes that have been made to a document and allows
the user to reverse any or all changes.
|Photo 5e: Examples of Alto software: Bravo’s ability to change fonts (there are hundreds of fonts for the Alton, from Gothic to Elvish Runes; the central paragraph in this display has been changed to Greek). The document in the bottom window has to been converted to the form shown in the top window.|
Bravo allows the user to edit and format text, but often a person may
wish to include illustrations in a document. To do this, a program called Draw
is used. Draw is an interactive sketch-pad program that provides a variety of tools
for creating and manipulating pictures made from lines, curves, and text. Draw
divides the screen into a number of windows (see photo 6). The left side of the
screen contains a menu of commands and a variety of brushstrokes that can be
selected. The top of the screen contains an area for text commands and messages
from the program. The middle of the screen is the picture workspace. Curves can
be drawn by moving the cursor directly, or by selecting several points and allowing
Draw to mathematically fit a curve to those points. Once an object is defined, it can
be repainted using a number of brushstrokes. Since this is very similar to the techniques
used by artists and calligraphers, quite a bit of artistic expression is possible.
An object can be duplicated, rotated, stretched, or shrunk, by means of a
small set of commands and mouse gestures.
Each Alto is assigned an Ethernet address that identifies it uniquely on
the network. A typical Ethernet address might be 50#100, which is meaningless to
most people. To permit an easily remembered distinction between Altos, each
is assigned a name. For instance, the Altos at Stanford are named after
rivers and mountains in California State parks; Altos at CMU are named after
jewels, and Altos at Xerox are named after people. This leads to such
interesting names as Cypress, Turquoise, or Machiavelli, which are considerably easier
to remember than 50#100.
|Photo 6a: Use of the Draw program: Points are placed with the cursor, and curves and lines are filled in by the program.||
|Photo 6b: Use of the Draw program: Lines may be "painted" with a variety of “brushstrokes” (the cursor has changed to a small paintbrush).|
|Photo 6c: Use of the Draw program: Texture is given to the lines; dotted lines are created with the scissors cursor.||
|Photo 6d: Use of the Draw program: Picture may be mathematically manipulated; a new figure may be created by reversing, tilting, or stretching a copy of the original.|
Alto networks do not consist entirely of Altos. Several other devices are connected
to the Ethernet network. One type is called a server. Servers are userless
Altos that are dedicated to some specific function. A server might be connected to
a printer. Thus, printing a file would actually consist of sending the proper messages
to a Printing Server. One common type of server is a File Server. These machines
support extra-large disks and are repositories for programs and files that are
too large or too infrequently accessed to make storage on individual machines
worthwhile. The Stanford File Server is named Lassen.
Due to the design of the network and the Altos, a new Alto can be wheeled in,
plugged into the network medium (standard coaxial cable), and, with a blank
disk pack fresh from the factory, become entirely functional with a full
set of software in a matter of minutes. An Alto can also be disconnected, moved
to another port in the coaxial cable, and reconnected without affecting either
the performance of the network or the Alto.
Several programs exist that take advantage of the distributed processing capabilities inherent
in the Ethernet network. Of all of them, the most enjoyable are the games. Trek
is a multiplayer “spacewar” game that is controlled primarily by
the mouse (see photo 7). Mazewar is a multi-player romp through a realistic
labyrinth (see photo 8). The unique feature of these games is that large numbers
of users can join or leave the game as they please without affecting the play
of the others. Since all the Altos can listen to the same packet (block information
on the Ethernet) at once, the game program is never running on any
single coordinating machine. Instead, it is running independently on every
|Photo 7: The multiplayer Trek program. This game is played entirely under mouse control. The lower portion of the screen shows a short-range sensor scan; above is the long-range display, and navigation and weapons controls.|
A stand-alone Alto is usable, but the best configuration is a group of Altos
connected by an Ethernet system. Since the Ethernet system is a local network,
a special device called a gateway was developed to allow local Ethernet networks
to speak to other Ethernet networks or packet networks of other types.
Many companies are researching network schemes that would allow packet transmission
across cable-television lines. Since these cables are currently installed in many
homes and buildings, it is not difficult to imagine a city with an “information grid,”
analogous to the electric-power grid that exists today. Combined with an electronic
mail system (a prototype called Laurel is used on Altos today) the
possibilities are staggering.
|Photo 8: The multiplayer Mazewar game. The eye represents the persona of an opponent. Any Alto on the net can join or leave the game at any time.|
The Alto has been around for several years. As research tools go, it is
covered with moss and gathering dust. But new products will be appearing on
the market based on the expertise gained in producing and using the Alto. The
next few years should show a dramatic increase in the quality of personal computing
and the ability to interconnect personal computers. And the Alto is one of
the first personal computers that satisfies the needs of the computer scientist as well
as the secretary or businessman.
I would like to thank Dr Brian Reid and Mark Roberts of Stanford University for
their time and helpful comments; also Sandy Lanzarotta of Xerox and Cindy Pavlinac
for their help and support.
- Lampson, B W and E Taft. Alto User’s Handbook, 1979.
- Metcalfe, R M and D R Boggs. “Ethernet: Distributed Packet Switching For
Local Computer Networks.” Communications of the ACM 19,7, July 1976,
pages 395 through 404.
- Shoch, J F and J A Hupp. “Measured Performance of an Ethernet Local Network.”
Communications of the ACM 23,12, December 1980, pages 711 through 721.
- Thacker, C P, E M McCreight, B W Lampson, R F Sproull, and D R Boggs. Alto:
A Personal Computer. Tech Rep CSL-79-11. Palo Alto CA: Xerox Palo Alto Research
Center, August 1979. (To appear in Computer Structures: Readings and Examples,
Second Edition. Siewiorek, Bell, and Newell, editors.)