Programming Arduino in C++11 — ROM dumping




In this tool-assisted education video I show how to program an Arduino Atmega2560 board in C++11 to dump a ROM chip, such as a 386sx BIOS or a Famicom cartridge ROM. I also make a ZMODEM sender and a LED blinker in this video.

Sorry about the bad dub / lipsync in the beginning. I recorded that part in a very noisy room, using a bad microphone (internal to the camera), and in another language, so I had to dub it over in postprocess — which turned out to be considerably more difficult than I thought. Some year soon I might get a boom microphone for use in this kind of occasions.

Please feel free to post comments & ask any questions / clarifications in the video comments. I try to reply to everyone when applicable. Please exercise clarity, politeness and good grammar, if you expect those values in the replies.

The EPROM chip pinout reference I used: http://bisqwit.iki.fi/jutut/kuvat/pro…
In particular, the 27C512 diagram here is applicable. For the NES ROM, I changed the OE/Vpp pin into address bit 16 and the CE/PGM pin into address bit 17.

I bought my Arduino board (which is a clone actually) from DealExtreme:
http://www.adafruit.com/category/17
Presently it costs only about 15 EUR including shipping.
The breadboard, the jumper wires and the resistors (for LED) are also from that shop. This pack includes all of those:
http://www.adafruit.com/category/17
It also includes another Arduino board, but a smaller one (also clone) that does not have enough GPIO pins for ROM dumping, unless you use an external shifter microchip (such as 74LS595).
The three-color LED is:
http://bisqwit.iki.fi/dx/p/135046

The operating system where I run the compiler and uploaded the program is Debian GNU/Linux, and I installed “arduino-mk” (which automatically installs the dependent avr-libc, gcc-avr, binutils-avr and arduino-core packages).
I edited the /usr/share/arduino/Arduino.mk file, changing the = into += on the lines that contain “CFLAGS=” and “CXXFLAGS=”. Without this change, the C++11 option in my Makefile would be ignored.

The desktop environment shown in this video does not exist. It was created in postprocess to facilitate multi-file editing, which I have not previously used in my videos.




This Post / Project can also be found using search terms:

  • 27c512 simple project
Clip to Evernote

Leave a Comment

(Spamcheck Enabled)

Read previous post:
Arduino Digital Magnetic Compass – HMC5883L

Today I will show you how to make your own arduino compass by using the MHC5883L 3-axis digital compass board....

Close
Scroll to top