November 27, 2007
The Commodore 128 or simply "C128" was Commodore Business Machines's successor of the bestselling C64. The C128 was a very interesing machine, but it wasn't a very successful one. My first computer was a C128D, and today I'd like to tell you a bit more about it.
The C128 was introduced 3 years after the C64, it was mainly designed by Commodore engineer Bil Herd. It was significantly expanded when compared to the C64, and in fact it was a quite outstanding machine - but each one of the improvements was also more or less flawed, which may be the cause for the C128's market failure.
First of all, the C128 included three "operating modes": the all new C128 mode offering a greatly improved BASIC language, an 80 character display and full access to the 128 KB of RAM (expandable to 640 KB), an almost fully compatible C64 mode and a CP/M 3.0 OS that could be booted from a floppy disk. The advantage of this design was a tremendous amount of available software due to the C64 and CP/M compatibility. The problem, however, was that many people mostly used the C64 mode, and software developers thus didn't write much software for the new C128 native mode. CP/M was quite slow on the C128 and it was already declining as MS-DOS became more and more popular.
To run all three modes the C128 included two CPUs, a 2 Mhz MOS 8502 (which was twice as fast as the 1 Mhz 6510 used in the C64) and a 4 Mhz Zilog Z80 for the CP/M mode. The C128D even had three processors, as the built-in disk drive had it's own 6502 CPU. Quite outstanding for a home computer in the mid 1980's, but there were major CPU design flaws too. The 8502 usually only ran at half speed, as the C64 compatible VIC video controller for TV sets only supported 1 Mhz. Running at full speed was only possible when using the VDC video controller, which could not be connected to TV sets though. As most people used their home computers with common TV sets in the 1980's they could only work with the C128 at half speed. There were similar problems with the Zilog CPU, whose 4 Mhz clock speed was not supported by the rest of the hardware, making CP/M slower on the C128 than on other CP/M computers.
A really cool feature of the C128 were the two built-in video controllers (VIC and VDC), which means that you could connect two separate screens to it (either a TV set and a computer monitor or simply two monitors). It was possible to type commands on one screen while results were drawn on the other for example. Of course this feature was flawed too... First of all, the VIC and the VDC were not compatible, and even the built-in BASIC graphics commands didn't work on the VDC. As a developer you always had to write separate routines for both controllers. And, as mentioned above, using both screens at full CPU speed was not possible as the VIC didn't support this.
Because of its hardware design the C128 was a cool machine for hackers, but not for end users. I wrote a hierachical file system and a VIC/VDC converter for the C128 for example, and even today I still think it was a great platform that could be used to learn a lot of thing about both hardware and software. It was a cool machine for running the GEOS graphical OS, although it couldn't compete with the newer Atari ST and Amiga computers which became available in the late 1980's.
But there were also some cool "hacks" that were quite outstanding:
- A company from Switzerland developed a software called "Graphic Booster" that used interlacing tricks to enable higher VDC resolutions of up to 752 x 700 pixels and thousands of possible colors. Such graphics specs were usually only available on high end graphics workstations back then, and the C128 running this software offered better graphics than Macs, Amiags or STs back then (but as there was almost no software supporting the Graphic Booster the impact remained quite low).
- In July 1986, COMPUTE!'s Gazette published a type-in program that boosted the global CPU performance by up to 20% when using the VIC video controller. This was possible by switching to fast mode (2 Mhz) during the "vertical blank period" (when the signal reached the bottom of the visible screen fast mode was enabled, the software switched back to slow mode when screen rendering began again at the top).
- Some people tried to make better use of the multiple CPUs. There were algorithms that were faster on the MOS 8502 while others showed better performance on the Zilog Z80 (due to the different architecture of the two CPUs), and there were a few programs that switched between the two CPUs for different tasks to perform better (in fact even CP/M 3.0 used the MOS 8502 in some BIOS routines). I also remember that there was at least one attempt to do multiprocessing with a C128D by using the MOS 8502 and the disk controller which was in fact a MOS 6502 and had its own RAM.
About 4 million C128 were sold between 1985 and 1989, compared to a total of around 30 million C64 (which was the best-selling single personal computer model of all time). Maybe the C128's failure was due to the design flaws mentioned above, to the lack of native software, to Commodore's crappy marketing or to the fact that most Commodore users were simply gamers and not hackers in most cases.
PS: There are now some really good C128 emulators around, so may google them and check them out!
Georges said on November 27, 2007:
Hey, nice to read your review. It reminds me of my first home computer.
It actually was a C64 first expanded by a tape drive (what a crappy storage media :D ), later on by a floppy drive which had to be "turbocharged" by an add-on chip as it was probably the slowest drive on the market. Although I hardly developed any software myself I quite often typewrited programs out of the german 64'er magazine. Finally at the end of the eighties I sold the whole system to a teenager before getting my first Mac, sponsored by daddy of course as Macs were as expensive as they were special. ;)
J.R. Mooneyham said on November 27, 2007:
Jos, I used a C-128 and programmed on it too for quite a while. Created a graphics program for the 640x200 mode. I also used it to write up the first drafts of much of what I have on the web today at my site, decades later.
I think I used a word processor called Word Writer 128(?). Plus GEOS for both the 64 and 128 modes (the 64 mode turned out to be most practical, due to squashed graphics on the 128 640x200 screen).
The C-128 was my own very first personal computer, and I liked it quite a bit.
The GEOS GUI on the 128 helped enormously to prepare me for a transition to Macs at a corporate job I got later. That, plus the programming and some other stuff must have done me some good, for I actually ended up getting the head IT job there!
So anyway, if you check out my web site, you'll see the legacy of the C-128 was far from insignificant in my own case!
-- J.R. Mooneyham
Jos Kirps said on November 29, 2007:
Thanks for your comments - I also read the german 64er mag on a regular basis (I live in Luxembourg, which is a direct neighbor to Germany), I also ran GEOS (C128 mode only) and I also switched to the Mac later on (but only in 1994, my first Mac was a PowerMac 7100, worked on PCs before). I still have my C128D, but I don't know if it's still working. I wrote a lot of software for it, but unfortunately I don't know if I still have all the floppy disks (or if they can still be read...)
Lance Lyon said on December 9, 2007:
I'm not sure that 4 million units can be regarded as a "failure"!
Bil Herd said on December 15, 2007:
(please delete previous post)
Your pretty much right on the money with the attributes of the hardware including shortcomings such as speed limits. I figured I would take a moment and describe the expectations that we had for the C128 as far as market performance.
Simply put, we didn’t have any expectations for opening any new markets with the C128, that was to be the job of the Amiga which was right around the corner. We did a computer that year pretty much because we were expected to, to not do something new would invite the appearance of complacency if not actual reduction in sales.
I wasn’t told what kind of computer to make, we pretty much had something working before management became overly involved. We did have our own ideas that included C64 compatibility as a minimum. The original reason for compatibility was in part due to my experience at the previous CES show in Vegas. I was new to Commodore and inherited a project called TED, later called the Plus 4. Originally it was supposed to be a $49 semi-business machine, TED meant Text Display. After Jack Tramiel left Commodore, the computer spiraled out of control and instead of a minimal system like the C116 that was released in limited quantity, we ended up with the $299 monstrosity courtesy of CBM Marketing.
At that CES show I met someone who showed me the educational software that she had spent a good deal of time writing and said point blank that our new computer wouldn’t run the output of her hard work.
So after that I viewed C64 mode as a way to support the people who had supported us, _if_ we sold some C128’s they would be more possible customers for this woman and others like her, not less. Like most things in the 128, there was no single reason for C64 mode, another reason would be that it did offer a chance to resale a C64 type machine to someone that already did have a C64. It also might prove to be the additional little nudge with the other features to get someone to buy a CBM when they hadn’t been one of the previous 30 million who had.
The 80 column chip was something we threw in because it was left over from the (failed) Z8000 project. That chip almost cost us the CES show with some problems it had, and it’s performance fell way below what I would have expected had I asked if it ran as it should be expected to.
As far as the “half speed” 1mhz mode, we actually couldn’t believe that we might actually be able to make it run at twice the speed in 80 column mode. As part of the snowball effect of adding the 80 column chip we realized that you didn’t NEED the 40 column chip to use the system and that we just might be able to use the VIC’s memory cycles for our own as at the end of the day, the speed of the C128 was limited by our interface to the DRAM’s. We took a chance and opened the VIC chip (source of clocks as well as video), created the double clock mode, and threw it back in the short pipe in time for CES. (This was done by a chip designer named Dave DiOrio)
There were similar experiences with the Z80; I added the Z80 for several reasons including the fact that there were 40,000 CPM cartridges in production that didn’t work reliably with the C64 and so the C128, and the cartridge would have required that the switching power supply be made to supply an additional .5 amp that wouldn’t otherwise be needed. The Z80 was installed between 1AM and 4AM one morning by a technician named Kim who was working the late shift with me. We didn’t even tell management for a couple of weeks, after the PCB’s were almost done so they couldn’t change my mind for me. The Z80 almost sunk us a couple of times: we tried to slip the Z80 clock source into a rev of the VIC chip, again in time for CES, and basically failed. The NMOS process couldn’t drive to within a few tenths of a volt in the time required and I had to fix it with a transistor and a tap from the 9V line for the SID chip to drive the clock really fast (and yet stop at the right voltage). This is why the C128 won’t boot if the 9V fuse is blown, the Z80 doesn’t run right.
The Z80 was limited in speed by sharing the clock cycles with the VIC chip and the way DRAM cycles occur preset times instead of on-demand. Why CPM? I answered why not, maybe it will catch on, maybe not, but I knew that there would be more 80 column programs such as word processors available on the very first day of release if I put it in then if I didn’t. Easy choice in spite of the massive grief of trying to add a processor with CES less than 2 months away. Later the Z80 saved my ass when it came to booting some of the stranger C64 cartridges.
Another area that could have been better, but at least worked good enough was the MMU. Possibly the first home computer with a Memory Management Unit, I blew it and didn’t put in a supervisor mode that would have made it a “real” MMU.
I only expected the C128 to be sold for about a year, we figured a couple of million would be nice and of course it wouldn’t undercut Amiga or even the C64 as if you were interested in a game machine, the C64 didn’t look any worse for the appearance of the C128 to the family. I have heard that it sold between 4 and 6 million if you count every market and model and that it did create in excess of a billion dollars in revenue. Not bad for a guerilla design effort that started because we felt that we of all people were the only ones that could actually pull of a C64 compatible system.
By the way, we didn’t set out to be 100% C64 compatible; we didn’t think anyone knew what that actually meant to say that. I do remember the day that I heard that it had become 100% compatible… it seems that Marketing thought that that would look good in print. I remember just kinda grinning at the thought and took it as a challenge.
BTW, I used to refer to the 128 as 9 pounds of s**t in a 5 pound bag, I couldn’t quite get 10 pounds to fit… and I would never ever have thought that anyone would even know what a C128 was 22 years later. Thanks for remembering the good and the bad.
Cesar Stoltman said on August 5, 2012:
Bil Herd: thank you for sharing your history with us and thanks to Jos too.