The Core War concept has been around since the 1980s. It uses a made-up version of Assembler called RedCode and the potential for using it to teach Assembler programming and computer architecture is really good. The other day I came across a variant of the RedCode-based games called CoreWars 8086. The GitHub page hosts six revisions and there is a document site. Beyond the Java version of the program, there is a web-friendly version of it that looks like this:

This game is designed for a really old version of the x86 instruction set. This 16-bit version predates the 186, 286 and 386 models. Unlike RISC-V, the 8086 model contains useful features like overflow and carry registers. The lack of such things makes RISC-V easier to implement in hardware but harder to use when programming because those features need to be incorporated in software (see SFU RISC-V reference sheet, "Down to the Wires" instruction card and Project F Cheat Sheet)
I'll post more if I like what I see.
Updates
- Oct 15. Links to 8086 instruction set added.
- Oct 15. Link to ycombinator page.

James Andrew Smith is a Professional Engineer and Associate Professor in the Electrical Engineering and Computer Science Department of York University’s Lassonde School, with degrees in Electrical and Mechanical Engineering from the University of Alberta and McGill University. Previously a program director in biomedical engineering, his research background spans robotics, locomotion, human birth, music and engineering education. While on sabbatical in 2018-19 with his wife and kids he lived in Strasbourg, France and he taught at the INSA Strasbourg and Hochschule Karlsruhe and wrote about his personal and professional perspectives. James is a proponent of using social media to advocate for justice, equity, diversity and inclusion as well as evidence-based applications of research in the public sphere. You can find him on Twitter. You can find him on BlueSky. Originally from Québec City, he now lives in Toronto, Canada.
