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.

Comments

  1. SFRH says:

    “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.

    • g2-c28f2a85a33a9894562d38afa3c03a1a says:

      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. Pinkie Pie says:

    If I remember correctly, “Craig’s List” is a porn site. Might want to fix it (Craigslist).

  3. Lilith says:

    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.

  4. Eric says:

    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.

  5. snurfel says:

    Sigh. But it’s kernal.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 91,410 other followers