~sforman/PythonOberon

An emulator written in Python for Prof Wirth's RISC processor for Project Oberon.
ReST link syntax.
Ignore pickle files (git.)

refs

master
browse  log 

clone

read-only
https://git.sr.ht/~sforman/PythonOberon
read/write
git@git.sr.ht:~sforman/PythonOberon

You can also use your local clone with git send-email.

#Python Oberon

Some software for Oberon 2013.

See also:

A hardware emulator for the new RISC processor written in Python. If Pygame is available it will open a screen of the standard dimensions of 1024 x 768 pixels. I've also implemented a very crude "assembler" which is really little more than a bunch of helper functions to emit binary instructions (in the form of 32-bit-wide ints.) However, it also provides a function dis() that will return a string representing the (integer) instruction passed to it.

Start with:

python -i -m oberon

This will use disk.img by default. At around 3400000 cycles the screen background begins to fill in, and at around 6500000 cycles the window content begins to be drawn:

PyGame window showing Oberon

(The -i option tells Python to drop into interactive REPL mode after the script has run. You can interact with the risc object.)

#TODO

[X] Load pickles
[X] Save pickles
[X] Watch expressions
[X] Breakpoints
[X] RAM Inspector
[ ] RAM Map / symbol table
[ ] Reset w/ new disk|serial file(s)
[X] Step CPU button.
[X] Switches & LEDs
[X] Save breakpoints & watches
[ ] Indicate when HALT'd.
[ ] Register display mode for records.