Commodore 64 (C64)#
Open 8bitworkshop IDE
C64 Specifications#
- Lifespan
1982-1994
- Media
Floppy disk, cassette tape, ROM cartridge
- CPU 8-bit
MOS Technology 6510 (6502-compatible) @ 1.023 MHz (NTSC) / 0.985 MHz (PAL)
- Memory
64 KB dynamic RAM, 1024 x 4 static color RAM
- Controllers
Joystick, mouse, paddles
- Best-selling games
The Last Ninja, Ghostbusters
History#
In 1981, MOS Technology (Commodore’s integrated circuit design subsidiary) designed graphic and audio chips for a next-generation video game console called the Ultimax, destined for release in Japan. Commodore engineers pitched Commodore CEO Jack Tramiel on a new home computer using the new chips.
Tramiel dictated that the machine should have 64 KB of random-access memory. Although 64-Kbit dynamic random-access memory chips cost over US$100 at the time, he knew that 64K DRAM prices were falling and would drop to an acceptable level before full production was reached. The product was code named the VIC-40 as the successor to the popular VIC-20. The machine used the same case, same-sized motherboard, and same Commodore BASIC 2.0 in ROM as the VIC-20.
With the help of Commodore’s underutilized chip fab, the chips were completed by the end of the year. The VIC-40 product was renamed C64, and it debuted at the 1982 CES at $595. Thanks to aggressive pricing and wide distribution, it went on to sell more than 12 million units through its lifespan.
It was primarily known as a game machine, since the 1541 disk drive’s slow performance limited its use in business and productivity applications. Few cartridge-based games were released, but low-priced cassette games were popular in Europe.
The C64 had a Microsoft-licensed BASIC built-in, but any graphics or sound operations required unfriendly PEEK and POKE commands. Commodore offered developers an SDK consisting of an assembler/monitor, sound editor (SIDMON), sprite editor (SPED), and character graphics editor (CHRED) as well as programming documentation. A market quickly developed for third-party tools such as BASIC compilers, assemblers/linkers, and programming languages.
Nowadays, homebrew C64 developers usually write games in either assembler or C, the latter using the cc65 compiler toolchain. Writing in C gives you more functionality per line of code. While it has lower performance and greater code size than a well-written assembly program, you can still write a pretty good game in C.
Memory Map#
Start |
End |
Description |
Alternate Use |
---|---|---|---|
|
|
RAM, zero-page |
|
|
|
RAM, CPU stack |
|
|
|
RAM |
|
|
|
RAM |
Cartridge ROM |
|
|
RAM |
BASIC ROM |
|
|
RAM |
|
|
|
RAM |
VIC-II |
|
|
RAM |
SID |
|
|
RAM |
Color RAM |
|
|
RAM |
CIA 1 |
|
|
RAM |
CIA 2 |
|
|
RAM |
I/O 1 |
|
|
RAM |
I/O 2 |
|
|
RAM |
Kernal ROM |