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 both the Z80 and the 8502 and was able to function in both 40- or 80-column text mode; and C64 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 is a CP/M disk in the drive, if there are any C64/C128 cartridges present, and if the Commodore key (C64-mode selector) is active on boot-up. Based on what it finds, it will switch to the appropriate mode of operation.
Instead of the single 6510 microprocessor of the C64, the C128 incorporated a two-CPU design. The primary CPU, the 8502, was a slightly improved version of the 6510 capable of being clocked at 2 MHz. The second CPU was a Zilog Z80 which was used to run CP/M software, as well as to initiate operating mode selection at boot time. The two processors could not run concurrently, thus the C128 was not a multiprocessing system.
The C128's complex architecture includes four differently accessed kinds of RAM (128 kB main RAM, 64 kB VDC Video RAM, 2 kNibbles VIC-II Color RAM, 2 kB floppy drive RAM, 128 or 512 kB REU RAM), two CPUs (main 8502, Z80 for CP/M; the 128D also incorporated a 6502 in the disk drive) and two different video chips (VIC-IIe and VDC) for its various operational modes.
While the 128's 40 column video mode closely duplicated that of the C64, an extra 1K of color RAM was made available to the programmer, as it was multiplexed through memory address 1. The 128's power supply was vastly improved over the 64's unreliable design, being much larger and equipped with cooling vents and a replaceable fuse.
The C128's keyboard included four cursor keys (previous Commodores had two, which required using the shift key to move the cursor up or left. These were retained on the 128, for C64 compatibility), an Alt key, Help key, Esc key, Tab key (not present on prior models) and a numeric keypad. The lack of a numeric keypad, Alt key and Esc key on the C-64 were an issue with some CP/M productivity software when used with the 64's Z-80 cartridge. Many of the added keys matched ones present on the IBM PC's keyboard.
Source: Wikipedia, "Commodore 128", available under the CC-BY-SA License.