Thursday, March 31, 2011

Microsoft's first sale

1978 Logo
Vanity Fair's current issue contains an article "Microsoft's odd couple," an excerpt from company cofounder Paul Allen's new book, in which he recounts clinching the deal for Microsoft's first sale, a BASIC interpreter, and takes swipes at Bill Gates and Steve Ballmer.
The flight was uneventful up until the plane’s final descent, when it hit me that we’d forgotten something: a bootstrap loader, the small sequence of instructions to tell the Altair how to read the BASIC interpreter and then stick it into memory. A loader was a necessity for microprocessors in the pre-ROM era; without one, that yellow tape in my briefcase would be worthless. I felt like an idiot for not thinking of it at Aiken, where I could have coded it without rushing and simulated and debugged it on the PDP-10.
     Now time was short. Minutes before landing, I grabbed a steno pad and began scribbling the loader code in machine language—no labels, no symbols, just a series of three-digit numbers in octal (base 8), the lingua franca for Intel’s chips. Each number represented one byte, a single instruction for the 8080; I knew most of them by heart. “Hand assembly” is a famously laborious process, even in small quantities. I finished the program in 21 bytes—not my most concise work, but I was too rushed to strive for elegance.
     ...The following morning, with Ed and Bill Yates hanging over my shoulder, I sat at the Altair console and toggled in my bootstrap loader on the front panel’s switches, byte by byte. Unlike the flat plastic keys on the PDP-8, the Altair’s were thin metal switches, tough on the fingers. It took about five minutes, and I hoped no one noticed how nervous I was. This isn’t going to work, I kept thinking.
     I entered my 21st instruction, set the starting address, and pressed the Run switch. The machine’s lights took on a diffused red glow as the 8080 executed the loader’s multiple steps—at least that much seemed to be working. I turned on the paper-tape reader, and the Teletype chugged as it pulled our BASIC interpreter through. At 10 characters per second, reading the tape took seven minutes. (People grabbed coffee breaks while computers loaded paper tape in those days.) The MITS guys stood there silently. At the end I pressed Stop and reset the address to 0. My index finger poised over the Run switch once again …
    To that point, I couldn’t be sure of anything. Any one of a thousand things might have gone wrong in the simulator or the interpreter, despite Bill’s double-checking. I pressed Run. There’s just no way this is going to work.
     The Teletype’s printer clattered to life. I gawked at the uppercase characters; I couldn’t believe it.
     But there it was: MEMORY SIZE?
     “Hey,” said Bill Yates, “it printed something!” It was the first time he or Ed had seen the Altair do anything beyond a small memory test. They were flabbergasted. I was dumbfounded. We all gaped at the machine for a few seconds, and then I typed in the total number of bytes in the seven memory cards: 7168.
“OK,” the Altair spit back. Getting this far told me that 5 percent of our BASIC was definitely working, but we weren’t yet home free. The acid test would be a standard command that we’d used as a midterm exam for our software back in Cambridge. It relied on Bill’s core coding and Monty’s floating-point math and even my “crunch” code, which condensed certain words (like “PRINT”) into a single character. If it worked, the lion’s share of our BASIC was good to go. If it didn’t, we’d failed.
     I typed in the command: PRINT 2+2.
     The machine’s response was instantaneous: 4. That was a magical moment. Ed exclaimed, “Oh my God, it printed ‘4’!” He’d gone into debt and bet everything on a full-functioning micro-computer, and now it looked as though his vision would come true.
     “Let’s try a real program,” I said, trying to sound nonchalant. Yates pulled out a book called 101 BASIC Computer Games, a slim volume that DEC had brought out in 1973. The text-based Lunar Lander program, created long before computers had graphics capability, was just 35 lines long. Still, I thought it might build Ed’s confidence. I typed in the program. Yates launched his lunar module and, after a few tries, settled it safely on the moon’s surface. Everything in our BASIC had worked.
     Ed said, “I want you to come back to my office.” Through a flimsy-looking doorway, I took a seat in front of his desk and the biggest orange glass ashtray I had ever seen. Ed was a chain-smoker who’d take two or three puffs, stub the cigarette out, and light the next one. He’d go through half a pack in a single conversation.
     “You’re the first guys who came in and showed us something,” he said. “We want you to draw up a license so we can sell this with the Altair. We can work out the terms later.” I couldn’t stop grinning. Once back at the hotel, I called Bill, who was thrilled with the news. We were in business now, for real; in Harvard parlance, we were golden. I hardly needed a plane to fly back to Boston.

     ...One evening in late December 1982, I heard Bill and Steve speaking heatedly in Bill’s office and paused outside to listen in. It was easy to get the gist of the conversation. They were ... discussing how they might dilute my Microsoft equity by issuing options to themselves and other shareholders. It was clear that they’d been thinking about this for some time.

No comments:

Post a Comment