The Original Macintosh
Anecdotes about the development of Apple's original Macintosh, and the people who made it (66 stories)
“The details are not the details. They make the design.” -- Charles Eames

Steve Jobs:  (66)
Page1 2 34 5 6 7 8 9 10 11 12 13 14

Burrell tried to sneak in some hardware expandability
July 1981
Andy Hertzfeld
Hardware Design,Management

Expandability, or the lack thereof, was far and away the most controversial aspect of the original Macintosh hardware design. Apple co-founder Steve Wozniak was a strong believer in hardware expandability, and he endowed the Apple II with luxurious expandability in the form of seven built-in slots for peripheral cards, configured in a clever architecture that allowed each card to incorporate built-in software on its own ROM chip. This flexibility allowed the Apple II to be adapted to a wider range of applications, and quickly spawned a thriving third-party hardware industry.

But Jef Raskin had a very different point of view. He thought that slots were inherently complex, and were one of the obstacles holding back personal computers from reaching a wider audience. He thought that hardware expandability made it more difficult for third party software writers since they couldn't rely on the consistency of the underlying hardware. His Macintosh vision had Apple cranking out millions of identical, easy to use, low cost appliance computers and since hardware expandability would add significant cost and complexity it was therefore avoided.

Apple's other co-founder, Steve Jobs, didn't agree with Jef about many things, but they both felt the same way about hardware expandability: it was a bug instead of a feature. Steve was reportedly against having slots in the Apple II back in the days of yore, and felt even stronger about slots for the Mac. He decreed that the Macintosh would remain perpetually bereft of slots, enclosed in a tightly sealed case, with only the limited expandability of the two serial ports.

Mac hardware designer Burrell Smith and his assistant Brian Howard understood Steve's rationale, but they felt differently about the proper course of action. Burrell had already watched the Macintosh's hopelessly optimistic schedule start to slip indefinitely, and he was unable to predict when the Mac's pioneering software would be finished, if ever. He was afraid that Moore's Law would make his delayed hardware obsolete before it ever came to market. He thought it was prudent to build in as much flexibility as possible, as long as it didn't cost too much.

Burrell decided to add a single, simple slot to his Macintosh design, which made the processor's bus accessible to peripherals, that wouldn't cost very much, especially if it wasn't used. He worked out the details and proposed it at the weekly staff meeting, but Steve immediately nixed his proposal, stating that there was no way that the Mac would even have a single slot.

But Burrell was not that easily thwarted. He realized that the Mac was never going to have something called a slot, but perhaps the same functionality could be called something else. After talking it over with Brian, they decided to start calling it the "diagnostic port" instead of a slot, arguing that it would save money during manufacturing if testing devices could access the processor bus to diagnose manufacturing errors. They didn't mention that the same port would also provide the functionality of a slot.

This was received positively at first, but after a couple weeks, engineering manager Rod Holt caught on to what was happening, probably aided by occasional giggles when the diagnostic port was mentioned. "That things really a slot, right? You're trying to sneak in a slot!", Rod finally accused us at the next engineering meeting. "Well, that's not going to happen!"

Even though the diagnostic port was scuttled, it wasn't the last attempt at surreptitious hardware expandability. When the Mac digital board was redesigned for the last time in August 1982, the next generation of RAM chips was already on the horizon. The Mac used 16 64Kbit RAM chips, giving it 128K of memory. The next generation chip was 256Kbits, giving us 512K bytes instead, which made a huge difference.

Burrell was afraid the 128Kbyte Mac would seem inadequate soon after launch, and there were no slots for the user to add RAM. He realized that he could support 256Kbit RAM chips simply by routing a few extra lines on the PC board, allowing adventurous people who knew how to wield a soldering gun to replace their RAM chips with the newer generation. The extra lines would only cost pennies to add.

But once again, Steve Jobs objected, because he didn't like the idea of customers mucking with the innards of their computer. He would also rather have them buy a new 512K Mac instead of them buying more RAM from a third-party. But this time Burrell prevailed, because the change was so minimal. He just left it in there and no one bothered to mention it to Steve, much to the eventual benefit of customers, who didn't have to buy a whole new Mac to expand their memory.
We discover who wrote an awkward game for the PC
August 1981
Andy Hertzfeld

The first version of the IBM PC was introduced in August 1981. Apple responded by running an ad in the Wall Street Journal with the headline "Welcome, IBM. Seriously." Even though he was usually tight with money, Steve Jobs allowed the Mac team to buy an early unit to dissect and evaluate. The day it became available, we ran to the store and purchased one to take back to the lab.

Needless to say, we were not very impressed with it. From the perspective of the Macintosh that we were already in the midst of bringing to life, it seemed like ancient history the day it came out. There was little, if any, Woz-like cleverness in the hardware design, using dozens of extraneous chips without having any cool features. The 8088 was a decent processor compared to the 6502, but it paled next to the 68000 we were using in the Mac.

But the most clunky part of the system was the software. MS-DOS seemed like a clone of an earlier system, CP/M, and even the demo programs lacked flair. It came with some games written in BASIC that were especially embarrassing.

The most embarrassing game was a lo-res graphics driving game called "Donkey". The player was supposed to be driving a car down a slowly scrolling, poorly rendered "road", and could hit the space bar to toggle the jerky motion. Every once in a while, a brown blob would fill the screen, which was supposed to be a donkey manifesting in the middle of the road. If you didn't hit the space bar in time, you would crash into the donkey and lose the game.

We thought the concept of the game was as bad the crude graphics that it used. Since the game was written in BASIC, you could list it out and see how it was written. We were surprised to see that the comments at the top of the game proudly proclaimed the authors: Bill Gates and Neil Konzen. Neil was a bright teenage hacker who I knew from his work on the Apple II (who would later become Microsoft's technical lead on the Mac project) but we were amazed that such a thoroughly bad game could be co-authored by Microsoft's co-founder, and that he would actually want to take credit for it in the comments.
The Reality Distortion Field changes Bruce's mind about working at Apple
September 1981
Bruce Horn
Reality Distortion,Apple Spirit,Recruiting

In the spring of 1981, I was 21, and just about to graduate from Stanford. I had been working at least part-time (and often fulltime during the summers) at Xerox PARC in the Learning Research Group for the last eight years. The people at PARC were legendary, and I felt extraordinarily lucky to be able to work with many of them. It was a tremendous learning experience, and I had had the chance to work on a variety of exciting projects through the years.

My most recent project had been the NoteTaker, a portable Smalltalk machine with a bitmap touchscreen display, mouse and keyboard, stereo sound, and dual 8086 processors: one I/O processor which also ran BitBLT (Bitwise BLock Transfer) to draw the graphics, and one emulator processor dedicated to running the Smalltalk bytecode interpreter. My job was to help out on the bytecode interpreter, to write the I/O processor routines, and to basically keep enough of the NoteTaker prototypes running so that they could be used for demos to management. The NoteTaker hardware had been created by Doug Fairbairn, a gifted hardware and chip designer who had recently left to start a new company, VLSI Technology, Inc., or VTI.

On that project I had been working closely with Larry Tesler. Larry was an amazing guy--he had invented the modeless text editing engine for Smalltalk (modeled on his Gypsy editor), and would wear a t-shirt with the slogan "Don't Mode Me In" around the lab. He also was famous for writing a piece of software that would coordinate flash cards at Stanford football games to provide spectators across the stadium with animated bitmap graphics. One evening Larry and I went out for dinner to a local pizza parlor on El Camino in Palo Alto. While we were waiting for the pizza, Larry said, "Bruce, I'm thinking of leaving PARC."

"Really? How can you leave PARC?" I was incredulous. PARC was the Mecca of computer science; we often said (only half-jokingly) that 80 of the 100 best computer scientists in the world were in residence at PARC. I could walk down the hall and wander into the offices of people like Alan Kay (the leader of the Learning Research Group, where many of today's user interface innovations were first created); Chuck Geschke and John Warnock (who later founded Adobe); and Ed McCreight, the inventor of B-Trees. And they all made time to answer my questions, even if they were from a geeky and gangly teenager. LRG and the rest of PARC were full of the brightest and most creative people on the planet. Why would anyone want to leave?

Larry said that he was ready for a new challenge--ready to try to get some of the PARC ideas out into the world. I said, "Well, what about Apple?" We had been talking with Apple recently and had given a demo of Smalltalk to Steve Jobs. Although Larry didn't say anything right away, it turns out he had already been interviewing at Apple, and was soon to join the Lisa team.

When I finally did graduate in mid-1981, I wasn't sure what I wanted to do. Working at PARC was a dream come true, and I had lived that dream for more than a third of my life. But maybe I should get out into the "real world." PARC was so ahead of the rest of the world--we had Alto and Dorado workstations with mice, large portrait bitmapped displays, WYSIWYG (What You See Is What You Get) text editors, graphics editors, interactive object-oriented programming environments with comprehensive class libraries, local area networks, laser printers, email--that taking a "normal" job in industry was guaranteed to be a letdown. But in talks with Adele Goldberg, one of the senior members of LRG, and my good friend Rachel Rutherford, I realized that I really did need to try something new--that I'd regret it if I didn't leave the comfortable and familiar environment of PARC.

I began interviewing at a variety of companies in the valley; most were forgettable. Then I remembered about Larry Tesler at Apple, and about Doug Fairbairn at VTI, so I contacted them both.

Apple was interesting; Larry was working on the Lisa, which was starting to look like a real computer, but for some reason it didn't appeal to me. At one point, though, Larry realized that I'd be a better fit in the Mac group, and introduced me to Andy Hertzfeld. Andy (the "soul" of the Mac software group) showed me some demos that were so amazing that I somehow thought that they didn't really need me--that the software was almost done! But I was impressed and intrigued, and mulled it over...

Meanwhile, I went to interview at VTI. The people there were wonderful. I'd be working with folks I knew and respected, and Doug even offered me a $15K signing bonus, a huge amount of money for a recent college graduate. I'd be working on advanced chip design tools, a new area for me, and it would be an interesting challenge. So I accepted the job. That was Thursday.

On Friday evening, I got a phone call. "Bruce, it's Steve. What do you think about Apple?" It was Steve Jobs. "Well, Steve, Apple's cool, but I accepted a job at VTI."

"You did what? Forget that, you get down here tomorrow morning, we have a lot more things to show you. Be at Apple at 9am." Steve was adamant. I thought I'd go down, go through the motions, and then tell him that I'd made up my mind and was going to VTI.

Steve switched on the Reality Distortion Field full-force. I met with seemingly everyone on the Mac team, from Andy to Rod Holt to Jerry Manock to the other software engineers, and back to Steve. Two full days of demos, drawings of the various designs, marketing presentations--I was overwhelmed.

On Monday I called Doug Fairbairn at VTI and told him I had changed my mind.

I was going to join Apple, where we would change the world with a little computer called the Macintosh.

A brief history of desk accessories
October 1981
Andy Hertzfeld
Software Design,User Interface,Personality

One of the first architectural decisions that Bud and I made for the Macintosh system software in the spring of 1981 was that we were only going to try to run one application at a time. We barely had enough RAM or screen space to do even that, and we thought that we'd benefit from the resultant simplifications. Besides, multi-tasking was supposed to be Lisa's forte, and we didn't want to usurp all of the reasons for buying a Lisa.

Bud Tribble was usually on an even keel, but one afternoon in the fall of 1981 he came into my office, unusually excited. "You know, I've been thinking about it. Even if we can only run one major application at a time, there's no reason that we can't also have some little miniature applications running in their own windows at the same time."

That sounded intriguing to me. "What kind of little programs? How are they different?", I wondered.

Bud smiled. "You'd want tiny apps that were good at a specific, limited function that complements the main application. Like a little calculator, for example, that looked like a real calculator. Or maybe an alarm clock, or a notepad for jotting down text. Since the entire screen is supposed to be a metaphorical desktop, the little programs are desk ornaments, adorning the desktop with useful features."

"But where do we draw the line?", I asked. "What are the differences between an ornament and a real application?"

"Well, ornaments have to fit into the world of the main application", Bud responded, "but not the other way around. The main application owns the menu bar, for example, but maybe the ornaments can have a menu when they're active. The main application would still run its event loop, but it would occasionally pass events to the little guys. And of course you can cut and paste between them."

That sounded good to me, but we had plenty of other stuff to work on first. Bud left Apple in December 1981 to return to medical school, but I explained his concept to new team members and considered them to be part of our plan. Chris Espinosa liked the idea when we explained it to him, and he worked on a visualization of the calculator as part of learning to program with QuickDraw, culminating in a calculator construction set (see Calculator Construction Set). Eventually, after getting the initial implementations of the window, menu and event managers going, by May 1982 we had enough of the rudiments done to give desk ornaments a try.

The nascent Mac operating system already had an implementation of loadable device drivers, where installable code could be loaded from disk to manage optional peripherals. I decided to cast desk ornaments as a special kind of driver, adding a few extra calls so they could maintain a window on the screen, receive events from the host application, and occasionally get some processing time to accomplish something. Applications were required to make a system call periodically to yield some time for ornaments to run, and had to occasionally pass events to them and follow a few other conventions for co-existing. The very first desk ornament was a boring one, called "TestOrn", that displayed a rectangular window with an incrementing counter, showing that it was capable of doing background processing, even when it wasn't the top-most window. It wasn't very impressive, but it became the template from which all the others sprung.

In the fall of 1982, the first pass of the User Interface Toolbox was completed, so I had time to work more on ornaments, which by this time were renamed "desk accessories" by the pubs group who thought that the term "ornament" was too ornamental. I wrote a simple clock, and got the calculator going, modeled after Steve Jobs' design from the calculator construction set. The most interesting one that I wrote in that spurt was a desktop pattern editor, which was a sort of miniature icon editor that let you edit an 8 by 8 pixel pattern by clicking to toggle the dots on and off. When you made a pattern that you liked, you could make it the desktop pattern, filling the background of the screen with your new creation instead of the standard gray.

Within a couple of months, other people wanted to take a crack at writing desk accessories. Someone asked me if they could write one in Pascal, which wasn't easy because you had to pass parameters to the underlying driver in registers, which the Pascal compiler couldn't manipulate directly. I realized that you could write a little bit of standard glue code in assembly language to do the dirty work, and have most of your desk accessory written in Pascal. I wrote a number puzzle in Pascal as a test case, to prove that it could be done (see The Puzzle).

But once again I had to get back to other things and the desk accessories languished. But by the spring of 1983, the ROM was beginning to stabilize, and we realized that we had to get serious about the desk accessories that would ship with the initial system. Jerome assigned Donn Denman, who was taking a hiatus from working on Basic to help us finish the system, to help with desk accessories. Donn and I collaborated on finishing the calculator, with Donn doing the back-end that interfaced with the floating point routines. Donn was also responsible for the alarm clock and notepad.

Now that we had cut and paste working, I realized that it would be useful to have a desk accessory that could hold commonly used snippets of text and graphics, so they could be pasted into any application. I wrote a desk accessory called the "Gallery" that allowed you to manage a set of clippings using cut and paste, building it on top of the resource manager so it was easy to implement. Everyone seemed to like the functionality but not the name. I was explaining the situation to Larry Kenyon when he suggested that we call it the "Scrapbook", which was perfect, so the Scrapbook joined our growing armada of useful desk accessories.

The Macintosh's character encoding scheme allocated the upper half of the 8-bit character set to occasionally useful but obscure characters that were not portrayed on the keys, accessed with the option key, that were nearly impossible to remember. Steve Capps conceived of a desk accessory called "Key Caps" (named partially after himself?) that displayed a picture of the keyboard, with the keycaps changing depending on the meta-keys that were pressed, which allowed you to hunt for the special characters visually. He coded it up quickly and it became another great addition.

We needed a way to control various system parameters like the sound volume, or the mouse scaling parameters. We decided that a desk accessory would be perfect for that, since it would be easy to access no matter what application you were in. So the last desk accessory that I worked on before shipping, in November 1983, was the Control Panel. Susan Kare came up with a beautiful, highly graphical design (with no text whatsoever) that I implemented using a separate purgable resource for each section, so they didn't have to be in memory at once. It had a little rabbit and tortoise to represent a range of speeds, and lots of other graphical embellishments; after the Mac was released, one review described it as a crib toy, which I took more or less as a compliment.

The most controversial part of the Control Panel was the desktop pattern editor, which I had rescued from its earlier stand-alone incarnation. Users could select from a couple dozen prefabricated desktop patterns or edit their own in fat bits. It was this latter capability that caused problems, as it was pretty easy to create ugly, abominable patterns.

Bill Atkinson complained to me that it was a mistake to allow users to specify their own desktop patterns, because it was harder to make a nice one than it looked, and led directly to ugly desktops. But I thought that users should be free to do as they pleased, since it was their desktop, and it was easy to revert to one of the built-in patterns. Bill cared most about MacPaint, and didn't want a potentially ugly desktop pattern marring his creation. So he made MacPaint allocate a window that was the size of the screen when it started up, and filled it with the standard 50% gray pattern, making his own desktop covering up the real one, thus protecting the poor users from their rash esthetic blunders, at least within the friendly confines of MacPaint.
Bruce needs to find a computer, and fast.
December 1981
Bruce Horn
Apple Spirit,Lisa,Lisa Rivalry,Buildings,Management

When I joined the Mac group, we were still very small, working in what we called Texaco Towers--a nondescript office building behind a Texaco station at the corner of De Anza and Stevens Creek, in Cupertino, long since gone (see Texaco Towers).

The software group had offices on one side of the office building, and the hardware group was on the other side. Our offices were quite spare. One room toward the front of the building had a line printer (one of those old, big, noisy impact printers) that was driven by an Apple II. To print out your sources, you had to write them to an Apple II disk, run a program to swap the bytes or do some other manipulation, and then put it in the Apple II which would then run the line printer.

Of course, to print out sources, you had to write some code. I was ready to go, and I had been on the Mac team for several weeks but still hadn't gotten a Lisa, the development machine we used. The Lisa was still under development, and the prototypes were very difficult to obtain. I was starting to get a little frustrated and complained to Andy Hertzfeld at one point that maybe I should go work for a *real* company that could provide the appropriate tools for their software developers.

Andy mentioned this to Steve Jobs. Steve immediately said, "Well, should we fire him?" Andy replied "No, just get him a computer!"

Later that day I received a note from Steve to go to a particular office in another Apple building; there would be a Lisa on the desk, and I could take that one and use it. I went over to the other building and found the office.

The nameplate on the office door said, "John Couch." John was the head of the group developing the Lisa. I wasn't sure that this was really OK, but I had a note from Steve if anybody asked, so I walked into the office, unplugged the computer, and carted it away.

I still don't know to this day whether Steve had arranged this with John, or if John came back to the surprise of an empty desk, but I did get a lot of use out of that machine, maybe more than John ever did.
Page1 2 34 5 6 7 8 9 10 11 12 13 14