The Atari ST story
Any sufficiently advanced technology is insufficiently documented
One friday afternoon in July, 1984 the rumor floated through the halls: Jack Tramiel had bought Atari, and we were all going to be killed. Or laid-off. Or something. My office-mate had worked at Commodore a few years earlier (where Jack had been CEO) and said “If this is true, I’m quitting. I’m not working for Jack again; he’s a monster.” I didn’t know anything about Jack, but this wasn’t a good sign.
On Monday the rumor turned out to be true. Like all important happenings at Atari — layoffs, major management shake-ups, bad financial news and so on — we found out through the San Jose Mercury News rather than an official internal announcement. The paper said that Jack Tramiel had bought Atari from Warner Communications, and he and his people were on the way to San Jose to take the company apart and kill us. Or lay us off. Or something. The Merc didn’t exactly say that Jack was a monster, but that he had a hard, no-nonsense management style. This wasn’t a good sign.
I remember spending a crazy couple of days trying to concentrate on my current project; I sure didn’t feel like doing much (I was working on a computerized Trivial Pursuit game, something we’d code-named “Trivial Compute,” and was learning a lot about data compression algorithms, but my heart just wasn’t in it). The hallways were buzzing with rumors of entire buildings-full of people who had been nuked.
It took a little while for them to get to us. On Wednesday two of Jack’s “lieutenants” arrived at our building (we consumer games folks had been co-located with the coin-op division to save money). Someone had phoned ahead and said that the Tramiels were coming over and that news spread like wildfire. When they showed up, someone said, “I see them! They’re walking in the front door!”. I dialed-up the building’s intercom system and announced:
“Imperial storm troopers have entered the base! Imperial storm troopers have — Urk!”
then hung up abruptly. (Later, one of the two said that the timing couldn’t have been more perfect; my announcement happened as they had begun marching down the main hallway on the way to meet with the people they were going to lay off…).
There were interviews. Fast interviews that might better be described as grillings. We each had about five minutes to talk with Leonard Tramiel (Jack’s son) and John Feagans (a long-time Commodore employee, and someone that the Tramiels trusted). They asked questions like: Do you have any experience writing operating systems? I told them that I’d read Lion’s notes on Unix, and about my CS coursework at Maryland and the tools work that I liked to do. Did I want to work on a new computer? Sure, that sounded kind of exciting. I might have mentioned Soul of a New Machine and stuff about compilers. My memory of this is rather vague; I recall having a private conversation with the two of them, but others have said that we were interviewed in groups of five or six. It might have been both.
A couple hours later we were told to meet in a common area. There were about sixty of us. “Do you want the news individually, or all at once?” We took a vote, and most of us (veterans of many, many layoffs) just wanted to get things over with quickly. Leonard read two lists of names. Those on the longer list, about two thirds of the people there, were the ones getting a package. Those on the shorter list would be working for the Tramiels, at least for a while. My name was on the shorter list.
It was unclear if it would be better to be laid-off or to work for these people; they were tight-lipped and nearly complete ciphers. Who were the lucky ones? There was no way to tell. I helped my now-ex-cow-orkers pack their offices and load boxes into their cars. Out of the cluster of six programmers and an artist, people who I’d worked with and survived layoffs with for years, I was the only one left.
There was a lot of stuff left behind, and a bunch of VAXes that I could mess around with nearly all by myself. It wasn’t all that much fun.
– – – –
All of us programmers got VP desks.
The Tramiels had bought a lot of stuff — by contract they could have anything they wanted of the Warner Atari’s assets — and we needed to set up our offices in the new building that engineering was being consolidated in. We were moving from the coin-op building (since Jack hadn’t purchased the coin-op business, the doors to that part of the building, now a separate company, had been locked) to a building in Sunnyvale that had belonged to Corporate Research. Most of the people in Research had been let go; Lisp Machines and Vaxes were humming away without anyone to use them. Jack wasn’t interested in academics.
It turned out that we could have nearly anything from the old Atari that we wanted, since it didn’t cost anything extra. While the Tramiels were selling the more expensive items (like the Vaxes and Symbolics Lisp Machines that the researchers had been using), more mundane stuff could be had for the asking. You could have just about anything you wanted, and as long as Jack didn’t have to write a check for it (and was something that he couldn’t sell to make quick cash), he didn’t care.
“Well,” said somebody, “There’s this warehouse full of stuff in Santa Clara…”
So we went over there. Remember the last scene in the movie Raiders of the Lost Ark where they wheel the boxed-up Ark into a gigantic warehouse with acres of huge boxes and whatnot? This was like that, but for real. This warehouse (and others like it) was where the office equipment from all of the now-empty Atari buildings had gone; maybe fifty or sixty buildings’ worth.
I think that Jim Eisenstein, one of our graphics guys, started it. “I’ll take that one, there,” he said to one of the warehouse workers. Jim pointed at a really nice, large desk. “Okay,” said the fellow with the forklift, and he got it down. No argument. Pretty soon we had all chosen really nice, large desks (and some nice chairs) and tagged them for delivery. The guys running the forklifts didn’t care.
Dave Getreu and I shared an office for over a year (he was the guy whose version of Centipede I had bettered, but he was pretty decent about that). Our two desks barely fit, but it seemed worth it; a symbolic finger in the eye of the old, crappy Warner-Atari management. I don’t know who had used my desk before me, but it was sure nicer than anything I’d had, and my guess was that for every dollar that my efforts had earned the company that the former owner had blown at least two bucks down the toilet in bad deals and clueless management.
Rule of thumb: If your company has more VPs than it does bathrooms, you’re in trouble.
– – – –
The Tramiels had bought Atari with a plan to make a little money immediately by quickly selling off assets, and more intermediate-term money by making minor updates to the existing Atari product lines (the 400/800/1200 series of 8-bit computers), but the biggest effort was going to be a completely new line of cheap computers. There were some other products in various stages of development (the Atari 7800, whose major engineering work had actually been done outside Atari, at a small company named General Computer, a new sound chip code-named Amy, and some others) that the Tramiels kept lightly staffed.
The new computer was going to be based on a 16-bit or 32-bit processor. The Tramiels were initially pretty closed-mouthed about things; they had brought some folks from Commodore with them, and I got the impression that they didn’t trust us that much, and in addition there was a legal fight going on with Commodore over trade secrets. During the next month or two the design of the new system solidified. It was going to be based on a 32-bit processor, have a 16-bit bus (thus ST, for “Sixteen, Thirty-two”), have 256K of RAM and 128K of ROM. It was going to have a mouse and a graphical interface of some kind. At first the National 32000 series processor was a serious possibility, but in the end the Motorola 68000 won out. [In retrospect this was a good choice; National chips looked great on paper and had a nice, clean instruction set, like itty bitty Vaxes, but in reality they were very buggy and quite slow].
There were a number of candidates for the ST operating system. Leonard Tramiel gave us some GEOS documents to evaluate, as well as some specs on something called Crystal (from Digital Research Inc), and there were one or two other contenders. Frankly, none of the choices seemed all that great. Ultimately the Tramiels signed a contract with DRI to port CP/M-68K and the still-being-developed GEM user interface to our still-being-developed hardware.
The schedule for the ST was very aggressive; we were starting in August, more or less, and working systems needed to be ready for the Consumer Electronics Show in January. With lead-time for the custom chips measured in many weeks (I don’t remember exactly, perhaps 6 to 8 ), this didn’t leave much time for development. So while the hardware guys were spending 20 hour days frantically designing chips and wire-wrapping prototypes, the software guys were spending a lot of time at the beach.
No, really. The software team temporarily relocated to Monterey, 70 miles south of Silly Valley and on the California coast, which was where Digital Research was located. Initially we stayed in hotel rooms a short walk from the DRI campus, but after a few weeks Atari rented some houses for us in Carmel, just a few blocks from the world-class beaches there. I used to leave work around 5, watch the sunset over the ocean (because it would have been a shame to waste those), then go back and work really late.
Our first meeting with the folks from DRI did not go very well. One of their engineers tried to give us a chalkboard introduction to C (which I’d been using for five or six years at that point), and his “this is a for loop, this is a struct” talk didn’t go over very well (you can’t effectively teach a language in an hour like this anyway). Another engineer attempted a tutorial on assembly language (to video game programmers, ha). This attitude colored the whole Atari-DRI engineering relationship; in addition to the project’s incredibly short schedule, which put everyone under a lot of pressure, there was an uneasy division of turf: DRI got to call the shots on their code and architecture, while Atari had to make it work. Things didn’t always go smoothly; when we found bugs or design problems, egos sometimes got in the way and there was an occasional temper flare-up.
Stress: A number of us learned how to juggle. One of the DRI people had a nervous tick in the form of a “quacking” sound, and this spread through the group (a year later some of us were still doing it a little). The word “fine” became a pejorative: “Don’t worry, everthing will work out just fine.” How are you feeling? Fine, okay?
Getting access to working hardware was a problem. There was a wire-wrap prototype of the hardware in Sunnyvale, but it was flaky as hell and certainly not transportable. You could run something, have it crash, then wiggle a board slightly and have the code work just fine. There were attempts to get the software engineers hardware earlier, but they were always unreliable (e.g., big, expensive machine-wire-wrapped boards that almost worked, but that turned out to be just too dodgy to trust).
Wire-wrap: Imagine a board, say two feet by three feet, crammed with chips. On the flip side of the board are thousands of half-inch metal pins. Now, the pins have to wired-up to each other in order for the chips to talk, and the way you do this is to wrap a fine wire tightly around a one pin, run the wire up and about, then wrap it around the other pin and cut the wire. Hilarity ensues. There are thousands of wires to keep track of, and only so many colors of wire available. Little bits of wire will flake off, get buried and short out contacts. Wires will work themselves loose. Wires carrying signals at high speed will interfere with each other and cause ghost signals. Wires will break internally and invisibly, become unwrapped, mysteriously stop conducting electricity (sometimes), and this is all behavior that doesn’t include the simple boneheaded mistake of somebody mis-wiring two pins out of those thousands because they were short on sleep.
The nasty thing about wire-wrap prototypes was, if your code didn’t work, you could just shake the boards (there were three or four of them you could do this to), and if everything settled down right your code might actually run. Or bomb in a different, exciting way. Software progress was slow. There were attempts to get us more stable prototypes, but they never really worked that well.
Sometime in December we started getting chips from the fabs and the real hardware began to come to life. We booted the ST for the first time (it was exhilarating to see the floppy disk spin and seek under OS control — this is something that you take for utterly for granted until you have to make it work yourself).
The original budget of 128K of ROM was blown pretty early on, and we targeted 192K. Initially this was so that the machine could incorporate a built-in BASIC interpreter. Up until this point it was virtually unthinkable that you could ship a consumer computer without BASIC in ROM (the Apple II, the Commodore line, and all of the Atari computers had built-in BASIC).
DRI had a version of BASIC available, and one of our engineers (someone the Tramiels knew) was hired and given the task of porting it. I don’t remember precisely what went wrong, but it just didn’t happen. It’s possible that the DRI BASIC wasn’t very good, or was too full of platform-specific garbage to easily port, and it’s also possible that the engineer given the job just wasn’t up to it. Regardless, we started to realize that just the operating system alone was going to use up the entire 192K (and in fact, blew past it and had to be pared down during a 2-3 week crunching period just before we shipped the ROMs), and BASIC simply would not fit.
The other thing that was clear was that the software was going to be late; the ROM version wasn’t going to make it in time for CES. We had disk-based versions of the OS (called TOS, for “The Operating System” — catchy) booting, and that’s what we showed. The hardware guys doubled the amount of RAM in the system so the OS could live in RAM with room left over for applications.
Jack didn’t pay for all of the engineers to fly to Las Vegas, but he was willing to put us up in a hotel and get us CES badges if we arranged our own transportation, so a few of us did a road-trip. The show was fun; there was a lot of excitement and speculation about Atari’s new products. What people didn’t know is that there were only about five working ST systems in existence, and they kept dying on the show floor (possibly due to heat problems, bad connections, or barely-working custom chips going south) and had to be resurrected from time to time in a back room where techs were hidden away with soldering irons, a limited number of spare chips, and a liberal supply of invective.
We’d shown the ST to the public. Now we had to make it work.
Earthquake! -and- Sorry I (nearly) Got You Fired I’m sorry I got you fired.
Well, nearly fired, anyway. It was pretty close. The road to unemployment is paved with good intentions. God knows I sure led you on. And when management found out, hoo boy.
One fine sunny afternoon in Silly Valley I was sitting in my cubical at work, happily noodling away at some C++, when someone in the hall tripped and fell down and rolled against the wall of my cubical. “I hope they’re okay,” I thought, and started to get up to see how they were.
Then whoever it was got up and fell down again, a little harder this time, and a small truck hit the building and my 21 inch monitor (known as a “Kong” in our group, and which incorporated at least 80 pounds of lead and probably a fair amount of neutronium ) started to rock back and forth on its not insubstantial base. I stood up (trust me, you don’t want one a Kong in your lap) just as another, larger truck hit the building, making the monitor rock even more and causing the light fixtures above the cube farm to swing. And my next thought was “Is this the Big One?” because it was clear we were about eight seconds into a definitely non-trivial earthquake, and if it kept escalating it wasn’t going to be one of the little “ha ha, something farted underground and now it’s over” kind of earthquakes we get all the time in Silly Valley and that barely make it to the second section of the newspaper, but instead a whopper that we would still be talking about years later, assuming we survived the next couple of minutes.
The shaking got worse over the the next couple of seconds. Time to panic.
So I did what everyone else did, exactly what safety experts tell you not to do, which was to run — no WALK — rapidly towards the building’s exit. As I left my cube, I saw my monitor rock over one final time and land on my chair, where my lap had just been (so: good call). I WALKED rapidly down the hallway. Left turn. Right turn. Down into the stairwell with a crowd of equally unwise people, all of us very definitely not panicking and not running. About that time the really big shaking started, and we all played Star Trek Bridge Attack Scene —
After an unreasonable amount of time — it couldn’t have been less than a couple of weeks — the shaking finally stopped. We looked at each other, the unspoken question on everyone’s mind being “Is that all? Or was that just the warm-up for the Really Big One?” After milling around for a while we were told by some management we’d be contacted when it was okay to return to work, and that we should all go home now. A few people at a time were allowed back into the building to get car keys and other critical items.
I lived about a mile from work then, so I walked home and cleaned up a few tipped-over bookshelves. Power was out for six or seven hours, and helicopters from the Naval base a few miles away were quartering the valley like you’ve seen in a Vietnam War movie, with a great whapping of helicopter blades.
A week later we were told to return to work in another building, far away from Apple’s campus in Cupertino, way out in Mountain View. This building was near 101 and Moffet Field, and just under the approach path for the airfield. Several times a day Navy P-3 sub-hunting planes returning from a tour of keeping the west coast free from pesky nuclear submarines would start their approach, fly over our building and dump fuel on us. There were mornings when you could smell the napalm. (We called the Bay Area Air Quality Board, and while they would have gone rotweiller on any company or individual dumping fuel, these were military flights and the Navy could dump anything they pleased). Some wit posted a “No Smoking” sign on the door leading to the parking lot. No idea who, honest.
Apple was never a company willing to pass up a good earthquake as an excuse to do a re-org. Our division got a little political shaking of its own, and that’s how I landed two cubicals away from someone we shall call “Tim”, who worked on the MPW Shell user interface.
I need to describe the MPW Shell to you.
Imagine a Unix shell, circa 1985. You are probably staring at an 80×25 VT-100 terminal. At your fingertips are hundreds of tools, all with little fiddly options, all different, and a couple of editors (Emacs, vi, and yeah, /bin/ed), and that’s about it.
Now imagine you’re a developer at Apple, and you want a Unix shell and a bunch of Unix-like tools, but you hate the miserable 80×25-and-no-mouse jail, so you decide to do your own thing. It starts out well, with a mouse-driven text editor. You hang a command interpreter on it and tell your users that Enter just inserts a newline, while Command-Enter submits a line or selection as a command, and after a while they get used to it. Integrated editor plus shell, pretty neat, actually.
Then things go off the rails.
Nearly every major tool got its MPW-ified version. Regular expressions used the Mac’s extended character set (so “wavy squiggle” for ‘*’, a fat-looking bullet splat for ‘^’, and a cute little infinity sign for ‘$’). Makefiles used funky characters instead of “:”. Every tool got a template-driven front end with checkboxes and lists of options.
So MPW is all bespoke stuff written by people who say they hate Unix, but who secretly just want to re-write all that fun things for a new environment.
One day I’m noodling around porting Emacs to the Mac. Again. Every six months or so I get fed up with the MPW’s Hell lack of key bindings and crack open the Emacs sources. Maybe I can do it this time. And after a few hours I back away slowly, then rm -rf (sorry, DeleteFile -recurse yupperoo) and feel sorry for my lack of gumption. It doesn’t help that Richard Stallman hates Apple, and personally hates my very own specific ass. Anyway, I’m in the middle of seeing if Emacs has improved or my ability to hold my nose and just Go For It and fork the damned thing has, when I find Tim looking over my shoulder. He has probably heard my teeth grinding.
“trying to port emacs,” I whisper. One of the group’s management heavies is not far away, and he definitely doesn’t understand real editors.
“emacs? what’s that?” Tim whispers back.
“it’s an editor that doesn’t suck.”
“what’s wrong with MPW?”
Oh boy. I telnet to a handy Vax (yes, Apple has Vaxen) and give Tim a whirlwind tour: The simpler commands, followed by composition with universal arguments and keyboard macros. Key bindings for various modes (“see? tab and return do the indentation here…”). MPW had a bunch of stuff better than Emacs — a full GUI and multiple windows and so forth — but MPW’s key handling was pretty quaint. And modes? Ha.
Tim was visibly awed, despite the 80×25 constrained interaction.
“wow, that would be pretty neat. how do those keyboard macros things work again?”
I showed him. And I sealed his fate.
Tim came returned a few times for more discussion, and I showed him more of what the Emacs folks had come up with over the years. His own implementation gave it an MPW-spin and made things a lot more friendly, and powerful. It was pretty neat. Users were going to love it.
And then he showed his little side project to his manager, who freaked out and told him NEVER to even CONSIDER putting the feature into the shipping product.
About three months later Tim knocked on the side of my cubie and said, “I think they’re going to fire me.”
“I checked all that stuff in, and it went out in the last release and they just discovered that it’s in there.”
“You checked it in? After Fred told you ‘no way’?”
“I sort of snuck it in. They’re pretty lax, and it was already in there for the demo. I just left it enabled and didn’t say anything and it . . . sort of escaped. To users.”
“The problem is, the users *love* it. The discussion groups are full of great comments. Fred is pissed.”
Tim had mentioned me as a source of influence, so I had a parade of managers file through my cubie for the next day or so. The managers didn’t get it. The programmers who had to use MPW every day loved it. The support folks were reporting that developers loved the feature, and that they were hoping that the feature was a sign of continued and fresh life in a product that they loved to complain about.
Tim wasn’t fired. I think the mgt had some meetings and did their usual “We have to pee in this feature, MPW-style” design work, but even after the poltical torque had been applied, the keyboard binding stuff remained usable and people still loved it.
I wound up leaving the group about six months later. I lost track of what MPW was doing after that, and I’ve utterly lost track of Tim, too.
I know this is a shitty way to build features that customers want, but the opposite way is shitty, too. Ain’t no easy answers.