Hi everyone

Some of you know that I also teach a "100" level university course
about technology. This year, I decided I wanted to show off a simple
computer, to demonstrate how a CPU works. I was looking for something
simple and "old school" like an Altair 8800, where you enter
instructions and can watch it execute, and see the accumulator update.
But I couldn't find a hardware kit on sale in the price range I was
looking for.

So I wrote a simple CPU emulator to use in class. I call it the "Toy CPU."

I intentionally kept this as a very simple implementation. My goals
were to make it easy to write and easy to understand.

The Toy CPU implements 256 bytes of program memory, and an
accumulator. You program the Toy using binary opcodes. When you run a
program, the Toy CPU starts at zero for the first instruction. This is
a Minimal Instruction Set Computer with a limited set of instructions
(similar to a CPU from the 1960s or 1970s) but it can do enough real
work that I can use it in class to explain how computers work.

Version 1.0 is a working (but incomplete) prototype that runs on DOS
(compile with OpenWatcom). Emphasis on *prototype* - I wrote this in
an afternoon without a design.

I rewrote most of it to create Version 2.0. This currently runs on
Linux under ncurses, but I plan to port it back to DOS. This version
also supports entering a program using the "front panel" using
"switches and lights" similar to the 8800.

If you're curious, you can find it here:

https://github.com/freedosproject/toycpu

MIT license


_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to