I ran my own blog from November 2006 till October 2014. All posts are still online, but I don't have time to update it anymore. Please note that all images and media files have been removed when the backup was moved to a new host in early 2016. Enjoy!

In Memory Of The Commodore C128

27. november 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!