RetroChallenge 2020/04

The RetroChallenge is afoot!

http://mwsherman.com/RCR/2020/04/

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:

2 Likes

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.

I see some people are posting updates on twitter, as usual.

And a couple more blogs, additional I think to the four linked from your first link:


1 Like

A post was split to a new topic: CHIP-8 (an early and still surviving virtual machine)

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.

I wrote a somewhat lengthy blog post about the process: https://tobiasvl.github.io/blog/chipos-hacking/

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.

Edit: I put the code up on GitHub: https://github.com/tobiasvl/chiposlo

3 Likes