Commodore 128

Revision as of 19:54, 9 June 2025 by Josh (talk | contribs) (Automated comprehensive page creation by RetroTechCollection bot)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


The Commodore 128, also known as the C128, C-128, C= 128, or occasionally CBM 128, is the last 8-bit home computer that was commercially released by Commodore Business Machines (CBM). Introduced in January 1985 at the CES in Las Vegas, it appeared three years after its predecessor, the Commodore 64, the bestselling computer of the 1980s. Approximately 2.5 million C128s were sold during its four-year production run, though more recent analysis suggests 1,756,000 total unit sales throughout the lifetime of the company.

Commodore 128
Commodore 128 computer.jpg
The Commodore 128 personal computer
Specifications
DeveloperCommodore Business Machines (CBM)
ManufacturerUnknown
Type8-bit home computer
Discontinued1989
Intro price$300 (initial price) / $349 (retail 1985)
CPUMOS 8502 @ 1-2 MHz, Zilog Z80 @ 4 MHz (effective 2 MHz)
Memory128 KB RAM in two 64 KB banks
Storage
Display
SoundSID 6581/8580
OS / FirmwareBASIC 7.0, CP/M 3.0 (CP/M Plus), C64 Mode
PredecessorCommodore 64
SuccessorNone (last 8-bit Commodore)

The C128 is a significantly expanded successor to the C64, with nearly full compatibility. It is housed in a redesigned case with an improved keyboard including a numeric keypad and function keys. Memory was enlarged to 128 KB of RAM in two 64 KB banks. A separate graphics chip provided 80-column color video output in addition to the original C64 modes. It also included a Zilog Z80 CPU which allows the C128 to run CP/M, as an alternative to the usual Commodore BASIC environment.

The huge CP/M software library, coupled with the C64's software library, gave the C128 one of the broadest ranges of available software among its competitors. The machine featured three operating modes: C128 Mode (native mode) runs at 1 or 2 MHz with the 8502 CPU and has both 40- and 80-column text modes available, CP/M Mode uses both the Z80 and the 8502, and is able to function in both 40- and 80-column text mode, and C64 Mode is nearly 100 percent compatible with the earlier computer.

History and Development

The development of the Commodore 128 began in earnest after Jack Tramiel quits Commodore with secret plans to buy the near bankrupt Atari in January 1984. Mid-Summer – Commodore decides the Ted / 264 / 116 / Plus/4 Series will not sell as a replacement to the C64. September – Bil Herd appointed lead designer on C128 project in an effort to get a new machine ready for show at CES in Las Vegas, the 2nd week of January 1985.

The primary hardware designer of the C128 was Bil Herd, who had worked on the Plus/4. Other hardware engineers were Dave Haynie and Frank Palaia, while the IC design work was done by Dave DiOrio. The main Commodore system software was developed by Fred Bowen and Terry Ryan, while the CP/M subsystem was developed by Von Ertwine.

The team I worked with had an opportunity to slam out one last 8 bit computer, providing we accepted the fact that whatever we did had to be completed in 5 months… in time for the 1985 Consumer Electronics Show (CES) in Las Vegas. We (Commodore) could do what no other computer company of the day could easily do; we made our own Integrated Circuits (ICs) and we owned the two powerhouse ICs of the day; the 6502 microprocessor and the VIC Video Display IC. This strength would result in a powerful computer but at a cost; the custom IC's for the C-128 would not be ready for at least 3 of the 5 months, and in the case of one IC, it would actually be tricked into working in spite of itself.

Some form of compatibility was always intended after Herd was approached at the Plus/4's introduction by a woman who was disappointed that the educational software package she had written for the C64 would not run on Commodore's new computer, but when Commodore's marketing department learned of this, they independently announced total compatibility. Herd gave the reason for the 128's inclusion of a Z80 processor as ensuring this "100% compatibility" claim, since supporting the C64's Z80 cartridge would have meant the C128 supplying additional power to the cartridge port.

He also stated that the VDC video chip and Z80 were sources of trouble during the machine's design. Herd added that "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". Short-term it helped costs. Maybe long term it didn't, but it cleared out the warehouses, made the company $200 million in its first year, and it was only designed with a shelf life of 14 months. Per Herd, its reason for existing was to give them something to show and sell until the Amiga was ready.

Architecture and Processor

Instead of the single 6510 microprocessor of the C64, the C128 incorporates a two-CPU design. The primary CPU, the 8502, is a slightly improved version of the 6510, capable of being clocked at 2 MHz. The then-new 8502 microprocessor is completely backward-compatible with the C64's 6510, but can run at double the speed if desired.

The second CPU is a Zilog Z80 which is used to run CP/M software, as well as to initiate operating-mode selection at boot time. Zilog Z80 @ 4 MHz (running at an effective 2 MHz because of wait states to allow the VIC-II video chip access to the system bus). The C128 runs CP/M noticeably slower than most dedicated CP/M systems, as the Z80 processor runs at an effective speed of only 2 MHz. This was because the C128's system bus was designed around the 65xx CPUs. These CPUs handle data and memory addressing very differently from the Z80.

Selection of these modes is implemented via the Z80 chip. The Z80 controls the bus on initial boot-up and checks to see if there is a CP/M disk in the drive, if there are any C64/C128 cartridges present, or if the Commodore key (which serves as the C64-mode selector) is being depressed on boot-up. Based on these conditions, it will switch to the appropriate mode of operation.

An unusual feature of the C128 among CP/M systems was that some of the low-level BIOS services were executed by the 8502 instead of the Z80. The latter transferred control to the 8502 after having placed the pertinent parameter values in designated memory locations. The Z80 then turned itself off, being awoken by the 8502 at completion of the BIOS routine, with status value(s) available in RAM for inspection. The reason for this was so that the Commodore development team would not have to rewrite the OS routines for two completely different CPU instruction sets.

Memory and Storage

The new machine featured 128 KB of RAM, in two 64 KB banks and an 80-column RGBI video output (driven by the 8563 VDC chip with 16 KB dedicated video RAM), as well as a substantially redesigned case and keyboard. The C128's RAM is expandable from the standard 128 KB to 256, 512 or even 1,024 KB, either by using commercial memory expansion modules, or by making one based on schematics available on the internet. Commodore's RAM Expansion Units use an external 8726 DMA controller to transfer data between the C128's RAM and the RAM in the expansion unit.

The C128's complex architecture includes four differently accessed kinds of RAM (128 KB main RAM, 16–64 KB VDC video RAM, 2 kNibbles VIC-II Color RAM, 2-KB floppy-drive RAM on C128Ds, 0, 128 or 512 KB REU RAM), two or three CPUs (main: 8502, Z80 for CP/M; the 128D also incorporates a 6502 in the disk drive), and two different video chips (VIC-IIe and VDC) for its various operational modes.

In CP/M mode, the Program Segment Prefix and Transient Program Area reside in Bank 1 and the I/O registers and CP/M system code in Bank 0. Memory: 128 KByte RAM on two 64 KByte Chips (expandable internal on max. 256 KByte, external max. 640 KByte), from this are 38,911 or 122,365 Bytes free for use under BASIC.

Display and Graphics

A new chip, the VDC, provides the C128 with an 80-column color CGA-compatible display (also called RGBI for red-green-blue plus intensity). The 8563 Video Display Controller (VDC) was an integrated circuit produced by MOS Technology. It was used in the Commodore 128 (C128) computer to generate an 80-column (640 × 200 pixel) RGB video display, running alongside a VIC-II which supported Commodore 64-compatible graphics.

Unlike earlier MOS video chips such as the popular VIC-II, the VDC had dedicated video memory, 16 kilobytes (16,384 bytes; upgradable to 64 kilobytes, 65,536 bytes) in the original or "flat" C128 and 64 kilobytes in the C128DCR. RGBI output (RGB plus Intensity) compatible with IBM's CGA video standard.

The VIC-II or VIC-8564 for the 40 character mode has the ability for 25 (rows) × 40 (columns) characters (singlecolor and multicolor) in text mode (either big letters/graphic signs or big/small letters) or in graphic mode (HiRes) 320×200 pixel in 16 colors, 16 frame colors and 16 background colors or Multicolor mode (4 colors) 160×200 pixel, as well as 8 Sprites (singlecolor or multicolor, 24×21) displaying.

VDC-8563 for 80 character mode 25 (rows) × 80 (columns) with 16 colors, 8 character attributes, 16 frame colors and 16 background colors in text mode (either big letters/graphic signs or big/small letters) or in graphic mode (HiRes) 640×200 pixel singlecolor or 640×400 interlaced.

Audio Capabilities

The Commodore 128 retained the same SID sound chip architecture as the C64, providing three-voice synthesizer capabilities with multiple waveforms, filters, and envelope controls. The SID sound chip is particularly vulnerable in this respect to overheating issues in early models. The machine could use either the 6581 or 8580 SID chip depending on the model and production run.


Input/Output and Expansion

The C128's keyboard includes four cursor keys, Alt, ... Tab ↹ keys and a numeric keypad. None of these were present on the C64 which had only two cursor keys, requiring the use of the · ⇧ Shift key to move the cursor up or left. This alternate arrangement was retained on the 128, for use under C64 mode. The lack of a numeric keypad, ... Esc on the C64 was an issue with some CP/M productivity software when used with the C64's Z80 cartridge.

Keyboard: 92 keys (QWERTY/QWERTZ), which are multiple reserved, with numeric keypad, German keyboard with DIN mode and · <ESCape>, <TAB>, <ALT>, <CAPS LOCK/ASCII+DIN>, <HELP>, <Line Feed>, <40/80-DISPLAY>, <NO SCROLL>, the Function buttons are predefined. Miscellaneous: 2 CIA-6526 for the I/O control (Input/Output), IC for memory management MMU-8722.

The power supply represents a vast improvement over the design unreliable from the C64's source, being larger and equipped with a cooling fan and a replaceable fuse. People were amazed by Commodore supplies that worked, much less had a voltage adjustment and an externally accessible fuse. I explained (and meant it) that real bad power supplies with inaccessible fuses were a thing of Commodore's past and that the New design philosophy meant increased quality and common sense. I'm told they removed the fuse access from production units the month after I left Commodore.

Operating System and Software

The C64's Commodore BASIC 2.0 was replaced with BASIC 7.0, which includes structured programming commands from the Plus/4's BASIC 3.5, as well as keywords designed specifically to take advantage of the machine's capabilities. BASIC 7.0 is much improved comparing to version 2.0 seen in C-64. It offers keywords that take advantage of the built in graphic and sound hardware as well as memory management (bank selection with BANK command) without the need of remembering the addresses of all the involved hardware registers.

The new BASIC also adds some structural constructs like multiple line IF/THEN/BEGIN/BEND decision branches, open-ended (with optional condition) flow/loop control constructs like DO/WHILE/LOOP, DO/LOOP/WHILE, DO/UNTIL/LOOP, DO/LOOP/UNTIL in addition to standard BASIC's FOR/NEXT loop. A sprite editor and machine language monitor were added. The screen editor part of the Kernal was further improved to support a rudimentary windowing feature and was relocated to a separate ROM.

The second of the C128's two CPUs is the Zilog Z80, which allows the C128 to run CP/M. The C128 was shipped with CP/M 3.0 (a.k.a. CP/M Plus, which is backward-compatible with CP/M 2.2) and ADM31/3A terminal emulation. Commodore made versions of PerfectCalc and the EMACS-derived PerfectWriter available, and Commodore user groups sometimes had a selection of CP/M diskettes, but the limited software availability negated one of CP/M's chief attractions—its huge software library.

By incorporating the original C64 BASIC and Kernal ROMs in their entirety (16 KB total), the C128 achieves almost 100 percent compatibility with the Commodore 64. The C64 mode can be accessed in three ways: Holding down the Commodore-logo key when booting. Entering the GO 64 command, then responding Y to the ARE YOU SURE? prompt, in BASIC 7.0.

Hardware Revisions and Models

Model Release Case Drive Keyboard Price Notes
C128 July 1985 (UK), November 1985 (NA) One-piece wedge Optional external Built-in $299.95 Original model
C128D Late 1985 Plastic desktop with handle Integrated 1571 Detachable $499.95 European plastic chassis with keyboard dock and carry handle
C128DCR Late 1986 Stamped-steel desktop Internal 1571 Detachable N/A "Cost-reduced" version
C128CR 1988-1989 Flat External Built-in N/A Very small production run, identical to 128DCR except no integrated floppy drive. These are so rare I have never seen one of these units

Late in 1985, Commodore released a new version of the C128 with a redesigned chassis resembling the Amiga 1000. Called the Commodore 128D, this new European model featured a plastic chassis with a carrying handle on the side, incorporated a 1571 disk drive into the main chassis, replaced the built-in keyboard with a detachable one, and added a cooling fan. The keyboard also featured two folding legs for changing the typing angle.

In the latter part of 1986, Commodore released a version of the C128D in North America and parts of Europe referred to as the C128DCR, CR meaning "cost-reduced". The DCR model features a stamped-steel chassis in place of the plastic version of the C128D (with no carrying handle), a modular switched-mode power supply similar to that of the C128D, retaining that model's detachable keyboard and internal 1571 floppy drive. A number of components on the mainboard were consolidated to reduce production costs and, as an additional cost-reduction measure, the cooling fan that was fitted to the D model's power supply was removed.

Another difference is that the DCR uses 32kB ROMs instead of the 16kB ones in the C128 and C128D. It also has 64kB RAM for the VDC (80-column video chip). The C128 and C128D only have 16kB. The larger ROMs meant that Commodore was able to put both kernals (C128 and C64) in one chip, and both BASICs in another, instead of in four chips as in the older model.== Manufacturing and Cost Analysis ==

Herd actually designed the surplus chip inventory into the machine. Short-term it helped costs. Maybe long term it didn't, but it cleared out the warehouses, made the company $200 million in its first year, and it was only designed with a shelf life of 14 months. CP/M was cheap to implement–Bil Herd said it cost $1 to do. Presumably that was the cost of the software. The hardware wasn't all that expensive either. Commodore had lots of Z-80 CPUs in inventory, presumably left over from the ill-fated CP/M cartridge for the C-64, which didn't work properly most of the time, and didn't work well when it was working properly. So it didn't sell. The rest of the hardware was free, since CP/M just used the 8502 and its support chips for I/O.

When the C128(D/DCR) was discontinued in 1989, it was reported to cost nearly as much to manufacture as the Amiga 500, even though the C128D had to sell for several hundred dollars less to keep the Amiga's high-end marketing image intact. After Commodore raised the price of the 64 for the first time by introducing the redesigned 64C in 1986, its profit from each 64C sold was reportedly much greater than that from the C128.

Market Performance and Sales

Approximately 2.5 million C128s were sold during its four-year production run, though more recent detailed analysis suggests 1,756,000 total unit sales of the Commodore 128 throughout the lifetime of the company. Before its demise in 1989, the Commodore 128 sold a respectable four million units but this number could have been dramatically larger. 128's were insanely inexpensive when compared feature for feature with its competition and in the end they sold about 10 times their nearest competitor, the Apple IIc.

Although the company reportedly attempted to discontinue the C64 more than once in favor of more expensive computers such as the Commodore 128, demand remained strong. In 1989, with the Amiga accounting for 45% of total sales, the PC business showed modest growth to 24% of total sales, and the Commodore 64 and 128 products still generated 31% of the company's revenues.

By January 1987, Info reported that "All of those rumors about the imminent death of the C128 may have some basis in fact." Stating that Commodore wanted to divert resources to increasing 64C production and its PC clones, the magazine stated that, "The latest word online is that the last C128 will roll off the lines in December of 1987". Compute! stated in 1989, "If you bought your 128 under the impression that 128-specific software would be plentiful and quick to arrive, you've probably been quite disappointed".

Technical Innovations

In 1982, Commodore released the worlds first multi-processor personal computer, called SuperPET, but it was $2800 ($8600 in 2023 dollars) and targeted at the education / scientific markets. The Commodore 128 was to be the worlds first mass market multi-processor computer. It would also have two video subsystems, one of which would allow it to connect to a TV.

The 128's 80 column display mode would produce 640×200 which was better than the CGA mode that IBM

References