Even our HP scientific calculators did the calculations with integer algorithms, even for transcendental functions. An integer language would lead to fast games and would let me run logic simulations at work. The BASIC took me 4 months to write, demonstrating it bi-weekly at the Homebrew Computer Club. It involved much more work for me than the Apple I and Apple II computer designs together. I was too shy to talk and had to do impressive things to get others to speak first, and this BASIC did help. I had much floating-point experience. In fact, my floating-point math routines were included in the Apple II ROMS, although not incorporated into the BASIC. A floating-point BASIC was listed as one of the highest priorities for the Apple II in the same meeting that listed a floppy drive as the other one. Both were important for the Checkbook program that was shipping on cassette tape with the Apple II. Randy Wigginton and I were working on defining a rather advanced BASIC with floating point, and much more, when Microsoft sent us their 6502 BASIC. There was little need to work on our own at that point.
Steve Wozniak
Mea Culpa
A confession of our worst mistakes
Almost everyone involved with the design of the original Macintosh is proud of the work that they did on the project, both individually and collectively. However, this doesn’t mean we aren’t also embarrassed about some of the mistakes we made. I’d like to consider, if not apologize for, the worst decisions that I was personally responsible for, as well as other major faults in the system software and product as a whole.
The worst blunder I perpetrated had to do with the memory manager. Bud Tribble adapted the Lisa intra-segment memory manager for the Macintosh (see “Hungarian” on page 61), but we needed to add a few features. One was a “locked” attribute associated with a relocatable memory block that temporarily prevented the block from being moved. Another enhancement was a “purgable” attribute that told the memory manager it could release a block if memory was getting full. The big mistake was where I chose to locate the bits that controlled the attributes.
I decided to put the bits controlling the “locked” and “purgable” attributes in the high-order bits of the master pointer (a pointer to the current address of a memory block), because they weren’t being used for anything else. The 68000 had a 24-bit address bus that allowed 16 megabytes of addressable memory. The processor didn’t use the high-order 8 bits of an address, making it the easiest one to test and adding yet another reason I thought it was efficient to locate the flags there.
Of course, it was foolish to count on unused address bits to stay that way for very long, and it became a problem when the Macintosh transitioned to the 68020 processor in 1987 with the introduction of the Macintosh II. The 68020 had a full 32-bit address bus, which meant the memory manager could no longer get away with using the high-order master pointer bits for flags. It wasn’t that hard for Jerome Coonen to convert the memory manager to keep the flags in the block header instead of the master pointer (which was where they should have been in the first place), but the practice of manipulating them directly had crept into third-party applications, even though it wasn’t supposed to. It took another year or so to identify and eradicate all the transgressions to upgrade the Macintosh software base to be “32-bit clean” so the full address space could be used.
I paid a more direct price for my second worst mistake, which was to use fixed low-memory addresses for toolbox globals. The Apple II kept important system globals in low memory, and the 68000 included a special “short” addressing mode that made accessing addresses in the first 32K of memory more efficient. This motivated us to use low memory for various globals. While that may have been acceptable for system globals, it was clearly a mistake for the toolbox. Because each application required its own copy of the toolbox globals, it precluded us from running more than one application at a time.
That didn’t matter much at first because, with 128K of RAM, we barely had enough memory to run a single application at a time anyway. But when the 512K Macintosh was released in September 1984, it started to become an issue. In October 1984, after I left Apple to work on my own, I realized I could solve the problem by swapping all the application-dependent low memory locations when you performed a context switch. In a few days, I wrote the core of the Mac’s first multitasking environment, which we called Switcher (see “Switcher” on page 243). Switcher used the low memory swapping technique that kept multiple programs resident in memory at once and switched between them with a nifty scrolling effect. Using low memory in this manner ended up making context switching a few milliseconds slower than it should have been. It also made it harder to eventually use a memory management unit, but it didn’t turn out to be as devastating as I once feared.
We wanted the Macintosh to have relatively simple system architecture so it could perform well with limited hardware resources, but perhaps we went a little too far. We decided we could live without a memory management unit, which was the right decision because of the expense of the associated hardware. But we also decided to eliminate the distinction between user and system code by running everything in supervisor mode. This empowered applications and simplified the system, but it was a poor choice in the long run because it made it harder to control the software base as the system evolved.
Even Bill Atkinson made an occasional error. His worst mistake was using signed 16-bit integers as sizes in various QuickDraw data structures like regions and pictures. This limited the maximum size of a region or picture to 32 kilobytes, which became a significant limitation a few years later as memory sizes grew. Bruce Horn’s resource manager suffered a similar problem by using 16-bit offsets, thus limiting the size of resource files unnecessarily.
The biggest issue with the Macintosh hardware was its limited expandability. But the problem wasn’t really technical as much as philosophical: we wanted to eliminate the inevitable complexity that was a consequence of hardware expandability, both for the user and the developer, by having every Macintosh be identical. It was a valid point of view, even somewhat courageous, but not very practical; driven by the relentless tides of Moore’s Law, things were still changing too fast in the computer industry for it to work. Burrell did try to sneak some expandability into the design (see “Diagnostic Port” on page 50) but was only partially successful.
Limited hardware expandability exacerbates other flaws in the design because you don’t have the flexibility for yourself or third parties to easily correct them. One of the biggest mistakes we made in the first Mac was inadequate support for a hard drive. Our first filesystem used a simple data structure that didn’t scale well to large drives (in fact, it was suggested to us by Bill Gates in July of 1981), and we didn’t have a way to get bits in and out of the box at the rates a hard disk required. In our defense, it was hard to for us to consider adding a hard disk to the Macintosh because it was one of the last differentiators from the Lisa, which was more than three times as expensive. But the lack of hardware flexibility made it more difficult for third parties to jump into the breach. Of course, some did anyway.
From a broader perspective, I think many of our mistakes came from a lack of understanding about exactly what we were doing. We thought we were making a great product while reincarnating the Apple II for the 1980s, but we were actually creating the first in a long line of compatible computers that would persist for decades. However, the latter wouldn’t have happened if we didn’t succeed at the former. Perhaps our design would have given the future more priority over the present if we had understood how long it would last.
Things Are Better than Ever
September 1984
My leave of absence draws to a close
Toward the end of August 1984, my six-month leave of absence (see “Leave of Absence” on page 229) was drawing to a close, and I still hadn’t decided whether I would return to Apple. I continued to feel very close to the company, so it wouldn’t be easy for me to turn in my badge, but I didn’t see a reasonable alternative.
Eith
er way, I was sure I would continue to write software for the Macintosh, which was still brand new and providing many exciting opportunities for me to create innovative applications (see “Thunderscan” on page 238). I was confident I could earn more money working independently than Apple was willing to pay me, even if I counted the appreciation of stock options, but financial matters were not my paramount consideration.
The main issue was that I wanted to continue making a difference in the Mac’s evolution, and I felt that no matter what I did on my own, it would have only a minor impact because, as a third-party developer, I wouldn’t be able to work on the core of system. Even though things had gone relatively well so far, the Mac’s long-term success was far from certain, and it was entirely dependent on the moves Apple made to evolve the platform.
Many of my closest friends were still working on the Mac team, so I heard a lot about what was going on at Apple. I usually drove down to Cupertino to visit them once every week or two, hanging out in the Bandley 3 fishbowl (see “Spoiled?” on page 233), tentatively at first, but growing more comfortable when I saw that I was still welcome there. I lived next door to Mac hardware designer Burrell Smith, so I heard about Burrell’s trials and tribulations at work on a daily basis. Unfortunately, the news wasn’t very encouraging.
The Mac team had merged with the Lisa team in February of 1984, a few weeks before I started my leave, creating a single large division. At the time, Steve Jobs claimed that the merger would help transform the rest of Apple into an organization that would be more like the Mac team, but to me it seemed that the opposite had occurred. The idealistic version of the Macintosh team that I yearned for had apparently vanished, subsumed by a large organization of the type that we used to make fun of, rife with bureaucratic obstacles and petty turf wars.
The core software group was still recovering from the intense effort to ship (see “Real Artists Ship” on page 208) and hadn’t done very much all spring and summer, suffering from a classic case of massive postpartum depression. The LaserWriter printer was the current main focus of development, along with the AppleTalk network required to support it, and the core software team didn’t have much to do either. No one had set a compelling new goal for the team, and now it was just drifting.
Burrell Smith had completed the LaserWriter digital board and moved on to work on the “Turbo Macintosh,” a new Macintosh digital board featuring a custom chip that supported 4-bit/pixel grayscale graphics and a fast DMA channel to interface an internal hard drive. But Burrell frequently complained of sparring with engineering manager Bob Belleville and others on Bob’s staff over trivial design decisions. He thought Bob didn’t really want to add a hard drive to the Mac, favoring the development of a Xerox style “file server” instead, and was therefore trying to surreptitiously kill the Turbo project. I didn’t think Burrell would put up with it much longer; as he phrased it, he was “asymptotically approaching liberation” from Apple.
The one saving grace was that Bud Tribble had finally completed his six-year M.D./Ph.D. program at the University of Washington and decided to forgo practicing medicine in favor of returning to his old job at Apple as Macintosh software manager, working for Bob Belleville. In July 1984, he moved into a spare bedroom at Burrell’s house in Palo Alto, next door to mine, so I got to see him frequently. I still had the highest respect for Bud, and I loved to show him whatever I was working on because he always managed to improve it with an insightful suggestion or two.
I had mixed feelings about returning to the lumbering Macintosh division, but Bud was a strong link to the good old days, and I thought perhaps we could establish a little outpost in the large organization where the original Macintosh values could prevail. But that didn’t seem possible if Bud worked for Bob Belleville, my nemesis whom I blamed for many of the problems. The only solution I could think of was for Bud to work directly for Steve Jobs instead of for Bob. Bud was all for it, but only Steve could make it happen. I called Steve’s secretary Pat Sharp and arranged to have dinner with Steve and Bud to discuss my possible return to Apple.
We met in the lobby of Bandley 3 and walked to an Italian restaurant on De Anza Boulevard a few blocks away. Steve seemed a bit preoccupied, and I was nervous about how he would react to what I had to say because I had to implicitly criticize him to make my case. After we ordered dinner, I cleared my throat and tentatively plunged ahead.
“As you know, I care a lot about Apple, and I really want to return from my leave of absence. I’d love to work for Bud again, but things seem really messed up right now.” I paused for a moment as I gathered my resolve. “The software team is completely demoralized and has hardly done a thing for months, and Burrell is so frustrated that he won’t last to the end of the year...”
Steve cut me off abruptly with a withering stare. “You don’t know what you’re talking about!” he interrupted, seeming more amused than angry. “Things are better than ever. The Macintosh team is doing great, and I’m having the best time of my life right now. You’re just completely out of touch.”
I couldn’t believe what I was hearing or tell if Steve was serious or not. I looked to Bud, who communicated his bewilderment with an apologetic shrug of his shoulders, but I could see he wasn’t going to corroborate my views.
“If you really believe that, I don’t think there’s any way that I can come back,” I replied, my hopes for returning sinking fast. “The Mac team that I want to come back to doesn’t even exist anymore.”
“The Mac team had to grow up, and so do you,” Steve shot back. “I want you to come back, but if you don’t want to, that’s up to you. You don’t matter as much as you think you do, anyway.”
I saw that we were so far apart there was little point in continuing the conversation. We finished dinner quickly and walked back to Apple without further discussion.
Actually, quitting was easier than I thought it would be; I just called up Apple’s HR department and let them know that I wouldn’t be coming back. I didn’t even have to sign any paperwork or turn in my badge, which I still have today, almost 20 years later. I had thought it would feel devastating to finally resign, but instead I actually felt relieved the situation was resolved, as well as optimistic about writing Macintosh software on my own.
Andy posing for the cover of MacWorld in February 1985
The End of an Era
May 1985
The Mac division undergoes an inconceivable reorganization
The original Macintosh enjoyed robust sales following its spectacular launch in January 1984 (see “The Times They Are A-Changin’” on page 217). Steve Jobs defined success as selling 50,000 units in the first 100 days, which was a high hurdle for a brand new computer with only a handful of applications available. In fact, Apple was able to sell more than 72,000 Macintoshes by the end of April, and over 60,000 units in June 1984 alone.
I traveled to the 1984 National Computer Conference show in June with the Mac team and shared a hotel room with Burrell Smith, even though I was on leave of absence (see “Leave Of Absence” on page 229). Apple had assembled over a dozen small software developers who had written cool applications for the Macintosh in order to display their wares at the trade show. Steve Jobs was ebullient, and thought that the sprouting applications and blossoming sales meant we had turned the corner. When I ran into him on the floor of the show, he put his arm around my shoulder and exclaimed, “Look at all these applications! We did it! The Macintosh has made it!”
High sales spurred even rosier predictions for the upcoming holiday season. But as summer turned into fall, Macintosh sales began to decline. For a couple of months, the University Consortium (see “What’s A Megaflop?” on page 132) kept volumes high by selling tens of thousands of low-cost Macs to college students, but by Thanksgiving 1984, sales had slowed significantly. The marketing team forecast selling over 75,000 Macs per month for the important holiday season, but actually they didn’t even break 20,000 per month. In December of 1984, the Apple II still
accounted for about 70 percent of Apple’s revenues.
As the New Year dawned, Steve Jobs seemed oblivious to the slowing sales and continued to behave as if the Macintosh was a booming, unqualified success. His lieutenants in the Macintosh division, which had swelled to more than 700 employees, had to deal with a growing reality gap, reconciling the ever-changing audacious plans for world domination emanating from their leader with the persistent bad news from the sales channels.
Meanwhile, the Macintosh engineering team had not been very productive. The Mac was crying out for an internal hard drive, as well as some kind of high-bandwidth port to attach it to, but there weren’t any significant upgrades on the horizon, even though the basic hardware hadn’t changed (except for additional RAM) for a year. In the fall of 1984, Steve Jobs tried to rally the remains of the original Mac team around the “Turbo Mac” project, featuring a new digital board with custom chips and fast I/O for an internal hard drive to be designed by Burrell Smith. But Burrell felt that engineering manager Bob Belleville was flinging lots of gratuitous obstacles in his path, and it eventually became so frustrating that he quit the company in February 1985 (see “Are You Gonna Do It?” on page 253).
Revolution in The Valley [Paperback] Page 25