|The Original Macintosh|
|Anecdotes about the development of Apple's original Macintosh computer, and the people who created it. (119 stories)
Susan started working on the Mac Team in January 1983. She designed most of the icons and fonts for the Macintosh, as well as lots of the original marketing material, and helped to craft the overall look and personality of the system.
After leaving Apple in 1985, she was one of the first ten NeXT employees. Since 1988, she has been a successful independent graphic designer.
Susan's Main Web Site
interview with Susan
Buy a T-Shirt!
Visit the Image Gallery (14 images) or view recent comments.
Susan Kare: (12 stories)
A brief history of desk accessories
Date: October 1981
Author: Andy Hertzfeld
Topics: Software Design,User Interface,Personality
ne 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 Control Panel|
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.
Steve has a unique idea for the software
Date: February 1982
Author: Andy Hertzfeld
Topics: Software Design, Personality
teve Jobs often came by Texaco Towers after dinner, to see what was new, and we'd usually show him whatever recent progress we made. Sometimes he'd be pissed off about something, but other times he'd be really excited about a new idea.
I was the only one in the office one evening when he burst in, exclaiming that he had a flash of inspiration.
"Mr. Macintosh! We've got to have Mr. Macintosh!"
"Who is Mr. Macintosh?", I wondered.
"Mr. Macintosh is a mysterious little man who lives inside each Macintosh. He pops up every once in a while, when you least expect it, and then winks at you and disappears again. It will be so quick that you won't be sure if you saw him or not. We'll plant references in the manuals to the legend of Mr. Macintosh, and no one will know if he's real or not."
Engineers like myself always daydream about building surreptitious little hacks into the software, but here was the co-founder and chairman of the company suggesting something really wild. I enthusiastically pressed him for details. Where should Mr. Macintosh appear? How often? What should he do when he shows up?
"One out of every thousand or two times that you pull down a menu, instead of the normal commands, you'll get Mr. Macintosh, leaning against the wall of the menu. He'll wave at you, then quickly disappear. You'll try to get him to come back, but you won't be able to."
I loved the idea and promised that I would implement Mr. Macintosh, but not right away, since there were still so many more basic things to get done. Steve told the idea to the marketing team, and eventually recruited the French artist Folon to do some renditions of Mr. Macintosh. I also asked my high school friend Susan Kare, who hadn't started with Apple yet, to try to draw some Mr. Macintosh animations.
Most of the Macintosh system software had to be packed into a 64 KByte ROM, and ROM space got more scarce as development proceeded and the system grew. Eventually, it was clear that we'd never be able to fit bitmaps for Mr. Macintosh into the ROM, but I wasn't willing to give up on him yet.
I made the software that displayed the menus look at a special low memory location called the "MrMacHook", for an address of a routine. If the routine is present, it's called with parameters that let it draw in the menu box, and it returns a result that tells the menu manager if it did anything. Using this, an application or system module could implement Mr. Macintosh (or perhaps his evil twin) if they saw fit.
I'm not sure if anybody ever actually implemented Mr. Macintosh or used the "MrMacHook" for something worthwhile.
Having your own icon became a status symbol
Date: February 1983
Author: Andy Hertzfeld
n February 1983, I worked on putting together an icon editor for Susan Kare to use to create icons for the Finder. Inspired by the "Fat Bits" pixel editing mode that Bill Atkinson had recently added to MacPaint, it had a large window with a 32 by 32 grid, displaying each pixel at eight times its natural size, as well as a small window that showed the icon at its actual size. Clicking on a pixel would invert it, and subsequent dragging would propagate the change to the dragged over pixels.
Susan started working on icons for the Finder, but she also would draw lots of other images as well, for practice or just for fun, usually reflecting her whimsical sense of humor. One day, I came over to her cubicle to see what she was working on, and I was surprised to see her laboring over a tiny icon portrait of Steve Jobs.
Icons were only 32 by 32 black or white pixels, 1024 dots in total, and I didn't think it was possible to do a very good portrait in that tiny a space, but somehow Susan had succeeded in crafting an instantly recognizable likeness with a mischevious grin that captured a lot of Steve's personality. Everyone she showed it to liked it, even Steve himself.
Bill Atkinson was so impressed with the Steve icon that he asked Susan to do one of him, that he could use in the MacPaint about box. He sat in Susan's cubicle for an hour or so, chatting with her while she crafted his icon. I don't think it turned out quite as good as the Steve icon, but it certainly was an unmistakable likeness, and did become part of MacPaint.
At that point, It became a Mac team status symbol to be iconified by Susan. As soon as he saw Bill's icon, Burrell Smith started begging Susan for a Burrell icon, even though he had no specific use for it. He lobbied Susan for a few days, making his standard offer of best friendship (see I'll Be Your Best Friend) , before she gave in and had him pose for his icon. Unfortunately, I can't find a copy of the Burrell icon to display here.
Susan did a few more portraits, for various members of the team who desired to be immortalized in a thousand dots. She'd usually work on them in the late afternoon, chatting with the subjects as they posed, while other team members listened in. I got to know a few of my teammates a lot better from these sessions.
We cook up a special demo for John Sculley
Date: March 1983
Author: Andy Hertzfeld
Topics: Software Design, Recruiting, Early Programs
he Window manager was the one of the most important parts of the User Interface toolbox, and the ultimate showcase for Quickdraw's "region clipping" technology. The window manager had to calculate various regions for windows as they were created, moved and resized, and objects drawn inside the windows were automatically clipped as necessary.
The Macintosh window manager was based on the one that Bill Atkinson wrote for Lisa, which was written in Pascal; my job was to rewrite it in 68000 assembly language and adapt it to the Macintosh environment. The first step was to port Bill's Pascal version. I wrote a little program to test the port, which I called "Window Manager Demo", that generated some windows and put the window manager through its paces.
A year earlier, I had written a fast "ball bouncing" routine, using custom, 16x16 pixel graphics routines, that could animate hundreds of balls simultaneously, which was a fun way to show off the Mac's raw graphical horsepower. I decided to animate a few dozen balls in each window in the window manager demo, using Quickdraw, because their continuous movement would eventually cover all the bases inside a window and expose any flaws in the underlying clipping.
After Susan started in January 1983, I asked her to draw some tiny 16 by 16 bitmaps to use in the Window Manager Demo instead of the by now monotonous ball shapes. Soon, we had a variety of little objects bouncing around in the various windows, like tiny little Macintoshes, or apples, insects and alligators. I thought that the Window Manager Demo was finished, but I was wrong.
Steve Jobs came by the software area one evening a couple of months later, excited about someone he had recently met in New York City. "Hey, I want you to do a demo next week for this guy I met yesterday, John Sculley, he's the president of Pepsi. He's really smart - you wouldn't believe how smart he is. If we impress him, we can get Pepsi to buy thousands of Macs. Maybe even five thousand. Why don't you try to come up with something special to show him?".
It sounded a little bit fishy to me, since we hardly ever demoed to potential customers at that point. But I asked Susan to draw some Pepsi imagery, and she came up with tiny little Pepsi caps, as well as Pespi cans, in his honor, so I put them into the Window Manager demo.
The next week, Mike Murray led John Sculley around the engineering area, since Steve was out of town. He brought him by my cubicle to see the modified Window Manager demo. I opened the windows one at a time, saving the Pepsi caps and cans for last. He seemed genuinely excited to see the Pepsi stuff, but oddly cold for most of the demo. He asked a few questions, but he didn't seem all that interested in the answers.
A few weeks later, we found out the real story - the purpose of John's visit was to interview for CEO of Apple, and he got the job, being convinced by Steve's famous line "Would you rather sell sugar water to kids for the rest of your life, or would you like a chance to change the world?".
|World Class Cities|
We needed to come up with a naming scheme for our fonts
Date: August 1983
Author: Susan Kare
Topics: Software Design, Personality
anding in the Macintosh group as a bitmap graphic designer was a lucky break for me, and one interesting part of the job was designing screen fonts. It was especially enjoyable because the Macintosh was able to display proportional typefaces, leaving behind the tyranny of monospace alphabets with their narrow m's and wide i's.
The first Macintosh font was designed to be a bold system font with no jagged diagonals, and was originally called "Elefont". There were going to be lots of fonts, so we were looking for a set of attractive, related names. Andy Hertzfeld and I had met in high school in suburban Philadelphia, so we started naming the other fonts after stops on the Paoli Local commuter train: Overbrook, Merion, Ardmore, and Rosemont. (Ransom was the only one that broke that convention; it was a font of mismatched letters intended to evoke messages from kidnapers made from cut-out letters ).
One day Steve Jobs stopped by the software group, as he often did at the end of the day. He frowned as he looked at the font names on a menu. "What are those names?", he asked, and we explained about the Paoli Local.
"Well", he said, "cities are OK, but not little cities that nobody's ever heard of. They ought to be WORLD CLASS cities!"
So that is how Chicago (Elefont), New York, Geneva, London, San Francisco (Ransom), Toronto, and Venice (Bill Atkinson's script font) got their names.
How we got the unusual symbol used for the menu command key
Date: August 1983
Author: Andy Hertzfeld
Topics: Software Design
e thought it was important for the user to be able to invoke every menu command directly from the keyboard, so we added a special key to the keyboard to invoke menu commands, just like our predecessor, Lisa. We called it the "Apple key"; when pressed in combination with another key, it selected the corresponding menu command. We displayed a little Apple logo on the right side of every menu item with a keyboard command, to associate the key with the command.
One day, late in the afternoon, Steve Jobs burst into the software fishbowl area in Bandley III, upset about something. This was not unusual. I think he had just seen MacDraw for the first time, which had longer menus than our other applications.
"There are too many Apples on the screen! It's ridiculous! We're taking the Apple logo in vain! We've got to stop doing that!"
After we told him that we had to display the command key symbol with each item that had one, he told us that we better find a different symbol to use instead of the Apple logo, and, because it affected both the manuals and the keyboard hardware, we only had a few days to come up with something else.
It's difficult to come up with a small icon that means "command", and we didn't think of anything right away. Our bitmap artist Susan Kare had a comprehensive international symbol dictionary and she leafed through it, looking for an appropriate symbol that was distinctive, attractive and had at least something to do with the concept of a menu command.
Finally she came across a floral symbol that was used in Sweden to indicate an interesting feature or attraction in a campground. She rendered a 16 x 16 bitmap of the little symbol and showed it to the rest of the team, and everybody liked it. Twenty years later, even in OS X, the Macintosh still has a little bit of a Swedish campground in it.
The Mac Team hoists a pirate flag
Date: August 1983
Author: Andy Hertzfeld
Topics: Apple Spirit,Buildings,Lisa Rivalry,Retreats
he Mac team held another off-site retreat in Carmel in January 1983, just after the Lisa introduction (see Credit Where Due) . Steve Jobs began the retreat with three "Sayings from Chairman Jobs", intended to inspire the team and set the tone for the meeting. The sayings were:
1. Real artists ship.
2. It's better to be a pirate than join the navy.
3. Mac in a book by 1986.
I think the "pirates" remark addressed the feeling among some of the earlier team members that the Mac group was getting too large and bureaucratic. We had started out as a rebellious skunkworks, much like Apple itself, and Steve wanted us to preserve our original spirit even as we were growing more like the Navy every day.
In fact, we were growing so fast that we needed to move again. In August of 1983, we moved across the street to a larger building that was unimaginatively designated "Bandley 3". I had worked there before, in 1980, when Apple had initially built it to house the original engineering organization. But now it was to be the new home of the newly christened "Macintosh Division", over 80 employees strong.
The building looked pretty much like every other Apple building, so we wanted to do something to make it look like we belonged there. Steve Capps, the heroic programmer who had switched over from the Lisa team just in time for the January retreat, had a flash of inspiration: if the Mac team was a band of pirates, the building should fly a pirate flag.
A few days before we moved into the new building, Capps bought some black cloth and sewed it into a flag. He asked Susan Kare to paint a big skull and crossbones in white at the center. The final touch was the requisite eye-patch, rendered by a large, rainbow-colored Apple logo decal. We wanted to have the flag flying over the building early Monday morning, the first day of occupancy, so the plan was to install it late Sunday evening.
Capps had already made a few exploratory forays onto the roof during the weekend while a few of us looked out for guards on the ground. At first, he thought he could just drape the flag on the roof, but that proved impractical as it was too hard to see, especially when the wind curled it up. After a bit of searching, he found a thin metal pole among the remaining construction materials still scattered inside the building, that was suitable to serve as a flag pole.
Finally, on Sunday night around 10pm, it was time to hoist the Jolly Roger. Capps climbed onto the roof while we stood guard below. He wasn't sure how he would attach the flag, and didn't have many tools with him. He scoured the surface of the roof and found three or four long, rusty nails, which he was able to use to secure the flag pole to a groove in the roof, ready to greet the Mac team members as they entered the new building the next morning.
We weren't sure how everyone would react to the flag, especially Steve Jobs, but Steve and almost everyone else loved it, so it became a permanent fixture of the building. It usually made me smile when I caught a glimpse of it as I came to work in the morning.
The flag waved proudly over Bandley 3 for about a month or two, but one morning in late September or early October, I noticed that it was gone. It turns out that the Lisa team, with whom we had a mostly friendly rivalry, decided it would be fun to steal the flag for themselves. I think they sent us a ransom note or something, so a few of us stormed over to the Lisa building to retrieve it, which we accomplished, although Capps had to wrestle it from the grasp of one of the secretaries, who was hiding it in her desk.
The flag continued to fly over Bandley 3 for more than a year. I think it was even photographed for a magazine or two during the Mac introduction. But suddenly one day it was missing again, and I'm not sure if anyone knows what happened to it. It would be a great artifact for the Computer History Museum if it ever turns up.
|Stolen From Apple|
We put a hidden icon in the ROM
Date: August 1983
Author: Andy Hertzfeld
Topics: Software Design
n 1980, a company called Franklin Computer produced a clone of the Apple II called the Franklin Ace, designed to run the same software. They copied almost every detail of the Apple II, including all of its ROM based software and all the documentation, and sold it at a lower price than Apple. We even found a place in the manual where they forgot to change "Apple" to "Ace". Apple was infuriated, and sued Franklin. They eventually won, and forced Franklin to withdraw the Ace from the market.
Even though Apple won the case, it was pretty scary for a while, and it wasn't clear until the end that the judge would rule in Apple's favor - Franklin argued that they had a right to copy the Apple II ROMs, since it was just a "functional mechanism" necessary for software compatibility. We anticipated that someone might try a similar trick with the Macintosh someday. If they were clever enough (which Franklin wasn't), they could disguise the code (say by systematically permuting some registers) so it wouldn't look that similar at the binary level. We thought that we better take some precautions.
Steve decided that if a company copied the Mac ROM into their computer, he would like to be able to do a demo during the trial, where he could type a few keystokes into an unmodified infringing machine, and have a large "Stolen From Apple" icon appear on its screen. The routines and data to accomplish that would have to be incorporated into our ROM in a stealthy fashion, so the cloners wouldn't know how to find or remove it.
It was tricky enough to be a fun project. Susan designed a nice "Stolen from Apple" icon, featuring prison bars. Steve Capps had recently come up with a simple scheme for compressing ROM-based icons to save space, so we compressed the icon using his technique, which not only reduced the overhead but also made it much harder to detect the icon. Finally, we wrote a tiny routine to decompress the icon, scale it up and display it on the screen. We hid it in the middle of some data tables, so it would be hard to spot when disassembling the ROM.
All you had to do to invoke it is enter the debugger and type a 6 digit hexadecimal address followed by a "G", which meant execute the routine at that address. We demoed it for Steve and he liked it. We were kind of hoping someone would copy the ROM just so we could show off our foresight.
As far as I know, no one ever did copy the ROM in a commercial project, so it wasn't really necessary, but it did create some intrigue for a while. We let it slip that there was a "stolen from Apple" icon hidden in there somewhere, partially to deter people from copying the ROM. At least one hacker became moderately obsessed with trying to find it.
Steve Jasik was the author of the MacNosy disassembler/debugger, which could be used to create pseudo-source for the ROM. He found out about the "stolen from Apple" icon pretty early on, and became determined to isolate it. He lived in Palo Alto, so I would occasionally bump into him, and he would ask me for hints or tell me his latest theory about how it was concealed, which was invariably wrong.
This went on for two or three years, before he finally cracked it: I ran into him and he had it nailed, telling me about the compressed icon and the address of the display routine. I congratulated him, but was never sure if he figured it out himself or if someone with access to the source code told him.
|Cut, Paste and Crash|
We uncover a particularly bad bug shortly after ROM freeze
Date: September 1983
Author: Andy Hertzfeld
Topics: Technical, Software Design,Bugs
ne of the last parts of the Macintosh system software to be finished before freezing the ROM in September 1983 was the "clipboard manager", which was the code responsible for facilitating cutting and pasting information between applications. The clipboard manager provided some simple calls to access and manipulate the "clipboard", a memory buffer that held the last piece of data that was cut or copied. The trickiest part of the clipboard manager was the way it managed memory when the user quit an application.
The clipboard buffer was typically kept in the primary memory area that was available to an application, known as the "application heap". But when an application terminated, its application heap was deallocated, before a brand new heap was allocated for the incoming application. The clipboard manager had to take special measures to preserve the clipboard during this interregnum, when no application heap was available to hold it.
The first thing we thought of was to write the clipboard to disk while we were between applications, which worked but was problematic because the Macintosh didn't have a fixed disk, so there might not be a floppy in the drive, or perhaps it was write protected. We also tried to copy the clipboard into the system heap, which persisted between applications, but the clipboard was often too big to fit there. Ultimately, we solved the problem by copying the clipboard to the stack, which was a large area in high memory used to hold application variables and run-time state like return addresses, where it stayed until it was moved into the application heap of the newly launched application.
A few weeks after the ROM was frozen, Apple put together a sales "roll-out" presentation to introduce the sales team to all things Macintosh, in order to prepare them to start selling the machine a few months later. There was lots of the usual sales hoopla, but the clear highlight of the event was the first-person training on the machine itself, where each salesperson would get to try out a Macintosh for the first time. A teacher guided them through a simple demo which let them learn to use the mouse and then try out MacWrite, MacPaint and the Finder.
The climax of the demo had them loading a MacPaint document, selecting an area and copying it to the clipboard, and then launching MacWrite and pasting the image into a MacWrite document, easily mixing text and graphics, which was very impressive back in those days. Susan Kare had drawn a terrific, detailed rendering of a sneaker for the Macintosh brochure, which was used as the graphic for the demo. They were supposed to select and copy the sneaker and then paste it into MacWrite.
I was invited to go to the sales presentation, but I couldn't, because I was still working frantically with the rest of the software team to finish the software in time to ship the following January. I was busy working in the afternoon when I received a panicked phone call from one of the sales guys involved with the presentation.
"We've got a problem!", he told me. "The sneaker demo is crashing. Not all the time, though, sometimes it works and sometimes it doesn't. It's impossible to predict when it will happen, but when it does, the crash is really bad - as soon as you quit MacPaint, the screen goes crazy and then it reboots. We're going to have to stop doing the cut and paste part of the demo unless you get us a fix soon."
I got off the phone and thought about it. I was describing the problem to someone when I suddenly stopped in mid-sentence, because I realized what was going on. After quitting the application, the clipboard manager would copy the clipboard to the stack. It subtracted the size of the clipboard from the stack pointer, and then moved the memory into the allocated space. I realized that around half of the time, the size of the clipboard would be an odd number, which would end up setting the stack pointer to an odd number, which was a perversely horrible thing to do. The Mac's 68000 microprocessor couldn't fetch memory from an odd address; it generated an error if you tried. But the stack is used for the basic operation of the processor, including error handling. An odd stack pointer would essentially drive the 68000 crazy, recursively faulting as it tried to handle exceptions. It worked around half of the time because statistically the clipboard size would be an even number around half of the time. But the other half would cause the flamboyant crash that was being described.
Once I understood what was going on, it was easy to fix by rounding up the clipboard size to an even number. Unfortunately, the errant code in question was in ROM, which was already frozen in immutable silicon. This was the first major bug that I knew of in the ROM and I wondered if we were going to have to spin another version. But Larry Kenyon had already figured out a sneaky technique to fix ROM bugs, by patching system traps. We had always figured to replace entire buggy system calls in that fashion, but Larry thought of a finer grain way to do it, by patching the first trap called before or after the problem area. Basically, we could grab control any time the system was invoked, and then add code to fix problems. I used Larry's technique to devise a patch that fixed the odd stack problem, and then he helped me incorporate it into the System file, so it was loaded when the system booted.
We made a floppy containing the new System file, which was flown out to the sales presentation with a sales manager who was leaving the next day. But it took a while for the fixed System to proliferate to everyone, so for the next few weeks I had to brace myself every time that I saw someone about to cut and paste between applications.
A gallery of Susan Kare's MacPaint art from 1983
Date: October 1983
Author: Andy Hertzfeld
Topics: Social Life,Testing,MacPaint,Marketing
ill Atkinson began writing MacPaint in February 1983, just after Susan Kare joined the Mac team to design bitmaps for fonts and icons. Susan became one of the first and most accomplished users of MacPaint, trying out new features as they were developed and using it for a wide range of practical applications.
Susan kept a notebook of many of the MacPaint documents that she created as the Mac team struggled to finish the Macintosh throughout 1983. They provide an interesting glimpse of the daily life of the Mac team during that period. I'm pleased to be able to present scans her beautiful drawings here as part of Macintosh Folklore.
You can click on an image to see a larger rendition of it; use the back button to return to the story.
The image on the left is an annoucement of a combined birthday party for seven Mac team members whose birthday was in early April, including myself, who was terrified of turning 30 at the time. As a birthday gift, Susan made a jersey for me with a large hexadecimal number "1E" (which is 30 in base 16) on it, so I could still say I was a teenager, at least in hexadecimal.
The image on the right is for picnic held in July to celebrate the wedding of two members of the software team: programmer Larry Kenyon and librarian Patti King. Larry and Patti actually eloped in June; the picnic happened after they returned from their honeymoon.
One of the most important activities during the last couple of months before shipping was software testing. We held some testing marathons, where the software team enticed employees from the rest of the division to stay late and help test the software by bribing them with dinner [story:90 Hours A Week And Loving It]. The image on the left is an announcement of another bug hunt, and the one on the right is a bug report form that was used during the testing.
Here is an invitation to celebrate a ROM freeze at software manager Jerome Coonen's house. This wasn't the final ROM freeze, which took place in September, but the first of a series that led up to it. We had a party celebrating the final ROM freeze at Woz's house in Scott's Valley.
The Mac group worked hard, but we occasionally had parties thrown by Apple for the team, sometimes with unusual themes. The left most poster promoted our "Punk Party", which we were supposed to attend in "punk" attire and featured the local band "The Medflys". The poster on the right advertised a dance with music supplied by a DJ. Some of us were so disappointed with the music that he played that we drove to a nearby record store during the party to buy some better music to play there.
Steve Jobs was very visually oriented, and everyone knew that he reacted more favorably to material presented with nice graphics and high production values. Susan was recruited by the Finance team to use MacPaint to make attractive covers for the monthly financial reports. Here are some covers that she made for the June and July 1983 reports.
As we began preparing for the launch in the fall of 1983, Susan was requested to produce art for various marketing materials, to show off the kinds of things you could do with MacPaint. The frog on the left demonstrates how you might use MacPaint in a biology class. Susan also had a fondness for whimsical applications, as demonstrated by the one on the right.
Here are some examples that Susan created for marketing. The "Japanese Lady" on the left is a pretty famous one, since it was used in the original brochure. She started with a scan of a fine Japanese woodcut that Steve had procured. I think the detective agency letter on the right was also used in an advertisement.
Sports were another outlet to blow off steam between longs hours of working. In the spring of 1983, we managed to get facilities to install a basketball hoop in the back of Bandley 4, and usually played a half-court game every afternoon. We also had co-ed softball games once per month, which could sometimes get pretty intense.
Apple gave out brand new Macintoshes to everyone on the team right after the launch (see The Times They Are A-Changin') ; on the left is a certificate that accompanied each machine. On the right is a bottle of champagne, in honor of the launch, to complete the celebration.
|It Sure Is Great To Get Out Of That Bag!|
We need a demo for the intro
Date: January 1984
Author: Andy Hertzfeld
Topics: Marketing, The Launch, Software Design
t took a monumental effort, fueled by inordinate amounts of chocolate covered espresso beans (see Real Artists Ship) , to finally finish the first release of the Macintosh software in time for the introduction. We finished with literally no time to spare, shipping the "golden master" of the "Write/Paint" disk to the factory at 6am on Monday morning January 16th, a week before the introduction. By that point, most of the software team hadn't slept for days, so we all went home to collapse.
I thought I would need to sleep for at least 24 hours, but I woke up after 6 hours with a desire to go back to Apple to see if the release held up, and to see how everyone else was feeling. By 5pm, most of the software team had dragged themselves back for the same reason, and we were lounging around in a tired daze, happy that we finally shipped, but still not quite believing it, when Steve Jobs strode into the software area.
"Hey, pick yourselves up off the floor, you're not done yet!"
Uh-oh, I thought, someone must have found a show-stopper in the release and we're going to have to track it down. But that's not what he meant.
"We need a demo for the intro! The Mac deserves to have a great demo for its first public showing. I want the Mac to play the theme from "Chariots of Fire" while it's showing a slide show of the apps. Plus lots of other cool stuff, whatever you can come up with. And it needs to be done by the weekend, to be ready for the rehearsals."
We moaned and groaned about being tired, but as we talked we realized that it would be fun to cook up something impressive. We were too tired to think about it right away, but when we came back the next day, a plan started to emerge.
Capps had an idea to use a gigantic font to scroll "Macintosh" across the screen, one letter at a time, to start the demo, so he worked on that, as well as the slideshow. Bruce Horn wanted to do a starry night with twinkling stars, and a skywriter writing "Macintosh" in cursive across the night sky. Susan worked on an intro graphic of the Mac sitting in its canvas carrying bag, and well as some of the other graphics for the slideshow part. I integrated all the pieces and also signed up for the "Chariots of Fire" music part, since no one else wanted to do that.
It's hard to write a music editor/player in two days, but I managed to put something together that could actually play the "Chariots of Fire" theme, but it didn't sound very good, since it used simple sine waves without any envelope shaping. Steve immediately rejected it as lousy, which it was, and opted for using a CD of the "Chariots of Fire" theme to play in the background instead.
Meanwhile, as we were working on the demo, Mike Boich came by with Mark Barton, a third party developer who we seeded with an early Mac, because he had written an impressive program for the Apple II called S.A.M. (the Software Automatic Mouth). SAM was a speech generator, which converted text to speech, with a distinctive, winning personality. I had helped Mark with sound driver issues as he developed it, and now it finally made it to fruition. SAM sounded even better on the Mac, because we had 8 bits per sample and a higher sampling rate.
When Steve heard SAM talk, he immediately decreed that we had to incorporate SAM in the intro demo. "I want the Macintosh to be the first computer to introduce itself!", he insisted. He told Mike Boich to quickly cut a deal with Mark so Apple could bundle the speech generator (rechristened Macintalk) and use it in the intro.
Since my music generator fell through, I got to do the speech part, using Mark Barton's libraries. I knew that I wasn't clever enough to be the Mac's speechwriter. I think Susan had the idea of asking Steve Hayden, Chiat-Day's head writer, to do it. Steve was the guy who conceived the 1984 commercial (see 1984) and was as clever as they come. He was excited about helping out and got it done overnight.
Once we integrated all the pieces together, the demo didn't come close to be able to run on a standard Macintosh. Fortunately, we had a prototype of a 512K Mac in the lab, so we decided to cheat a little (there were only two in existence at the time) and use that for the demo, which made things fit.
The demo starts out with Susan's graphic of the Mac hidden in its carrying bag, on a curtained stage, displayed while the program prepared Capp's big letters. Suddenly, the music swells (from a CD, not generated by the Mac) and Capp's big letters scroll nimbly across the screen, spelling out "Macintosh". Then we transition to Bruce's skywriter, and then to various screen shots of applications, including third party applications like Microsoft's Multiplan and Chart. Finally, the music stops, the screen goes blank, and waits for Steve to press the mouse button. When he does, the Mac starts to speak, in strange but somehow endearing tones:
Hello, I am Macintosh. It sure is great to get out of that bag!
Unaccustomed as I am to public speaking, I'd like to share with you a maxim I thought of the first time I met an IBM mainframe: Never trust a computer that you can't lift!
Obviously, I can talk, but right now I'd like to sit back and listen. So it is with considerable pride that I introduce a man who has been like a father to me... Steve Jobs!
|Busy Being Born, Part 2|
Here are a few seminal Macintosh screenshots, ala the Lisa polaroids
Author: Andy Hertzfeld
ill Atkinson had the foresight to document the creation of the Lisa User Interface by keeping a polaroid camera near his computer, taking a snapshot of each significant milestone (see Busy Being Born) . Although we didn't systematically save pictures of key Mac milestones, I've managed to cobble together a few seminal Macintosh screenshots to present here in a similar fashion.
You can click on an image to see a larger version of it, and use the back button to return to the story.
|the first Mac-like demo in May 1981|
Bud Tribble had a tendency to work late at night. I usually came to work at Texaco Towers around 10:30AM, so if Bud was there when I arrived, it usually meant that he had spent all night there. One morning, in the middle of May 1981, when I arrived at my usual time, Bud was anxious to show me something before I could even take off my backpack.
I knew that Bud had been working on the initial porting of QuickDraw to the Macintosh, but I thought that he was at least a week away from getting it running. At this point, we had some cursor routines going, and a way to download and execute Pascal programs that were compiled on a Lisa, attached to the Mac by a serial cable. But we didn't have a memory manager yet, or an event manager or file system, so Bud had to build scaffolding in various places to overcome these limitations. He had compiled a bitmap drawing program that Bill wrote in Pascal for Lisa, then linked it with LisaGraf and other library routines, and started to debug it, fixing each problem as it manifested.
Bud had made a huge amount of progress the previous evening, and the demo was substantially running now. It was incredibly exciting to see Mac-like software running on the Mac for the very first time. The demo featured working pull-down menus, complete with a nicer style of drop shadow than the Lisa was using, and an elaborate, graphical pattern menu, which is illustrated in the screenshot above.
Xerox aficionados will note the use of Cream 12 as our first system font, which was the default font used by SmallTalk, that Bill had converted to the Lisagraf font format. The window title bar was a folder tab, because we were still confused about the difference between folders and documents. The demo already had scroll bars and a grow box that is pretty similar to what we ended up shipping with, although you couldn't interact with them yet. In fact, the only part of the program that actually did something was the "Quit" command.
In April, I had written some screen printing code, that dumped whatever was on the display out the serial port to a dot matrix printer. Since the Mac screen was rather small, I added a feature to print it at double size, so it mostly filled a page. I used that to print the display of Bud's demo, with the impressive graphical pattern menu pulled down, on the very day that Bud got it working, and that's what is reproduced above.
|An alternate approach to the Finder|
in March 1982
Bruce Horn joined the Mac team in late 1981 (see Joining the Mac Group) , with the charter to write a graphical shell that we were calling the "Finder", since it helped the user find applications and documents to launch. We were influenced by ideas from the Architecture Machine group at MIT (a predecessor to the better known Media Lab) as portrayed in a program called "DataLand" that allowed users to manipulate graphical objects in spacial arrangements. Bruce was excited about spacial data management and his first assignment was to write a prototype to explore how it could work on the Mac.
Bruce came up with the idea of representing files as small tabs superimposed on an image of a floppy disk. He wrote a prototype that he called "the micro-finder", which is pictured above. I started helping him implement various parts of it, and pretty soon it was actually useful. You could drag the file tabs to position them, and click on the large buttons on the right to launch programs or rename and delete files. We used the micro-finder through most of 1982 for demoing the Mac until the real Finder started becoming usable around the end of the year.
After the micro-finder, Bruce also worked on another prototype that included folders in a two-pane view (Bruce thinks he can eventually dig up a picture of it; if he does I'll include it here). Meanwhile, Bill Atkinson was crafting an icon-based file manager prototype for Lisa (see Rosing's Rascals) , and eventually we decided to follow that direction for the Macintosh.
|An early screenshot of a half-implemented MacPaint|
Here is a very early version of MacPaint, probably from March 1983, after Bill had been working on it for around one month. The first thing to notice is that it wasn't called "MacPaint" yet - it still bore its original name, "MacSketch", inherited from its predecessor, LisaSketch.
This early version uses icons designed by Bill himself, before Susan Kare got a chance to tweak them. And some of the most important MacPaint tools like the paint bucket and the lasso are still months away from being implemented.
MacPaint contained a menu of miscellaneous tools, like Fat Bits, originally called the "Aids" menu, as you can see above. But in the summer of 1983, with public awareness of the AIDS epidemic beginning to swell, Bill rechristened it the "Goodies" menu.
It's interesting to note the window highlighting decorations, which are quite different than what we ended up with. We must have tried dozens of different ways to highlight windows before arriving at the horizontal lines in August 1983.
The featured MacPaint document was drawn late one night by Steve Capps, to celebrate one of our ROM releases; he also saved and scanned the document for inclusion here.
In early 1983, I wrote an icon editor based on Bill Atkinson's "Fat Bits" pixel editing techniques that Susan Kare used to craft most of the early Mac icons. The icon editor displayed both a large and actual size representation of the icon, and allowed editing multiple icons at once. I needed a way to incorporate the icons into the ROM, so I added a feature called the "Hex Window", that displayed the representation of the current icon in hexadecimal, which is what I needed to add the icons to the Mac ROM source code. The screen dumps on the left are the actual ones used to enter some famous Mac icons into ROM, like the bomb and the happy Mac.
Note that the name on the window containing the bomb icon is "Deep". That's the first word of the original name of the code that displayed the dreaded bomb icon on the screen. Originally the code had an obscene name, with the API calls prefixed with "DS". Jerome came up with various euphemisms for it, like the "Deep Sauce" manager evolving into the "Dire Straights" manager, eventually settling on the more prosaic "System Error" manager.