RetroChallenge is a biannual “competition” or personal challenge involving retrocomputing. Pretty much anything that can be deemed a “project” goes, but you’re supposed to blog about your progress.
I will be making an emulator for the DREAM 6800 microcomputer, as mentioned in the “Retrocomputing during lockdown” thread (probably other projects there too that fit the RetroChallenge), and will be blogging here:
Looks great - I’ve subscribed to your blog. Feel free to post any significant developments here too - you may well spark some interesting discussions.
I find the CHIP-8 connection interesting: a virtual machine ported from 1802 to 6800.
Anyhow, on the topic of the retrochallenge, it looks like it runs until the end of May, so it’s not at all too late to start now. It’s also become an official retrochallenge.
Feel free to post any significant developments here too - you may well spark some interesting discussions.
I took a little detour from writing the emulator, because I found out that one of my own CHIP-8 games wouldn’t run in it anyway. CHIPOS, the monitor program and CHIP-8 interpreter used by the DREAM 6800 computer, was missing four CHIP-8 instructions that were initially undocumented on the COSMAC VIP, and my game used those instructions.
So I ended up with a secondary RetroChallenge: I learned 6800 assembly, rewrote CHIPOS to add the four missing instructions, while both keeping the ROM under 1K and not moving any of the routines that the CHIPOS manual exposes to users.
But the short version is that I ended up changing a simple “switch statement-like” routine into something that builds a routine in RAM and then jumps there, in order to not have to repeat boilerplate code for a jump table. It feels a little over-engineered – I’m sure it’s possible to cram in a jump table, or maybe even to extend the original routine (although I might have to move some of the CHIPOS routines, which I don’t really want to do).
OK, now that I can test my own games in it, it’s back to the emulator.