Ultimate C64 Memory Map

The system software of the Commodore 64 has been extensively reverse-engineered. Next to disassemblies of the ROM, several “memory maps” have been published: tables that document system variables in the first kilobyte of RAM, and how to tweak the system software with PEEK and POKE. Now, I’m presenting the Ultimate C64 Memory Map: A C64 memory reference that shows eight sources side-by-side.

These are the references that have been adapted for this:

You can enable and disable columns by clicking the checkboxes next to the sources, and you can expand/collapse all details with the corresponding button above the table. Here are four different expanded explanations of the STATUS byte:

And here is the collapsed version of the range $2B-$48, comparing the comments in the original sources with the Programmer’s Reference Manual:

The symbols (second column) are taken from the original sources. Sometimes, a single memory location has several meanings and thus several symbols. Some descriptions have been adapted to describe the different meanings independently:

KERNAL and BASIC ROM addresses link to the respective spots in the disassembly:

And in the disassembly, zero page addresses (like $CC) and symbols (like BLNSW) link back to the memory map:

The memory map table is generated from independent formatted ASCII files that look like this:

It consists of three columns: the address range in hex, the symbol name and the description in MarkDown format.

The Ultimate C64 Reference is being developed as an open source project at github.com/mist64/c64ref – contributions in the form of additions, corrections etc. are welcome!

7 thoughts on “Ultimate C64 Memory Map”

  1. Thanks so much for putting this together. Very useful.

    I notice that you’ve made some corrections, where the original text in the 64’er Magazin was (likely) incorrect. For example, the entry for $0002, in the magazine, should have been under $0001 (I believe), since $0002 really is unused. I’m reading through the article myself (and comparing with the older set from 64’er 1984/04 bis 1986/07), but using Google Translate (from German to English) is slow and tedious. Are there any other places where you’ve found errors in the original? Maybe it’s mentioned in a subsequent issue, I just haven’t got there yet…

    That 64’er magazine is chock full of good info. While translating it, I might learn me some serviceable technical German, but still be unable to carry out a social conversation!

    Danke viel!

Leave a Comment