- Internal hardware
The Commodore 64 is an 8-bit home computer released by Commodore International in August, 1982, for $595. Preceded by the Commodore VIC 20
and Commodore MAX Machine
, the C64 features 64 kilobytes (65,536 bytes) of RAM with sound and graphics performance that were superior to IBM-compatible computers of that time. During the Commodore 64's lifetime sales totaled 30 million units, making it the best-selling single personal computer model of all time. Approximately 10,000 commercial software titles were made for the Commodore 64 including development tools, office applications, and games.
The machine is also credited with popularizing the computer demo scene
. The Commodore 64 is still used today by some computer hobbyists, and various C64 emulators allow anyone with a modern computer to run these programs on their desktop.
In January 1981, MOS Technology, Inc., Commodore's integrated circuit design subsidiary, initiated a project to design the graphic and audio chips for a next generation video game console. Design work for the chips, named MOS Technology VIC-II
(graphics) and MOS Technology SID (audio), was completed in November 1981.
The C64 used an 8-bit MOS Technology 6510 microprocessor. This was a close derivative of the 6502, with an added 6-bit internal I/O port that in the C64 is used for two purposes: to bank-switch the machine's ROM in and out of the processor's address space, and to operate the datasette tape recorder. The C64 had 64 kilobytes of RAM, of which 38 KB were available to built-in Commodore BASIC 2.0.
The graphics chip, VIC-II
, featured 16 colors, eight hardware sprites per scanline (enabling up to 112 sprites per PAL screen), scrolling capabilities, and two bitmap graphics modes. The standard text mode featured 40 columns, like most Commodore PET
models; the built in font was not standard ASCII but PETSCII, an extended form of ASCII-1963. The VIC-II
allowed the C64 to be a highly-capable platform for playing arcade-style games at home.
MOS Technology 6510/8500 (the 6510/8500 being a modified 6502 with an integrated 6-bit I/O port)
Clock speed: 1.023 MHz (NTSC) or 0.985 MHz (PAL)
Video: MOS Technology VIC-II 6567/8567 (NTSC), 6569/8569 (PAL)
Text mode: 40×25 characters; 256 user-defined chars (8×8 pixels, or 4×8 in multicolor mode); 4-bit color RAM defines foreground color
Bitmap modes: 320×200
(2 unique colors in each 8×8 pixel block), 160×200 (3 unique colors + 1 common color in each 4×8 block)
8 hardware sprites of 24×21 pixels (12×21 in multicolor mode)
Smooth scrolling, raster interrupts
Sound: MOS Technology 6581/8580 SID
3-channel synthesizer with programmable ADSR envelope
4 waveforms: triangle, sawtooth, variable pulse, noise
Oscillator synchronization, ring modulation
Programmable filter: high pass, low pass, band pass, notch filter
Input/Output: Two 6526 Complex Interface Adapters
16 bit parallel I/O
8 bit serial I/O
Time of Day clock
16 bit cascadable timers
64 KB (65,536 bytes), of which 38 KB minus 1 byte (38,911 bytes) were available for BASIC programs
512 bytes color RAM
Expandable to 320 KB with Commodore 1764 256 KB RAM Expansion Unit (REU); although only 64 KB directly accessible; REU mostly intended for GEOS. REUs of 128 KB and 512 KB, originally designed for the C128, were also available, but required the user to buy a stronger power supply from some third party supplier; with the 1764 this was included. Creative Micro Designs also produced a 2 MB REU for the C64 and C128, called the 1750 XL. The technology actually supported up to 16 MB, but 2 MB was the biggest one officially made. Expansions of up to 16 MB were also possible via the CMD SuperCPU.
20 KB (9 KB BASIC 2.0; 7 KB KERNAL; 4 KB character generator, providing two 2 KB character sets)
plug containing composite video output, separate Y/C outputs and sound input/output. Beware that this is the 270° (horseshoe) version of the plug, not the 360° circular version. Also note that some early C64 units used a 5-pin DIN
connector that omitted the C output. 
Integrated RF modulator antenna output via a RCA connector
2 × screwless DE9M game controller ports (compatible with Atari 2600 controllers), each supporting five digital inputs and two analog inputs. Available peripherals included digital joysticks, analog paddles, a light pen, the Commodore 1351 mouse, and the unique KoalaPad
Cartridge expansion slot (slot for edge connector with 6510 CPU address/data bus lines and control signals, as well as GND and voltage pins; used for program modules and memory expansions, among others)
PET-type Datassette 300 baud tape interface (edge connector with cassette motor/read/write/sense signals and GND and +5 V pins; the motor pin is powered to directly supply the motor)
User port (edge connector with TTL-level RS-232 signals, for modems, etc; and byte-parallel signals which can be used to drive third-party parallel printers, among other things; with 17 logic signals, 7 GND and voltage pins, including 9V AC voltage)
Serial bus (serial version of IEEE-488, 6-pin DIN
plug) for CBM printers and disk drives
5V DC and 9V AC from an external "power brick", attached to a 7-pin female DIN
-connector on the computer. The C64's original power brick was under-powered, and users would often replace it with a third party solution, particularly if they had power-hungry peripherals attached to their machines