Organize and Share your Electronics the way you want. Sign-Up for a free account now. It takes only 30 seconds!

Y Combinator’s Xerox Alto: restoring the legendary 1970s GUI computer

Y Combinator’s Xerox Alto: restoring the legendary 1970s GUI computer

Alan Kay recently gave his 1970’s Xerox Alto to Y Combinator and I’m helping with the restoration
of this legendary system.
The Alto was the first computer designed around a graphical user interface
and introduced Ethernet and the laser printer[1]
to the world.
The Alto also was one of the first object-oriented systems, supporting the Mesa and Smalltalk languages.
The Alto was truly revolutionary when it came out in 1973, designed by computer pioneer Chuck Thacker.

Xerox built about 2000 Altos for use in Xerox, universities and research labs, but the Alto was never sold as a product.
Xerox used the ideas from the Alto in
the Xerox Star, which was expensive and only moderately successful.
The biggest impact of the Alto was in 1979 when Steve Jobs famously toured Xerox and saw the Alto and other machines.
When Jobs saw the advanced graphics of the Alto and Star, he was inspired to base the user interfaces of the Lisa and Macintosh systems on Xerox’s ideas, making the GUI available to the mass market.[2]

How did Y Combinator end up with a Xerox Alto? Sam Altman, president of Y Combinator has a strong interest in the Alto and its place in computer history. When he mentioned to Alan Kay that it would be fun to see one running, Alan gave him one.

This article gives an overview of the Alto, its impact, and how it was implemented.
Later articles will discuss the restoration process as we fix components that have broken over the decades and get the system running.


The Xerox Alto II XM computer. Note the video screen is arranged in portrait mode. Next to the keyboard is a mouse. The Diablo disk drive is below the keyboard. The base contains the circuit boards and power supplies.

The photo above shows Y Combinator’s Alto computer.
The Alto has an unusual portrait-format display, intended to match an 8½” by 11″ page of paper.
Most displays of the time were character-oriented, but the Alto had a bitmapped display, with each of the 606×808 pixels controllable independently. This provided unprecedented flexibility for the display and allowed WYSIWYG (what-you-see-is-what-you-get) editing.
The bitmapped display memory used almost half the memory of the original Alto, however

In front of the keyboard is the three-button mouse.
Xerox made the mouse a fundamental input device for the Alto and designed the user interface around the mouse.
The disk drive at the top of the cabinet takes a removable 2.5 megabyte disk cartridge. The small capacity of the disk was a problem for users, but files could also be accessed over the Ethernet from file servers.
The lower part of the cabinet contains the computer’s circuit boards and power supplies, which will be discussed below.

Dynabook and the vision of the Alto

The motivation for the Alto was Alan Kay’s Dynabook project.
In 1972, he wrote A Personal Computer for Children of All Ages, setting out his vision for a personal, portable computer for education (or business), with access to the world’s knowledge.

In effect, Alan Kay presented a detailed vision for the touchscreen tablet decades before
it was practical.[3]

Alan Kay with a mockup of the Dynabook. Photo by Marcin Wichary,  CC BY 2.0.

Alan Kay with a mockup of the Dynabook.
Although the Dynabook was proposed years before the necessary hardware was available, the ideas could be tried out on the Alto, an “interim Dynabook”.
Photo by Marcin Wichary, CC BY 2.0.

The Dynabook (seen in mockup above) was to be a low-cost, battery-powered, portable computer with a touchscreen and graphics, able to access information over the network. The system would be highly interactive and programmable in an object-oriented language. As well as the keyboard, voice input could be used. Books could be downloaded and purchased.

Since the necessary hardware was science fiction when the Dynabook was proposed, the Alto was built as an “interim Dynabook” for research.
Butler Lampson’s 1972 memo entitled “Why Alto” proposed using the Alto for research in distributed computing, office computing, graphics, and personal computing. He stated,
“If our theories about the utility of cheap,
powerful personal computers are correct, we should be able to demonstrate
them convincingly on Alto.”
Xerox used the Alto to research and develop the ideas of personal computing.[4]

Software

The Alto had a large collection of software, largely implemented in the BCPL (predecessor to C), Mesa and Smalltalk languages.
The Bravo text editor (seen below) is considered the first WYSIWYG editor, with formatted text on the screen matching the laser printer output.
Also below is the Draw illustration program which used the mouse and an icon menu to create drawings.
Other significant programs included email, file transfer (FTP) and an integrated circuit editor.
The Alto also ran some of the first networked multiplayer games such as Alto Trek and Maze War.

Bravo was the word processor for the Xerox Alto, providing WYSIWYG text editing.
The Draw program for the Xerox Alto uses the mouse and icons for drawing.

Bravo was the word processor for the Xerox Alto, providing WYSIWYG text editing.
The Draw program for the Xerox Alto uses the mouse and icons for drawing.
The Alto simulator Salto was used for these images.

Hardware

The Alto was introduced in 1973.
To understand this time in computer hardware, the primitive 4004 microprocessor had been introduced a couple years earlier.
Practical microprocessors such as the 6502 and Z-80 were still a couple years in the future and the Apple II wouldn’t be released until 1977.
At the time, minicomputers such as the Data General Nova and PDP-11 built processors out of hundreds of simple but fast TTL
integrated circuits, rather than using slow, unreliable MOS chips.
The Alto was built similarly, and is a minicomputer, not a microcomputer.[5]

The Alto has 13 circuit boards, crammed full of chips.
Each board is a bit smaller than a page of paper, about 7-5/16″ by 10″, and holds roughly 100 chips (depending on the board).
For the most part, the chips are bipolar TTL chips in the popular 7400 series.
(The MOS memory chips are an exception.)
The image below shows the Alto’s card rack and some of the boards.

The Xerox Alto contains 21 slots for circuit boards. Each board is crammed with chips, mostly TTL.

The Xerox Alto contains 21 slots for circuit boards. Each board is crammed with chips, mostly TTL.

The Alto’s CPU consists of three boards.
The Control board is the heart of the processor: it manages the 16 microcode tasks and contains microcode in PROM.
The ALU board performs arithmetic and logic operations, and provides the main register storage.
The Control RAM board provides additional microcode storage in RAM and additional processor registers.
(Note that in a few years, a single chip microprocessor could replace these three boards.)

The photo below shows the ALU board. The 16-bit addition, subtraction and Boolean operations are performed by four of the popular 74181 ALU chip, used in many other processors of the era.
Each 16-bit register requires multiple chips for storage.
The 32×16 register file is historically interesting as it is built from i3101 64-bit bipolar memory chips, Intel’s first-ever product.

The ALU board from the Xerox Alto.

The ALU board from the Xerox Alto.

The Alto came out at a time when memory was expensive and somewhat unreliable.[6]
In 1970, Intel introduced the first commercially available DRAM memory, the 1103 chip, holding 1 kilobit of storage and making
magnetic core memory obsolete.
The original Alto used 16 boards crammed full of these chips to provide 128 kilobytes of memory.
The Alto we have is a more modern Alto II XM (eXtended Memory) with 512 kilobytes of storage on four boards.
Even so, the limited memory capacity was a difficulty for programmers and users.
The photo below shows one of the memory board, packed with denser 16 kilobit chips.

A 128KB memory card from the Xerox Alto.

A 128KB memory card from the Xerox Alto. It uses eighty 4116 memory chips, each with 16 kilobits of storage.

Microcode

The Alto hardware provides a simple micro-instruction set and uses
microcode to implement a full instruction set on top of this,[7]
including some very complex instructions.
The Alto introduced the
BITBLT graphics instruction, which draws an arbitrary bitmap to the display in a variety of ways (e.g. paint over, gray stipple or XOR).
“Blitting” became a standard graphics operation, still be found in Windows.

The Alto takes microcode further than most computers,
implementing many functions in microcode that most computers implement in hardware, making the Alto hardware simpler and more flexible.[8]
Microcode tasks copy every pixel to the display 30 times a second, refresh dynamic memory, read the mouse, handle disk operations, drive Ethernet — operations performed in hardware on most computers.
Much of the Alto microcode is stored in RAM, so languages or even user programs can run custom microcode.

Next steps

The first step to getting the system running will be to make sure the power supplies work and provide the proper voltages.
The Alto uses four complex but highly efficient switching power supplies: +15V, -15V, +12V, and +/-5V.[9]
(Most of the chips use +5V, but the memory chips and some interfaces require unusual voltages.)

The power supplies are mounted in the cabinet behind the card cage, as you can see in the photo below. The +/-5V supply is on the right, and the three other power supplies are on the left.

Looking into the back of the Alto, you can see the four switching power supplies (blue). The card cage is behind them. The disk drive has been removed from the top of the cabinet. On the back of the cabinet, connectors to the display, Ethernet, and other devices are visible.

Looking into the back of the Alto, you can see the four switching power supplies (blue). The card cage is behind them. The disk drive has been removed from the top of the cabinet. On the back of the cabinet, connectors to the display, Ethernet, and other devices are visible.

Restoring this systems is a big effort but fortunately there’s a strong team working on it, largely from the IBM 1401 restoration team. The main Alto restorers so far are Marc Verdiell, Luca Severini, Ron, and Carl Claunch. Major technical contributions have been provided by Al Kossow (who has done extensive Alto restoration work in the past and is at the Computer History Museum) and the two Keiths (who have restored Altos at the Living Computer Museum).
For updates on the restoration, follow kenshirriff on Twitter.[10]

Notes and references

[1]

The laser printer was invented at Xerox by Gary Starkweather and networked laser printers were soon in use with the Alto. Y Combinator’s Alto is an “Orbit” model, with slots for the four boards that drive the laser printer, laboriously rendering 16 rows of pixels at a time.

[2]

Malcolm Gladwell describes Steve Jobs’ visit to Xerox in detail in Creation Myth.
The article claims that Xerox licensed its technology to Apple, but strangely
that license wasn’t mentioned in
earlier articles about Xerox’s lawsuit against Apple.
The facts here seem murky.

[3]

Amazingly, Alan Kay even predicted ad blockers in his 1972 Dynabook paper:
“One can imagine one of the first programs an owner will write is a filter to eliminate advertising!”
I thought that Alan Kay missed WiFi in the Dynabook design, but as he points out in the comments, wireless networking was a Dynabook feature.

[4]

Xerox called the Alto “a small personal computing system”, saying,
“By ‘personal computer’ we mean a non-shared system containing sufficient
processing power, storage, and input-output capability to satisfy the computational needs of a single user.” (See ALTO: A Personal Computer System Hardware Manual.) Xerox’s vision of personal computing is described in the retrospective Alto: A personal computer.

Since the concept of “personal computer” is ill-defined, I won’t argue whether the Alto is
really a personal computer or not. Costing tens of thousands of dollars, the Alto was much
more expensive than what people usually think of as a personal computer.
The book Fumbling the Future: How Xerox Invented, then Ignored, the First Personal Computer calls Xerox the inventor of the personal computer.
(Or you can read Datapoint: The Lost Story of the Texans Who Invented the Personal Computer Revolution, which makes a convincing case for the Datapoint 2200 as the first personal computer.)
For a long list of candidates for the first personal computer, see
blinkenlights.com.

[5]

The Alto documentation refers to the microprocessor, but this
term describes the microcode processor.
The Alto does not use a microprocessor in the modern sense.

[6]

Since memory chips of the era were somewhat unreliable (especially in large quantities),
the Alto used parity plus 6 bits of error correcting code to improve reliability.
As well as the four memory boards, the Alto has three memory control boards to decode addresses and implement error correction.

[7]

The Alto’s microcode instructions and “real” instructions (called Emulated Instructions) are
described in the Hardware Reference.
The Alto’s instruction set is similar to the Data General Nova.

[8]

The Alto has 16 separate microcode tasks, scheduled based on their priority.
The Alto’s microcode tasks are described in Appendix D of the Hardware Manual.
The display task illustrates how low-level the microcode tasks are.
In a “normal” computer, the display control hardware fetches pixels from memory.
In the Alto, the display task in microcode copies pixels from memory to the display hardware’s 16 word pixel buffer as each line is being written to the display. The point is that the hardware is simplified, but the microcode task is working very hard, copying every pixel to the display 30 times a second.
Similarly the Ethernet hardware is simplified, since the microcode task does much of the work.

[9]

Steve Jobs claimed that the Apple II’s use of a switching power supply was a revolutionary idea
ripped off by other computer manufacturers. However, the Alto is just one of many computers that used switching
power supplies before Apple (details).

[10]

Many sources have additional information on the Alto.
Bitsavers has a large collection of Alto documentation.
DigiBarn has photos and more information on the Alto.
The Computer History Museum has a large collection of Alto source code online here.
The Alto simulator Salto is available here if you want to try out the Alto experience.
Wikipedia has a detailed article on the Alto.

Read more Here







 

More Articles to Read

App note: EPIC: Electro-Pyrotechnic Initiator Chip Resistor
App note: EPIC: Electro-Pyrotechnic Initiator Chip Resistor
App note: Noise analysis for high-speed op amps
App note: Noise analysis for high-speed op amps
Skill Sunday: Arrays
Skill Sunday: Arrays
App note: Infrared remote control implementation with MSP430FR4xx
App note: Infrared remote control implementation with MSP430FR4xx
Gesture Controlled Smart Home
Gesture Controlled Smart Home
Design for a Wideband, Differential Transimpedance DAC Output
Design for a Wideband, Differential Transimpedance DAC Output
Wrist thrusters let you fly through the water effortlessly
Wrist thrusters let you fly through the water effortlessly
Bertan/Spellman 225-20R HV power supply teardown
Bertan/Spellman 225-20R HV power supply teardown
Blinking Christmas Lights
Blinking Christmas Lights
Adjusting clock with alarm, hygrometer & thermometer on 1.8″ ST7735 display
Adjusting clock with alarm, hygrometer & thermometer on 1.8″ ST7735 display
Adding an “extra sense” with rangefinders
Adding an “extra sense” with rangefinders
This wireless game controller looks like a rug
This wireless game controller looks like a rug
How to run your ESP8266 for years on a battery
How to run your ESP8266 for years on a battery
Calibration of a 3-Phase Energy Meter Board on the ADE7754
Calibration of a 3-Phase Energy Meter Board on the ADE7754
Making beats on a tiny Arduino DJ controller
Making beats on a tiny Arduino DJ controller
Qinsi-QS5100 Sn63Pb37 solder profile
Qinsi-QS5100 Sn63Pb37 solder profile
Water Detection System
Water Detection System
Professional Hi-Fi 15W Tube Amplifier circuit
Professional Hi-Fi 15W Tube Amplifier circuit
This Arduino machine will judge how sick your ollies are
This Arduino machine will judge how sick your ollies are
Turn an old payphone into a boombox for ’90s hits
Turn an old payphone into a boombox for ’90s hits

Top


Shares