rsm is a virtual computer, a fun hobby project with an accompanying video diary.
Source on GitHub
Conversation on twitter

Try RSM online in the playground

Project goals:

  1. learn, have fun – simplicity
  2. substrate, a thing to make other thing on
  3. longevity – I want to be able to run a (multimedia) program in 10+ years

Episode 1

Feb 14, 2022: Kicking things off. Motivations, goals, initial take on ISA design. [MP4] [transcript]

Episode 2

Feb 15, 2022: Part two in which I mostly struggle with getting the sign bit “to stick” on instruction arguments. Also covers a simple code formatter. [MP4] [transcript]

Episode 3

Feb 15, 2022: Signed integer hurdles from part 2 solved. Review changes, talk about and do some code organization. [MP4] [transcript]

Episode 4

Feb 16, 2022: Building the beginning of the VM evaluator and looking at three different strategies for instruction handler dispatch. [MP4] [transcript]

This was a live stream where I had some technical difficulties with crashing streaming software which also failed to store videos locally, so apologies for the quality — I had to download the low-quality live videos from youtube and cut them together. You can find the full live streams here in two segments: segment 1, segment 2

Episode 5

Feb 17, 2022: VM is alive! We look at how the factorial function is evaluated by the vm and talk about the future challenge of constant data addressing. [MP4] [transcript]

Episode 6

Feb 18, 2022: Getting started with the assembler: parsing RSM assembly source text. [MP4] [transcript]

Episode 7

Feb 18, 2022: Summarizing the implementation of the assembly parser. [MP4] [transcript]

I did a long live stream when writing the parser:

Episode 8

Feb 19, 2022: The assembly parser now fully parses the factorial example function! I discuss the latest syntax and how function bodies are now strictly block-based. [MP4] [transcript]

Episode 9

Feb 20, 2022: Wrap up the hack week and check out the now complete virtual machine! We can compile and run arbitrary programs, within the constraints of the current features of course. [MP4] [transcript]

Videos are also available as a YouTube playlist.