Code to work with Project Oberon RISC.
- Python 97%
- C 2.5%
- Makefile 0.5%
| attic | Minor cleanup. | |
| docs | More cleanup. | |
| oberon | Ann and Xor. | |
| .gitignore | Ignore pickle files (git.) | |
| disk.img | Put disk image in main dir. | |
| LICENSE | Initial commit | |
| README.md | Minor cleanup. | |
| Screenshot.png | Add start up instructions and a screenshot. | |
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:
- projectoberon.com
- Project Oberon RISC emulator in C
- Project Oberon RISC emulator in JavaScript and Java
- Project Oberon RISC emulator in Go
- A resource page for Oberon-07
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.imgby default. - At around 3400000 cycles the screen background begins to fill in, and at around 6500000 cycles the window content begins to be drawn:
(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