1
0
Fork
You've already forked PyOberon
0
Code to work with Project Oberon RISC.
  • Python 97%
  • C 2.5%
  • Makefile 0.5%
2026年06月17日 13:07:37 -07:00
attic Minor cleanup. 2026年06月12日 09:10:35 -07:00
docs More cleanup. 2026年06月06日 12:55:44 -07:00
oberon Ann and Xor. 2026年06月17日 13:07:37 -07:00
.gitignore Ignore pickle files (git.) 2021年02月27日 13:38:46 -08:00
disk.img Put disk image in main dir. 2026年06月12日 09:35:58 -07:00
LICENSE Initial commit 2013年12月14日 13:51:58 -08:00
README.md Minor cleanup. 2026年06月12日 09:10:35 -07:00
Screenshot.png Add start up instructions and a screenshot. 2019年05月10日 14:17:45 -07:00

Python Oberon

June, 2026 - It's time to circle back around to Oberon. This is some old janky code. I'm cleaning it up at the moment, we'll see how that goes.

An emulator for Prof. Wirth's Oberon RISC processor ported from Peter De Wachter's emulator written in C (see below.) There is also a crude assembler.

See also:

Start with:

python -i -m oberon emulate
  • If Pygame is available a screen will open of the standard dimensions of 1024 x 768 pixels.
  • This command 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.
[ ] Make help more helpful.

python -m oberon.IDE ../oberon/disk.img -b oberonforth.bin -s oberonforth.symbols -w watches.txt -k breaks.txt