The C128 was a significantly expanded successor to the C-64 and unlike the earlier Plus/4, nearly full compatibility with the C-64 was retained. 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 also had twice the RAM of the C-64, and a far higher proportion was available for BASIC programming, due to the new MMU bankswitching chip.
Late in 1985, Commodore released to the European market a new version of the C128 with a redesigned chassis. 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 C128 had three operating modes: C128 Mode (native mode), which ran at 1 or 2 MHz with the 8502 CPU and had both 40- and 80-column text modes available; CP/M Mode, which used the Z80 in either 40- or 80-column text mode; and C-64 Mode, which was nearly 100 percent compatible with the earlier computer. Selection of these modes was implemented via the Z80 chip. The Z80 controls the bus on initial boot-up and checks to see if there are any C-64/C128 cartridges present, and if the Commodore key (C-64-mode selector) is active on boot-up. Based on what it finds, it will switch to the appropriate mode of operation.
The second of the C128's two CPUs was the Zilog Z80, which allowed the C128 to run CP/M. The C128 was shipped with CP/M 3.0 (aka CP/M Plus, which was backward compatible with CP/M 2.2) and ADM31/3A terminal emulation. A CP/M cartridge had been available for the C-64, but it was expensive and was limited to software on Commodore-formatted disks. To make a large application software library instantly available at launch, the Commodore 128 CP/M and accompanying 1571 floppy disk drive was designed to run almost all Kaypro-specific CP/M software without modification.