Dumping A C64 Kernel

[Blark] picked up a couple of Commodore 64 machines on Craig’s List so that he could play around with the SID chips inside. But there’s some other fun stuff in there and his attention was drawn to the PROM which stores the kernel. He thought it would be a fun adventure to build a ROM dumper capable of storing binary images.

In the video after the break you can see that when powered up the dumper immediately starts streaming hex values to the terminal. The system is set up to feed a Python script which packs the data stream into an image file. The reading is done by a PIC 18F4520, streaming the data in at 9600 baud with a generous delay between each address read to get the cleanest read possible. He had a bit of help from the AVR Freaks to get to this point.

We’d guess he’s going to pull the image off the chip several times and compare results to filter out any possible data corruption. From there we’re not sure what he’ll do with the files but there’s always the possibility of making is own emulator using this kernel image.

9 thoughts on “Dumping A C64 Kernel

  1. “There’s always the possibility of making is own emulator using this kernel image.”

    You mean like he could do with the countless dumps of the C64’s internal ROMs that already exist? Given how widespread the C64 was, I’m somehow doubtful that the random C64s he found on Craigslist just happen be revisions that haven’t yet been dumped.

    1. You’re right. I actually used a ROM that was already available online to confirm the program worked correctly.

      I did this for the exercise, to learn PIC serial and for fun ;)

  2. Very much like a project I did too many years ago to read the contents of Colecovision ROMs. A plug-in board for my Altair 8800 that put an address in one of the IO ports and read back the byte at the input from the ROM attached to the cable. Some ROMs were unstable in that configuration so I would read the byte being returned several times. When I finally go the same data five reads in a row I assumed it was the correct information.

  3. Having done this before, I can tell you this; you have to read them (the ROMs) SLOWLY. Go too fast, and they freak out. That said, it’s suprisingly simple to read(and write) just about any section of memory in the C64. RAM/ROM, it doesn’t matter, it’s all memory, and the address and data bus are completely broken out on the cartridge pins.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.