25C3 - 1.4.2.3

25th Chaos Communication Congress
Nothing to hide

Speakers
Michael Steil
Schedule
Day Day 3 (2008-12-29)
Room Saal 2
Start time 16:00
Duration 01:00
Info
ID 2874
Event type lecture
Track Hacking
Language used for presentation en
Feedback

The Ultimate Commodore 64 Talk

Everything about the C64 in 64 Minutes

Retrocomputing is cool as never before. People play C64 games in emulators and listen to SID music, but few people know much about the C64 architecture. This talk attempts to communicate "everything about the C64" to the listener, including its internals and quirks, as well as the tricks that have been used in the demoscene, trying to revive the spirit of times when programmers counted clock cycles and hardware limitations were seen as a challenge.

The Commodore 64 was released in 1982 as an entry- and hobby-level machine competing against the Atari 8 bit series and the Apple II. Compared to other systems on the market, it had a lot of RAM (64 KB), and very sophisticated video and audio hardware. While it was quickly forgotten in the US, it reached its peak in the late 80s in Europe, being a very affordable hobby and game computer. Being the longest running computer of all time, being produced for 12 years, programmers understood the hardware very well, and continued finding new tricks how to create even better graphics effects. "AGSP" for example, a very sophisticated trick that makes it possible to arbitrarily scroll "multicolor bitmaps", e.g. for platform games, wasn't used in games until about 1993. This talk explains all the hardware details of the C64: The programming model of the 6502 CPU family, the Complex Interface Adapters (CIA), the Sound Interface Device, and the programming details as well as common ticks involving the Video Interface Controller (VIC-II). The disk interface will be discussed just as well as the design of the 1541 drive. The listener will get a good understanding of 8 bit programming and creative programming on extremely limited hardware, as well as common tricks that can be generalized to other systems.