Remix.run Logo
ted_dunning a day ago

This is really nice work. Of course I, and probably 70% of all HN readers as well, have a bunch of nits to pick (in Java, memory too small, instruction set quibbles and so on) but this is still a very nice piece of work.

One of the best measures of your success is the number of ideas for extension that immediately pop into my mind. Memory mapped I/O of various kinds. DMA controllers with memory mapped registers. A forth interpreter. A tinyGo port. Bigger memory. An emulator for a Raspberry Pi or Pico. A scheme interpreter and compiler. A simple memory management unit.

jbanes a day ago | parent [-]

Ted! We met years ago when you visited Truven for a MapR sale. Really awesome to see you here. :)

Many of the issues you're bringing up popped into my head when I started working with Carson on the project. But they've ended up being not a big deal. The machine is more than powerful enough to get through the lower level CS courses while being simple enough to be blindly obvious about how it all works.

We're also cheating in a few areas like compiling graphics to a separate ROM space to keep the memory usage down.

Carson and I have already chatted about eventually needing an MTMC-32 for Operating System Design classes. That would be the computer where Interrupts, TLBs, cache levels, pipelining, MMIO, block devices, etc, etc, etc would make sense. They'll be able tp build the Operating System themselves and figure out how to make it all work. And ideally share software with each other that they can compiler for their OS. (Like a TinyGo :))

IMHO, this is an important step toward a suite of educational tools for the future.