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.


About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:
LinkedinTwitter

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top