Text preview for : Exploring_the_Ethernet_with_Mouse_and_Keyboard_May81.pdf part of xerox Exploring the Ethernet with Mouse and Keyboard May81 xerox parc Exploring_the_Ethernet_with_Mouse_and_Keyboard_May81.pdf



Back to : Exploring_the_Ethernet_wi | Home

The Alto-Dolphin-Dorado Briefing Blurb
or
Exploring the Ethernet with Mouse and Keyboard

BY LYLE RAMSHAW

A revision of: A Field Guide to Alto-Land, by ROY LEVIN

This document is for Xerox internal use only


MAY 1981




XEROX
PALO ALTO RESEARCH CENTER
3333 Coyote Hill Road / Palo Alto / California 94304
Raison d'Etre
Are you a programmer? Are you sick of manuals that tell you how to use a software system
without telling you why it behaves as it does? Are you flustrated because you don't know the
unstated assumptions behind the interesting discussions you hear around you? Have you ever
wanted to browse through the source code or the documentation for a program, but couldn't figure
out where to find it? If the answer to some of these questions is "yes", read on! These and other
useful (and occasionally entertaining) tidbits shall be made known unto you.

You will doubtless read many documents while you are at Xerox. A common convention observed in many manuals and
memos is that fine points or items of complex technical content peripheral to the main discussion appear in small type,
like this paragraph. You will soon discover that you cannot resist reading this fine print and that, despite its diminutive
stature, it draws your eyes like a magnet. This document has such passages as well, just so that you can begin to enjoy
ferreting out the diamonds in the mountain of coal.

There is a great deal of useful infOlmation available on-line Oat Xerox in the form of documents and
source program listings. Reading them is often very helpful, but finding them can be a nuisance.
Throughout this document, references to on-line material are indicated by {n}, where n is a citation
number in the bibliography at the end of this document. Standard citations to the open literature
appear as [n).

Reading a document from front to back can be mighty boring. This document is organized so that
you can (supposedly) browse through and read the parts that look interesting. In fact, the current
version of this document is so disorganized that it is not at all clear that there really is a front and a back in the normal
sense! This means that the usual bottom-up approach to documentation (define your terms before
you use them) has been abandoned. Instead, all the relevant terms, acronyms, and the like have
been collected in a glossary at the end. Some information is contained only in the glossary, so you
may want to scan through it later (or now, for that matter). It is assumed that you have a basic knowledge of
computer science, and a modicum of common sense. Don't expect to find terms like "computer" and "network" in the
glossary.
The Alto-Dolphin-Dorado Briefing Blurb 2


Alto-Dolphin-Dorado" Land
Behind that inviting screen there lurks a wealth of fascinating history, folklore, and (occasionally)
documented wisdom. However, even the great storytellers of old occasionally forgot that their
attentive audiences included travelers from other lands who were ignorant of the local customs and
traditions. So it was with the Alto gurus. What follows is a transcription of the oral history of the
Alto culture acquired by a relatively recent settler in these parts. It makes no claim to
completeness, balance, or fairness. (A separate document exhibiting these qualities may be found
on {20}.)

Before exploring Alto-land, you should know something about the names of the creatures you will
find there. The prevailing philosophy about naming systems in CSL and SDD is perhaps somewhat
different from the trend elsewhere. While we have our share of alphabet soup (e.g., PARC, FfP,
MAXC, IFS), we are trying to avoid making it any worse. Names for hardware and software
systems are frequently taken from the Sunset Western Garden Book [14]; Grapevine servers are
named after wines; Dorados are named after capital ships; Pilot releases are natned after California
rivers. Personal machines also have names that frequently, but not necessarily, come from the same kinds of sources.
These names are chosen by the machine's owner, and registered with an entity named NetSupport WBST. As this
convention about names does not meet with universal approval, it seems inappropriate to offer a
justification of the underlying philosophy without offering equal time to the opposition. You will
doubtless provoke a far more interesting discussion if you advance your own views on naming to
almost anyone wandering in the corridors. Accordingly, we abandon the topic here and move on to
more concrete matters.

Alto, Dolphin, and Dorado hardware

Most of the offices and some of the alcoves around PARC have personal computers in them of one
flavor or another. The first of these was the Alto. There are more than 1000 Altos in existence
now, spread throughout Xerox, the four universities in the University Grant program (through which
Xerox has given Altos to U. of Rochester, and Altos, Dovers, and IFS's to eMU, MIT, and Stanford), and other
places. In contrast, the Dolphin and Dorado are newcomers to the scene. A Dolphin is somewhat
more powerful than an Alto, and a Dorado is gloriously more powerful. Private ownership of
Dorados is a recent innovation, and has not yet spread very far. Most of us get our fixes of Dorado
time by signing up on lists to share one of the "pool" Dorados.

The Alto hardware

The genus "Alto" comprises two species, imaginatively named Alto I and Alto II, and there are
several sub-species as well. All members of the genus have at least a display, a keyboard, a mouse
with 3 buttons, and a processor/disk cabinet. The front cover of an Alto I cabinet has a ventilation
grill just at the bottom, while on the front cover of an Alto II, the grill goes all the way up to the
disk slot. All Alto I's have a main memory consisting of 64K 16-bit words, called one bank in local
parlance. Most Alto II's are equipped with the extended memory option (XM), and have up to
four banks of memory (that is, 256K 16-bit words). Needless to say, you can do it lot more with
four times the memory.

The first Alto II's made came equipped with a funny keyboard, properly called the ADL keyboard, although sometimes
also simply referred to as the Alto II keyboard An ADL keyboard is larger, and has a different key layout, including
columns of function keys on the left and right. The ADL keyboards were generally reviled, and hence did not stay in
production long. Nowadays, they are pretty rare. If you want to see one, check out Clover's Alto. Don't be confused
by documentation that warns you that keys will be in different places on an Alto II; you can safely ignore these
The Alto-Dolphin-Dorado Briefing Blurb 3


warnings unless, God forbid, your Alto II has an ADL keyboard.

The innards of the Alto are revealed in gory detail in a very complete manual {I}. Facts, figures,
specifications, and programming information (at the machine level) are all there. What isn't there is
a bit of the philosophy underlying the machine design and organization. In particular...

1) There isn't much special-purpose hardware in the Alto. Most of the nifty stuff you can
read about in the hardware manual is in fact implemented by microcode. This gives us
considerable flexibility in the way we design software interfaces for experimental devices
and specialized instruction sets. In fact, Mesa and Small talk are implemented almost entirely with
"special" microcode.

2) The display is rather different from a number of other common displays. Instead of
containing a character or vector generator, the display hardware interprets individual bits.
One bit in memory shows up as one dot on the screen. Since the screen is 606 by 808
points, a quick calculation shows that a full-screen display requires nearly half of an Alto I's
memory. For a machine with only 64K of memory, that seems a big price to pay. The
theory is that in exchange for the space we get enormous freedom to experiment with
various strange ways of manipulating the screen.

So much for philosophy-how does it work out in practice? Well, excessive flexibility breeds chaos,
so a number of things have been standardized. All Altos contain a ROM that defines the "normal
emulator" (Le., the standard instruction set) and the standard i/o device interfaces (e.g., display,
disk, ethernet, and so-called "junk i/o"-the keyboard and mouse). The instruction set is derived
from the Data General Nova, though the ilo structure is rather different and several specialized
instructions exist to support various display manipulations. If you have a spare hour or so, read about
BITBLT in {I}. Then try to imagine writing the microcode to implement it Since the microcode for these
standard facilities is blown into a ROM, suggestions for improvements/extensions are treated with
considerable skepticism. Microcode hackers will find the additional 1K control RAM available on
all Altos a reasonably comfortable sandbox in which to play. If you are both a microcode hacker and a
concrete pourer, you can also use a second lK of ROM on Alto II's. A few Alto II's substitute 3K of RAM for the
second lK of ROM, which gives you even more room to play without any need for concrete..

The display has enormous potential, and there are a number of programs around that exploit it in
interesting ways. We also feel compelled to note that at least an equal number of programs still
treat the display as a glass teletype. Home-made cookies require more effort, but they taste a lot
better than the store-bought variety. Fortunately, more and more people are getting into home
cooking.

The mouse has two -obvious properties-it rolls and it clicks. Inside the Alto hardware, the mouse
position and the display cursor position are completely unrelated, but most software arranges for the
cursor to "track" the mouse's movements. The three mouse buttons are named red, yellow, and
blue, even though physically they are nearly always black. This choice was made because not all
mice have their buttons arranged in the same way. On some (older) mice, the buttons are thin,
horizontal bars; the top one is red, the bottom one is- blue. On most mice, however, the buttons are
wide, vertical bars, with red at the left and blue at the right. Some people insist on naming the buttons red,
yellow, and green-perhaps as kids they had strange paintboxes, or were fixated on traffic lights.

A somewhat unusual property of the Alto is that the keyboard and mouse buttons are unencoded;
that is, there is a bit for each key that indicates whether the key is up or down. Many programs
The Alto-Dolphin-Dorado Briefing Blurb 4


distinguish between holding a mouse button down and clicking it down and up. Fewer programs
play such tricks with the keyboard, although combinations of keys that would jam a conventional
typewriter are quite meaningful to some programs, c.g., the NetExec. Fortunately, there is standard
software that enables you to treat the keyboard in the usual way if you want to. Note that this "usual
way" involves a feature called infinite rollover that changes your typing style after a while: you can have arbitrarily
many keys depressed at the same time without causing a jam, and without causing any strokes to be discarded. Every
key that goes down counts as a key stroke when it goes down, and when that key comes up again doesn't matter at all.
A few weeks of typing on this sort. of keyboard, and you begin typing common letter clusters such as "ion" with just a
flick of the wrist; after all, if the letters come out in the wrong order on the display screen, you can always edit them
later.

With a personal computer, you are programmer, system hacker, and console operator all rolled into
one. If you don't like the state your program has reached, you can always press the boot button
and start over-an option you rarely have on larger, shared machines. It is a good idea NOT to press the
boot button when disk activity is in progress, however, since you may interrupt the writing of a disk sector halfway
through, thus rendering that sector unreadable. However, the Alto differs from many small computers in
that it lacks those time-honored, nitty-gritty debugging facilities: the console lights and switches.
If things are so screwed up inside that you can't get some sort of (software) debugger running, there
isn't much you can do as console operator. This tends to down-play the operator role and
emphasizes the system hacker role. ("Let's see, if I hit shift-Swat, that will write the core image on Swatee, and
if I then bootload the debugger... fI) It also makes certain kinds of bugs, e.g., those that smash crucial
memory locations in low-core, very difficult to find.

If you have just turned on an Alto and are about to spin up your disk and do some work, it is a good idea to hit the
boot button be/ore your disk comes up to speed: When an Alto is first powered up, it comes up in an unknown state,
and there is some small but nonzero chance that the processor is sitting in a loop just waiting to eat your disk (that is,
write something on it).

Double Disks on Altos

Many Altos in CSL have been equipped with a second disk drive, which either balances on top of
the processor cabinet or sits on some flat surface nearby. The two drives of a double disk Alto can
be used in two different ways: either the two disks constitute separate file systems, or they together
constitute a single, larger file system. It is possible to extend a one disk Alto file system into a two
disk system at any time, but the reverse is not possible. And a two disk system will only operate
when both of its disks are loaded into the drives of a double disk Alto. A double disk machine has
a second little switch hidden at the back of the keyboard, in addition to the boot button. This
switch serves to interchange the roles of the two drives, called DPO and DPl. If you flip this switch
while disk activity is in progress, you will fairly likely get what you deserve: a smashed page on o~e or both disks. The
Scavenger may help you recover.

The Dolphin (formerly called the DO)

A Dolphin looks a lot like an Alto II. The biggest difference is that the Dolphin has a nasty
looking piece of solid sheet metal where an Alto has a slot into which you can stick your disk pack.
You see, a Dolphin comes with a Shugart 4000 disk instead of the Diablo 31 disk of the Altos-and
the recording medium of a Shugart 4000 is not removable (well, not easily removable anyway: with the
right tools and expertise, you might swap platters in an hour or so). This makes it somewhat harder to borrow
someone else's Dolphin than it is to borrow their Alto-see the discussion below on Living Cleanly.

Dolphins have various advantages over Alto II's: Mesa programs run significantly faster; long
pointers in Mesa work (making it easier to use lots of memory); the Shugart disk is bigger (two
The Alto-Dolphin-Dorado Briefing Blurb 5


partitions); and Pilot runs on Dolphins. Most Dolphins have wide displays, 1024 bits in width
instead of the 606 bits pf the standard Alto-style display. The extra screen space is only available to
programs running in the Pilot world.

The Dorado (very formerly called the D1)

A Dorado doesn't look anything like an Alto, although most Dorados today come equipped with an
Alto-style terminal (display, keyboard, and mouse). In fact, in a return to the ways of the past, a
Dorado's processor is located in a remote, heavily air-conditioned machine room. When the Dorado
was being designed, it was intended and hoped that the Dorado, like the Alto, would live in your office. To prevent its
noise output from driving you crazy, a very massive case was designed, complete with many pounds of sound-deadening
material. These cases are fondly known as APC's, although no one is sure what the letters stand for in the Dorado's
case (see the Glossary). But experience indicated that Dorados run too hot when inside of these cabinets. and the
concept of having Dorado processors in offices has been abandoned. With VLSI and all, there is some hope that the
Dorado's successor (the Dragon?) will once again come out of the machine room and into your office.

Dorados have varying amounts of memory, but at least 512K 16-bit words, or equivalently, 8 banks.
In addition to these oceans of real memory, the Dorado has a fairly whippy processor, a cache, and
a Trident 80 MByte disk; this all adds up to pretty impressive perfonnance. A Dorado is roughly
three to five times faster than an Alto when emulating an Alto, that is. running BCPL. And a Dorado
runs compute-bound Mesa software roughly eight to ten times as fast as an Alto. Because of the
raw power of a Dorado, it is usually the computer of choice for substantial programming projects.
The primary difficulty about Dorados is that there aren't enough of them-yet (and the related fact that
they are rather tricky to build).

Dorado disks can be changed with somewhat greater ease than Dolphin disks, but the process is still
painful enough that changing disks is not the normal mode of operation. The biggest difficulty is
that you must be at the processor to change the disk, and the processor is a long way away.
Subsidiary difficulties are that you must power down a Dorado in order to change the disk pack,
and that T-80 disk packs are difficult to label effectively. As a result, when you borrow a Dorado,
you also need to borrow at least some of the space on that Dorado's local disk: this brings us to
the issue of Living Cleanly.

Living Cleanly: local disks, file servers, and the like

Local disks are very convenient, but not very reliable. It is quite tempting to work along on an
Alto for weeks at a time, without backing up your files on any other medium. You might be able
to do this forever without getting burned. On the other hand, those of us who have been hanging
around here for a while could tell you many sad stories of head crashes and dropped disks, that left
our colleagues (or even ourselves) with disk packs suitable only for wall decorations. In fact, most of
those very disks are now serving as wall decorations. Hence, the principle of clean living: you are living
cleanly if your pulse and blood pressure would remain substantially constant when you are
infonned that your local disk has been degaussed. Make sure that all of the bits you really
wouldn't want to lose are out some file server, such as Maxc or an IFS, where suitable precautions
are constantly being taken by wizards to protect against disk failure. Appropriate use of command file,
dump files. and other automatic aids can make this task easier.

Encouraging clean living has another benefit: shared local disks are only practical if everyone lives
cleanly. The management of the public partitions on Dolphins and Dorados presumes a policy of
clean living: when you are done working on a public partition, you must store away all of your
files on remote file servers. It is polite to delete your files from the local disk as well, to give whoever follows you
The Alto-Dolphin-Dorado Briefing Blurb 6


more space to play; If you find that there isn't enough space on a
but this is not nearly as critical.
partition, you are perfectly within your rights to delete the random files that are lying around on
the partition to regain space. And the creators of those files won't mind, it says here, because they
have been living cleanly. In fact, there is an authoritative image of what a "completely clean" public Alto-Mesa 6
partition for a Dorado is out on [Ivy]seems to be screwed up in some way, you can always get back to a known good state with lots of free space by
smashing the whole partition with that image, using CopyDisk.

(fhe above paragraph is the "letter of the law" regarding the sharing of public partitions. People
who want to be well regarded should also pay some attention to the "spirit of the law": sharing
things is always more pleasant when everyone acts with a modicum of politeness and care. This
topic is discussed at greater length below ... )

It would be nice if our computers could handle more of this file shuffling for us. There is some hope that we will be
able to move someday to a glorious future in which all of the independent file system fiefs will be combined into a
universal file system, and all local disks will be employed simply as automatically-managed caches for that file system.

A few comments on Booting

An Alto has one boot button, hidden behind the keyboard. On Dolphins, there are two boot
buttons, one at the back of the keyboard, and one on the processor cabinet itself: the two perform
roughly the same function, but the one on the cabinet is a little more potent. On Dorados, the
situation is much more complex. There are really two computers involved, the main processor and
a separate microprocessor called the baseboard computer. It is the baseboard computer's job to
monitor the power supplies and temperature, and to stage-manage the complex process of powering
up and down the main processor, and the correct initialization of all of its RAM's. The boot button
on a Dorado is actually a way of communicating with this baseboard computer. You encode your
request to the baseboard computer by pushing the boot button repeatedly: each number of pushes
means something different. For details, see Ed Taft's memo: {24}. If the baseboard computer of
the Dorado has gone west for some reason (as occasionally happens), your only hope is to push the
real boot button, a little white button located on the processor chassis itself, far, far away. Just as the
boot button on the keyboard is essentially a one-bit input device for the baseboard computer, the baseboard computer
also has a one-bit output device: a green light located on the processor chassis. Various patterns of flashing of this light
mean various things, as detailed in {24}.

Small Fish in a Big Pond-the Network

Two's company, three's a network. You can do a lot with an Alto, but at best it's still a classy
minicomputer. With hundreds of them out there we should be able in theory to do all sorts of
wonderful things. In practice, we actually do some of them. You should read the paper by
Metcalfe and Boggs describing the Ethernet [2] for a good introduction to the communication
network that connects our Altos together. In essence, a collection of Altos within reasonable
proximity is hooked together by an Ethernet. Ethernets are connected to each other by Gateways,
which for most purposes allow us to ignore the topology of the reSUlting network; the network as a
whole is called the Internet. However, occasionally it's nice to know where things really are, and
that's when a map {3} is helpful. For programs (which are notoriously poor map readers), the Gateways also
provide an information service {IS}.

We all know how uncommunicative computers can be when left to their own devices, and Altos are
no different That's why we invent careful protocols for them to use in talking to each other. Most
of the protocols now in use on the Ethernet are called PUP