Friday, December 08, 2006

Book: On The Edge

I recently finished reading On the Edge: The Spectacular Rise and Fall of Commodore. I had a string of Commodore computers from the time I was 8 up until I was in university, so it was great to find out more about the history behind these machines.

One thing that comes to mind when I think about the Commodore machines I had is how there was so little hardware abstraction. In modern PCs you rarely talk directly to the hardware. Instead there are high level languages and APIs piled on top of APIs. I'm not saying that having little hardware abstraction was unique to the Commodore machines. It was probably actually very common in other machines of that era as well, since the machines were so underpowered (by today's standards) that you couldn't really afford the extra overhead imposed by layers of abstraction. However, as far as I can tell, the Commodore machines tended to have even less hardware abstraction than their contemporaries.

I think a large part of this had to do with Commodore's habit of using custom chips in almost every machine since the VIC-20, which was actually named after the VIC chip the machine was based around. In the Commodore 64 there were the VIC-II and SID chips. On the Amiga, there was of course the famous Amiga custom chipset.

This hardware-centric philosophy permeated the system software as well. I remember programming on the Commodore 64 in BASIC 2.0, which provided absolutely no high-level support for sound or graphics whatsoever. This was on the machine that arguably had some of the best sound and graphics capabilities for its time. On the C64 everything had to be done in PEEKs and POKEs. Even on the Amiga, which had a "real" operating system, many hardware details would still peek (or is that poke?) through, and applications frequently took advantage of hardware features that were unique to the Amiga.

From reading On the Edge I think I have a better understanding of why the Commodore machines were like this. A big factor in this seems to be that the Commodore 64 and the Amiga development teams included chip designers. The C64 pretty much started with the VIC-II and SID chips, and the rest of the computer was built around them. This sort of makes sense, since Commodore was one of the only computer makers of that era to have its own chip fab. (According to the book, this was because Jack Tramiel, Commodore's founder, was obsessed with "vertical integration".) Likewise, the Amiga's design centered around its own custom chips largely because it was originally going to be a game machine. It even sounds like one of the reasons Amiga was willing to be bought by Commodore had to do with Commodore owning a chip fab.

The book talks about both the engineering and the marketing behind the Commodore machines. As a software engineer I'm obviously really interested in the engineering stories, but some of the marketing stories are also fascinating, especially given Commodore's notoriously bad marketing in its later years.

Here's a bit about Commodore's marketing tactics in 1983:

Commodore instigated a strange offer that literally removed the competition from homes. ... "Send in any sort of computing device and you can get $100 off your Commodore 64." ...

Commodore employees speculated that the offer actually increased sales of Timex-Sinclair computers. Customers sometimes purchased $50 Timex-Sinclair computers just to take advantage of the $100 rebate offer. The excess Sinclair computers became a running joke within the halls of Commodore. "We had all these Sinclairs," says Bil Herd. "I started using them as doorstops."

What's especially interesting is how these stories can sometimes intersect in surprising ways. During the development of the Commodore 128 there was difficulty getting the C64's CP/M and Magic Voice cartridges to work on the C128 prototype:
To fix the problem, Herd required the C128 to start at memory address zero, but the 8502 started elsewhere. "One night, everybody left and it was broken," says Herd. "During the night, I said, 'I have no way to fix this, unless we startup by not starting at that address.' I said, 'Hey, Von. The Z80 chip starts from zero, doesn't it?' He said, 'Yup.' I said, 'Cool. I need somebody wire wrapping tonight.'"

The hour was too late to purchase a Z80 chip, so Herd looked elsewhere. "Everybody had doorstops that were actually Sinclairs," he recalls. "I went and tore open my doorstop because we didn't own a Z80 chip in the place."

The Z80 in the C128 literally originated in a doorstop!

If, like me, you grew up with Commodore computers, or if you're just interested in the history of personal computers in general, then I highly recommend reading On the Edge.

posted Friday, December 08, 2006 (3 comments)