Reverse-engineering the Dragon 32 game Invader’s Revenge
In my increasingly-distant youth, my family had a Dragon 32 home computer, which I spent many hours with. For a lot of this time, I was writing programs of various kinds, with the built-in Basic and then also assembly language. But, unsurprisingly, I also played games, including one called Invader’s Revenge, written by Kenneth Kalish. You control a yellow ship, and have to shoot enemy “defender” ships while not crashing into anything or being shot by the enemy base. Good fun.

In my current job, I am developing and researching Pytch, a free online educational coding platform which helps people learn Python by writing “Scratch-like” programs. I thought a port of Invader’s Revenge could be a good example of what can be made in Pytch.
I could probably have achieved this by taking screenshots and working out the game logic just by observations, but thought it would be a more interesting exercise to reverse engineer the original machine code. This would also allow a dose of nostalgia for the Dragon and working in assembly language, albeit someone else’s.
After rather more time than I thought I would spend on this, I was successful. Full details and results in these GitHub pages.