The Commodore 128 dual CPU computer
The Commodore 128, also known as the C128, C-128, C= 128, is the last 8-bit home computer that was commercially released by Commodore Business Machines (CBM). It was introduced in January 1985 at the CES in Las Vegas, and appeared three years after its predecessor, the Commodore 64.
The C128 is a significantly expanded successor to the C64, with nearly full compatibility. The newer machine has 128 KB of RAM in two 64 KB banks, and an 80-column color video output. It has a redesigned case and keyboard. Also included is a Zilog Z80 CPU which allows the C128 to run CP/M, as an alternative to the usual Commodore BASIC environment. The presence of the Z80 and the huge CP/M software library it brings, coupled with the C64's software library, gave the C128 one of the broadest ranges of available software among its competitors. The primary hardware designer of the C128 was Bil Herd, who had worked on the Plus/4.
Commodore BASIC
Commodore BASIC was a dialect of Microsoft BASIC, licensed by Commodore in 1977 for use in the PET 2001. It ran from ROM, freeing all RAM for user programs, and provided an immediate programming environment upon power-up. The interpreter was built on the 6502 processor, with tightly coded routines for tokenization, line storage, and execution. This structure allowed BASIC statements to be entered interactively, stored in memory as linked line records, and executed sequentially or via branching constructs. Commodore kept this design across its entire 8-bit product line, from the PET and VIC-20 to the Commodore 64 and beyond, creating a sense of continuity between machines.
Historically, Commodore BASIC differed from many other implementations in its limited feature set relative to machine capabilities. For example, the original PET BASIC lacked dedicated graphics or sound commands, requiring programmers to manipulate memory directly through PEEK and POKE. Even later versions, such as BASIC V2 on the C64, still omitted high-level graphics and sound statements, in contrast with Atari BASIC or BBC BASIC, which provided structured access to system hardware. Only with extended versions such as BASIC 3.5, 4.0, and 7.0 did Commodore add disk commands, string handling improvements, and more advanced features.
When compared to contemporaries, Commodore BASIC was often criticized as being underpowered, but its simplicity made it approachable. BBC BASIC, for example, incorporated structured programming constructs and inline assembler, whereas Commodore’s offering retained the line-numbered, unstructured style of early Microsoft BASIC. Atari BASIC, developed separately, emphasized graphics and sound integration through dedicated keywords. Commodore’s approach forced users to learn the underlying memory map, making them more technically literate about hardware but also raising the entry barrier for certain types of applications.
Despite its limitations, Commodore BASIC achieved massive popularity due to sheer reach. Millions of units shipped with it as the only built-in interface, ensuring every user interacted with it directly. Its ubiquity in schools, homes, and small businesses made it a de facto teaching language for a generation. Moreover, the reliance on PEEK and POKE, while cumbersome, fostered a culture of type-in listings and hardware exploration. This combination of accessibility, wide distribution, and necessity cemented Commodore BASIC’s role as one of the most influential programming environments of the late 1970s and 1980s.
Commodore BASIC Versioning
-
BASIC 1.0 (PET 2001, 1977)
Computers: Commodore PET 2001
Features: Essentially a stock Microsoft BASIC interpreter running in ROM, with support for integer and floating-point arithmetic, strings, arrays, and file operations for tape storage.
Limitations: No disk commands, no advanced error trapping, and no machine-specific extensions. Designed as a minimal environment to ship the PET quickly. -
BASIC 2.0 (VIC-20, C64, C-MAX, 1981–1982)
Computers: VIC-20, Commodore 64, Commodore MAX Machine
Features: Nearly identical to BASIC 1.0 with minor bug fixes, provided the same core Microsoft BASIC functionality.
Limitations: No disk drive commands, no dedicated graphics or sound statements. Hardware had to be accessed through POKE and PEEK. -
BASIC 3.5 (Commodore 16, C116, Plus/4, 1984)
Computers: Commodore 16, Commodore 116, Commodore Plus/4
Features: Added graphics and sound commands (GRAPHIC, CIRCLE, PAINT, SOUND, PLAY), integrated disk commands (DLOAD, DSAVE, DIRECTORY), plus utilities like RENUM and TRON/TROFF.
Limitations: Still line-number oriented and lacked the structured programming richness of competitors like BBC BASIC. -
BASIC 4.0 (PET/CBM Business Series, 1979+)
Computers: PET/CBM 4000 and 8000 series
Features: Expanded disk support with DLOAD, DSAVE, DIRECTORY, COPY, and SCRATCH. Improved error handling suitable for commercial environments.
Limitations: Focused on business and disk operations, no graphics or sound capabilities because target hardware lacked them. -
BASIC 7.0 (C-128, 1985)
Computers: Commodore 128
Features: Added high-level graphics (DRAW, CIRCLE, PAINT) and sound (PLAY, SOUND) commands, advanced disk operations, structured programming constructs like WHILE...WEND, RENUM, and support for memory banking and multi-mode operation.
Limitations: Despite enhancements, still less sophisticated in structured constructs compared to BBC BASIC or contemporary Pascal-like systems. -
BASIC 10.0 (C-65 prototype, 1990–1991)
Computers: Commodore 65 (prototype, unreleased commercially)
Features: Extended support for high-resolution graphics and larger color palettes through VIC-III, up to 8 MB memory addressing, advanced string handling, and structured commands.
Limitations: Never commercially released, so its practical impact was negligible despite advanced features.
Sound - The Commodore SID (MOS 6581)
SID is short for Sound Interface Device. It is the name of the sound chip that was used in the VC10, the commodore 64 and the Commodore 128. SID was developed by Bob Yannes, an employee of MOS Technology. Bob was not only an engineer but also knew a lot about music. His intention was to create a different sound chip than other devices at the time. He implemented a subtractive synthesis chip. The chip's distinctive sound is easily recognized and was clearly ahead of the ocmpitition. The SID combines analog and digital circuitry that cannot be 100% emulated, even today.
Source: C64 WikiVideo - The Video Interface Chip v2
The VIC-II, or Video Interface Chip II, is a chip from MOS Technology. There are a few variants:
- For NTSC: 6567/8562/8564
- For PAL: 6569/8565/8566
The VIC-II generates Y/C signals and DRAM refresh signals for the Commodore 64, Commodore MAX, and Commodore 128 computers. It is the successor of the original VIC chip used in the VIC-20 computer.
Features:
- 16 KByte address space for screen, character and sprite memory
- 320x200 graphics in 16 colors
- 40x25 Text resolution
- Capable of 8 sprites per scanline (24x21 or 12x21 multicolor sprites)
- Raster interrupt
- Smooth Scrolling
- Independent DRAM refresh
- BUS mastering for the 6502-style bus. CPU and VIC-II can access the bus during alternating half-clock cycles.
Programmers quickly learned that the VIC-II was more capable than the specifications would indicate. By manupulating the 47 different control registers, and by using machine code hooked into the raster interrupt routine (or the scanline interrupt), the chip can be programmed to do sprite multiplexing. This allows for more than 8 concurrent sprites on screen. It basically allows for the screen to be split up in different slices, giving each slice its own scrolling, resolution, color and sprite properties. This even allowed programmers to use graphics outside the upper and lower borders of the screen.
CPU - The Intel 8502
The MOS Technology 8502 is an 8-bit microprocessor designed by MOS Technology and used in the Commodore 128 (C128). It is an improved version of the MOS 6510 used in the Commodore 64 (C64). It was manufactured using the HMOS process, allowing it to have higher transistor density, and lower cost, while dissipating less heat. The 8502 allows the C128 to run at double the clock rate of the C64 with some limitations.
CPU - The Zilog Z80
The Z80 quickly became popular in the personal computer market, with many early personal computers, such as the TRS-80 and Sinclair ZX80, using the Z80 as their central processing unit (CPU). It was also widely used in home computers, such as the MSX range, SORD, and the Amstrad CPC, as well as in many arcade games. Additionally, it was also used in other applications such as industrial control systems, and embedded systems. The Z80 was widely used until the mid-1980s, when it was gradually replaced by newer microprocessors such as the Intel 80286 and the Motorola 68000.
The Z80 microprocessor was developed by Zilog, a company founded by Federico Faggin in 1974. The Z80 was released in July 1976, as a successor to the Intel 8080. It was designed to be fully compatible with the 8080, but also included new features such as an improved instruction set, more powerful interrupts, and a more sophisticated memory management system.
Originally the Z80 was intended for use in embedded systems, just as the 8080 CPU. But the combination of compatibility, superior performance to other CPUs of the era, and the affordability led to a widespread use in arcade video game systems, and later in home computers such as the Osborne 1, TRS-80, ColecoVision, ZX Spectrum, MSX, Sega's Master System and many more. The Z-80 ran the original Pac-Man arcade cabinet. The Z-80 was used even in the Game Gear (1990s), and the TI-81 and succeeding graphic calculators.
The Z-80 remained in production until June of 2024, 48 years after its original release. Zilog replaced the processor with its successor the eZ80, an 8-bit microprocessor that features expanded memory addressing up to 16 megabytes, and running up to 50MHz, comparable to a Z80 clocked at 150MHz.
VRAM: 16kB
320x200 graphics, 640x200 graphics
640x400 interlaced graphics
CP/M
